Saltar al contenido
megapromotingVamos a hablar

Experiencia · Datos geoespaciales

Capas de observación de la Tierra sobre un territorio, cada una con la fuente, la hora de lectura y el límite escritos junto a ella.

Construimos el mapa operativo de un territorio a partir de fuentes públicas de observación de la Tierra —Copernicus, OpenStreetMap, catálogos orbitales, ortofoto gubernamental— y vinculamos a cada capa su procedencia, el momento de la última lectura exitosa y qué no puede mostrar. Las mediciones se publican junto con el método que las produjo.

Ya construidoTres implementaciones propias, que se pueden abrir hoy desde fuera. FlowMind se ejecuta en una VM propia y tiene 109 rutas API, de las cuales nueve hablan directamente con Copernicus Data Space Ecosystem (`src/app/api/copernicus/`, verificado por conteo en disco). Relieva responde 200 y pide la imagen Sentinel en vivo en cada carga de la página (680.122 bytes, verificado con curl el 06.09.2026). Orbital Nexus es público en `https://www.megapromoting.com/satelit/` y propaga localmente un catálogo de aproximadamente 11.900 objetos. La reserva que hay que decir desde la primera frase: no poseemos ningún satélite ni ningún sensor. Copernicus es un programa público de la Unión Europea, y el catálogo orbital proviene de CelesTrak, que redistribuye datos mantenidos por US Space Force. Lo que construimos nosotros es la capa de arriba.

Un territorio — una ciudad, un distrito, una zona de infraestructura — puede leerse a partir de datos que ya existen públicamente: imágenes satelitales, geometría vial, modelos de terreno, ortofoto catastral, catálogos orbitales. Este servicio los reúne en un solo mapa operativo y, más importante, lleva el registro de lo que significa cada capa: qué sensor la produjo, con qué resolución, con qué frecuencia se renueva y cuándo se leyó por última vez con éxito.

Hay que decirlo claramente, porque es fácil entenderlo mal y porque es una afirmación que algunos hacen sin derecho: **Copernicus no es nuestro.** Es el programa de observación de la Tierra de la Unión Europea, con sus satélites, sensores y archivo. Nosotros nos autenticamos en Copernicus Data Space Ecosystem con credenciales propias de tipo `client_credentials` y pedimos productos procesados mediante API. La resolución, la frecuencia de revisita, la cobertura de nubes y la calidad radiométrica son de la misión, no nuestras. Lo mismo para el catálogo orbital: viene de CelesTrak, con atribución mostrada, porque su política lo exige. Lo que llevamos nosotros son la autenticación, la petición correcta, el cálculo, el renderizado, el guardián de procedencia y la interpretación.

La regla de contenido es la misma en todas partes: una cifra se publica junto con el método que la produjo. La pendiente de una calle significa algo distinto si se calculó con el núcleo Horn 3×3 sobre un raster de 25 m que si se leyó de dos puntos a 30 m de distancia. La altura de un edificio significa algo distinto si se declara en OpenStreetMap que si se estima por el número de plantas. Mezclar ambas categorías bajo el mismo color es la forma más frecuente de entregar un mapa que se ve bien y miente.

Cuando una fuente no responde, la capa se marca OFFLINE, con el motivo, y no se completa con un valor plausible. En FlowMind la regla tiene un guardián automático, `noFakeLive`, que se niega a etiquetar una capa como LIVE sin la prueba de una lectura exitosa. Un píxel vacío significa «no hemos observado aquí», no «aquí no hay nada».

Qué incluye

El trabajo, por componentes

La pregunta elige el sensor, no al revés

La primera etapa no es técnica. «Dónde se degrada la vegetación», «dónde puede subir un vehículo con ruedas», «dónde cambió la superficie entre dos fechas» y «qué pasa de noche o bajo nubes» requieren instrumentos distintos. Óptico multiespectral a 10 m para vegetación y agua, radar C para condiciones en las que la óptica no ve, banda térmica a escala de kilómetros para contraste de superficie, modelo de terreno para pendiente. Un sensor elegido mal produce un resultado que parece correcto y no lo es.

Pedimos el producto procesado, en la caja y el intervalo de tiempo solicitados

No descargamos escenas enteras para recortarlas localmente. La petición a Copernicus contiene la caja geográfica, el intervalo de tiempo y un script de evaluación que dice exactamente qué banda entra y qué sale como píxel. En FlowMind, las peticiones Sentinel-2 van a la colección `sentinel-2-l2a` en el endpoint `https://sh.dataspace.copernicus.eu/api/v1/process`; Sentinel-1 a `sentinel-1-grd`, Sentinel-5P a `sentinel-5p-l2`. NDVI se calcula a partir de B08 y B04, NDWI a partir de B03 y B08 — en evalscript, en la fuente, no a partir de una imagen ya comprimida.

Publicamos la cifra con el método pegado a ella

Cada bloque de resultado lleva una marca de procedencia. En Relieva hay tres: medido, de fuentes y propuesto. Bajo el mapa de pendiente dice literalmente «COP-DEM GLO-30 · UTM 35N 25 m · Horn 3×3», y bajo la escena de relieve aparece la exageración vertical ×3,5, precisamente porque el relieve exagerado es bonito y engañoso. Un comprador que quiera verificar una cifra debe poder rehacer el camino hasta ella.

Máscara de nubes, no borrado de nubes

Las peticiones Sentinel-2 rechazan desde el inicio las escenas con más de 40% de cobertura de nubes (`MAX_CLOUD_COVERAGE = 40`). En el evalscript, los píxeles que la banda de clasificación de la escena SCL marca como nube, sombra de nube, cirrus o nieve — las clases 3, 8, 9, 10 y 11 — se devuelven completamente transparentes. La alternativa cómoda, rellenar el hueco con una escena más antigua, produce una imagen continua que mezcla dos momentos. Preferimos el hueco, porque se puede leer correctamente.

Radar cuando la óptica no puede

Sentinel-1 C-SAR atraviesa nubes y trabaja de noche, a 10 m, con una revisita del orden de 6–12 días. En nuestros productos se usa la relación entre las polarizaciones VV y VH, como screening de una sola escena: muestra diferencias de superficie y de humedad. No es interferometría. Los desplazamientos milimétricos del terreno requieren parejas ascendente/descendente, archivos de órbita, un modelo de terreno y una etapa de desenrollado de fase — un trabajo separado, marcado como tal en nuestro catálogo de productos, no algo que entreguemos a partir de una petición de tile.

El modelo de superficie no es el modelo del terreno — la trampa que no da ningún error

Copernicus DEM GLO-30 es un modelo digital de superficie: en un cuartel denso devuelve la cota del techo, no la de la calzada. Nada señala el problema; solo salen mal las cifras. Por eso la geometría que debe apoyarse en el suelo se coloca sobre una superficie filtrada, y la pendiente se mide sobre una base larga — por debajo de aproximadamente 60 m entre puntos se mide el ruido del raster, no el terreno. La regla complementaria es igual de importante: si las estadísticas publicadas se calcularon sobre el modelo bruto, siguen sobre el modelo bruto y la página lo dice. Mezclar ambas bases en un solo conjunto de cifras las vuelve incoherentes.

La geometría urbana de OpenStreetMap, con la procedencia de las alturas mantenida por separado

Las huellas de edificios y la red vial provienen de OpenStreetMap, con la fecha del instantáneo indicada. En la escena 3D del centro de Chișinău, de 9.506 huellas solo 1.128 tienen la altura declarada en OSM; las otras 8.378 se estiman a partir del número de pisos multiplicado por 3,2 m. Las dos categorías están coloreadas de forma distinta en la escena. Cada edificio se apoya en la cota de terreno que tiene debajo, no en una placa plana; por eso los bloques suben hacia el parque de la catedral en lugar de parecer alineados.

Posiciones orbitales calculadas localmente, con la antigüedad de los datos a la vista

Los puntos del globo no son posiciones transmitidas por satélites. Son posiciones calculadas: se parte de elementos orbitales válidos en un momento del pasado y se propagan con el modelo SGP4 hasta la hora actual. El error crece con cada día transcurrido desde la última actualización, y la aplicación lo muestra en kilómetros para el objeto seleccionado. En FlowMind, la antigüedad de los elementos se etiqueta explícitamente fresh / stale / expired. El cálculo se ejecuta en un hilo separado, para que la interfaz no se bloquee.

Fondo cartográfico sin claves de pago

La escena 3D drapea la ortofoto gubernamental de `geodata.gov.md` (WMS, Agencia de Relaciones Territoriales y Catastro) sobre un modelo de terreno de teselas públicas de AWS Open Data, renderizado con MapLibre GL. Sin claves API y sin coste por visualización. El fondo es orientación visual; los productos Copernicus siguen siendo capas separadas, cada una con su satélite, sensor, resolución y limitaciones.

Qué aspecto tiene

El recorrido, paso a paso.

01

Delimitamos el territorio y escribimos la pregunta a la que el mapa debe responder

Una caja geográfica, una breve lista de preguntas operativas y, para cada una, el veredicto de si existe una fuente pública que pueda responder. Entregamos el inventario de fuentes con la resolución, la cadencia y el límite de cada una, incluidas las filas en las que se lee "no existe fuente pública para esto". Esas filas son la parte más útil del inventario.

02

Conectamos las fuentes y ponemos al guardián antes de la primera capa bonita

La autenticación, las rutas de servidor, la caché y — obligatoriamente en este orden — la regla que prohíbe marcar una capa como LIVE sin prueba de una lectura exitosa. El guardián se escribe antes que las capas, porque después nadie lo añade. Entregamos las rutas funcionales y un informe de salud de las fuentes que se puede consultar.

03

Medimos una vez, completo, con el método escrito junto al resultado

Reproyección, cálculo, umbrales elegidos con criterios explícitos, no estéticos. En el mapa de pendiente de Chișinău los umbrales son 8,33%, es decir, la rampa de accesibilidad 1:12, y 12%, por encima de los cuales los robots de acera cotados al 10–15% ya no suben. Entregamos las cifras, los scripts que las regeneran desde la fuente y una página que marca cada bloque como medido, de fuentes o propuesto.

04

Entregamos con los límites al frente, no en el pie de página

Qué no puede mostrar el mapa, a qué intervalo envejece cada capa, qué ocurre si una fuente pública cambia sus condiciones o desaparece, y qué exigiría pasar de screening a medición fina. Entregamos el procedimiento de actualización y la lista de dependencias externas con su punto de ruptura.

CAPA EN EL MAPAEl mismo territorio, leído en capas separadas.
Las capas sobre el mismo territorio, una sobre otra: el modelo del terreno en la base, la geometría de calles y las huellas de edificios encima, la imagen óptica y el radar como capas separadas — cada una con su etiqueta de resolución, cadencia y momento de la última lectura correcta.

Los datos

Qué tocamos, dónde están y cuánto se quedan

Las preguntas que hace cualquiera que tenga un delegado de protección de datos — hechas aquí antes de que las haga él.

Qué tipo de datos toca el trabajo
Por lo general, datos sobre el territorio, no sobre personas: reflectancia multiespectral, retrodispersión radar, cotas de terreno, geometría vial, huellas de edificios, elementos orbitales. Todos provienen de archivos públicos: Copernicus Data Space Ecosystem, OpenStreetMap, AWS Open Data, CelesTrak, el portal de geodatos del estado.
Dónde están las credenciales y por qué no llegan al navegador
El acceso a Copernicus se realiza con un identificador y un secreto de cliente, mediante el flujo OAuth2 `client_credentials` en `identity.dataspace.copernicus.eu`. La solicitud de token sale solo desde el servidor, con corte a 10 segundos y con el token renovado 60 segundos antes de su expiración real. El navegador nunca ve el secreto; pide una ruta nuestra, y la ruta pide a Copernicus. Sin credenciales configuradas, la ruta devuelve 503 y el resto de la página funciona.
Qué se conserva con nosotros
Las placas de imagen se guardan en una caché de proceso, con encabezados que indican qué producto y qué resolución se devolvieron. Los catálogos grandes se cargan después de que el mapa ya está en pantalla y se conservan localmente, con plazo: la ficha de objeto del catálogo orbital, de casi 7 MB, permanece en la memoria local del navegador durante un día. Las mediciones derivadas — pendiente, isolíneas, perfil altimétrico — se regeneran desde la fuente mediante scripts, no se editan manualmente.
La atribución no es opcional
Las fuentes públicas vienen con condiciones. La política de CelesTrak exige atribución y prohíbe la redistribución masiva del catálogo; por eso el panel de fuentes en la interfaz es un requisito, no una decoración. Copernicus y OpenStreetMap tienen sus propias condiciones de uso y atribución. En una entrega, la verificación de estas condiciones se hace al inicio, no en el lanzamiento.
Cuando aun así aparecen datos personales
Ocurre con un solo tipo de capa: los flujos de vídeo públicos y las imágenes tomadas desde la calle. Ahí el trabajo ya no es solo geoespacial: entran el difuminado de rostros y matrículas al capturar, la conservación solo de la geometría derivada y una evaluación de impacto antes de la primera cámara. La imagen satelital a 10 m no tiene este problema: un píxel cubre diez metros de terreno.

Un caso

Un bulevar plano que medía 13,5% de pendiente

La situación

En un trabajo propio de medición del relieve del municipio de Chișinău, la pendiente de las calles se calculó directamente a partir del modelo digital público a 30 m, tomando puntos consecutivos de la geometría vial. El resultado parecía convincente y estaba listo para publicarse.

Qué construimos

Al verificarlo, uno de los bulevares centrales — prácticamente plano para cualquiera que camine por él — arrojaba 13,5% de pendiente. La causa fue silenciosa: el modelo público es un modelo de superficie, así que en un barrio denso devuelve la cota del techo. Dos puntos a 30 m de distancia, uno caído sobre una cornisa, producen una diferencia de cota que no existe en la calzada. El mismo defecto aparecía también en otra parte: edificios vecinos terminaban sobre «suelo» distinto con unos 20 m, y las carreteras quedaban en promedio 13 m por debajo de los edificios y desaparecían entre bloques en la escena tridimensional, porque las carreteras siguen los valles y los edificios están sobre la meseta.

Qué salió

La geometría se trasladó a una superficie de terreno aproximada, obtenida mediante filtrado con una ventana más ancha que un barrio, y desde entonces la pendiente se mide sobre una base larga, no entre puntos consecutivos que pueden estar a unos metros uno de otro — por debajo de la resolución del raster. Las estadísticas ya publicadas permanecieron declaradas sobre el modelo bruto, y la página lo dice, porque mover algunas de las cifras a otra base las habría vuelto incoherentes entre sí.

Qué no dice el caso

Nada había dado error. La interfaz de programación había respondido 200, los archivos se leían, el mapa se dibujaba. Este es el patrón que más nos interesa en los datos geoespaciales: la fuente funciona y el resultado es sutilmente incorrecto. La única defensa que aguanta es verificar un valor conocido: un bulevar que sabes que es plano.

Preguntas

Lo que nos pregunta la gente antes de llamar

¿Tienen satélites propios?

No, ninguno, y tampoco sensores. Copernicus es el programa de observación de la Tierra de la Unión Europea — los satélites, los sensores y el archivo son suyos. El catálogo orbital viene de CelesTrak, que redistribuye datos mantenidos por US Space Force. Nosotros nos autenticamos con credenciales propias, pedimos productos procesados mediante API y construimos lo que sigue: el cálculo, el mapa, el guardián de procedencia, la interpretación. Si alguien os dice que tiene satélites propios en Moldavia, pedid el número NORAD.

¿Con qué frecuencia se actualiza la imagen?

Depende de la misión y de las nubes, no de nosotros. Óptica multiespectral a 10 m: del orden de 2–5 días cuando existe una escena sin nubes. Radar a 10 m: aproximadamente 6–12 días, pero funciona de noche y a través de nubes. Banda térmica del orden del kilómetro y productos atmosféricos: diario o multidiario. En un noviembre con el cielo cubierto durante una semana, la capa óptica simplemente no tiene qué mostrar — y entonces lo dice así, no toma prestada una imagen más antigua.

¿Qué resolución significa, en la práctica, 10 m?

Un píxel cubre diez metros en el terreno. Se ve un barrio, una parcela agrícola, un vertedero, una obra, un cambio de superficie. No se ve un coche, una persona ni una matrícula — y por eso la imagen satelital de esta categoría no plantea el problema de los datos personales. Para los productos atmosféricos el píxel es del orden de kilómetros: se lee una tendencia sobre una ciudad, no una calle.

¿Pueden darme la altura exacta de mis edificios?

No de estas fuentes. El modelo público a 30 m es un modelo de superficie: devuelve la cota del punto más alto de lo que hay allí, incluidos tejados y copas de árboles, y es demasiado grueso para un edificio individual. Lo que sí podemos hacer es decir sobre qué cota de terreno se asienta cada huella y, donde OpenStreetMap declara la altura, usar el valor declarado, marcado por separado de la estimación. Para alturas de precisión hace falta otra adquisición: LiDAR o fotogrametría con dron. Eso es un trabajo de campo, no de archivo.

¿Puedes detectar deslizamientos de tierra?

Podemos construir una capa de priorización, no un veredicto. Una pantalla de riesgo combina la pendiente del modelo de terreno, la pérdida de coherencia radar, el cambio de superficie en óptico y la acumulación de precipitaciones —y saca una lista de zonas para verificar. La confirmación de un desplazamiento real requiere interferometría: pares de escenas ascendentes y descendentes, archivos de órbita, la fase desarrollada. Es un trabajo aparte. En nuestros productos la distinción está escrita explícitamente junto a la capa, para que nadie lea una priorización como una detección.

¿Por qué aparecen huecos en el mapa?

Porque allí no se observó nada utilizable —por lo general, nube, sombra de nube, cirros o nieve, filtrados de la banda de clasificación de la escena. El hueco es una información, no un defecto. La alternativa, rellenarlo con otra fecha, produce una imagen continua que mezcla dos momentos y que no puedes usar para comparar. La misma lógica se aplica a las fuentes caídas: la capa escribe OFFLINE y el motivo.

¿La posición del satélite en el mapa es la real, en tiempo real?

Es una posición calculada, no transmitida. Se parte de elementos orbitales publicados en un momento del pasado y se propaga hasta ahora con un modelo estándar. El error crece con la antigüedad de los elementos, y nosotros lo mostramos en kilómetros para el objeto seleccionado y marcamos la antigüedad de los datos. Un objeto con elementos de hace varios días puede estar a decenas de kilómetros de donde lo muestra el punto —por eso se escribe, no se oculta.

¿Qué pasa si la fuente pública cambia o desaparece?

Es el riesgo real de este tipo de trabajo y se trata en el contrato, no en el incidente. Las fuentes públicas cambian sus formatos, cuotas de uso y condiciones. Por eso entregamos la lista de dependencias externas con su punto de ruptura, mantenemos la capa de acceso aislada en un solo lugar del código y marcamos la fuente caída en la interfaz en lugar de dejar que el mapa parezca funcional. Una plataforma que oculta una fuente muerta es más peligrosa que una que se detiene de forma visible.

¿Los datos se quedan con vosotros o con el cliente?

Los resultados derivados —mapas, cifras, capas calculadas— son del cliente y se entregan junto con los scripts que los regeneran desde la fuente. Los datos fuente se quedan donde están, en los archivos públicos, bajo sus licencias y condiciones de atribución; nosotros no los redistribuimos en masa, porque algunas licencias prohíben precisamente eso. Las credenciales de acceso a Copernicus pueden ser las del cliente, en su cuenta, si quiere independencia completa de nosotros.

En qué se basan las afirmaciones anteriores (21 fuentes)
  1. https://www.megapromoting.com/satelit/ responde 200https://www.megapromoting.com/satelit/ · 2026-09-06
  2. https://relieva.vercel.app responde 200 y sirve 680.122 byteshttps://relieva.vercel.app · 2026-09-06

19 de ellas son código y archivos de nuestros repositorios. No publicamos su nombre ni la línea: juntos, en una sola página, describirían con demasiada precisión cómo están construidos sistemas que no son solo nuestros. Los repasamos contigo, en el repositorio, a petición — la verificación sigue siendo posible, solo que se hace en una conversación.

¿Qué te gustaría que funcionara mejor?

Cuéntanos tu proceso. Juntos decidimos qué merece la pena construir, qué podemos conectar y cómo verificamos el resultado.

Vamos a hablar