Ich habe tatsächlich daran gearbeitet und QGIS, GRASS und Geotools + Opencarto Java Library verwendet, um mein Ziel zu erreichen. Ich kann Ihnen die wichtigsten Schritte geben:
- Aus der akademischen Literatur geht hervor, dass der kleinste MBR die beste Methode ist, um die Hauptorientierung des Gebäudes zu ermitteln (wichtig zu wissen, um den Solarpanel-Ertrag zu berechnen). Zunächst müssen Sie die Hauptausrichtung jedes Gebäudes berechnen. Die opencarto- Bibliothek hat eine Methode dafür (deshalb bin ich zu Java und Geotools gekommen, um das zu tun)
- Rasteren Sie Ihre Daten, um Steigung und Aspekt zu berechnen (zur Berechnung der Sonnenstrahlung erforderlich). Um Schatten mit Genauigkeit zu erhalten, sollten Sie MNT mit Ihrer Gebäude-Rasterebene zusammenführen. Wählen Sie den Pufferradius aus, an dem gearbeitet werden soll. Dieser Schritt ist nützlich, wenn Sie beispielsweise in Berggebieten arbeiten, da diese Hindernisse für die Sonnenstrahlung darstellen.
- Ich habe zwei Möglichkeiten gefunden, um die jährliche Sonnenstrahlung zu erhalten. Das erste verwendet das r.sun GRASS-Modul und der Prozess ist ziemlich lang, da Sie die Sonnenstrahlung für die sonnige Jahreszeit berechnen müssen (siehe Code unten - ich denke, er stammt aus dem GRASS-Wiki). Diese erste Methode ermittelt den jährlichen Sonnenstrahlungswert. Die zweite ist kürzer und weniger genau, da zum richtigen Zeitpunkt gdaldem hillshade bei Tagundnachtgleiche und Sonnenwende verwendet wird. Dieses Prinzip besteht darin, Teile von Gebäuden auszuschließen, die zu schuppig sind, und einen eindeutigen Strahlungswert für alle Gebäude anzuwenden (es gibt eine wissenschaftliche Website, um diese Informationen zu erhalten).
Natürlich gibt es noch einige weitere Schritte, um einen Solarpotentialwert zu erhalten, aber dies ist der kompliziertere räumliche Teil. Wenn ich Ihnen vor Beginn eines Projekts einen weiteren Rat geben kann, lesen Sie einfach ein wenig über die Solarpanel-Technologie. Sie werden sehen, dass viele Hypothesen geändert werden könnten.
Ich kann bereits sagen, dass die Methode einige Grenzen hat:
- ohne Berücksichtigung des Vegetationsschattens
- Dachneigung nicht berücksichtigen
- Die Hauptorientierung des Gebäudes ist nicht perfekt
Aber ich denke, auf territorialer / regionaler Ebene ist die Methode nicht schlecht, insbesondere für ländliche Gebiete.
Die Methode ist wahrscheinlich perfekt (ich hätte zum Beispiel gerne Dachneigungen, um eine bessere Genauigkeit der Solarmodulausbeute zu erzielen, aber räumliche Daten, die ich nicht zur Verfügung gestellt habe). Wenn Sie also Ideen dazu haben, werde ich es sein freut sich darüber zu lesen.
Ich hoffe es hilft!
Grass Sun Script mit dem Modul r.sun :
#!/bin/sh
echo "Enter elevation map :"
read elev
g.copy rast=$elev,SOLelev
echo "Enter slope map:"
read sl
g.copy rast=$sl,SOLslope
echo "Enter aspect map :"
read asp
g.copy rast=$asp,SOLaspect
i=75
lastday=288
# we fit to the raster input region
g.region rast=SOLelev
#generate an empty map for global radiation:
r.mapcalc "global.rad=0"
while [ $i -le $lastday ]
do
# generate map names convenient for xganim and r.out.mpeg:
DAY=`echo $i | awk '{printf "%03i", $1}'`
echo "Computing radiation for day $DAY..."
r.sun -s elevin=SOLelev aspin=SOLaspect slopein=SOLslope\
day="$i"\
beam_rad=b_rad.$DAY diff_rad=d_rad.$DAY\
refl_rad=r_rad.$DAY
#add to (cell-wise) global energy:
r.mapcalc "global.rad=global.rad + b_rad.$DAY +\
d_rad.$DAY + r_rad.$DAY"
r.timestamp b_rad.$DAY date="$i days"
r.colors b_rad.$DAY col=gyr
r.timestamp d_rad.$DAY date="$i days"
r.colors d_rad.$DAY col=gyr
r.timestamp r_rad.$DAY date="$i days"
r.colors r_rad.$DAY col=gyr
i=`expr $i + 1`
done
#cleanup:
g.remove rast=SOLelev,SOLaspect,SOLslope
g.mremove -f rast="b_rad*"
g.mremove -f rast="d_rad*"
g.mremove -f rast="r_rad*"
echo "Finished."