Almacenamiento, análisis y visualización geoespacial de un extremo a otro

Los datos geoespaciales se incluyen en varias formas y requieren una amplia gama de funcionalidades para procesarse, analizarse y visualizarse. Aunque el sistema de información geográfica (GIS) es común, en gran medida no es nativo de la nube. La mayoría de los GIS se ejecutan en el escritorio, lo que limita su escala y rendimiento. Aunque se han realizado avances en el traslado de los datos al back-end, estos sistemas permanecen enlazados a IaaS, lo que dificulta su escalado.

En este artículo se proporciona un enfoque de alto nivel para usar funcionalidades nativas de la nube, junto con algunas opciones de software de código abierto y opciones comerciales. Se tendrán en cuenta tres roles. Los roles son arquitectos que buscan un flujo de alto nivel sin entrar en los detalles de una implementación. Los roles son los siguientes:

  • Arquitecto geoespacial general. Este arquitecto busca un medio para implementar la arquitectura geoespacial, pero puede que no tenga experiencia en el uso de GIS o teledetectores.
  • Arquitecto geoespacial de OSS. Este arquitecto busca obtener una solución de software de código abierto (OSS), pero aprovecha las ventajas de la nube para el procesamiento y almacenamiento.
  • Arquitecto geoespacial de COTS. Este arquitecto está comprometido con los COTS, pero también aprovecha las ventajas de la nube para el procesamiento y almacenamiento.

Posibles casos de uso

Las soluciones proporcionadas en estas arquitecturas se aplican a muchos casos de uso:

  • Procesamiento, almacenamiento y provisión de acceso a grandes cantidades de datos de trama, como capas o datos climáticos.
  • Combinación de datos de ubicación de entidades de sistemas ERP con datos de referencia de GIS o inclusión de datos vectoriales, matrices, nubes de puntos, etc.
  • Almacenamiento de datos de telemetría del Internet de las cosas (IoT) desde dispositivos móviles y análisis en tiempo real o por lotes.
  • Ejecución de consultas geoespaciales analíticas.
  • Inserción de datos geoespaciales mantenidos y contextualizados en aplicaciones web.
  • Procesamiento de datos de drones, fotografías aéreas, imágenes de satélite, LiDAR, resultados de modelos en cuadrícula, etc.

Arquitectura geoespacial general

Azure tiene muchas funcionalidades geoespaciales nativas. En este diagrama y los siguientes, encontrará fases de alto nivel en las que se someten los datos geoespaciales. En primer lugar, tiene el origen de datos, un paso de ingesta y un lugar donde los datos se almacenan, transforman, sirven, publican y, por último, se consumen. Observe el icono de globo terráqueo junto a los servicios con funcionalidades geoespaciales nativas. Además, estos diagramas no se deben considerar procesos lineales. Puede empezar en la columna Transformaciones, Publicar y Consumir y, a continuación, crear algunos conjuntos de datos derivados que requieren volver a una columna anterior.

Geospatial On Azure

Este flujo de arquitectura supone que los datos pueden proceder de bases de datos, archivos o orígenes de streaming y no se almacenan en un formato nativo de GIS. Una vez que los datos se ingieren con Azure Data Factory o a través de Azure IoT, Event Hubs y Stream Analytics, se pueden almacenar de forma permanente en un almacenamiento intermedio con Azure SQL, Azure SQL Managed Instance, Azure Database for PostgreSQL o Azure Data Lake Storage. Desde allí, los datos se pueden transformar y procesar por lotes con un grupo de Spark de Azure Batch o Synapse; ambos se pueden automatizar mediante el uso de una canalización de Azure Data Factory o Synapse. En el caso de los datos en tiempo real, se pueden transformar o procesar aún más con Stream Analytics o Azure Maps o poner en contexto con Azure Digital Twins. Una vez transformados los datos, se pueden servir una vez más para usos adicionales en Azure SQL DB o Azure Database for PostgreSQL, grupos de Synapse SQL (para datos no geoespaciales abstraídos), Azure Cosmos DB o Azure Data Explorer. Una vez listos, los datos se pueden consultar directamente a través de la API de base de datos, pero con frecuencia se usa una capa de publicación. La API de datos de Azure Maps bastaría para conjuntos de datos pequeños; de lo contrario, se puede introducir un servicio no nativo basado en OSS o COTS para acceder a los datos a través de servicios web o aplicaciones de escritorio. Por último, el SDK web de Azure Maps hospedado en Azure App Service permitiría la geovisualización. Otra opción es usar Azure Maps en Power BI. Por último, HoloLens y Azure Spatial Anchors se pueden usar para ver los datos y situarlos en el mundo real para generar experiencias de realidad virtual (VR) y realidad aumentada (AR).

También debe tenerse en cuenta que muchas de estas opciones son opcionales y se podrían complementar con OSS para reducir el costo al tiempo que se mantiene la escalabilidad, o bien con herramientas de terceros para usar sus funcionalidades específicas. La siguiente sesión aborda esta necesidad.

Arquitectura geoespacial de software de terceros y código abierto

Este patrón adopta el enfoque de usar funcionalidades geoespaciales nativas de Azure al mismo tiempo que se aprovechan algunas herramientas de terceros y herramientas de software de código abierto.

La diferencia más importante entre este enfoque y el diagrama de flujo anterior es el uso de FME de Safe Software, Inc., que se puede adquirir en Azure Marketplace. FME permite a los arquitectos geoespaciales integrar varios tipos de datos geoespaciales que incluyen CAD (para Azure Maps Creator), GIS, BIM, 3D, nubes de puntos, LIDAR, etc. Hay más de 450 opciones de integración que pueden acelerar la creación de muchas transformaciones de datos gracias a su funcionalidad. Sin embargo, la implementación se basa en el uso de una máquina virtual y, por tanto, sus capacidades de escalado son limitadas. Se puede alcanzar la automatización de transformaciones de FME mediante llamadas API de FME con el uso de Azure Data Factory o con Azure Functions. Una vez cargados los datos en Azure SQL, por ejemplo, se pueden servir en GeoServer y publicarse como un Web Map Tile Service (trama) o Web Feature Service (vector) visualizados en el SDK web de Azure Maps o analizados con QGIS para escritorio junto con los otros mapas base de Azure Maps.

Diagram of Azure and 3rd Party tools and open-source software.

Arquitectura geoespacial de COTS: Esri con orígenes estáticos y de streaming

El siguiente enfoque que veremos usa un SIG comercial como base para la solución. La tecnología de Esri, disponible en Azure Marketplace, será la base de esta arquitectura, aunque otro software comercial podría ajustarse a los mismos patrones. Como antes, los orígenes, la ingesta, el almacenamiento (sin procesar), la carga y el servicio siguen siendo en gran medida los mismos. Los datos también se pueden transformar con ArcGIS Pro en un equipo independiente (VM) o como parte de una solución más grande con Azure Virtual Desktop. Los datos se pueden publicar a través de ArcGIS Enterprise o con ArcGIS Enterprise en Kubernetes (Azure Kubernetes Service). Las imágenes se pueden procesar en IaaS con ArcGIS Image como parte de la implementación ArcGIS Enterprise. Los datos se pueden consumir en aplicaciones web hospedadas en Azure App Service con el SDK de JavaScript de ArcGIS, un usuario final de ArcGIS Pro, el SDK móvil de ArcGIS Runtime o con ArcGIS for Power BI. Del mismo modo, los usuarios pueden consumir los datos con ArcGIS Online.

Diagram of Esri with static and streaming sources.

Arquitectura de imágenes geoespaciales de COTS: Azure Orbital y ArcGIS Image de Esri

La siguiente arquitectura incluye Azure Orbital y ArcGIS Image de Esri. Con este flujo de un extremo a otro, Azure Orbital permite programar contactos con satélites y vincular los datos a una máquina virtual o transmitir en Azure Event Hubs. Además de los datos de satélite transmitidos directamente, las imágenes de drones u otros datos de imágenes se pueden traer a la plataforma y procesarse. Los datos sin procesar se pueden almacenar en Azure NetApp Files, en una cuenta de Azure Storage (blob) o en una base de datos como Azure Database for PostgreSQL. En función de la plataforma satélite y del sensor, los datos se transforman de nivel 0 a nivel 2. Consulte Niveles de procesamiento de datos de la NASA. El nivel necesario depende del satélite y del sensor. A continuación, ArcGIS Pro puede transformar los datos en un conjunto de datos de mosaico. El conjunto de datos de mosaico se convierte en un servicio de imágenes con ArcGIS Enterprise (en máquinas virtuales o Kubernetes). ArcGIS Image Server puede servir los datos directamente como un servicio de imágenes o un usuario puede consumir el servicio de imágenes a través de ArcGIS Image for ArcGIS Online.

Diagram of Esri's ArcGIS Image and Azure Orbital.

Arquitectura de imágenes geoespaciales de software de código abierto/COTS: Azure Space a conjuntos de datos listos para su análisis

Cuando los conjuntos de datos listos para su análisis están disponibles a través de las API que habilitan las funcionalidades de búsqueda y consulta, como con Planetary Computer de Microsoft, no es necesario descargar primero los datos desde un satélite. Sin embargo, si se requieren plazos de entrega bajos para las imágenes, la adquisición de los datos directamente desde Azure Space es ideal porque un operador satélite o una organización motivada por una misión clara pueden programar un contacto con un satélite a través de Azure Orbital. El proceso para pasar del nivel 0 al nivel 2 del conjunto de datos listo para su análisis varía según el satélite y los productos de imágenes. A menudo se requieren varias herramientas y pasos intermedios. Azure Batch u otro recurso de proceso pueden procesar los datos en un clúster y almacenar los datos resultantes. Los datos pueden pasar por varios pasos antes de estar listos para su uso en ArcGIS, QGIS o alguna otra herramienta de geovisualización. Por ejemplo, una vez que los datos están en un formato GeoTIFF optimizado para la nube (COG), se sirven a través de una cuenta de Storage o Azure Data Lake y es posible acceder a ellos y consultarlos a través de la API de STAC, que se puede implementar en Azure como servicio, con AKS, entre otros. Como alternativa, los datos se publican como Web Mapping Tile Service con GeoServer. A continuación, los consumidores pueden acceder a los datos en ArcGIS Pro o QGIS o a través de una aplicación web con Azure Maps o los SDK móviles y web de Esri.

Diagram of Azure Space to Analysis Ready Dataset.

Componentes

  • Azure Event Hubs es una plataforma de streaming de macrodatos totalmente administrada. Esta plataforma como servicio (PaaS) ofrece un modelo de consumidor con particiones. Varias aplicaciones pueden usar este modelo para procesar el flujo de datos al mismo tiempo.
  • Azure Orbital es una estación terrestre como servicio basada en la nube y totalmente administrada que permite simplificar las operaciones mediante la ingesta de datos espaciales directamente en Azure.
  • Azure Data Factory es un servicio de integración que funciona con datos de almacenes de datos dispares. Puede usar esta plataforma sin servidor totalmente administrada para crear, programar y orquestar los flujos de trabajo de transformación de datos.
  • Azure Cosmos DB es un servicio de bases de datos NoSQL totalmente administrado para el desarrollo de aplicaciones modernas.
  • Azure Synapse Analytics es un servicio de análisis empresarial que acelera el tiempo necesario para obtener información de los almacenes de datos y de los sistemas de macrodatos.
  • Azure Digital Twins es una oferta de plataforma como servicio que permite la creación de grafos gemelos basados en modelos digitales de entornos completos, que pueden ser edificios, fábricas, granjas, redes energéticas, ferrocarriles, estadios y mucho más, incluso ciudades enteras.
  • Azure Virtual Desktop es un servicio de virtualización de escritorio y de aplicaciones que se ejecuta en la nube.
  • Azure Databricks es una plataforma de análisis de datos. Sus clústeres de Spark totalmente administrados procesan grandes flujos de datos de varios orígenes. Azure Databricks pueden transformar datos geoespaciales a gran escala para su uso en análisis y visualización de datos.
  • Azure Batch le permite ejecutar trabajos de informática de alto rendimiento en paralelo y a gran escala.
  • Azure Data Lake Storage es un lago de datos seguro y escalable para cargas de trabajo de análisis de alto rendimiento. Este servicio puede administrar varios petabytes de información, al mismo tiempo que mantiene un rendimiento de cientos de gigabits. Los datos provienen normalmente de varios orígenes heterogéneos y pueden ser estructurados, semiestructurados o no estructurados.
  • Azure SQL Database es una versión PaaS de SQL Server y se trata de un servicio de base de datos relacional inteligente y escalable.
  • Azure Database for PostgreSQL es un servicio de base de datos relacional totalmente administrado que se basa en la Community Edition del motor de base de datos de código abierto PostgreSQL.
  • PostGIS es una extensión para la base de datos PostgreSQL que se integra con servidores GIS. PostGIS puede ejecutar consultas de ubicación SQL en las que intervienen objetos geográficos.
  • Power BI es una colección de servicios y aplicaciones de software. Puede usar Power BI para conectar orígenes de datos no relacionados y crear objetos visuales de ellos.
  • El objeto visual de Azure Maps para Power BI proporciona una manera de mejorar los mapas con datos espaciales. Puede usar este objeto visual para mostrar cómo afectan los datos de ubicación a las métricas empresariales.
  • App Service y su característica de aplicaciones web proporcionan un marco para compilar, implementar y escalar aplicaciones web. La plataforma App Service ofrece mantenimiento de infraestructura integrado, revisiones de seguridad y escalado.
  • Las API de datos de GIS en Azure Mapas almacenan y recuperan datos de mapa en formatos como GeoJSON e iconos vectoriales.
  • Azure Data Explorer es un servicio de análisis de datos rápido y totalmente administrado que permite trabajar con grandes volúmenes de datos. Este servicio se centraba originalmente en series temporales y análisis de registros. Ahora también puede controlar diferentes flujos de datos de aplicaciones, sitios web, dispositivos IoT y otros orígenes. La funcionalidad geoespacial de Azure Data Explorer proporciona opciones para representar datos de mapa.
  • Azure NetApp Files es un servicio de almacenamiento conectado en red (NAS) de archivos de alto rendimiento, medido y de clase empresarial.
  • Quantum GIS es un GIS de escritorio gratuito y de código abierto que admite la edición, el análisis y la geovisualización de datos geoespaciales.
  • ArcGIS Enterprise es una plataforma para la asignación y la geovisualización, el análisis y la administración de datos, que hospeda datos, aplicaciones y aplicaciones personalizadas sin código o con poco código. Funciona junto con el GIS de escritorio denominado ArcGIS Pro o ArcGIS Desktop (no incluido aquí porque ha sido sustituido por ArcGIS Pro).
  • ArcGIS Pro es la aplicación GIS de escritorio profesional de Esri. Permite a los usuarios avanzados explorar, geovisualizar y analizar datos. Incluye funcionalidades 2D y 3D y se ejecuta mejor en máquinas virtuales de informática de alto rendimiento de Azure, como la serie NV. El uso de ArcGIS se puede escalar mediante Azure Virtual Desktop.
  • ArcGIS Image for ArcGIS Online es una extensión de ArcGIS Online (SaaS) que permite la geovisualización, el hospedaje, la publicación y el análisis.
  • La especificación de la API STAC permite consultar y recuperar datos de trama a través de un catálogo.

Aunque no se muestran en los diagramas anteriores, Azure Monitor, Log Analytics y Key Vault también formarían parte de una solución más amplia.

  • Azure Monitor recopila datos en entornos y recursos de Azure. Esta información de diagnóstico es útil para mantener la disponibilidad y el rendimiento. Dos plataformas de datos componen monitor:
  • Azure Log Analytics es una herramienta de Azure Portal que ejecuta consultas en los datos de registro de Monitor. Log Analytics también proporciona características para crear gráficos y analizar estadísticamente los resultados de las consultas.
  • Key Vault almacena y controla el acceso a secretos, como tokens, contraseñas y claves de API. Key Vault también crea y controla claves de cifrado y administra certificados de seguridad.

Alternativas

Hay varias bibliotecas de Spark disponibles para trabajar con datos geoespaciales en grupos de Spark en Azure Databricks y Synapse. Consulte estas bibliotecas:

Pero también existen otras soluciones para procesar y escalar cargas de trabajo geoespaciales con Azure Databricks.

  • Otras bibliotecas de Python que se deben tener en cuenta son PySAL, Rasterio, WhiteboxTools, Turf.js, Pointpats, Raster Vision, EarthPy, Planetary Computer, PDAL, etc.

  • Los mosaicos vectoriales proporcionan una manera eficaz de mostrar los datos GIS en los mapas. Una solución sería usar PostGIS para consultar dinámicamente mosaicos vectoriales. Este enfoque funciona bien con consultas simples y conjuntos de resultados que contienen menos de 1 millón de registros. Sin embargo, en los casos siguientes, puede ser mejor un enfoque diferente:

    • Las consultas son costosas a nivel computacional.
    • Los datos no cambian con frecuencia.
    • Va a mostrar grandes conjuntos de datos.

En estas situaciones, considere la posibilidad de usar Tippecanoe para generar mosaicos vectoriales. Puede ejecutar Tippecanoe como parte del flujo de procesamiento de datos, ya sea como contenedor o con Azure Functions. Puede hacer que los mosaicos resultantes estén disponibles a través de las API.

  • Al igual que Event Hubs, Azure IoT Hub puede ingerir grandes cantidades de datos. Sin embargo, IoT Hub también ofrece funcionalidades de comunicación bidireccional con dispositivos. Si recibe datos directamente de dispositivos, pero también envía comandos y directivas a estos, considere el uso de IoT Hub en lugar de Event Hubs.

Pasos siguientes