
Diez metros por diez metros: ese es el tamaño real, en el suelo, de cada píxel que uso para separar agua de barro en el humedal de Barrio Alemania, en Valdivia. Es la resolución de las bandas de Sentinel-2 que entran en el cálculo del NDWI (Normalized Difference Water Index) en RStudio, uno de los ejercicios de teledetección más directos que conozco para ver, sin salir de la casa, dónde el agua realmente cubre el terreno y dónde solo lo aparenta. Lo que sigue es el mismo análisis espacial que le aplico a los humedales de esta zona del sur de Chile, paso por paso, desde el paquete que hay que cargar hasta el error más tonto que te puede hacer perder una tarde entera.
La teledetección es, dicho simple, mirar la Tierra desde arriba con instrumentos que registran más de lo que ve el ojo. Llevo ya dos años metida en esto, desde que decidí que entender por qué estudiar teledetección satelital con R era la forma más honesta de revisar el paisaje que tengo cerca sin salir a caminarlo tan seguido, y el NDWI terminó siendo uno de los índices que más uso.
Un humedal es justamente ese tipo de terreno donde el agua y la vegetación se mezclan sin límites claros, así que a simple vista es difícil saber cuánto hay de cada cosa. Trabajo con imágenes de Sentinel-2 porque el satélite vuelve a pasar sobre la misma zona cada 5 días (si las nubes lo permiten, que en esta parte de Chile no siempre es el caso) y porque las bandas que necesito para el NDWI tienen esos mismos 10 metros de resolución de los que hablaba al principio.
¿Raster o terra: qué paquete cargar en RStudio?
Antes de escribir cualquier fórmula hay una decisión más aburrida pero necesaria: qué paquete cargar. Los tutoriales más antiguos en español todavía enseñan con raster, pero ese paquete ya casi no recibe actualizaciones, y lo que se usa ahora es terra, que maneja mejor los archivos pesados que se bajan de Sentinel-2. No voy a entrar en por qué existen tantos paquetes espaciales distintos en R —eso da para un texto aparte—, pero para este cálculo puntual basta con cargar terra y seguir adelante.

Verde contra infrarrojo: así se arma la fórmula del NDWI
Para calcular el NDWI no se usa una foto corriente, sino dos bandas espectrales puntuales: la Banda 3, que capta el verde, y la Banda 8, el infrarrojo cercano o NIR. El agua refleja bastante bien la luz verde, pero absorbe casi todo el infrarrojo cercano, como si se lo tragara; la vegetación y el suelo seco hacen más o menos lo contrario. La fórmula resta esas dos bandas y las divide por su suma: (Verde - NIR) / (Verde + NIR). En Sentinel-2 eso corresponde a una longitud de onda central de unos 560 nm para la Banda 3 y 842 nm para la Banda 8.
Cómo escribir el código sin que R te devuelva errores
El código en sí es corto. Se carga la librería con library(terra), se lee cada banda por separado con rast() —algo como b3 <- rast("ruta/al/archivo_B03.jp2") y lo mismo para la B08— y se revisa que ambas tengan la misma extensión y resolución antes de operar con ellas; si son las bandas de 10 metros de Sentinel-2, normalmente calzan sin que haya que tocar nada más. Lo que cuesta no es tanto teclear esas líneas sino todo lo que pasa antes de llegar a ellas.
Hace un tiempo probé seguir un tutorial de Python que daba por sentado que yo ya sabía programar, y terminé más perdida que al principio, sin entender ni la mitad de lo que se suponía que tenía que escribir. Volví a R por lo mismo que vuelven muchos: porque el error, cuando aparece, al menos te dice algo concreto. Cuando la instalación se me trabó en el PATH del sistema, fue un vecino de mi edificio, Boris Irarrázaval, que trabaja en infraestructura de servidores, quien me ayudó a destrabarla —le bastó con reconocer el problema, aunque de GIS no sepa nada.
Con los sistemas de coordenadas me costó más. Hay un tipo de error de proyección que aparece sin previo aviso, y la primera vez que lo resolví sola, sin preguntarle a nadie, el mensaje que arrojó la consola por fin dijo algo que tenía sentido. Fue justamente en un hilo de un foro de R en español sobre errores de proyección donde conocí a Denise Alarcón, que llegó a R desde el diseño gráfico y ahora comparte sus propios pantallazos de error sin ningún filtro ni vergüenza; ver que a otros también les pasa ayuda más de lo que uno esperaría.
La trampa de las sombras en zonas de cerros
El NDWI estándar tiene un problema conocido: confunde las sombras con agua. Como la sombra es oscura y refleja poco en ambas bandas, la resta y la división se comportan de forma parecida a como lo hacen sobre una superficie realmente húmeda, así que en terreno con cerros (como buena parte del sur de Chile) es común ver manchas de "agua" positiva justo en la ladera de sombra, donde en realidad no hay más que roca o bosque a contraluz. La señal para desconfiar es simple: si el píxel positivo aparece sobre una pendiente pronunciada y no sobre terreno plano cerca de un cauce o del propio humedal, probablemente sea sombra y no agua. Hay formas más finas de corregir esto con máscaras topográficas, pero para un análisis exploratorio del humedal de Barrio Alemania, cruzar el resultado con lo que ya se sabe del terreno (dónde hay cerro y dónde hay llano) resuelve la mayoría de los falsos positivos.

Qué significan los valores entre -1 y 1
Una vez que la operación corre, ndwi <- (b3 - b8) / (b3 + b8), el resultado es un raster con valores entre -1 y 1. En términos prácticos, cualquier valor claramente positivo suele corresponder a agua abierta, mientras que los valores negativos son vegetación densa o suelo seco. La zona gris está cerca de cero: ahí caen los suelos saturados o la vegetación de humedal que todavía tiene bastante agua entre las hojas, y ahí conviene mirar el mapa con más cuidado en vez de confiar en un solo umbral. Cuando el resultado por fin calzó, la mancha positiva más grande coincidió con la forma del humedal de Barrio Alemania tal como se ve caminando por la orilla con botas de goma, que sigue siendo la única validación de campo que de verdad importa para un análisis casero como este.
Antes de dar por bueno tu mapa de humedal
Si nunca has trabajado con estos archivos, conviene partir por algo más simple: hay un texto aparte donde escribí sobre cómo crear composiciones de color en RStudio, que ayuda a familiarizarse con las bandas antes de meterse con fórmulas matemáticas. Y si el NDWI te dejó con ganas de más, el paso natural es mirar la vegetación: hace poco escribí también sobre cómo calcular el índice de vegetación EVI, que usa una lógica parecida pero sirve para saber qué tan sano está el bosque en vez de dónde está el agua.
Antes de dar por bueno cualquier mapa de NDWI conviene revisar al menos tres cosas: que las bandas tengan la misma resolución y extensión, que las manchas positivas no coincidan sistemáticamente con laderas empinadas, y que la forma general del agua se parezca a lo que ya conoces del terreno por haberlo visto de cerca. Ese cruce entre lo que muestra la pantalla y lo que se conoce del lugar es lo que separa, en la práctica, un mapa que sirve de uno que solo se ve bonito.