Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez a cikk bemutatja, hogyan lehet egyszerre több térinformatikai adategységet beszedni egy GeoCatalogba a Tömeges betöltési API használatával. Először létrehozunk és konfigurálunk egy GeoCatalog betöltési forrást. A betöltési forrás létrehozása biztonságos kapcsolatot hoz létre egy GeoCatalog-erőforrás és a meglévő térinformatikai adatok tárolási helye között. Ezután létrehozunk egy SpatioTemporal Access Catalog (STAC) kollekciót a GeoCatalog-erőforrásban a betöltendő adatok tárolásához. Végül a Tömeges betöltési API-val indítjuk el a betöltési munkafolyamatot. Ha befejezte ezeket a lépéseket, a térinformatikai adatok a GeoCatalog felhasználói felületéről és API-jaiból lesznek betöltve és elérhetők.
Előfeltételek
Az Azure-előfizetésben:
Térinformatikai adatkészlet a tárfiók blobtárolójában:
- Térinformatikai adategységek (például GeoTIFF-fájlok)
- A társított STAC-elemek STAC-elemeket hoznak létre ezekhez az eszközökhöz.
- A STAC-gyűjtemény JSON-ja, amely az összes STAC-elemre és térinformatikai adategységre hivatkozik.
A helyi / fejlesztési környezetben:
- Python 3.10-et (vagy újabbat) futtató Python-környezet.
- Azure parancssori felület
- Bejelentkezett az Azure-ba
A Microsoft Planetary Computer Pro-nak hozzáféréssel kell rendelkeznie az Azure Blob Storage-tárolóhoz. Ebben a cikkben létrehozunk és használunk egy ideiglenes SAS-jogkivonat hitelesítő adatokat a hozzáférés biztosításához. Alternatív megoldásként ezeket az útmutatókat használhatja a felügyelt identitások vagy a szigorúan kódolt SAS-jogkivonatok beállításához.
- A Microsoft Planetary Computer Pro betöltési hitelesítő adatainak beállítása felügyelt identitással
- A(z) Microsoft Planetary Computer Pro adatbeviteli hitelesítő adatainak beállítása SAS-jogkivonatokkal
Adatbetöltési forrás létrehozása
A betöltési forrás létrehozása meghatározza a GeoCatalog számára, hogy melyik forrásból kell a térinformatikai adatokat betölteni, és melyik hitelesítő mechanizmust használja a betöltési munkafolyamatban.
A szükséges Python-modulok telepítése pip használatával
pip install pystac-client azure-identity requests azure-storage-blob pyyamlA szükséges Python-modulok importálása
import os import requests from azure.identity import AzureCliCredential from datetime import datetime, timedelta, timezone import azure.storage.blob from urllib.parse import urlparse import yamlA szükséges állandók beállítása a környezetnek megfelelően
MPCPRO_APP_ID = "https://geocatalog.spatio.azure.com" CONTAINER_URI = "<container_uri>" # The URI for the blob storage container housing your geospatial data GEOCATALOG_URI = "<geocatalog uri>" # The URI for your GeoCatalog can be found in the Azure portal resource overview API_VERSION = "2026-04-15"AZ SAS-jogkivonat létrehozása
# Parse the container URL parsed_url = urlparse(CONTAINER_URI) account_url = f"{parsed_url.scheme}://{parsed_url.netloc}" account_name = parsed_url.netloc.split(".")[0] container_name = parsed_url.path.lstrip("/") credential = azure.identity.AzureCliCredential() blob_service_client = azure.storage.blob.BlobServiceClient( account_url=account_url, credential=credential, ) now = datetime.now(timezone.utc).replace(microsecond=0) key = blob_service_client.get_user_delegation_key( key_start_time=now + timedelta(hours=-1), key_expiry_time=now + timedelta(hours=1), ) sas_token = azure.storage.blob.generate_container_sas( account_name=account_name, container_name=container_name, user_delegation_key=key, permission=azure.storage.blob.ContainerSasPermissions( read=True, list=True, ), start=now + timedelta(hours=-1), expiry=now + timedelta(hours=1), )GeoCatalog API hozzáférési jogkivonat beszerzése
# Obtain an access token credential = AzureCliCredential() access_token = credential.get_token(f"{MPCPRO_APP_ID}/.default")POST kérés létrehozása az adatforrás API-hoz
# Payload for the POST request payload = { "Kind": "SasToken", "connectionInfo": { "containerUrl": CONTAINER_URI, "sasToken": sas_token, }, }A bevitelforrás létrehozása a POST terhelésnek a bevitelforrás végpontra való elküldésével
# STAC Collection API endpoint endpoint = f"{GEOCATALOG_URI}/inma/ingestion-sources" # Make the POST request response = requests.post( endpoint, json=payload, headers={"Authorization": f"Bearer {access_token.token}"}, params={"api-version": API_VERSION}, )A válasz ellenőrzése
# Print the response if response.status_code == 201: print("Ingestion source created successfully") ingestion_source_id = response.json().get("id") #saved for later to enable resource clean up else: print(f"Failed to create ingestion: {response.text}")
Megjegyzés:
Az alábbi lépések egymás utáni többszöri végrehajtása 409-es választ eredményez:
Container url <container uri> already contains a SAS token ingestion source with id <sas token id>
A betöltési forrás API nem teszi lehetővé, hogy több betöltési forrást hozzon létre ugyanazon tároló URL-címéhez. Az ütközések elkerülése érdekében mindenképpen törölje a meglévő betöltési forrásokat, mielőtt létrehoz egy újat. További részletekért lásd: Erőforrások törlése.
Gyűjtemény létrehozása
A STAC-gyűjtemény a STAC-elemek és azok kapcsolódó térinformatikai eszközeinek magas szintű tárolója. Ebben a szakaszban létrehozunk egy STAC-gyűjteményt a GeoCatalogon belül, amely a következő szakaszban betöltendő térinformatikai adatoknak ad otthont.
A szükséges modulok importálása
import os import requests import yaml from pprint import pprint from azure.identity import AzureCliCredentialA szükséges állandók beállítása a környezetnek megfelelően
MPCPRO_APP_ID = "https://geocatalog.spatio.azure.com" GEOCATALOG_URI = "<geocatalog uri>" # The URI for your GeoCatalog can be found in the Azure portal resource overview API_VERSION = "2026-04-15" COLLECTION_ID = "example-collection" #You can your own collection ID COLLECTION_TITLE = "Example Collection" #You can your own collection titleGeoCatalog API hozzáférési jogkivonat beszerzése
# Obtain an access token credential = AzureCliCredential() access_token = credential.get_token(f"{MPCPRO_APP_ID}/.default")Alapszintű STAC-gyűjtemény specifikáció létrehozása
collection = { "id": COLLECTION_ID, "type": "Collection", "title": COLLECTION_TITLE, "description": "An example collection", "license": "CC-BY-4.0", "extent": { "spatial": {"bbox": [[-180, -90, 180, 90]]}, "temporal": {"interval": [["2018-01-01T00:00:00Z", "2018-12-31T23:59:59Z"]]}, }, "links": [], "stac_version": "1.0.0", "msft:short_description": "An example collection", }Megjegyzés:
Ez a mintagyűjtemény-specifikáció egy egyszerű példa egy gyűjteményre. A STAC-gyűjteményekről és a NYITOTT STAC szabványról a STAC áttekintésében talál további információt. A teljes STAC-gyűjtemény létrehozásáról további információt a STAC-gyűjtemény létrehozása című témakörben talál.
Az új gyűjtemény létrehozása a Collection API-val
response = requests.post( f"{GEOCATALOG_URI}/stac/collections", json=collection, headers={"Authorization": "Bearer " + access_token.token}, params={"api-version": API_VERSION}, )A válasz eredményének ellenőrzése
if response.status_code == 201: print("Collection created successfully") pprint(response.json()) else: print(f"Failed to create ingestion: {response.text}")
Kapcsolat létrehozása és munkafolyamat futtatása
Ebben az utolsó lépésben a betöltési API-t használjuk a tömeges betöltési munkafolyamat elindításához.
Szükséges modulok importálása
import os import requests import yaml from azure.identity import AzureCliCredentialA szükséges állandók beállítása a környezetnek megfelelően
MPCPRO_APP_ID = "https://geocatalog.spatio.azure.com" GEOCATALOG_URI = "<geocatalog uri>" # The URI for your GeoCatalog can be found in the Azure portal resource overview API_VERSION = "2026-04-15" COLLECTION_ID = "example-collection" #You can your own collection ID catalog_href = "<catalog_href>" #The blob storage location of the STAC Catalog JSON file skip_existing_items = False keep_original_assets = False timeout_seconds = 300GeoCatalog API hozzáférési jogkivonat beszerzése
# Obtain an access token credential = AzureCliCredential() access_token = credential.get_token(f"{MPCPRO_APP_ID}/.default")A POST hasznos adat létrehozása a Tömeges betöltési API-hoz
url = f"{GEOCATALOG_URI}/inma/collections/{COLLECTION_ID}/ingestions" body = { "importType": "StaticCatalog", "sourceCatalogUrl": catalog_href, "skipExistingItems": skip_existing_items, "keepOriginalAssets": keep_original_assets, }Küldje el az adatcsomagot a Tömeges Betöltési API-hoz.
ing_response = requests.post( url, json=body, timeout=timeout_seconds, headers={"Authorization": f"Bearer {access_token.token}"}, params={"api-version": API_VERSION}, )Ellenőrizze a választ.
if ing_response.status_code == 201: print("Ingestion created successfully") ingestion_id = ing_response.json()["ingestionId"] print(f"Created ingestion with ID: {ingestion_id}") else: print(f"Failed to create ingestion: {ing_response.text}")Ellenőrizze a betöltési munkafolyamat állapotát.
runs_endpoint = ( f"{geocatalog_url}/inma/collections/{collection_id}/ingestions/{ingestion_id}/runs" ) wf_response = requests.post( runs_endpoint, headers={"Authorization": f"Bearer {access_token.token}"}, params={"api-version": API_VERSION}, ) if wf_response.status_code == 201: print("Workflow started successfully") else: print(f"Failed to create ingestion run: {wf_response.text}")
A munkafolyamat befejezése után lekérdezheti, lekérheti vagy megjelenítheti a térinformatikai adatokat a GeoCatalog STAC vagy az adat API-k használatával, vagy az Adatkezelővel. Ha problémákat tapasztal, tekintse meg a hibaelhárítási útmutatót vagy a betöltési hibakódok listáját.
Erőforrások tisztítása
Adatbemeneti forrás törlése
del_is_endpoint = f"{GEOCATALOG_URI}/inma/ingestion-sources/{ingestion_source_id}" del_is_response = requests.delete( del_is_endpoint, headers={"Authorization": f"Bearer {access_token.token}"}, params={"api-version": API_VERSION}, ) if del_is_response.status_code == 200: print("Ingestion source deleted successfully") else: print(f"Failed to delete ingestion source")
Következő lépések
Most, hogy hozzáadott néhány elemet, konfigurálnia kell az adatokat a vizualizációhoz.
Kapcsolódó tartalom
- Rövid útmutató: Egyetlen STAC-elem betöltése gyűjteménybe a Microsoft Planetary Computer Pro GeoCatalogban
- Rövid útmutató: Adatok betöltése a Microsoft Planetary Computer Pro webes felülettel
- Adatok betöltése a Microsoft Planetary Computer Pro-ba
- A Microsoft Planetary Computer Pro betöltési forrása
- Adatbetöltés hibaelhárítása
- Hibakódok: Microsoft Planetary Computer Pro-betöltés