Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento rychlý start vás provede vytvořením kolekce STAC (SpatioTemporal Asset Catalog) a jejím přidáním do geocatalogu Microsoft Planety Computer Pro GeoCatalog pomocí Pythonu.
Požadavky
K dokončení tohoto rychlého startu potřebujete:
- Účet Azure s aktivním předplatným. Použijte odkaz Vytvořit účet zdarma.
- Vaše prostředí nakonfigurované pro přístup k Azure, například pomocí
az login. - Přístup k planetárnímu počítači Pro GeoCatalog. Pokud ještě nemáte přístup, můžete vytvořit nový GeoCatalog.
- Prostředí Pythonu s nainstalovanými
requestsaazure-identity.
python3 -m pip install requests azure-identity
Vytvořte STAC kolekci JSON
Abyste mohli vytvořit kolekci STAC, potřebujete nejprve soubor JSON, který definuje vlastnosti kolekce. Při vytváření kolekcí STAC jsou vyžadovány některé vlastnosti, jak je popsáno v přehledu kolekce STAC. V závislosti na případu použití a datovém typu je možné přidat další vlastnosti.
Pro účely tohoto kurzu načtěte kolekci io-lulc-annual-v02 STAC ze STAC API služby Planetary Computer Pro. Pokud jste už tuto kolekci STAC máte ve službě GeoCatalog, můžete přejít k další části.
import requests
collection = requests.get(
"https://planetarycomputer.microsoft.com/api/stac/v1/collections/io-lulc-annual-v02"
).json()
collection.pop("assets", None) # remove unused collection-level assets
collection["id"] = "mpc-quickstart"
collection["title"] += " (Planetary Computer Quickstart)"
Pokud pro kolekci používáte jiné ID, nezapomeňte pole nahradit id správnou hodnotou.
Aby bylo možné vizualizovat datové prostředky v této kolekci v Průzkumníku, měla by metadata kolekce obsahovat rozšíření Položek Assets a mít alespoň jeden položkový asset, jehož typ média lze vizualizovat.
Získání přístupového tokenu
Přístup k GeoCatalogu vyžaduje token pro ověření požadavků. K načtení tokenu použijte klientskou knihovnu Azure-identity pro Python:
import azure.identity
credential = azure.identity.DefaultAzureCredential()
token = credential.get_token("https://geocatalog.spatio.azure.com")
headers = {
"Authorization": f"Bearer {token.token}"
}
Tyto přihlašovací údaje lze uvést jako Bearer token v hlavičce Authorization v požadavcích na váš GeoCatalog.
Přidání kolekce do GeoCatalogu
S metadaty STAC, tokenem a adresou URL pro geoCatalog vytvořte požadavek na rozhraní STAC API a přidejte kolekci.
# Put the URL to your Planetary Computer Pro GeoCatalog (not including '/stac' or a trailing '/' ) here
geocatalog_url = "<your-geocatalog-url>"
response = requests.post(
f"{geocatalog_url}/stac/collections",
json=collection,
headers=headers,
params={"api-version": "2025-04-30-preview"},
)
print(response.status_code)
Stavový 201 kód indikuje, že vaše kolekce byla vytvořena. Stavový 409 kód indikuje, že kolekce s tímto ID již existuje. Informace o tom, jak aktualizovat existující kolekci, najdete v tématu Aktualizace kolekce .
Tuto kolekci si teď můžete přečíst na koncovém bodu /stac/collections/{collection_id}.
geocatalog_collection = requests.get(
f"{geocatalog_url}/stac/collections/{collection['id']}",
headers=headers,
params={"api-version": "2025-04-30-preview"},
).json()
Svůj GeoKatalog můžete také zobrazit v prohlížeči, abyste viděli novou kolekci.
Konfigurace kolekce
Každá kolekce v GeoCatalogu obsahuje určitou konfiguraci, která určuje, jak jsou položky STAC a jejich datové prostředky uložené, indexované a vizualizované. Chcete-li konfigurovat kolekci:
Definujte konfiguraci vykreslování pro kolekci. Tato konfigurace vykreslování řídí, jak se prostředky položek STAC v kolekci vykreslují při vizualizaci v GeoCatalog Exploreru. Konkrétní parametry použité zde závisí na prostředcích ve vaší kolekci.
import json import urllib.parse colormap = { 0: (0, 0, 0, 0), 1: (65, 155, 223, 255), 2: (57, 125, 73, 255), 3: (136, 176, 83, 0), 4: (122, 135, 198, 255), 5: (228, 150, 53, 255), 6: (223, 195, 90, 0), 7: (196, 40, 27, 255), 8: (165, 155, 143, 255), 9: (168, 235, 255, 255), 10: (97, 97, 97, 255), 11: (227, 226, 195, 255), } colormap = urllib.parse.urlencode({"colormap": json.dumps(colormap)}) render_option = { "id": "default", "name": "Default", "description": "Land cover classification using 9 class custom colormap", "type": "raster-tile", "options": f"assets=data&exitwhenfull=False&skipcovered=False&{colormap}", "minZoom": 6, } response = requests.post( f"{geocatalog_url}/stac/collections/{collection['id']}/configurations/render-options", json=render_option, headers=headers, params={"api-version": "2025-04-30-preview"} ) print(response.status_code)Definujte pro kolekci mozaiku. Konfigurace mozaiky řídí, jak se položky dotazují, filtrují a kombinují, aby se vytvořilo jedno zobrazení dat v Průzkumníku GeoCatalogu. Následující ukázková konfigurace mozaiky nepoužije žádné další parametry dotazu ani filtry. V důsledku toho se při výběru této konfigurace v Průzkumníku GeoCatalog zobrazí všechny položky v kolekci s nejnovějšími položkami zobrazenými jako první.
mosaic = { "id": "most-recent", "name": "Most recent available", "description": "Show the most recent available data", "cql": [], } response = requests.post( f"{geocatalog_url}/stac/collections/{collection['id']}/configurations/mosaics", json=mosaic, headers=headers, params={"api-version": "2025-04-30-preview"} ) print(response.status_code)Pole
cqlkonfigurace mozaiky lze použít k filtrování položek na základě jejich vlastností. Pokud například vaše položky STAC implementují [eorozšíření][eo], mohli byste definovat filtr "nízký cloud" (méně než 10% cloudy) pomocí"cql": [{"op": "<=", "args": [{"property": "eo:cloud_cover"}, 10]}]Definujte nastavení dlaždice pro kolekci. Tím se řídí věci, jako je minimální úroveň přiblížení.
tile_settings = { "minZoom": 6, "maxItemsPerTile": 35, } requests.put( f"{geocatalog_url}/stac/collections/{collection['id']}/configurations/tile-settings", json=tile_settings, headers=headers, params={"api-version": "2025-04-30-preview"} )
Aktualizace kolekce
Existující kolekci můžete aktualizovat pomocí požadavku na endpoint PUT.
collection["description"] += " (Updated)"
response = requests.put(
f"{geocatalog_url}/stac/collections/{collection['id']}",
headers={"Authorization": f"Bearer {token.token}"},
json=collection,
params={"api-version": "2025-04-30-preview"},
)
print(response.status_code)
200 Stavový kód označuje, že kolekce byla úspěšně aktualizována.
Vyčistěte zdroje
K odebrání kolekce z GeoCatalogu můžete použít DELETE požadavek. Odstranění kolekce také odstraní:
- Všechny STAC položky, které jsou podřízené této kolekci.
- Všechna aktiva, která jsou položkami podřízených.
- Všechny objekty na úrovni té kolekce.
Rychlý start Přidání položek STAC do kolekce využívá tuto kolekci, takže ji zatím neodstraňujte, pokud plánujete tento rychlý start dokončit.
response = requests.delete(
f"{geocatalog_url}/stac/collections/{collection['id']}",
headers={"Authorization": f"Bearer {token.token}"},
params={"api-version": "2025-04-30-preview"}
)
print(response.status_code)
Stavový 204 kód značí, že vaše kolekce byla odstraněna.
Výstraha
Pokud kolekci odstraníte, musíte počkat aspoň 45 sekund, než se pokusíte vytvořit novou kolekci se stejným názvem nebo ID. Pokud se pokusíte vytvořit novou kolekci se stejným názvem jako odstraněná kolekce, zobrazí se chyba. Pokud k této chybě dojde, zkuste kolekci vytvořit znovu po 45sekundovém čekání.