Realmente trabajé en eso y usé QGIS, GRASS y geotools + opencarto java library para lograr mi objetivo. Puedo darte los pasos principales:
- De la literatura académica, parece que el MBR más pequeño es el mejor método para encontrar la orientación principal del edificio (importante saber para calcular el rendimiento del panel solar). En primer lugar, deberá calcular la orientación principal de cada edificio. La biblioteca opencarto tiene un método para eso (es por eso que vine a Java y Geotools para hacerlo)
- Rasterice sus datos para calcular la pendiente y el aspecto (necesarios para calcular la radiación solar). Para obtener sombras con precisión, debe fusionar MNT con su capa ráster de construcción. Elija el radio del búfer para trabajar. Este paso es útil si trabaja en un área de montaña, por ejemplo, ya que son obstáculos para la radiación solar.
- Encontré dos formas de recibir radiación solar anual. El primero usa el módulo r.sun GRASS y el proceso es bastante largo ya que tienes que calcular la radiación solar para la temporada soleada (ver el código a continuación, lo obtuve de GRASS wiki, supongo) Este primer método obtiene el valor anual de radiación solar. El segundo es más corto y menos preciso, utilizando sombreado de gdaldem en equinoccios y solsticios en el momento adecuado. Este principio es excluir partes de edificios que son demasiado sombríos y aplicar un valor de radiación único para todos los edificios (hay un sitio web científico para obtener esta información).
Por supuesto, hay algunos pasos más para obtener un valor de potencial solar, pero esta es la parte espacial más complicada. Si puedo darle otro consejo, antes de comenzar cualquier proyecto, solo lea un poco sobre la tecnología de paneles solares. Verá que muchas hipótesis podrían ser alteradas.
Ya puedo decir que el método tiene algunos límites:
- sin tener en cuenta la sombra de la vegetación
- no considere la inclinación del techo
- la orientación principal del edificio no es perfecta
Pero creo que, a escala territorial / regional, el método no es malo, especialmente para las zonas rurales.
El método es probablemente perfeccionable (me gustaría tener pendientes en el techo, por ejemplo, para obtener una mejor precisión del rendimiento del panel solar, pero los datos espaciales que tengo no lo proporcionan), así que si tiene alguna idea para hacerlo, estaré encantado de leer al respecto.
¡Espero eso ayude!
Script de sol de hierba usando el módulo 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."