Una tarde de invierno en Valdivia, con la lluvia golpeando fuerte el techo de zinc, me encontré de nuevo frente a una pantalla llena de errores en rojo en RStudio mientras intentaba entender un mapa de mi propio barrio. Afuera, el gris del cielo no dejaba ver ni la esquina, y adentro, yo solo quería que esa mancha de píxeles tuviera sentido. Es raro, ¿no? Vivir rodeada de tanto verde y no poder 'traducirlo' a la computadora.
Antes de que nos metamos en el código y los mapas: algunos de los enlaces que verás por aquí son de afiliado. Eso significa que si te animas con un curso, yo recibo una comisión por el dato y a ti no te cuesta ni un peso extra. Solo paso el dato de cosas que yo misma usé (y con las que me peleé meses), porque si no lo probé, no te lo recomiendo. Cuando no sea así, te aviso.
Me tomó casi todo el invierno pasado dejar de sentir que la teledetección era una especie de magia oscura para gente que sabe mucha matemática. Yo solo quería ver cómo cambiaba el bosque nativo cerca de mi casa año tras año, y me encontré con que para eso necesitaba aprender a 'clasificar'. O sea, decirle a R: 'mira, esto verde oscuro es bosque, esto gris es cemento y esto café es suelo desnudo'. Suena fácil, pero entre medio hubo muchas tazas de café que se enfriaron mientras esperaba que un proceso terminara.
El primer choque con la realidad (y con Landsat)
Empecé intentando descargar imágenes de Landsat 8. Me habían dicho que era lo mejor para empezar porque tienen una resolución espacial de 30 metros, lo que significa que cada cuadrito del mapa representa un área de 30x30 en la vida real. No es para ver tu patio, pero para el bosque de la cordillera de la costa está perfecto. Además, tiene 11 bandas espectrales, que son como diferentes capas de información que el ojo humano no ve, pero el satélite sí.
El problema fue que, después de tres semanas intentando cargar un archivo .tif, me di cuenta de que no bastaba con 'abrir' la imagen. R no es como un visor de fotos. Hubo un julio muy lluvioso donde casi tiro la toalla porque los paquetes no se instalaban o la memoria de mi laptop (que no es ninguna maravilla) colapsaba. Ahí fue cuando entendí que necesitaba orden. No se puede aprender esto picoteando tutoriales de YouTube que están en inglés y usan datos de otros países.
Si estás en ese punto de querer tirar la computadora por la ventana, quizás te sirva lo que yo hice. Me inscribí en el curso de Teledetección Satelital con R y R-Studio. Me costó decidirme por el precio, pero al final, tener a alguien que te explique paso a paso cómo cargar esas bandas sin que R explote me ahorró meses de frustración. Aunque ojo, si no sabes nada de R, las primeras clases te van a dar un poco de dolor de cabeza, así que tómatelo con calma, como un audio de domingo.
El momento en que todo desapareció (y la lección de las proyecciones)
Hubo una tarde donde sentí la verdadera derrota. Tenía mis puntos de terreno (donde yo sabía que había bosque porque había caminado por ahí) y tenía mi imagen satelital. Le di a 'plot' y... nada. Un mapa completamente en blanco. Me quedé mirando el reflejo de la luz azul del monitor sobre mi taza de café frío, sintiéndome super tonta.
Resulta que mis puntos estaban en grados decimales (latitud y longitud) y mi imagen estaba en metros, bajo el sistema UTM. Si te pasa, no te asustes: es el error más clásico del mundo. Para Chile continental, solemos usar el código EPSG 32718, que corresponde a la zona 18S. Si no coinciden, R simplemente no sabe dónde poner una cosa encima de la otra. Es como intentar encajar un mapa de Valdivia sobre uno de Santiago; no van a calzar nunca.
Para arreglarlo, tuve que aprender sobre el paquete 'terra', que es el sucesor moderno de 'raster' y funciona mucho más rápido. Si tienes dudas con esto, te recomiendo mirar cómo corregir proyecciones cartográficas en R de forma sencilla, porque es un paso que no te puedes saltar.
Enseñar a la máquina a ver el bosque
Una vez que logré que las capas se hablaran entre sí, vino lo divertido: la clasificación supervisada. Básicamente, creas un set de 'Ground Truth' o puntos de entrenamiento. Yo usé un pequeño archivo que hice yo misma, marcando zonas que conozco bien. Lo importante aquí es que los satélites Landsat 8 y 9 tienen un tiempo de retorno de 16 días, así que si buscas imágenes de la misma época en que tomaste tus datos de terreno, todo cuadra mejor.
Aquí es donde entra el algoritmo. Yo usé uno que se llama Random Forest. Lo que hace es mirar los valores de esas 11 bandas en los puntos que tú le diste y aprender los patrones. 'Ah, cuando la banda infrarroja está muy alta y la roja baja, eso suele ser vegetación sana'. Para esto, a veces ayuda mucho haber calculado antes un índice, como el NDVI. Si no sabes qué es, tengo un glosario de índices espectrales que te puede aclarar la película.
Pero aquí viene mi consejo 'contrarian', algo que aprendí después de muchas pruebas y errores este otoño: **no suavices demasiado tus imágenes antes de clasificar**. Muchos tutoriales te dicen que apliques filtros para quitar el 'ruido', pero me di cuenta de que si dejas la imagen demasiado 'limpia' y suave, borras las texturas pequeñas que el Random Forest necesita para distinguir, por ejemplo, un matorral de un bosque denso. El algoritmo es más inteligente de lo que parece y ese 'ruido' a veces es información valiosa sobre la estructura de la vegetación.
El gran avance: cuando el mapa por fin tuvo colores
Fue una tarde despejada de marzo, de esas que ya huelen a otoño pero todavía calientan un poquito. Corrí el script de clasificación, me levanté a estirar las piernas (porque el proceso toma su tiempo, sobre todo si tu área es grande) y cuando volví, ahí estaba. Un mapa con colores distintos para el bosque nativo, las plantaciones y las zonas urbanas.
No era perfecto, claro. Había algunas sombras en los cerros que el algoritmo confundía con agua, pero era *mi* mapa. Lo había hecho yo, desde cero, en mi mesa de comedor. Si te interesa llegar a este punto, de verdad que el curso de Teledetección Satelital con R es la mejor ruta. Te enseña desde cómo recortar la imagen (que parece obvio pero tiene su truco, como puedes ver en esta guía sobre cómo recortar un raster con un shapefile) hasta sacar el producto final.
Incluso, si después te pica el bichito de saber no solo qué hay hoy, sino dónde podrían vivir ciertas especies en el futuro, podrías mirar algo de modelado de nicho ecológico. Es otra rama, pero se complementan súper bien cuando ya manejas las capas espaciales.
Mirando ahora el mapa final impreso en mi escritorio, me doy cuenta de que la teledetección ya no es esa caja negra inalcanzable. Es un proceso lento, de fin de semana, de equivocarse en una coma y de entender que el satélite ve cosas que nosotros no, pero que con R podemos traducir. Si yo pude, que empecé sin saber qué era un píxel, tú también puedes. Solo necesitas un poco de paciencia, mucha agua para el mate (o café) y no tenerle miedo a los errores en rojo, porque de ahí es de donde más se aprende.
¿Te animas a probar con tu propia zona? Cuéntame si te trabas en algún paso, que probablemente yo ya me trabé ahí antes.