
Afuera no para de llover. Es esa lluvia de Valdivia que parece que no va a terminar nunca, un repiqueteo rÃtmico del agua sobre el techo de zinc que a ratos me arrulla y a ratos me pone los nervios de punta porque el frÃo se cuela por las rendijas de la ventana. Estoy acá, con un mate ya medio lavado y la luz roja del error en la consola de R iluminando la habitación oscura, porque otra vez, por quinta vez en la tarde, mi bosque desapareció. O mejor dicho, según el mapa que acabo de intentar armar, el cerro que veo por mi ventana ya no está en el sur de Chile, sino en algún punto perdido en medio del Océano PacÃfico, cerca de la polinesia tal vez, y yo solo querÃa ver cómo habÃa cambiado el verde después de los incendios del verano pasado.
No soy geógrafa, ya lo saben, y mucho menos programadora. Soy solo alguien que se compró una libreta con espiral para ir anotando qué botón apretar en RStudio sin que todo explote. Y entonces, ahà estaba yo, mirando una pantalla llena de códigos que no terminaba de entender, preguntándome cómo es posible que unos datos que bajé de internet se lleven tan mal entre ellos. Es frustrante, porque una se imagina que cargar un archivo es como poner una foto encima de otra, pero en la teledetección (esa palabra que todavÃa me suena a satélites de la NASA y cosas ultra complejas) si no hablas el mismo idioma de coordenadas, nada calza.
El dÃa que mi bosque se fue a nadar al PacÃfico
Todo empezó una tarde de lluvia intensa en agosto. TenÃa mis puntos de muestreo, esos que marqué con el GPS de mi celular caminando por el barro del cerro vecino, y tenÃa una imagen satelital preciosa de Sentinel-2. En mi cabeza, al darle al botón de plot, los puntitos rojos debÃan caer justo sobre el verde de los árboles. Pero no. R me mostraba un fondo blanco inmenso y, si hacÃa mucho zoom out, veÃa mis puntos en un rincón y la imagen en otro, separados por miles de kilómetros imaginarios.
Fue ahà cuando me di cuenta de que el problema eran las proyecciones. Resulta que la Tierra no es plana (aunque en la pantalla parezca) y cada mapa tiene su forma de "dibujarla". El primer concepto que me voló la cabeza fue el famoso CRS o Sistema de Referencia de Coordenadas. Mis puntos del celular estaban en grados (latitud y longitud), algo que los técnicos llaman el código 4326, que es el estándar internacional para el WGS 84. Pero la imagen satelital, para que las distancias se vean bien en metros y no en grados raros, usaba el sistema UTM, especÃficamente el 32718, que es el que nos corresponde acá en la zona de Valdivia (UTM zona 18S).

Si alguna vez has intentado leer archivos raster en RStudio para principiantes, sabrás que el primer paso es que el programa reconozca el archivo. Pero el segundo, y el que más me hizo sufrir, es que esos archivos se entiendan entre sÃ. Ver mi bosque flotando en el mar fue el momento en que entendà que R no adivina; si no le dices explÃcitamente que transforme los grados a metros, él simplemente asume que el número "40" de mi latitud es el metro "40" del mapa proyectado. Y claro, el metro 40 de un mapa UTM está prácticamente en el origen del mundo, o sea, en medio del agua.
¿Por qué R no entiende dónde estoy? El drama de los CRS
Lo que más me confundÃa al principio era esa sopa de letras de los paquetes. Que si usas sf para los vectores (los puntos, las lÃneas del rÃo) o si usas terra para los rasters (las fotos del satélite). Me pasaba que intentaba mezclar funciones y R me gritaba errores en inglés que me daban ganas de cerrar la laptop e irme a ver la lluvia por la ventana. Pero la lógica es más simple de lo que parece una vez que dejas de pelear con la consola.
El gran error de principiante que cometà ây que me da un poco de vergüenza admitirâ fue intentar corregir las coordenadas a mano. Literalmente abrà el archivo CSV con mis puntos e intenté sumar decimales a la latitud, pensando que asà el mapa se "moverÃa" mágicamente hacia la derecha o hacia arriba hasta encajar con la imagen satelital. Estuve casi todo un sábado de marzo haciendo eso, probando combinaciones, como si estuviera tratando de sintonizar una radio antigua. Obviamente, nunca funcionó. Los mapas no se mueven sumando numeritos; se transforman matemáticamente.
En Chile continental, casi siempre nos movemos entre las zonas UTM 18S y 19S para que las distorsiones sean mÃnimas. Valdivia está en la 18S. Si tus datos vienen en grados, R los lee como algo "plano" pero con números muy chiquitos (como -39.8). Si tu imagen está en metros, los números son gigantes (como 5580000). Es como intentar sumar peras con manzanas, o mejor dicho, milÃmetros con kilómetros. Y ahà es donde entran las funciones mágicas que aprendà a anotar en mi cuaderno para no olvidarlas nunca más.
Las funciones que me salvaron la vida: st_transform y project
Después de muchas tardes de frustración, por fin algo cuadró. Aprendà que hay dos caminos principales dependiendo de qué es lo que quieres mover. Si tienes un objeto de puntos o polÃgonos (vectorial), la función reina es st_transform() del paquete sf. Es casi poético: le dices "toma estos puntos y transfórmalos al sistema de esta imagen".
Por otro lado, si lo que quieres es mover la imagen satelital (el raster), se usa project() del paquete terra. Recuerdo que a mediados de noviembre, cuando por fin logré que una capa cayera exactamente sobre la otra, sentà un alivio que ni les cuento. De pronto, la pantalla se llenó de sentido: los 10 metros de resolución espacial de las bandas visibles de Sentinel-2 me permitÃan ver con una nitidez increÃble cómo el matorral del cerro de atrás de mi casa estaba volviendo a brotar. Cada pÃxel era un cuadradito de 10 por 10 metros en la vida real, y mis puntos de muestreo estaban ahÃ, justo donde debÃan estar.
Si te sientes un poco perdida como me pasaba a mà al principio, quizás te sirva leer sobre mi experiencia aprendiendo teledetección con R sin ser programadora, porque de verdad, se puede. No necesitas ser una genio de las matemáticas para entender que el mapa necesita una base sólida. Solo necesitas paciencia y saber que, si el bosque está en el mar, probablemente te falta una lÃnea de código para decirle a R en qué parte del mundo estás parada.
El secreto que nadie me dijo: no reproyectes todo de inmediato
Aquà es donde les comparto mi gran aprendizaje de este último otoño. Al principio, yo pensaba que lo mejor era reproyectar absolutamente todo apenas lo cargaba en RStudio. TenÃa mis puntos, los pasaba a UTM; tenÃa mi mapa base, lo pasaba a UTM; tenÃa otra imagen de otro satélite, a UTM también. Mi pobre computadora, que ya tiene sus años, empezaba a sonar como si fuera a despegar y R se quedaba pegado procesando gigas de información.
Un sábado de marzo, conversando con alguien que sabe más que yo, me di cuenta de que estaba cometiendo un error técnico invisible. Reproyectar un raster (la imagen satelital) no es gratis. Cada vez que fuerzas a una imagen a cambiar de proyección, R tiene que recalcular los valores de los pÃxeles (interpolar), y eso a veces hace que la imagen pierda un poquito de su calidad original. Es como cuando sacas una foto y la estiras o la tuerces en Photoshop: siempre se pierde algo de nitidez.
Ahora mi regla de oro es: trabaja con los datos en su sistema original lo más que puedas. Si tu imagen satelital es la capa más pesada y ya viene en UTM 18S (32718), no la muevas. Mejor mueve tus puntitos o tus polÃgonos, que son archivos livianos, hacia el sistema de la imagen. Solo reproyecta el resultado final si de verdad necesitas exportarlo para un mapa impreso o algo asÃ. Esto ahorra memoria, evita errores de interpolación y, lo más importante para mÃ, evita que mi computadora se caliente tanto que parezca una estufa en medio del invierno valdiviano.
Notas para mi "yo del futuro" (y para ti)
Ya es tarde y la lluvia parece que amainó un poco, aunque el viento sigue silbando entre los árboles. Antes de cerrar RStudio por hoy, siempre me aseguro de anotar el código EPSG al inicio de mi script. Es un regalo para mi "yo del futuro", esa Javiera que el próximo domingo va a abrir este mismo archivo y no va a recordar por qué los datos no calzan.
Si estás empezando, no te asustes con los nombres largos. Quédate con los números: 4326 para lo global, 32718 para nuestro sur chileno. Y sobre todo, no intentes mover los mapas a mano en Excel como hice yo; deja que R haga el trabajo sucio. Al final del dÃa, lo que importa es que cuando mires la pantalla, veas tu bosque, tu rÃo o tu cerro tal cual es, y no como una mancha perdida en el océano.
Aprender esto me tomó meses de fines de semana perdidos, de café frÃo y de mirar fijamente una pantalla que no me decÃa nada. Pero el momento en que las capas finalmente encajaron perfectamente, y pude medir con precisión de metros el avance de la vegetación en el cerro vecino, todo valió la pena. La teledetección tiene eso: es un lenguaje un poco arisco al principio, pero una vez que te acepta, te regala una vista del mundo que no podrÃas tener de ninguna otra forma, ni siquiera subiendo al cerro más alto de Valdivia.