Measuring moisture: Normalized Difference Moisture Index (NDMI) Sentinel-2 2022

I am here in front of my desktop and I wonder how to take advantage of Sentinel Hub for tracking up moisture in a random plot anywhere in the world. Has it been irrigated at the right time for the type of crop? How has rainfall been affected over the analysis time? How has the use of certain fertilisers affected it? Has it positively affected production?. Let’s take a closer look.

The NDMI is a normalized difference moisture index, that uses NIR and SWIR bands to display moisture. The SWIR band reflects changes in both the vegetation water content and the spongy mesophyll structure in vegetation canopies, while the NIR reflectance is affected by leaf internal structure and leaf dry matter content but not by water content. The combination of the NIR with the SWIR removes variations induced by leaf internal structure and leaf dry matter content, improving the accuracy in retrieving the vegetation water content. The amount of water available in the internal leaf structure largely controls the spectral reflectance in the SWIR interval of the electromagnetic spectrum. SWIR reflectance is therefore negatively related to leaf water content. In short, NDMI is used to monitor changes in water content of leaves, and was proposed by Gao. NDWI is computed using the near infrared (NIR) and the short wave infrared (SWIR) reflectance’s:

Sentinel-2 NDMI = (B08 – B11) / (B08 + B11)

Note: NDWI index is often used synonymously with the NDMI index, often using NIR-SWIR combination as one of the two options. Gao, referenced above, also called the index NDWI. NDMI seems to be consistently described using NIR-SWIR combination. As the indices with these two combinations work very differently, with NIR-SWIR highlighting differences in water content of leaves, and GREEN-NIR highlighting differences in water content of water bodies, we have decided to separate the indices on our repository as NDMI using NIR-SWIR, and NDWI using GREEN-NIR.


The normalized difference moisture Index (NDMI) is used to determine vegetation water content and monitor droughts. The value range of the NDMI is -1 to 1. Negative values of NDMI (values approaching -1) correspond to barren soil. Values around zero (-0.2 to 0.4) generally correspond to water stress. High, positive values represent high canopy without water stress (approximately 0.4 to 1).

These are the bands we can use in Sentinel 2 platform:

This is the random plot I have chosen, latitude 41.71715 longitude -5.22810, somewhere in Valladolid (Spain). Does anybody know why did I choose this province? Well, I got my degree in this city, back in 1998. Time flies !.

Choosing a random property anywhere in Valladolid, Spain

Water stress over certain period (5 months from November to April 2022).

Statistical info. When is this property showing water stress throughout time

This is the histogram covering the whole of the area of analysis.


And a sequence from June 2021 to June 2022, covering all seasons of the year.

Hope you find it interesting. If you need me to further develope it, a quote or simply say hello, you can contact me anytime,

GIS analyst


Ship Monitoring from space: SUEZ

Below you can see the example timelapse of Suez Canal ship traffic, made with a Sentinel-1 custom composite visualization. You can observe the moving ships as time passes.

Sentinel-1 is a pair of European radar imaging (SAR) satellites launched in 2014 and 2016. Its 6 days revisit cycle and ability to observe through clouds makes it perfect for sea and land monitoring, emergency response due to environmental disasters, and economic applications. This dataset represents the global Sentinel-1 GRD archive, from beginning to the present, converted to cloud-optimized GeoTIFF format.

Sentinel-1 AWS-IW-VVVH: SAR urban

The Interferometric Wide (IW) swath mode is the main acquisition mode over land and satisfies the majority of service requirements. It acquires data with a 250 km swath at 5 m by 20 m spatial resolution (single look). IW mode captures three sub-swaths using Terrain Observation with Progressive Scans SAR (TOPSAR). With the TOPSAR technique, in addition to steering the beam in range as in ScanSAR, the beam is also electronically steered from backward to forward in the azimuth direction for each burst, avoiding scalloping and resulting in homogeneous image quality throughout the swath.

TOPSAR Sub-Swath Acquisition

TOPSAR mode replaces the conventional ScanSAR mode, achieving the same coverage and resolution as ScanSAR, but with a nearly uniform Signal-to-Noise Ratio and Distributed Target Ambiguity Ratio.

The azimuth resolution is reduced compared to SM due to the shorter target illumination time of the burst. Using the sweeping azimuth pattern, each target is seen under the same antenna pattern, independently from its azimuth position in the burst image. By shrinking the azimuth antenna pattern, as seen by a target on the ground, scalloping effects on the image can be reduced. Bursts are synchronised from pass to pass to ensure the alignment of interferometric pairs.

IW SLC products contain one image per sub-swath and one per polarisation channel, for a total of three (single polarisation) or six (dual polarisation) images in an IW product.

Each sub-swath image consists of a series of bursts, where each burst has been processed as a separate SLC image. The individually focused complex burst images are included, in azimuth-time order, into a single sub-swath image with black-fill demarcation in between. There is sufficient overlap between adjacent bursts and between sub-swaths to ensure continuous coverage of the ground as provided in GRD products. The images for all bursts in all sub-swaths are resampled to a common pixel spacing grid in range and azimuth while preserving the phase information.

IW SLC Bursts andSub-Swaths

After burst and sub-swath merging, the full product can be created, as is the case for the GRDH products shown in Figure 3. The TOPSAR technique greatly reduces scalloping effects over conventional ScanSAR.

IW GRDH Product

Sentinel-1 uses wide area coverage with improved revisit times and is able to potentially detect smaller ships than Envisat’s ASAR instrument. The mission’s ability to observe in all weather and in day or night time, makes it ideal for precise cueing and location of ship activities at sea, allowing for more efficient and cost-effective use of other security assets, such as patrol aircraft and ships. Data relevant to ship detection are transmitted by the satellite in real-time for reception by local collaborative ground stations supporting European and national services.

Illustration of vessels observed between Gibraltar and Algesiras on September 2017, Copernicus Sentinel Data [2017]
Classical ship wake pattern on SAR imagery (S-1A Stripmap, Copernicus Data [2015]) with a local wind speed of 2 m/s. A/ Kelvin “V” wave dark and bright on each side, B/ Narrow “V” wave, D/ Turbulent wave

Some other interesting stuff you can do:

Ice Monitoring
Oil polution Monitoring
Marine Winds

Recuperación natural de un bosque de Pino Piñonero. Incendio en Pedro Bernado (Ávila)

En este micro vídeo he querido mostrar el proceso de recuperación natural de un bosque de Pino Piñonero (Pinus Pinea) a lo largo de tres años en Pedro Bernardo (Ávila, España). Fecha del incendio Junio 2019. Estimación previa a cuantificación: 40%. Imagenes Sentinel 2 – L2A. Usé una combinación 12-11-4. SWIR-2 (12), SWIR 1 (11), Red (4) entre las fechas de Junio 2019 y Junio 2022 a razón de una imagen al mes, seleccionando solo si ausencia total de nubes y cobertura total sobre la zona de análisis.

Si bien esta especie se ha podido recuperar con mayor prontitud por su resilencia frente al fuego volviendo a brotar con vigor después del incendio, a partir de ese momento se deben poner en marcha otras medidas para favorecer la restauración de las masas forestales mediante la siguientes actuaciones urgentes:

*retirada de pies muertos y eliminación de restos vegetales,
*ejecución de construcciones sencillas, como empalizadas, con materiales del territorio como ramas y troncos para la lucha contra la erosión,
*tratamientos preventivos frente a posibles plagas, ayudas a la regeneración natural e incluso
*acudir a la repoblación forestal, en su caso,
*mejora y construcción de nuevas infraestructuras para la prevención y lucha contra incendios forestales,
*siembras aéreas en áreas de difícil acceso,
*construcción de refugios provisionales para la fauna y otaderos artificiales, etc.

Espero que os resulte interesante,

GIS Analyst


Sentinel-hub: Highlighting value differences in deserts! (not only!)

This Sentinel-2 aesthetic script can be used to produce beautiful, neon looking results over urban and dry areas. The script is especially useful to highlight value differences in deserts. It’s essentially an RGB composite, with a B12 and B04 difference (which does a good job at displaying certain desert features, like dunes) in the red, B03 in the green, and B02 in the blue channel. Gain and gamma in the script can be modified to fit the location best; for gamma, -0.55 to -0.95 is recommended, while for gain, 2.3 fits most locations. Neon imagery of Beijing, China. Acquired on 2020-01-23.

Neon imagery of Beijing, China. Acquired on 2020-01-23.


Marathon à Nantes 2022: CHECKED!

J’ai toujours cru que faire les choses selon un plan facilitait la réalisation de ce que vous aviez prévu de faire, eh bien, quand il s’agit de courir un Marathon, c’est la clé. Lors de mon troisième Marathon après Valencia en 2017 et Madrid en 2019, j’ai voulu courir a Nantes, ma chérie Nantes, où j’ai vécu certains des moments les plus importants de ma vie…

La première chose, on constate une meilleure tendance dans le nombre de kilomètres de préparation. Attention l’hécatombe du 3ème et 4ème mois à Valencia 2017…

Comme dans presque toutes mes courses, je commence avec un rythme inférieur à la façon dont je finis. Au “semi-marathon de Latina” et au “semi-marathon de Madrid” (il y a cinq et deux semaines respectivement), j’ai fait la même chose, la première moitié lentement, la deuxième moitié a fond !

En plus des trois jours de running par semaine, une séance cardio, un peu de stretching et physiothérapie toutes les deux semaines (merci Sandra !), et surtout le soutien de mes chers amis Hicham, Audrey et leur enfants N et I:-) Vous me manquez déjà ! La prise de gels et de nourriture était super systématique, la prise d’eau tous les 5km, la même chose, et quelques deux arrêts pour faire pipi aussi 🙂 C’est comme ça que j’ai réussi à ne commencer à marcher qu’au km 40 ou presque (au hangar a bananes), et pas plus de quelques metres…

Voilà ces photos du Marathon… Je peux vraiment dire que j’ai super bien profité de cette course du début à la fin. Après 2 ans et demi que j’avais signé, je voulais déjà en finir avec ce sourire et tellement content !!!

Saliendo del Jardin de plantes. KM30
Llegada a Meta!

Et voilà l’hommage à ma petite H: Ça fait 9 ans que je t’ai promis que je courrais ce Marathon à un moment donné… ici tu as ma promesse remplie mon amour.


Analyste SIG, père fier et homme d’énergie exultant jusqu’au km 42,195 🙂

Bombas en Mariupol, Ucrania. Una ciudad como la tuya y la mía

Aquello que no podemos apreciar en una imagen de color natural 4-3-2 en Sentinel-2 nada más tenemos que cambiarlo a un falso color 12-11-4 para exponer las explosiones y bombas, en definitiva, la muerte. En este caso lo falso es la verdad (las bombas) y y lo que parece natural, es falso (la ausencia de ellas).

Sentinel 2 Composición Color Natural 4-3-2 2022-03-29

Cada una de estas explosiones es el llanto de una familia por generaciones. La pena por una pérdida irreparable. La humillación inmerecida. La muerte.

Misma imagen Sentinel 2 Composición Falso Color 12-11-4 2022-03-29

Muerte en unos cuantos pixeles

Hace tan solo unos días estas casas estaban en su sitio, en ellas había electricidad y se podía desarrollar la vida pero alguien unilateralmente decidió que no era una buena idea…

Imágenes al azar tomadas de Google Earth con fecha 20220411
Google Earth 20220411

Hace tan solo unos días en esta ciudad de tamaño algo mayor que Valladolid, había vida. la gente iba a trabajar y volvía a casa a hacer la cena, jugar con los niños, hacer planes, vivir. Hace unos pocos menos, empezó la guerra y unos pocos escaparon como pudieron pero otros se quedaron encerrados (incumplimiento de los alto el fuego y falta de respeto a los corredores humanitarios) y se acabó la calefacción, la electricidad, las comunicaciones, la comida y la bebida. Las vidas de sus vecinos y por extensión, nuestras vidas.

Pavel Klimov. Reuters

Hoy no queda más que la esperanza de que esta cerrazón cese de una vez. Cuanto antes. Y que no vuelva a ocurrir nunca. Ah, y que paguen los responsables. Qué iluso soy.

Analista SIG e iluso


Visualising Wind from a GRIB Mesh Layer in QGIS and Create an Animated GIF

One of those new GIS formats is the GRIB Mesh, what is it?. A Grib Mesh is a multidimensional raster data and commonly used in meteorology to store historical and forecast weather data.

Multidimensional raster data is often used in the scientific community to store meteorological and oceanographic data such as temperature, humidity, wind speed, and direction. Data is normally stored as variables, where each variable is a multidimensional array that represents data captured at multiple times, and at multiple heights, depths or pressures. These data are often stored in NetCDF, HDF, or GRIB file formats, which are supported in ArcGIS Pro and QGIS.

GRIB—General Regularly-distributed Information in BinaryWorld Meteorological Organization is a concise data format commonly used in meteorology to store historical and forecast weather data. The GRIB raster type allows you to add GRIB 1 and GRIB 2 data into a mosaic dataset.

For a brief introduction into this new GRIB Mesh format (new to me) I followed step by step this tutorial bellow I had found in Hans Van der Kwast YouTube channel, it happened to be very good source and I finally made it (see below). The idea was analysing the winds during a Storm in the Netherlands (this storm was actually the 14th of March 2022 but I analyse the 15th, no impact on the tutorial whatsoever but please note this point).

All you need for getting this done is QGIS (I used 3.20.3 Odense) for handling data and visualization and Gimp (2.10) to do the GIFs.

QGIS 3.20.3
GIMP 2.10
GRIB visualization: Arrows
GRIB visualization: Traces
GRIB visualization: Arrows over the French UK borders

Hans van der Kwast Youtube channel,multiple%20dimensions%20in%20ArcGIS%20Pro.

¡Viento del Sahara en España! ¡Sí!

De repente se levanta uno y ve los coches, los marcos de las ventanas y las aceras llenos de arena… ¿Qué es esto?, ¡Uno quiere comprender más en detalle! Si esto es en Madrid, qué no ocurrirá en Murcia (que está de camino)!! 🙂 Lo cierto es que si tomamos las imágenes del SENTINEL 5P Aerosol index podemos ver cómo en esa longitud de onda encontramos aerosoles. ¡Y muchos! ¿Y hacia dónde se desplazan?. Directos al centro de la península.

Esta circulación, a esta altitud (entre los 3,000 y 5,000 metros AMSL) forma parte de la “normalidad”, es decir, en esta latitud y a esa altitud, las direcciones del viento suelen ser estas pero el comportamiento es ciertamente anómalo, es decir, dibuja una forma convexa que cae como una gota gigante hasta Burkina Faso y envuelve el desierto más grande del mundo para traértelo a tu mesa… Como los de Pescanova traían a Rodolfo Langostino desde el Océano Pacífico, igual.

En esta imagen muestro lo mejor que se puede esta circulación general atmosférica. No es fácil de entender pero son algo así como unas células que varian de altitud y latitud (¿Podemos imaginar esto en 3D?) y que siempre tienen un mismo comportamiento (o casi). Las células cambian de latitud ligeramente así como de altitud, influenciadas por multitud de factores como la temperatura y humedad de las zonas que recorre.

Aquí vemos en esta segunda imagen cómo esa onda

Y ya en el vídeo vemos cómo nos llega directos estos días!

Y en este link si lo pulsáis estos días lo veréis en directo, si no, poned las fechas a posteriori y ahí lo tendréis de manera clara.;1.8;4&l=wind-500hpa&m=icon

Aquí abajo ya os copio algunos textos que encuentro relevantes y más abajo las fuentes de dónde he sacado los datos. En resúmen, la arena del Sahara puede sin problemas trasladarse desde allí hasta el centro de la península incluso si es la primera vez desde hace veinte años que lo hace con esta “virulencia” pero si esta misma arena puede llegar hasta Colombia, desplazándose hasta 8,000 km es que nos sorprende que algo que asociamos a la pequeña escala funcione también a gran (grandísima) escala, pero sí, es posible.

Si te parece interesante, compártelo.
Un saludo,

Analista GIS, Geógrafo (feógrajo según mi hijo), curioso empedernido, ex fotógrafo aéreo y además amigo de JPCC 😉 ¡Saludos a tus alumnos desde las alturas!.

La capa de aire sahariana es una capa de la atmósfera intensa, seca y cálida y, a veces cargada de polvo que a menudo recubre el más fresco y húmedo aire de la superficie del Océano Atlántico. En la región del desierto del Sahara de África del Norte, donde es originario, es la atmósfera prevalente, que se extiende desde la superficie hacia arriba varios kilómetros. Como se mueve, o es conducido, a lo largo de la costa, se eleva por encima de la brisa marina más densa. Esta disposición es una inversión donde la temperatura aumenta con la altura. El límite entre la capa y la capa marina suprime o “tapa” cualquier convección en la capa de origen marino. Puesto que es aire seco, el gradiente vertical dentro de la propia capa es empinado, es decir, la temperatura cae rápidamente con la altura.

The Aerosol Index (AI) is a qualitative index indicating the presence of elevated layers of aerosols in the atmosphere. It can be used to detect the presence of UV absorbing aerosols such as desert dust and volcanic ash plumes. Positive values (from light blue to red) indicate the presence of UV-absorbing aerosol. This index is calculated for two pairs of wavelengths: 340/380 nm and 354/388 nm.

The Copernicus Sentinel-5P mission is dedicated to monitoring air pollution by measuring a multitude of trace gases as well as aerosols. This animation shows the spread of aerosols from the Saharan dust plume moving westward across the Atlantic Ocean from 1 June to 26 June 2020. This plume has reached the Caribbean, South America and the United States.

Level-2 Algorithms – Aerosol Index

The Aerosol Index (AI) is a qualitative index indicating the presence of elevated layers of aerosols with significant absorption. The main aerosol types that cause signals detected in the AI are desert dust, biomass burning and volcanic ash plumes. An advantage of the AI is that it can be derived for clear as well as (partly) cloudy ground pixels.

The relatively simple calculation of the AI is based on wavelength-dependent changes in Rayleigh scattering in the UV spectral range where ozone absorption is very small. For a given wavelength pair a ratio is calculated from measured Top Of Atmosphere (TOA) reflectance and calculated theoretical reflectance for a Rayleigh scattering-only atmosphere and results in a residual value. Positive values of this residual indicate the presence of UV-absorbing aerosol.

Under the assumption that the surface albedo is constant for the two wavelengths used, the AI is given by:

AI = 100.log10[Rmeas(?2)/Rmeas(?1)]  –  100.log10[Rcalc(?2,ALER(?2)) / Rcalc(?1,ALER(?2)) ]

  • Rmeas(?2) and Rmeas(?1) are the measured reflectances at two wavelengths (??1)
  • Rcalc(?2,ALER(?2)) and Rcalc(?1,ALER(?2)) are the corresponding calculated reflectances from an atmosphere with only Rayleigh scattering, stored in a pre-calculated LUT.
  • ALER(?2) is the Lambert-equivalent reflectivity (LER) fitted for the reflectance Rmeas(?2).

Wavelengths Used

The TROPOMI aerosol index retrieval retrieves AI for two pairs of wavelengths in spectral band 3: 340/380 nm which is the pair of wavelengths used by most instruments retrieving AI, and 354/388 nm which is the pair used by the OMI instrument. AI340/380 and AI354/388 are both written in the Level-2 AI product.

¡+7,000km corriendo!

Ayer llegué a los 7,000km corriendo desde que empecé allá por Agosto de 2014. Parece que no es nada pero es como si hubiera llegado desde Madrid a la ciudad de Karagandá en Kazajistan… Sí, es mucho para mí, que empecé andando porque no podía correr. Hay muchas cosas que me ha dado correr, un espacio para mí y mis pensamientos, saber que soy capaz de hacer algo de forma consistente y lograr mis objetivos (razonables). No importa que llueva, nieve o granice, ahí sale Alberto con sus pantalones cortos a darlo todo.

En un mes y una semana correré (si dios quiere) mi tercera maratón en la ciudad en la que empecé a correr y en la que me prometí que un día correría una maratón (a pesar de que me parecía poco menos que ciencia ficción en aquél momento) y hoy llego a los 7,000km.

A mi niña, razón primaria por la que empecé a correr, le diré que hasta las cosas que a priori pueden parecer complicadas, pueden conseguirse si el plan es razonable y se es lo suficientemente constante.

Y cuando entre en meta (¡espero de verdad hacerlo!) se lo dedicaré la primera a ella. Bueno y a mi mujer, ¿cómo no? y a mi padre y a mi otro niño y a mi amigo Santi, a los Pollitos Running Club… Hay mucha gente muy cercana que tiene mucho que ver -lo sepan o no- con este reto que ha supuesto, supone y supondrá echarse a los caminos para levantar los dos pies a la vez y hacer unas cuantas millas…

GIS measurement of all my running steps
GIS measurement of all my running steps

Las 654 salidas a correr (medidas al milímetro) no implican que me preocupe lo más mínimo en mi puesto en las carreras o mi tiempo al final de las mismas… No me importa lo más mínimo si corro más o menos, hay muchos factores que afectan (lo que he comido los días antes, lo hidratado que esté, lo planificado de mi toma de geles, mi ánimo, mis ganas) lo que importa es disfrutar lo máximo posible!.

En fin, estad atentos que viene post nuevo dentro de exactamente cinco semanas!


Le Marathon de Nantes est l’un des plus anciens marathons de France, cet événement connaît un essor considérable. De 104 participants lors de sa première édition à plus de 17.000 en 2019 sur l’ensemble des épreuves, le Marathon de Nantes est aujourd’hui classé 5ème marathon français.
Ce rendez-vous running incontournable promet d’être une nouvelle fois mémorable pour sa 40ème édition. Faites de Nantes votre destination pour le printemps prochain !

Tracking COVID19 TIA 14d a 20220310

La cosa mejora drásticamente, una incidencia 10 veces menor (de media) que la de hace solo dos meses, que llegó a algunos máximos en determinadas ZBS a una incidencia de 4,500 casos por 100,000 habitantes… La presión en la calle baja levemente, ya se permite desde hace un par de semanas ir sin mascarilla por la calle y se comenta que la semana que viene probablemente se quitarán las mascarillas en interiores (qué ganas!). Por otro lado la cifra de fallecidos diaria es menor ( y la tasa de supervivencia en UCI ha subido hasta el 90% en Madrid al menos… Esto nos indica de manera general que esto mejora. Crucemos los dedos entonces.

Una visión con un poco más de perspectiva de los últimos meses (desde Septiembre 2020). La séptima ola, la última, se llevó por delante el ánimo de mucha gente. Esperemos de verdad que sea la última.

Aquí tenéis también un test con columnas animadas realizado con BI, de Microsoft.

Si os parece interesante el análisis, compartid,

GIS y pater