Omitir los comandos de cinta
Saltar al contenido principal
Inicio de sesión

Saber más

Administrar permisosAdministrar permisos
Caso 4: Modelos Digitales de Elevación – Estimación del potencial de producción de energía eléctrica fotovoltaica en las cubiertas de edificaciones en dos municipios - (post 2/2)
04/05/2020 - Producto, Formación, Noticia

Introducción

La orientación óptima es siempre SUR (si estamos en el hemisferio norte, claro está), pues es la posición desde la que se aprovecha la radiación del sol durante todo el día.

Debido a que la trayectoria de la radiación del Sol tiene un recorrido en invierno corto y con acimut menor que en verano, para poder aprovechar la radiación invernal se necesita una inclinación del soporte mayor al que se tendría para el verano.

El objetivo de la instalación es hacer incidir los rayos solares sobre la superficie del panel en un ángulo lo más cercano posible a los 90º, para lo que puede ayudarse de las propias estructuras de fijación al tejado.

La regla de cálculo depende de los objetivos:

  1. Demanda constante anual: la inclinación óptima en grados es igual a la latitud geográfica en grados menos 10. (Inclinación óptima=f-10).
  2. Demanda preferente en invierno: la inclinación óptima en grados es igual a la latitud geográfica en grados más 10. (Inclinación óptima=f+10).
  3. Demanda preferente en verano: la inclinación óptima en grados es igual a la latitud geográfica en grados menos 20. (Inclinación óptima=f-20).

Los mapas (pequeña escala) a descarga: https://solargis.com/maps-and-gis-data/download/spain nos confirman que el área tiene un potencial de 1526 KWh/kWp y 1710 kWh/m2 totales anuales (período 1994-2018). Cuentan con descarga de GeoTIFF para mayor detalle.

Seguiremos las tres opciones suponiendo que puede instalarse "in situ" el soporte adecuado, con lo que el rango de inclinación para esta latitud (42º) va de 12 (óptima en verano) a 52º (óptima en invierno). También lo incorporaremos a la valoración final de idoneidad.

 

Ejercicio

Sobre el proyecto realizado en el primer post, necesitamos dos derivados del MDS mencionados: pendientes y orientaciones de las cubiertas.

1. Con la Caja de procesos – Análisis del terreno ráster – Pendiente, sobre "MDS_2017_EPSG25830_50cm", creamos "Pendientes_2017_EPSG25830_50cm". La simbología es pseudocolor monobanda, Mín 0, Máx 90, lineal, rampa Oranges, modo intervalo igual, 31 clases (cada 3º). Un resultado imponente, de leyenda interminable.

2. Repetimos, con el algoritmo Aspecto (orientaciones), sobre "MDS_2017_EPSG25830_50cm", creamos "Orientaciones_2017_EPSG25830_50cm". La simbología necesita de los valores de corte de los ángulos desde 0º (llano) a 360º. Mejor cargar los archivos 1: qml o 2: sld y analizar la clasificación ya resuelta. Otro resultado imponente, aunque menos, por las características de captura del LiDAR original y la gran resolución, que produce ciertos artefactos.

Reclasificamos las pendientes, estableciendo 5 categorías:

  • reconsiderando 'Horizontal' como aquellas menores a 7º. Necesitarían soportes, pero sería idóneas en tejados de edificaciones nuevas: Clase 4.
  • >=27 a <=37º. 'Óptima anual'. Clase 3
  • >=7 a <27. 'Óptima en verano', cuando hay la máxima radiación global. Podría requerir soportes. Clase 2.
  • >37 a <=52º. 'Óptima en invierno', cuando hay la mínima radiación global, luego también podría requerir soportes. Clase 1
  • Resto de valores, son 'No idóneos'. Clase 0

Con Ráster – Calculadora ráster, sobre la extensión de la capa de Pendientes, creamos "Pendientes_Idoneidad" con la expresión:

("Pendientes_2017_EPSG25830_50cm@1" < 7)* 4 +

("Pendientes_2017_EPSG25830_50cm@1" >= 27 AND "Pendientes_2017_EPSG25830_50cm@1" <= 37) * 3 +

 ("Pendientes_2017_EPSG25830_50cm@1" >= 7 AND "Pendientes_2017_EPSG25830_50cm@1" < 27) * 2 +

 ("Pendientes_2017_EPSG25830_50cm@1" > 37 AND "Pendientes_2017_EPSG25830_50cm@1" <= 52) * 1

 La simbología es pseudocolor monobanda, lineal, modo intervalo igual de 5 clases: 0 a 4. Se sugieren colores 0 [#ffffff], 1 [#6499ba], 2 [#ffcb8e], 3[#84d600] y 4[#e36f71], con sus textos de leyenda. Transparencia del 50% a toda la capa, solo visible sobre la Ortofoto (recordar que puede que esté también al 50%, subir al 100).

3. Ahora reclasificaremos las orientaciones seleccionando un arco alrededor del sur (180º), de SE a SW con un margen dadas las características de ráster de -40 / +40 (>140 a <220) como clase 1 'Tejados Sur', dejando la clase 0 (los que no cumplen la condición) como 'Otras orientaciones'.

Con Ráster – Calculadora ráster, sobre la extensión de la capa de Orientaciones, creamos "Orientaciones_Idoneidad" con la expresión:

("Orientaciones_2017_EPSG25830_50cm@1" > 140 AND "Orientaciones_2017_EPSG25830_50cm@1" < 220)

La simbología vuelve a ser pseudocolor monobanda, lineal, modo intervalo igual de 2 clases: 0 a 1. Se sugieren colores 0 [#ffffff] y 1 [#ff5568], con sus textos de leyenda. Transparencia del 50% a toda la capa, solo visible sobre la Ortofoto.

4. Con esto ya tenemos (para toda la zona de estudio):

  • Idoneidad de las pendientes.
  • Idoneidad de las orientaciones
  • Zonas de sombra

 

5. Es el momento de incorporar la información de estos ráster a nivel de entidades vectoriales. La fuente será la capa de edificaciones sobre rasante (extraída del catastro) y, como auxiliares, las capas del parcelario urbano: DIRECC_Pol_Edifaltura, CATAST_Pol_ParcelaUrba y del parcelario mixto (elementos transitorios entre rústica y urbana, suelo industrial o de dotaciones en la mayoría d elos casos) CATAST_Pol_ParcelaMixta (ZIP).

6. Directamente desde el ZIP, incorporamos al proyecto CATAST_Pol_ParcelaUrba (capa 0, el .shp) y seleccionamos los municipios de Olite y Tafalla: "MUNICIPIO" = 'OLITE' OR "MUNICIPIO" = 'TAFALLA'. Co Exportar – Guardar objetos seleccionados como, creamos un shapefile en nuestro repositorio del proyecto con el mismo nombre (no caben problemas por las diferencias de extensiones, salvo que hubiéramos descomprimido el ZIP). Como lo incorpora al proyecto (encima del original en el Panel de capas), para no equivocarnos, mejor desactivamos la visibilidad del que procede del ZIP.

7. Ahora incorporamos DIRECC_Pol_Edifaltura (capa 0, el .shp). Como carece de información municipal, debemos hacer la selección por criterios geográficos. Con Vectorial – Herramientas de investigación – Seleccionar por localización:

 

Como con la anterior, guardamos las entidades seleccionadas en el repositorio. Ya podemos eliminar del proyecto (y del disco), ambos ZIP fuente.

8. Una revisión de DIRECC_Pol_Edifaltura, permite ver que se trata de "volúmenes constructivos", de forma que lo habitual es que un único edificio esté formado por varias entidades. Tampoco contiene información catastral, lo que hace difícil una evaluación a nivel de propiedad, ni un identificador único. Pasamos a procesarlo:

a) Necesitaremos identificar cada entidad cuando recuperemos los datos catastrales, así que crearemos un nuevo atributo "IDOBJECT" de tipo numero entero con la función $id. Cerrar la sesión de edición y guardar.

b) Desde la caja de Procesos, con Geometría vectorial – Punto en superficie, crearemos una capa temporal de centroides para cada volumen constructivo, garantizando que SIEMPRE esté dentro de la geometría de recinto (NO utilizar Centroides del menú Vectorial). No hay elementos multiparte.

c) Activamos la visibilidad de CATAST_Pol_ParcelaUrba. Con el complemento Point Sampling Tool (que es un "imprescindible" en QGIS y atención, a que actúa solo sobre las capas visibles), creamos una nueva capa de puntos, con "IDOBJECT" de la capa temporal, más los atributos "REFCAT" (combinación de los códigos que identifican la parcela), "CMUNICIPIO", "POLIGONO" y "PARCELA". Nuevo archivo: TEMP_URBA.shp, (nombre muy asistido para utilizar para un propósito y fáciles de identificar después para eliminarlos cuando ya no hacen falta).

 

d) Repetimos el proceso, esta vez con CATAST_Pol_ParcelaMixta (mismos atributos), creando el nuevo archivo TEMP_MIXTA.shp

e) Realizamos la primera unión desde DIRECC_Pol_Edifaltura con TEMP_URBA a través de "IDOBJECT":

 

f) Sobre la Tabla de atributos, seleccionamos aquellos en los que se ha realizado la unión correctamente con la expresión:

"URBA_REFCAT" IS NOT NULL

g) Con la Calculadora de campos, creamos los cuatro atributos (Numéricos enteros 64 bit) en nuestra capa, cargando los valores desde sus equivalentes URBA_REFCAT, etc. manteniendo los nombres originales y SIEMPRE solo para los elementos seleccionados. Dónde no se haya producido el case en el Join, quedarán NULL.

h) Regresamos a la unión de DIRECC_Pol_Edifaltura con TEMP_URBA y la editamos para cambiarla por TEMP_MIXTA a través también de "IDOBJECT". El prefijo, por seguridad, será ahora MIXTA_

Repetimos el proceso de f) con la expresión: "MIXTA_REFCAT" IS NOT NULL y g) pero esta vez Actualizando los atributos ya creados antes, desde sus equivalentes MIXTA_ y recordando, que SIEMPRE solo para los elementos seleccionados.

i) Eliminamos el Join y hacemos una última selección: "REFCAT" IS NULL, que nos identifica pequeñas construcciones fuera del parcelario (muy pocas) que "molestarán en los procesos siguientes y son prescindibles. Como tenemos la sesión de edición activada las borramos. Cerramos la sesión de edición y guardamos los cambios.

j) Ya podemos eliminar del proyecto el archivo temporal Punto y los archivos TEMP_ (también del disco).

k) Con el denominador común de "REFCAT", realizamos un Vectorial – Herramientas de Geoproceso – Disolver DIRECC_Pol_Edifaltura a través del campo "REFCAT", creando una capa temporal (Disuelto). Atención a este geoproceso, que crea entidades multiparte, cuando distintas entidades geométricas tienen el mismo valor en el atributo (parcelas con más de una edificación).

l) Para romper las formas multiparte, con Vectorial – Herramientas de Geometría – Multiparte a monoparte, sobre Disuelto, creando una nueva capa DIRECC_Pol_Edificicaciones, tenemos esa circunstancia resuelta, que se daba especialmente en zonas industriales.

m) Los atributos que quedaron en los registros de Disuelto se corresponden con la primera entidad geográfica que fue disuelta y, excepto "REFCAT", ya no tiene validez. Sobre DIRECC_Pol_Edificicaciones, activamos sesión de edición, eliminamos aquellos que pueden generar confusión: ETIQUETA, ALTURA e IDOBJECT y con la Calculadora de campos, actualizamos GEOM_AREA ($area) y GEOM_PERI ($perimeter). Cerramos la sesión y guardamos los cambios.

n) Podemos eliminar del proyecto las capas temporales (Punto y Disuelto) y TEMP.shp (éste también del disco).

9. Preparados para incorporar la información de los ráster, nos interesa en primera instancia trabajar con los volúmenes constructivos DIRECC_Pol_Edifaltura, para discernir aquellos que sean tejados horizontales o con la pendiente y orientación correcta. Como veréis, es un proceso que se complica debido a la falta de ajuste completo entre vectores y ráster.

NOTA IMPORTANTE: La aplicación de Transparencia – Valor adicional sin datos – de cierto valor, realiza una labor de filtrado del ráster, haciendo que los píxeles con ese valor no sean contabilizados (a los efectos son equivalentes a 'Sin datos'). Antes de realizar análisis, eliminaremos siempre esta asignación de transparencia.

Con Procesos – Análisis ráster – Estadísticas de zona:

a) Ráster: Pendientes_Idoneidad; Prefijo: P_; Estadísticas: Número, Suma y Mediana (recordar que es una variable discreta, no sirve la Media). La operación, solo para pendientes idóneas:  Suma/Número/Mediana, nos dará el tanto por 1 de cubierta útil. A su vez limitamos "excesos". Creamos nuevo atributo "P_IDONEO", de tipo Numérico decimal con tamaño 10.2.

CASE

WHEN "P_median" <1 OR "P_sum" < "P_count" THEN 0

WHEN "P_median" >=1 AND "P_sum" = "P_count" THEN 1

WHEN "P_median" >=1 AND ("P_sum" / "P_count" / "P_median")>1 THEN 1

ELSE ROUND("P_sum" / "P_count" / "P_median",2)

END

Es conveniente Guardar los cambios tras los cambios.

b) Ráster: Orientaciones_Idoneidad; Prefijo: O_; Estadísticas: Número y Suma. La operación, en este caso más sencilla, nos dará el tanto por 1 de la parte que está (ráster valor 1) o no (ráster valor 0) orientada al sur, por esto no necesitamos la Mediana. Creamos nuevo atributo "O_IDONEO", de tipo Numérico decimal con tamaño 10.2, con la expresión:

if( "O_count" >0, ROUND("O_sum" / "O_count" ,2),0)

Es conveniente Guardar los cambios tras los cambios.

c) El último ráster, el de zonas de sombra, supone un reto al trabajar con un modelo con una enorme diferencia de resolución con respecto a los anteriores. Ya habíamos dicho que no sería determinante (menos en poblaciones pequeñas como las de este ejemplo), ya que los edificios se dan entre ellos más sombra a nivel de fachada que de cubierta, pero es innegable que, por ejemplo, un edificio de tres plantas creará sombra en la cubierta de otro anejo de solo una.

El valor estadístico de Suma, devolverán ahora la proporción de la entidad vectorial en sombra, ya que el ráster contiene los valores al revés: soleado (valor 0) o en sombra (valor 1). Con el valor de Número (>0, luego evaluado) , transformamos en tanto por 1 de exposición al Sol.

Ráster: Zonas_en_sombra; Prefijo: S_; Estadísticas: Número y Suma. Creamos nuevo atributo "S_IDONEO", de tipo Numérico decimal con tamaño 10.2, con la expresión:

if( "S_count" >0 AND "S_count" > "S_sum" , ROUND ( 1 - ( "S_sum" / "S_count" ), 2), 0)

Es conveniente Guardar los cambios tras los cambios.

10. La valoración final de cada volumen constructivo, debería ser materia a contrastar con expertos en instalaciones de energía solar fotovoltaica, pero con los datos disponibles aventuraremos una expresión que transforme en m2 útiles los 2 valores de idoneidad: pendientes y orientaciones (con la corrección poco precisa del nivel de "soleado", que ocurrirá en invierno, pero no necesariamente en verano), excepto para la pendiente horizontal y óptima anual, en la que el aprovechamiento de la superficie dependerá de la correcta instalación de los paneles.

Recordar que P_median=4: Horizontal, 3: Óptima anual, 2: Óptima verano, 1: Óptima invierno y 0: No idóneos. Por esto se corrige cada situación por los valores de idoneidad que le afectan en los otros aspectos. El 4 dependerá de la instalación de soportes adecuados, 3 es óptimo y solo le afectará la orientación y las sombras, 1 y 2 supondremos que no se utilizan soportes correctivos.

Creamos nuevo atributo "Sp_Rto_Ftv", de tipo Numérico Numérico decimal con tamaño 10.2, con la expresión:

CASE

WHEN "P_median" = 4 THEN "S_IDONEO" * "GEOM_AREA"

WHEN "P_median" =3 THEN "O_IDONEO" * "S_IDONEO" * "GEOM_AREA"

WHEN "P_median" =1 OR "P_median" =2 THEN "P_IDONEO" * "O_IDONEO" * "GEOM_AREA"

ELSE 0

END

Es conveniente Guardar los cambios tras los cambios.

11. Ya podemos transformar las superficies eficientes en kWh/m2 (a recordar para la zona: 1710 kWh/m2 anuales) y que la potencia máxima como potencia efectiva es de un 20% (se denomina factor de capacidad en energías renovables). Creamos nuevo atributo "kWh_anual" de tipo Numérico decimal con tamaño 10.2, con la expresión:

"Sp_Rto_Ftv" * 1710 * 0.2

 12. Para recoger de un vistazo los valores de pendiente, orientación y sombra de cada volumen de un edificio, que prevenga de la necesidad de instalaciones que dispongan adecuadamente los paneles, partiremos de que no resulta ni viable ni rentable tenerlos en cuenta para superficies con rendimiento fotovoltaico pequeñas (<= 9 m2) ni dónde el nivel de sombra sea elevado o la orientación con valor de idoneidad resulten que el 50% del área sea <=9 m2.

Creamos nuevo atributo "VALORES", de tipo Texto, tamaño 50, aprovechando para transformar kWh en MWh (Mega vatios hora) con la expresión:

CASE

WHEN  "Sp_Rto_Ftv" >9 AND

("O_IDONEO" *   "Sp_Rto_Ftv" ) * 0.5 > 9 AND

("S_IDONEO" *   "Sp_Rto_Ftv"  ) * 0.5 > 9 THEN

 'ID: ' || "IDOBJECT" || ': ' || ROUND("kWh_anual"/1000,0)

ELSE ''

END

Uno de los resultados, sirva de ejemplo: "ID: 10652:1305482.4 ", que servirá para identificar qué volumen constructivo es útil y cuál es su potencia.

13. Por último, nos queda agrupar la información por edificación. Para ello haremos una unión 1:N entre DIRECC_Pol_Edificicaciones y DIRECC_Pol-Edifaltura. En el menú Proyecto – Propiedades – pestaña Relaciones – Añadir relación:

 

Atención a escribir correctamente el "Nombre" o luego fallarán las expresiones.

Sobre la capa DIRECC_Pol_Edificicaciones (capa padre) agregamos (sumamos) los valores de 1710 kWh/m2 anuales que están en DIRECC_Pol-Edifaltura (capa hija), en nuevo atributo "kWh_anual" de tipo Numérico decimal con tamaño 10.2, con la expresión:

relation_aggregate( 'EDIFI','sum',"kWh_anual")

Dónde 'EDIFI' es el nombre que dimos a la relación, 'sum' es la operación y "kWh_anual" es el atributo (de la capa hija) a agregar, aunque ahora se llaman igual.

Después, para concatenar los valores del atributo VALORES en un nuevo atributo de Observaciones que acompañar a los datos de edificio, filtramos los registros que tienen contenido en ese campo: Propiedades de DIRECC_Pol-Edifaltura – Filtrar, con la expresión:

"VALORES" > '' (comilla simple, es decir, mayor que nada)

Ahora, en DIRECC_Pol_Edificicaciones, creamos nuevo atributo "OBSERVAC", de tipo Texto, tamaño 255, con la expresión:

relation_aggregate( 'EDIFI','concatenate',"VALORES",concatenator:=' / ')

Los no "viables" según lo visto en el punto 12, quedan a nulo. Seleccionaremos estos edificios que no tienen interés, con la expresión: "OBSERVAC" IS NULL y, como la capa está en edición, los borramos. Cerramos la sesión y guardamos los cambios.

Eliminamos el Filtro en DIRECC_Pol-Edifaltura.

14. Para dejar un mapa en condiciones, daremos a DIRECC_Pol_Edificicaciones una simbología Graduada por la expresión "kWh_anual"/1000 (MWh anuales) con rampa de color Reds y a DIRECC_Pol-Edifaltura, otra de símbolo único – Línea exterior sencilla.

Como se ve en los resultados, son las naves industriales quienes mejor podrían aprovechar esta fuente de energía renovable, aunque solo sea por superficie, pero no es desdeñable la contribución de otros actores.

Una última exportación de los resultados de DIRECC_Pol_Edificicaciones a Excel, puede ser de gran ayuda para cálculos complementarios.

Recordad que se puede guardar definitivamente el proyecto en QGIS.

Conclusiones

Siendo muy conservadores, como ha sido el desarrollo del ejercicio y sin contar con complejas instalaciones de reorientación de los paneles, contando con un factor de capacidad en energías renovables del 20% (eficiencia de los paneles), se obtienen los siguientes datos de potencialidad de producción anual de energía eléctrica:

Olite: 14.769 MWh año, ocupando 9,91 ha, en más de 200 edificaciones para 3.946 habitantes. 3.743 kWh/habitante/año.

Tafalla: 44.561 MWh año, ocupando 25,35 ha, en más de 400 edificaciones para 10.595 habitantes. 4.206 kWh/habitante/año.

Contando con que el consumo medio anual por habitante en España está en unos 5.721 kWh, ni con la instalación de paneles en todos los lugares óptimos de ambas poblaciones se alcanza el auto-abastecimiento. Sin embargo, cabe recordar que el ejercicio se encuadra en el límite norte de eficiencia para este tipo de fuente de energía renovable y que Navarra es una potencia reconocida en eólica, lo que, a nivel global, confirma las posibilidades de ambas fuentes.

 

Esperamos que os haya gustado este ejercicio y os recordamos que también tenéis a vuestra disposición:

Caso 1: Imágenes Sentinel2 - Detección de cambios en zonas rurales (parte 1 y parte 2)

Caso 2: Seguimiento del ciclo de cultivos en una serie de parcelas (parte 1 y parte 2)

Caso 3: Seguimiento de zonas inundadas (zonas húmedas y balsas) - (parte 1 y parte 2)

Caso 4: Modelos Digitales de Elevación – Estimación del potencial de producción de energía eléctrica fotovoltaica en las cubiertas de edificaciones en dos municipios - (parte 1 y parte 2)

Caso 5: Modelo ciudad: Datos catastrales y Modelos Digitales de Elevación (parte 1 y parte 2)

Más aquellas peticiones que nos hagáis llegar a sitna@navarra.es

 SITNA

Datos adjuntos