Analiza danych spaceborne za pomocą usługi Azure Synapse Analytics

Azure Synapse Analytics
Azure AI services
Azure Computer Vision
Azure Batch
Azure Storage

Ta architektura została zaprojektowana tak, aby pokazać kompleksową implementację, która obejmuje wyodrębnianie, ładowanie, przekształcanie i analizowanie danych w przestrzeni przy użyciu bibliotek geoprzestrzennych i modeli sztucznej inteligencji z usługą Azure Synapse Analytics. W tym artykule pokazano również, jak zintegrować modele usług Azure Cognitive Services specyficzne dla danych geoprzestrzennych, modele sztucznej inteligencji od partnerów, przynieść własne dane i modele sztucznej inteligencji korzystające z usługi Azure Synapse Analytics. Docelowi odbiorcy tego dokumentu to użytkownicy z poziomami umiejętności pośrednich w pracy z danymi geoprzestrzennymi lub kosmicznymi.

Implementacja tej architektury jest dostępna w usłudze GitHub.

Apache®, Apache Spark, logo Spark, Apache Sedona, Apache Feather, logo apache feather i logo projektu Apache Marketplace są zastrzeżonymi znakami towarowymi lub znakami towarowymi platformy Apache Software Foundation w Stany Zjednoczone i/lub innych krajach. Użycie tych znaków nie jest dorozumiane przez fundację Apache Software Foundation.

Architektura

Diagram przedstawiający rozwiązanie analizy przetwarzania geoprzestrzennych.

Pobierz plik programu Visio z tą architekturą.

Przepływ danych

W poniższych sekcjach opisano etapy architektury.

Wprowadzanie danych

Dane spaceborne są pobierane ze źródeł danych, takich jak Airbus, NAIP/USDA (za pośrednictwem interfejsu API komputerów planetarnych) i Maxar. Dane są pozyskiwane do Azure Data Lake Storage.

usługa Azure Synapse Analytics udostępnia różne potoki i działania, takie jak działania internetowe, działania Przepływ danych i działania niestandardowe, w celu nawiązania połączenia z tymi źródłami i skopiowania danych do Data Lake Storage.

Azure Synapse niestandardowe działania uruchamiają dostosowaną logikę kodu w puli Azure Batch maszyn wirtualnych lub w kontenerach zgodnych z platformą Docker.

Przekształcenia danych

Dane są przetwarzane i przekształcane w format, z którego mogą korzystać analitycy i modele sztucznej inteligencji. Biblioteki geoprzestrzenne, w tym GDAL, OGR, Rasterio i GeoPandas, są dostępne do wykonania transformacji.

Azure Synapse pule platformy Spark umożliwiają konfigurowanie tych bibliotek i używanie ich do wykonywania przekształceń danych. Można również użyć Azure Synapse działań niestandardowych, które używają pul Azure Batch.

Notes Azure Synapse to interfejs internetowy, którego można użyć do tworzenia plików zawierających kod na żywo, wizualizacje i tekst narracji. Notesy to dobre miejsce do weryfikowania pomysłów, definiowania przekształceń i wykonywania szybkich eksperymentów w celu uzyskania szczegółowych informacji z danych i utworzenia potoku. W przykładowym kodzie biblioteka GDAL jest używana w puli Spark do wykonywania przekształceń danych. Aby uzyskać więcej informacji, zobacz sekcję przykładowego kodu w tym artykule.

Przykładowe rozwiązanie implementuje ten potok z tego kroku przekształcania danych. Przykład został napisany przy założeniu, że dane są kopiowane w Data Lake Storage przez opisane wcześniej metody pozyskiwania danych. Przedstawia on implementację tego potoku na potrzeby przetwarzania danych rasterowych.

Analiza i wykonywanie modeli sztucznej inteligencji

Środowisko notesu Azure Synapse analizuje i uruchamia modele AI.

Modele sztucznej inteligencji opracowane z usługami takimi jak model Custom Vision usług Cognitive Services, wytrenowane we własnym środowisku i spakowane jako kontenery platformy Docker są dostępne w środowisku Azure Synapse.

W środowisku Azure Synapse można również uruchamiać modele sztucznej inteligencji, które są dostępne od partnerów w celu uzyskania różnych funkcji, takich jak wykrywanie obiektów, wykrywanie zmian i klasyfikacja gruntów. Te modele są trenowane we własnym środowisku i pakowane jako kontenery platformy Docker.

Azure Synapse można uruchamiać takie modele AI za pośrednictwem działania niestandardowego, które uruchamia kod w pulach usługi Batch jako pliki wykonywalne lub kontenery platformy Docker. W przykładowym rozwiązaniu pokazano, jak uruchomić model AI Custom Vision w ramach potoku Azure Synapse na potrzeby wykrywania obiektów w określonym obszarze geoprzestrzennym.

Po analizie i wizualizacji

  • W celu dalszej analizy i wizualizacji dane wyjściowe z analizy i wykonywania modeli sztucznej inteligencji można przechowywać w Data Lake Storage, bazach danych obsługujących dane, takich jak Azure Database for PostgreSQL lub Azure Cosmos DB. Przykładowe rozwiązanie pokazuje, jak przekształcić dane wyjściowe modelu AI i zapisać je jako dane GeoJSON w Data Lake Storage i Azure Database for PostgreSQL. Możesz pobrać dane wyjściowe z tego obszaru i wysłać do niej zapytanie.
  • Wizualizacja:
    • Możesz użyć licencjonowanych narzędzi, takich jak ArcGIS Desktop lub narzędzi typu open source, takich jak QGIS.
    • Usługa Power BI umożliwia uzyskiwanie dostępu do danych GeoJSON z różnych źródeł danych i wizualizowanie danych systemu informacji geograficznych (GIS).
    • Do wizualizacji danych w aplikacjach internetowych można użyć bibliotek opartych na języku JavaScript po stronie klienta.

Składniki

Źródła danych

Wprowadzanie danych

  • Azure Synapse Analytics to nieograniczona usługa analityczna, która łączy integrację danych, magazynowanie danych przedsiębiorstwa i analizę danych big data. Azure Synapse zawiera ten sam aparat Integracja danych i środowiska co Azure Data Factory, dzięki czemu można tworzyć potoki ETL na dużą skalę bez opuszczania Azure Synapse.
  • Azure Data Lake Storage jest przeznaczona do analizy danych big data i jest oparta na Azure Blob Storage.
  • Azure Batch umożliwia uruchamianie i skalowanie dużej liczby zadań przetwarzania wsadowego na platformie Azure. Zadania podrzędne usługi Batch mogą być uruchamiane bezpośrednio na maszynach wirtualnych (węzłach) w puli usługi Batch, ale można również skonfigurować pulę usługi Batch do uruchamiania zadań w kontenerach zgodnych z platformą Docker w węzłach .
    • Działanie niestandardowe Azure Synapse uruchamia dostosowaną logikę kodu w puli Azure Batch maszyn wirtualnych lub w kontenerach platformy Docker.
  • Usługa Azure Key Vault przechowuje i kontroluje dostęp do wpisów tajnych, takich jak tokeny, hasła i klucze interfejsu API. Key Vault również tworzy i kontroluje klucze szyfrowania oraz zarządza certyfikatami zabezpieczeń.

Przekształcenia danych

Następujące biblioteki i pakiety geoprzestrzenne są używane razem do przekształceń. Te biblioteki i pakiety są instalowane w bezserwerowej puli Spark, która jest następnie dołączona do notesu Azure Synapse. Aby uzyskać informacje na temat instalowania bibliotek, zobacz Instalowanie pakietów geoprzestrzennych w puli platformy Spark Azure Synapse w dalszej części tego artykułu.

  • Biblioteki geoprzestrzenne
    • GDAL to biblioteka narzędzi do manipulowania danymi kosmicznym. Biblioteka GDAL działa na typach danych rastrowych i wektorowych. Jest to dobre narzędzie dowiedzieć się, czy pracujesz z danymi kosmicznymi.
    • Rasterio to moduł do przetwarzania rasterów. Służy do odczytywania i pisania kilku różnych formatów rasterów w języku Python. Rasterio opiera się na GDAL. Po zaimportowaniu modułu język Python automatycznie rejestruje wszystkie znane sterowniki GDAL do odczytywania obsługiwanych formatów.
    • GeoPandas to projekt typu open source, który ułatwia pracę z danymi spaceborne w języku Python. GeoPandas rozszerza typy danych używane przez bibliotekę Pandas, aby umożliwić operacje przestrzenne na typach geometrycznych.
    • Shapely to pakiet języka Python do analizy zestawów i manipulowania funkcjami planar. Używa on funkcji (za pośrednictwem modułu ctypes języka Python) z szeroko wdrożonej biblioteki GEOS.
    • Pyproj wykonuje przekształcenia kartograficzne. Konwertuje się z długości geograficznej i szerokości geograficznej na natywną projekcję mapy x, współrzędne y i na odwrót przy użyciu narzędzia PROJ.
  • Azure Batch umożliwia uruchamianie i skalowanie dużej liczby zadań przetwarzania wsadowego na platformie Azure.
  • Azure Synapse notesy to interfejs internetowy do tworzenia plików zawierających kod na żywo, wizualizacje i tekst narracji. Istniejące notesy Azure Synapse można dodać do potoku Azure Synapse przy użyciu działania Notes.
  • Pula platformy Apache Spark umożliwia konfigurowanie i używanie bibliotek do wykonywania przekształceń danych. Istniejące zadania platformy Spark można dodać do potoku Azure Synapse przy użyciu działania Definicji zadania platformy Spark.

Modelowanie analizy i sztucznej inteligencji

  • Azure Synapse zapewnia możliwości uczenia maszynowego.
  • Azure Batch umożliwia uruchamianie i skalowanie dużej liczby zadań przetwarzania wsadowego na platformie Azure. W tym rozwiązaniu działanie niestandardowe Azure Synapse służy do uruchamiania modeli sztucznej inteligencji opartych na platformie Docker w pulach Azure Batch.
  • Usługi Azure Cognitive Services umożliwiają osadzanie wizji w aplikacjach. Możesz użyć Custom Vision, składnika usług Cognitive Services, aby dostosować i osadzić najnowocześniejsze analizy obrazów obrazów obrazów dla określonych domen.
  • Możesz również użyć własnych modeli sztucznej inteligencji i modeli sztucznej inteligencji partnerów firmy Microsoft, takich jak blackshark.ai.

Łącza po analizie i wizualizacji

  • Azure Database for PostgreSQL to w pełni zarządzana usługa relacyjnej bazy danych przeznaczona dla obciążeń hiperskala. Obsługuje dane spaceborne za pośrednictwem rozszerzenia PostGIS .
  • Usługa Azure Cosmos DB obsługuje indeksowanie i wykonywanie zapytań dotyczących danych punktów geoprzestrzennych reprezentowanych w formacie GeoJSON.
  • Usługa Power BI to interaktywne narzędzie do wizualizacji danych do tworzenia raportów i pulpitów nawigacyjnych. Szczegółowe informacje na temat danych z kosmosu można uzyskać z mapy ArcGIS firmy Esri.
  • QGIS to bezpłatna platforma GIS typu open source do tworzenia, edytowania, wizualizowania, analizowania i publikowania informacji geoprzestrzennych.
  • Produkt ArcGIS Desktop jest licencjonowany przez firmę Esri. Służy do tworzenia, analizowania i udostępniania informacji geograficznych oraz zarządzania nimi.

Alternatywy

Jeśli chcesz uruchomić konteneryzowane modele sztucznej inteligencji, które można wywołać z Azure Synapse, możesz użyć Azure Kubernetes Service, Azure Container Instances lub Azure Container Apps.

Usługa Azure Databricks stanowi alternatywę dla hostowania potoku analizy.

Platforma Spark w usłudze Azure HDInsight udostępnia alternatywę dla używania bibliotek geoprzestrzennych w środowisku platformy Apache Spark.

Poniżej przedstawiono kilka alternatywnych bibliotek i struktur, których można użyć do przetwarzania danych w środowisku kosmicznym:

  • Apache Sedona, wcześniej o nazwie GeoSpark, to system obliczeniowy klastra do przetwarzania danych przestrzennych na dużą skalę. Usługa Sedona rozszerza platformę Spark i usługę Spark SQL za pomocą wbudowanych rozproszonych zestawów danych przestrzennych i usługi SpatialSQL, które efektywnie ładują, przetwarzają i analizują dane przestrzenne na dużą skalę między maszynami.
  • Dask for Python to biblioteka przetwarzania równoległego, która skaluje istniejący ekosystem języka Python.

Szczegóły scenariusza

Zbieranie danych spaceborne jest coraz częściej spotykane. W przypadku stosowania sztucznej inteligencji przechowywane archiwa danych są niezbędne do uczenia maszynowego. Potrzeba utworzenia opartego na chmurze rozwiązania do analizy danych kosmicznych stała się ważniejsza, aby umożliwić przedsiębiorstwom i rządom podejmowanie lepszych decyzji biznesowych i taktycznych.

Potencjalne przypadki użycia

To rozwiązanie jest idealne dla przemysłu lotniczego i lotniczego. Dotyczy to następujących scenariuszy:

  • Pozyskiwanie i przetwarzanie danych rasterowych
  • Wykrywanie obiektów za pomocą wstępnie wytrenowanych modeli sztucznej inteligencji
  • Klasyfikacja mas lądowych za pośrednictwem modeli sztucznej inteligencji
  • Monitorowanie zmian w środowisku za pośrednictwem modeli sztucznej inteligencji
  • Pochodne zestawy danych z wstępnie przetworzonych zestawów obrazów
  • Wizualizacja wektorowa / zużycie małych obszarów
  • Filtrowanie danych wektorowych i sprzężenia między danymi

Zagadnienia do rozważenia

Te zagadnienia implementują filary platformy Azure Well-Architected Framework, która jest zestawem podstawowych zestawów, które mogą służyć do poprawy jakości obciążenia. Aby uzyskać więcej informacji, zobacz Microsoft Azure Well-Architected Framework.

Efektywność operacyjna

Jeśli współpracujesz przy użyciu narzędzia Git do kontroli źródła, możesz użyć Synapse Studio do skojarzenia obszaru roboczego z repozytorium Git, usługą Azure DevOps lub usługą GitHub. Aby uzyskać więcej informacji, zobacz Kontrola źródła w Synapse Studio.

  • W obszarze roboczym Azure Synapse ciągła integracja/ciągłe wdrażanie przenosi wszystkie jednostki z jednego środowiska (programowanie, testowanie, produkcja) do innego środowiska.
  • Potoki wydania usługi Azure DevOps i GitHub Actions można użyć do zautomatyzowania wdrażania obszaru roboczego Azure Synapse w wielu środowiskach.

Wydajność

  • Azure Synapse obsługuje platformę Apache Spark 3.1.2, która jest bardziej wydajna niż jej poprzednicy.
  • Aby uzyskać informacje na temat skalowania puli platformy Spark i rozmiarów węzłów, zobacz Pule platformy Spark w usłudze Azure Synapse Analytics.
  • Za pomocą Azure Batch można wewnętrznie skalować w poziomie równoległe przekształcenia przesłane w Azure Synapse działanie niestandardowe. Azure Batch obsługuje wyspecjalizowane rozmiary maszyn wirtualnych zoptymalizowanych pod kątem procesora GPU, których można użyć do uruchamiania modeli sztucznej inteligencji.

Niezawodność

Niezawodność zapewnia, że aplikacja może spełnić zobowiązania podjęte przez klientów. Aby uzyskać więcej informacji, zobacz Omówienie filaru niezawodności.

Aby uzyskać informacje o umowie SLA, zobacz Azure Synapse sla.

Zabezpieczenia

Zabezpieczenia zapewniają ochronę przed celowymi atakami i nadużyciami cennych danych i systemów. Aby uzyskać więcej informacji, zobacz Omówienie filaru zabezpieczeń.

Zapoznaj się z następującymi artykułami, aby zapoznać się z najlepszymi rozwiązaniami dotyczącymi zabezpieczeń:

Optymalizacja kosztów

Optymalizacja kosztów dotyczy sposobów zmniejszenia niepotrzebnych wydatków i poprawy wydajności operacyjnej. Aby uzyskać więcej informacji, zobacz Omówienie filaru optymalizacji kosztów.

Te zasoby zawierają informacje o cenach i optymalizacji kosztów:

Uwaga

Aby uzyskać informacje o cenach i postanowieniach licencyjnych dotyczących modeli sztucznej inteligencji partnerów, zobacz dokumentację partnera.

Wdrażanie tego scenariusza

Dostępne jest wdrożenie przykładowego rozwiązania Bicep . Aby rozpocząć pracę z tym wdrożeniem, zobacz te instrukcje.

Diagram przedstawiający architekturę wdrożonego przykładowego rozwiązania.

Pobierz plik programu Visio z tą architekturą.

Ograniczenia

Ta architektura przedstawia kompleksowe rozwiązanie do przetwarzania geograficznego i analizy, które korzysta z Azure Synapse. Ta przykładowa implementacja jest przeznaczona dla małego do średniego obszaru zainteresowania i ograniczonego współbieżnego przetwarzania danych rastrowych.

Przykładowy kod

W poniższych instrukcjach opisano sposób odczytywania, zapisywania i stosowania przekształceń do danych rasterowych przechowywanych w Azure Data Lake Storage przy użyciu notesu usługi Synapse. Celem jest bardziej zademonstrowanie użycia bibliotek w notesach usługi Synapse niż pokazanie przekształcenia.

Wymagania wstępne

Instrukcje

  • Drukuj informacje z danych rasterowych:

    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)
    

    Uwaga

    /vsiadls/to program obsługi systemu plików, który umożliwia losowe odczytywanie głównie plików innych niż publiczne, które są dostępne w systemach plików Azure Data Lake Storage. Wcześniejsze pobranie całego pliku nie jest wymagane. /vsiadls/ jest podobny do /vsiaz/. Używa ona tych samych opcji konfiguracji do uwierzytelniania. W przeciwieństwie do /vsiaz/programu /vsiadls/ zapewnia rzeczywiste zarządzanie katalogami i obsługę listy ACL w stylu unix. W przypadku niektórych funkcji obsługa hierarchiczna musi być włączona w usłudze Azure Storage. Aby uzyskać więcej informacji, zobacz dokumentację/vsiadls/.

    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
    
  • Przekonwertuj geoTiff na PNG przy użyciu biblioteki 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)
    
  • Przechowuj obrazy GeoTiff w Azure Data Lake Storage.

    Ze względu na sposób przechowywania danych w chmurze oraz fakt, że programy /vsiaz/ obsługi plików i /vsiadls/ obsługują tylko sekwencyjne zapisy, używamy funkcji instalacji plików dostępnej w pakiecie mssparkutils. Po zapisaniu danych wyjściowych do lokalizacji instalacji skopiuj je do Azure Data Lake Storage, jak pokazano w tym przykładowym przekształceniu:

    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")
    

    W Azure Synapse można dodać Azure Data Lake Storage jako jedną z połączonych usług. Aby uzyskać instrukcje, zobacz Połączone usługi.

Przykładowe rozwiązanie

Implementacja tej architektury jest dostępna w usłudze GitHub.

Na tym diagramie przedstawiono kroki opisane w przykładowym rozwiązaniu:

Diagram przedstawiający kroki opisane w przykładowym rozwiązaniu.

Pobierz plik programu Visio z tą architekturą.

Uwaga

Dane są pobierane ze źródeł danych z przestrzeni i kopiowane do Azure Data Lake Storage. Pozyskiwanie danych nie jest częścią implementacji referencyjnej.

  1. Potok Azure Synapse odczytuje dane spaceborne z Azure Data Lake Storage.
  2. Dane są przetwarzane za pomocą biblioteki GDAL w notesie Azure Synapse.
  3. Przetworzone dane są przechowywane w Azure Data Lake Storage.
  4. Przetworzone dane są odczytywane z Azure Data Lake Storage i przekazywane do modeli wykrywania obiektów Custom Vision AI za pomocą działania niestandardowego Azure Synapse. Działanie niestandardowe używa Azure Batch pul do uruchamiania modelu wykrywania obiektów.
  5. Model wykrywania obiektów generuje listę wykrytych obiektów i pól ograniczenia.
  6. Wykryte obiekty są konwertowane na dane GeoJSON i przechowywane w Azure Data Lake Storage.
  7. Dane GeoJSON są odczytywane z Azure Data Lake Storage i przechowywane w bazie danych PostgreSQL.
  8. Dane są odczytywane z bazy danych PostgreSQL. Można go dodatkowo wizualizować w narzędziach, takich jak ArcGIS Pro, QGIS i Power BI.

Instalowanie pakietów geoprzestrzennych w puli platformy Spark Azure Synapse

Pakiety należy zainstalować w puli platformy Azure Synapse Spark przy użyciu funkcji zarządzania pakietami. Aby uzyskać więcej informacji, zobacz zarządzanie pakietami Azure Synapse.

Aby obsługiwać obciążenia danych przestrzeni kosmicznej w Azure Synapse, potrzebne są biblioteki, takie jak GDAL, Rasterio i GeoPandas. Te biblioteki można zainstalować w bezserwerowej puli platformy Apache Spark przy użyciu pliku YAML. Biblioteki Anaconda są wstępnie zainstalowane w puli platformy Spark.

Wymagania wstępne

Instrukcje

  1. Następujące biblioteki i pakiety są dostępne w pliku environment.yml . Zalecamy użycie tego pliku do zainstalowania bibliotek w pulach platformy Spark. Jeśli skopiujesz poniższą zawartość, upewnij się, że nie ma kart, ponieważ kod YAML zezwala tylko na spacje jako wcięcie.

    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
    

    Uwaga

    Biblioteka GDAL używa wirtualnego systemu /vsiadls/ plików do Azure Data Lake Storage. Ta funkcja jest dostępna od biblioteki GDAL w wersji 3.3.0. Pamiętaj, aby używać wersji 3.3.0 lub nowszej.

  2. Przejdź do https://web.azuresynapse.net obszaru roboczego i zaloguj się do obszaru roboczego.

  3. Wybierz pozycję Zarządzaj w okienku nawigacji, a następnie wybierz pozycję Pule platformy Apache Spark.

  4. Wybierz pozycję Pakiety , wybierając przycisk wielokropka (...) w puli spark. Przekaż plik environment.yml z pliku local i zastosuj ustawienia pakietu.

  5. Sekcja powiadomień w portalu powiadamia o zakończeniu instalacji. Możesz również śledzić postęp instalacji, wykonując następujące kroki:

    1. Przejdź do listy Aplikacji platformy Spark na karcie Monitorowanie .
    2. Wybierz link SystemReservedJob-LibraryManagement odpowiadający aktualizacji puli.
    3. Wyświetl dzienniki sterowników.
  6. Uruchom następujący kod, aby sprawdzić, czy zainstalowano poprawne wersje bibliotek. Zostaną również wyświetlone wstępnie zainstalowane biblioteki instalowane przez środowisko Conda.

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

Aby uzyskać więcej informacji, zobacz Zarządzanie pakietami.

Współautorzy

Ten artykuł jest aktualizowany i obsługiwany przez firmę Microsoft. Został pierwotnie napisany przez następujących współautorów.

Autorzy zabezpieczeń:

Dodatkowi współautorzy:

Następne kroki