Freigeben über


Schnellstart: Ein einzelnes STAC-Element in eine Sammlung im Microsoft Planetary Computer Pro GeoCatalog aufnehmen

In diesem Schnellstart erfassen Sie SpatioTemporal Asset Catalog (STAC)-Elemente in einer Sammlung in Microsoft Planetary Computer Pro GeoCatalog mithilfe der API für die Erfassung einzelner Elemente. STAC-Elemente sind der grundlegende Baustein von STAC, der Eigenschaften zum Abfragen und Verknüpfen mit den Datenressourcen enthält.

Voraussetzungen

Bevor Sie mit diesem Schnellstart beginnen, sollten Sie zunächst den Schnellstart zum Erstellen einer STAC-Sammlung mit Microsoft Planetary Computer Pro GeoCatalog abschließen oder über einen GeoCatalog mit einer STAC-Sammlung für die Elemente verfügen, die Sie erfassen möchten.

Überspringen Sie den folgenden Codeausschnitt, wenn Sie die STAC-Auflistung im aktuellen Terminal/Skript erstellt haben, andernfalls müssen Sie die geocatalog_url und collection_id mit dem folgenden Python-Code festlegen:

# Put the URL to your Microsoft Planetary Computer Pro GeoCatalog Explorer (not including '/api') here.
# Make sure there's no trailing '/'
geocatalog_url = "<your-geocatalog-url>"
# collection_id is "spatio-quickstart" if you're following the collection quickstart
collection_id = "<your-collection-id>"

Erstellen von Elementmetadaten

Die STAC-Elementmetadaten sind für die Objekte eindeutig, die Sie katalogisieren. Sie enthält alle Informationen, die zum Katalogieren der Daten erforderlich sind, sowie Zeiger auf die Stelle, an der die Daten gespeichert werden.

Tipp

Sie verfügen nicht über STAC-Elemente für Ihre Daten? Um die Erstellung von STAC-Elementen zu beschleunigen, haben wir ein detailliertes Lernprogramm und verfügen auch über ein Open Source-Tool namens STAC Forge.

Für diesen Schnellstart verwenden Sie STAC-Elemente und -Ressourcen aus der offenen 10 m Annual Land Use Land Cover-Sammlung von Planetary Computer.

import requests

response = requests.get(
    "https://planetarycomputer.microsoft.com/api/stac/v1/search",
    params={"collections": "io-lulc-annual-v02", "ids": "23M-2023,23L-2023,24M-2023,24L-2023"},
)

item_collection = response.json()

Verwenden Sie die SAS-API des offenen Planetary Computers, um kurzlebige SAS-Token für die Objekte abzurufen.

sas_token = requests.get(
    "https://planetarycomputer.microsoft.com/api/sas/v1/token/io-lulc-annual-v02"
).json()["token"]

for item in item_collection["features"]:
    for asset in item["assets"].values():
        asset["href"] = "?".join([asset["href"], sas_token])

Dieses SAS-Token ist erforderlich, damit Ihr GeoCatalog die Daten vom offenen Planetarischen Computer kopieren kann. Weitere Informationen dazu, wie Planetary Computer Pro auf Daten zugreift, finden Sie unter Ingestion-Quellen.

STAC erfordert, dass die collection Eigenschaft für STAC-Items der Sammlung entspricht, in der sie sich befinden. Aktualisieren Sie bei Bedarf die Elemente so, dass sie der verwendeten Sammlungs-ID entsprechen.

for item in item_collection["features"]:
    item["collection"] = collection_id

Zugriffstoken erhalten

Planetary Computer Pro erfordert ein Zugriffstoken für die Authentifizierung von Anforderungen über Microsoft Entra. Verwenden Sie die Azure-Identity-Clientbibliothek für Python, um ein Token abzurufen.

import azure.identity

credential = azure.identity.AzureCliCredential()
token = credential.get_token("https://geocatalog.spatio.azure.com")
headers = {
    "Authorization": f"Bearer {token.token}"
}

Hinzufügen von Elementen zu einer Auflistung

Elemente können einer Sammlung hinzugefügt werden, indem ein Item- oder ItemCollection-Objekt an den /stac/collections/{collection_id}/items-Endpunkt gesendet wird.

response = requests.post(
    f"{geocatalog_url}/stac/collections/{collection_id}/items?api-version=2025-04-30-preview",
    headers=headers,
    json=item_collection
)
print(response.status_code)

Der Statuscode 202 gibt an, dass Ihre Elemente für die Datenerfassung akzeptiert wurden. Überprüfen Sie das Antwort-JSON, wenn Sie einen 40x-Statuscode erhalten, zum Beispiel print(response.json()).

Planety Computer Pro nimmt die Elemente asynchron in Ihren GeoCatalog ein. Der location Header enthält eine URL, die Sie abfragen können, um den Status des Ingestionsprozesses zu überwachen.

import time
import datetime

location = response.headers["location"]

while True:
    response = requests.get(location, headers={"Authorization": f"Bearer {token.token}"})
    status = response.json()["status"]
    print(datetime.datetime.now().isoformat(), status)
    if status not in {"Pending", "Running"}:
        break
    time.sleep(5)

Once the items are ingested, use the `/stac/collections/{collection_id}/items` or `/stac/search` endpoints to get a paginated list of items, including your newly ingested items. If the ingestion fails or you encounter errors, consult the [troubleshooting guide](./troubleshooting-ingestion.md) and the [list of error codes](./error-codes-ingestion.md).

```python
items_response = requests.get(
    f"{geocatalog_url}/stac/collections/{collection_id}/items",
    headers={"Authorization": f"Bearer {token.token}"},
    params={"api-version": "2025-04-30-preview"},
)
items_ingested = items_response.json()
print(f"Found {len(items_ingested['features'])} items")

Oder suchen Sie:

search_response = requests.get(
    f"{geocatalog_url}/stac/search",
    headers={"Authorization": f"Bearer {token.token}"},
    params={"api-version": "2025-04-30-preview", "collection": collection_id},
)
#print(search_response.json())

Sie können die Elemente anzeigen, indem Sie Ihren Daten-Explorer besuchen, sobald die STAC-Sammlung für die Visualisierung konfiguriert ist.

Löschen von Elementen aus einer Auflistung

Elemente können aus einer Sammlung mit einer DELETE Anforderung an den Elementdetailendpunkt gelöscht werden.

item_id = item_collection["features"][0]["id"]
delete = requests.delete(
    f"{geocatalog_url}/stac/collections/{collection_id}/items/{item_id}",
    headers=headers,
    params={"api-version": "2025-04-30-preview"},
)
print(delete.status_code)

Bereinigen von Ressourcen

Unter Erstellen einer STAC-Auflistung mit Microsoft Planetary Computer Pro GeoCatalog finden Sie Schritte zum Löschen einer gesamten Sammlung sowie aller darunter befindlichen Elemente und Objekte.

Nächste Schritte

Nachdem Sie nun einige Elemente hinzugefügt haben, sollten Sie die Daten für die Visualisierung konfigurieren.