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
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
- Bildanbieter.
- Verwenden eigener Daten Kopieren von eigenen Daten in Data Lake Storage.
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:
- Azure Synapse Analytics-Sicherheit: Einführung
- Azure Synapse Analytics-Sicherheit: Datenschutz
- Azure Synapse Analytics-Sicherheit: Zugriffssteuerung
- Azure Synapse Analytics-Sicherheit: Authentifizierung
- Azure Synapse Analytics: Netzwerksicherheit
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:
- Planen und Verwalten von Kosten für Azure Synapse
- Azure Synapse im Azure-Preisrechner
- Apache Spark-Pool in Azure Synapse
- Knoten und Pools in Azure Batch
- Azure Batch im Azure-Preisrechner
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.
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
- Installieren Sie die Geobibliotheken.
- Erstellen Sie einen Azure-Schlüsseltresor, um Geheimnisse zu speichern. In diesem Szenario speichern wir den Zugriffsschlüssel des Speicherkontos im Schlüsseltresor. Anweisungen finden Sie unter Anmeldeinformationen in Azure Key Vault speichern.
- Erstellen Sie einen verknüpften Dienst für Azure Key Vault mithilfe von Azure Synapse.
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:
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.
- Eine Azure Synapse-Pipeline liest die Spaceborne-Daten aus Azure Data Lake Storage.
- Die Daten werden mit der GDAL-Bibliothek in einem Azure Synapse-Notebook verarbeitet.
- Die verarbeiteten Daten werden in Azure Data Lake Storage gespeichert.
- 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.
- Das Objekterkennungsmodell gibt eine Liste der erkannten Objekte und Begrenzungsrahmen aus.
- Die erkannten Objekte werden in GeoJSON konvertiert und in Azure Data Lake Storage gespeichert.
- Die GeoJSON-Daten werden aus Azure Data Lake Storage gelesen und in einer PostgreSQL-Datenbank gespeichert.
- 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
- Erstellen Sie einen Azure Synapse-Arbeitsbereich.
- Erstellen Sie den Spark-Pool in Azure Synapse Studio.
Anweisungen
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.Navigieren Sie zu https://web.azuresynapse.net, und melden Sie sich bei Ihrem Arbeitsbereich an.
Wählen Sie im Navigationsbereich Verwalten und anschließend Apache Spark-Pools.
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.
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:
- Navigieren Sie auf der Registerkarte Überwachen zur Liste der Spark-Anwendungen.
- Wählen Sie den Link SystemReservedJob-LibraryManagement, der Ihrem Pool-Update entspricht.
- Zeigen Sie die Treiberprotokolle an.
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:
- Kungumaraj Nachimuthu | Senior Software Engineer
- Karthick Narendran | Senior Software Engineer
Zusätzliche Mitwirkende:
- Mick Alberts | Technical Writer
- Taylor Corbett | Senior Data Scientist
- Tushar Dhadiwal | Senior Software Engineer
- Mandar Inamdar | Principal Engineering Manager
- Sushil Kumar | Senior Software Engineer
- Nikhil Manchanda | Principal Engineering Manager
- Safiyah Sadiq | Software Engineer II
- Xiaoyuan Yang | Principal Data Science Manager
- Tai Yee | Senior Program Manager
Nächste Schritte
- Abrufen von Geoerkenntnissen aus Big Data mithilfe von SynapseML
- Erste Schritte mit Azure Synapse Analytics
- Einstieg in Azure Synapse Studio
- Erstellen und Nutzen von Cognitive Services