﻿{"id":16112,"date":"2025-12-17T10:00:00","date_gmt":"2025-12-17T09:00:00","guid":{"rendered":"https:\/\/www.sigterritoires.fr\/?p=16112"},"modified":"2025-12-15T14:09:54","modified_gmt":"2025-12-15T13:09:54","slug":"de-sentinel-2-a-1-m-de-resolucion-hacia-un-analisis-mas-detallado-de-los-entornos-costeros","status":"publish","type":"post","link":"https:\/\/www.sigterritoires.fr\/index.php\/es\/de-sentinel-2-a-1-m-de-resolucion-hacia-un-analisis-mas-detallado-de-los-entornos-costeros\/","title":{"rendered":"De Sentinel-2 a 1 m de resoluci\u00f3n: hacia un an\u00e1lisis m\u00e1s detallado de los entornos costeros"},"content":{"rendered":"\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>En dos art\u00edculos anteriores, exploramos c\u00f3mo pasar de im\u00e1genes Sentinel-2 est\u00e1ndar (resoluci\u00f3n de 10 m) a una versi\u00f3n de alta resoluci\u00f3n de 1 m utilizando el m\u00f3dulo S2DR3, desarrollado para la investigaci\u00f3n sobre los corales de Mauricio. Este paso permite obtener un nivel de detalle sin precedentes a partir de datos abiertos, revelando estructuras finas que a menudo son invisibles a 10 m: praderas marinas, plataformas, zonas arenosas o incluso transiciones sutiles entre la vegetaci\u00f3n y el arrecife.<\/p>\n\n\n\n<p>Tradicionalmente, el c\u00e1lculo de los \u00edndices espectrales (NDVI, NDWI, MNDWI, BSI, NDBI, etc.) se realiza en QGIS, una vez descargadas y procesadas las im\u00e1genes. Sin embargo, a menudo es m\u00e1s eficaz generar estos \u00edndices directamente en la fuente, es decir, desde la producci\u00f3n de las im\u00e1genes Sentinel-2 de alta resoluci\u00f3n.<\/p>\n\n\n\n<p>Este enfoque presenta varias ventajas:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Automatizaci\u00f3n completa: los \u00edndices se calculan desde la creaci\u00f3n del conjunto de datos, sin necesidad de procesamiento manual adicional en QGIS.<\/li>\n\n\n\n<li>Coherencia espacial: los \u00edndices utilizan exactamente las mismas correcciones radiom\u00e9tricas y la misma superresoluci\u00f3n que las bandas originales.<\/li>\n\n\n\n<li>Ahorro de tiempo: sin exportaciones intermedias ni configuraci\u00f3n manual de algoritmos r\u00e1ster.<\/li>\n\n\n\n<li>Preparaci\u00f3n para el an\u00e1lisis: los resultados se pueden utilizar inmediatamente en QGIS o en cualquier otra herramienta SIG.<\/li>\n<\/ul>\n\n\n\n<p>El script que se presenta a continuaci\u00f3n automatiza todo el flujo:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>descarga y superresoluci\u00f3n de la escena Sentinel-2,<\/li>\n\n\n\n<li>generaci\u00f3n de una m\u00e1scara de nubes inteligente (con exclusi\u00f3n de las zonas de oleaje),<\/li>\n\n\n\n<li>c\u00e1lculo directo de los principales \u00edndices espectrales,<\/li>\n\n\n\n<li>creaci\u00f3n de un archivo multibanda listo para el an\u00e1lisis.<\/li>\n<\/ol>\n\n\n\n<p>Esta integraci\u00f3n simplifica considerablemente el paso de la imagen bruta a los mapas de interpretaci\u00f3n, al tiempo que garantiza la reproducibilidad del tratamiento cient\u00edfico.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_83 counter-hierarchy ez-toc-counter ez-toc-light-blue ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Contenu <\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/es\/de-sentinel-2-a-1-m-de-resolucion-hacia-un-analisis-mas-detallado-de-los-entornos-costeros\/#Los_indices_calculados\" >Los \u00edndices calculados<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/es\/de-sentinel-2-a-1-m-de-resolucion-hacia-un-analisis-mas-detallado-de-los-entornos-costeros\/#NDVI_%E2%80%94_Indice_de_vegetacion_de_diferencia_normalizada\" >NDVI \u2014 \u00cdndice de vegetaci\u00f3n de diferencia normalizada.<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/es\/de-sentinel-2-a-1-m-de-resolucion-hacia-un-analisis-mas-detallado-de-los-entornos-costeros\/#NDWI_%E2%80%94_Indice_de_agua_normalizado_por_diferencia\" >NDWI \u2014 \u00cdndice de agua normalizado por diferencia<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/es\/de-sentinel-2-a-1-m-de-resolucion-hacia-un-analisis-mas-detallado-de-los-entornos-costeros\/#MNDWI_%E2%80%94_NDWI_modificado\" >MNDWI \u2014 NDWI modificado<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/es\/de-sentinel-2-a-1-m-de-resolucion-hacia-un-analisis-mas-detallado-de-los-entornos-costeros\/#BSI_%E2%80%94_Indice_de_suelo_desnudo\" >BSI \u2014 \u00cdndice de suelo desnudo<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/es\/de-sentinel-2-a-1-m-de-resolucion-hacia-un-analisis-mas-detallado-de-los-entornos-costeros\/#NDBI_%E2%80%94_Indice_de_diferencia_normalizada_de_zonas_construidas\" >NDBI \u2014 \u00cdndice de diferencia normalizada de zonas construidas<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/es\/de-sentinel-2-a-1-m-de-resolucion-hacia-un-analisis-mas-detallado-de-los-entornos-costeros\/#EVI_%E2%80%94_Indice_de_vegetacion_mejorado\" >EVI \u2014 \u00cdndice de vegetaci\u00f3n mejorado<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/es\/de-sentinel-2-a-1-m-de-resolucion-hacia-un-analisis-mas-detallado-de-los-entornos-costeros\/#SAVI_%E2%80%94_Indice_de_vegetacion_ajustado_al_suelo\" >SAVI \u2014 \u00cdndice de vegetaci\u00f3n ajustado al suelo<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/es\/de-sentinel-2-a-1-m-de-resolucion-hacia-un-analisis-mas-detallado-de-los-entornos-costeros\/#UI_%E2%80%94_Indice_urbano_o_indice_de_urbanizacion\" >UI \u2014 \u00cdndice urbano (o \u00edndice de urbanizaci\u00f3n)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/es\/de-sentinel-2-a-1-m-de-resolucion-hacia-un-analisis-mas-detallado-de-los-entornos-costeros\/#RDI_%E2%80%94_Indice_de_diferencia_de_rojez\" >RDI \u2014 \u00cdndice de diferencia de rojez<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/es\/de-sentinel-2-a-1-m-de-resolucion-hacia-un-analisis-mas-detallado-de-los-entornos-costeros\/#Tabla_resumen_completa\" >Tabla resumen completa<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/es\/de-sentinel-2-a-1-m-de-resolucion-hacia-un-analisis-mas-detallado-de-los-entornos-costeros\/#Gama_de_indices_Sentinel\" >Gama de \u00edndices Sentinel<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/es\/de-sentinel-2-a-1-m-de-resolucion-hacia-un-analisis-mas-detallado-de-los-entornos-costeros\/#%C2%BFPor_que_utilizar_una_mascara_de_nubes\" >\u00bfPor qu\u00e9 utilizar una m\u00e1scara de nubes?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/es\/de-sentinel-2-a-1-m-de-resolucion-hacia-un-analisis-mas-detallado-de-los-entornos-costeros\/#Mascara_de_nubes_para_Sentinel-2_a_10_m\" >M\u00e1scara de nubes para Sentinel-2 a 10 m.<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/es\/de-sentinel-2-a-1-m-de-resolucion-hacia-un-analisis-mas-detallado-de-los-entornos-costeros\/#a_Mascara_oficial_proporcionada_por_la_ESA\" >a) M\u00e1scara oficial proporcionada por la ESA.<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/es\/de-sentinel-2-a-1-m-de-resolucion-hacia-un-analisis-mas-detallado-de-los-entornos-costeros\/#b_Metodos_basados_en_indices_espectrales\" >b) M\u00e9todos basados en \u00edndices espectrales<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/es\/de-sentinel-2-a-1-m-de-resolucion-hacia-un-analisis-mas-detallado-de-los-entornos-costeros\/#c_Algoritmos_automaticos\" >c) Algoritmos autom\u00e1ticos<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-18\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/es\/de-sentinel-2-a-1-m-de-resolucion-hacia-un-analisis-mas-detallado-de-los-entornos-costeros\/#Como_se_procedio_en_el_script_Colab\" >C\u00f3mo se procedi\u00f3 en el script Colab<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-19\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/es\/de-sentinel-2-a-1-m-de-resolucion-hacia-un-analisis-mas-detallado-de-los-entornos-costeros\/#Etapas_principales\" >Etapas principales:<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-20\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/es\/de-sentinel-2-a-1-m-de-resolucion-hacia-un-analisis-mas-detallado-de-los-entornos-costeros\/#%C2%BFPor_que_este_metodo\" >\u00bfPor qu\u00e9 este m\u00e9todo?<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-21\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/es\/de-sentinel-2-a-1-m-de-resolucion-hacia-un-analisis-mas-detallado-de-los-entornos-costeros\/#Modo_de_funcionamiento\" >Modo de funcionamiento<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-22\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/es\/de-sentinel-2-a-1-m-de-resolucion-hacia-un-analisis-mas-detallado-de-los-entornos-costeros\/#Conclusion_hacia_un_procesamiento_integrado_de_las_imagenes_Sentinel-2\" >Conclusi\u00f3n: hacia un procesamiento integrado de las im\u00e1genes Sentinel-2<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Los_indices_calculados\"><\/span>Los \u00edndices calculados<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"NDVI_%E2%80%94_Indice_de_vegetacion_de_diferencia_normalizada\"><\/span>NDVI \u2014 \u00cdndice de vegetaci\u00f3n de diferencia normalizada.<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Objetivo: medir la densidad y la salud de la vegetaci\u00f3n.<\/li>\n\n\n\n<li>F\u00f3rmula:<\/li>\n<\/ul>\n\n\n\n<p>.<\/p>\n\n\n\n\\(<br>NDVI = \\frac{NIR &#8211; Red}{NIR + Red}<br>\\)\n\n\n\n<p>.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>NIR = banda del infrarrojo cercano (B08)<\/li>\n\n\n\n<li>Red = banda roja (B04)<\/li>\n\n\n\n<li>Valores: -1 a 1; &gt;0,2 vegetaci\u00f3n, &lt;0,1 suelo desnudo o agua.<\/li>\n\n\n\n<li>Uso: seguimiento de la vegetaci\u00f3n, estimaci\u00f3n de la biomasa, agricultura.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"NDWI_%E2%80%94_Indice_de_agua_normalizado_por_diferencia\"><\/span>NDWI \u2014 \u00cdndice de agua normalizado por diferencia<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Objetivo: detectar la presencia de agua en el paisaje.<\/li>\n\n\n\n<li>F\u00f3rmula:<\/li>\n<\/ul>\n\n\n\n<p>.<\/p>\n\n\n\n\\(<br>NDWI = \\frac{Verde- NIR}{Verde+ NIR}<br>\\)\n\n\n\n<p>.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Verde = banda verde (B03)<\/li>\n\n\n\n<li>NIR = banda infrarroja cercana (B08)<\/li>\n\n\n\n<li>Valores: positivos = agua, negativos = suelo\/vegetaci\u00f3n.<\/li>\n\n\n\n<li>Uso: cartograf\u00eda de lagos, r\u00edos, humedales.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"MNDWI_%E2%80%94_NDWI_modificado\"><\/span>MNDWI \u2014 NDWI modificado<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Objetivo: separar mejor el agua de las zonas urbanas o construidas.<\/li>\n\n\n\n<li>F\u00f3rmula:<\/li>\n<\/ul>\n\n\n\n<p>.<\/p>\n\n\n\n\\(MNDWI = \\frac{Green &#8211; SWIR1}{Green + SWIR1}\\)\n\n\n\n<p>.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>SWIR1 = banda de longitud de onda corta (B11)<\/li>\n\n\n\n<li>Valores: positivos = agua; mejora la detecci\u00f3n en comparaci\u00f3n con el NDWI.<\/li>\n\n\n\n<li>Uso: seguimiento de masas de agua en zonas urbanas o costeras.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"BSI_%E2%80%94_Indice_de_suelo_desnudo\"><\/span>BSI \u2014 \u00cdndice de suelo desnudo<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Objetivo: detectar suelos desnudos y zonas desnudas.<\/li>\n\n\n\n<li>F\u00f3rmula:<\/li>\n<\/ul>\n\n\n\n<p>.<\/p>\n\n\n\n\\(BSI = \\frac{(SWIR1 + Red) &#8211; (NIR + Blue)}{(SWIR1 + Red) + (NIR + Blue)}\\)\n\n\n\n<p>.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Azul = banda azul (B02)<\/li>\n\n\n\n<li>Red = B04, NIR = B08, SWIR1 = B11<\/li>\n\n\n\n<li>Valores: cuanto m\u00e1s alto es el BSI, m\u00e1s despejada est\u00e1 la superficie.<\/li>\n\n\n\n<li>Uso: seguimiento de suelos desnudos, zonas urbanas, zonas minerales.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"NDBI_%E2%80%94_Indice_de_diferencia_normalizada_de_zonas_construidas\"><\/span>NDBI \u2014 \u00cdndice de diferencia normalizada de zonas construidas<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Objetivo: detectar zonas construidas o impermeabilizadas.<\/p>\n\n\n\n<p>F\u00f3rmula:<\/p>\n\n\n\n<p>.<\/p>\n\n\n\n\\(NDBI = \\frac{SWIR1 &#8211; NIR}{SWIR1 + NIR}\\)\n\n\n\n<p>.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Valores: positivos = construido, negativos = vegetaci\u00f3n o agua.<\/li>\n\n\n\n<li>Uso: cartograf\u00eda urbana, seguimiento de la expansi\u00f3n de las ciudades.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"EVI_%E2%80%94_Indice_de_vegetacion_mejorado\"><\/span>EVI \u2014 \u00cdndice de vegetaci\u00f3n mejorado<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Objetivo: mejorar la sensibilidad del NDVI en zonas con vegetaci\u00f3n muy densa y corregir el efecto atmosf\u00e9rico.<\/li>\n\n\n\n<li>F\u00f3rmula:<\/li>\n<\/ul>\n\n\n\n<p>.<\/p>\n\n\n\n\\(EVI = 2,5 \\cdot \\frac{NIR &#8211; Red}{NIR + 6 \\cdot Red &#8211; 7,5 \\cdot Blue + 1}\\)\n\n\n\n<p>.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Azul = B02, Rojo = B04, NIR = B08<\/li>\n\n\n\n<li>Valores: -1 a 1, similar al NDVI pero m\u00e1s robusto en zonas densas.<\/li>\n\n\n\n<li>Uso: bosques, zonas tropicales, seguimiento de la salud de la vegetaci\u00f3n.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"SAVI_%E2%80%94_Indice_de_vegetacion_ajustado_al_suelo\"><\/span>SAVI \u2014 \u00cdndice de vegetaci\u00f3n ajustado al suelo<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Objetivo: medir la vegetaci\u00f3n corrigiendo el efecto del suelo (\u00fatil en zonas poco densas).<\/p>\n\n\n\n<p>F\u00f3rmula:<\/p>\n\n\n\n<p>.<\/p>\n\n\n\n\\(SAVI = \\frac{(NIR &#8211; Red) \\cdot (1 + L)}{NIR + Red + L}\\)\n\n\n\n<p>.<\/p>\n\n\n\n<p>donde:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>NIR = banda del infrarrojo cercano (Sentinel-2 B08)<\/li>\n\n\n\n<li>Red = banda roja (B04)<\/li>\n\n\n\n<li>L = factor de correcci\u00f3n del suelo, a menudo 0,5<\/li>\n\n\n\n<li>Valores: -1 a 1, como el NDVI, pero menos sensible al suelo desnudo.<\/li>\n\n\n\n<li>Uso: vegetaci\u00f3n escasa o dispersa (praderas, sabanas, zonas costeras con poca cobertura vegetal).<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"UI_%E2%80%94_Indice_urbano_o_indice_de_urbanizacion\"><\/span>UI \u2014 \u00cdndice urbano (o \u00edndice de urbanizaci\u00f3n)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Objetivo: detectar y cuantificar las zonas urbanas.<\/p>\n\n\n\n<p>F\u00f3rmula simple:<\/p>\n\n\n\n<p>.<\/p>\n\n\n\n<div class=\"wp-block-math\"><math display=\"block\"><semantics><mrow><mi>U<\/mi><mi>I<\/mi><mo>=<\/mo><mfrac><mrow><mi>S<\/mi><mi>W<\/mi><mi>I<\/mi><mi>R<\/mi><mo>\u2212<\/mo><mi>N<\/mi><mi>I<\/mi><mi>R<\/mi><\/mrow><mrow><mi>S<\/mi><mi>W<\/mi><mi>I<\/mi><mi>R<\/mi><mo>+<\/mo><mi>N<\/mi><mi>I<\/mi><mi>R<\/mi><\/mrow><\/mfrac><\/mrow><annotation encoding=\"application\/x-tex\">\n\nUI = \\frac{SWIR &#8211; NIR}{SWIR + NIR}\n\n<\/annotation><\/semantics><\/math><\/div>\n\n\n\n<p>.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>SWIR = banda de longitud de onda corta (Sentinel-2 B11 o B12)<\/li>\n\n\n\n<li>NIR = infrarrojo cercano (B08)<\/li>\n\n\n\n<li>Valores: positivos para zonas impermeables o construidas, bajos\/negativos para vegetaci\u00f3n o agua.<\/li>\n\n\n\n<li>Uso: seguimiento de la urbanizaci\u00f3n, detecci\u00f3n de edificios o superficies artificiales.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"RDI_%E2%80%94_Indice_de_diferencia_de_rojez\"><\/span>RDI \u2014 \u00cdndice de diferencia de rojez<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Objetivo: detectar suelos desnudos o zonas ricas en \u00f3xido de hierro (\u00abrojo\u00bb) en el paisaje.<\/li>\n\n\n\n<li>F\u00f3rmula:<\/li>\n<\/ul>\n\n\n\n<p>.<\/p>\n\n\n\n\\(RDI = Rojo &#8211; Verde\\)\n\n\n\n<p>.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Rojo = banda roja (B04), Verde = banda verde (B03)<\/li>\n\n\n\n<li>Valores: cuanto m\u00e1s \u00abrojo\u00bb es el suelo, mayor es el RDI.<\/li>\n\n\n\n<li>Uso: seguimiento de la erosi\u00f3n, suelos desnudos, zonas minerales o \u00e1ridas.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Tabla_resumen_completa\"><\/span>Tabla resumen completa<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u00cdndice <\/th><th>Objetivo <\/th><th>F\u00f3rmula <\/th><th>Uso t\u00edpico<\/th><\/tr><\/thead><tbody><tr><td>NDVI<\/td><td>Vegetaci\u00f3n <\/td><td>(NIR\u2212Red)\/(NIR+Red)<\/td><td>Supervisi\u00f3n de la vegetaci\u00f3n, agricultura<\/td><\/tr><tr><td>EVI<\/td><td>Vegetaci\u00f3n mejorada<\/td><td>2.5*(NIR-Red)\/(NIR+6<em>Red-7.5<\/em>Blue+1)<\/td><td>Zonas densas, bosques tropicales <\/td><\/tr><tr><td>SAVI<\/td><td>Vegetaci\u00f3n <\/td><td>(NIR\u2212Red)*(1+L)\/(NIR+Red+L)<\/td><td>Zonas dispersas, suelos visibles<\/td><\/tr><tr><td>NDWI<\/td><td>Agua <\/td><td>(Green\u2212NIR)\/(Green+NIR)<\/td><td>Cartograf\u00eda de lagos, r\u00edos<\/td><\/tr><tr><td>MNDWI<\/td><td>Agua modificada<\/td><td>(Green\u2212SWIR1)\/(Green+SWIR1)<\/td><td>Agua en zonas urbanas o costeras<\/td><\/tr><tr><td>BSI<\/td><td>Suelo desnudo<\/td><td>((SWIR1+Red)-(NIR+Blue))\/((SWIR1+Red)+(NIR+Blue))<\/td><td>Zonas desnudas, suelos desnudos<\/td><\/tr><tr><td>NDBI<\/td><td>Urbano <\/td><td>(SWIR1\u2212NIR)\/(SWIR1+NIR)<\/td><td>Detecci\u00f3n de edificios, ciudades <\/td><\/tr><tr><td>UI<\/td><td>Urbano <\/td><td>(SWIR1\u2212NIR)\/(SWIR1+NIR)<\/td><td>Cartograf\u00eda urbana<\/td><\/tr><tr><td>RDI<\/td><td>Suelo\/rojo<\/td><td>Red\u2212Green<\/td><td>Seguimiento de suelos desnudos u \u00f3xido de hierro<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Gama_de_indices_Sentinel\"><\/span>Gama de \u00edndices Sentinel<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Cada \u00edndice se presenta con:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>su nombre y acr\u00f3nimo,<\/li>\n\n\n\n<li>tipo de superficie objetivo (vegetaci\u00f3n, agua, suelo, urbano),<\/li>\n\n\n\n<li>valores t\u00edpicos\/escala,<\/li>\n\n\n\n<li>color representativo para su visualizaci\u00f3n en el mapa (por ejemplo, NDVI \u2192 verde, NDWI \u2192 azul, BSI \u2192 marr\u00f3n claro, etc.).<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u00cdndice<\/th><th>Tipo<\/th><th>Valores<\/th><th>Color representativo<\/th><\/tr><\/thead><tbody><tr><td>NDVI<\/td><td>Vegetaci\u00f3n<\/td><td>-1 \u2192 1 (verde oscuro = denso, amarillo = escaso)<\/td><td>Verde<\/td><\/tr><tr><td>EVI<\/td><td>Vegetaci\u00f3n<\/td><td>-1 \u2192 1 (similar al NDVI, m\u00e1s sensible)<\/td><td>Verde claro<\/td><\/tr><tr><td>SAVI<\/td><td>Vegetaci\u00f3n<\/td><td>-1 \u2192 1 (corregido por el suelo)<\/td><td>Verde-amarillo<\/td><\/tr><tr><td>NDWI<\/td><td>Agua<\/td><td>-1 \u2192 1 (positivo = agua)<\/td><td>Azul claro<\/td><\/tr><tr><td>MNDWI<\/td><td>Agua modificada<\/td><td>-1 \u2192 1<\/td><td>Azul turquesa<\/td><\/tr><tr><td>BSI<\/td><td>Suelo desnudo<\/td><td>-1 \u2192 1 (alto = suelo claro)<\/td><td>Beige \/ Marr\u00f3n<\/td><\/tr><tr><td>NDBI<\/td><td>Urbano<\/td><td>-1 \u2192 1 (positivo = construido)<\/td><td>Gris claro<\/td><\/tr><tr><td>UI<\/td><td>Urbano<\/td><td>-1 \u2192 1<\/td><td>Gris medio<\/td><\/tr><tr><td>RDI<\/td><td>Suelo\/rojo<\/td><td>variable, m\u00e1s alto = rojo<\/td><td>Rojo ladrillo<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%C2%BFPor_que_utilizar_una_mascara_de_nubes\"><\/span>\u00bfPor qu\u00e9 utilizar una m\u00e1scara de nubes?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Las nubes y sus sombras plantean un problema en las im\u00e1genes satelitales porque:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Oscurecen las superficies: suelo, vegetaci\u00f3n, agua, corales.<\/li>\n\n\n\n<li>Alteran los \u00edndices (NDVI, NDWI, etc.) porque los valores radiom\u00e9tricos no se corresponden con la superficie real.<\/li>\n\n\n\n<li>Las zonas cubiertas por nubes pueden generar valores at\u00edpicos: muy altos o muy bajos, lo que distorsiona los c\u00e1lculos de tendencias.<\/li>\n<\/ol>\n\n\n\n<p>Por lo tanto, para el an\u00e1lisis de \u00edndices y la detecci\u00f3n de caracter\u00edsticas en el suelo o en el agua, es importante ocultar estos p\u00edxeles.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Mascara_de_nubes_para_Sentinel-2_a_10_m\"><\/span>M\u00e1scara de nubes para Sentinel-2 a 10 m.<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Sentinel-2 ofrece varias opciones para detectar nubes en su resoluci\u00f3n nativa (10 m, 20 m o 60 m seg\u00fan la banda):<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"a_Mascara_oficial_proporcionada_por_la_ESA\"><\/span>a) M\u00e1scara oficial proporcionada por la ESA.<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Archivo QA60 en los productos Sentinel-2 L2A: m\u00e1scara binaria de 10 m que indica nubes y cirros.<\/li>\n\n\n\n<li>Ventajas: fiable y f\u00e1cil de aplicar.<\/li>\n\n\n\n<li>Inconvenientes: m\u00e1scara tosca \u2192 no siempre distingue bien entre nubes finas y sombras.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"b_Metodos_basados_en_indices_espectrales\"><\/span>b) M\u00e9todos basados en \u00edndices espectrales<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Banda SWIR y NIR: las nubes son muy reflectantes en el visible, pero menos en el SWIR.<\/li>\n\n\n\n<li>Ejemplo de \u00edndice simple:<\/li>\n<\/ul>\n\n\n\n<p>.<\/p>\n\n\n\n\\(<br>CI = \\frac{(B02 + B03 + B04)}{3} &#8211; B11<br>\\)\n\n\n\n<p>.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>P\u00edxeles claros en el visible y d\u00e9biles en SWIR \u2192 probablemente nubes.<\/li>\n\n\n\n<li>Permite crear una m\u00e1scara de nubes adaptada al contexto, \u00fatil si se desea detectar nubes y cirros locales.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"c_Algoritmos_automaticos\"><\/span>c) Algoritmos autom\u00e1ticos<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Fmask o s2cloudless: detecci\u00f3n sofisticada que utiliza aprendizaje autom\u00e1tico y espectros multiespectrales.<\/li>\n\n\n\n<li>Pr\u00e1ctico para grandes series temporales.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Como_se_procedio_en_el_script_Colab\"><\/span>C\u00f3mo se procedi\u00f3 en el script Colab<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>En el script no se utiliz\u00f3 el QA60 oficial, sino una detecci\u00f3n por \u00edndices espectrales y textura local, adaptada a las zonas costeras y a la superresoluci\u00f3n de 1 m:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Etapas_principales\"><\/span>Etapas principales:<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Normalizaci\u00f3n de las bandas<\/strong> :<br> <code>blue_n = blue \/ max <\/code><br> <code>green_n = green \/ max <\/code><br> <code>red_n = red \/ max <\/code><br> <code>nir_n = nir \/ max<\/code><br><code>swir1_n = swir1 \/ max<\/code> \u2192 todos los valores entre 0 y 1 para homogeneidad.<\/li>\n\n\n\n<li>Condici\u00f3n \u00abnube inicial\u00bb basada en 4 criterios :<ul><li>Muy claro en el visible (albedo_vis > 0,35) SWIR1 alto (swir1_n > 0,15) Relaci\u00f3n azul\/rojo elevada (blue_n \/ red_n > 1,2) NIR elevado (nir_n > 0,25)<\/li><\/ul>\u2192 los p\u00edxeles que cumplen al menos 3\/4 criterios se consideran nubes.<\/li>\n\n\n\n<li><strong>M\u00e1scara \u00abespuma\u00bb para las zonas marinas<\/strong> :\n<ul class=\"wp-block-list\">\n<li>Se detecta la espuma\/el rompimiento de las olas mediante la desviaci\u00f3n est\u00e1ndar local en la banda azul y el albedo visible.<\/li>\n\n\n\n<li>Se eliminan estos p\u00edxeles de la m\u00e1scara de nubes : <br><code>cloud_final = cloud_init &amp; (~foam_mask)<\/code><\/li>\n\n\n\n<li>Esto evita enmascarar la zona coralina o el mar agitado.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Filtrado de peque\u00f1os componentes<\/strong> :\n<ul class=\"wp-block-list\">\n<li>Elimina las nubes muy peque\u00f1as que podr\u00edan ser ruido \u2192 solo se conservan los objetos > 500 p\u00edxeles.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Resultado final<\/strong> :\n<ul class=\"wp-block-list\">\n<li><code>cloud_mask<\/code> = m\u00e1scara de nubes limpia, lista para ser utilizada para excluir los p\u00edxeles nubosos al calcular los \u00edndices.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%C2%BFPor_que_este_metodo\"><\/span>\u00bfPor qu\u00e9 este m\u00e9todo?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>La escena tiene una resoluci\u00f3n muy alta (1 m) \u2192 el QA60 oficial no existe con esta resoluci\u00f3n.<\/li>\n\n\n\n<li>La zona es costera\/coralina \u2192 hay que distinguir el musgo y las olas de las nubes.<\/li>\n\n\n\n<li>El enfoque espectral + textura local permite:\n<ul class=\"wp-block-list\">\n<li>detectar las nubes<\/li>\n\n\n\n<li>no ocultar el agua ni el espuma<\/li>\n\n\n\n<li>trabajar con im\u00e1genes de alta resoluci\u00f3n generadas por S2DR3<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Modo_de_funcionamiento\"><\/span>Modo de funcionamiento<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Abra Google Colab: <a href=\"https:\/\/colab.research.google.com\">https:\/\/colab.research.google.com<\/a><\/p>\n\n\n\n<p>En Collab, vincule su cuaderno a su Google Drive.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/10\/collab1.jpg?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"282\" data-attachment-id=\"15846\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/tutoriel-utiliser-s2dr3-dans-google-colab-pour-letude-des-coraux-a-maurice\/collab1\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/10\/collab1.jpg?fit=2474%2C1090&amp;ssl=1\" data-orig-size=\"2474,1090\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;1&quot;}\" data-image-title=\"collab1\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/10\/collab1.jpg?fit=640%2C282&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/10\/collab1.jpg?resize=640%2C282&#038;ssl=1\" alt=\"\" class=\"wp-image-15846\" srcset=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/10\/collab1.jpg?resize=1024%2C451&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/10\/collab1.jpg?resize=300%2C132&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/10\/collab1.jpg?resize=768%2C338&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/10\/collab1.jpg?resize=1536%2C677&amp;ssl=1 1536w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/10\/collab1.jpg?resize=2048%2C902&amp;ssl=1 2048w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/10\/collab1.jpg?w=1280&amp;ssl=1 1280w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/10\/collab1.jpg?w=1920&amp;ssl=1 1920w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n\n\n\n<p>Ahora, para que el procesamiento no lleve demasiado tiempo, debe activar una GPU en el entorno de ejecuci\u00f3n. Mire en la esquina inferior derecha de su cuaderno, ver\u00e1 algo como \u00abPython 3\u00bb con un icono de punto. Haga clic en \u00e9l y seleccione Cambiar el tipo de entorno de ejecuci\u00f3n. Se abrir\u00e1 una ventana en la que deber\u00e1 buscar Acelerador de hardware y seleccionar GPU T4. Guarde los cambios y el cuaderno se reiniciar\u00e1 autom\u00e1ticamente con la nueva configuraci\u00f3n.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/10\/collab3.jpg?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"615\" data-attachment-id=\"15847\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/tutoriel-utiliser-s2dr3-dans-google-colab-pour-letude-des-coraux-a-maurice\/collab3\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/10\/collab3.jpg?fit=1402%2C1347&amp;ssl=1\" data-orig-size=\"1402,1347\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;1&quot;}\" data-image-title=\"collab3\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/10\/collab3.jpg?fit=640%2C615&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/10\/collab3.jpg?resize=640%2C615&#038;ssl=1\" alt=\"\" class=\"wp-image-15847\" srcset=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/10\/collab3.jpg?resize=1024%2C984&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/10\/collab3.jpg?resize=300%2C288&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/10\/collab3.jpg?resize=768%2C738&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/10\/collab3.jpg?w=1402&amp;ssl=1 1402w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/10\/collab3.jpg?w=1280&amp;ssl=1 1280w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n\n\n\n<p>Copiez ce code dans une nouvelle cellule de votre bloc-notes et ex\u00e9cutez-le :<\/p>\n\n\n\n<p><strong><div class='stb-container stb-style-black stb-caption-box'><div class='stb-caption'><div class='stb-logo'><img class='stb-logo__image' src='data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN\/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz\/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH\/w\/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA\/g88wAAKCRFRHgg\/P9eM4Ors7ONo62Dl8t6r8G\/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt\/qIl7gRoXgugdfeLZrIPQLUAoOnaV\/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl\/AV\/1s+X48\/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H\/LcL\/\/wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93\/+8\/\/UegJQCAZkmScQAAXkQkLlTKsz\/HCAAARKCBKrBBG\/TBGCzABhzBBdzBC\/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD\/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q\/pH5Z\/YkGWcNMw09DpFGgsV\/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY\/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4\/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L\/1U\/W36p\/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N\/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26\/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE\/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV\/MN8C3yLfLT8Nvnl+F30N\/I\/9k\/3r\/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt\/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi\/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a\/zYnKOZarnivN7cyzytuQN5zvn\/\/tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO\/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3\/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA\/0HIw6217nU1R3SPVRSj9Yr60cOxx++\/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3\/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX\/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8\/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb\/1tWeOT3dvfN6b\/fF9\/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR\/cGhYPP\/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF\/6i\/suuFxYvfvjV69fO0ZjRoZfyl5O\/bXyl\/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o\/2j5sfVT0Kf7kxmTk\/8EA5jz\/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5\/wAAgOkAAHUwAADqYAAAOpgAABdvkl\/FRgAAD59JREFUeNrsmnmMXVd9xz9nucvbZvF4GdtjO46dhcRZSGmCSIAExaUFQtoiUVSgFFQBFaISRaBSoH9QVaUUAU2VSrSVoGELSgRpGshCA8GQYGfBcVZsx47j2dc3M2\/ee3c55\/z6xxubpOSPCSX8QXOkq3ve1ZXO+dzfcr7nd54SEX4TmuY3pL0E8hLIi9Ts8z08Ojr3nN9iAgklzdl54iRBCBROcXx8kTgynBxvcuN3D\/Lk0TFtrNmiQrHnA++48qz3vu2KM0VYd\/jYhPrAJ77cHptenqrV0hNac9gH\/Wi73W5bLbz7rZdx9Wv2MDk+RV4UVBoNQhkofUHaV0fCcxPSu669dm0gL8ikWmGtGWy3O+dqFa48d9vQqx99\/MQF01NLGwb6BxJr4fYfPs7iYhcdPCHrLjsJY319tf22kd7T7XR+EkROAO5XbpG1tCBCCNKfZcXe8cmFd1SMvOmc7ZvM7p0jHBltc9UVF9PJFV\/6+r185ZYHGN52Jko8zeZS39z84nl7zt1x3puvPv89N912YEwr\/Q3vw80hhPt\/rSAhBKpJcvnWTYMfuuk7D72FIFz3qXdzbLTJR\/\/pLuKBjdz+4CS3PTDOTXc+QiWJ2LqxD18UlBFs3taHTgZptiPqfUMj3Ux9RIL+k1q9fn2z2fxXYPrFBxHB2uj9Q+v6\/nrThnjbKy85h0svOoPtm4dYLhUbRraw2HV85+FJlFZsP+cMNNDOcogNpi\/ionPWc8bGKnf++Dg7tqznlZeMMDDQtymtJJ8S1Ou8hL8KhAMvGohI0Cay\/1BvND6YJpWkXqtxzesu4Mb\/Psz9Nx1i64YGjeF1dLolmyINSqGCICFgfRUpPT4rObrgIPZ86M9ex3lnrCNNYWx6AQ3U+\/quHB2b+lpfLf3L0he3\/upBRFSSVv+5Uq38eb1SUY16leVOyT9+8yHufGQSSSyPtT1FJaVSq6KNQikFBIIP4DziPFFW0ml1mex45tqeTUMNjo3P8eRTTepVTSWJue\/A47sG+tMvXnjBrkQrfVPQYXUS6v8ColBKqXaWfyatpO+vVaqqUU1ZWMr47Lce4ZsPjlMdqFFppGSRIUpiImvQSvXGDYHECN55sszh05xKYnnv3nO45pLtPDOzxF987kfY4HnDq7bS6XaoN\/pR2g0rrT7\/zDMnl7NW985IB2A1DV9zzdpAQvDPwcha7fdFJnywWkl1f73Ccjfw8Rse5LYnptk0Moitppg0xiYRylq0VSilQQkEQYtQ1SK6k6si15SR5Ws\/HaUQGK4Y9l6+i6KbMT7f4a59T7E8d5wdm2NqtXRrrW4\/7Z0fVbgnRIUXZhHXnkQpCEFotctLa7X6RwcHBpO+WoX5VsGnbz7E3cfn2bx9iKiWYqopNo3RscVEEUor0KrnCOIpCw8aUqMRoxBtGG91mG3nvPW3d\/F7l2ymcCUHD0+ysNjmwANzHD4+yuzcAm97y+UXp\/XKJ4vW8p9ao3PU87uXej4Zf\/2X\/xMfAo1aXL3wZVu+UvroD\/c\/OsMr9uzglgcmuOngBBu3rcM2qkTV9LRFTGyJkghR+ufjBY+4gCtLQlmiypKaBM4aiPnkVbuppxGtlQ7dLMP7AudKHnjsaZqLy0xOT9NaaeGkIJLyXaEovhIQ+eyn\/nZtFvnYF+6m0y15+XnDr7\/u42988w23Psm\/33aYN77+YprKsmFzP1E1wVZibDUmqsSYNMEkEcYa0KBYDXYREecxRqtgFDnIpprh46\/doeqJoSwd1hisMRQltHPHzpF1bFhXYXhTnbt\/dJCJySZbhvs+stBc\/J4ry8k1i8ZaAoMN07hw99B7Dj05a2\/dd4zLf+tMrnrFDtZvqJNbgyQRNo2wadyLjzTCxhZtNFpptFYorUgiEyppJDqJeq4XW3X59n7VV4lwLpxORkortNYoFHnh6WYlWV5y7lkjWGOYXWjtiZJ0b5Skas0g3SzDqnD+xsHK74gyXHnpLqr9NbpeuOjMIX53zzCNaoSJLcZaTGTQ0erkFav3Xox4Ee0VykYaYy1RZHnZUK2X0f+XvysUIoJWGqM1BEjThN1nbqHV6pI5eZcytrpmkLN3btJFKVdNzXbivVfs5FWXbOPEbIcb95\/kwdFFFgpPmkRoazBWY6zBaIM+DcFqvzc7AaV1710HHJzrnF4V1LNgRAmIoFTvudYaVwaGhvqIraGbla\/RqB1rBumrJVsaib3yth88zZdufozLzh\/mrB2DLBWek8sZj8ys0CwDohRaK7QCo1atoBT6WXetFEYrdG+hR2mIrH7u4hYEEQheCNLrA6c\/iHeBXbtHWGq27A\/2PX75mtNvu1NcGLzsUTriq7cfYaG0GKu5+oJh\/uCKM5npeh5e6HKsK3R9oL66UD37657qqtVr9Q1io7nr5DIXDibh5Rsb2jlHQABBIygBQRCRU8sfPgTi2DI42GCpefjlawYps3y3c7I+rcY4rzg23uKP33Qer71ohJ3Dg73PGjzfG13mxqdXmCgDKgrE2vyCiNCnbO4EJQGNsJCV\/NfTTT1Sj9lQjdCiyfPAUidHGcEahQ+ChJ6FAPK8ZHjLRrZsXb99zSBTUwu7RKWxUoZaJeaho002PzzNta88g6IoUNqitWLvjn4u3lDjtrE2t8\/kOK9IIv2s4F31\/RAQ7xDvIQRSA\/vGFhmbX+GanQPUDDxxdJYfHjjBxTtqXLSzThIHfPCE4PG+FzvOOdrtzvo1g+RlWG8ji9IGUFRjQyO1dPKCOOoFLWhCEDZUI959dj\/dsMQtE13iJKJiNbHpZa3gheAd4jwSAoSeZkq14sh8m78fXUA6npUTc7Snltj\/03HeuXcrey9dj\/ehdwVPEMG7QNbN62sXjX5Fi7WI9OODkEQRl501QGyEbl4SiyKJY4zWeBdQGi5dFyMIjy2VLDrPYiYkBhIFwQckeCQ4vHeIc0jpSEQwSpN1utjS01+JaHtP4XvS3zmP8wHnHKherAQRvWaQUE5nSpZwJicrhxiuj7BlncV5hy\/l55kpijBGEzycP5Bw0VDKTNezWHoems+5Z7pDy3m0BMR7gu+5SnC9S7xAIYTlHApP8AGDZ\/+hCc7bZkjiQFmWlM5hjGFqYoaVpaV87SAhn1AevFtBqZj52SmeODbFzpF+NEJe9NKnCMRRhDWKVPf01daaZSuWc\/tTtieKv9s\/BsGjvcc7TyhKQubwWYlkjmxukWx2npAVhDLD5V2enmlx4GHHay\/bTlGWpy1SZCW+LBfXDCKBY6KlLd7V4jSQ5wXfvOMJ9py1iR3DgxRFcWrHSJBAbC3amOesH8ZoWq2M5swSqRKU94TCIXlJyD1SONxKl2xmFp93CWWJ+Jzgc5R3tDs5RVGSFwVBAqDIiwJt7PQLsEj5Mx30uEh5dnAFlUrg6IkZjpyYY9vGBi4EUD054UXwIWC1xhiDUQprNHcdnubz9xxDZyUKIZSBUPYAxHlCt6RoNnF5hlVQrVraKzlOhCjSbByq0O50KZ0DFGXpmJqaR+DwmkGMsY8GCQeCL84WlyG+ACLuO3iSi8\/ZSH+9QhaEEHoZxTuPtbonU7QmNoZ7j0wxNr7IhmqM855QBsR5KAOhdD2I9gpKAt47Mi8ECXgX2DbcYOf2AZbaHXwIaK1YWlrBRhak+Mnas1ZwLRG5W7x7p\/cZynVIk4Tv7z+OF817rr2ATevr5CEQQoTXntJprLGksSEoj1vJ0Z0cJwFxq\/v2AFJ6yuVFytZyb30JHgm+l81Cz1V3bu1DESjyAq2htZLxzMlpnA8zutL3yJq1lpICI+V9oWjPBl8QXAcJXbTk3PHjo9xx33FEHN08J8tzsrwgywoIJZ0s4+v7jrPv0AQV73HtHN8tkMwTugVFc4FyebGXxcSDBE6JK1GgDDRXurS7GS54tNaMjs8xt7DM0nLrWyLMrtkiShlQ8gzivhpc8aFQZnizglWW1Gh++vg4b7hiB2kS4XwgspZqGrHv0Czff3iGnxxZIAhUYk0vnAx4T7GySJmt9MYIAUVACIgKBNWzjIhneaVLN8vxzrO80ub4yRlOjk64bH7sG6EsyzWDaG0BCh\/CjS5vv01ruzmYDkFbEMXs3ALziysMDVTRyuFtRBwJ37nvGX5wcIb+WkwUWUoXUNogoUPZXiSU2bMEbwB6VhHxq0AeE2nQUDqH4JlvtphdyOm285vLlYUD4oq1Fx867cXVNOwfUjb9N2OTv1FaoTCIh9YSjE7O0VfbjHMFA32KsekuE9OLVG1Ai8M7UFrjshY+W0a862lyAcEhEnpVllV5rNCgVneYRoN4jo8ucf+jC3TbxYRV4QtOmxyl1w4S\/CnrKe87zeuVhFcrM3yViEYHYcWXHH5qgl3bhxARxmcLbrrrGCdGF4jihOAEKPHFCr7soJRCUIgLQOjt6bXuSWP9XKGPBLSJuPfRJU6Md2h1Db7sfM5Lfn+0buR0PK0ta52i7m3VZspO8xMmqvyHTWW3IIgrmZiepZN1cWXg8afmeezIBL4EqwNlURKKDiIepQ1B9SaI0ihrfg5gev1ToAjg4ampgMs1hDq+eeSGfPnp6021f3XHpdYOctoPFUhwEMJ9WWvqw6nwRVthOOA59MgRXnHRDvobdb59x0Hml0rq9Qr5coEEhzYWpTTBF70al7Eos1p91Aqs6YEoiyjTS6C+Fx\/agLWK7twTd2ULRz+m4yh71uzWDlK2pn6hbCriblW9Ea8zSWNkbnqW7975AG\/5\/SvYOGiYHB8j8xHKxChtkeAQQFmDMRGo0JvsqiVEW5SOQEUoFSGsQolBjCZfPnJX0TrxXqWjCQi\/ZBH7eQJKKYvP298ubXM5iPucjuoXPv7okwytS+iraiLpIC5FCChvwGiiJAGjCMGhTG\/VRxvQFqViRKUok4CJCSZC4hrBefLxR25wnZMfVTpe8znJCzsfURqUvtt1l\/5Il9knlK28\/d59D9I\/2I9WAe8ygit6ApIERW9j5kShYbUebIEYpSpgKoS0BtUGqjGAa05N5RMHPlPOP\/0v2jTyF\/WgR6EQpX7m85X3aV\/ekRXZh\/MsvzipVNHWYuIY5xxaCWXZqx+b2BKCweURVmKgjsR9qL4BosF1BAvFxGPfkPbKdeXcU\/uVTn9dZ4gKlGoH774quHs2rq9fneWdtxeFeU21Fsfbt2yg3S2YWchRcYwyhjS2NBqWjq+QNCxxwyN6diZ65vu3LPbt\/np7Zemg8WpZ2WQtIfErPtXtlezHrOHL2vCt9uzkSL0irxqsb7pkpdU5o56Y9VhbGxoweudIcJFeWGqtzEy6vH20ODl\/f27qDymTzKqklWFiCL\/8wa566U81L4G8BPL\/A+R\/BgAzCInEE2+\/LgAAAABJRU5ErkJggg==' alt='img'\/><\/div><div class='stb-caption-content'>script Colab<\/div><div class='stb-tool'><\/div><\/div><div class='stb-content'><\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># =========================================================\n#   S2DR3 + Calcul indices Sentinel-2 + Masque nuages\n#   \u00c9tude des coraux \u00e0 Blue Bay \/ \u00cele aux Aigrettes\n# =========================================================\n\n# --- 1. Monter Google Drive ---\nfrom google.colab import drive\ndrive.mount('\/content\/drive')\n\n# Cr\u00e9e un dossier pour les r\u00e9sultats\n!mkdir -p \/content\/drive\/MyDrive\/Sentinel2_Coraux_S2DR3\/output\n!ln -s \/content\/drive\/MyDrive\/Sentinel2_Coraux_S2DR3\/output \/content\/output\n\n# --- 2. Installer le paquet S2DR3 ---\n!pip -q install https:\/\/storage.googleapis.com\/0x7ff601307fa5\/s2dr3-20250905.1-cp312-cp312-linux_x86_64.whl\n\n# --- 3. Importer le module principal ---\nimport s2dr3.inferutils\nimport os, glob, numpy as np, rasterio, scipy.ndimage as ndi\nfrom skimage.transform import resize\n\n# --- 4. D\u00e9finir la zone d'int\u00e9r\u00eat et la date ---\nlonlat = (57.73, -20.44)\ndate = '2025-10-09'\n\n# --- 5. Lancer le traitement S2DR3 ---\ns2dr3.inferutils.test(lonlat, date)\n\n# =========================================================\n#   6. Lecture du fichier _MS.tif\n# =========================================================\nroot_dir = '\/content\/output'\nfiles = sorted(glob.glob(os.path.join(root_dir, '**\/*_MS.tif'), recursive=True),\n               key=os.path.getmtime, reverse=True)\nif not files:\n    raise FileNotFoundError(\"&#x274c; Aucun fichier *_MS.tif trouv\u00e9 dans \/content\/output\")\nms_path = files&#091;0]\noutdir = os.path.dirname(ms_path)\nprint(f\" Fichier trouv\u00e9 : {os.path.basename(ms_path)}\")\nprint(f\" Dossier : {outdir}\")\n\n# Lecture des bandes\nwith rasterio.open(ms_path) as <a href=\"https:\/\/www.sigterritoires.fr\/index.php\/es\/proyecciones-qgis-crs\/\">src<\/a>:\n    profile = src.profile\n    n_bands = src.count\n    print(f\"Nombre de bandes d\u00e9tect\u00e9es : {n_bands}\")\n    bands = &#091;src.read(i).astype('float32') for i in range(1, n_bands+1)]\n\ndef get_band(index, name):\n    try:\n        return bands&#091;index-1]\n    except IndexError:\n        print(f\" Bande {name} manquante, remplac\u00e9e par z\u00e9ro.\")\n        return np.zeros_like(bands&#091;0])\n\n# Attribution bandes principales Sentinel-2\nblue  = get_band(1, \"B02\")\ngreen = get_band(2, \"B03\")\nred   = get_band(3, \"B04\")\nnir   = get_band(4, \"B08\")\nswir1 = get_band(9, \"B11\")\nswir2 = get_band(10, \"B12\")\n\n# =========================================================\n#   7. Calcul des indices\n# =========================================================\ndef safe_div(a, b, mask=None):\n    res = np.where((b!=0) &amp; (~np.isnan(a)) &amp; (~np.isnan(b)), a\/b, 0)\n    if mask is not None:\n        res&#091;mask] = np.nan\n    return res\n\nL = 0.5  # facteur SAVI\n\nindices = {\n    'NDVI' : safe_div(nir - red, nir + red),\n    'NDWI' : safe_div(green - nir, green + nir),\n    'MNDWI': safe_div(green - swir1, green + swir1),\n    'BSI'  : safe_div((swir1 + red) - (nir + blue), (swir1 + red) + (nir + blue)),\n    'NDBI' : safe_div(swir1 - nir, swir1 + nir),\n    'EVI'  : 2.5 * safe_div((nir - red), (nir + 6*red - 7.5*blue + 1)),\n    'SAVI' : safe_div((nir - red) * (1 + L), (nir + red + L)),\n    'UI'   : safe_div(swir1 - nir, swir1 + nir),\n    'RDI'  : safe_div(red - green, red + green)\n}\n\n# =========================================================\n#   8. Masque nuages l\u00e9ger adapt\u00e9 1 m\n# =========================================================\neps = 1e-8\nblue_n, green_n, red_n, nir_n, swir1_n = &#091;x\/(np.nanmax(x)+eps) for x in &#091;blue, green, red, nir, swir1]]\nalbedo_vis = (blue_n + green_n + red_n)\/3\n\ncond_bright = albedo_vis &gt; 0.35\ncond_swir = swir1_n &gt; 0.15\ncond_ratio = (blue_n\/(red_n+1e-6)) &gt; 1.2\ncond_nir = nir_n &gt; 0.25\ncloud_init = (cond_bright.astype(int) + cond_swir.astype(int) + cond_ratio.astype(int) + cond_nir.astype(int)) &gt;= 3\n\nMNDWI_calc = np.where((green + swir1)!=0, (green - swir1)\/(green + swir1), -1)\nwater_mask = MNDWI_calc &gt; 0\n\nsize = 7\nmean = ndi.uniform_filter(blue_n, size=size)\nmean_sq = ndi.uniform_filter(blue_n**2, size=size)\nlocal_std = np.sqrt(np.maximum(0, mean_sq - mean**2))\nfoam_mask = water_mask &amp; (albedo_vis&gt;0.25) &amp; (local_std&gt;0.03)\n\ncloud_mask = cloud_init &amp; (~foam_mask)\nlabel_im, nb = ndi.label(cloud_mask)\nsizes = ndi.sum(cloud_mask, label_im, range(1, nb+1))\nmask_keep = np.zeros(nb+1, dtype=bool)\nmask_keep&#091;1:] = sizes &gt;= 500\ncloud_mask = mask_keep&#091;label_im].astype(bool)\n\nprint(f\" Nuages finaux : {cloud_mask.sum()} pixels\")\n\n# =========================================================\n#   9. Sauvegarde indices individuels\n# =========================================================\nfor name, data in indices.items():\n    out_path = os.path.join(outdir, f\"{name}.tif\")\n    profile_idx = profile.copy()\n    profile_idx.update(dtype='float32', count=1, compress='lzw', nodata=None)\n    with rasterio.open(out_path, 'w', **profile_idx) as dst:\n        dst.write(data.astype('float32'), 1)\n    print(f\" {name} enregistr\u00e9 \u2192 {out_path}\")\n\n# =========================================================\n#   10. Cr\u00e9ation du stack multibande robuste\n# =========================================================\nall_layers = list(indices.values()) + &#091;cloud_mask.astype('float32')]\nband_names = list(indices.keys()) + &#091;'CLOUD_MASK']\n\nref_shape = indices&#091;'NDVI'].shape\nfor i, layer in enumerate(all_layers):\n    if layer.shape != ref_shape:\n        print(f\" Redimensionnement couche {band_names&#091;i]} de {layer.shape} \u2192 {ref_shape}\")\n        all_layers&#091;i] = resize(layer, ref_shape, order=0, preserve_range=True, anti_aliasing=False).astype('float32')\n\nprofile_stack = profile.copy()\nprofile_stack.update(\n    count=len(all_layers),\n    dtype='float32',\n    compress='lzw',\n    nodata=None,\n    height=ref_shape&#091;0],\n    width=ref_shape&#091;1]\n)\n\nstack_path = os.path.join(outdir, 'indices_stack.tif')\nwith rasterio.open(stack_path, 'w', **profile_stack) as dst:\n    for i, layer in enumerate(all_layers, start=1):\n        dst.write(layer.astype('float32'), i)\n        dst.set_band_description(i, band_names&#091;i-1])\n\nif os.path.exists(stack_path):\n    print(f\"\\n Fichier multibande cr\u00e9\u00e9 avec succ\u00e8s : {stack_path}\")\n    print(\" Bandes : \" + ', '.join(band_names))\nelse:\n    print(f\"\\n \u00c9chec de cr\u00e9ation de {stack_path}\")\n\nprint(\"\\n Traitement complet termin\u00e9.\")<\/code><\/pre>\n\n\n\n<p><\/div><\/div><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/11\/sent2B-scaled.jpg?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"326\" data-attachment-id=\"16029\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/de-sentinel-2-a-1-m-de-resolution-vers-une-analyse-plus-fine-des-milieux-cotiers\/sent2b\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/11\/sent2B-scaled.jpg?fit=2560%2C1302&amp;ssl=1\" data-orig-size=\"2560,1302\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;1&quot;}\" data-image-title=\"sent2B\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/11\/sent2B-scaled.jpg?fit=640%2C326&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/11\/sent2B.jpg?resize=640%2C326&#038;ssl=1\" alt=\"\" class=\"wp-image-16029\" srcset=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/11\/sent2B-scaled.jpg?resize=1024%2C521&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/11\/sent2B-scaled.jpg?resize=300%2C153&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/11\/sent2B-scaled.jpg?resize=768%2C391&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/11\/sent2B-scaled.jpg?resize=1536%2C781&amp;ssl=1 1536w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/11\/sent2B-scaled.jpg?resize=2048%2C1042&amp;ssl=1 2048w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/11\/sent2B-scaled.jpg?w=1280&amp;ssl=1 1280w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/11\/sent2B-scaled.jpg?w=1920&amp;ssl=1 1920w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n\n\n\n<p>Una vez ejecutado, tendr\u00e1 los archivos .tif en su Google Drive.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/11\/sent2A.jpg?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"346\" data-attachment-id=\"16030\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/de-sentinel-2-a-1-m-de-resolution-vers-une-analyse-plus-fine-des-milieux-cotiers\/sent2a\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/11\/sent2A.jpg?fit=1754%2C948&amp;ssl=1\" data-orig-size=\"1754,948\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"sent2A\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/11\/sent2A.jpg?fit=640%2C346&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/11\/sent2A.jpg?resize=640%2C346&#038;ssl=1\" alt=\"\" class=\"wp-image-16030\" srcset=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/11\/sent2A.jpg?resize=1024%2C553&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/11\/sent2A.jpg?resize=300%2C162&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/11\/sent2A.jpg?resize=768%2C415&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/11\/sent2A.jpg?resize=1536%2C830&amp;ssl=1 1536w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/11\/sent2A.jpg?w=1754&amp;ssl=1 1754w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/11\/sent2A.jpg?w=1280&amp;ssl=1 1280w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Conclusion_hacia_un_procesamiento_integrado_de_las_imagenes_Sentinel-2\"><\/span>Conclusi\u00f3n: hacia un procesamiento integrado de las im\u00e1genes Sentinel-2<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>La integraci\u00f3n del c\u00e1lculo de los \u00edndices espectrales directamente en el proceso de superresoluci\u00f3n representa una evoluci\u00f3n natural del procesamiento de los datos Sentinel-2.<br>Al automatizar tanto la generaci\u00f3n de la imagen a 1 m como la producci\u00f3n de los \u00edndices, se obtiene un conjunto de datos homog\u00e9neo, completo y directamente utilizable para el an\u00e1lisis espacial.<\/p>\n\n\n\n<p>Aplicado a los entornos costeros de Mauricio y Rodrigues, este m\u00e9todo abre nuevas perspectivas:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>seguimiento de la vegetaci\u00f3n litoral y los manglares,<\/li>\n\n\n\n<li>observaci\u00f3n de los arrecifes y las praderas marinas,<\/li>\n\n\n\n<li>detecci\u00f3n de zonas de turbidez o sedimentaci\u00f3n,<\/li>\n\n\n\n<li>cartograf\u00eda de los cambios en la ocupaci\u00f3n del suelo en zonas costeras sensibles.<\/li>\n<\/ul>\n\n\n\n<p>Al reunir todas estas etapas en un \u00fanico flujo reproducible, este script se convierte en una herramienta de investigaci\u00f3n y seguimiento medioambiental especialmente adecuada para las islas tropicales.<br>Tambi\u00e9n demuestra que las herramientas libres (Sentinel-2, Google Colab, QGIS) permiten hoy en d\u00eda alcanzar un nivel de an\u00e1lisis espacial que antes estaba reservado a las plataformas profesionales.<\/p>\n\n\n\n<p>Pr\u00f3xima etapa: integrar estos \u00edndices en un an\u00e1lisis cronol\u00f3gico multidate, con el fin de seguir la evoluci\u00f3n estacional o poscicl\u00f3nica de los h\u00e1bitats costeros.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n","protected":false},"excerpt":{"rendered":"<p>En dos art\u00edculos anteriores, exploramos c\u00f3mo pasar de im\u00e1genes Sentinel-2 est\u00e1ndar (resoluci\u00f3n de 10 m) a una versi\u00f3n de alta resoluci\u00f3n de 1 m utilizando el m\u00f3dulo S2DR3, desarrollado para la investigaci\u00f3n sobre los corales de&hellip;<\/p>\n","protected":false},"author":1,"featured_media":16031,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"give_campaign_id":0,"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"sfsi_plus_gutenberg_text_before_share":"","sfsi_plus_gutenberg_show_text_before_share":"","sfsi_plus_gutenberg_icon_type":"","sfsi_plus_gutenberg_icon_alignemt":"","sfsi_plus_gutenburg_max_per_row":"","_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[3859],"tags":[3879,3829],"class_list":["post-16112","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-iaes","tag-ia-es","tag-sentinel-2-es"],"aioseo_notices":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/11\/Sentinel-2.jpg?fit=2126%2C1594&ssl=1","jetpack_shortlink":"https:\/\/wp.me\/p6XU0A-4bS","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/posts\/16112","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/comments?post=16112"}],"version-history":[{"count":0,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/posts\/16112\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/media\/16031"}],"wp:attachment":[{"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/media?parent=16112"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/categories?post=16112"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/tags?post=16112"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}