🛰️ Clasificador de Terreno por Satélite — k-Means de Píxeles en Vivo
Watch real k-means clustering group synthetic multispectral satellite pixels into land-cover classes (water, vegetation, urban, bare soil) live, re-clustering as spectral bands are reweighted.
Acerca de esta simulación
Esta simulación genera una escena satelital multiespectral sintética de 56×56 píxeles — un cuerpo de agua, una parcela de vegetación, una manzana urbana y un fondo de suelo desnudo, cada uno con una firma característica de reflectancia en rojo e infrarrojo cercano más ruido de sensor por píxel — y luego ejecuta desde cero un algoritmo genuino de agrupamiento k-means para agrupar cada píxel en clases de cobertura terrestre usando solo sus valores espectrales: reflectancia en rojo, reflectancia en infrarrojo cercano (NIR), y el índice de vegetación NDVI derivado. El paso de agrupamiento nunca usa la posición espacial, por lo que el mapa de cobertura terrestre resultante es una demostración pura de clasificación espectral no supervisada.
🔬 Qué muestra
Un mapa de cobertura terrestre que se actualiza en vivo, recoloreado según el ID del grupo, junto a un diagrama de dispersión espectral de píxeles muestreados en el espacio de características Rojo-NIR con los centroides marcados. k-means++ inicializa los centroides, y luego el algoritmo de Lloyd alterna un paso real de asignación por distancia euclidiana y un paso de actualización de centroides por media hasta que las asignaciones dejan de cambiar o se alcanza un umbral de desplazamiento — exactamente el mismo algoritmo que se usa para ejecutar la clasificación no supervisada de cobertura terrestre en bandas satelitales reales.
🎮 Cómo usarlo
Establece el número de clases de cobertura terrestre k (2-8), luego arrastra los controles deslizantes de peso de Rojo, NIR y NDVI para remodelar el espacio de características espectrales en el que se ejecuta el agrupamiento — cada cambio reinicializa los centroides y reagrupa en vivo. Usa Ejecutar en vivo para observar cómo convergen las iteraciones en tiempo real, Paso a paso para avanzar una iteración de Lloyd a la vez, o Regenerar escena para dibujar una imagen sintética completamente nueva. Haz clic en cualquier píxel del mapa para inspeccionar sus bandas brutas, su NDVI y su clase asignada.
💡 ¿Sabías que...?
NDVI = (NIR − Rojo) / (NIR + Rojo) funciona porque la clorofila en las hojas sanas refleja fuertemente la luz infrarroja cercana mientras absorbe la luz roja para la fotosíntesis — una huella espectral que casi no tiene nada que ver con el color visible de un objeto. Por eso la vegetación sana y, digamos, un tejado verde pueden parecer similares a la vista pero situarse en regiones completamente distintas del espacio NDVI.
Preguntas frecuentes
¿Cómo convierte k-means los píxeles satelitales en un mapa de cobertura terrestre?
Cada píxel se representa únicamente por su firma espectral — reflectancia simulada en rojo, reflectancia en infrarrojo cercano (NIR), y NDVI derivado de esas dos bandas. k-means nunca mira dónde está situado un píxel en la imagen; asigna repetidamente cada píxel al centroide (de los k) que esté más cerca en este espacio espectral 3-dimensional (distancia euclidiana), y luego mueve cada centroide a la media de los píxeles que tiene asignados actualmente. Después de suficientes iteraciones los grupos se estabilizan, y recolorear la imagen según el ID del grupo produce un mapa de cobertura terrestre basado únicamente en la similitud espectral.
¿Por qué usar NDVI junto con las bandas brutas de rojo y NIR?
NDVI = (NIR − Rojo) / (NIR + Rojo) es una razón normalizada que separa fuertemente la vegetación sana (NDVI alto, ya que la clorofila refleja fuertemente el NIR pero absorbe la luz roja) del agua, el suelo desnudo y las superficies urbanas (NDVI bajo o negativo). Incluir el NDVI junto con las bandas brutas le da a k-means un eje adicional muy discriminativo, razón por la cual el control deslizante de peso de vegetación a menudo produce la separación de clases más limpia.
¿Qué le pasa a la convergencia si cambio los pesos de las bandas a mitad de la ejecución?
Reponderar una banda reescala la métrica de distancia que usa k-means, lo que cambia la forma de los grupos en el espacio de características — por lo que la simulación reinicializa los centroides con k-means++ y reagrupa desde cero. Reducir el peso del NIR, por ejemplo, hace más difícil separar los píxeles de agua y suelo desnudo, ya que ambos tienen baja reflectancia en rojo, y normalmente verás que la inercia converge a un valor final más alto y a veces requiere más iteraciones.
¿Así es como funciona realmente la clasificación de cobertura terrestre por satélite?
La mecánica central es real y coincide con la clasificación no supervisada de teledetección: el agrupamiento píxel a píxel en el espacio de características multiespectral es una técnica estándar (ISODATA y el agrupamiento k-means se usan en herramientas como ENVI y QGIS). Esta simulación usa valores de reflectancia sintéticos con ruido gaussiano por píxel en lugar de bandas satelitales calibradas genuinas, y omite la corrección atmosférica, el enmascarado de nubes y bandas adicionales (SWIR, térmica) que usan los clasificadores operativos, así que trátala como un modelo didáctico fiel del paso de agrupamiento, no como un proceso de producción.
¿Por qué k-means a veces fusiona lo urbano y el suelo desnudo en un solo grupo?
A las superficies urbanas y al suelo desnudo se les asignan deliberadamente firmas espectrales similares en esta simulación — ambos tienen una reflectancia moderada y aproximadamente equilibrada en rojo y NIR, y un NDVI bajo — lo que refleja un desafío real de teledetección en el que el concreto, los tejados y el suelo seco a menudo ocupan regiones superpuestas del espacio espectral. Aumentar k, o ajustar los pesos de las bandas, a veces puede separarlos, pero con solo rojo, NIR y NDVI disponibles no siempre hay suficiente señal de separación, tal como en la práctica los clasificadores a menudo añaden bandas adicionales (como SWIR) específicamente para resolver esta ambigüedad.
Agrupamiento k-means real (inicialización k-means++, asignación euclidiana, actualización de centroides por media, iteración hasta convergencia) aplicado a datos de píxeles multiespectrales sintéticos — bandas rojo, NIR y NDVI — en una cuadrícula de imagen de 56×56 con cuatro regiones espaciales de cobertura terrestre y ruido por píxel.
3D · Three.js / WebGL renderer · 60 FPS target · runs fully client-side, no install