
Afuera no para de llover y el sonido del agua contra el techo de zinc tiene ese ritmo que te hipnotiza, sobre todo aquí en Valdivia donde el invierno se siente como una sola tarde eterna y gris. Estoy aquí, con mi mantita y un café que ya se enfrió, mirando la pantalla de la laptop y tratando de entender por qué, si mi mapa se ve tan lindo en RStudio, cuando intento abrirlo en otro programa parece que se hubiera esfumado o, peor, aparece como un cuadrado negro que no dice nada. Y es que aprender teledetección por cuenta propia tiene estas cosas; una cree que ya lo tiene todo bajo control porque logró filtrar las nubes y calcular los índices, pero el último paso, ese de llevar el trabajo al disco duro, es donde todo se puede ir a la borda.
El misterio del archivo que nace roto
Me acuerdo clarito de una tarde tormentosa en agosto, el año pasado, cuando estaba terminando de procesar una imagen del bosque nativo que queda cerca de mi casa. Estaba súper emocionada porque los colores resaltaban justo donde yo sabía que había robles y coigües. En R todo funcionaba, pero en el momento en que usé una función sencilla para guardar el archivo y luego intenté abrirlo en QGIS para compartírselo a un amigo, me llevé la media decepción. El archivo pesaba como 2GB —una locura para lo que era— y cuando por fin cargó, el mapa estaba flotando en medio del océano, cerca de África, ¡nada que ver con Chile! Fue frustrante, de esas tardes en que una cierra la laptop y se va a ver la lluvia por la ventana pensando que la tecnología no es para una.
Lo que me pasaba es que no entendía que un raster no es solo una imagen tipo foto de vacaciones. Es una matriz de números que tiene que llevar colgada una etiqueta que diga en qué parte del mundo está. Si no le pones esa etiqueta de forma explícita al exportar, el archivo se pierde. Es como mandar una carta sin dirección; el cartero (que en este caso es el software de mapas) simplemente la deja donde le parece más fácil. Y ahí fue cuando empecé a anotar mis errores para no volver a tropezar con la misma piedra, porque no hay nada más triste que perder horas de procesamiento por un error de guardado.

Definiendo el lugar en el mundo: El CRS
Después de varias vueltas y de leer tutoriales que parecían escritos en otro idioma, entendí que el secreto está en el Sistema de Referencia de Coordenadas, o CRS para los amigos. En mis primeros intentos, yo asumía que si el objeto ya tenía la proyección en R, se guardaría sola. Pero no siempre es así. Ahora, antes de exportar, siempre me aseguro de que mi archivo sepa que pertenece a estas tierras. Por ejemplo, para lo que hago aquí en la región de Los Ríos, uso mucho el código EPSG:32718, que es el que corresponde a la zona UTM 18 Sur. Es como darle las coordenadas exactas de mi jardín al programa.
Si estoy trabajando con algo más general o global, me aseguro de que use el EPSG:4326, que es el estándar internacional WGS84, el que usan los GPS de los celulares. Si no defines esto bien, es cuando terminas con el mapa en el Atlántico. Hace un par de semanas me pasó de nuevo por apurona, y ver el vapor saliendo de mi taza de café mientras la barra de progreso de RStudio avanza lentamente hacia el cien por ciento para luego darme cuenta de que el resultado no tiene proyección, es una lección de paciencia que no le deseo a nadie. Por eso, ahora mi primer paso siempre es verificar con un simple comando si el CRS está ahí, firme, antes de apretar cualquier botón de guardado.
El paquete terra y la función que lo cambió todo
Al principio yo usaba el paquete 'raster', que es el clásico, pero después descubrí que existe uno más nuevo y rápido que se llama terra. Es como pasar de una estufa a leña vieja a una de pellets; las dos calientan, pero una es mucho más eficiente. Con terra, la función estrella es writeRaster. Pero ojo, que aquí es donde viene la trampa de principiante: si solo pones el nombre del archivo y ya, R va a tomar decisiones por ti que no siempre son las mejores. Y entonces es cuando el archivo te queda pesadísimo o con colores extraños.
Para que un GeoTIFF salga impecable, hay que hablarle clarito a la función. Yo aprendí que tengo que especificar el formato (que sea 'GTiff') y, muy importante, el tipo de dato. Si estás trabajando con imágenes de satélite como las Sentinel-2, que son las que yo miro para ver el cambio del bosque, lo normal es usar una profundidad de bits de 16-bit (o 'INT2U' en el código de R). Si dejas que R lo guarde como decimales cuando no los necesitas, el archivo crece como levadura y te quedas sin espacio en el disco duro en un abrir y cerrar de ojos. Es parecido a lo que aprendí cuando buscaba cómo recortar un raster con un shapefile en RStudio fácilmente; los detalles técnicos al final son los que te ahorran dolores de cabeza.
Compresión y otros trucos de supervivencia
Otro gran descubrimiento de mis fines de semana de estudio fue la compresión. ¿Sabían que se puede achicar el archivo sin perder ni un solo píxel de información? Yo no tenía idea. Ahora siempre le agrego una opción que se llama 'LZW'. Es un método de compresión sin pérdida que hace que ese archivo de 2GB que me asustó en agosto termine pesando mucho menos, lo que hace que sea mucho más fácil de manejar después. Es increíble cómo un pequeño comando cambia tanto la experiencia de usuario. Ya no me da miedo que se me pegue la computadora por falta de memoria.
A veces, cuando el bosque se ve distinto a como lo recordaba en mis caminatas de verano, me pongo a pensar en lo mucho que me ha costado entender estas cosas. No soy geógrafa, así que cada término nuevo es un cerro que tengo que subir. Pero cuando por fin logras que el mapa se abra perfecto en QGIS, con sus colores bien puestos y en el lugar exacto de la cordillera de la costa, se siente como un pequeño triunfo personal. Es como cuando terminas de tejer un chaleco y todas las piezas calzan justo. Si te interesa ir un paso más allá y ver cómo estos mapas cuentan historias de la tierra, te recomiendo leer sobre cómo hacer una clasificación de coberturas vegetales en R paso a paso, que es donde de verdad empiezas a ver el bosque con otros ojos.
Resumen de mis pasos sagrados para exportar
Para que no se me olvide (y para que a ti tampoco te pase), aquí te dejo mi lista de chequeo mental que sigo cada vez que voy a guardar un trabajo:
- Verificar el CRS: Asegurarme de que el objeto en R tenga asignado el sistema correcto (como el EPSG:32718 para mi zona).
- Elegir el nombre con extensión: Siempre terminar el nombre del archivo en ".tif".
- Definiendo el DataType: Usar 'INT2U' para imágenes de 16 bits o 'FLT4S' si de verdad necesito decimales.
- No olvidar la compresión: Agregar siempre el argumento de compresión LZW para no llenar el disco duro con archivos gigantes.
- Probar en otro software: Abrir el archivo en QGIS o Google Earth para confirmar que no esté "volando" en el océano.
A veces me quedo mirando cómo visualizar series temporales de satélite en R para cambios forestales y me doy cuenta de que exportar bien es la base de todo. Si el archivo base está mal guardado, todo el análisis que hagas después, por muy sofisticado que sea, va a arrastrar ese error. Es como construir una casa sobre cimientos de barro; por muy linda que sea la pintura, en el primer temporal se te va a agrietar. Y aquí en el sur, sabemos mucho de temporales.
Este invierno ha sido menos frustrante que el anterior. Ya no termino las tardes de domingo con ganas de borrar todo. Ahora, guardo mis mapas, cierro RStudio con una sonrisa y me quedo escuchando la lluvia, sabiendo que mis archivos están ahí, bien guardaditos y listos para cuando el sol decida asomarse un ratito y me den ganas de seguir comparando cómo va cambiando el verde de mi cerro año tras año.