
¿Cómo se supone que distingo un coigüe de un pino recién plantado si, vistos desde arriba, los dos son apenas una mancha del mismo verde apagado? Tengo la imagen satelital abierta en la pantalla, el ventilador del computador soplando fuerte porque el archivo debe pesar casi 800 megas, y la lluvia golpeando el techo con esa constancia que solo tiene Valdivia en invierno. Todavía no tengo la respuesta, pero sé que no está en mirar mejor la foto: está en algo que mis ojos ni siquiera alcanzan a ver.
Eso que no vemos es lo que en teledetección con R llaman firma espectral: la huella de luz que cada especie deja en las bandas de una imagen de Sentinel-2, distinta de la huella que deja la especie de al lado aunque a simple vista parezcan calcadas. No voy a explicar acá toda la teoría detrás de esa huella (ya escribí sobre eso en otro texto, con calma), porque lo que de verdad me costó entender, probando y fallando sola los fines de semana, fue algo más concreto: hay dos maneras distintas de sacarle ese valor a un punto en el bosque, y elegir mal puede arruinarte semanas enteras de análisis forestal.
Dos maneras de sacarle una firma espectral a un árbol en R
La primera vez que quise hacer esto en serio, marqué unos puntos caminando cerca del Faro de Niebla, en una tarde en que el viento no dejaba ni sacar el teléfono del bolsillo sin que se mojara. Antes de eso ya había fracasado una vez: descargué imágenes Landsat como archivos TIFF pensando que las podría abrir con cualquier programa, y me demoré un buen rato en entender que necesitaba software especializado solo para verlas.
Con las imágenes de Sentinel-2 ya cargadas en R usando el paquete terra (el que reemplazó al viejo raster, según todo lo que leí para no quedarme atrás), el problema ya no era abrir el archivo, sino qué hacer con los puntos una vez que estaban ahí adentro. Ahí aparecen los dos caminos: uno es sacar el valor del píxel exacto donde cae tu punto, el otro es sacar los valores de varios píxeles alrededor, dentro de un pequeño círculo. Suena a detalle menor, pero cambia por completo lo que terminas viendo en el gráfico.

Por qué el valor de un solo píxel puede engañarte
Sacar el valor de un solo píxel es lo más rápido y lo que cualquier principiante prueba primero (yo incluida). Cargas tu raster, cargas tus puntos, corres extract() y en segundos tienes un número por banda para cada árbol. El problema aparece cuando ese número no representa al árbol sino a una mezcla: un pedazo de copa, un poco de sombra y quizás hasta un trozo de suelo o de camino de tierra que quedó adentro del mismo cuadradito.
Antes de llegar a este punto tuve que corregir el sistema de referencia de coordenadas de mis puntos para que calzaran con la imagen (otro dolor de cabeza que dejo para otro momento), así que ya venía cansada cuando me di cuenta de que el número que tanto me costó sacar ni siquiera era confiable. Sobre ese lío de coordenadas, y sobre cómo sacar valores de raster a puntos en general, dejé todo anotado en mis trucos para extraer valores de un raster a puntos en RStudio, por si te agarra el mismo error rojo que a mí.
Con un solo píxel, dos especies parecidas (como el coigüe y un pino joven) pueden terminar con firmas casi idénticas simplemente porque el punto cayó en un borde, no porque las plantas se parezcan de verdad. Eso es lo engañoso: el gráfico se ve limpio, pero está mintiendo un poco.
La otra opción: un pequeño buffer alrededor de cada punto
La segunda forma es crear un buffer, un círculo chico alrededor de cada punto, y pedirle a R que traiga los valores de todos los píxeles que caen adentro, no solo el del centro. Es un poco como el recorte de un raster contra una capa vectorial, pero a una escala mucho más chica y pensada para un solo árbol. El resultado no es un número limpio, sino un rango de valores por banda, con su propia variabilidad, que refleja mejor cómo la luz rebota en distintas partes de la copa.
Esa variabilidad es la que de verdad ayuda a separar especies. Un sábado en que por fin me salió el gráfico completo, le mandé una captura de pantalla a mi hermana y me di cuenta de que podía explicarle qué significaba cada color de la curva sin mirar ni una sola vez mis apuntes. La curva del bosque nativo se despegaba de la curva de la plantación de pino de una forma que con el método del píxel único casi no se notaba. Si algún día quieres ir más allá y clasificar coberturas completas, o hasta modelar dónde podría distribuirse una especie, este es el tipo de dato de entrada que necesitas: no un valor suelto, sino una firma con textura.

Lo que gana cada camino cuando los pongo lado a lado
El método del píxel único gana en velocidad: si solo quieres revisar rápido si una imagen sirve, o si tu área de estudio es un rodal grande y bastante homogéneo, no necesitas más que eso. También pesa menos para el computador, algo que se agradece cuando la imagen ya viene pesada y el ventilador lleva rato sonando. El buffer, en cambio, gana en precisión justo donde más se necesita: cuando las especies que quieres separar se parecen mucho entre sí, o cuando después vas a usar esa firma para algo serio, como una clasificación de coberturas vegetales o una comparación de imágenes a lo largo del tiempo.
Antes de decidirme por el buffer para mi caso, también probé mirar composiciones de color distintas, para ver si el ojo solo, sin sacar ningún valor numérico, ya alcanzaba a notar la diferencia entre bosque nativo y plantación. Ayudaba, pero no alcanzaba para separar árboles parecidos punto por punto; dejé esa parte anotada en cómo crear composiciones de color en RStudio para ver el bosque nativo. Nada de esto reemplaza sacar las nubes de la imagen antes de empezar, ni descargar las escenas correctas de Sentinel desde un principio: si esa parte sale mal, ni el mejor buffer del mundo salva el gráfico final.
Elige según lo que tengas entre manos para tu análisis forestal
Si estás recién empezando y solo quieres ver si tu idea funciona, parte con el píxel único: es menos código, falla menos y te deja entender rápido si vas por buen camino. Pero si ya tienes tus puntos limpios, tu proyección corregida y de verdad necesitas distinguir especies que se parecen entre sí, el buffer vale el código extra y el rato adicional que tarda en correr.
Terminé usando los dos, cada uno en su momento, y esa fue la parte que más me costó aceptar: no existe un método único que sirva siempre, existe el que le sirve a la pregunta que tienes ese día frente a la pantalla, con la lluvia afuera y una amiga que a esa misma hora probablemente anda remando en su kayak por el río Cruces, sin ningún píxel de por medio.