graduado en ingeniería informáticaoa.upm.es/51598/1/tfg_javier_balanzategui_sanchez.pdf · de...

64
Graduado en Ingeniería Informática Universidad Politécnica de Madrid Escuela Técnica Superior de Ingenieros Informáticos TRABAJO FIN DE GRADO Plan de trabajo Una herramienta para la estimación de concentración de Nitrógeno a partir de imágenes Sentinels ID: 2773 Autor : Javier Balanzategui Sánchez Director : Consuelo Gonzalo Martín MADRID, MAYO 2018

Upload: others

Post on 18-Aug-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Graduado en Ingeniería Informáticaoa.upm.es/51598/1/TFG_JAVIER_BALANZATEGUI_SANCHEZ.pdf · de libre distribución y accesible a todo el mundo. La selección de los índices a incluir

Graduado en Ingeniería Informática

Universidad Politécnica de Madrid

Escuela Técnica Superior de Ingenieros Informáticos

TRABAJO FIN DE GRADO

Plan de trabajo

Una herramienta para la estimación de concentración de Nitrógeno a partir de imágenes Sentinels

ID: 2773

Autor: Javier Balanzategui Sánchez Director: Consuelo Gonzalo Martín

MADRID, MAYO 2018

Page 2: Graduado en Ingeniería Informáticaoa.upm.es/51598/1/TFG_JAVIER_BALANZATEGUI_SANCHEZ.pdf · de libre distribución y accesible a todo el mundo. La selección de los índices a incluir

"Estimación de Nitrógeno a partir de imágenes Sentinels" Javier Balanzategui Sánchez

2

ÍÍNDICE 1. INTRODUCCIÓN ....................................................................................................... 6

1.1 OBJETIVOS ........................................................................................................... 8

2. ESTADO DEL ARTE ................................................................................................. 9

3. MATERIALES Y MÉTODOS ................................................................................... 13

3.1 DATOS SENTINEL ............................................................................................ 13

3.2 PERFILES ESPECTRALES ............................................................................... 16

3.3 QGIS ..................................................................................................................... 17

4.IMPLEMENTACIÓN ................................................. ¡Error! Marcador no definido.

4.1 DISEÑO ................................................................................................................ 20

4.1.1 PARTES DE UN MÓDULO DE QGIS ........................................................ 25

4.1.2 INTERFAZ GRÁFICA. ................................................................................ 26

4.1.3 CÁLCULO DE ÍNDICES ............................................................................. 28

4.2 ÍNDICES ESPECTRALES ................................................................................... 35

4.2.1 OLCI TERRESTRIAL CHLOROPHYLL INDEX ................................... 35

4.2.2 CHLOROPHYLL CONTENT CANOPY INDEX ....................................... 36

4.2.3 ENHANCED VEGETATION INDEX ......................................................... 36

4.2.4 NORMALIZED DIFFERENCE RED EDGE ............................................... 36

4.2.5 CHLOROPHYLL INDEX GREEN EDGE .................................................. 37

4.2.6 NORMALIZED RED EDGE-RED INDEX ................................................ 37

4.2.7 RED DIFFERENCE VEGETATION IDEX ................................................ 38

4.2.8 MODIFIED CHLOROPHYLL ABSORTION IN REFLECTANCE INDEX ................................................................................................................................ 38

4.2.9 INVERTED RED EDGE CHLOROPHYLL INDEX ................................... 39

4.2.10 MERIS TERRESTRIAL CHLOROPHYLL INDEX ................................. 39

4.2.11 CHLOROPHYLL INDEX RED EDGE ...................................................... 39

4.2.12 RED EDGE NORMALIZED VEGETATION INDEX (NDVI705) ......... 40

4.2.13 MODIFIED RED EDGE NORMALIZED VEGETATION INDEX ......... 40

4.2.14 NORMALIZED DIFFERENCE INDEX 45. .............................................. 40

Page 3: Graduado en Ingeniería Informáticaoa.upm.es/51598/1/TFG_JAVIER_BALANZATEGUI_SANCHEZ.pdf · de libre distribución y accesible a todo el mundo. La selección de los índices a incluir

"Estimación de Nitrógeno a partir de imágenes Sentinels" Javier Balanzategui Sánchez

3

4.2.15 TRANSFORMED CHLOROPHYLL ABSORTION I REFLECTANCE INDEX .................................................................................................................... 40

4.2.16 OPTIMIZED SOIL ADJUSTED VEGETATION INDEX ........................ 41

4.2.17 TCARI/OSAVI ............................................................................................ 41

4.3 INCLUSIÓN DE UN NUEVO ÍNDICE. ............................................................. 41

5. DESCRIPCIÓN DEL MÓDULO ............................................................................... 43

5.1 DESCARGA DE PRODUCTOS SENTINEL ...................................................... 43

5.2 GUÍA DE INSTALACIÓN DEL MÓDULO ....................................................... 45

5.3 USO ...................................................................................................................... 46

5.4 RECOMENDACIONES ....................................................................................... 51

6. RESULTADOS .......................................................................................................... 53

7. CONCLUSIONES ...................................................................................................... 60

8. BIBLIOGRAFÍA Y REFERENCIAS ........................................................................ 61

Page 4: Graduado en Ingeniería Informáticaoa.upm.es/51598/1/TFG_JAVIER_BALANZATEGUI_SANCHEZ.pdf · de libre distribución y accesible a todo el mundo. La selección de los índices a incluir

"Estimación de Nitrógeno a partir de imágenes Sentinels" Javier Balanzategui Sánchez

4

RRESUMEN

El Nitrógeno es un nutriente fundamental para las especies vegetales, tanto es así que los abonos contienen el Nitrógeno como una de sus principales bases. Realizar un abonado de los cultivos preciso, acertando en áreas de mayor necesidad, se traduce en un menor impacto tanto desde un punto de vista económico como ecológico. Dicho abonado de precisión se lleva realizando hasta la fecha apoyándose en técnicas de detección de Nitrógeno tanto ‘manuales’ como de teledetección con drones y aviones. En nuestro caso trataremos de medir los niveles de Nitrógeno usando imágenes del satélite Sentinel-2 de la Agencia Espacial Europea (ESA).

En este trabajo de fin de grado, TFG en adelante, se ha realizado la implementación de un módulo para la herramienta QGIS que permite el cálculo de una batería de índices de vegetación a partir de las imágenes multiespectrales suministradas por Sentinel-2. El fin es proveer de una herramienta gratuita y de libre acceso que permita detectar, en una determinada área, dónde se encuentran las carencias y los excesos de este valorado elemento orgánico. Hasta donde sabemos, actualmente no existe ninguna herramienta de libre uso que automatice el cálculo de índices espectrales enfocados a la estimación de Nitrógeno en cultivos para el satélite Sentinel-2. Sólo la suite SNAP (creada por la ESA) contiene algunos índices espectrales aplicados a la vegetación que pueden generarse a partir de las imágenes de Sentinel-2. La herramienta desarrollada es capaz de generar hasta 17 índices distintos que miden el nivel de clorofila, el índice de área folial (Leaf Area Index, LAI) y el contenido de clorofila en la hoja (Leaf Chlorophyll Content, LCC), así como el estado de salud de la planta. Todos ellos estrechamente relacionados con el nivel de Nitrógeno de la planta como se mostrará más adelante.

Todo esto hace posible que cualquier persona pueda generar índices espectrales enfocados a la vegetación en cualquier momento y sobre cualquier zona del mundo.

Page 5: Graduado en Ingeniería Informáticaoa.upm.es/51598/1/TFG_JAVIER_BALANZATEGUI_SANCHEZ.pdf · de libre distribución y accesible a todo el mundo. La selección de los índices a incluir

"Estimación de Nitrógeno a partir de imágenes Sentinels" Javier Balanzategui Sánchez

5

AABSTRACT

Nitrogen is essential for plants development and for that reason, Nitrogen is one of the main components of fertiliser. Achieving to fertilize with precision, hitting the target on areas with biggest needs could help on saving outlays and having less environmental impact. That precise fertilization have being been done with manual Nitrogen measurement techniques and teledetection techniques using planes and drones. In our case, we would try to measure Nitrogen levels using European Space Agency (ESA) Sentinel-2 satellite imaginery.

In this end-of-degree project, it has been developed a QGIS plug-in that allows to obtain a set of spectral indexes focused on vegetation since Sentinel-2 multispectral images. The aim is to provide a free and open access tool that can detect, in a given area, where Nitrogen is more plenty or needed. Until the deadline of this end-of-degree project, it does not exist any similar tool. Only the SNAP suite (created by the ESA) can calculate some of the vegetation spectral indexes implemented in the plug-in. This plug-in is able to generate up to 17 spectral indexes focused on measuring Chlorophyll level, Leaf Area Index, Leaf Chlorophyll Content and healthiness of a plant. All of them closely related to Nitrogen level as it is shown below.

All shown reasons made possible that any person can generate and study those vegetal spectral indexes at any moment and in any place in the world.

Page 6: Graduado en Ingeniería Informáticaoa.upm.es/51598/1/TFG_JAVIER_BALANZATEGUI_SANCHEZ.pdf · de libre distribución y accesible a todo el mundo. La selección de los índices a incluir

"Estimación de Nitrógeno a partir de imágenes Sentinels" Javier Balanzategui Sánchez

6

11. INTRODUCCIÓN El abono que se suministra a los cultivos está basado principalmente en el aporte de Nitrógeno a la tierra [1][2] pues está demostrado que ayuda a que éstos crezcan y se desarrollen de manera óptima. En grandes cultivos y plantaciones, abonar con precisión en las áreas donde es más necesario el abono que en otras puede traducirse en un ahorro de costes significativo. Las técnicas actuales sólo permiten saber el nivel de Nitrógeno del cultivo de manera fiable a través de análisis químicos destructivos empleando la materia orgánica de la propia planta. Mediante índices espectrales es posible estimar de forma telemétrica los niveles de Nitrógeno de la zona. Sin embargo, a día de hoy no existen tales índices que sean sensibles al Nitrógeno. En su lugar se usan los índices sensibles a la Clorofila, pues como se desarrollará en el capítulo 2, es un buen estimador del nivel de Nitrógeno de la planta.

La teledetección consiste en obtener información de un objeto de manera remota mientras que los índices espectrales son una medida que relacionan los datos de la reflectancia de luz de un objeto en distintas longitudes de onda [3]. La reflectancia es la cantidad de luz que un objeto refleja a una determinada longitud de onda. Las imágenes multiespectrales contienen información de un objeto en distintos rangos del espectro electromagnético. En el caso de Sentinel-2 nos suministra 13 bandas [4](13 valores de reflectancia en 13 rangos distintos del espectro). A esto lo llamamos firma espectral, y cada píxel de la imagen multiespectral puede tener una reflectancia distinta. Se puede ver un esquema en la Figura 1. Las firmas espectrales se pueden usar para fines muy diversos, desde recomponer una imagen RGB (funcionalidad incluida en el módulo implementado), Calcular índices o clasificación supervisada (categorizar los elementos observados por su naturaleza como rocas, agua, plantas…etc) en función de sus valores en las distintas bandas.

Figura 1: Firma espectral de un Píxel.

Page 7: Graduado en Ingeniería Informáticaoa.upm.es/51598/1/TFG_JAVIER_BALANZATEGUI_SANCHEZ.pdf · de libre distribución y accesible a todo el mundo. La selección de los índices a incluir

"Estimación de Nitrógeno a partir de imágenes Sentinels" Javier Balanzategui Sánchez

7

Es posible combinar esa información de varias maneras, una de ellas son los índices espectrales. Podemos interpretar un índice espectral como una combinación de varias radiancias en longitudes de onda distintas, de tal forma que el resultado de esa combinación sea sensible a algún tipo de fenómeno como por ejemplo el exceso o déficit de Nitrógeno en el terreno. Los índices se pueden usar para detectar (dependiendo de a qué sea sensible el índice espectral) zonas con características similares.

La teledetección puede ser una solución al problema de detección de excesos y carencias de Nitrógeno en cultivos, pues aunque no aporta un resultado tan fiable como el análisis químico, es mucho más viable económicamente y sostenible. Se llevan usando imágenes satelitales en teledetección de manera extendida desde el lanzamiento del LandSat-1 [5] (aunque no en el campo del Nitrógeno) desde su lanzamiento en 1972 y hay algunas herramientas en el mercado capaces de generar índices espectrales como ArcGis PRO de manera manual. Sin embargo, la Agencia Espacial Europea (ESA) [6] además de poseer una de las flotas de satélites más modernas enfocadas a la teledetección, ha demostrado gran interés en que se usen sus satélites para fomentar la investigación y los beneficios para mejorar la calidad de vida de los ciudadanos Europeos y del mundo en general. Por ello la plataforma online Sentinel hub de la ESA permite descargar las imágenes de Sentinel-2 de forma gratuita.

Se ha decidido usar como base QGIS [7], un sistema de información geográfica de libre acceso para la cual se ha desarrollado un módulo en Python que cubre las necesidades descritas. La herramienta ya incluye funcionalidades necesarias para el usuario como la visualización, edición de mapas, compatibilidad con sistemas de coordenadas y distintos modos de exportación. En este caso, el módulo que se ha desarrollado extiende las funcionalidades de QGIS. Es capaz de calcular para una determinada zona geográfica los índices espectrales que se detallarán más adelante. De tal forma que los productos generados son capaces de beneficiarse de las funcionalidades que ya implementa la herramienta. Además se trata de una herramienta bajo licencia GNU GPL lo que la hace de libre distribución y accesible a todo el mundo.

La selección de los índices a incluir en la herramienta se ha basado en el artículo de Cammarano et Al de 2014 [8] donde recopila y compara los resultados de los índices CCCI, EVI, TCARI y MCARI entre otros (Tabla 1). Después se ha llevado a cabo un proceso de investigación donde en diversas fuentes, se han encontrado el resto de los índices escogidos. También basados en estudios [9] del profesor y catedrático Miguel Quemada Saenz-Badillos de la Escuela Técnica Superior de Ingenieros Agronómica, Alimentaria y Biosistemas (ETSIAAB) de la Universidad Politécnica de Madrid que ha aportado su experiencia a este TFG en el campo de la teledetección de Nitrógeno.

Page 8: Graduado en Ingeniería Informáticaoa.upm.es/51598/1/TFG_JAVIER_BALANZATEGUI_SANCHEZ.pdf · de libre distribución y accesible a todo el mundo. La selección de los índices a incluir

"Estimación de Nitrógeno a partir de imágenes Sentinels" Javier Balanzategui Sánchez

8

11.1 OBJETIVOS Se ha propuesto la siguiente lista de objetivos parciales:

1. A partir de las bandas espectrales de imágenes Sentinel, encontrar aquellos índices vegetales capaces de detectar el nivel de clorofila, LAI y LCC de las plantas con buenos resultados.

2. Diseñar e implementar un módulo para QGIS que calcule los índices espectrales seleccionados para un área particular.

3. Validar los resultados de los índices y demostrar la utilidad de la herramienta

4. Generar la documentación necesaria para los usuarios del módulo y para la inclusión en la herramienta de futuros índices espectrales.

Page 9: Graduado en Ingeniería Informáticaoa.upm.es/51598/1/TFG_JAVIER_BALANZATEGUI_SANCHEZ.pdf · de libre distribución y accesible a todo el mundo. La selección de los índices a incluir

"Estimación de Nitrógeno a partir de imágenes Sentinels" Javier Balanzategui Sánchez

9

22. ESTADO DEL ARTE Desde 1994 el estudio de Gitelson y Merzlyak [10] propuso el uso del nivel de expresión de la clorofila en una planta como estimador del nivel de Nitrógeno de la misma con buenos resultados [11]. Ambas variables guardan una gran correlación entre sí, permitiendo que a partir del conocimiento de una se pueda estimar el valor de la otra. Luego, encontrando aquellos índices espectrales que sean capaces de detectar las variaciones del nivel de clorofila de las plantas, podremos encontrar las áreas donde el Nitrógeno es más o menos abundante.

La cantidad de Nitrógeno presente en la planta depende de muchos factores, entre ellos el tipo de suelo, el tipo y variedad de planta, condiciones climatológicas y fisiológicas de la planta. Cada especie se desarrolla de forma distinta con niveles distintos de Nitrógeno [12]. Eso quiere decir que dos plantas con un mismo nivel de Nitrógeno pueden expresarse de manera distinta en su nivel de Clorofila haciendo difícil que se pueda devolver un resultado genérico que valga para todos los casos. Por ello la persona que use la herramienta con la intención de estimar el nivel de Nitrógeno en una determinada zona deberá tener en cuenta cada caso particular.

De acuerdo con la literatura y dado que en cada caso y cada estudio intervienen muchos factores, así como la diversidad de las especies distintas a monitorizar, no hay ningún índice que se pueda considerar óptimo. Como primera parte de la preparación se ha tenido que realizar una preselección de los índices más significativos. En concreto, se han seleccionado aquellos que poseen un nivel de correlación con el nivel de clorofila, suficientemente alto como para poder estimar con gran probabilidad de acierto el nivel de Nitrógeno de las plantas. Esto se ha hecho con los resultados que los artículos suministran de cada índice y otros estudios extra también mencionados aquí.

Acrónimo Nombre Bandas

espectrales asociadas

Fórmula Autores Uso más

habitual R2 Rango

OTCI

OLCI Terrestrial

Chlorophyll Index

B6:740nm (20m) B5:705 nm(20m) B4:665nm(10m)

(R753 - R709 / (R709-R681)

Dash & Vuolo, 2008. Universidad

de Southhampton

[13]

CCC 0.99 [0,2.5]

MCARI

Modified Chlorophyll Absortion in Reflectance

Index

B3:560nm (10m) B5:705 nm(20m) B4:665nm(10m)

(R700-R670)-0.2*(R700-R550)/(R700/R670)

Daughtry et al, 2000 [14] CCC 0.87

[0,0.5]

Page 10: Graduado en Ingeniería Informáticaoa.upm.es/51598/1/TFG_JAVIER_BALANZATEGUI_SANCHEZ.pdf · de libre distribución y accesible a todo el mundo. La selección de los índices a incluir

"Estimación de Nitrógeno a partir de imágenes Sentinels" Javier Balanzategui Sánchez

10

IRECI

Inverted RedEdge

Chlorophyll Index

B7: 783nm(20m) B5: 705nm(20m) B6: 740nm(20m) B4: 665nm(10m)

(B7-B4)*B6 / B5 Frampton, Dash et al. 2013 [15] LAI y CCC 0.88

[0,2.5]

CCCI

Canopy Chlorophyll

Content Index

(NDRE - NDREmin) / (NDREmax - NDRE)

Barnes et al, 2000 [16] CCC

0.87 con nivel de

Nitrógeno

[0,1]

MTCI

MERIS Terrestrial

Chlorophyll Index

B6:740nm (20m) B5:705 nm(20m) B4: 665nm(10m)

(B6 - B5) / (B5 - B4) Dash &

Curran, 2004 [17] LCC 0.85

[0,10]

CI-redEdge Chlorophyll Index Red

Edge

B7: 783nm(20m) B5: 705nm(20m)

(R780/R705) - 1 Clevers & Gitelson, 2012 [18] LCC 0.57

[0,1]

CI-greenEdge Chlorophyll Index Green

Edge

B7: 783nm(20m) B3: 560nm(10m) (R780/R550) - 1

Clevers & Gitelson, 2012 [18] LCC 0.82

No definido

EVI Enhanced Vegetation

Index

B2: 490nm(10m) B4: 665nm(10m) B8: 842nm(10m)

(2'5*(B8-B4)) / (B8 + 6*B4 - 7'5*B2 + 1)

Huete et al, 2002 [19]

Mide la salud de la vegetación

- [0,1]

NRERI Normalized Red Edge-Red Index

B6: 740nm(20m) B7: 783nm(20m) B5: 705nm(20m) B4: 665nm(10m)

(R780-R720)/(R780-R680)

Novotná et al, 2013 [20]

Mide Cantidad, calidad y

desarrollo de la vegetación

- No

definido

NDVI705

Red Edge Normalized Vegetation

Index

B6: 740nm(20m) B5: 705nm(20m) (B6-B5)/(B6+B5)

Gitelson & Merzlyak, 1994 [10]

Mide Cantidad, calidad y

desarrollo de la vegetación

- [-1,1]

mNDVI705

Modified Red Edge

Normalized Vegetation

Index

B6: 740nm(20m) B1: 443nm(60m) B5: 705nm(20m)

(B6-B5)/(B6+B5-2*B1) Sims &

Gamon, 2002 [21]

Mide Cantidad, calidad y

desarrollo de la vegetación

- [-1,1]

NDRE Normalized Difference Red Edge

B7: 783nm(20m) B5: 705nm(20m) B6: 740nm(20m)

(R790 - R720) / (R790 + R720)

Barnes et al, 2000 [22]

Mide la salud de la vegetación

- [0,1]

NDI45 Normalized Difference index 45

B4: 665nm(10m) B5: 705nm(20m)

(B5-B4) / (B5+B4) Delegido et al, 2011 [23] LAI 0.56

[0,1]

RDVI

Red Difference Vegetation

Index

B8:842nm (10m) B7: 783nm(20m) B4: 665nm(10m)

(R800-R670)/(R800-R670)^0.5

Rougean & Breon, 1995

[24]

Mide la salud de la vegetación

- [0,1]

TCARI Transformed Chlorophyll Absorption

in.

B3: 560nm(10m) B5:705 nm(20m) B4: 665nm(10m)

3[(R700-R670) - 0.2*(R700-

R550)/(R700/R670)]

Chappelle, & McMurtrey Walthall,

CCC - [0,1]

Page 11: Graduado en Ingeniería Informáticaoa.upm.es/51598/1/TFG_JAVIER_BALANZATEGUI_SANCHEZ.pdf · de libre distribución y accesible a todo el mundo. La selección de los índices a incluir

"Estimación de Nitrógeno a partir de imágenes Sentinels" Javier Balanzategui Sánchez

11

Reflectance Index

1994 [25]

OSAVI

Optimized Soil

Adjusted Vegetation

Index

B8:842nm (10m) B7: 783nm(20m) B4: 665nm(10m)

1.16*(R800-R670)/(R800+R670+0.16)

Rondeaux, Steven &

Baret, 1996. [26]

Mide la salubridad

vegetal aislando la señal del

suelo.

- [0,1]

TCARI/OSAVI

B8:842nm (10m) B3:560nm(10m) B5:705 nm(20m) B7:783nm(20m) B4:665nm(10m)

TCARI/OSAVI

Haboudane, Miller,

Tremblay, Zarco-Tejada, & Dextraze, 2002 [27]

CCC 0.89 con nivel de

Nitrogeno

[0,1]

Tabla 1. Índices incluidos en la herramienta.

En la Tabla 1 se pueden observar algunos de los siguientes campos:

Acrónimo: Es el acrónimo por el que es conocido el índice en la comunidad científica y además es el nombre con el que aparecen en la herramienta

Bandas: Son las bandas de Sentinel usadas para calcular el índice espectral. En el capítulo 3.1 se ofrece una descripción más detallada. El formato es el siguiente:

Uso más habitual: Podemos diferenciar 3 grandes grupos de índices dependiendo de los resultados que proporcionen que pueden ser CCC, LAI o LCC. LAI se refiere a Leaf Area Index y calcula el área media de la superficie de las hojas de la planta en esa zona. LCC o Leaf Chlorophyll Content calcula el contenido de clorofila por unidad de superficie para cada zona. Juntas producen el CCC (Chlorophyll Canopy Content ) [16] que es el producto de ambas y que representa el contenido de Nitrógeno en esa área.

Para calcular el CCC habría que multiplicar cada valor zonal de LAI por su LCC y obtendríamos en CCC en esa zona. En nuestro caso como usamos imágenes y cada píxel representa el valor medio de esa zona de LAI o LCC, tan sólo habría que realizar una operación de multiplicación elemento por elemento.

Page 12: Graduado en Ingeniería Informáticaoa.upm.es/51598/1/TFG_JAVIER_BALANZATEGUI_SANCHEZ.pdf · de libre distribución y accesible a todo el mundo. La selección de los índices a incluir

"Estimación de Nitrógeno a partir de imágenes Sentinels" Javier Balanzategui Sánchez

12

R2: Es el nivel de correlación r2 de ese índice con la variable (LAI, LCC,CCC

o N) que mide. Los resultados se han sacado de los artículos de cada uno de los índices, sin embargo, se ha pensado que era de utilidad incluirlos en la tabla para tener una vista más completa.

Rango: Es la salida original del índice, se trata de una salida que toma valores Reales en los rangos indicados.

En el capítulo de resultados, se ha extraído del estudio sobre la monitorización del estado de Nitrógeno a través de diversos métodos de teledetección del profesor Miguel Quemada [28] una serie de hipótesis, que deberán de cumplirse si los índices están bien implementados y si éstos son verdaderamente útiles usando a Sentinel-2 como fuente de datos.

Page 13: Graduado en Ingeniería Informáticaoa.upm.es/51598/1/TFG_JAVIER_BALANZATEGUI_SANCHEZ.pdf · de libre distribución y accesible a todo el mundo. La selección de los índices a incluir

"Estimación de Nitrógeno a partir de imágenes Sentinels" Javier Balanzategui Sánchez

13

33. MATERIALES Y MÉTODOS En este capítulo se describirá las entradas qué necesita nuestro módulo para calcular los índices espectrales seleccionados y en particular las bandas utilizadas para ello. También se discutirán los índices espectrales seleccionados y como se han tratado en el módulo.

3.1 DATOS SENTINEL La familia de satélites Sentinel [29] está formada por 4 satélites a día de hoy.

Sentinel-1: Usado para la monitorización de la tierra y zonas costeras. También incluye sensores para la climatología. Tiene un sensor de radar centrado en la longitud de onda 18,5nm.

Sentinel-2 [30]: Los instrumentos que incluyen son cámaras multiespectrales con resoluciones espaciales de 10m, 20m y 60m2 por pixel que capturan en 13 bandas distintas con longitudes de onda comprendidas desde 443nm hasta 2190nm.

Sentinel-3: Contiene distintos sensores que producen 4 sets de datos distintos para diversos propósitos:

o Sentinel-3 OLCI: Usado para la monitorización terrestre y marítima y la recopilación de información biológica. Contiene también cámaras multiespectrales con una resolución espacial de 300m2 por pixel en 21 bandas distintas.

o Sentinel-3 SLSTR: Mismo propósito que OLCI, también estudios climatológicos y de detección de incendios. Contiene sensores para la detección de la temperatura en la superficie terrestre.

o Sentinel-3 SYN: Vigilancia del crecimiento de la vegetación y del clima para usos agrícolas. Conjunta los productos OLCI y SLSTR.

o Sentinel-3 ALTIMETRY: Estudio de la topografía oceánica (forma, altura de las olas, velocidad del viendo en la superficie, icebergs…etc).

Sentinel-5 TROPOMI: Medición mediante cámaras multiespectrales de bandas Ultravioletas (UV) y SWIR.

En este TFG, sólo se han utilizado los productos generados por Sentinel-2. La razón es que para emplear los algoritmos de cálculo de índices espectrales necesitamos información multiespectral de la superficie terrestre. Los únicos satélites que registran este tipo de información son Sentinel-2 y Sentinel-3 OLCI. Sin embargo, la resolución espacial de los sensores del Sentinel-2 es mucho mayor que la de Sentinel-3 OLCI, lo

Page 14: Graduado en Ingeniería Informáticaoa.upm.es/51598/1/TFG_JAVIER_BALANZATEGUI_SANCHEZ.pdf · de libre distribución y accesible a todo el mundo. La selección de los índices a incluir

"Estimación de Nitrógeno a partir de imágenes Sentinels" Javier Balanzategui Sánchez

14

que permite poder generar los índices espectrales con más resolución y poder usar los resultados en tareas de abonado de precisión.

El espectro electromagnético se divide en varios rangos, en lo que respecta al Sentinel-2, es capaz de tomar mediciones en 2 de ellos: el espectro visible y el espectro infrarrojo (NIR y SWIR). Se puede ver cómo está dividido ese espectro en la Figura 2. Más en detalle, las características de las bandas se pueden observar en la Tabla 2.

Figura 2. Bandas captadas por Sentinel-2

Resolución Nombre Longitud de onda

central 10m B02 Azul 490nm

B03 Verde 560nm B04 Rojo 665nm B08 NIR 842nm

20m: B05 Red Edge 1 705nm B06 Red Edge 2 740nm B07 Red Edge 3 783nm B8a Red Edge 4 865nm B11 SWIR 1 1610nm B12 SWIR 2 2190nm

60m B01 Aerosoles 443nm B09 Vapor de Agua 940nm B10 Nubes 1375nm

Tabla 2: Bandas disponibles en Sentinel-2.

Page 15: Graduado en Ingeniería Informáticaoa.upm.es/51598/1/TFG_JAVIER_BALANZATEGUI_SANCHEZ.pdf · de libre distribución y accesible a todo el mundo. La selección de los índices a incluir

"Estimación de Nitrógeno a partir de imágenes Sentinels" Javier Balanzategui Sánchez

15

Cada banda tiene asociado un rango en el cual es medida y que podemos encontrar en el datasheet de la ESA [4]. El valor asociado a cada una de ellas es un promedio de los valores de de reflectancia en ese rango (no obstante, dicho promedio depende del perfil del sensor). Por ejemplo la banda05 centrada en 705nm tiene un hombro de ± 19nm lo que significa que representa el promedio de reflectancia en el rango [686nm,724nm]. Además las bandas se dividen en las 3 resoluciones espaciales disponibles que se ilustran en la Figura 3:

Resolución 10m2: hasta 10980x10980pix Resolución 20m2: hasta 5490x5490pix. Resolución 60m2: hasta 1830x1830pix.

Figura 3. Resoluciones de las bandas

Aunque las áreas de muestreo son todas similares, cada tile puede ser distinto. Sentinel internamente llama tiles a las imágenes multiespectrales de una zona concreta. Por ejemplo el tile T30TVK hace referencia a la zona de la comunidad de Madrid. De media un tile cubre un área de 125 km2. Un ejemplo de imagen de Sentinel-2 se puede apreciar en la Figura 4. Se trata de una zona cercana a Aranjuez que pertenece al tile T30TVK (como se estudiará en el capítulo 6).

Las 13 bandas se almacenan como imágenes de niveles de gris. Aunque el valor de reflectancia es un valor continuo, éste pasa por un proceso de digitalización donde cada valor se representa mediante un Píxeli,j representado con un entero de 12 bits, es decir con un valor en el rango [0,4096].

Page 16: Graduado en Ingeniería Informáticaoa.upm.es/51598/1/TFG_JAVIER_BALANZATEGUI_SANCHEZ.pdf · de libre distribución y accesible a todo el mundo. La selección de los índices a incluir

"Estimación de Nitrógeno a partir de imágenes Sentinels" Javier Balanzategui Sánchez

16

Figura 4. Reflectancia de la Banda B02 de una zona del tile T30TVK. Se pueden observar las parcelas dedicadas a la agricultura con forma rectangular.

El preprocesado que han sufrido estas bandas antes de ser usadas para el cálculo de los índices se detalla en el capítulo 4.1.3. Sin embargo, el tipo de producto que se descarga de la plataforma online 'SentinelHub' es necesario que sea del tipo 2A. Éste producto ya viene corregido atmosféricamente y las reflectancias son a nivel Top-Of-Canopy (TOC). Los pasos para la descarga de los productos Sentinel se indica en el capítulo 5.1

33.2 PERFILES ESPECTRALES El perfil espectral medio de la vegetación se puede ver en la Figura 5 [31], donde podemos ver que presenta dos pendientes muy acusadas en 450nm y en 670nm. En ambos puntos se deberá tener especial cuidado al usar las bandas cercanas, pues al tener tanta pendiente podemos generar un error grande si no usamos la reflectancia en ese punto en concreto. Si por ejemplo necesitamos la reflectancia en el punto 455nm y solo disponemos del valor en 450nm, aunque la diferencia es corta en el rango(5nm), el error puede ser muy grande debido a la gran pendiente que las separa. Si por el contrario se necesitara la reflectancia en la longitud de onda de 500nm y sólo dispusiéramos del

Page 17: Graduado en Ingeniería Informáticaoa.upm.es/51598/1/TFG_JAVIER_BALANZATEGUI_SANCHEZ.pdf · de libre distribución y accesible a todo el mundo. La selección de los índices a incluir

"Estimación de Nitrógeno a partir de imágenes Sentinels" Javier Balanzategui Sánchez

17

valor en 520nm, puesto que la diferencia en la pendiente es poca, podríamos usar indistintamente cualquiera de las dos.

Algunos índices que se detallarán a continuación hacen uso de longitudes de onda cercanas a estas fronteras, en las que se desconoce el valor y se deberá decidir si usamos el dato inmediatamente inferior, superior o interpolar con éstas dos el valor del dato. Las bandas que se encuentran cerca de estos puntos son B1 y B2, B4 y B5.

Figura 5: perfil espectral medio de la vegetación[31].

33.3 QGIS QGIS [7] ofrece un amplio abanico de herramientas a la hora de interactuar con mapas e información cartográfica. En lo que respecta a este TFG hay varias funcionalidades que merecen ser destacadas:

Generación de polígonos Shape para el recorte de las áreas donde se desean calcular los índices espectrales.

Edición de los índices en tonos de gris y generación de mapas de color. Edición del histograma.

La generación del polígono shape es de gran utilidad para limitar el área de acción del módulo. Cuando se genera una figura shape y se incluye en el módulo (ver apartado

Page 18: Graduado en Ingeniería Informáticaoa.upm.es/51598/1/TFG_JAVIER_BALANZATEGUI_SANCHEZ.pdf · de libre distribución y accesible a todo el mundo. La selección de los índices a incluir

"Estimación de Nitrógeno a partir de imágenes Sentinels" Javier Balanzategui Sánchez

18

5.3) se calcula el índice sólo en esa área, acortando mucho el tiempo de cómputo y los recursos necesarios pues el área del shape es inferior al área del tile.

Otra funcionalidad a destacar proporcionada por QGIS es la de poder migrar los colores del mapa a otros distintos. Es una funcionalidad útil si se quiere mejorar la comprensión a la hora de interpretar un índice, pudiendo hacer que en lugar de tonos de gris, podamos ver los mapas en tonos fríos y cálidos. Para seleccionar ésta función habrá que pinchar dos veces sobre la capa de la imagen y seleccionar el menú 'Estilo'. En la Figura 6 se puede ver como se ha de configurar para generar un mapa en todos fríos y cálidos.

Figura 6: Generación mapa en tonos fríos-cálidos.

Puede darse el caso de que el mapa del índice generado salga en tonos muy oscuros. Esto es debido a que el remuestreo que se ha realizado (capítulo 4.1.3.4) no ha sido apropiado puesto que la densidad del rango de valores de salida se pueda encontrar en

1 2

3

Page 19: Graduado en Ingeniería Informáticaoa.upm.es/51598/1/TFG_JAVIER_BALANZATEGUI_SANCHEZ.pdf · de libre distribución y accesible a todo el mundo. La selección de los índices a incluir

"Estimación de Nitrógeno a partir de imágenes Sentinels" Javier Balanzategui Sánchez

19

otro punto del rango de Origen muestreado. La función de editar el histograma de QGIS da la posibilidad de cambiar los umbrales del histograma y aclarar u obscurecer la imagen. Para hacer uso de ella se pinchará dos veces en la capa de la imagen y seleccionaremos la opción de Histograma. Podremos variar los umbrales min y max del histograma y aclarar u obscurecer el mapa.

Page 20: Graduado en Ingeniería Informáticaoa.upm.es/51598/1/TFG_JAVIER_BALANZATEGUI_SANCHEZ.pdf · de libre distribución y accesible a todo el mundo. La selección de los índices a incluir

"Estimación de Nitrógeno a partir de imágenes Sentinels" Javier Balanzategui Sánchez

20

44. IMPLEMENTACIÓN El módulo se ha desarrollado en el lenguaje Python con versión 3.6.0. No necesita dependencias extra pues usa módulos pre-instalados en al entorno de Python3 por QGIS. Éstos módulos son: Numpy, Gdal, Sys, Os, Platform, PyQt5,qgis, osr, Zipfile y math.

Para el funcionamiento del módulo necesitamos disponer del siguiente software:

QGIS 3.0.0 o superior GRASS 7.4.0 o superior

La manera más fácil de instalar ambas dependencias es instalando QGIS 3.X desde la fuente oficial (se ofrece también la instalación conjunta de GRASS al mismo tiempo).

4.1 DISEÑO Se ha intentado seguir un diseño basado en la modularidad, de tal forma que la herramienta pueda ser fácilmente ampliable en un futuro ante la inclusión de nuevos índices o que se pudiera cambiar su código fácilmente.

El proyecto principalmente está basado en dos clases y algunos métodos auxiliares. En las Figuras 7 y 8 podemos ver un diagrama de cómo están divididas éstas clases.

index_extractor (MAIN)

iface plugin_dir translator actions menu toolbar Dlg: Interfaz gráfica sobre PyQt5 -------- Atributos añadidos -------- selectPhase: boolean createdOptions: boolean shapeBox: boolean saveCSV: boolean

Page 21: Graduado en Ingeniería Informáticaoa.upm.es/51598/1/TFG_JAVIER_BALANZATEGUI_SANCHEZ.pdf · de libre distribución y accesible a todo el mundo. La selección de los índices a incluir

"Estimación de Nitrógeno a partir de imágenes Sentinels" Javier Balanzategui Sánchez

21

tr(message) add_action(icon_path,text,callback,enabled_flag,add_to_menu,add_to_toolbar,status_tip,whats_this,paren). initGui() unload() run(): Lanza la interfaz de usuario, checkea las opciones egresadas y genera los índices. ------- Métodos aladidos -------- createDialog(): Crea en la interfaz visual la lista de los índices disponibles y sus opciones. checkIfShape(): Comprueba si el usuario quiere usar un Shape sobre el tile o todo el tile por el contrario. checkIfCSV(): comprueba si el usuario ha marcado la opción de exportar a CSV o no. select_input_file(): Método lanzado a la hora de seleccionar el producto sentinel almecenado en el sistema. Abre un explorador del SO. Select_Unselect(): Método llamado al pulsar el botón 'select/unselect' Que comprueba la fase y selecciona/deselecciona todas las opciones. getChecked(): Saca en una lista todas las opciones e índices seleccionados por el usuario show_message(msg): Crea un mensaje pop-up al usuario. calculate_indexes(): Descomprime el .zip de Sentinel-2 y llama a los métodos de Spectrallndexes para cada opción elegida por el usuario. Genera los índices, los guarda como CSV si procede, los remuestrea al rango [0,255] para que sean visualizados correctamente y los guarda en disco. getShapefromLayer(name): Busca la capa de puntos cuyo nombre coincide con 'name'.

Figura 7. Diagrama de clase Index_Extractor.

SpectralIndexes

------------ paths a las bandas multiespectrales descomprimidas ---------- B1_60 B2_10 B2_20 B2_60 … B12_60 ---------- metadatos que compartirán las imágenes -----------

Page 22: Graduado en Ingeniería Informáticaoa.upm.es/51598/1/TFG_JAVIER_BALANZATEGUI_SANCHEZ.pdf · de libre distribución y accesible a todo el mundo. La selección de los índices a incluir

"Estimación de Nitrógeno a partir de imágenes Sentinels" Javier Balanzategui Sánchez

22

metadata projection geoTransform ---------- datos del shape a usar ------------ puntos

__init__(routes,puntos): Constructor de la clase. Inicializan todas las rutas de las imágenes espectrales de Sentinel-2 y los metadatos que compartirán los índices. OTCI(resolution) MCARI(resolution) IRECI(resolution) CCCI(resolution, min,max) NDRE_1(resolution) MTCI(resolution) CI_redEdge(resolution) CI_greenEdge(resolution) EVI(resolution) NDVI_redEdge(resolution) Color(resolution) NDVI705(resolution) mNDVI705(resolution) NDI45(resolution) RDVI(resolution) TCARI OSAVI TCARI_OSAVI(resolution) OpenImageAndSaveMEtadata(image_name, resizeValie,saveMetadata): Abre una imagen, cambia su resolución (si es necesario 'RESIZING'), la recorta para que coincida con el shape y elimina píxeles defectuosos. save2CSV(name, im): Guarda el valor de los píxeles de im en formato CSV saveImages(im, numberOfBands, tittle) saveMetadataAndSetFrame(ds) totalCoordinates(RasterSize): Devuelve las coordenadas en WGS84/UTM de las esquinas superior-izquierda e inferior-derecha del tile. Pix2Coor(geoTransform, Px,Py): Devuelve las coordenadas correspondientes al píxelX,Y getXYMinMax: De una lista de puntos, devuelve el punto superior-izquierda e inferior-derecha

Page 23: Graduado en Ingeniería Informáticaoa.upm.es/51598/1/TFG_JAVIER_BALANZATEGUI_SANCHEZ.pdf · de libre distribución y accesible a todo el mundo. La selección de los índices a incluir

"Estimación de Nitrógeno a partir de imágenes Sentinels" Javier Balanzategui Sánchez

23

mapper(matrix, oldRange, NewRange): Remapea una matriz(imagen). extract_data(route_zip): Descomprime el .zip de Sentinel-2 band_index(band,bands_list_extension): Usado por extract_data geoNamePackage(route):Devuelve el nombre del archivo dado por la ruta (último segmento del path) show_message(msg): Crea un mensaje pop-up al usuario.

Figura 8. Diagrama de clase SpectralIndexes.

A continuación se detallará algunos métodos principales que son la base para el cálculo de los índices:

clase index_extractor: Se trata de la clase que contiene toda la interfaz de QGIS. Es la encargada de interpretar las opciones de usuario y lanzar la batería de índices de la clase SpectralIndexes.

o createDialog(self): Genera todas las opciones de la interfaz. Su funcionamiento se explica más en detalle en el apartado 4.1.2

o checkIfShape(self): Método que comprueba si se ha seleccionado o no un shape para calcular los índices dentro de su área o del todo el tile por el contrario. Llama al método index_extractor.getShapefromLayer(name) que busca el nombre del shape en las capas del proyecto QGIS. Acto seguido extrae los puntos de la capa shape.

o calculate_indexes(self): Es el método encargado de interpretar las entradas y generar los índices con sus opciones. Obtiene todos los parámetros y opciones elegidas a través de variables globales de la clase. Su funcionamiento se detalla en el apartado 4.1.3.

clase SpectralIndexes: Es la librería creada para el cómputo de los índices espectrales y contiene también todas las funcionalidades auxiliares necesarias para ello. Contiene en variables de clase las rutas a todas las bandas de Sentinel-2 en el sistema. De ésta manera no es necesario tener las matrices abiertas en memoria, si no que se abrirán cuando se necesiten. Se habla sobre ello en el apartado 4.1.3.

Page 24: Graduado en Ingeniería Informáticaoa.upm.es/51598/1/TFG_JAVIER_BALANZATEGUI_SANCHEZ.pdf · de libre distribución y accesible a todo el mundo. La selección de los índices a incluir

"Estimación de Nitrógeno a partir de imágenes Sentinels" Javier Balanzategui Sánchez

24

o Contiene para cada índice, un método que tiene la forma nombre_índice (self, resolution) donde resolution es la resolución elegida. El método ha de devolver una tupla formada por 1)la matriz con el índice y 2) el nombre del índice con la resolución en él como por ejemplo: 'OTCI_10m'.

o openImageAndSaveMetadata(self, image_name, resizeValue, saveMetadata): Es el método encargado de abrir la ruta de la banda y devolver su matriz. Automatiza el pre-procesado que hay que elaborar para cada banda como se explica en el apartado 4.1.3.

o save2CVS(self,name,im): recibe la imagen y la ruta donde se generará el archivo CSV con los datos del índice. Almacena por columnas 'coordenada-x', 'coordenada-y' y 'valor' en raw del índice (guarda la salida antes de la fase de Resizing).

o saveImages(self,im,numberOfBands,title): Guarda el índice (matriz) en una imagen del formato GeoTiff con su meta información (sistema de coordenadas, ubicación y escala entre otros).

o saveMetadataAndSetFrame(self, ds): Se encarga de adquirir los metadatos de una imagen y de recortar la imagen al área de trabajo (si se ha seleccionado un shape). Es llamado desde SpectralIndexes.openImageAndSaveMetadata que automatiza todo el proceso de carga de imágenes.

o Pix2Coord(geoTransform, Px, Py) y Coord2Pix(lenghtBigFrame,coordinatesBigFrame, Cx, Cy): Son los métodos encargados de convertir coordenadas a índices de la matriz (píxeles) y viceversa.

o getXYMinMax(lista): Calcula a partir de una lista de puntos, el punto superior-izquierda e inferior-derecha que son los que definen en el proyecto, las dimensiones que encuadran un rectángulo que contenga en su interior a todos los puntos de la lista.

o mapper(matrix, oldRange, newRange): Es el encargado de transportar un rango de valores en otro. Usados para convertir la salida de los índices (normalmente [0,1]) a el rango de almacenado de la imagen [0,255]. Se explica más en detalle en el apartado 4.1.3.4.

Page 25: Graduado en Ingeniería Informáticaoa.upm.es/51598/1/TFG_JAVIER_BALANZATEGUI_SANCHEZ.pdf · de libre distribución y accesible a todo el mundo. La selección de los índices a incluir

"Estimación de Nitrógeno a partir de imágenes Sentinels" Javier Balanzategui Sánchez

25

o extract_data(route_zip): Descomprime el ZIP del producto Sentinel-2 y devuelve una lista ordenada de todas las rutas donde están las bandas descompresas.

Hay que señalar que tanto las imágenes Geotiff de los resultados, como las exportaciones a ficheros CSV, los hace dentro de la misma carpeta o directorio que contiene el ZIP del producto Sentinel que se le suministra a la herramienta.

44.1.1 PARTES DE UN MÓDULO DE QGIS Un módulo de QGIS se instala a través de un ZIP que contiene la carpeta con el módulo. Dicha carpeta (cuyo nombre ha de ser el del propio módulo) a su vez, está formada por las siguientes partes:

i18n - Directorio usado para la traducción de la herramienta si se desea que esté disponible en varios idiomas.

img - Directorio donde se almacena el icono con el que se mostrará la herramienta en el menú de plugins de QGIS.

_init_.py: primer script llamado por QGIS que inicializa la carga del módulo. Arranca la clase 'index_extractor' de 'main_index_extractor.py'.

main_index_extractor.py: Clase principal del módulo que carga la interfaz de usuario e interactúa con ella.

main_index_extractor_dialog.py: Se encarga de cargar la plantilla de Qt en QGIS.

main_index_extractor_dialog_base.ui: Plantilla de Qt de la interfaz de usuario. Makefile: Usado para compilar el plugin. Se ha de incluir los scripts de Python

.py que se cargarán con el módulo. metadata.txt: información que se mostrará en la pestaña de Complementos de

QGIS donde muestra una breve descripción del módulo, sus autores y sus repositorios fuente.

NitrogenIndex.py: Fichero que incluye la clase 'SpectralIndexes' que contiene los métodos que calculan los índices.

resources.py: fichero usado para la compilación del módulo. resources.qrc: Contiene la relación del nombre-icono del módulo.

El esqueleto se ha generado automáticamente a través del módulo plug-in builder de QGIS, haciendo que la mayoría de dependencias e interconexiones con la herramienta ya estén resueltas y sólo teniendo que diseñar y desarrollar las funcionalidades de éste TFG.

Page 26: Graduado en Ingeniería Informáticaoa.upm.es/51598/1/TFG_JAVIER_BALANZATEGUI_SANCHEZ.pdf · de libre distribución y accesible a todo el mundo. La selección de los índices a incluir

"Estimación de Nitrógeno a partir de imágenes Sentinels" Javier Balanzategui Sánchez

26

44.1.2 INTERFAZ GRÁFICA. La interfaz gráfica está desarrollada sobre Qt [32]. Qt es un Framework multiplataforma orientado a objetos visuales para interfaces gráficas de usuario. Una de las ventajas de Qt es que permite portabilidad a distintas plataformas (recordamos que QGIS puede ser instalado en Windows, Mac, y Linux).

Figura 9. Diseño de Qt.

Observando la Figura 9 podemos ver la plantilla de la interfaz gráfica de usuario. En la que cada elemento posee su propia etiqueta identificativa (la columna 'Object' en la parte derecha de la pantalla) que se usará después en el código para referirse a ella , modificarla y acceder a sus propiedades.

Lo primero para poder usar la interfaz gráfica en Python3 es importar las librería PyQt5 que además viene ya incluido en el entorno de Python3 de QGIS.

El elemento central tableWidget se observa que de forma predeterminada no contiene los índices. La forma en que los índices de incluyen en el tableWidget es a través del código. Así es más fácil tener una plantilla que pueda servir para un número variable de índices pues la plantilla nunca cambiará y no habrá que editarla. Todos los índices y el código para completar la tabla se encuentran en el método index_main_extractor.createDialog() mostrado en la Figura 10.

Page 27: Graduado en Ingeniería Informáticaoa.upm.es/51598/1/TFG_JAVIER_BALANZATEGUI_SANCHEZ.pdf · de libre distribución y accesible a todo el mundo. La selección de los índices a incluir

"Estimación de Nitrógeno a partir de imágenes Sentinels" Javier Balanzategui Sánchez

27

Figura 10. método index_extractor.createDialog().

Como se puede ver cada elemento es accedido a través de la variable global self.dlg.{id} donde {id} es el nombre de cada elemento asignado en el Framework de Qt.

Para la inclusión de los índices y sus opciones en la tabla, ha sido necesario crear una lista de elementos con toda su información (VI). Cada fila de la tabla, que representa un índice espectral y sus opciones, es incluida en la tabla como un elemento de la clase QTableWidgetItem pues la tabla solo acepta dichos elementos. A cada elemento se le añade un checkbox a través de sus propiedades de elemento. Dicho checkbox es el que

Page 28: Graduado en Ingeniería Informáticaoa.upm.es/51598/1/TFG_JAVIER_BALANZATEGUI_SANCHEZ.pdf · de libre distribución y accesible a todo el mundo. La selección de los índices a incluir

"Estimación de Nitrógeno a partir de imágenes Sentinels" Javier Balanzategui Sánchez

28

más adelante en el método getChecked() se comprobará si el usuario ha seleccionado o no la opción para incluirlo a la lista de índices espectrales a calcular.

Adicionalmente en el índice espectral 'CCCI' (Canopy Chlorophyll Content Index) se añaden dos opciones extra que son min y max. Debido a la peculiaridad del índice (explicado en el apartado 4.2.2) se deja elegir al usuario los rangos [entre 0 y 1] en los que el usuario desea que se remuestree el índice (Resizing explicado en el apartado 4.1.3.4).

44.1.3 CÁLCULO DE ÍNDICES Se ha creado una librería que implementa todos los índices propuestos en este TFG. Así es más sencilla su utilización y ampliación de los índices disponibles en un futuro si se deseara. En la clase index_extractor se realiza para cada resolución escogida de cada índice las siguientes operaciones:

1. Calcula el índice para la resolución escogida 2. Guarda los resultados en memoria y en formato CSV (si procede). Mirar función

SpectralIndexes.Save2CSV del apartado 4.1. 3. Lo remuestrea del rango de salida original a [0,255] (4.1.3.4) y lo guarda en

disco con formato GeoTiff.

*Nota: Como se destacó antes, la ruta donde el módulo almacena tanto el CSV como el índice se encuentra dentro del directorio donde se encuentra el ZIP del producto Sentinel-2. El nombre del nuevo directorio es el mismo que el del tile con ‘_nitrogenIndex’ concatenado al final.

4. Añade la imagen almacenada al proyecto en QGIS (en el apartado de capas).

Se puede ver un ejemplo de todo esto en la Figura 11 con el cálculo del índice OTCI.

Figura 11. Cálculo índice OTCI desde interfaz (index_extractor).

Page 29: Graduado en Ingeniería Informáticaoa.upm.es/51598/1/TFG_JAVIER_BALANZATEGUI_SANCHEZ.pdf · de libre distribución y accesible a todo el mundo. La selección de los índices a incluir

"Estimación de Nitrógeno a partir de imágenes Sentinels" Javier Balanzategui Sánchez

29

La clase 'SpectralIndexes' es quien implementa los métodos del cálculo de índices. También contiene otros métodos auxiliares que ayudan a su cálculo, descompresión de imágenes, almacenamiento, exportación al formato CSV y otras funcionalidades que la harían autosuficiente como librería a la que se podría incluir en otros proyectos de tratamiento de imágenes de Sentinel-2. Cuando se invoca al constructor de dicha clase, se descomprime el ZIP y almacena en variables de clase todas las rutas donde se almacenan en disco las bandas (imágenes) descomprimidas de Sentinel-2. Es una solución para no tener abiertas en memoria permanentemente todas las bandas espectrales, ganando mucha memoria. Dichas bandas solo las abrirán los métodos que las necesiten y cuando las necesiten, para posteriormente ser cerradas; todo para que el consumo de recursos sea mínimo. Dicho diseño ha sido realizado por la gran cantidad de memoria que cada banda (o matriz) puede llegar a ocupar. De media una imagen con resolución espacial de 10m2 ocupa 200MB, una de 20m2 60MB y una de 60m2 7MB.

A la hora del cálculo de índices necesitamos para una misma posición i,j el valor en cada una de las bandas usadas por el índice espectral en cuestión. Si cogiéramos el ejemplo del índice 'NDRE' (Normalized Difference Red Edge) sería algo como en la Figura 12:

Figura 12. Fórmula NDRE.

Donde B790 y B720 son las bandas en las longitudes de onda 790nm y 720nm. Tendríamos que recorrer las dos bandas píxel por píxel, realizando las operaciones con sus valores. Sin duda una tarea pesada para cualquier computador. Sin embargo, podemos aprovecharnos del paralelismo y vectorización de las arquitecturas de los procesadores modernos y calcular los índices espectrales directamente con operaciones matriciales. Es decir, operando directamente con las matrices y dejando que el intérprete de Python haga las operaciones de manera eficaz. En el módulo se usan directamente las matrices de las bandas, y se combinan entre sí a partir de llamadas a los operadores básicos de Numpy: numpy.add(), numpy.divide(), numpy.substract() y numpy.multiply(). Así se asegura que el algoritmo para computar las matrices no es elemento a elemento y el algoritmo es el óptimo para la estructura de datos. Puesto que no hay que olvidar que aunque matrices, sobre todo son estructuras de datos de Numpy.

A continuación en la Figura 13 se muestra un ejemplo de cálculo de un índice para ver todos los fundamentos que hay detrás del código. Se ha escogido el índice 'MTCI' (Meris Terrestrial Chlorophyll Index) por su sencillez.

Page 30: Graduado en Ingeniería Informáticaoa.upm.es/51598/1/TFG_JAVIER_BALANZATEGUI_SANCHEZ.pdf · de libre distribución y accesible a todo el mundo. La selección de los índices a incluir

"Estimación de Nitrógeno a partir de imágenes Sentinels" Javier Balanzategui Sánchez

30

Figura 13. Cálculo índice MTCI

Podemos ver dividirlo en dos grandes etapas: 1) Obtención de las matrices para el cálculo del índice y 2) cálculo y optimización.

En el primer paso se abren las imágenes correspondientes a la resolución más alta disponible, en el índice MTCI es de 10m2. En éste caso la resolución de la banda 04 no concuerda con la de la banda 05 y 06. Esto crearía problemas puesto que las dimensiones de las matrices no son las mismas y no podríamos operar con ellas. En estos casos se realiza un proceso de RESIZING explicado en el apartado 4.1.3.1 para convertir todas a una misma resolución y al tener las mismas dimensiones, poder hacer los cálculos.

Para abrir una banda usamos el método ‘openImageAndSaveMetadata()’ de la clase ‘SpectralIndexes’. Dicho método automatiza todo el proceso de carga de la banda y otras funciones extra. Se puede ver como en la Figura 14 se realizan las siguientes funciones:

1. Se abre la imagen almacenada en disco.

Page 31: Graduado en Ingeniería Informáticaoa.upm.es/51598/1/TFG_JAVIER_BALANZATEGUI_SANCHEZ.pdf · de libre distribución y accesible a todo el mundo. La selección de los índices a incluir

"Estimación de Nitrógeno a partir de imágenes Sentinels" Javier Balanzategui Sánchez

31

2. Guarda los metadatos si saveMetadata es True. Es necesario hacer esto en la primera apertura de una banda dentro de cada índice. Ya que los metadatos que figurarán en el índice calculado han de ser los de la banda más pequeña. El resto de bandas al ser redimensionadas (si procede) no contienen los datos de geolocalización del índice calculado.

3. Realiza el RESIZING un número N de veces (las veces que se quiere aumentar la dimensión de la matriz) indicado en el parámetro ‘resizeValue’ (4.1.3.1).

4. Corta la matriz en los límites del shape aplicado si hay. Si no, por defecto ymin, ymax, xmin, xmax son las esquinas del tile.

5. Elimina los píxeles defectuosos. Debido a que en la especificación de productos de Sentinel-2 cada píxel sólo usan 12 bits para representarlo [0-4095] aunque las imágenes están almacenas como 16-bits por píxel. Luego hay que hacer un pequeño barrido y eliminar aquellos píxeles que se salgan del rango pues están defectuosos y no podemos fiarnos de su valor.

6. Se normaliza el resultado de la banda en el rango [0,1] para que la salida de los índices espectrales coincidan con la de su definición de la literatura correspondiente.

Figura 14. Método SpectralIndexes.openImageAndSaveMetadata

Page 32: Graduado en Ingeniería Informáticaoa.upm.es/51598/1/TFG_JAVIER_BALANZATEGUI_SANCHEZ.pdf · de libre distribución y accesible a todo el mundo. La selección de los índices a incluir

"Estimación de Nitrógeno a partir de imágenes Sentinels" Javier Balanzategui Sánchez

32

En el segundo paso se realiza el cálculo del índice optimizando el uso de memoria. Cada vez que usamos una variable para almacenar un resultado parcial del cálculo del índice, estamos ocupando mucha memoria debido a las dimensiones de las matrices. Los cálculos están hechos en orden, de tal forma que podamos ir eliminando variables a medida que dejen de ser utilizadas. Se hacen primero los cálculos en los que las bandas aparecen solo en ese cálculo y así poder borrarla de memoria cuanto antes. Con esto se logra que en memoria no se tengan almacenadas más de 3 o 4 matrices a la vez puesto que ya se ha visto que la memoria jugaba un papel importante en la velocidad de éste módulo.

44.1.3.1 RESIZING A la hora calcular un índice en su resolución espacial más alta disponible, hay casos en los que no se disponen todas las bandas en la máxima resolución. Pongamos el ejemplo del índice MTCI donde se disponen de las bandas 4 (resolución 10m2), 5 y 6 (ambas con resolución de 20m2). Los más sencillo hubiera sido directamente calcular el índice en la resolución de 20m2 no dando la opción de calcularse en la de 10m2 puesto que no tenemos las 3 bandas necesarias en esa resolución. Lo que se realiza es un proceso de redimensionado donde se multiplica el número de píxeles de una banda, haciendo la matriz más grande (no ganamos en resolución en sí, si no lo que hacemos es repetir la matriz X veces hasta tener las dimensiones deseadas). De tal forma que podemos tener las mismas dimensiones en todas las matrices (aunque sean de resoluciones originales distintas) y operar con ellas. En realidad no estamos ganando en fiabilidad, pues estamos asumiendo que al hacer crecer una banda en dimensiones, los nuevos píxeles tienen el mismo valor del pixel con el que han sido creados. Es decir, observando la Figura 15, asumimos que los sub-píxeles de los que está formado un color tienen también el mismo color. Algo que en la realidad no tiene porqué ocurrir. No obstante de esta manera ofrecemos un modo de poder calcular los índices en la resolución de la banda más baja disponible.

Page 33: Graduado en Ingeniería Informáticaoa.upm.es/51598/1/TFG_JAVIER_BALANZATEGUI_SANCHEZ.pdf · de libre distribución y accesible a todo el mundo. La selección de los índices a incluir

"Estimación de Nitrógeno a partir de imágenes Sentinels" Javier Balanzategui Sánchez

33

Figura 15. RESIZING de una matriz 2x2 en otra de 4x4.

En el momento de hacer el RESIZING, en nuestro caso, debemos convertir matrices de una resolución espacial menor en otra mayor (matrices mas pequeñas en matrices mas grandes). La función que se ha usado para este cometido ha sido numpy.repeat( img, k, n). Ésta función repite las filas k-veces y las columnas n-veces veces de manera intercalada. Gracias a que las relaciones entre las resoluciones espaciales son enteros, se ha podido emplear dicha solución.

Resolución 20m2: Para pasar a 10m2 se ha de multiplicar el número de filas y columnas por 2.

Resolución 60m2: Para pasar a 20m2 se ha de multiplicar el número de filas y columnas por 3. Para pasar a 10m2 se multiplica por 6.

44.1.3.2 METADATOS Las bandas de Sentinel-2 se suministran en formato JPG2000 (JP2). Dichas bandas contienen metadatos sobre: Espacio de coordenadas (en nuestro caso WGS84 /UTM), coordenadas del primer píxel (punto superior-izquierda del tile), y razón. La razón es una constante que contiene cuántos metros cuadrados forman un píxel. Como hemos visto antes, la razón puede ser 10, 20 o 60 dependiendo de la resolución de la banda.

Se hacen uso de los metadatos a la hora de posicionar nuestras imágenes y en caso de aplicar un shape, conocer la posición que ocupará la misma dentro del tile. Posteriormente dichos metadatos son guardados en las imágenes GeoTiff generadas por nuestro módulo.

4.1.3.3 TRANSFORMACIÓN DE COORDENADASPara la realización de éste módulo ha sido necesario convertir coordenadas geográficas a coordenadas en la matriz y viceversa. Cuando se genera una capa shape, ésta contiene

Page 34: Graduado en Ingeniería Informáticaoa.upm.es/51598/1/TFG_JAVIER_BALANZATEGUI_SANCHEZ.pdf · de libre distribución y accesible a todo el mundo. La selección de los índices a incluir

"Estimación de Nitrógeno a partir de imágenes Sentinels" Javier Balanzategui Sánchez

34

una lista donde cada elemento es un par de coordenadas x e y (en formato WGS84 /UTM) que representa un punto del shape. Tal que a la hora de recortar las matrices para calcular sólo el índice en el área encerrada por el shape, es necesario convertir estas coordenadas en posiciones de la matriz (o píxeles).

Para ello se han creado los métodos Spectral_indexes.Pix2Coord y Spectral_indexes.Coord2Pix que podemos ver en la Figura 16.

Figura 16. Métodos SpectralIndexes.Pix2Coord y SpectralIndexes.coord2pix

Los métodos se basan en la premisa de que se conoce la coordenada de la esquina superior izquierda del tile. Con esa información se puede extraer la longitud del tile y saber la razón. Con todo ello ya podemos transformar fácilmente unas referencias en otras.

Adicionalmente, a la hora de aplicar un shape, se ha decidido que el recorte se realizará al rectángulo mínimo capaz de contener todos los puntos. Esto se ha hecho para que la optimización en el acceso y recorte de las matrices sea lo más rápido posible, ahorrando tiempo en el cálculo de los índices. De lo contrario, habría que recorrer todas las bandas implicadas en el cálculo e ir píxel por píxel y mirando si dicho píxel está contenido dentro del shape o no. De ésta forma el recorte se produce muy rápido, al acceder solo a una submatriz de la matriz.

44.1.3.4 REMUESTREO DE LOS VALORES DE LOS ÍNDICES Debido a que los valores de los índices es continua y acotada en los rangos indicados en la Tabla 1(normalmente entre [0,1]), se ha realizado un remuestreo del rango de origenal intervalo [0,255]. Al almacenar una imagen en disco, los píxeles son guardados como

Page 35: Graduado en Ingeniería Informáticaoa.upm.es/51598/1/TFG_JAVIER_BALANZATEGUI_SANCHEZ.pdf · de libre distribución y accesible a todo el mundo. La selección de los índices a incluir

"Estimación de Nitrógeno a partir de imágenes Sentinels" Javier Balanzategui Sánchez

35

enteros sin signo (1 o 2 bytes dependiendo del formato). Si guardásemos el resultado sin más, perderíamos todos los valores decimales que posee el resultado guardando finalmente solo ceros o unos dependiendo del entero más próximo. La salida es reconvertida al rango máximo que permite nuestro formato de imagen GeoTiff, que es [0,255] (1 Byte) para así no perder la precisión de la salida de los índices. De esta manera tenemos una imagen que se podrá visualizar correctamente en cualquier visualizador de imágenes que acepte el formato GeoTiff además de QGIS.

No obstante si el usuario desea guardar los valores en raw del índice, es posible a través de la función de guardado en CSV. En dicho CSV se almacenan las coordenadas y los resultados del índice antes de ser remuestreado, conservando los valores en el intervalo original.

44.1.3.5 COMPOSICIÓN COLOR Aunque no es un índice estrictamente hablando, se ha visto interesante su inclusión en el módulo. Se trata de formar la imagen a color del área seleccionada usando las bandas que Sentinel provee.

QGIS da la opción de hacerlo también de forma más manual, sin embargo, se ha decidido automatizar el proceso para que los usuarios de una sola vez puedan generar todos los índices que necesiten.

Bandas: R: B4, G: B3, B: B2

Las bandas B3 y B2 no son estrictamente Verde y Roja, son más bien Amarilla-Verdosa y Naranja. Sin embargo Sentinel no dispone de más bandas en el rango visible para poder interpolar un valor para las bandas que necesitamos para componer RGB. Sin embargo el resultado da una idea del área que se está estudiando.

4.2 ÍNDICES ESPECTRALES A continuación se explicarán algunas decisiones tomadas a la hora de generar algunos de los índices espectrales escogidos.

Lo que representan los píxeles de las imágenes son valores normalizados en [0,255]. La salida original de los índices son valores reales en los rangos indicados en la Tabla 1.

4.2.1 OLCI TERRESTRIAL CHLOROPHYLL INDEX Estima el nivel de clorofila de las plantas.

Page 36: Graduado en Ingeniería Informáticaoa.upm.es/51598/1/TFG_JAVIER_BALANZATEGUI_SANCHEZ.pdf · de libre distribución y accesible a todo el mundo. La selección de los índices a incluir

"Estimación de Nitrógeno a partir de imágenes Sentinels" Javier Balanzategui Sánchez

36

Implementación: Para implementarlo se necesita la banda centrada en 681nm con un hombro de ±10nm es decir, se necesita el valor espectral en el rango [671nm,691nm]. Sin embargo se disponen sólo de las siguientes bandas: B4 665nm(645,685) y B5 705nm(690,713). Entonces, para conseguir el valor en 681nm se decide interpolar las Bandas 4 y 5 debido a que el valor que buscamos se encuentra justo entre ellas.

44.2.2 CHLOROPHYLL CONTENT CANOPY INDEX Mide el nivel de clorofila de la vegetación. Usa el índice NDRE y lo normaliza con dos umbrales: NDREmin y NDREmax. Emplea una aproximación bidimensional donde compensa el aumento de la biomasa del follaje e incluye las bandas NIR, que son sensibles a los pequeños cambios de Nitrógeno.

Implementación: Las constantes NDREmin y NDREmax dependen del tipo de suelo. En el estudio de Tilling et Al [33] usa unos valores para la tierra Italiana y Australiana. Debido a que España comparte el mismo tipo de suelo que Italia [34] se han implementado por defecto los mismos valores NDREmin y NDREmax que son 0.24 y 0.61 respectivamente. No obstante, en la interfaz gráfica se da la opción al usuario de cambiar estos valores.

4.2.3 ENHANCED VEGETATION INDEX En áreas donde el LAI es alto, el NDVI se puede mejorar incluyendo información de las bandas azules del espectro que ayudan a corregir las señales de fondo del suelo y las influencias atmosféricas. El resultado es el índice EVI. Su resultado es [-1,1] donde la vegetación saludable se suele situar entre [0.2,0.9].

Implementación: Debido a que el rango de salida es [-1,1] se han transportado sus resultados (a la hora del guardado en disco, no en los resultados en crudo del CSV) a [0,2] sumando 1 a los resultados del índice.

4.2.4 NORMALIZED DIFFERENCE RED EDGE Mide el estado de salud de la planta, sin embargo, es muy sensible a los cambios de Nitrógeno.

Implementación: Se necesita la reflectancia en la longitud de onda 720nm con un hombro de ±10nm. Sin embargo solo tenemos las bandas 705nm[690nm,713nm] y 740nm[730nm,750nm]. La banda R720 se encuentra en medio de una gran pendiente, viendo la Figura 5 del perfil espectral de la vegetación se observa que se encuentra en

Page 37: Graduado en Ingeniería Informáticaoa.upm.es/51598/1/TFG_JAVIER_BALANZATEGUI_SANCHEZ.pdf · de libre distribución y accesible a todo el mundo. La selección de los índices a incluir

"Estimación de Nitrógeno a partir de imágenes Sentinels" Javier Balanzategui Sánchez

37

medio de las bandas B5 y B6. Usando los resultados usando sólo B5 o usando sólo la B6 se alejan de los resultados proporcionados usando la R720. Así pues se decide hacer una media para hallar el valor en mitad de la pendiente (722nm) que es lo que más se aproxima a la banda necesitada.

44.2.5 CHLOROPHYLL INDEX GREEN EDGE Cumple la misma función que el CI-RedEdge, sin embargo, éste índice usa la banda verde en lugar de la roja. Las ventajas de usar esa banda es que tiene una resolución espacial mayor (10m frente a los 20m de B5). Implementación: El rango de resultados de este índice no viene definido en la literatura. Por lo tanto estudiando los histogramas de su resultado en distintos tiles, se observa que el rango dónde este índice devuelve los resultados es el de [0,10] Se puede ver el histograma del tile T30TVK en la Figura 17.

Figura 17. Histograma del índice CI-GreenEdge para el tile T30TVK de 2018-02-26

4.2.6 NORMALIZED RED EDGE-RED INDEX Es un índice parecido a NDVI pero usa la banda Near-Infrared (NIR).

Implementación: Al igual que con Chlorophyll Index-Green edge, en la literatura no viene definida su salida. Así que se ha tenido que someter a un proceso igual para

Page 38: Graduado en Ingeniería Informáticaoa.upm.es/51598/1/TFG_JAVIER_BALANZATEGUI_SANCHEZ.pdf · de libre distribución y accesible a todo el mundo. La selección de los índices a incluir

"Estimación de Nitrógeno a partir de imágenes Sentinels" Javier Balanzategui Sánchez

38

estudiar su salida. Se ha encontrado que los resultados se agrupan en el rango [0,5] como se puede ver en el histograma de la Figura 18.

Figura 18. Histograma del índice NRERI para el tile T30TVK de 2018-02-26

44.2.7 RED DIFFERENCE VEGETATION IDEX Se usa para medir el estado de la vegetación. Mejora el NDVI ya que usa información de la banda NIR.

Implementación: Se necesita la banda R800 de la que no se dispone en el producto de Sentinel-2. Solo podemos usar las dos bandas más próximas que son la B7(783nm) o la B8(835nm). Al ver el perfil espectral medio de la vegetación de la Figura 5 se puede ver que entre B7 y B8 no hay una gran diferencia en el valor de reflectancia medio. Así pues se decide usar la banda 7 pues es la más próxima y tiene un hombro [765,797] que coincide al 50% con la banda R800[790,810] que es la que necesitamos.

4.2.8 MODIFIED CHLOROPHYLL ABSORTION IN REFLECTANCE INDEX Mide el nivel de absorción de clorofila de forma muy sensible a las variaciones de LAI. Es un índice peculiar ya que los resultados han de interpretarse a la inversa. Las zonas

Page 39: Graduado en Ingeniería Informáticaoa.upm.es/51598/1/TFG_JAVIER_BALANZATEGUI_SANCHEZ.pdf · de libre distribución y accesible a todo el mundo. La selección de los índices a incluir

"Estimación de Nitrógeno a partir de imágenes Sentinels" Javier Balanzategui Sánchez

39

oscuras son las que más reflectancia tienen en lugar de ser al revés como en la mayoría de índices.

Implementación: Todas las bandas necesarias para su cálculo estaban disponibles en el paquete de Sentinel-2. A la hora de calcular el índice para la resolución de 10m, la banda 5 no estaba disponible en esa resolución, así que se ha hecho un proceso de resizing.

44.2.9 INVERTED RED EDGE CHLOROPHYLL INDEX Este índice mide el Leaf Area Index (LAI). Nos sirve para calcular junto con otro índice que calcule el Leaf Chlorophyll Content (LCC) el Canopy Chlorophyll Content (CCC).

CCC = LAI * LCC [16]

Finalmente el CCC sí es utilizado para estimar el nivel de Clorofila de la planta. Este índice produce unos resultados parecidos a los de NDI45 pero algo más precisos. Implementación: Todas las bandas necesarias para su cálculo estaban disponibles en el paquete de Sentinel-2. A la hora de calcular el índice para la resolución de 10m, se ha hecho un resizing de las bandas 5, 6 y 7.

4.2.10 MERIS TERRESTRIAL CHLOROPHYLL INDEX Mide el Leaf Chlorophyll Content (LCC). Posee el doble de relación señal/ruido que NDVI. Usa el desplazamiento en la banda NIR lo que hace que siga siendo receptivo incluso con altos niveles de reflectancia donde otros índices se saturarían.

Implementación: Todas las bandas necesarias para su cálculo estaban disponibles en el paquete de Sentinel-2. A la hora de calcular el índice para la resolución de 10m, se ha hecho un resizing de las bandas 5, 6.

4.2.11 CHLOROPHYLL INDEX RED EDGE Mide el Leaf Chlorophyll Content (LCC). Junto con LAI se puede obtener el CCC que es lo que se busca para estimar el nivel de Clorofila y Nitrógeno.

Page 40: Graduado en Ingeniería Informáticaoa.upm.es/51598/1/TFG_JAVIER_BALANZATEGUI_SANCHEZ.pdf · de libre distribución y accesible a todo el mundo. La selección de los índices a incluir

"Estimación de Nitrógeno a partir de imágenes Sentinels" Javier Balanzategui Sánchez

40

Implementación: Todas las bandas necesarias para su cálculo estaban disponibles en el paquete de Sentinel-2. Éste índice no está disponible en la resolución de 10m ya que no presenta ninguna banda involucrada en esa resolución.

44.2.12 RED EDGE NORMALIZED VEGETATION INDEX (NDVI705) Mejora al NDVI en sensibilidad ante pequeños cambios en el follaje. Su resultado es de [-1,1] donde las plantas sanas obtienen [0.2, 0.9]. Sin embargo no es muy útil estimando los niveles de Nitrógeno.

Implementación: Debido a que el rango de salida es [-1,1] se han transportado sus resultados a [0,2] sumando 1 a los resultados del índice. Éste índice no está disponible en la resolución de 10m ya que no presenta ninguna banda involucrada en esa resolución.

4.2.13 MODIFIED RED EDGE NORMALIZED VEGETATION INDEX Mide Cantidad, calidad y desarrollo de la vegetación. Mejora al NDVI705 añadiendo correcciones a la reflexión especular de las hojas. Tampoco es muy bueno estimando Nitrógeno.

Implementación: Éste índice no está disponible en la resolución de 10m ya que no presenta ninguna banda involucrada en esa resolución. En la resolución de 20m, la banda 1 no está disponible, así que se ha hecho un resizing.

4.2.14 NORMALIZED DIFFERENCE INDEX 45. Usado para medir el Leaf Area Index LAI. Da buenos resultados sin embargo, se satura con facilidad.

Implementación: A la hora de calcular el índice para la resolución de 10m, se ha hecho un resizing de la banda 6.

4.2.15 TRANSFORMED CHLOROPHYLL ABSORTION I REFLECTANCE INDEX Mide directamente el CCC (Chlorophyll Content Canopy).

Page 41: Graduado en Ingeniería Informáticaoa.upm.es/51598/1/TFG_JAVIER_BALANZATEGUI_SANCHEZ.pdf · de libre distribución y accesible a todo el mundo. La selección de los índices a incluir

"Estimación de Nitrógeno a partir de imágenes Sentinels" Javier Balanzategui Sánchez

41

Implementación: A la hora de calcular el índice para la resolución de 10m, se ha hecho un resizing de la banda 5.

44.2.16 OPTIMIZED SOIL ADJUSTED VEGETATION INDEX Su función es la de aportar información del estado de la planta aislando la señal del suelo. Su autor Rondeaux estimó que el valor óptimo de corrección del suelo era 0,16 (véase la fórmula en la Tabla 1).

Implementación: A la hora de calcular el índice para la resolución de 10m, se ha hecho un resizing de la banda 7.

4.2.17 TCARI/OSAVI Tiene como objetivo minimizar la influencia de LAI y maximizar la sensibilidad a la clorofila. Es un buen indicador del nivel de Clorofila y Nitrógeno y actualmente es de los índices más usados en este campo.

Implementación: Se ha dividido directamente la salida de los índices TCARI y OSAVI.

4.3 INCLUSIÓN DE UN NUEVO ÍNDICE. En el caso de querer añadir un nuevo índice, deberemos seguir los siguientes pasos:

1. Generar el correspondiente método dentro de la clase 'SpectralIndexes'. a. Deberá contemplar la posibilidad de aplicar el índice a distintas

resoluciones. Tal y como lo hacen los métodos actuales. b. Al abrir una nueva banda se usará el método

self.openImageAndSaveMetadata(banda, resize, saveMetadata) i. el parámetro resize tendrá el valor 0,2 o 3 dependiendo de si tiene

que hacer o no un Resizing tal como se indica en el apartado 4.1.3.1 para que todas las imágenes tengan las mismas dimensiones.

ii. saveMetadata deberá ser True para la banda con mayor resolución o la primera en ejecutarse en su defecto.

c. Tan pronto no se necesite más una banda, se recomienda borrar la variable de memoria con 'del banda' para ahorrar recursos en este costoso proceso.

Page 42: Graduado en Ingeniería Informáticaoa.upm.es/51598/1/TFG_JAVIER_BALANZATEGUI_SANCHEZ.pdf · de libre distribución y accesible a todo el mundo. La selección de los índices a incluir

"Estimación de Nitrógeno a partir de imágenes Sentinels" Javier Balanzategui Sánchez

42

2. En main_index_extractor.py a. Añadir a la lista el nombre del nuevo índice, su resolución y sus bandas

disponibles en la variable VI dentro del método index_extractor.createDialog(self).

b. Añadir en index_extractor.calculate_indexes(self) una nueva cláusula conteniendo al nuevo índice cuyo nombre es el insertado en la lista previamente. Se debería copiar una ya existente y sólo es necesario cambiar el segundo parámetro del método mapper(imagen,rangoOrigen, rangoDestino); Siendo X el valor de la salida del índice desde el que se desea remuestrear para convertirlo al nuevo rango de visualización [0,255].

Page 43: Graduado en Ingeniería Informáticaoa.upm.es/51598/1/TFG_JAVIER_BALANZATEGUI_SANCHEZ.pdf · de libre distribución y accesible a todo el mundo. La selección de los índices a incluir

"Estimación de Nitrógeno a partir de imágenes Sentinels" Javier Balanzategui Sánchez

43

55. DESCRIPCIÓN DEL MÓDULO En esta sección se abordará los temas más prácticos a la hora de instalar, descargar e instalar el módulo.

5.1 DESCARGA DE PRODUCTOS SENTINEL Lo primero que necesitamos para usar el módulo son los datos que someteremos al cálculo de los índices. el satélite Sentinel-2 produce un ZIP con todas las bandas de un determinado tile que puede ser descargado desde su plataforma online Sentinel hub [35].

Una vez ahí, deberemos hacernos una cuenta gratuita. Este paso es necesario para poder descargarnos las bandas que queramos dentro de la plataforma. Una vez registrados, y logueados dentro de la plataforma, nos desplazaremos hasta el área deseada y generaremos un rectángulo con la opción 'Pan' hasta englobar el área que queramos descargar. En la Figura 19 hemos seleccionado el área que usaremos para la validación en el capítulo 6.

Figura 19. Área seleccionada en SentinelHub.

Page 44: Graduado en Ingeniería Informáticaoa.upm.es/51598/1/TFG_JAVIER_BALANZATEGUI_SANCHEZ.pdf · de libre distribución y accesible a todo el mundo. La selección de los índices a incluir

"Estimación de Nitrógeno a partir de imágenes Sentinels" Javier Balanzategui Sánchez

44

Después, en la barra de búsqueda superior pulsaremos sobre el icono para ingresar los criterios de búsqueda deseados. En nuestro caso: 1) Sensing Period, 2) Mission: Sentinel-2 y 3) Product Type: S2MSI2A que hace referencia al tipo de producto de Sentinel que ya viene corregido atmosféricamente.

Figura 20. Opciones seleccionadas en SentinelHub.

Ingresadas todas las opciones como en la Figura 20, pulsaremos sobre el icono de búsqueda y nos saldrán una lista de tiles que se corresponden con nuestros criterios de búsqueda. Podremos cada uno de ellos mirar sus detalles por si queremos conocer el porcentaje del tile cubierto por nubes por ejemplo o descargarlo directamente. En la Figura 21 podemos ver desplegadas estas opciones.

Page 45: Graduado en Ingeniería Informáticaoa.upm.es/51598/1/TFG_JAVIER_BALANZATEGUI_SANCHEZ.pdf · de libre distribución y accesible a todo el mundo. La selección de los índices a incluir

"Estimación de Nitrógeno a partir de imágenes Sentinels" Javier Balanzategui Sánchez

45

Figura 21. Resultados de la búsqueda en Sentinelhub.

Lo que se nos descargará es un ZIP que directamente es lo que deberemos dar como input a nuestro módulo sin descomprimir.

55.2 GUÍA DE INSTALACIÓN DEL MÓDULO Para instalar módulo necesitaremos su comprimido ZIP. Se puede descargar del Github https://github.com/JBalanza/QGIS_Sentinel2IndexExtractor

Para instalarlo iremos a Complementos > Administrar e Instalar complementos > Instalar a partir de ZIP., una vez descargado, seleccionaremos el ZIP directamente descargado sin descomprimirlo.

Page 46: Graduado en Ingeniería Informáticaoa.upm.es/51598/1/TFG_JAVIER_BALANZATEGUI_SANCHEZ.pdf · de libre distribución y accesible a todo el mundo. La selección de los índices a incluir

"Estimación de Nitrógeno a partir de imágenes Sentinels" Javier Balanzategui Sánchez

46

55.3 USO Una vez instalada el módulo para lanzarlo, deberemos irnos a Complementos>Sentinel-2 Index Extractor>Extract VI for Sentinel-2. Se nos abrirá una ventana como en la figura 22

Figura 22. Pantalla inicial de la herramienta

La ventana inicial está compuesta por las siguientes partes:

1. La ruta donde se encuentra almacenado el fichero comprimido ZIP que contiene todas las imágenes y bandas de sentinel-2 y que nos hemos descargado de Sentinel Hub como se indica en el apartado 5.1. Dicho fichero deberá ser un producto de Sentinel-2 de nivel 2A (producto ya corregido atmosféricamente en TOC) para que los resultados del índice sean los más fieles posibles.

2. Nombre de la capa Shape que se puede usar para generar los índices espectrales dentro del área delimitada por ese shape. Si se deja en blanco se generarán los índices para todo el tile.

1

2 3

Page 47: Graduado en Ingeniería Informáticaoa.upm.es/51598/1/TFG_JAVIER_BALANZATEGUI_SANCHEZ.pdf · de libre distribución y accesible a todo el mundo. La selección de los índices a incluir

"Estimación de Nitrógeno a partir de imágenes Sentinels" Javier Balanzategui Sánchez

47

3. Alternativamente se pueden guardar los resultados en un fichero CSV que contiene por columnas los siguientes datos:

i. Ubicación en las coordenadas WGS84 / UTM eje X ii. Ubicación en las coordenadas WGS84 / UTM eje Y

iii. Valor del índice previo al remuestreo que se efectúa para convertir un valor en el rango de salida al rango [0,255].

Una vez ingresados todos los datos, podremos elegir tantos índices como queramos como vemos en la Figura 23

Figura 23. Selección de los índices a calcular.

Una vez seleccionados todos los índices deseados y al pulsar la tecla 'OK', nos saldrá el mensaje de la Figura 24 que deberemos aceptar para proseguir con la ejecución. Dicho mensaje es un aviso de que el programa podría tardar largo tiempo en realizar los cálculos puesto que son tareas computacionales muy pesadas. Es un aviso para el usuario de que no cierre el programa debido a la tardanza de éste en generar los resultados (5.4).

Page 48: Graduado en Ingeniería Informáticaoa.upm.es/51598/1/TFG_JAVIER_BALANZATEGUI_SANCHEZ.pdf · de libre distribución y accesible a todo el mundo. La selección de los índices a incluir

"Estimación de Nitrógeno a partir de imágenes Sentinels" Javier Balanzategui Sánchez

48

Figura 24. Mensaje de Aviso

Una vez calculados los índices espectrales, se habrán producido los siguientes recursos:

Los índices convertidos a imágenes en la pestaña de capas. Véase Figura 25

Las imágenes almacenadas en un nuevo directorio acabado en "_IndexExtractor" ubicado en el mismo directorio donde se encuentra el producto Sentinel-2 de origen (el comprimido ZIP).

El fichero CSV (si se ha seleccionado la opción) con los datos del índice espectral en la misma ruta que las imágenes y el fichero comprimido original.

Figura 25. Resultados

Page 49: Graduado en Ingeniería Informáticaoa.upm.es/51598/1/TFG_JAVIER_BALANZATEGUI_SANCHEZ.pdf · de libre distribución y accesible a todo el mundo. La selección de los índices a incluir

"Estimación de Nitrógeno a partir de imágenes Sentinels" Javier Balanzategui Sánchez

49

Para hacer uso de la funcionalidad de uso de un Shape deberemos generar una nueva capa de archivo Shape tal y como se muestra en la Figura 26:

Figura 26. Creación de la capa Shape

El 'Nombre de archivo' será el identificador que se usará para añadir en el campo de Shape del módulo.

Una vez creado, iremos generando los puntos que conforman nuestra área hasta un mínimo de 3 puntos. Para generar los puntos seleccionaremos la opción conmutar

Page 50: Graduado en Ingeniería Informáticaoa.upm.es/51598/1/TFG_JAVIER_BALANZATEGUI_SANCHEZ.pdf · de libre distribución y accesible a todo el mundo. La selección de los índices a incluir

"Estimación de Nitrógeno a partir de imágenes Sentinels" Javier Balanzategui Sánchez

50

edición y generar punto, tal como se muestra en la Figura 27. La herramienta generará el índice para el área cuadrada mínima que sea capaz de incluir al área formada por los puntos del Shape.

Figura 27. Generación de los puntos.

Ahora podremos pinchar en cualquier área del mapa y generará nuestro punto, nos pedirá que a cada punto que generemos le asignemos un identificador, éste puede ser el que quiera escoger el usuario y no tiene importancia real en nuestro módulo, a modo de ejemplo nosotros les iremos asignando el 1,2,3…etc.

Una vez generados todos los puntos, ya podremos ingresar el nombre del Shape en la herramienta y ésta calculará los índices elegidos sólo el área delimitada por los puntos que conforman el shape.

Page 51: Graduado en Ingeniería Informáticaoa.upm.es/51598/1/TFG_JAVIER_BALANZATEGUI_SANCHEZ.pdf · de libre distribución y accesible a todo el mundo. La selección de los índices a incluir

"Estimación de Nitrógeno a partir de imágenes Sentinels" Javier Balanzategui Sánchez

51

Figura 28. Generación de los índices respecto a un Shape

55.4 RECOMENDACIONES A la hora de elegir la cantidad de índices a calcular hay que tener en consideración que los tiempos de respuesta pueden variar desde unos pocos segundos hasta varios minutos dependiendo de la cantidad y resolución elegidas. Así mismo el espacio en disco también es otro tema importante. Dependiendo de la resolución pueden ocupar en disco:

10m ocupa 200MB. Con CSV hasta 3GB. 20m ocupa 60MB. Con CSV hasta 300MB. 60m ocupa 7MB. Con CSV hasta 105MB.

Si eligiéramos todos los índices con sus respectivos CSV podríamos necesitar almacenar en disco hasta 50GB. Se recomienda hacer uso de la funcionalidad de 'Shape' en la que los resultados son calculados de una región del tile y sólo generar los índices necesarios.

Page 52: Graduado en Ingeniería Informáticaoa.upm.es/51598/1/TFG_JAVIER_BALANZATEGUI_SANCHEZ.pdf · de libre distribución y accesible a todo el mundo. La selección de los índices a incluir

"Estimación de Nitrógeno a partir de imágenes Sentinels" Javier Balanzategui Sánchez

52

En algunos casos los índices calculados pueden contener áreas en negro. Se tratan de áreas que no se han podido calcular la reflectancia debido a píxeles defectuosos que los sensores poseen a veces y por tanto no se ha podido calcular el índice. Tal como se indica en el apartado 4.1.3 estos píxeles son eliminados del cómputo poniendo su valor a 0 (negro en la imagen).

Page 53: Graduado en Ingeniería Informáticaoa.upm.es/51598/1/TFG_JAVIER_BALANZATEGUI_SANCHEZ.pdf · de libre distribución y accesible a todo el mundo. La selección de los índices a incluir

"Estimación de Nitrógeno a partir de imágenes Sentinels" Javier Balanzategui Sánchez

53

66. RESULTADOS Vamos a comprobar la validez de los algoritmos implementados respecto al estudio del profesor Miguel Quemada [28]. El estudio se llevó a cabo en la finca de 'La Chimenea' (40.066741ºN, -3.545259ºE), un área cerca de la localidad de Aranjuez (Madrid, España) donde se llevó a cabo el estudio durante los meses de Abril y Julio de 2017.

Los detalles de los tiles que corresponden con el área a estudiar en las dos ubicaciones temporales de la investigación se detallan a continuación y en la Figura 29:

Abril 2017: S2A_MSIL2A_20170502T110621_N0205_R137_T30TVK_20170502T110937 Julio 2017: S2A_MSIL2A_20170701T111051_N0205_R137_T30TVK_20170701T111746

Figura 29. Ubicación del tile T30TVK.

El área a estudiar se puede observar en las Figura 30. La estación de La Chimenea se encuentra en la cuenca central del río Tajo cerca de Aranjuez. El suelo es Typic Calcixerept, alcalino y rico en materia orgánica, con una concentración de Nitrógeno a 1 metro de profundidad de 25 Kg N ha-1. La zona está cultivada con Trigo, Maíz, Alfalfa y Olivos.

Page 54: Graduado en Ingeniería Informáticaoa.upm.es/51598/1/TFG_JAVIER_BALANZATEGUI_SANCHEZ.pdf · de libre distribución y accesible a todo el mundo. La selección de los índices a incluir

"Estimación de Nitrógeno a partir de imágenes Sentinels" Javier Balanzategui Sánchez

54

Figura 30. Área sujeta al estudio. Las áreas numeradas hacen referencia a las especies cultivadas en ellas referenciadas en la Tabla 3.

Si los índices han sido calculados correctamente mediante el uso de imágenes procedentes del Sentinel-2, podremos verificar las hipótesis reflejadas en la Tabla 3. Todas ellas obtenidas del estudio [28] del profesor. Las conclusiones se basan en el desarrollo normal de los cultivos dependiendo de la especie. Desde que se siembran hasta que se recolectan van pasando por distintas etapas de su ciclo de vida donde sufren también picos en sus niveles de Nitrógeno.

Id Mes Especie Hipótesis 1 Abril Trigo (1) Presenta su nivel máximo de Nitrógeno 2 Julio Maíz (2) Presenta su nivel máximo de Nitrógeno en Julio-Agosto 3 Ambos Alfalfa(4) Debería estar siempre con niveles de Nitrógeno Alto.

4 Ambos Olivos (5) Son olivos cultivados de manera súper intensiva. Deberían estar siempre verdes

5 Ambos Olivos (6) Son olivos cultivados de manera tradicional. Deberían mantener un nivel estable pero menos que los súper intensivos.

Tabla 3: Hipótesis a cumplir

Con todo dispuesto, se calculan los índices espectrales con el módulo desarrollado para comparar los resultados entre los meses Abril y Julio de 2017. Los resultados se observan en la Figura 31 (La salida ha sido además transportada a otros colores con la funcionalidad descrita en el apartado 3.3). Después se comprobarán las hipótesis de la Tabla 3 con la salida de algunos índices también en tonos de gris.

5

1

3 2 1 6 4

2 3

Page 55: Graduado en Ingeniería Informáticaoa.upm.es/51598/1/TFG_JAVIER_BALANZATEGUI_SANCHEZ.pdf · de libre distribución y accesible a todo el mundo. La selección de los índices a incluir

"Estimación de Nitrógeno a partir de imágenes Sentinels" Javier Balanzategui Sánchez

55

Page 56: Graduado en Ingeniería Informáticaoa.upm.es/51598/1/TFG_JAVIER_BALANZATEGUI_SANCHEZ.pdf · de libre distribución y accesible a todo el mundo. La selección de los índices a incluir

"Estimación de Nitrógeno a partir de imágenes Sentinels" Javier Balanzategui Sánchez

56

Page 57: Graduado en Ingeniería Informáticaoa.upm.es/51598/1/TFG_JAVIER_BALANZATEGUI_SANCHEZ.pdf · de libre distribución y accesible a todo el mundo. La selección de los índices a incluir

"Estimación de Nitrógeno a partir de imágenes Sentinels" Javier Balanzategui Sánchez

57

Figura 31: Índices Generados.

Page 58: Graduado en Ingeniería Informáticaoa.upm.es/51598/1/TFG_JAVIER_BALANZATEGUI_SANCHEZ.pdf · de libre distribución y accesible a todo el mundo. La selección de los índices a incluir

"Estimación de Nitrógeno a partir de imágenes Sentinels" Javier Balanzategui Sánchez

58

Se puede ver como algunos índices son menos expresivos (Normalized Red Edge Red Index por ejemplo) mientras que en otros se pueden diferenciar claramente la intensidad de la salida en las diferentes zonas. Esto se debe a que para cada caso, tipo de suelo, especie y situación hay índices que responden mejor que otros. Sin embargo, al poseer de una batería de ellos siempre dispondremos de alguno con suficiente calidad como para ser estudiado.

El cumplimiento de la primera hipótesis se puede corroborar observando la Figura 32 o apartados c y d de la Figura 31. Las diferencias de los cultivos de trigo entre Abril y Julio en el índice Chlorophyll Index Green Edge . Abril es cuando tiene unos niveles mayores de reflectancia (por ende de Clorofila y de Nitrógeno). Se puede observar que la zona marcada es más clara en Abril que en Julio.

Figura 32. Diferencias CI-GreenEdge del trigo. Izquierda: Abril. Derecha: Julio.

El maíz posee un alto valor de reflectancia en los meses de Julio, haciendo que la mayoría de índices se saturen. Sin embargo, si usamos el índice MTCI (Que es capaz de no saturarse incluso a altos niveles de reflectancia) podemos observar en la Figura 33 (y en los apartados de la ca y cb Figura 31) como en Julio el cultivo posee valores mayores de reflectancia que en Abril; cumpliéndose así la segunda hipótesis.

Figura 33. Diferencias MTCI del maíz. Izquierda: Abril. Derecha: Julio.

Page 59: Graduado en Ingeniería Informáticaoa.upm.es/51598/1/TFG_JAVIER_BALANZATEGUI_SANCHEZ.pdf · de libre distribución y accesible a todo el mundo. La selección de los índices a incluir

"Estimación de Nitrógeno a partir de imágenes Sentinels" Javier Balanzategui Sánchez

59

Para verificar la tercera hipótesis, la Alfalfa debería siempre mantener un nivel alto de reflectancia, podemos ver que así es en las en la mayoría de los índices. Para nuestra última hipótesis debemos verificar si los Olivos súper intensivos poseen (al tener una mayor densidad de población) una mayor reflectancia por píxel (en el mismo área, hay mas árboles y por tanto más clorofila) en comparación con los que no. Los índices Chlorophyll Index Green Edge, EVI e IRECI señalan bien ésta diferencia. Además vemos cómo los niveles se han mantenido de manera similar en los dos meses, (aunque en Abril la diferencia entre los olivos no estaba tan marcada). Podemos ver las diferencias en el índice EVI en los apartados g y h de la Figura 31 y en la Figura 34. Con todo ello podemos decir que las hipótesis 4 y 5 se cumplen también.

Figura 34. Diferencias EVI de los olivos. Izquierda: Abril. Derecha: Julio.

Page 60: Graduado en Ingeniería Informáticaoa.upm.es/51598/1/TFG_JAVIER_BALANZATEGUI_SANCHEZ.pdf · de libre distribución y accesible a todo el mundo. La selección de los índices a incluir

"Estimación de Nitrógeno a partir de imágenes Sentinels" Javier Balanzategui Sánchez

60

77. CONCLUSIONES La herramienta ha demostrado ser de utilidad a la hora de estudiar un área cultivada, pudiendo ver claramente las diferencias entre cultivos y zonas con una mayor o menor concentración de Clorofila (y por consecuencia de Nitrógeno). A la hora de estimar los niveles de Nitrógeno, necesitamos hacer un estudio personalizado aplicado al tipo de planta, suelo y condiciones. Haciendo mediciones precisas con aparatos de tierra o tomando muestras de Nitrógeno de forma 'manual'. Posteriormente podremos correlar dichos datos con los valores de los índices y elaborar una función que estime el Nitrógeno a partir de la señal obtenida por satélite. La herramienta proporciona en CSV dichos datos en bruto para poder estudiarlos y compararlos con los datos precisos tomados por otros medios. No obstante, se puede usar la herramienta también de manera informativa que proporcione una visión global del estado del cultivo sin adentrarnos en estimaciones precisas, haciendo que cualquiera, pueda intuir qué áreas están en un estado más desfavorecido.

Gracias a la visión que proporciona se pueden crear estrategias de abonado preciso. Sin duda, una herramienta útil que impulsará el uso de imágenes de Sentinel-2 en el cálculo de índices espectrales a todos los niveles, ya que como el módulo es fácilmente ampliable; hace que en un futuro se le puedan incluir nuevas baterías de índices que ayuden al estudio del cultivo y/o cualquier índice que haga uso de las bandas de Sentinel-2. También es posible usar una parte del módulo a modo de librería, pudiendo ser incluida en otros scripts o programas y beneficiarse de los índices ya implementados y otras funcionalidades auxiliares que aporta.

La decisión de implementar el módulo en QGIS ha sido de gran acierto. Al usar QGIS tenemos a nuestra disposición un amplio abanico de funcionalidades que se complementan con nuestro módulo, haciendo que ambas juntas formen un buen área de trabajo para la investigación del Nitrógeno.

La parte negativa es la gran utilización de recursos, que puede llegar a ser un problema a la hora de querer generar una gran cantidad de índices para estudiar un área de forma completa. Las operaciones matriciales y el espacio en disco es lo que la hacen una tarea pesada de calcular. Sin embargo, por la facilidad de uso, y la portabilidad antes mencionada, creo que es un gran aporte para la comunidad científica que un software gratuito sea capaz de realizar estudios de suelo con datos actualizados del Satélite Sentinel-2 de la ESA.

Page 61: Graduado en Ingeniería Informáticaoa.upm.es/51598/1/TFG_JAVIER_BALANZATEGUI_SANCHEZ.pdf · de libre distribución y accesible a todo el mundo. La selección de los índices a incluir

"Estimación de Nitrógeno a partir de imágenes Sentinels" Javier Balanzategui Sánchez

61

88. BIBLIOGRAFÍA Y REFERENCIAS 1. VIETS, Frank G. The plant's need for and use of nitrogen. Soil nitrogen, 1965, no soilnitrogen, p. 503-549. 2. STUDDERT, Guillermo A., et al. Crop rotations and nitrogen fertilization to manage soil organic carbon dynamics. Soil Science Society of America Journal, 2000, vol. 64, no 4, p. 1496-1503. 3. JONES, Hamlyn G.; VAUGHAN, Robin A. Remote sensing of vegetation: principles, techniques, and applications. Oxford university press, 2010. 4. https://earth.esa.int/web/sentinel/technical-guides/sentinel-2-msi/msi-instrument 5. https://landsat.gsfc.nasa.gov/landsat-1/ 6. http://www.esa.int/ESA 7. https://www.qgis.org 8. CAMMARANO, Davide, et al. Assessing the robustness of vegetation indices to estimate wheat N in Mediterranean environments. Remote Sensing, 2014, vol. 6, no 4, p. 2827-2844. 9. GABRIEL, Jose L., et al. Airborne and ground level sensors for monitoring nitrogen status in a maize crop. Biosystems engineering, 2017, vol. 160, p. 124-133. 10. BLACKMER, T. M.; SCHEPERS, J. S. Use of a chlorophyll meter to monitor nitrogen status and schedule fertigation for corn. Journal of production agriculture, 1995, vol. 8, no 1, p. 56-60. 11. GITELSON, Anatoly; MERZLYAK, Mark N. Spectral reflectance changes associated with autumn senescence of Aesculus hippocastanum L. and Acer platanoides L. leaves. Spectral features and relation to chlorophyll estimation. Journal of Plant Physiology, 1994, vol. 143, no 3, p. 286-292. 12. HAN, Wenxuan, et al. Leaf nitrogen and phosphorus stoichiometry across 753 terrestrial plant species in China. New Phytologist, 2005, vol. 168, no 2, p. 377-385. 13. INDEX, MODIS Vegetation. Algorithm Theoretical Basis Document (OLCI Terrestrial Chlorophyll Index (OTCI)). Dash & Vuolo. 1999. 14. DAUGHTRY, C. S. T., et al. Estimating corn leaf chlorophyll concentration from leaf and canopy reflectance. Remote sensing of Environment, 2000, vol. 74, no 2, p. 229-239.

Page 62: Graduado en Ingeniería Informáticaoa.upm.es/51598/1/TFG_JAVIER_BALANZATEGUI_SANCHEZ.pdf · de libre distribución y accesible a todo el mundo. La selección de los índices a incluir

"Estimación de Nitrógeno a partir de imágenes Sentinels" Javier Balanzategui Sánchez

62

15. FRAMPTON, William James, et al. Evaluating the capabilities of Sentinel-2 for quantitative estimation of biophysical variables in vegetation. ISPRS journal of photogrammetry and remote sensing, 2013, vol. 82, p. 83-92. 16. RIVERA, Juan Pablo, et al. Multiple cost functions and regularization options for improved retrieval of leaf chlorophyll content and LAI through inversion of the PROSAIL model. Remote Sensing, 2013, vol. 5, no 7, p. 3280-3304. 17. DASH, Jadunandan; CURRAN, Paul J. The MERIS terrestrial chlorophyll index. 2004. 18. CLEVERS, Jan GPW; GITELSON, Anatoly A. Remote estimation of crop and grass chlorophyll and nitrogen content using red-edge bands on Sentinel-2 and-3. International Journal of Applied Earth Observation and Geoinformation, 2013, vol. 23, p. 344-351. 19. HUETE, Alfredo, et al. Overview of the radiometric and biophysical performance of the MODIS vegetation indices. Remote sensing of environment, 2002, vol. 83, no 1-2, p. 195-213. 20. NOVOTNÁ, K., et al. Normalized red-edge index–new reflectance index for diagnostics of nitrogen status in barley. Mendel Net, 2013, p. 120-126. 21. SIMS, Daniel A.; GAMON, John A. Relationships between leaf pigment content and spectral reflectance across a wide range of species, leaf structures and developmental stages. Remote sensing of environment, 2002, vol. 81, no 2-3, p. 337-354. 22. BARNES, E. M., et al. Coincident detection of crop water stress, nitrogen status and canopy density using ground based multispectral data. En Proceedings of the Fifth International Conference on Precision Agriculture, Bloomington, MN, USA. 2000. 23. DELEGIDO, Jesús, et al. Evaluation of sentinel-2 red-edge bands for empirical estimation of green LAI and chlorophyll content. Sensors, 2011, vol. 11, no 7, p. 7063-7081. 24. ROUJEAN, Jean-Louis; BREON, Francois-Marie. Estimating PAR absorbed by vegetation from bidirectional reflectance measurements. Remote sensing of Environment, 1995, vol. 51, no 3, p. 375-384. 25. KIM, Moon S., et al. The use of high spectral resolution bands for estimating absorbed photosynthetically active radiation (A par). 1994. 26. RONDEAUX, Geneviève; STEVEN, Michael; BARET, Frédéric. Optimization of soil-adjusted vegetation indices. Remote sensing of environment, 1996, vol. 55, no 2, p. 95-107.

Page 63: Graduado en Ingeniería Informáticaoa.upm.es/51598/1/TFG_JAVIER_BALANZATEGUI_SANCHEZ.pdf · de libre distribución y accesible a todo el mundo. La selección de los índices a incluir

"Estimación de Nitrógeno a partir de imágenes Sentinels" Javier Balanzategui Sánchez

63

27. HABOUDANE, Driss, et al. Integrated narrow-band vegetation indices for prediction of crop chlorophyll content for application to precision agriculture. Remote sensing of environment, 2002, vol. 81, no 2-3, p. 416-426. 28. QUEMADA, Miguel; GABRIEL, Jose Luis; ZARCO-TEJADA, Pablo. Airborne and ground level sensors for monitoring nitrogen status in a maize crop. Biosystems engineering, 2017, vol.160, 124-133. 29. https://sentinel.esa.int/web/sentinel/home 30. https://sentinel.esa.int/web/sentinel/missions/sentinel-2 31. SAITO, Keisuke; SUZUKI, Takumi; ISHIKITA, Hiroshi. Absorption-energy calculations of chlorophyll a and b with an explicit solvent model. Journal of Photochemistry and Photobiology A: Chemistry, 2017. 32. https://www.qt.io/ 33. TILLING, Adam K., et al. Remote sensing of nitrogen and water stress in wheat. Field Crops Research, 2007, vol. 104, no 1-3, p. 77-85. 34. http://www.mapama.gob.es/es/biodiversidad/temas/espacios-protegidos/red-natura-2000/rn_pres_const_reg_biogeo_y_marinas.aspx 35. https://scihub.copernicus.eu/dhus/#/home 36. GARCÍA-GONZÁLEZ, Irene, et al. Data supporting the cover crops benefits related to soil functionality in a 10-year cropping system. Data in Brief, 2018, vol. 18, p. 1327-1333.

Page 64: Graduado en Ingeniería Informáticaoa.upm.es/51598/1/TFG_JAVIER_BALANZATEGUI_SANCHEZ.pdf · de libre distribución y accesible a todo el mundo. La selección de los índices a incluir

Este documento esta firmado porFirmante CN=tfgm.fi.upm.es, OU=CCFI, O=Facultad de Informatica - UPM,

C=ES

Fecha/Hora Tue Jun 05 20:21:49 CEST 2018

Emisor delCertificado

[email protected], CN=CA Facultad deInformatica, O=Facultad de Informatica - UPM, C=ES

Numero de Serie 630

Metodo urn:adobe.com:Adobe.PPKLite:adbe.pkcs7.sha1 (AdobeSignature)