Sentinel-1 SAR: Un aliado indispensable para el análisis y seguimiento de inundaciones – Derna, Libia (2023)

La gestión y monitorización de fenómenos hidrológicos extremos, como inundaciones repentinas o fallos estructurales en presas, representan un desafío crítico para los especialistas en geomática, hidrología y planificación territorial. En este contexto, la tecnología radar de apertura sintética (SAR) a bordo del satélite Sentinel-1 de la Agencia Espacial Europea (ESA) ofrece una capacidad sin precedentes para capturar información precisa y fiable sobre la dinámica superficial, independientemente de las condiciones atmosféricas y lumínicas.

Sentinel-1 opera enviando pulsos de microondas hacia la superficie terrestre y midiendo la señal reflejada, lo que permite superar las limitaciones típicas de los sensores ópticos que dependen de la luz visible y se ven afectados por nubosidad o ausencia de luz diurna. Esta independencia de las condiciones meteorológicas y de iluminación convierte a Sentinel-1 en una herramienta indispensable para la observación continua y en tiempo casi real de eventos catastróficos, especialmente en regiones donde las condiciones atmosféricas adversas son frecuentes.

El caso del colapso de presas en Derna, Libia, ocurrido en septiembre de 2023, es paradigmático para ilustrar las capacidades de Sentinel-1 en la detección y seguimiento de inundaciones masivas. Antes del evento, las imágenes radar adquiridas muestran una reflectividad característica del terreno seco y vegetado. Tras el colapso, la superficie inundada se manifiesta como áreas de baja reflectividad radar debido a la presencia de agua, que actúa como un reflector especular, causando un fuerte debilitamiento de la señal recibida. Este contraste en la intensidad radar permite una delineación precisa de las zonas afectadas.

El análisis temporal de imágenes Sentinel-1, mediante técnicas que incluyen la generación de mapas de diferencia logarítmica de intensidad (en decibelios), posibilita la identificación de cambios significativos en la superficie, facilitando la distinción entre áreas inundadas y no inundadas. Estas técnicas son especialmente valiosas cuando se emplean imágenes adquiridas en modos coherentes y con polarizaciones adecuadas, siendo la polarización VV (vertical transmitido, vertical recibido) comúnmente utilizada para capturar la variabilidad de la rugosidad superficial y contenido dieléctrico.

Disaster assessment using Cloud computation analysis in GEE over Lybia

Más allá de la detección inmediata, Sentinel-1 permite la monitorización de la evolución post-evento, lo que es fundamental para la gestión de emergencias y la planificación de la recuperación. Las series temporales de imágenes permiten evaluar la retirada progresiva del agua, la estabilización del terreno y la posible identificación de riesgos secundarios, como deslizamientos inducidos por saturación de suelos. La capacidad de generar mapas actualizados con alta frecuencia es una ventaja crítica que supera ampliamente a otras fuentes de datos.

Flooding Lybia 2023

Técnicamente, el procesamiento de datos Sentinel-1 para análisis de inundaciones incluye pasos como la calibración radiométrica, corrección geométrica, reducción del ruido speckle mediante técnicas de filtrado espacial o temporal, y la aplicación de umbrales o algoritmos de segmentación para generar máscaras binarias de agua/no agua. Estas máscaras pueden ser combinadas con modelos digitales del terreno (DEM) y datos de uso del suelo para mejorar la precisión y contextualizar la información. La integración con sistemas GIS permite generar productos cartográficos que apoyan la toma de decisiones en tiempo real.

Disaster assessment using Cloud computation analysis in GEE over Lybia
Disaster assessment using Cloud computation analysis in GEE over Lybia – Global Mapper 26.0 GIS evaluation

Un poco de historia de las Inundaciones en Libia esos días

El desastre se desencadenó la noche del 10 al 11 de septiembre de 2023, bajo el impacto de la poderosa “Medicane” (ciclón mediterráneo) Storm Daniel, que descargó precipitaciones extraordinarias en la región. En 24 horas, Derna registró hasta cerca de 400 mm de lluvia, un volumen asombroso considerando que su precipitación media anual apenas ronda los 300 mm.

Flooding Lybia 2023

Estas lluvias torrenciales colapsaron dos presas clave en el cauce del Wadi Derna—la presa Derna (Belad) y la presa Abu Mansour—con una capacidad combinada cercana a los 30 millones de m³. La ruptura de ambas estructuras liberó una ola de agua de hasta 7 m de altura, que arrastró todo a su paso por casi 12 km desde las zonas montañosas hasta el mar Mediterráneo.

La magnitud del impacto fue devastadora. Se estima que causó entre 5.923 y 20.000 muertes, con al menos 8‑10 000 personas desaparecidas, y dejó más de 30 000 desplazados en.wikipedia.org+1en.wikipedia.org+1. Decenas de barrios completos desaparecieron, al igual que 4 puentes, y grandes secciones urbanas fueron barridas hacia el mar france24.com+2apnews.com+2es.wikipedia.org+2. La ciudad sufrió graves daños en su infraestructura crítica: hospitales inoperativos, morgues saturadas, destrucción masiva de edificios—más de 400 estructuras anegadas en lodo y escombros .

La escasez de mantenimiento en las presas—sin obras significativas desde 2002—y la falta de sistemas de alerta adecuados fueron factores determinantes. Aunque el servicio de meteorología libio emitió advertencias 72 horas antes, las instrucciones oficiales fueron confusas: se impuso toque de queda mientras se daban mensajes contradictorios sobre la evacuación. Esto atrapó a la población en zonas de riesgo justo cuando las presas fallaron hrw.org.

El colapso de las presas no solo generó muerte instantánea. En los días subsiguientes, se temió un brote de enfermedades renales y gastrointestinales debido a la contaminación del agua; más de 150 casos de diarrea infantil fueron reportados en Derna reuters.com+8apnews.com+8en.wikipedia.org+8. Pero debido al colapso de infraestructura sanitaria, el acceso al agua potable estaba interrumpido.

Esta tragedia fue catalogada como “el segundo fallido de presa más mortal de la historia”, solo detrás del caso de Banqiao en China (1975) en.wikipedia.org+1nrc.no+1. Además, han surgido procesos judiciales: en julio de 2024, el tribunal de Tobruk condenó a 12 responsables (hasta 27 años de prisión) por negligencia criminal reuters.com+1bbc.com+1.

El caso de Kirissah (a veces escrito Kirrissah), que se identifica con el Wadi Derna, sufrió un efecto similar: se formaron gigantescos depósitos de escombros, calles enteras quedaron enterradas y miles de personas fueron desplazadas o muertas arrastradas por el agua.

En resumen, el desastre de Derna supuso una conjunción letal de fuerte evento climático (Storm Daniel), infraestructura crítica en estado de abandono y falta de gestión de emergencia.

Sentinel‑1, mediante su capacidad para mostrar pérdidas intensas de energía radar (áreas oscuras = agua), permitió caracterizar espacialmente las zonas anegadas, lo que resulta clave para entender, mapear y gestionar tanto la emergencia inmediata como la reconstrucción posterior.

El Radar SAR del Sentinel-1 permitió caracterizar espacialmente las zonas anegadas

La bibliografía técnica destaca la importancia de Sentinel-1 como sensor radar para aplicaciones hidrológicas. Según el informe de la ESA sobre Sentinel-1 (ESA, 2023), la misión proporciona una cobertura global con revisit times de 6 a 12 días, resolución espacial de hasta 5×20 metros y disponibilidad gratuita de datos, lo que la convierte en una fuente accesible y fiable para la comunidad científica y agencias de gestión de riesgos. Investigaciones recientes han demostrado que la combinación de datos Sentinel-1 con algoritmos avanzados de detección y aprendizaje automático incrementa significativamente la capacidad para identificar y delimitar eventos de inundación con alta precisión (Smith et al., 2022; Zhang y Li, 2023).

En conclusión, Sentinel-1 representa un recurso estratégico para la observación y análisis de inundaciones y otros fenómenos naturales que alteran la superficie terrestre. El caso de Derna ejemplifica cómo esta tecnología puede proporcionar información esencial para responder ante desastres, evaluar daños y planificar acciones de mitigación y recuperación. La disponibilidad continua de datos y la evolución de técnicas de procesamiento posicionan a Sentinel-1 como una piedra angular en el arsenal de herramientas para la gestión de riesgos ambientales en el siglo XXI.

Quieres echar un vistazo en directo?. Ya sabes, haz clic aquí abajo:
https://code.earthengine.google.com/f1fc0a55f324e1a74822b78a042f4c52

Espero que el post te haya resultado interesante, recuerda que la metodología para analizar cuantitativamente un evento de estas características (lluvias con alta intensidad horaria y rotura de una presa de grandes dimensiones) usando métodos de cloud computation permite adaptabilidad, escalabilidad, coherencia, precisión. Este análisis que acabas de leer, no es único y puede ser combinable con otros análisis que tienen en cuenta otros factores como mencionados anteriormente (la duración de los eventos, su cobertura espacial, la forma del terreno local, las variaciones estacionales y anomalías climáticas. Todo ello con datos abiertos, consistentes y reproducibles.)

Alberto C.
Geographer, Senior GIS analyst, curious person and Open Data (not only) lover


Referencias:

Mapas de Peligrosidad Climática: Datos y Análisis para aseguradoras

Gracias a datos satelitales de alta calidad y herramientas de análisis geoespacial en la nube, es posible generar de forma ágil mapas de peligrosidad climática con respaldo científico y cobertura global. Un primer ejemplo de ello es el análisis de la frecuencia de lluvias extremas realizado para Sri Lanka en el periodo 2001–2023.

El mapa ha sido elaborado utilizando la base de datos CHIRPS (Climate Hazards Group InfraRed Precipitation with Station data), un producto mixto satélite–estaciones que proporciona estimaciones de precipitación diaria desde 1981, con resolución espacial de aproximadamente 5 km. CHIRPS ha sido desarrollado por la Universidad de California en Santa Barbara y es una fuente de referencia en estudios de cambio climático, seguridad alimentaria y gestión de desastres.

Cloud computation analysis using GEE over Sri Lanka 2001-2023

En este caso, se ha calculado el número total de días con precipitaciones superiores a 50 mm durante más de dos décadas, generando una capa raster que refleja la recurrencia de eventos intensos a escala nacional. Este tipo de modelado permite identificar con claridad zonas más expuestas, lo cual es clave para análisis de riesgo climático, definición de primas diferenciales, evaluación de carteras o diseño de infraestructuras resilientes.

Inundaciones recientes en Colombo, Sri Lanka

Este tipo de información geoespacial, de origen fiable, actualizado y reproducible, puede ser de gran utilidad para entidades aseguradoras interesadas en mejorar su modelado de riesgos climáticos, optimizar sus procesos de tarificación o diseñar productos adaptados a exposiciones geográficas específicas.

Además, este enfoque puede escalarse para incorporar otros factores relevantes:
la duración de los eventos extremos, su cobertura espacial, la forma del terreno local (que condiciona la escorrentía y la acumulación) o incluso variaciones estacionales y anomalías climáticas (como los efectos de El Niño o La Niña). Todo ello con datos abiertos, consistentes y reproducibles.

El valor no solo está en el mapa final, sino en la capacidad de generarlo de manera rápida, automatizable y fundamentada, con total trazabilidad en la metodología.

El valor no solo está en el mapa final, sino en la capacidad de generarlo de manera rápida, automatizable y fundamentada, con total trazabilidad en la metodología. He generado este código en Google Earth Engine y evaluado resultados con Global Mapper 26.0.

Usando software GIS para evaluar con precision (Global Mapper 26.1)

Puedes probar cómo funciona el código tú mismo en este link abajo!
https://code.earthengine.google.com/216ee2220704ebd423e6007b2c5c5f86

En un segundo caso, realizamos el análisis para un país (mucho) más grande, Venezuela. Para este análisis he usado otra fuente (ECMWF/ERA5/DAILY)

Lluvias intensas en Venezuela y su análisis de peligrosidad.

ERA5 es la última generación de reanálisis climático global desarrollado por el Centro Europeo de Previsiones Meteorológicas a Medio Plazo (ECMWF), dentro del programa Copernicus Climate Change Service (C3S). Se trata de un producto que combina observaciones y modelos numéricos para estimar variables atmosféricas, terrestres y oceánicas con alta resolución espacial y temporal.

El dataset ERA5 DAILY disponible en Google Earth Engine representa un subconjunto temporal diario de las variables meteorológicas del reanálisis ERA5. Cada imagen contiene variables agregadas o medias diarias derivadas del dataset ERA5 original, que tiene una resolución temporal de 1 hora.

  • En particular, la variable usada en tu caso es total_precipitation, que representa la precipitación acumulada total en el día, en metros (m), por ejemplo, 0.01 m = 10 mm.

Resolución espacial: Aproximadamente 0.25° × 0.25° (unos 28 km de lado); Resolución temporal: Diaria, cada imagen corresponde a un día calendario (UTC); Cobertura temporal: Desde 1979 hasta el presente (actualizada continuamente). ERA5 es generado mediante la asimilación de múltiples fuentes de datos, incluidos satélites, estaciones terrestres, boyas oceánicas, radiosondas y otros. Se utiliza un modelo climático numérico avanzado para producir un análisis global coherente. La calidad es muy alta, siendo uno de los reanálisis más usados para climatología y meteorología. La variable total_precipitation es acumulativa diaria y puede incluir precipitación líquida y sólida (nieve), según el modelo y condiciones.

La potencia de este código es poder añadir un país entero simplemente cambiando una palabra en el código, permitiendo una escalabilidad y harmonización directa.

Como se puede apreciar en un software GIS cualquiera (Global Mapper 26.0)

Colombia, Ecuador y Venezuela añadidos modificando levemente el código

Puedes probar cómo funciona el código tú mismo en este link abajo!
https://code.earthengine.google.com/f5e9b1be89fcb87327f4d97837b48cf1

En resumen, la metodología para analizar cuantitativamente la peligrosidad de un evento (lluvias con alta intensidad horaria) usando métodos de cloud computation permite adaptabilidad, escalabilidad, coherencia, precisión. Este análisis no es único y puede ser combinable con otros análisis que tienen en cuenta otros factores como mencionados anteriormente (la duración de los eventos, su cobertura espacial, la forma del terreno local, las variaciones estacionales y anomalías climáticas. Todo ello con datos abiertos, consistentes y reproducibles.)

Peligrosidad de acuerdo a las pendientes usando SRTM como fuente del DTM. Sri Lanka.
GEE Interface and attribute table (including “peligrosidad” figures) to be exported as CSV

Puedes probar cómo funciona el código tú mismo en este link abajo!
https://code.earthengine.google.com/d5ab28afa291508009e32bafdb6dbdbf

Alberto C
GIS analyst

Water Quality Assessment based on Sentinel-2 Surface Reflectance over La Safor region, Valencia, Spain. Winter 2024-25

While initially puzzling, the abnormally high values observed in early winter via the Ulyssys Water Quality Viewer (UWQV), based on Sentinel-2 surface reflectance, seemed at first glance to result from remote sensing artifacts. During winter months, low solar elevation typically introduces radiometric distortions — notably increased atmospheric path radiance and longer photon path lengths — which can bias water quality retrievals, particularly in optically dark or complex inland waters. These effects are often compounded by known limitations in atmospheric correction algorithms under low-illumination conditions, especially when residual aerosol loading, adjacency effects from snow-covered surroundings, or sub-pixel ice contamination are present. Furthermore, the empirical models embedded in UWQV are generally not seasonally calibrated, and may overreact to slight shifts in reflectance ratios driven by non-biological phenomena.

Just got back from the spot and happened to “suffer” this turbidity myself

Summarizing, potential issues we need to first approach:

A Atmospheric Correction Limitations

1 In winter, low sun angles, higher aerosol loads, and thin cirrus contamination challenge atmospheric correction algorithms. 2 Water bodies have very low reflectance compared to land, so any residual atmospheric effects disproportionately affect them. And 3, In turbid or eutrophic systems, bottom reflection and adjacency effects can also contaminate the signal.

B Optical Properties and Solar Zenith Angle

During winter months, especially at mid to high latitudes, the solar zenith angle increases significantly (i.e., the sun is lower in the sky). This results in:

1 Reduced surface irradiance, altering the light–water interaction and increasing the path length through the atmosphere. 2, greater Rayleigh scattering and atmospheric path radiance, especially in blue bands (e.g., B2, B3), which are critical for water quality algorithms. And 3, altered reflectance ratios, which can skew bio-optical models that estimate turbidity, chlorophyll-a, and CDOM.

However, in light of recent meteorological conditions in the study area — specifically the occurrence of exceptionally heavy rainfall events in the La Safor region of Valencia — a more grounded explanation emerges, rooted in hydrological and sediment dynamics rather than in sensor or algorithmic artifacts.

Oliva-Dénia seasides

Intense precipitation, particularly when sustained over short temporal windows, can trigger substantial runoff from surrounding basins into coastal or inland water bodies. In Mediterranean regions such as La Safor, where orographic effects and land cover can exacerbate surface flow, such events are well known to introduce significant loads of suspended sediments, organic debris, and colored dissolved organic matter (CDOM) into aquatic systems. These inputs alter the optical properties of the water column by enhancing backscatter and absorption, particularly in the red and blue spectral ranges. Consequently, satellite-derived turbidity proxies — many of which rely on ratios involving Bands 3 (green) and 4 (red) or Bands 2 and 3 — respond sensitively to these shifts, yielding elevated values that genuinely reflect post-rainfall sediment plumes rather than sensor-induced noise.

UWQV Viewer

In this specific case, the surge in water quality parameter estimates at the onset of winter is best understood as a physical signal of increased particulate and dissolved matter loadings following hydrometeorological disturbances, rather than a byproduct of atmospheric correction errors or low sun angle artifacts. This reinforces the importance of integrating auxiliary datasets — such as precipitation records, river discharge measurements, and land use change dynamics — when interpreting satellite-derived water quality metrics, especially in regions with episodic climatic regimes.

Ultimately, while radiometric caution is always advisable during winter acquisitions, attributing anomalies solely to algorithmic noise without considering watershed-level processes may obscure genuine environmental dynamics. The intersection of optical remote sensing with event-driven hydrology highlights the power and also the interpretative challenge of Earth Observation in complex freshwater and transitional environments.

classic nearshore sediment discharge in high resolution: turbid, light‑colored water extending offshore as runoff-laden plumes visible in greenish to milky hues

The process unfolds as follows:

  1. High rainfall triggers overland flow and stream discharge, carrying sediments, organic detritus, and CDOM into receiving water bodies.
  2. Increased turbidity alters water-leaving reflectance (R_rs)—particularly in visible bands—leading to elevated backscatter.
  3. Satellite indices sensitive to TSM (Total Suspended Matter), such as green/red ratio or absolute reflectance thresholds, then detect plumes as bright anomalies offshore.

These reflectance shifts are not artifacts but a genuine optical signature of sediment dispersal following hydro-meteorological events.

https://custom-scripts.sentinel-hub.com/sentinel-2/ulyssys_water_quality_viewer/
https://dataspace.copernicus.eu/

Alberto C.
Geodata analyst and d’ailleurs, La Safor region lover

ELEVATION GAIN 84,448 m

On August 14th, 2014, I unknowingly took the first step of a long ascent. Nearly eleven years later, sharply 1089 runs later, I’ve reached an elevation gain of 84,448 metres — almost ten Everests. This isn’t the story of a single mountain climbed, but of a slow, deliberate series of efforts, some before dawn, raining cats and dogs, snowing, escaping from dogs, freezing like hell, others after long days, all contributing to a quiet accumulation of altitude and, more importantly, confidence.

There’s something deeply human in measuring oneself against a slope. Whether it’s a real hill rising before you or the invisible gradient of self-doubt, the act of confronting resistance fosters resilience. Every elevation gain represents a decision not to stop — not when it rains, not when the calendar fills up, not even when no one is watching.

Challenges like these are rarely about numbers, yet numbers have a way of revealing truth. Ten Everests may sound dramatic, but they happened in moments: early morning runs through Madrid’s suburbs, lonely stretches of cold in Lima, or during any of my three marathons where the finish line only existed because I placed it there. These moments — captured now and then on a map, or distilled into a few lines after a race — form the hidden terrain of a journey that reshaped more than my legs.

Because the real elevation gained isn’t physical. It’s psychological. Moving through space builds a sense of orientation in time, in self. Every route repeated reinforces commitment. Every route improvised nurtures adaptability. Over time, you grow not just fitter, but more grounded. More reliable. And in a world that prizes acceleration and volume, there is quiet value in endurance and consistency.

This isn’t a victory lap. It’s a pause on the trail to acknowledge that the climb, however unremarkable day to day, has meaning. That there’s strength in persistence. And that there are still more peaks to come — even if none of them need to be named.

Alberto C.

Elevation gain: almost ten Everests 🙂

Summer Heat Inequity in Madrid: A Playground-Based Analysis in Summer 2024

Between June 21 and September 21, 2024, I analyzed the surface temperatures of all 2,123 registered playgrounds in Madrid using Landsat 8/9 imagery (Level-2 Surface Temperature products). This investigation, an extension of my previous reflection on urban heat and environmental justice in Geovisualization.net (May 2025), highlights how thermal exposure is patterned by geography, planning legacies, and demographic vulnerability in the Spanish capital.

Cloud based computation in Google Earth Engine. Use the code I have provided and test it LIVE!

Out of Madrid’s 131 officially recognized neighborhoods, four—Argüelles, Recoletos, Ibiza, and Sol—had no public playgrounds at all. While these central areas are often associated with wealth and touristic activity, their lack of dedicated children’s public spaces points to a subtler form of spatial exclusion: not through excess heat, but through the absence of accessible, age-inclusive infrastructure.

Typical playground in Madrid downtown

In contrast, peripheral neighborhoods such as Ensanche de Vallecas and Villaverde not only host a large number of playgrounds (41 and 26 respectively), but also recorded some of the highest mean surface temperatures in our entire dataset—exceeding 45 °C in many cases, with peaks around 46.2 °C.

NeighborhoodAvg Temp (°C)# Playgrounds
Ensanche de Vallecas46.1941
Casco Histórico de Vallecas45.1028
Villaverde Alto45.0926
Casco Histórico de Barajas44.985
Butarque44.6812

What emerges clearly is a strong south-to-north thermal gradient. Neighborhoods located in the southern and southeastern sectors of the city systematically registered higher average temperatures across their playgrounds. These areas tend to combine dense building fabrics, limited canopy coverage, sparse urban forest infrastructure, and higher concentrations of impermeable surfaces such as asphalt and concrete. Unsurprisingly, they also overlap with the most socioeconomically disadvantaged parts of Madrid. Many of the hottest zones—including Casco Histórico de Vallecas, Butarque, Orcasur, and Villaverde Alto—align with broader patterns of structural neglect, where historical underinvestment in green infrastructure amplifies the risks of climate exposure.

Download the KMZ and take a look at those temperatures by yourself

You can find all 2123 playground parks and their average temperature accordingly here: https://www.dropbox.com/scl/fi/arwu0ekueo9r6vz8gm005/areas_infantiles202506_temp_OK.kmz?rlkey=2vmik3mx40e42uwgmudmnbmkv&dl=0

This heat disparity becomes even more urgent when considered alongside demographic data. According to recent figures (2024), districts like Villa de Vallecas, Vicálvaro, Barajas, and Fuencarral–El Pardo have the highest proportions of residents under 15 years of age. The convergence between these child-dense districts and high surface temperature values is particularly striking in Ensanche de Vallecas and Casco Histórico de Vallecas, where children are not only more numerous, but also more thermally exposed during the peak summer months. It is in these areas—where vulnerability accumulates across age, income, and environment—that thermal injustice becomes most acute.

South Madrid is hot, I can tell…

In the opposite side, playgrounds in the northern and northwestern parts of the city consistently recorded significantly lower surface temperatures. Areas such as Ciudad Universitaria (39.5 °C), El Viso (40.2 °C), Nueva España (40.6 °C), and Valdemarín (41.7 °C) benefit from a combination of urban tree cover, proximity to institutional campuses or forested parkland, and lower built density. The result is a materially cooler outdoor environment for children. In these districts, playgrounds function as thermally moderated, socially accessible urban commons—something far from guaranteed in their southern counterparts.

Madrid overview using Google Earth. Download the KMZ, choose your closest playground and check those temperatures by yourself!!

The spatial and thermal patterns uncovered in this analysis underscore that playgrounds are not thermally neutral spaces. Instead, they mirror—and in many cases, magnify—the uneven geographies of climate resilience in Madrid. In the southern periphery, children are more likely to play in unshaded, heat-intensified environments that fail to provide basic thermal comfort during extreme summer conditions. In the north, cooler playgrounds are often embedded in greener, better-resourced neighborhoods where environmental quality is not an exception but an urban standard.

South of Madrid is hotter, I can tell
The first twenty barrios

From a policy perspective, these findings call for targeted interventions. Thermal adaptation must prioritize those neighborhoods where elevated temperatures and high child populations intersect. This means retrofitting playgrounds in places like Ensanche de Vallecas, Villaverde, and Puente de Vallecas with shading structures, permeable surfaces, and strategically planted vegetation. At the same time, the absence of playgrounds in central neighborhoods like Argüelles or Recoletos should not be overlooked. Reclaiming even small parcels of urban space for child-friendly, thermally conscious design could contribute meaningfully to both social and microclimatic equity.

The last twenty barrios

Madrid’s playgrounds are not only sites of recreation—they are thermometers of environmental justice. In a warming climate, who plays where, and at what temperature, is a question that speaks directly to the ethics of urban planning.

This is the excel file with all barrios, all playground counts by barrio and all average temperatures by playground taking into account all available Landsat 9 images during that 90 days period (roughly ten images with cloud coverage less than 5%).
https://www.dropbox.com/scl/fi/ffs997vq96nbxcqf59gqy/final.xls?rlkey=nfdi680eow4v63ar6on8jendl&dl=0

Hope you guys enjoy the post, if so, let me know. Your feedback is greatly appreciated.

Alberto C.
Senior Data Analyst and worried about inequity

https://datos.gob.es/es/catalogo/l01280796-barrios-municipales-de-madrid
https://datos.madrid.es/portal/site/egob/menuitem.c05c1f754a33a9fbe4b2e4b284f1a5a0/?vgnextoid=102454b0951ac510VgnVCM2000001f4a900aRCRD&vgnextchannel=374512b9ace9f310VgnVCM100000171f5a0aRCRD&vgnextfmt=default
https://elpais.com/espana/madrid/2025-06-10/que-calor-hace-en-cada-parque-infantil-de-madrid-los-satelites-de-la-nasa-dicen-que-el-64-se-disparan-hasta-los-41-grados-o-mas.html
https://x.com/MasMadrid__/status/1932336253174718501
https://x.com/CiudadanO_O/status/1932310753958117504
https://code.earthengine.google.com/edf2c111f8f5bbcfc578a41224421d9f

Urban delineation methods beyond administrative boundaries

As a geographer working with Geographic Information Systems (GIS), I am particularly interested in exploring urban delineation methods that move beyond the constraints of administrative boundaries. Instead of relying on official municipal limits—which can often be outdated or misaligned with functional realities on the ground—I focus on delineating urban areas based on physical indicators such as built-up surface, population density, and spatial continuity. This approach allows for a more accurate and dynamic understanding of urban space.

Urban tuning. ¿What area is more Urban and why?. Case study over Tajikistan

One of the key advantages of this method is its adaptability. By combining high-resolution built-up surface data (i.e., GHSL) with recent population datasets (i.e., WorldPop or census microdata), we can define urban extents that are responsive to real-world conditions. Furthermore, the inclusion of additional variables—such as land use intensity, night-time lights, or accessibility metrics—makes it possible to tailor the definition of “urban” to specific research questions or policy needs.

Urban tuning. ¿What area is more Urban and why?. Case study over Tajikistan
// Filling small holes inside urban delimitation
var urbanClean = urbanMask
.focal_mode(9, 'square', 'pixels')
.focal_max(9, 'square', 'pixels');

All spatial processing and analysis have been conducted using Google Earth Engine (GEE), which offers a powerful cloud-based platform for geospatial analysis at scale. GEE enabled the seamless integration of multi-source datasets, temporal filtering, and the application of spatial operators for morphological transformations, such as focal operations to fill small gaps between built-up patches. This helped to consolidate fragmented urban geometries and ensure spatial continuity, particularly in rapidly expanding or sprawling urban areas.

// Applying urban threshold (i.e, values > 90 are considered urban)
var urbanMask = built.gt(90);
Map.addLayer(urbanMask.updateMask(urbanMask), {palette: ['red']}, 'Binary Urban Zones');
Google Earth Engine

This kind of urban delineation has a wide range of potential applications. One immediate use case is to estimate the population covered by a given technology—such as 4G or 5G mobile networks—by overlaying coverage maps with these data-driven urban extents. However, the implications go far beyond telecoms. The method can support infrastructure planning, health service accessibility analysis, risk exposure assessments, and urban resilience studies.

In particular, using these refined urban boundaries allows us to model service delivery or environmental exposure more precisely than would be possible using administrative units alone. For example, in the context of climate adaptation, being able to identify the true spatial footprint of an urban area is critical for assessing urban heat island effects or planning green infrastructure interventions.

Ultimately, this approach contributes to a more flexible and analytically powerful framework for understanding urban dynamics—one that reflects the lived reality of urbanization rather than the often arbitrary lines drawn on a map.

I have performed all tests using Global Mapper 26.0, Google Earth Pro.

I herewith add the direct link to GEE where you guys can test it right away!!!
https://code.earthengine.google.com/5f74c4f82c17ac8ae3ade4a1d7974589
Please test it and let me know about it!!!

Alberto C
Senior GIS analyst and Open Data Evangelist

https://code.earthengine.google.com/
https://developers.google.com/earth-engine/datasets/catalog/JRC_GHSL_P2023A_GHS_BUILT_S?hl=es-419
https://developers.google.com/earth-engine/datasets/catalog/WorldPop_GP_100m_pop

Urban Heat Islands, Trees, and Climate Justice in the Anthropocene: A Remote Sensing-Based Reflection

In recent years, the need to understand the urban environment has grown more urgent than ever. Climate change is not an abstract future scenario; it is already here, reshaping our cities day by day. Among the many phenomena that demand our attention, the Urban Heat Island (UHI) effect stands out—not only for its environmental and public health impacts but also for its socio-political implications. Through satellite imagery and remote sensing, we can now visualize and quantify these dynamics with increasing precision. This post reflects on such an analysis I conducted using LANDSAT 8 imagery (Scene ID: LC08_L2SP_201032_20250328_20250401_02_T1, Date Acquired: 2025/03/28), and discusses the findings in the broader context of urban planning, climate justice, and the urgent need to protect urban vegetation.

Urban Heat Description. The more the buildings, the worse… Source: geoai.au

The cost of development: asphalt over trees
Too often, urban development favors concrete and asphalt over natural surfaces. In many cities, especially in rapidly gentrifying neighborhoods, entire rows of mature trees are being cut down—not because they are sick or pose a danger, but simply to make room for more parking spaces, wider roads, or new apartment blocks. Trees, which take decades to grow and seconds to cut, are treated as obstacles to progress. Yet their value, both ecological and social, is immense.

istockphoto.com/ tag: urban heat

Satellite-based land surface temperature analysis reveals a clear, consistent pattern: densely vegetated areas within cities are significantly cooler than adjacent treeless zones, sometimes by 15 to 20 degrees Celsius. In my analysis of LANDSAT 8 thermal infrared bands over a metropolitan area in late March 2025, I identified strong correlations between canopy coverage and lower surface temperatures. Tree-lined streets, small urban parks, and green roofs stood out as cool “islands” amid seas of radiant heat.

Heat inequality: who pays the price?
Urban heat is not evenly distributed, and neither are its consequences. Vulnerable populations—often those with the least political power—live in the hottest neighborhoods. These same areas are usually where green infrastructure is most lacking. As climate change increases the frequency and intensity of heatwaves, this inequality translates into direct threats to human health, particularly for the elderly, children, and those with pre-existing medical conditions.

At the same time, the race for gentrification leaves little room for ecological nuance. “Development” is still measured in square meters built, not in degrees Celsius reduced. Urban trees are not just amenities; they are critical infrastructure that provide shade, store carbon, reduce air pollution, mitigate flood risk, and promote mental well-being. Yet, they are among the first victims of neoliberal urban planning.

Vegetation as climate adaptation infrastructure
The evidence is overwhelming. Urban forests and tree cover reduce surface and air temperatures through shading and evapotranspiration. In many of the urban cores I analyzed, areas with 40% canopy coverage had average temperatures 7°C lower than nearby impervious surfaces exposed to full sunlight. This isn’t just about comfort—it’s about survival in a warming world.

El Retiro Park and Surroundings. Average 10 degrees of difference and it’s only April!

But it’s not enough to plant saplings and walk away. Urban vegetation needs to be protected, maintained, and expanded strategically. We must prioritize native species, ensure access to water, and embed green corridors into urban design from the beginning—not as an afterthought.

Something Tunisians know very well. Trees in Avenue Habib Bourguiba in Tunis downtown, June 2024

The other side of the coin: artificial coolness
Interestingly, my LANDSAT 8 analysis also highlighted the inverse phenomenon—areas that appear cooler than expected due to artificial temperature manipulation, such as zones with massive HVAC systems. A striking example was the terminal of a major airport: its large roof surface, usually expected to be a heat emitter, registered abnormally low temperatures. Further inspection suggests this is due to industrial-scale air conditioning systems that exhaust cold air onto the surrounding rooftops.

Artificial Temperature Manipulation (Barajas Airport Terminals)
Same airport in August 2024. Heat outside (+50ºC) but very cool inside the terminal

These artificially cooled zones can distort temperature maps and create a false sense of environmental performance. While they offer localized relief, they do so at a high energy cost and often transfer heat elsewhere, contributing to overall warming. It’s a reminder that true climate resilience cannot be bought with electricity alone—it must be grown.

The world-wide famous Cobo-Calleja “poligono”. Nor a single tree in a ultra urban/industrial environment: HEAT big time!

Decoding Land Surface Temperature with Landsat 8: The Role of MTL Metadata Parameters
To carry out this analysis, as I said, I used LANDSAT 8 Level 2 Surface Reflectance data, specifically the scene LC08_L2SP_201032_20250328_20250401_02_T1, acquired on March 28, 2025. This product includes surface reflectance, thermal bands, and preprocessed atmospheric corrections, making it well-suited for urban temperature analysis.

Using R Studio to decode Satellite Imagery

Of particular importance for this study is the thermal band 10 (ST_B10), which is used to estimate Land Surface Temperature (LST). However, the values provided in the ST_B10.TIF file are not in degrees Celsius or Kelvin by default, but in scaled digital numbers (DNs). To convert these DNs to actual surface temperature values in Kelvin, two critical scaling parameters must be extracted from the accompanying metadata file (LC08_L2SP_201032_20250328_20250401_02_T1_MTL.txt).

In that file under the LEVEL2_SURFACE_TEMPERATURE_PARAMETERS group, we find the following:

TEMPERATURE_MULT_BAND_ST_B10 = 0.00341802
TEMPERATURE_ADD_BAND_ST_B10 = 149.0

These constants are unique to each scene and ensure physical consistency in temperature retrieval. They are derived by USGS based on instrument calibration and radiometric normalization processes specific to the acquisition date and sensor conditions.

Including this calculation step in the code is not optional—it is essential. Without applying temp_mult and temp_add, the raw digital numbers would be meaningless from a physical or environmental interpretation standpoint. They would not correspond to any known temperature scale and would render the thermal analysis scientifically invalid.

The procedure
(1) Single (one day) approach. This is the code for R Studio I extracted from TAMYGEO’s video and adapted to my needs over Madrid, first thing using ChatGPT for extracting text from a video capture, second thing, once I had verified proper installation of R Studio, installing terra package (one of the Spatial Data Analysis in R):

install.packages("terra")
library(terra)

input_folder <- "C:/GEO/EJEMPLO_CALOR" //custom
output_folder <- "C:/GEO/EJEMPLO_CALOR" //custom

temp_mult <- 0.00341802 //custom, the multiplicative rescaling factor
temp_add <- 149.0 //custom //custom, the additive offset 

b_st <- rast(file.path(input_folder, "LC08_L2SP_201032_20250328_20250401_02_T1_ST_B10.TIF")) //custom, actual B10 from Landsat 8

lst_kelvin <- (b_st * temp_mult) + temp_add
lst_celsius <- lst_kelvin - 273.15 //returns px value in celsius degrees

lst_utm <- project(lst_celsius, "EPSG:25830")

writeRaster(lst_utm, file.path(output_folder, "CALOR_MADRID_utm.tif"), overwrite = TRUE)

(2) Once I had my output TIFF, I used ARGIS pro for correct symbolization and classification.
(3) Also used ChatGPT for final retouching of the post.

The further away from the city, the cooler the temperature
GEE output interface

(4) Monthly approach. Finally, I updated the same map but instead of one image, the average measurement of a month (July 2024). For this purpose I used GOOGLE EARTH ENGINE. I herewith add the link to recreate the analysis right away: https://code.earthengine.google.com/8f016b3d63dff47dfe0adc2bf4eba1ee

https://www.dropbox.com/scl/fi/1ctoer6tf3dybi2meo97f/UHI_L8_July2024.tif?rlkey=yq45vcupv6dbr0gbl4zaxqpx8&dl=0 (you can download the raw output TIFF here)

Google Earth Engine Interface
ArcGIS visualization and classification – A wider view over Madrid

Why is better a monthly approach?
Reduced Impact of Temporal Fluctuations: Daily temperature data can be highly variable due to short-term weather conditions (e.g., clouds, wind, humidity). A monthly composite provides a more stable and representative view of the underlying thermal patterns.

More Consistent Data: Daily data can be sparse or inconsistent, especially in the presence of cloud cover or atmospheric conditions that may affect the satellite imagery. A monthly average reduces this inconsistency by using multiple images.

Smoothing of Extremes: Monthly averages smooth out extreme temperature events that might be caused by outliers such as unusual heatwaves or cold fronts. This gives a clearer picture of the typical urban heat island effect.

Longer-Term Trends: A monthly composite provides a better sense of long-term patterns, helping to understand the overall trends of Urban Heat Island (UHI) effects, which can be missed in a daily analysis.

Better Spatial Representation: Monthly composites are less affected by cloud cover or atmospheric interference, ensuring that areas which might be missed in individual daily images are considered in the final analysis.

More Effective for Urban Planning: For urban heat analysis, a monthly approach gives urban planners and decision-makers a clearer, more stable understanding of areas impacted by heat over time, helping to design better mitigation strategies.

In areas like Retiro Park, Madrid Rio or Campo del Moro, we can clearly see how the presence of lush vegetation provides a natural buffer against high temperatures. These zones maintain cooler surface temperatures compared to adjacent urban areas. The tree canopy in these parks absorbs heat, reducing the heat island effect and providing relief to both wildlife and human populations.

ArcGIS visualization and classification – Madrid Rio

On the other hand, industrial areas and neighborhoods with little or no tree coverage, such as certain industrial estates or densely built-up residential areas, show significantly higher surface temperatures. These areas, with fewer green spaces, are more vulnerable to heat accumulation, leading to more intense UHI effects.

By incorporating a monthly (or quarterly) perspective, you can better capture these long-term thermal patterns and the benefits of vegetation in reducing urban heat, providing more actionable insights for urban planning and environmental protection (i.e urban trees’ growth throughout time).

Madrid Rio (and 500m buffer) temperatures measurement. Summer 2016-2024

Acknowledgment and final thoughts
This work would not have been possible without the generous and practical knowledge shared by the Tamara Sepúlveda (TAMYGEO) YouTube channel, whose video (link) not only inspired me but also provided the R Studio code that formed the backbone of my analysis. A heartfelt thank you for making high-quality geospatial science accessible and replicable.

As geographers, ambientalists, urban dwellers, urban planners, scientists and why not, society, we have a responsibility to push back against policies that trade long-term livability for short-term profitability. Heat is not just a symptom—it is a signal. And it is screaming that we must radically rethink how we design and govern our cities. Let trees grow. Let green guide us.

I hope you find the approach interesting. Would you like me to try it in another location anywhere in the world? Just let me know!

Alberto C
Geographer, GIS Analyst, and deeply concerned about human behavior

Sources:
https://posit.co/download/rstudio-desktop/
https://earthexplorer.usgs.gov/
https://en.wikipedia.org/wiki/Urban_heat_island
https://www.urbanheatislands.com/
https://www.youtube.com/watch?v=n8_Nx0z8iCs&list=LL&index=2&ab_channel=TAMYGEO
https://joint-research-centre.ec.europa.eu/jrc-news-and-updates/urban-heat-islands-managing-extreme-heat-keep-cities-cool-2024-07-22_en
https://dialnet.unirioja.es/servlet/articulo?codigo=10036795
https://www.sciencedirect.com/science/article/pii/S2212095522001250
https://geoai.au/urban-heat-island-uhi-understanding-and-technology-for-measurement/
https://www.voanews.com/a/study-heat-waves-cost-poor-countries-the-most-exacerbating-inequality/6810648.html
https://www.bbc.com/future/article/20211025-climate-how-to-make-the-rich-pay-for-their-carbon-emissions
https://code.earthengine.google.com/
https://elpais.com/espana/madrid/2025-06-10/que-calor-hace-en-cada-parque-infantil-de-madrid-los-satelites-de-la-nasa-dicen-que-el-64-se-disparan-hasta-los-41-grados-o-mas.html

Mapping My 10-Year Adventure: Running Madrid to Ulaanbaatar 10,127 km

In August 2014, I laced up my running shoes for the first time, with no grand expectations — just a simple desire to move after a few months stuck when my first daughter was born, to feel better, to take control of me. I was far from athletic: weighing nearly 80 kilograms (almost 20 kg more than today), with no endurance, no rhythm, and definitely no running background (exception made of some runs in my mid 20’s :-)). But I made myself a promise: I would be stubborn, consistent, and patient. No matter the weather — rain, wind, snow, scorching heat, storms — I would run in a systematic way every week.

Ulaanbaatar… and beyond!

Today, more than ten years later, I realize how far that simple decision has taken me. As of now, I have accumulated 10,127 kilometers running. To put that into perspective, that’s the distance from Madrid, my hometown, all the way to Ulaanbaatar the capital of Mongolia (and 500 km more!). No, I didn’t run it all in one go — but step by step, week by week, year after year, I’ve covered the ground.

As a Geographer and a specialist in Geographic Information Systems (GIS), the process of tracking these kilometers has been more than just recording numbers. It’s been an exciting virtual journey across continents, imagining the landscapes I would have crossed if I had truly set out on foot:

  • Crossing the endless fields of Eastern Europe,Traversing the towering peaks of the Caucasus,
  • Skimming the shores of the Caspian Sea,
  • Passing through the endless Kazakh steppes,
  • Climbing into the vastness of Siberia,
  • Finally arriving at the green valleys surrounding Ulaanbaatar.

Beyond the physical journey, running has also become a fascinating Spatial exercise. Over the years, I have been mapping my runs, analyzing patterns, studying how my routes changed with seasons, cities, and circumstances. Using GIS tools, I have created heatmaps showing the areas where I ran most frequently, density analyses of my favorite urban paths, and even calculated cumulative elevation gains that rival mountain summits. It’s been incredible to see how Geography — my professional passion — and running — my personal discipline — intertwine so naturally.

GIS Analysis: My typical runs…
Elevation gain, almost 10 times going up the Everest!

Each map tells a story: the well-trodden loops of my local park, the spontaneous detours exploring unfamiliar neighborhoods, the silent straight lines of early morning runs along deserted beaches. Visualizing these patterns reminds me that behind every data point lies a lived experience, a choice, an effort. Running has not only carried me across kilometers, but it has also allowed me to turn my own movement into a living, breathing geographic project.

In reality, my runs have taken place in diverse and fascinating locations: Spain, France, Portugal, Tunisia, China, South Africa, Peru or Chile. Every place added its own flavor — the paves flooring of some European cities, the dusty trails of African landscapes, the humid mornings in Asia, the cool breezes of South America. Running has become a way to experience the world, one step at a time.

Alberto in Lion’s Head, Cape Town, South Africa. Circa 2017

My “ultimate” destination, however, lies even further away. My dream endpoint is Yelizovo, in the Kamchatka Peninsula, Russia — a place of volcanoes, forests, and pure wilderness. From Madrid, it would take approximately 14,081 kilometers to get there.

Kamchatka!

I still have about 3,954 kilometers to go (I say “about” as there’s no proper Camino to get there) — and while I’m realistic enough to know that I may never “arrive” in a literal sense, the beauty lies in the pursuit itself. As we say in Spanish: El que la sigue, la consiguewhere there’s a will, there’s a way.

Beyond the numbers, which I love (3 marathons, 38 half marathons, 453 runs over 10km, 82,396m of elevation gain, 9 pairs of running shoes), running has changed me deeply, both physically and mentally. It has taught me the power of perseverance, of stubbornness in the best sense. When you set a goal and keep moving toward it — no matter how small each step may seem — you build something extraordinary. Ten years ago, I couldn’t run for more than a minute without stopping. Today, running feels like breathing, like thinking, like a natural part of who I am.

My first Marathon: Valencia

The kilometers have sculpted my body, certainly (well, sort of ;-)) — from nearly 80 kilograms down to a stable 65 kg — but even more importantly, they have sharpened my mind. They have taught me resilience, patience, focus. Running has been my therapy, my meditation, my discipline, and my freedom.

A little update from the future 20260127 🙂

Running analysis using R. Is there anything we can’t insight? I think not!

To anyone reading this: I encourage you to pick your own metaphorical destination. Maybe it’s not 10,127 kilometers away in Ulaanbaatar, maybe it’s learning something new, improving your health, mastering a skill. Whatever it is, stay stubborn. Stay consistent. You will get there.
Step by step, day by day, you’ll arrive. I’m sure of it.

Alberto C.
GIS analyst and running lover

GEOGRAFÍA EN EL COLEGIO!

Gracias, 2ºA!!!!!

Ayer tuve el honor de compartir una hora y media con la clase de 2ºA de primaria de un Colegio en Madrid, hablando sobre Geografía desde muchos puntos de vista. Desde las proyecciones cartográficas hasta Google Earth, pasando por un proyecto cartográfico real y reciente, y terminando con la relación entre la Geografía y la Meteorología. Pero lo más especial no fueron los mapas ni las explicaciones… ¡fueron las preguntas!

Desde el primer momento, los niños y niñas mostraron una curiosidad increíble. Querían saber cómo se hacen los mapas, por qué algunos países cambian de tamaño según la proyección, qué pasa si usamos Google Earth para viajar hasta lugares muy lejanos, o cómo la Geografía tiene tanto que ver y nos ayuda a entender el tiempo. Cada tema abría nuevas dudas y cada respuesta llevaba a otra pregunta. Fue una experiencia maravillosa ver cómo exploraban el mundo a través de su entusiasmo y sus ganas de aprender.

La Geografía es mucho más que nombres y líneas en un mapa. Es la forma en la que entendemos nuestro planeta, cómo nos ubicamos en él y cómo podemos estudiarlo para mejorar nuestro entorno. Ayer, en esa aula, vi a futuros exploradores, científicos y personas con una gran capacidad de asombro ante el mundo.

Quiero dar las gracias a la profesora Cristina por abrirme las puertas de su aula y por fomentar ese espíritu curioso en sus alumnos. También a cada niño y niña de 2ºA, porque con su energía, atención e interés hicieron que la experiencia fuera inolvidable para mí.

Ojalá esta pequeña aventura haya despertado aún más su interés por la Geografía y por descubrir todo lo que el mundo tiene por ofrecerles. ¡El futuro está en buenas manos!

Alberto C.
GIS Analyst y profe de Geografía en mi próxima vida:-)

https://app.keeptrack.space/
https://satmap.space/
zoom.earth/
https://www.ventusky.com/
https://anclademia.com/blog/borrascas-y-anticiclones/
https://map.worldweatheronline.com/pressure
https://www.youtube.com/watch?v=Gifekp1EduE&ab_channel=GabyMedina

Visualizing Los Angeles wildfires 2025 in Copernicus interface using Pierre Markuse’s script +GOES 10min imagery

Wildfire monitoring has become an essential application of satellite imagery, enabling timely responses to natural disasters. The Copernicus Open Access Hub provides users with free access to Sentinel data, which, when combined with advanced visualization scripts, can offer a deeper understanding of wildfire dynamics. Pierre Markuse’s wildfire visualization script is a notable tool in this regard, as it effectively enhances the identification of burned areas and active fire zones using Sentinel-2 imagery. Below, we delve into how this script works and its practical applications for wildfire analysis.

An example of LIVE tracking using GOES Satellites

The Science Behind the Script

Pierre Markuse’s script leverages the multispectral capabilities of Sentinel-2, particularly its shortwave infrared (SWIR), near-infrared (NIR), and visible bands. The key band combinations used in this script include:

  • Band 12 (SWIR-2): Sensitive to moisture content in vegetation and soil, this band highlights burned areas as dark patches.
  • Band 8A (Narrow NIR): Enhances vegetation health and differentiates healthy from stressed or burned vegetation.
  • Band 4 (Red): Useful for identifying active fire fronts due to its sensitivity to high-temperature anomalies.

By combining these bands, the script generates a false-color composite that emphasizes:

  1. Burned areas (in shades of dark brown or black).
  2. Vegetation stress (reddish hues).
  3. Active fires (bright white or yellow pixels).
Wildfire east of Split, Croatia. Acquired on 17.7.2017

Implementation in the Copernicus Interface

To use the script, users must access the Sentinel Hub Playground or EO Browser, both of which support custom visualization scripts. The workflow includes the following steps:

  1. Data Selection:
    • Select a recent Sentinel-2 scene covering the area of interest.
    • Ensure cloud cover is minimal to maximize image clarity.
  2. Script Integration:
    • Copy Pierre Markuse’s script from his GitHub repository or a trusted source.
    • Paste the script into the custom visualization editor within the Sentinel Hub interface.
  3. Visualization:
    • Adjust the parameters, such as brightness or contrast, to fine-tune the output.
    • Interpret the results, focusing on the spatial distribution of burned areas and active fires.

Practical Applications

  • Emergency Response: Real-time visualization of wildfire progression aids firefighting teams in allocating resources effectively.
  • Damage Assessment: Post-fire analysis helps quantify the extent of burned areas, supporting ecological recovery efforts.
  • Research and Monitoring: Long-term data series can be used to study wildfire frequency, intensity, and correlation with climatic variables.

Key Advantages

Pierre Markuse’s script stands out for its:

  • Simplicity: Users with minimal coding experience can implement it seamlessly.
  • Accuracy: The band combinations are optimized for wildfire visualization.
  • Versatility: Applicable in various geographic regions and adaptable to different Sentinel-2 scenes.

Conclusion

The integration of Pierre Markuse’s wildfire visualization script into the Copernicus interface demonstrates the power of combining open-access satellite data with advanced analytical tools. For researchers, emergency responders, and environmentalists, this workflow represents a valuable resource for understanding and managing wildfires more effectively. By leveraging Sentinel-2’s rich spectral information, users can extract actionable insights and contribute to better wildfire mitigation and recovery strategies.

Other examples
// VERSION=3
// QuickFire V1.0.0 by Pierre Markuse (https://twitter.com/Pierre_Markuse)
// Adjusted for use in the Copernicus Browser (https://dataspace.copernicus.eu/browser/)
// CC BY 4.0 International (https://creativecommons.org/licenses/by/4.0/)

// Copernicus Browser does not have the band CLP, this was replaced with the isCloud() function
// but do try to turn off cloudAvoidance if results aren't as expected.

function setup() {
    return {
        input: ["B02", "B03", "B04", "B08", "B8A", "B11", "B12", "dataMask"],
        output: { bands: 4 }
    };
}

function isCloud(samples) {
    const NGDR = index(samples.B03, samples.B04);
    const bRatio = (samples.B03 - 0.175) / (0.39 - 0.175);
    return bRatio > 1 || (bRatio > 0 && NGDR > 0);
}

function stretch(val, min, max) { return (val - min) / (max - min); }

function satEnh(arr, s) {
    var avg = arr.reduce((a, b) => a + b, 0) / arr.length;
    return arr.map(a => avg * (1 - s) + a * s);
}

function layerBlend(lay1, lay2, lay3, op1, op2, op3) {
    return lay1.map(function (num, index) {
        return (num / 100 * op1 + (lay2[index] / 100 * op2) + (lay3[index] / 100 * op3));
    });
}

function evaluatePixel(sample) {
    const hsThreshold = [2.0, 1.5, 1.25, 1.0];
    const hotspot = 1;
    const style = 1;
    const hsSensitivity = 1.0;
    const boost = 1.2;

    const cloudAvoidance = 1;
    const avoidanceHelper = 0.8;

    const offset = -0.007;
    const saturation = 1.10;
    const brightness = 1.40;
    const sMin = 0.15;
    const sMax = 0.99;

    const showBurnscars = 0;
    const burnscarThreshold = -0.25;
    const burnscarStrength = 0.3;

    const NDWI = (sample.B03 - sample.B08) / (sample.B03 + sample.B08);
    const NDVI = (sample.B08 - sample.B04) / (sample.B08 + sample.B04);
    const waterHighlight = 0;
    const waterBoost = 2.0;
    const NDVI_threshold = 0.05;
    const NDWI_threshold = 0.0;
    const waterHelper = 0.1;

    const Black = [0, 0, 0];
    const NBRindex = (sample.B08 - sample.B12) / (sample.B08 + sample.B12);
    const naturalColorsCC = [Math.sqrt(brightness * sample.B04 + offset), Math.sqrt(brightness * sample.B03 + offset), Math.sqrt(brightness * sample.B02 + offset)];
    const naturalColors = [(2.5 * brightness * sample.B04 + offset), (2.5 * brightness * sample.B03 + offset), (2.5 * brightness * sample.B02 + offset)];
    const URBAN = [Math.sqrt(brightness * sample.B12 * 1.2 + offset), Math.sqrt(brightness * sample.B11 * 1.4 + offset), Math.sqrt(brightness * sample.B04 + offset)];
    const SWIR = [Math.sqrt(brightness * sample.B12 + offset), Math.sqrt(brightness * sample.B8A + offset), Math.sqrt(brightness * sample.B04 + offset)];
    const NIRblue = colorBlend(sample.B08, [0, 0.25, 1], [[0 / 255, 0 / 255, 0 / 255], [0 / 255, 100 / 255, 175 / 255], [150 / 255, 230 / 255, 255 / 255]]);
    const classicFalse = [sample.B08 * brightness, sample.B04 * brightness, sample.B03 * brightness];
    const NIR = [sample.B08 * brightness, sample.B08 * brightness, sample.B08 * brightness];
    const atmoPen = [sample.B12 * brightness, sample.B11 * brightness, sample.B08 * brightness];
    var enhNaturalColors = [0, 0, 0];
    for (let i = 0; i < 3; i += 1) { enhNaturalColors[i] = (brightness * ((naturalColors[i] + naturalColorsCC[i]) / 2) + (URBAN[i] / 10)); }

    const manualCorrection = [0.04, 0.00, -0.05];

    var Viz = layerBlend(URBAN, SWIR, naturalColorsCC, 10, 10, 90); // Choose visualization(s) and opacity here

    if (waterHighlight) {
        if ((NDVI < NDVI_threshold) && (NDWI > NDWI_threshold) && (sample.B04 < waterHelper)) {
            Viz[1] = Viz[1] * 1.2 * waterBoost + 0.1;
            Viz[2] = Viz[2] * 1.5 * waterBoost + 0.2;
        }
    }

    Viz = satEnh(Viz, saturation);
    for (let i = 0; i < 3; i += 1) {
        Viz[i] = stretch(Viz[i], sMin, sMax);
        Viz[i] += manualCorrection[i];
    }

    if (hotspot) {
        if ((!cloudAvoidance) || (!isCloud(sample) && (sample.B02 < avoidanceHelper))) {
            switch (style) {
                case 1:
                    if ((sample.B12 + sample.B11) > (hsThreshold[0] / hsSensitivity)) return [((boost * 0.50 * sample.B12) + Viz[0]), ((boost * 0.50 * sample.B11) + Viz[1]), Viz[2], sample.dataMask];
                    if ((sample.B12 + sample.B11) > (hsThreshold[1] / hsSensitivity)) return [((boost * 0.50 * sample.B12) + Viz[0]), ((boost * 0.20 * sample.B11) + Viz[1]), Viz[2], sample.dataMask];
                    if ((sample.B12 + sample.B11) > (hsThreshold[2] / hsSensitivity)) return [((boost * 0.50 * sample.B12) + Viz[0]), ((boost * 0.10 * sample.B11) + Viz[1]), Viz[2], sample.dataMask];
                    if ((sample.B12 + sample.B11) > (hsThreshold[3] / hsSensitivity)) return [((boost * 0.50 * sample.B12) + Viz[0]), ((boost * 0.00 * sample.B11) + Viz[1]), Viz[2], sample.dataMask];
                    break;
                case 2:
                    if ((sample.B12 + sample.B11) > (hsThreshold[3] / hsSensitivity)) return [1, 0, 0, sample.dataMask];
                    break;
                case 3:
                    if ((sample.B12 + sample.B11) > (hsThreshold[3] / hsSensitivity)) return [1, 1, 0, sample.dataMask];
                    break;
                case 4:
                    if ((sample.B12 + sample.B11) > (hsThreshold[3] / hsSensitivity)) return [Viz[0] + 0.2, Viz[1] - 0.2, Viz[2] - 0.2, sample.dataMask];
                    break;
                default:
            }
        }
    }

    if (showBurnscars) {
        if (NBRindex < burnscarThreshold) {
            Viz[0] = Viz[0] + burnscarStrength;
            Viz[1] = Viz[1] + burnscarStrength;
        }
    }

    return [Viz[0], Viz[1], Viz[2], sample.dataMask];
}

Sources:
https://custom-scripts.sentinel-hub.com/custom-scripts/sentinel-2/markuse_fire/
https://custom-scripts.sentinel-hub.com/custom-scripts/sentinel-3/enhanced_true_color-2/
https://medium.com/sentinel-hub/create-useful-and-beautiful-satellite-images-with-custom-scripts-8ef0e6a474c6

Alberto C.
GIS Analyst