Azure Synapse Analytics ile uzaydaki veri analizi

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

Bu mimari, Azure Synapse Analytics ile jeo-uzamsal kitaplıkları ve yapay zeka modellerini kullanarak uzaydaki verileri ayıklamayı, yüklemeyi, dönüştürmeyi ve analiz etmeyi içeren uçtan uca bir uygulamayı göstermek için tasarlanmıştır. Bu makalede ayrıca jeo-uzamsal olarak belirli Azure Bilişsel Hizmetler modellerini, iş ortaklarından yapay zeka modellerini, kendi verilerinizi getirmeyi ve Azure Synapse Analytics kullanan yapay zeka modellerini tümleştirme adımları gösterilmektedir. Bu belgenin hedef kitlesi, jeo-uzamsal veya uzaysal verilerle çalışma konusunda ara beceri düzeylerine sahip kullanıcılardır.

Bu mimarinin bir uygulaması GitHub'da kullanılabilir.

Apache®, Apache Spark, Spark, Spark logosu, Apache Sedona, Apache Incubator, Apache feather logosu ve Apache Incubator proje logosu, Apache Software Foundation'ın Birleşik Devletler ve/veya diğer ülkelerdeki kayıtlı ticari markaları veya ticari markalarıdır. Bu işaretlerin kullanılması Apache Software Foundation tarafından onaylanmamaktadır.

Mimari

Jeo-uzamsal işleme analizi çözümünü gösteren diyagram.

Bu mimarinin bir Visio dosyasını indirin.

Veri akışı

Aşağıdaki bölümlerde mimarideki aşamalar açıklanmaktadır.

Veri alımı

Uzaydaki veriler Airbus, NAIP/USDA (Gezegen Bilgisayarı API'si aracılığıyla) ve Maxar gibi veri kaynaklarından çekilir. Veriler Azure Data Lake Storage'a aktarılır.

Azure Synapse Analytics, bu kaynaklara bağlanmak ve verileri Data Lake Storage kopyalamak için Web etkinliği, Veri Akışı etkinliği ve Özel etkinlikler gibi çeşitli işlem hatları ve etkinlikler sağlar.

Azure Synapse Özel etkinlikler, özelleştirilmiş kod mantığınızı Azure Batch bir sanal makine havuzunda veya Docker uyumlu kapsayıcılarda çalıştırır.

Veri dönüştürme

Veriler işlenir ve analistlerin ve yapay zeka modellerinin kullanabileceği bir biçime dönüştürülür. GDAL, OGR, Rasterio ve GeoPandas gibi jeo-uzamsal kitaplıklar dönüşümü gerçekleştirmek için kullanılabilir.

Azure Synapse Spark havuzları, veri dönüşümlerini gerçekleştirmek için bu kitaplıkları yapılandırma ve kullanma olanağı sağlar. Azure Batch havuzları kullanan Azure Synapse Özel etkinlikleri de kullanabilirsiniz.

Azure Synapse not defteri, canlı kod, görselleştirmeler ve anlatı metni içeren dosyalar oluşturmak için kullanabileceğiniz bir web arabirimidir. Not defterleri fikirleri doğrulamak, dönüşümleri tanımlamak ve verilerinizden içgörüler elde etmek ve bir işlem hattı oluşturmak için hızlı denemeler yapmak için iyi bir yerdir. Örnek kodda GDAL kitaplığı bir Spark havuzunda veri dönüştürmeleri gerçekleştirmek için kullanılır. Daha fazla bilgi için bu makalenin örnek kod bölümüne bakın.

Örnek çözüm, bu veri dönüştürme adımından bu işlem hattını uygular. Örnek, verilerin daha önce açıklanan veri alımı yöntemleri tarafından Data Lake Storage kopyalandığı varsayımıyla yazılır. Bu işlem hattının raster veri işleme için uygulanmasını gösterir.

Yapay zeka modellerinin analizi ve yürütülmesi

Azure Synapse not defteri ortamı yapay zeka modellerini analiz eder ve çalıştırır.

Bilişsel Hizmetler Özel Görüntü İşleme modeli gibi hizmetlerle geliştirilen, kendi ortamlarında eğitilen ve Docker kapsayıcıları olarak paketlenen yapay zeka modelleri Azure Synapse ortamında kullanılabilir.

Azure Synapse ortamında, nesne algılama, değişiklik algılama ve arazi sınıflandırması gibi çeşitli özellikler için iş ortaklarının sunduğu yapay zeka modellerini de çalıştırabilirsiniz. Bu modeller kendi ortamlarında eğitilir ve Docker kapsayıcıları olarak paketlenir.

Azure Synapse batch havuzlarında kodu yürütülebilir dosya veya Docker kapsayıcıları olarak çalıştıran bir Özel etkinlik aracılığıyla bu tür yapay zeka modellerini çalıştırabilir. Örnek çözüm, belirli bir jeo-uzamsal alan üzerinde nesne algılamaya yönelik bir Azure Synapse işlem hattının parçası olarak Özel Görüntü İşleme yapay zeka modelini çalıştırmayı gösterir.

Analiz sonrası ve görselleştirme

  • Daha fazla analiz ve görselleştirme için yapay zeka modellerinin analizinden ve yürütülmesinden elde edilecek çıkış Data Lake Storage, PostgreSQL için Azure Veritabanı veya Azure Cosmos DB gibi veri kullanan veritabanlarında depolanabilir. Örnek çözüm, yapay zeka modeli çıkışını dönüştürmeyi ve Data Lake Storage ve PostgreSQL için Azure Veritabanı GeoJSON verileri olarak depolamayı gösterir. Buradan çıkışı alabilir ve sorgulayabilirsiniz.
  • Görselleştirme için:
    • ArcGIS Desktop gibi lisanslı araçları veya QGIS gibi açık kaynak araçları kullanabilirsiniz.
    • Power BI'ı kullanarak çeşitli veri kaynaklarından GeoJSON'a erişebilir ve coğrafi bilgi sistemi (GIS) verilerini görselleştirebilirsiniz.
    • Web uygulamalarında verileri görselleştirmek için istemci tarafı jeo-uzamsal JavaScript tabanlı kitaplıkları kullanabilirsiniz.

Bileşenler

Veri kaynakları

Veri alımı

  • Azure Synapse Analytics, veri tümleştirmesi, kurumsal veri ambarı ve büyük veri analizini bir araya getiren sınırsız bir analiz hizmetidir. Azure Synapse, Azure Data Factory ile aynı Veri Entegrasyonu altyapısını ve deneyimlerini içerdiğinden, Azure Synapse çıkmadan ölçekli ETL işlem hatları oluşturabilirsiniz.
  • Azure Data Lake Storage, büyük veri analizine ayrılmıştır ve Azure Blob Depolama üzerine kurulmuştur.
  • Azure Batch, Azure'da çok sayıda toplu işlem işini çalıştırmanıza ve ölçeklendirmenize olanak tanır. Batch görevleri doğrudan bir Batch havuzundaki sanal makinelerde (düğümler) çalıştırılabilir, ancak düğümlerdeki Docker uyumlu kapsayıcılarda görevleri çalıştırmak için bir Batch havuzu da ayarlayabilirsiniz.
    • Azure Synapse Özel etkinliği, Azure Batch sanal makine havuzunda veya Docker kapsayıcılarında özelleştirilmiş kod mantığı çalıştırır.
  • Azure Key Vault belirteçler, parolalar ve API anahtarları gibi gizli dizilere erişimi depolar ve denetler. Key Vault ayrıca şifreleme anahtarlarını oluşturur ve denetler ve güvenlik sertifikalarını yönetir.

Veri dönüştürme

Dönüştürmeler için aşağıdaki jeo-uzamsal kitaplıklar ve paketler birlikte kullanılır. Bu kitaplıklar ve paketler sunucusuz spark havuzuna yüklenir ve bu havuz daha sonra bir Azure Synapse not defterine eklenir. Kitaplıkları yükleme hakkında bilgi için bu makalenin devamında yer alan Azure Synapse Spark havuzuna jeo-uzamsal paketleri yükleme bölümüne bakın.

  • Jeo-uzamsal kitaplıklar
    • GDAL , uzaydaki verileri işlemeye yönelik araçlardan oluşan bir kitaplıktır. GDAL, tarama ve vektör veri türleri üzerinde çalışır. Uzaydaki verilerle çalışıp çalışmadığınızı bilmek iyi bir araçtır.
    • Rasterio , raster işlemeye yönelik bir modüldür. Python'da birkaç farklı tarama biçimi okumak ve yazmak için bunu kullanabilirsiniz. Rasterio, GDAL'i temel alır. Modül içeri aktarıldığında Python, desteklenen biçimleri okumak için bilinen tüm GDAL sürücülerini otomatik olarak kaydeder.
    • GeoPandas , Python'da uzaydaki verilerle çalışmayı kolaylaştırabilen açık kaynaklı bir projedir. GeoPandas, geometrik türlerde uzamsal işlemlere olanak sağlamak için Pandas tarafından kullanılan veri türlerini genişletir.
    • Shapely , planlı özelliklerin set teoretik analizi ve manipülasyonu için bir Python paketidir. Yaygın olarak dağıtılan GEOS kitaplığından (Python'ın ctypes modülü aracılığıyla) işlevlerini kullanır.
    • pyproj kartografik dönüşümler gerçekleştirir. PROJ kullanarak boylam ve enlem'den yerel harita projeksiyonu x, y koordinatlarına ve tersine dönüştürür.
  • Azure Batch, Azure'da çok sayıda toplu işlem işini çalıştırmanıza ve ölçeklendirmenize olanak tanır.
  • Azure Synapse not defterleri canlı kod, görselleştirmeler ve anlatı metni içeren dosyalar oluşturmaya yönelik bir web arabirimidir. Not Defteri etkinliğini kullanarak mevcut Azure Synapse not defterlerini bir Azure Synapse işlem hattına ekleyebilirsiniz.
  • Apache Spark havuzu , veri dönüştürmeleri gerçekleştirmek için kitaplıkları yapılandırma ve kullanma olanağı sağlar. Spark İş Tanımı etkinliğini kullanarak mevcut Spark işlerini bir Azure Synapse işlem hattına ekleyebilirsiniz.

Analiz ve yapay zeka modellemesi

  • Azure Synapse makine öğrenmesi özellikleri sağlar.
  • Azure Batch, Azure'da çok sayıda toplu işlem işini çalıştırmanıza ve ölçeklendirmenize olanak tanır. Bu çözümde Azure Synapse Özel etkinliği, Azure Batch havuzlarında Docker tabanlı yapay zeka modellerini çalıştırmak için kullanılır.
  • Azure Bilişsel Hizmetler , uygulamalarınıza görüntü işleme ekleme olanağı sağlar. Bilişsel Hizmetler'in bir bileşeni olan Özel Görüntü İşleme kullanarak, belirli etki alanları için en yeni görüntü işleme görüntü analizini özelleştirebilir ve ekleyebilirsiniz.
  • Ayrıca kendi yapay zekanızı getirin modellerini ve blackshark.ai gibi Microsoft iş ortağı yapay zeka modellerini de kullanabilirsiniz.

Analiz sonrası ve görselleştirme bağlantıları

  • PostgreSQL için Azure Veritabanı, hiper ölçek iş yükleri için tasarlanmış, tam olarak yönetilen bir ilişkisel veritabanı hizmetidir. PostGIS uzantısı aracılığıyla uzaya yayılan verileri destekler.
  • Azure Cosmos DB , GeoJSON'da temsil edilen jeo-uzamsal nokta verilerinin dizine alınmasını ve sorgulanmasını destekler.
  • Power BI , rapor ve pano oluşturmaya yönelik etkileşimli bir veri görselleştirme aracıdır. Esri ArcGIS Haritalar'dan uzaydaki veriler hakkında içgörüler edinebilirsiniz.
  • QGIS , jeo-uzamsal bilgileri oluşturmak, düzenlemek, görselleştirmek, analiz etmek ve yayımlamak için ücretsiz bir açık kaynak GIS'tir.
  • ArcGIS Desktop , Esri tarafından sağlanan lisanslı bir üründür. Coğrafi bilgileri oluşturmak, analiz etmek, yönetmek ve paylaşmak için kullanabilirsiniz.

Alternatifler

Azure Synapse'den çağırabileceğiniz kapsayıcılı yapay zeka modellerini çalıştırmak istiyorsanız Azure Kubernetes Service, Azure Container Instances veya Azure Container Apps'i kullanabilirsiniz.

Azure Databricks , analiz işlem hattını barındırmak için bir alternatif sağlar.

Azure HDInsight'ta Spark , Apache Spark ortamında jeo-uzamsal kitaplıkları kullanmak için bir alternatif sağlar.

Alandan veri işleme için kullanabileceğiniz bazı alternatif kitaplıklar ve çerçeveler şunlardır:

  • Eski adı GeoSpark olan Apache Sedona, büyük ölçekli uzamsal verileri işlemeye yönelik bir küme bilgi işlem sistemidir. Sedona, makineler arasında büyük ölçekli uzamsal verileri verimli bir şekilde yükleyen, işleyen ve analiz eden kullanıma hazır Uzamsal Dayanıklı Dağıtılmış Veri Kümeleri ve SpatialSQL ile Spark ve Spark SQL'i genişletir.
  • Python için Dask , mevcut Python ekosistemini ölçeklendirin paralel bir bilgi işlem kitaplığıdır.

Senaryo ayrıntıları

Uzaydaki veri toplama giderek yaygınlaşıyor. Yapay zekanın uygulanması için, makine öğrenmesi için depolanan veri arşivleri gereklidir. Kuruluşların ve devletlerin daha iyi bilgilendirilmiş iş ve taktik kararları almasını sağlamak için, uzaya yayılan veri analizi için bulut tabanlı bir çözüm oluşturma ihtiyacı daha önemli hale geldi.

Olası kullanım örnekleri

Bu çözüm havacılık ve uçak endüstrileri için idealdir. Bu senaryolar şu senaryoları ele alır:

  • Veri alımını ve işlenmesini tarama
  • Önceden eğitilmiş yapay zeka modelleri aracılığıyla nesne algılama
  • Yapay zeka modelleri aracılığıyla kara kütlelerinin sınıflandırılması
  • Yapay zeka modelleri aracılığıyla ortamdaki değişiklikleri izleme
  • Önceden işlenmiş görüntü kümelerinden türetilmiş veri kümeleri
  • Vektör görselleştirme / küçük alan tüketimi
  • Vektör veri filtreleme ve çapraz veri birleştirmeleri

Dikkat edilmesi gerekenler

Bu önemli noktalar, bir iş yükünün kalitesini artırmak için kullanılabilecek bir dizi yol gösteren ilke olan Azure Well-Architected Framework'ün yapı taşlarını uygular. Daha fazla bilgi için bkz. Microsoft Azure Well-Architected Framework.

Operasyonel Mükemmellik

Kaynak denetimi için Git kullanarak işbirliği yaparsanız, çalışma alanınızı git deposu, Azure DevOps veya GitHub ile ilişkilendirmek için Synapse Studio kullanabilirsiniz. Daha fazla bilgi için bkz. Synapse Studio'de kaynak denetimi.

  • Azure Synapse çalışma alanında CI/CD tüm varlıkları bir ortamdan (geliştirme, test, üretim) başka bir ortama taşır.
  • Azure DevOps yayın işlem hatlarını ve GitHub Actions kullanarak Azure Synapse çalışma alanının birden çok ortamla dağıtımını otomatikleştirebilirsiniz.

Performans

  • Azure Synapse, öncüllerinden daha performanslı olan Apache Spark 3.1.2'yi destekler.
  • Spark havuzu ölçeklendirme ve düğüm boyutları hakkında bilgi için bkz. Azure Synapse Analytics'te Spark havuzları.
  • Azure Batch ile, Azure Synapse Özel etkinliğinde gönderilen dönüştürmeler için doğası gereği paralel ölçeği genişletebilirsiniz. Azure Batch, yapay zeka modellerini çalıştırmak için kullanabileceğiniz özel GPU için iyileştirilmiş VM boyutlarını destekler.

Güvenilirlik

Güvenilirlik, uygulamanızın müşterilerinize yaptığınız taahhütleri karşılayabilmesini sağlar. Daha fazla bilgi için bkz . Güvenilirlik sütununa genel bakış.

SLA bilgileri için bkz. Azure Synapse SLA.

Güvenlik

Güvenlik, kasıtlı saldırılara ve değerli verilerinizin ve sistemlerinizin kötüye kullanımına karşı güvence sağlar. Daha fazla bilgi için bkz. Güvenlik sütununa genel bakış.

En iyi güvenlik uygulamaları için şu makalelere bakın:

Maliyet iyileştirmesi

Maliyet iyileştirmesi, gereksiz giderleri azaltmanın ve operasyonel verimlilikleri artırmanın yollarını gözden geçmektir. Daha fazla bilgi için bkz. Maliyet iyileştirme sütununa genel bakış.

Bu kaynaklar fiyatlandırma ve maliyet iyileştirme hakkında bilgi sağlar:

Not

İş ortağı yapay zeka modellerinin fiyatlandırma ve lisans koşulları için iş ortağının belgelerine bakın.

Bu senaryoyu dağıtın

Örnek çözümün Bicep dağıtımı kullanılabilir. Bu dağıtımı kullanmaya başlamak için bu yönergelere bakın.

Dağıtılan örnek çözümün mimarisini gösteren diyagram.

Bu mimarinin bir Visio dosyasını indirin.

Sınırlamalar

Bu mimaride Azure Synapse kullanan uçtan uca bir coğrafi işlem ve analiz çözümü gösterilmektedir. Bu örnek uygulama, küçük ve orta ölçekli bir ilgi alanı ve tarama verilerinin sınırlı eş zamanlı coğrafi olarak işlenmesi için hedeflenmiştir.

Örnek kod

Aşağıdaki yönergelerde Synapse not defteri kullanarak Azure Data Lake Storage depolanan verileri taramak için dönüştürmelerin nasıl okunacağı, yazıldığı ve uygulanacağı açıklanmaktadır. Amaç, Synapse not defterlerindeki kitaplıkların kullanımını göstermek, dönüşümü göstermekten daha fazlasıdır.

Önkoşullar

Yönergeler

  • Tarama verilerinden bilgileri yazdırın:

    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)
    

    Not

    /vsiadls/, Azure Data Lake Storage dosya sistemlerinde mevcut olan ve öncelikli olarak genel olmayan dosyaların anında rastgele okunmasını sağlayan bir dosya sistemi işleyicisidir. Dosyanın tamamının önceden indirilmesi gerekmez. /vsiadls/ , ile /vsiaz/benzerdir. Kimlik doğrulaması için aynı yapılandırma seçeneklerini kullanır. /vsiadls/'nin aksine/vsiaz/, gerçek dizin yönetimi ve Unix stili ACL desteği sağlar. Bazı özellikler için Azure depolamada hiyerarşik desteğin açık olması gerekir. Daha fazla bilgi için belgelere/vsiadls/ bakın.

    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
    
  • GDAL kullanarak GeoTiff'i PNG'ye dönüştürün:

    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)
    
  • GeoTiff görüntülerini Azure Data Lake Storage'de depolayın.

    Verilerin bulutta nasıl depolandığı ve dosya işleyicilerinin yalnızca sıralı yazma işlemlerini /vsiaz//vsiadls/ desteklemesi nedeniyle , mssparkutils paketinde bulunan dosya bağlama özelliğini kullanırız. Çıkış bağlama konumuna yazıldıktan sonra bu örnek dönüştürmede gösterildiği gibi Azure Data Lake Storage kopyalayın:

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

    Azure Synapse'da bağlı hizmetlerden biri olarak Azure Data Lake Storage ekleyebilirsiniz. Yönergeler için bkz . Bağlı hizmetler.

Örnek çözüm

Bu mimarinin bir uygulaması GitHub'da kullanılabilir.

Bu diyagramda örnek çözümdeki adımlar gösterilmektedir:

Örnek çözümdeki adımları gösteren diyagram.

Bu mimarinin bir Visio dosyasını indirin.

Not

Veriler uzaydaki veri kaynaklarından alınır ve Azure Data Lake Storage kopyalanır. Veri alımı başvuru uygulamasının bir parçası değildir.

  1. Azure Synapse işlem hattı, Azure Data Lake Storage alandan gelen verileri okur.
  2. Veriler bir Azure Synapse not defterindeki GDAL kitaplığıyla işlenir.
  3. İşlenen veriler Azure Data Lake Storage depolanır.
  4. İşlenen veriler Azure Data Lake Storage okunur ve Azure Synapse Özel etkinliği tarafından yapay zeka modelleri Özel Görüntü İşleme nesne algılamaya geçirilir. Özel etkinlik, nesne algılama modelini çalıştırmak için Azure Batch havuzları kullanır.
  5. Nesne algılama modeli, algılanan nesnelerin ve sınırlayıcı kutuların listesini verir.
  6. Algılanan nesneler GeoJSON'a dönüştürülür ve Azure Data Lake Storage depolanır.
  7. GeoJSON verileri Azure Data Lake Storage okunur ve postgreSQL veritabanında depolanır.
  8. Veriler PostgreSQL veritabanından okunur. ArcGIS Pro, QGIS ve Power BI gibi araçlarda daha fazla görselleştirilebilir.

Azure Synapse Spark havuzuna jeo-uzamsal paketler yükleme

Paket yönetimi özelliğini kullanarak paketleri bir Azure Synapse Spark havuzuna yüklemeniz gerekir. Daha fazla bilgi için bkz. Azure Synapse paket yönetimi.

Azure Synapse üzerinde yer alan veri iş yüklerini desteklemek için GDAL, Rasterio ve GeoPandas gibi kitaplıklara ihtiyacınız vardır. YaML dosyası kullanarak bu kitaplıkları sunucusuz bir Apache Spark havuzuna yükleyebilirsiniz. Anaconda kitaplıkları Spark havuzuna önceden yüklenir.

Önkoşullar

Yönergeler

  1. Aşağıdaki kitaplıklar ve paketler environment.yml dosyasında kullanılabilir. Kitaplıkları Spark havuzlarına yüklemek için bu dosyayı kullanmanızı öneririz. Aşağıdaki içeriği kopyalarsanız, YAML yalnızca girinti olarak boşluklara izin verdiğinden sekme olmadığından emin olun.

    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
    

    Not

    GDAL, Azure Data Lake Storage için sanal dosya sistemi /vsiadls/ kullanır. Bu işlev GDAL v3.3.0'dan itibaren kullanılabilir. 3.3.0 veya sonraki bir sürümü kullandığınızdan emin olun.

  2. https://web.azuresynapse.net adresine gidin ve çalışma alanınızda oturum açın.

  3. Gezinti bölmesinde Yönet'i ve ardından Apache Spark havuzları'nı seçin.

  4. Spark havuzundaki üç nokta düğmesini (...) seçerek Paketler'i seçin. local dosyasından environment.yml dosyasını karşıya yükleyin ve paket ayarlarını uygulayın.

  5. Yükleme tamamlandığında portalın bildirim bölümü size bildirir. Aşağıdaki adımları uygulayarak yükleme ilerleme durumunu da izleyebilirsiniz:

    1. İzleyici sekmesinde Spark uygulamaları listesine gidin.
    2. Havuz güncelleştirmenize karşılık gelen SystemReservedJob-LibraryManagement bağlantısını seçin.
    3. Sürücü günlüklerini görüntüleyin.
  6. Kitaplıkların doğru sürümlerinin yüklü olduğunu doğrulamak için aşağıdaki kodu çalıştırın. Conda'nın yüklemiş olduğu önceden yüklenmiş kitaplıklar da listelenir.

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

Daha fazla bilgi için bkz. Paketleri yönetme.

Katkıda Bulunanlar

Bu makale Microsoft tarafından güncelleştiriliyor ve korunuyor. Başlangıçta aşağıdaki katkıda bulunanlar tarafından yazılmıştır.

Asıl yazarlar:

Ek katkıda bulunanlar:

Sonraki adımlar