Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu hızlı başlangıç, bir SpatioTemporal Varlık Kataloğu (STAC) koleksiyonu oluşturmanıza ve Python kullanarak bir Microsoft Planetary Computer Pro GeoCatalog'a eklemenize yardımcı olur.
Önkoşullar
Bu hızlı başlangıcı tamamlamak için şunları yapmanız gerekir:
- Aktif bir aboneliğe sahip bir Azure hesabı. Ücretsiz hesap oluştur bağlantısını kullanın.
- Ortamınız, örneğin
az loginile Azure'a erişmek için yapılandırıldı. - Planet Computer Pro GeoCatalog'a erişim. Henüz erişiminiz yoksa yeni bir GeoCatalog oluşturabilirsiniz.
-
requestsveazure-identityyüklü bir Python ortamı.
python3 -m pip install requests azure-identity
STAC Koleksiyonu JSON oluşturma
STAC koleksiyonu oluşturmak için önce koleksiyon özelliklerini tanımlayan bir json dosyasına ihtiyacınız vardır. STAC Koleksiyonları oluşturulurken , STAC Koleksiyonuna Genel Bakış bölümünde açıklandığı gibi bazı özellikler gereklidir. Kullanım örneğiniz ve veri türünüz bağlı olarak başka özellikler eklenebilir.
Bu öğretici için Planetary Computer Pro'nun STAC API'sinden io-lulc-annual-v02 STAC koleksiyonunu okuyun. Bunu zaten GeoCatalog'unuzda STAC koleksiyonu olarak kaydettiyseniz, sonraki bölüme geçebilirsiniz.
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)"
Koleksiyonunuz için farklı bir kimlik kullanıyorsanız alanı doğru değerle değiştirdiğinizden id emin olun.
Gezgin'de bu koleksiyondaki veri varlıklarını görselleştirmek için, koleksiyon meta verileri Öğe Varlıkları uzantısını içermelidir ve medya türü görselleştirilebilen en az bir öğe varlığına sahip olmalıdır.
Erişim belirteci alma
GeoCatalog'a erişim sağlamak için istekleri doğrulayan bir belirteç gerekir. Belirteç almak için Python için Azure kimlik istemci kitaplığını kullanın:
import azure.identity
credential = azure.identity.DefaultAzureCredential()
token = credential.get_token("https://geocatalog.spatio.azure.com")
headers = {
"Authorization": f"Bearer {token.token}"
}
Bu kimlik bilgisi, GeoCatalog'unuza yapılan isteklerde üst bilgide Taşıyıcı belirteci Authorization olarak sağlanabilir.
GeoCatalog'a koleksiyon ekleme
STAC meta verileri, belirteç ve GeoCatalog'unuzun URL'si ile, Koleksiyonu eklemek için STAC API'sine bir istek gönderin.
# 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)
durum kodu 201 , Koleksiyonunuzun oluşturulduğunu gösterir. durum kodu 409 , bu kimlikle bir koleksiyonun zaten var olduğunu gösterir. Mevcut bir koleksiyonu güncelleştirme hakkında bilgi için bkz. Koleksiyonu güncelleştirme.
Artık bu koleksiyonu /stac/collections/{collection_id} endpointinde okuyabilirsiniz.
geocatalog_collection = requests.get(
f"{geocatalog_url}/stac/collections/{collection['id']}",
headers=headers,
params={"api-version": "2025-04-30-preview"},
).json()
Yeni koleksiyonu görmek için GeoCatalog'unuzu tarayıcınızda da görüntüleyebilirsiniz.
Koleksiyonu yapılandırma
GeoCatalog'daki her koleksiyon, STAC öğelerinin ve veri varlıklarının nasıl depolandığını, dizinlendiğini ve görselleştirildiğini denetleye bazı yapılandırmalar içerir. Bir koleksiyonu yapılandırmak için:
Koleksiyon için bir işleme yapılandırması tanımlayın. Bu görüntüleme ayarı, koleksiyondaki STAC öğelerinin GeoCatalog Gezgini'nde görselleştirildiğinde nasıl görüntülendiğini belirler. Burada kullanılan belirli parametreler, koleksiyonunuzdaki varlıklara bağlıdır.
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)Koleksiyon için bir mozaik tanımlayın. Mozaik yapılandırma, GeoCatalog Gezgini'nde verilerin tek bir görünümünü oluşturmak için öğelerin nasıl sorgulandığını, filtrelendiğini ve birleştirildiği denetler. Aşağıdaki örnek mozaik yapılandırması ek sorgu parametresi veya filtresi uygulamaz. Sonuç olarak, bu yapılandırma GeoCatalog Gezgini'nin içinde seçildiğinde koleksiyondaki tüm öğeler gösterilir ve en son öğeler ilk olarak görüntülenir.
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)Mozaik
cqlyapılandırma alanı, öğeleri özelliklerine göre filtrelemek için kullanılabilir. Örneğin, STAC öğeleriniz [eouzantı][eo] uygularsa, şununla bir "düşük bulut" (10'dan az% bulutlu) filtresi tanımlayabilirsiniz"cql": [{"op": "<=", "args": [{"property": "eo:cloud_cover"}, 10]}]Koleksiyon için Kutucuk Ayarlarını tanımlayın. Bu, en düşük yakınlaştırma düzeyi gibi öğeleri denetler.
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"} )
Koleksiyonu güncelleştirme
Mevcut bir koleksiyonu güncellemek için PUT isteğini /stac/collections/{collection_id} uç noktasına gönderebilirsiniz.
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 Durum kodu koleksiyonun başarıyla güncelleştirildiğini gösterir.
Kaynakları temizle
Koleksiyonu GeoCatalog'unuzdan kaldırmak için bir DELETE istek kullanabilirsiniz. Bir koleksiyonun silinmesi şunları da siler:
- Bu koleksiyonun çocuk öğeleri olan tüm STAC Öğeleri.
- Bu öğelerin alt öğeleri olan tüm varlıklar.
- Bu koleksiyonun koleksiyon düzeyindeki tüm varlıkları.
Bir koleksiyona STAC Öğeleri Ekleme hızlı başlangıcı bu koleksiyonu kullandığından, bu hızlı başlangıcı tamamlamayı planlıyorsanız henüz silmeyin.
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)
durum kodu 204 , Koleksiyonunuzun silindiğini gösterir.
Uyarı
Bir koleksiyonu silerseniz, aynı ada / kimlike sahip yeni bir koleksiyon oluşturmayı denemeden önce en az 45 saniye beklemeniz gerekir. Silinen koleksiyonla aynı adı kullanarak yeni bir koleksiyon oluşturmaya çalışırsanız bir hata alırsınız. Bu hata oluşursa, 45 saniye bekledikten sonra koleksiyonu yeniden oluşturmayı deneyin.