Bearbeiten

Freigeben über


Spaceborne-Datenanalyse mit Azure Synapse Analytics

Azure Synapse Analytics
Azure KI Services
Maschinelles Sehen in Azure
Azure Batch
Azure Storage

Diese Architektur soll eine End-to-End-Implementierung ermöglichen, die das Extrahieren, Laden, Transformieren und Analysieren von Spaceborne-Daten durch den Einsatz von Geobibliotheken und KI-Modellen mit Azure Synapse Analytics umfasst. In diesem Artikel wird auch gezeigt, wie geospezifische Azure Cognitive Services-Modelle, AI-Modelle von Partnern, eigene Daten und KI-Modelle integriert werden, die Azure Synapse Analytics verwenden. Die beabsichtigte Zielgruppe für dieses Dokument sind Benutzer mit durchschnittlichen Kenntnissen bei der Arbeit mit Geo- oder Spaceborne-Daten.

Eine Implementierung dieser Architektur ist auf GitHub verfügbar.

Apache®, Apache Spark, Spark, das Spark-Logo, Apache Sedona, Apache Incubator, das Apache-Federlogo und das Apache Incubator-Projektlogo sind entweder eingetragene Marken oder Marken der Apache Software Foundation in den USA und/oder anderen Ländern. Die Verwendung dieser Markierungen impliziert kein Endorsement durch die Apache Software Foundation.

Architektur

Diagramm, das die Analyselösung für die Verarbeitung von Geodaten zeigt.

Laden Sie eine Visio-Datei dieser Architektur herunter.

Datenfluss

In den folgenden Abschnitten werden die Phasen in der Architektur beschrieben.

Datenerfassung

Spaceborne-Daten werden aus Datenquellen wie Airbus, NAIP/USDA (über die Planetary Computer API) und Maxar abgerufen. Daten werden in Azure Data Lake Storage erfasst.

Azure Synapse Analytics bietet verschiedene Pipelines und Aktivitäten wie Webaktivität, Datenflussaktivität und benutzerdefinierte Aktivitäten, um eine Verbindung mit diesen Quellen herzustellen und die Daten in Data Lake Storage zu kopieren.

Benutzerdefinierte Aktivitäten in Azure Synapse führen Ihre angepasste Codelogik auf einem Azure Batch-Pool von virtuellen Computern oder in Docker-kompatiblen Containern aus.

Datentransformation

Die Daten werden verarbeitet und in ein Format umgewandelt, das Analysten und KI-Modelle nutzen können. Geobibliotheken, einschließlich GDAL, OGR, Rasterio und GeoPandas, stehen zur Durchführung der Transformation zur Verfügung.

Azure Synapse Spark-Pools bieten die Möglichkeit, diese Bibliotheken zu konfigurieren und zu verwenden, um die Datentransformationen abzuwickeln. Sie können auch benutzerdefinierte Aktivitäten in Azure Synapse verwenden, die mit Azure Batch-Pools arbeiten.

Ein Azure Synapse-Notebook ist eine Weboberfläche, die Sie zum Erstellen von Dateien verwenden können, die Live-Code, Visualisierungen und beschreibenden Text enthalten. Notebooks sind ein guter Ausgangspunkt, um Ideen zu überprüfen, Transformationen zu definieren und schnelle Experimente durchzuführen, um Erkenntnisse aus Ihren Daten zu gewinnen und eine Pipeline zu erstellen. Im Beispielcode wird die GDAL-Bibliothek in einem Spark-Pool verwendet, um Datentransformationen auszuführen. Weitere Informationen finden Sie im Abschnitt Beispielcode dieses Artikels.

Die Beispiellösung implementiert diese Pipeline aus diesem Datentransformationsschritt. Das Beispiel wird mit der Annahme geschrieben, dass Daten in Data Lake Storage durch die zuvor beschriebenen Datenerfassungsmethoden kopiert werden. Es veranschaulicht die Implementierung dieser Pipeline für die Rasterdatenverarbeitung.

Analyse und Ausführung von KI-Modellen

Die Azure Synapse-Notebookumgebung analysiert und führt KI-Modelle aus.

KI-Modelle, die mit Diensten wie dem Cognitive Services Custom Vision-Modell entwickelt, in ihrer eigenen Umgebung trainiert und als Docker-Container gepackt wurden, sind in der Azure Synapse-Umgebung verfügbar.

In der Azure Synapse-Umgebung können Sie auch KI-Modelle ausführen, die von Partnern für verschiedene Funktionen wie Objekterkennung, Änderungserkennung und Landklassifizierung zur Verfügung gestellt werden. Diese Modelle werden in ihrer eigenen Umgebung trainiert und als Docker-Container gepackt.

Azure Synapse kann solche KI-Modelle über eine benutzerdefinierte Aktivität ausführen, die Code in Batch-Pools als ausführbare Dateien oder Docker-Container ausführt. Die Beispiellösung veranschaulicht, wie sie ein Custom Vision AI-Modell als Teil einer Azure Synapse-Pipeline für die Objekterkennung über einem bestimmten räumlichen Bereich ausführen.

Nachanalyse und Visualisierung

  • Für eine weitere Analyse und Visualisierung kann die Ausgabe aus der Analyse und Ausführung der KI-Modelle in Data Lake Storage, datenbasierten Datenbanken wie Azure Database for PostgreSQL oder Azure Cosmos DB gespeichert werden. Die Beispiellösung zeigt, wie die KI-Modellausgabe transformiert und als GeoJSON-Daten in Data Lake Storage und Azure Database for PostgreSQL gespeichert werden kann. Sie können die Ausgabe dort abrufen und abfragen.
  • Für die Visualisierung:
    • Sie können lizenzierte Tools wie ArcGIS Desktop oder Open-Source-Tools wie QGIS verwenden.
    • Mit Power BI können Sie aus verschiedenen Datenquellen auf GeoJSON zugreifen und die Daten des geografischen Informationssystems (GIS) visualisieren.
    • Sie haben die Möglichkeit, mithilfe von clientseitigen, JavaScript-basierten Geobibliotheken die Daten in Webanwendungen zu visualisieren.

Komponenten

Datenquellen

Datenerfassung

  • Azure Synapse Analytics ist ein unbegrenzter Analysedienst, der Datenintegration, Data Warehousing für Unternehmen und Big Data-Analysen vereint. Azure Synapse sind die gleiche Datenintegrationsengine und die gleichen Umgebungen wie in Azure Data Factory integriert, was die Erstellung bedarfsorientierter ETL-Pipelines ermöglicht, ohne Azure Synapse zu verlassen.
  • Azure Data Lake Storage ist speziell auf Big Data-Analysen ausgelegt und setzt auf Azure Blob Storage auf.
  • Mit Azure Batch können Sie eine große Anzahl von Batchcomputingaufträgen in Azure ausführen und skalieren. Batch-Aufgaben lassen sich direkt auf virtuellen Computern (Knoten) in einem Batch-Pool ausführen, doch Sie können auch einen Batch-Pool zum Ausführen von Aufgaben in Docker-kompatiblen Containern auf den Knoten einrichten.
    • Eine benutzerdefinierte Aktivität in Azure Synapse führt angepasste Codelogik auf einem Azure Batch-Pool von virtuellen Computern oder in Docker-Containern aus.
  • Azure Key Vault speichert und steuert den Zugriff auf Geheimnisse wie Token, Kennwörter und API-Schlüssel. Key Vault dient außerdem dem Erstellen und Steuern von Verschlüsselungsschlüsseln sowie dem Verwalten von Sicherheitszertifikaten.

Datentransformation

Die folgenden Geobibliotheken und -pakete werden zusammen für Transformationen verwendet. Diese Bibliotheken und Pakete werden in einem serverlosen Spark-Pool installiert, der dann an ein Azure Synapse-Notebook angefügt wird. Informationen zum Installieren der Bibliotheken finden Sie unter Installieren von Geopaketen in einem Azure Synapse Spark-Pool weiter unten in diesem Artikel.

  • Geobibliotheken
    • GDAL ist eine Bibliothek von Tools zum Bearbeiten von Spaceborne-Daten. GDAL funktioniert mit Raster- und Vektordatentypen. Es ist ein gutes Tool, das man kennen sollte, wenn man mit Spaceborne-Daten arbeitet.
    • Rasterio ist ein Modul für die Rasterverarbeitung. Sie können es verwenden, um verschiedene Rasterformate in Python zu lesen und zu schreiben. Rasterio basiert auf GDAL. Wenn das Modul importiert wird, registriert Python automatisch alle bekannten GDAL-Treiber zum Lesen unterstützter Formate.
    • GeoPandas ist ein Open-Source-Projekt, das die Arbeit mit Spaceborne-Daten in Python erleichtern kann. GeoPandas erweitert die von Pandas verwendeten Datentypen, um räumliche Vorgänge auf geometrischen Typen zu ermöglichen.
    • Shapely ist ein Python-Paket für die mengentheoretische Analyse und Manipulation von Planarfeatures. Es verwendet Funktionen (über das ctypes-Modul von Python) aus der weit verbreiteten GEOS-Bibliothek.
    • pyproj führt kartographische Transformationen aus. Es konvertiert mithilfe von PROJ Längen- und Breitengrade in die native Kartenprojektion mit x-/y-Koordinaten und umgekehrt.
  • Mit Azure Batch können Sie eine große Anzahl von Batchcomputingaufträgen in Azure ausführen und skalieren.
  • Azure Synapse-Notebooks bieten eine Weboberfläche zum Erstellen von Dateien, die Live-Code, Visualisierungen und beschreibenden Text enthalten. Sie können die Notebook-Aktivität verwenden, um vorhandene Azure Synapse-Notebooks zu einer Azure Synapse-Pipeline hinzuzufügen.
  • Der Apache Spark-Pool bietet die Möglichkeit, Bibliotheken zu konfigurieren und zu verwenden, um Datentransformationen auszuführen. Sie können die Spark-Auftragsdefinitionsaktivität verwenden, um die vorhandene Spark-Aufträge zu einer Azure Synapse-Pipeline hinzuzufügen.

Analyse und KI-Modellierung

  • Azure Synapse bietet Machine Learning-Funktionen.
  • Mit Azure Batch können Sie eine große Anzahl von Batchcomputingaufträgen in Azure ausführen und skalieren. In dieser Lösung wird die benutzerdefinierte Aktivität von Azure Synapse verwendet, um Docker-basierte KI-Modelle auf Azure Batch-Pools auszuführen.
  • Azure Cognitive Services bietet die Möglichkeit, Vision in Ihre Apps einzubetten. Mit Custom Vision, einer Komponente von Cognitive Services, können Sie hochmoderne, Computer-Vision-gestützte Bildanalyse für bestimmte Domänen anpassen und einbetten.
  • Sie können auch eigene KI-Modelle und Microsoft Partner-KI-Modelle wie blackshark.ai verwenden.

Links zur Nachanalyse und Visualisierung

  • Azure Database for PostgreSQL ist ein vollständig verwalteter relationaler Datenbankdienst, der für Hyperscale-Workloads entworfen wurde. Er unterstützt Spaceborne-Daten über die PostGIS-Erweiterung.
  • Azure Cosmos DB unterstützt eine Volltextindizierung und Abfrage von Geopunktdaten, die in GeoJSON dargestellt werden.
  • Power BI ist ein interaktives Datenvisualisierungstool zum Erstellen von Berichten und Dashboards. Sie können Einblicke in Spaceborne-Daten von Esri ArcGIS Maps erhalten.
  • QGIS ist ein kostenloses Open-Source-GIS zum Erstellen, Bearbeiten, Visualisieren, Analysieren und Veröffentlichen von Geoinformationen.
  • ArcGIS Desktop ist ein lizenziertes Produkt von Esri. Hiermit können Sie geografische Informationen erstellen, analysieren, verwalten und teilen.

Alternativen

Wenn Sie containerisierte KI-Modelle ausführen möchten, die Sie von Azure Synapse aufrufen können, können Sie Azure Kubernetes Service, Azure Container Instances oder Azure Container Apps verwenden.

Azure Databricks bietet eine Alternative zum Hosten einer Analytics-Pipeline.

Spark in Azure HDInsight bietet eine Alternative für die Verwendung von Geobibliotheken in der Apache Spark-Umgebung.

Nachfolgend finden Sie einige alternative Bibliotheken und Frameworks, die Sie für die Verarbeitung von Spaceborne-Daten verwenden können:

  • Apache Sedona, früher GeoSpark genannt, ist ein Cluster-Computing-System für die Verarbeitung einer großen Menge an Geodaten. Sedona erweitert Spark und Spark SQL mit sofort einsatzbereiten Spatial Resilient Distributed Datasets und SpatialSQL, die Geodaten auf allen Computern effizient laden, verarbeiten und analysieren.
  • Dask für Python ist eine Parallel Computing-Bibliothek, die das vorhandene Python-Ökosystem skaliert.

Szenariodetails

Die Spaceborne-Datensammlung wird immer häufiger verwendet. Für die Anwendung von künstlicher Intelligenz sind gespeicherte Datenarchive für maschinelles Lernen erforderlich. Die Notwendigkeit, eine cloudbasierte Lösung für die Spaceborne-Datenanalyse zu erstellen, ist wichtiger geworden, damit Unternehmen und Behörden bessere geschäftliche und taktische Entscheidungen treffen können.

Mögliche Anwendungsfälle

Diese Lösung eignet sich ideal für die Luftfahrt- und Flugzeugindustrie. Es behandelt die folgenden Szenarien:

  • Rasterdatenerfassung und -verarbeitung
  • Objekterkennung über vorab trainierte KI-Modelle
  • Klassifizierung von Landmassen durch KI-Modelle
  • Überwachung von Änderungen in der Umgebung durch KI-Modelle
  • Abgeleitete Datasets aus vorab verarbeiteten Bildsätzen
  • Vektorvisualisierung / kleinflächiger Verbrauch
  • Vektordatenfilterung und datenübergreifende Joins

Überlegungen

Diese Überlegungen beruhen auf den Säulen des Azure Well-Architected Frameworks, d. h. einer Reihe von Grundsätzen, mit denen die Qualität von Workloads verbessert werden kann. Weitere Informationen finden Sie unter Microsoft Azure Well-Architected Framework.

Operationale Exzellenz

Wenn Sie im Rahmen Ihrer Zusammenarbeit Git für die Quellcodeverwaltung verwenden, können Sie mit Synapse Studio Ihren Arbeitsbereich einem Git-Repository, Azure DevOps oder GitHub zuordnen. Weitere Informationen finden Sie unter Quellcodeverwaltung in Synapse Studio.

  • In einem Azure Synapse-Arbeitsbereich verschiebt CI/CD alle Einheiten von einer Umgebung (Entwicklung, Test, Produktion) in eine andere Umgebung.
  • Sie können eine Azure DevOps-Release-Pipeline und GitHub Actions zum Automatisieren der Bereitstellung eines Azure Synapse-Arbeitsbereichs in mehreren Umgebungen verwenden.

Leistung

  • Azure Synapse unterstützt Apache Spark 3.1.2, das leistungsfähiger ist als seine Vorgänger.
  • Informationen zur Skalierung von Spark-Pools und Knotengrößen finden Sie unter Spark-Pools in Azure Synapse Analytics.
  • Mit Azure Batch können Sie Transformationen, die in einer benutzerdefinierten Aktivität in Azure Synapse übermittelt werden, systemintern parallel skalieren. Azure Batch unterstützt spezielle GPU-optimierte VM-Größen, mit denen Sie KI-Modelle ausführen können.

Zuverlässigkeit

Zuverlässigkeit stellt sicher, dass Ihre Anwendung Ihre Verpflichtungen gegenüber den Kunden erfüllen kann. Weitere Informationen finden Sie in der Überblick über die Säule „Zuverlässigkeit“.

Weitere SLA-Informationen finden Sie unter Azure Synapse SLA.

Sicherheit

Sicherheit bietet Schutz vor vorsätzlichen Angriffen und dem Missbrauch Ihrer wertvollen Daten und Systeme. Weitere Informationen finden Sie unter Übersicht über die Säule „Sicherheit“.

In den folgenden Artikeln finden Sie bewährte Methoden für die Sicherheit:

Kostenoptimierung

Bei der Kostenoptimierung geht es um die Suche nach Möglichkeiten, unnötige Ausgaben zu reduzieren und die Betriebseffizienz zu verbessern. Weitere Informationen finden Sie unter Übersicht über die Säule „Kostenoptimierung“.

Diese Ressourcen enthalten Informationen zur Preis- und Kostenoptimierung:

Hinweis

Informationen zu Preis- und Lizenzbedingungen für Partner-KI-Modelle finden Sie in der Dokumentation des Partners.

Bereitstellen dieses Szenarios

Eine Bicep-Bereitstellung der Beispiellösung ist verfügbar. Informationen zu den ersten Schritten für diese Bereitstellung finden Sie in den folgenden Anweisungen.

Diagramm, das die Architektur der bereitgestellten Beispiellösung demonstriert.

Laden Sie eine Visio-Datei dieser Architektur herunter.

Einschränkungen

Diese Architektur veranschaulicht eine End-to-End-Geoverarbeitungs- und Analyselösung, die Azure Synapse verwendet. Diese Beispielimplementierung ist für einen kleinen bis mittleren Interessenbereich mit einer begrenzten gleichzeitigen Geoverarbeitung von Rasterdaten gedacht.

Beispielcode

In den folgenden Anweisungen wird beschrieben, wie Sie mithilfe eines Synapse-Notebooks Rasterdaten, die in Azure Data Lake Storage gespeichert sind, lesen, schreiben und transformieren können. Das Ziel besteht eher darin, die Verwendung von Bibliotheken in Synapse-Notebooks zu demonstrieren, als die Transformation zu veranschaulichen.

Voraussetzungen

Anweisungen

  • Drucken von Informationen aus den Rasterdaten:

    from osgeo import gdal
    gdal.UseExceptions()
    access_key = TokenLibrary.getSecret('<key-vault-name>','<secret-name>')
    gdal.SetConfigOption('AZURE_STORAGE_ACCOUNT', '<storage_account_name>')
    gdal.SetConfigOption('AZURE_STORAGE_ACCESS_KEY', access_key)
    dataset_info = gdal.Info('/vsiadls/aoa/input/sample_image.tiff')  #/vsiadls/<container_name>/path/to/image
    print(dataset_info)
    

    Hinweis

    /vsiadls/ ist ein Dateisystemhandler, der das zufällige Lesen von primär nicht-öffentlichen Dateien ermöglicht, die in Azure Data Lake Storage-Dateisystemen verfügbar sind. Der vorherige Download der gesamten Datei ist nicht erforderlich. /vsiadls/ ist ähnlich wie /vsiaz/. Es verwendet die gleichen Konfigurationsoptionen für die Authentifizierung. Im Gegensatz zu /vsiaz/, bietet /vsiadls/ eine echte Verzeichnisverwaltung und ACL-Unterstützung im Unix-Stil. Für einige Features muss die hierarchische Unterstützung im Azure-Speicher aktiviert sein. Weitere Informationen finden Sie in der /vsiadls/-Dokumentation.

    Driver: GTiff/GeoTIFF
    Files: /vsiadls/naip/input/sample_image.tiff
    Size is 6634, 7565
    Coordinate System is:
    PROJCRS["NAD83 / UTM zone 16N",
        BASEGEOGCRS["NAD83",
            DATUM["North American Datum 1983",
                ELLIPSOID["GRS 1980",6378137,298.257222101,
                    LENGTHUNIT["metre",1]]],
            PRIMEM["Greenwich",0,
                ANGLEUNIT["degree",0.0174532925199433]],
            ID["EPSG",4269]],
        CONVERSION["UTM zone 16N",
            METHOD["Transverse Mercator",
                ID["EPSG",9807]],
            PARAMETER["Latitude of natural origin",0,
                ANGLEUNIT["degree",0.0174532925199433],
                ID["EPSG",8801]],
            PARAMETER["Longitude of natural origin",-87,
                ANGLEUNIT["degree",0.0174532925199433],
                ID["EPSG",8802]],
            PARAMETER["Scale factor at natural origin",0.9996,
                SCALEUNIT["unity",1],
                ID["EPSG",8805]],
            PARAMETER["False easting",500000,
                LENGTHUNIT["metre",1],
                ID["EPSG",8806]],
            PARAMETER["False northing",0,
                LENGTHUNIT["metre",1],
                ID["EPSG",8807]]],
        CS[Cartesian,2],
            AXIS["(E)",east,
                ORDER[1],
                LENGTHUNIT["metre",1]],
            AXIS["(N)",north,
                ORDER[2],
                LENGTHUNIT["metre",1]],
        USAGE[
            SCOPE["Engineering survey, topographic mapping."],
            AREA["North America - between 90°W and 84°W - onshore and offshore. Canada - Manitoba; Nunavut; Ontario. United States (USA) - Alabama; Arkansas; Florida; Georgia; Indiana; Illinois; Kentucky; Louisiana; Michigan; Minnesota; Mississippi; Missouri; North Carolina; Ohio; Tennessee; Wisconsin."],
            BBOX[23.97,-90,84,-84]],
        ID["EPSG",26916]]
    Data axis to CRS axis mapping: 1,2
    Origin = (427820.000000000000000,3395510.000000000000000)
    Pixel Size = (1.000000000000000,-1.000000000000000)
    Metadata:
      AREA_OR_POINT=Area
    Image Structure Metadata:
      COMPRESSION=DEFLATE
      INTERLEAVE=PIXEL
      LAYOUT=COG
      PREDICTOR=2
    Corner Coordinates:
    Upper Left  (  427820.000, 3395510.000) ( 87d45'13.12"W, 30d41'24.67"N)
    Lower Left  (  427820.000, 3387945.000) ( 87d45'11.21"W, 30d37'18.94"N)
    Upper Right (  434454.000, 3395510.000) ( 87d41' 3.77"W, 30d41'26.05"N)
    Lower Right (  434454.000, 3387945.000) ( 87d41' 2.04"W, 30d37'20.32"N)
    Center      (  431137.000, 3391727.500) ( 87d43' 7.54"W, 30d39'22.51"N)
    Band 1 Block=512x512 Type=Byte, ColorInterp=Red
      Overviews: 3317x3782, 1658x1891, 829x945, 414x472
    Band 2 Block=512x512 Type=Byte, ColorInterp=Green
      Overviews: 3317x3782, 1658x1891, 829x945, 414x472
    Band 3 Block=512x512 Type=Byte, ColorInterp=Blue
      Overviews: 3317x3782, 1658x1891, 829x945, 414x472
    Band 4 Block=512x512 Type=Byte, ColorInterp=Undefined
      Overviews: 3317x3782, 1658x1891, 829x945, 414x472
    
  • Konvertieren von GeoTiff in PNG mithilfe von GDAL:

    from osgeo import gdal
    gdal.UseExceptions()
    access_key = TokenLibrary.getSecret('<key-vault-name>','<secret-name>')
    gdal.SetConfigOption('AZURE_STORAGE_ACCOUNT', '<storage_account_name>')
    gdal.SetConfigOption('AZURE_STORAGE_ACCESS_KEY', access_key)
    tiff_in = "/vsiadls/aoa/input/sample_image.tiff" #/vsiadls/<container_name>/path/to/image
    png_out = "/vsiadls/aoa/input/sample_image.png" #/vsiadls/<container_name>/path/to/image
    options = gdal.TranslateOptions(format='PNG')
    gdal.Translate(png_out, tiff_in, options=options)
    
  • Speichern Sie GeoTiff-Bilder in Azure Data Lake Storage.

    Aufgrund der Art und Weise, wie Daten in der Cloud gespeichert werden, und der Tatsache, dass die Dateihandler /vsiaz/ und /vsiadls/ nur sequenzielle Schreibvorgänge unterstützen, verwenden wir das Feature zum Einbinden von Dateien, das im mssparkutils-Paket verfügbar ist. Nachdem die Ausgabe an einen Speicherort zum Einbinden geschrieben wurde, kopieren Sie sie in Azure Data Lake Storage wie in dieser Beispieltransformation gezeigt:

    import shutil
    import sys
    from osgeo import gdal
    from notebookutils import mssparkutils
    
    mssparkutils.fs.mount(
        "abfss://<container_name>@<storage_account_name>.dfs.core.windows.net",
        "/<mount_path>",
        {"linkedService":"<linked_service_name>"}
    )
    
    access_key = TokenLibrary.getSecret('<key-vault-name>','<secret-name>')
    gdal.SetConfigOption('AZURE_STORAGE_ACCOUNT', '<storage_account_name>')
    gdal.SetConfigOption('AZURE_STORAGE_ACCESS_KEY', access_key)
    
    options = gdal.WarpOptions(options=['tr'], xRes=1000, yRes=1000)
    gdal.Warp('dst_img.tiff', '/vsiadls/<container_name>/path/to/src_img.tiff', options=options)
    
    jobId = mssparkutils.env.getJobId()
    
    shutil.copy("dst_img.tiff", f"/synfs/{jobId}/<mount_path>/path/to/dst_img.tiff")
    

    In Azure Synapse können Sie Azure Data Lake Storage als einen der verknüpften Dienste hinzufügen. Anweisungen finden Sie unter Verknüpfte Dienste.

Beispiellösung

Eine Implementierung dieser Architektur ist auf GitHub verfügbar.

Dieses Diagramm zeigt die Schritte in der Beispiellösung:

Diagramm, das die Schritte in der Beispiellösung zeigt.

Laden Sie eine Visio-Datei dieser Architektur herunter.

Hinweis

Die Daten werden aus Spaceborne-Datenquellen gepulled und in Azure Data Lake Storage kopiert. Die Datenerfassung ist nicht Teil der Referenzimplementierung.

  1. Eine Azure Synapse-Pipeline liest die Spaceborne-Daten aus Azure Data Lake Storage.
  2. Die Daten werden mit der GDAL-Bibliothek in einem Azure Synapse-Notebook verarbeitet.
  3. Die verarbeiteten Daten werden in Azure Data Lake Storage gespeichert.
  4. Die verarbeiteten Daten werden aus Azure Data Lake Storage gelesen und über eine benutzerdefinierte Aktivität in Azure Synapse an die Custom Vision KI-Modelle für die Objekterkennung übergeben. Die benutzerdefinierte Aktivität verwendet Azure Batch-Pools, um das Objekterkennungsmodell auszuführen.
  5. Das Objekterkennungsmodell gibt eine Liste der erkannten Objekte und Begrenzungsrahmen aus.
  6. Die erkannten Objekte werden in GeoJSON konvertiert und in Azure Data Lake Storage gespeichert.
  7. Die GeoJSON-Daten werden aus Azure Data Lake Storage gelesen und in einer PostgreSQL-Datenbank gespeichert.
  8. Die Daten werden aus der PostgreSQL-Datenbank gelesen. Sie können weiter in Tools wie ArcGIS Pro, QGIS und Power BI visualisiert werden.

Installieren von Geopaketen in einem Azure Synapse Spark-Pool

Sie müssen die Pakete in einem Azure Synapse Spark-Pool mithilfe des Paketverwaltungsfeatures installieren. Weitere Informationen finden Sie unter Azure Synapse – Paketverwaltung.

Um Workloads mit Spaceborne-Daten auf Azure Synapse zu unterstützen, benötigen Sie Bibliotheken wie GDAL, Rasterio und GeoPandas. Sie können diese Bibliotheken mithilfe einer YAML-Datei auf einem serverlosen Apache Spark-Pool installieren. Anaconda-Bibliotheken sind auf dem Spark-Pool vorinstalliert.

Voraussetzungen

Anweisungen

  1. Die folgenden Bibliotheken und Pakete sind in der Datei environment.yml verfügbar. Es wird empfohlen, diese Datei zu verwenden, um die Bibliotheken in den Spark-Pools zu installieren. Achten Sie beim Kopieren des folgenden Inhalts darauf, dass keine Tabulatorzeichen vorhanden sind, da YAML nur Leerzeichen als Einzug zulässt.

    name: aoi-env
    channels:
      - conda-forge
      - defaults
    dependencies:
      - azure-storage-file-datalake
      - gdal=3.3.0
      - libgdal
      - pip>=20.1.1
      - pyproj
      - shapely
      - pip:
        - rasterio
        - geopandas
    

    Hinweis

    GDAL verwendet das virtuelle Dateisystem /vsiadls/ für Azure Data Lake Storage.

  2. Navigieren Sie zu https://web.azuresynapse.net, und melden Sie sich bei Ihrem Arbeitsbereich an.

  3. Wählen Sie im Navigationsbereich Verwalten und anschließend Apache Spark-Pools.

  4. Wählen Sie Pakete, indem Sie auf die Ellipsenschaltfläche (...) im Spark-Pool klicken. Laden Sie die Datei environment.yml von der lokalen Festplatte aus hoch und wenden Sie die Paketeinstellungen an.

  5. Der Benachrichtigungsbereich des Portals verständigt Sie, sobald die Installation abgeschlossen ist. Sie können den Installationsfortschritt auch verfolgen, indem Sie die folgenden Schritte ausführen:

    1. Navigieren Sie auf der Registerkarte Überwachen zur Liste der Spark-Anwendungen.
    2. Wählen Sie den Link SystemReservedJob-LibraryManagement, der Ihrem Pool-Update entspricht.
    3. Zeigen Sie die Treiberprotokolle an.
  6. Führen Sie den folgenden Code aus, um zu überprüfen, ob die richtigen Versionen der Bibliotheken installiert sind. Die vorinstallierten Bibliotheken, die Conda installiert, werden ebenfalls aufgeführt.

    import pkg_resources
    for d in pkg_resources.working_set:
       print(d)
    

Weitere Informationen finden Sie unter Verwalten von Paketen.

Beitragende

Dieser Artikel wird von Microsoft aktualisiert und gepflegt. Er wurde ursprünglich von folgenden Mitwirkenden geschrieben:

Hauptautoren:

Zusätzliche Mitwirkende:

Nächste Schritte