Mi experiencia aprendiendo teledetección con R sin ser programadora

Divulgación: esta página incluye enlaces de afiliado. Cualquier compra realizada a través de estos enlaces me permite recibir una compensación, sin coste adicional para ti.

Afuera la lluvia no para; es ese sonido constante, casi hipnótico, que tenemos acá en Valdivia cuando el invierno se instala de verdad. Estaba yo ahí, sentada frente a la pantalla con un mate que ya se había enfriado hace rato, mirando cómo el cursor de RStudio parpadeaba al lado de un error gigante en color rojo que no terminaba de entender. El bosque que veo por mi ventana se veía borroso por el agua, pero en mi pantalla, el bosque que intentaba estudiar era simplemente un cuadrado gris que se negaba a mostrar sus colores, y sentí esa punzada de frustración en los hombros, un peso que aparece cada vez que el mapa sale totalmente en blanco porque, otra vez, olvidé definir el sistema de referencia de coordenadas.

Antes de que nos metamos de lleno en mis peleas con el código, te cuento una cosita: algunos de los enlaces que verás en esta bitácora son de afiliado. Esto significa que si decides comprar un curso a través de ellos, yo recibo una pequeña comisión que me ayuda a mantener este rincón de aprendizaje, y a ti no te cuesta ni un peso extra. Solo te recomiendo los cursos que yo misma he usado para darme cabezazos contra la pantalla durante meses; lo que no me sirvió o no he probado, simplemente no aparece acá.

El día que RStudio me dijo "basta" (y yo casi también)

Todo esto empezó el invierno pasado, cuando me puse en la cabeza que quería ver con mis propios ojos cómo ha cambiado el bosque cerca de mi casa en los últimos años. Como no soy geógrafa ni programadora, pensé que sería cosa de bajar una imagen y listo, pero la realidad me pegó un portazo en la cara. Recuerdo una tarde en particular donde intenté cargar una imagen satelital que pesaba casi 1GB. Yo no tenía idea de lo que era la memoria RAM en ese entonces, o al menos no sabía cómo R la usaba, y vi con horror cómo RStudio se cerraba abruptamente tres veces seguidas mientras el ventilador de mi laptop zumbaba tan fuerte que parecía que iba a despegar en medio del living.

En esos momentos de silencio, después de que el programa colapsa, es cuando te viene ese diálogo interno pesado. Me quedaba pensando: "¿En qué momento me creí capaz de esto?". Yo trabajo medio tiempo en una oficina, estudio mis cosas los fines de semana, y de repente me veo tratando de procesar datos espaciales complejos. Pero bueno, la curiosidad de ver el verde del bosque nativo desde arriba era más fuerte que las ganas de cerrar la laptop y ponerme a ver una serie.

Pantalla de laptop con errores de código en RStudio y un mate al lado.

Proyecciones, coordenadas y ese dolor de hombros constante

Después de un par de meses de intentos fallidos y de saltar de un tutorial de YouTube a otro sin entender el trasfondo, me di cuenta de que necesitaba orden. El gran muro con el que choqué fue el de los sistemas de coordenadas. Para mí, un mapa era un mapa, pero resulta que la Tierra es redonda (bueno, casi) y las pantallas son planas, y pasar de una a otra requiere unas matemáticas que R maneja muy bien, pero que tú tienes que saber pedirle. Si estás recién empezando, quizás te sirva este post sobre cómo leer archivos raster en RStudio para principiantes que escribí cuando por fin logré que una imagen apareciera en el lugar correcto del mundo.

Me pasaba mucho que cargaba una capa de caminos y una de bosques, y no calzaban por kilómetros. Ahí aprendí sobre el sistema WGS84, que es como el lenguaje universal que usa el GPS, pero entender por qué mi imagen de la misión Landsat 8 venía en una proyección distinta me tomó varias tardes de frustración. Fue entonces cuando decidí que ya no podía seguir picoteando información suelta y busqué algo más estructurado. Así llegué a Teledetección Satelital con R y R-Studio. Al principio el precio me asustó un poco, lo pensé varias semanas, pero la verdad es que tener a alguien explicándote el "por qué" de cada línea de código me ahorró meses de seguir dando vueltas en círculos.

El momento en que el bosque se volvió números (y luego colores)

Hubo un fin de semana de otoño, hace no mucho, en que las cosas por fin hicieron "clic". Estaba estudiando cómo las plantas reflejan la luz. Es increíble pensar que el ojo humano solo ve una parte mínima, pero los satélites capturan cosas como el infrarrojo cercano. Una imagen de Landsat 8 tiene 11 bandas espectrales, y cuando aprendes a combinarlas, empiezas a ver cosas que antes eran invisibles. Mi gran victoria fue calcular mi primer NDVI (Índice de Vegetación de Diferencia Normalizada).

El NDVI es una fórmula matemática que te entrega valores en un rango del -1 a 1. Lo que está cerca de 1 es bosque sano y vigoroso, y lo que está cerca de 0 o negativo es suelo desnudo o agua. Cuando logré correr el código sin errores y vi aparecer esos colores verdes intensos en mi mapa, comparando dos años distintos, pude ver exactamente dónde se había perdido cobertura vegetal detrás de la colina. Fue una sensación increíble; de repente, el código ya no era un enemigo, sino una bitácora de mis propios descubrimientos sobre el territorio que habito.

Mapa de índice NDVI con colores verdes y rojos indicando salud de la vegetación.

¿Por qué R y no algo más moderno o "en la nube"?

Mucha gente me preguntaba por qué no usaba herramientas más fáciles o plataformas en la nube como Google Earth Engine, que procesan todo en servidores externos. Y aquí es donde entra mi realidad valdiviana: acá el internet es caprichoso. Cuando hay tormentas fuertes y el viento sopla entre los árboles, la conexión se vuelve inestable o se corta por horas. Si dependiera 100% de la nube para trabajar, no podría avanzar nada en esos días de encierro lluvioso que es cuando más tiempo tengo para estudiar.

Trabajar con R de forma local, descargando mis imágenes (aunque me pelee con la resolución espacial de 30 metros de Landsat, que a veces se siente un poco gruesa para ver detalles muy chicos), me da una autonomía que valoro mucho. Además, me gusta que el código sea mío. Si mañana una plataforma cambia sus términos o empieza a cobrar, yo sigo teniendo mis scripts en mi computador, guardados como tesoros. Es una forma de aprendizaje mucho más lenta, sí, pero se siente más real, más táctil, aunque estemos hablando de píxeles y matrices.

Laptop procesando imágenes satelitales frente a una ventana que da al bosque valdiviano.

Lo que viene después de la primera imagen lograda

Hace unas pocas semanas terminé de procesar una serie de tiempo de los últimos cinco años. Ver el mapa final, con sus leyendas y su escala bien puesta, me hizo sentir una satisfacción que no experimentaba hace tiempo. No necesito ser ingeniera informática para entender que el código es solo una herramienta para contar una historia sobre la tierra. Ahora incluso estoy mirando de reojo otros temas, como el Modelado de Nicho Ecológico con Maxent en R, porque me dio curiosidad saber dónde podrían vivir ciertas especies de aves que escucho en las mañanas, aunque eso ya es otro mundo que requiere una base de R un poco más sólida.

Si estás en esa etapa donde todo te sale en rojo y sientes que RStudio te odia, mi consejo de aprendiz de fin de semana es que no sueltes. A veces el error es solo un paréntesis que faltaba —literalmente me pasó que estuve una hora buscando un paréntesis y cuando lo encontré, el mapa apareció como por arte de magia—. No te castigues por no saber programar; la teledetección es un camino largo, pero ver cómo tu propio bosque cobra vida en la pantalla, con datos que tú misma procesaste, vale cada tarde de frustración frente al techo de zinc.

Si de verdad quieres dejar de adivinar y empezar a ver resultados, te recomiendo mucho que le eches un vistazo al curso de Teledetección Satelital con R y R-Studio. Fue el que me sacó del hoyo de los tutoriales infinitos y me dio la estructura que necesitaba para entender qué estaba haciendo realmente con esos rásters. ¡Ánimo con esos mapas!

Artículos relacionados