Stockage, analyse et visualisation de données géospatiales de bout en bout

Les données géospatiales prennent différentes formes et nécessitent un large éventail de fonctionnalités pour être traitées, analysées et visualisées. Même si un système d’information géographique (SIG) est courant, il est en grande partie non natif Cloud. La plupart des SIG s’exécutent sur le bureau, ce qui limite leur échelle et leurs performances. Même si des progrès ont été faits en termes de déplacement des données vers le back-end, ces systèmes restent liés à IaaS, ce qui les rend difficiles à mettre à l’échelle.

Cet article propose une approche globale de l’utilisation des capacités natives Cloud, ainsi que des options logicielles open source et des options commerciales. Trois personnages sont pris en compte. Les personnages sont des architectes qui cherchent un flux général sans entrer dans les détails d’une implémentation. Sont inclus les suivants :

  • Architecte géospatial général. Cet architecte recherche un moyen d’implémenter des données géospatiales sans avoir forcément d’expérience préalable dans le domaine des SIG ou de la détection à distance.
  • Architecte géospatial OSS. Cet architecte se consacre à une solution logicielle open source (OSS), mais tire parti du cloud pour le calcul et le stockage.
  • Architecte géospatial COTS. Cet architecte se consacre à des produits du commerce (COTS), mais tire également parti du calcul et du stockage cloud.

Cas d’usage potentiels

Les solutions fournies dans ces architectures s’appliquent à de nombreux cas d’usage :

  • Traitement, stockage et fourniture d’un accès à de grandes quantités de données raster, telles que des couches ou des données climatiques.
  • Combinaison de données d’emplacement d’entité issues de systèmes ERP et de données de référence SIG ou inclusion de données vectorielles, de tableaux, de nuages de points, etc.
  • Stockage de données de télémétrie Internet des objets (IoT) issues d’appareils mobiles et analyse en temps réel ou par lot
  • Exécution de requêtes géospatiales analytiques
  • Incorporation de données géospatiales curées et contextuelles dans des applications web
  • Traitement de données issues de drones, de photos aériennes, d’imagerie satellite, de LiDAR, de résultats de modèles en grille, etc.

Architecture géospatiale générale

Azure dispose de nombreuses fonctionnalités géospatiales natives. Dans ce diagramme et ceux qui suivent, vous allez trouver les étapes générales par lesquelles passent les données géospatiales. Tout d’abord, vous avez la source de données, une étape d’ingestion, un endroit où les données sont stockées, transformées, servies, publiées et finalement consommées. Remarquez l’icône en forme de globe en regard des services dotés de fonctionnalités géospatiales natives. De plus, ces diagrammes ne sont pas considérés comme des processus linéaires. Il est possible de démarrer dans la colonne Transformer, Publier et Consommer, puis de créer des jeux de données dérivés, ce qui nécessite de revenir à une colonne précédente.

Geospatial On Azure

Ce flux d’architecture part du principe que les données peuvent provenir de bases de données, de fichiers ou de sources de streaming et ne pas être stockées dans un format SIG natif. Une fois que les données sont ingérées avec Azure Data Factory ou par le biais d’Azure IoT, Event Hubs et Stream Analytics, elles peuvent être stockées de manière permanente dans un stockage chaud avec Azure SQL, Azure SQL Managed Instance, Azure Database pour PostgreSQL ou Azure Data Lake Storage. À partir de là, les données peuvent être transformées et traitées par lot avec Azure Batch ou un pool Synapse Spark, tous les deux automatisables en utilisant un pipeline Azure Data Factory ou Synapse. Pour des données en temps réel, il est possible de les transformer ou de les traiter avec Stream Analytics ou Azure Maps, ou bien de les mettre en contexte avec Azure Digital Twins. Une fois les données transformées, elles peuvent à nouveau servir à d’autres utilisations dans Azure SQL DB ou Azure Database pour PostgreSQL, un pool Synapse SQL (pour des données non géospatiales abstraites), Azure Cosmos DB ou Azure Data Explorer. Une fois préparées, les données peuvent être interrogées directement par le biais de l’API de base de données, mais souvent une couche de publication est utilisée. L’API des données Azure Maps peut suffire pour les petits jeux de données, sinon un service non natif peut être introduit, selon qu’il s’agit d’OSS ou de COTS, pour accéder aux données par le biais de services web ou d’applications de bureau. Enfin, le SDK Web Azure Maps hébergé dans Azure App Service permet une géovisualisation. Une autre option consiste à utiliser Azure Maps dans Power BI. Enfin, HoloLens et Azure Spatial Anchors peuvent être utilisées pour afficher les données et les placer dans le monde réel dans le cadre d’expériences de réalité virtuelle et de réalité augmentée.

Notez également que la plupart de ces options sont facultatives et peuvent être complétées par des OSS pour réduire les coûts tout en assurant la scalabilité, ou par des outils tiers pour utiliser leurs fonctionnalités spécifiques. La session suivante répond à ce besoin.

Architecture géospatiale OSS et tierce

Ce modèle prend l’approche de l’utilisation des fonctionnalités géospatiales natives Azure de concert avec certains outils tiers et logiciels open source.

La différence la plus significative entre cette approche et le diagramme de flux précédent est l’utilisation de FME de Safe Software Inc., qui peut être acheté depuis la Place de marché Azure. FME permet aux architectes géospatiaux d’intégrer divers types de données géospatiales, notamment des données CAD (pour Azure Maps Creator), SIG, BIM, 3D, de nuages de points, LIDAR, etc. Il existe plus de 450 options d’intégration pouvant accélérer la création de nombreuses transformations de données par le biais de fonctionnalités. Toutefois, l’implémentation se base sur l’utilisation d’une machine virtuelle, ce qui limite donc ses capacités de mise à l’échelle. L’automatisation des transformations FME peut être atteinte à l’aide d’appels d’API FME en utilisant Azure Data Factory et/ou Azure Functions. Une fois les données chargées dans Azure SQL, par exemple, elles peuvent être servies dans GeoServer et publiées en tant que Web Feature Service (vecteur) ou Web Mapping Tile Service (raster), puis visualisées dans le SDK web Azure Maps ou analysées avec QGIS pour le bureau ainsi qu’avec d’autres cartes de base Azure Maps.

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

Architecture géospatiale COTS : Esri avec des sources statiques et de streaming

L’approche suivante que nous allons examiner utilise un SIG commercial comme base de la solution. La technologie Esri, disponible sur la Place de marché Azure, sert de base à cette architecture, bien que d’autres logiciels commerciaux puissent correspondre aux mêmes modèles. Comme précédemment, les sources, l’ingestion, le magasin (brut), le chargement/service restent en grande partie les mêmes. Les données peuvent également être transformées avec ArcGIS Pro sur un ordinateur autonome (machine virtuelle) ou dans le cadre d’une solution plus large avec Azure Virtual Desktop. Les données peuvent être publiées par le biais d’ArcGIS Enterprise ou avec ArcGIS Enterprise sur Kubernetes (Azure Kubernetes Service). L’imagerie peut être traitée sur IaaS avec ArcGIS Image dans le cadre du déploiement d’ArcGIS Enterprise. Les données peuvent être consommées dans des applications web hébergées dans Azure App Service avec le SDK JavaScript ArcGIS, un utilisateur final ArcGIS Pro, le SDK mobile ArcGIS Runtime, ou encore avec ArcGIS pour Power BI. De même, les utilisateurs peuvent consommer les données avec ArcGIS Online.

Diagram of Esri with static and streaming sources.

Architecture d’imagerie géospatiale COTS : ArcGIS Image d’Esri et Azure Orbital

L’architecture suivante implique Azure Orbital et ArcGIS Image d’Esri. Avec ce flux de bout en bout, Azure Orbital vous permet de planifier des contacts avec des satellites et de transmettre les données en liaison descendante à une machine virtuelle ou en continu à Azure Event Hubs. Outre les données satellites transmises directement en streaming, il est possible d’apporter et de traiter des données de drone ou d’imagerie diverse sur la plateforme. Les données brutes peuvent être stockées dans Azure NetApp Files, un compte de stockage Azure (blob) ou une base de données comme Azure Database pour PostgreSQL. En fonction de la plateforme du satellite et du capteur, les données sont transformées d’un jeu de données de niveau 0 en niveau 2. Consultez Niveaux de traitement des données de la NASA. Le niveau nécessaire dépend du satellite et du capteur. Ensuite, ArcGIS Pro peut transformer les données en un jeu de données en mosaïque. Le jeu de données en mosaïque est ensuite converti en service d’image avec ArcGIS Enterprise (sur des machines virtuelles ou Kubernetes). ArcGIS Image Server peut servir directement les données sous forme de service d’image ou un utilisateur peut consommer le service d’image par le biais d’ArcGIS Image pour ArcGIS Online.

Diagram of Esri's ArcGIS Image and Azure Orbital.

Architecture d’imagerie géospatiale OSS/COTS : Azure Space et jeu de données prêt pour l’analyse

Lorsque des jeux de données prêts pour l’analyse sont disponibles par le biais d’API qui activent des fonctionnalités de recherche et de requête, comme Planetary Computer de Microsoft, il n’est pas nécessaire de d’abord télécharger les données à partir d’un satellite. Toutefois, si des délais courts sont nécessaires pour l’imagerie, l’acquisition directe des données auprès d’Azure Space s’avère idéale, car un opérateur satellite ou une organisation peut planifier un contact avec un satellite par le biais d’Azure Orbital. Le processus pour passer d’un jeu de données prêt pour l’analyse de niveau 0 au niveau 2 varie selon le satellite et les produits d’imagerie. Plusieurs outils et étapes intermédiaires sont souvent nécessaires. Azure Batch ou une autre ressource de calcul peuvent traiter les données dans un cluster et stocker les données résultantes. Les données peuvent passer par plusieurs étapes avant d’être prêtes à être utilisées dans ArcGIS ou QGIS ou dans un autre outil de géovisualisation. Par exemple, une fois que les données sont au format COG (Cloud Optimized GeoTIFF), elles sont servies par le biais d’un compte de stockage ou d’Azure Data Lake, et sont accessibles et interrogeables par le biais de l’API STAC, déployable sur Azure en tant que service, avec AKS entre autres. Les données sont autrement publiées en tant que Web Mapping Tile Service avec GeoServer. Les consommateurs peuvent alors accéder aux données dans ArcGIS Pro ou QGIS, ou encore par le biais d’une application web Azure Maps ou les SDK mobile et web d’Esri.

Diagram of Azure Space to Analysis Ready Dataset.

Composants

  • Azure Event Hubs est une plateforme de streaming complètement managée pour le Big Data. Cette plateforme en tant que service (PaaS) offre un modèle de consommateur partitionné. Plusieurs applications peuvent utiliser ce modèle pour traiter le flux de données en même temps.
  • Azure Orbital est une station terrienne en tant que service basée sur le cloud complètement managée, qui vous permet de simplifier vos opérations en ingérant des données spatiales directement dans Azure.
  • Azure Data Factory est un service d’intégration qui opère avec des données provenant de magasins de données disparates. Vous pouvez utiliser cette plateforme serverless complètement managée pour créer, planifier et orchestrer des flux de travail de transformation de données.
  • Azure Cosmos DB est un service de base de données NoSQL complètement managé pour le développement d’applications modernes.
  • Azure Synapse Analytics est un service d’analyse pour entreprise qui raccourcit le délai d’obtention d’analyses sur l’ensemble des entrepôts de données et des systèmes Big Data.
  • Azure Digital Twins est une offre PaaS (platform as a service) qui permet de créer des graphes de jumeaux basés sur des modèles numériques d’environnements entiers, qui peuvent être des bâtiments, des usines, des batteries de serveurs, des réseaux d’énergie, des chemins de fer, des stades ou des villes entières.
  • Azure Virtual Desktop est un service de virtualisation de bureau et d’application qui s’exécute dans le cloud.
  • Azure Databricks est une plateforme d’analytique des données. Ses clusters Spark complètement managés traitent de grands flux de données provenant de plusieurs sources. Azure Databricks peut transformer des données géospatiales à grande échelle en vue de leur utilisation à des fins d’analytique et de visualisation des données.
  • Azure Batch vous permet d’exécuter des tâches de calcul haute performance et en parallèle à grande échelle.
  • Azure Data Lake Storage est un lac de données évolutif et sécurisé pour les charges de travail d’analytique hautes performances. Il peut traiter plusieurs pétaoctets d’informations tout en maintenant un débit de plusieurs centaines de gigabits. Les données proviennent généralement de plusieurs sources hétérogènes et peuvent être structurées, semi-structurées ou non structurées.
  • Azure SQL Database est une version PaaS de SQL Server. Il s’agit d’un service de base de données relationnelle intelligent et évolutif.
  • Azure Database pour PostgreSQL est un service de base de données relationnelle complètement managé, basé sur l’édition communautaire du moteur de base de données open source PostgreSQL.
  • PostGIS est une extension de la base de données PostgreSQL qui s’intègre aux serveurs GIS. PostGIS peut exécuter des requêtes d’emplacement SQL qui impliquent des objets géographiques.
  • Power BI est une collection de services logiciels et d’applications. Vous pouvez utiliser Power BI pour connecter des sources de données non liées et créer des visuels.
  • Le visuel Azure Maps pour Power BI permet d’améliorer les cartes avec des données spatiales. Vous pouvez utiliser ce visuel pour montrer comment les données d’emplacement affectent les métriques métier.
  • App Service et sa fonctionnalité Web Apps fournissent des plateformes pour la création, le déploiement et la mise à l’échelle d’applications web. La plateforme App Service offre une maintenance d’infrastructure intégrée, des correctifs de sécurité et une mise à l’échelle.
  • Les API de données GIS dans Azure Maps stockent et récupèrent les données cartographiques dans des formats tels que GeoJSON et mosaïques vectorielles.
  • Azure Data Explorer est un service d’analytique données rapide et complètement managé qui peut opérer avec de gros volumes de données. Ce service était initialement axé sur l’analytique des journaux et des séries chronologiques. Il gère désormais aussi divers flux de données provenant d’applications, de sites web, d’appareils IoT et d’autres sources. Les fonctionnalités géospatiales dans Azure Data Explorer fournissent des options pour le rendu des données cartographiques.
  • Azure NetApp Files est un service de stockage NAS (Network Attached Storage) de fichiers limité, haute performance et de classe entreprise.
  • Le SIG Quantum est un SIG de bureau gratuit et open source qui prend en charge la modification, l’analyse et la géovisualisation des données géospatiales.
  • ArcGIS Enterprise est une plateforme de mappage et de géovisualisation, d’analyse et de gestion des données, qui héberge des données, des applications et des applications personnalisées avec peu/pas de code. Elle fonctionne avec le SIG de bureau appelé ArcGIS Pro ou ArcGIS Desktop (non inclus ici, car il a été supplanté par ArcGIS Pro).
  • ArcGIS Pro est l’application SIG de bureau professionnelle d’Esri. Elle permet aux utilisateurs d’explorer, de géovisualiser et d’analyser des données. Elle comprend des fonctionnalités 2D et 3D et s’exécute mieux sur des machines virtuelles de calcul haute performance Azure, comme la série NV. L’utilisation d’ArcGIS peut être mise à l’échelle avec Azure Virtual Desktop.
  • ArcGIS Image pour ArcGIS Online est une extension d’ArcGIS Online (SaaS) qui permet la géovisualisation, l’hébergement, la publication et l’analyse.
  • La spécification de l’API STAC vous permet d’interroger et d’extraire des données raster par le biais d’un catalogue.

Bien que cela ne soit pas indiqué dans les diagrammes ci-dessus, Azure Monitor, Log Analytics et Key Vault font également partie d’une solution plus large.

  • Azure Monitor collecte des données dans les environnements et ressources Azure. Ces informations de diagnostic sont utiles pour assurer le maintien de la disponibilité et des performances. Deux plateformes de données composent Monitor :
  • Azure Log Analytics est un outil du portail Azure qui exécute des requêtes sur les données des journaux Monitor. Log Analytics fournit également des fonctionnalités de création de graphiques et d’analyse statistique des résultats de requête.
  • Key Vault stocke et contrôle l’accès aux secrets tels que les jetons, mots de passe et clés API. Key Vault crée et contrôle également des clés de chiffrement et gère les certificats de sécurité.

Autres solutions

Différentes bibliothèques Spark sont disponibles pour l’utilisation de données géospatiales sur Azure Databricks et des pools Synapse Spark. Consultez ces bibliothèques :

Mais d’autres solutions existent également pour le traitement et la mise à l’échelle des charges de travail géospatiales avec Azure Databricks.

  • D’autres bibliothèques Python sont à prendre en compte : PySAL, Rasterio, WhiteboxTools, Turf.js, Pointpats, Raster Vision, EarthPy, Planetary Computer, PDAL, etc.

  • Les mosaïques vectorielles offrent un moyen efficace d’afficher des données GIS sur des cartes. Une solution pourrait utiliser PostGIS pour interroger des mosaïques vectorielles de manière dynamique. Cette approche fonctionne bien pour les requêtes simples et les jeux de résultats qui contiennent bien moins d’un million d’enregistrements. Mais dans les cas suivants, une approche différente peut être préférable :

    • Vos requêtes sont coûteuses en termes de calcul
    • Vos données ne changent pas fréquemment
    • Vous affichez des jeux de données volumineux

Dans ces cas-là, vous pourriez utiliser Tippecanoe pour générer des mosaïques vectorielles. Vous pouvez exécuter Tippecanoe dans le cadre de votre flux de traitement de données, sous la forme d’un conteneur ou avec Azure Functions. Vous pouvez rendre les mosaïques obtenues accessibles par le biais d’API.

  • Comme Event Hubs, Azure IoT Hub peut ingérer de grandes quantités de données. Mais IoT Hub offre également des fonctionnalités de communication bidirectionnelle avec les appareils. Si vous recevez des données directement à partir d’appareils, mais que vous renvoyez également des commandes et des stratégies aux appareils, utilisez IoT Hub plutôt qu’Event Hubs.

Étapes suivantes