Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Panduan memulai cepat ini memandu Anda untuk membuat koleksi SpatioTemporal Asset Catalog (STAC) dan menambahkannya ke Microsoft Planetary Computer Pro GeoCatalog menggunakan Python.
Prasyarat
Untuk menyelesaikan panduan singkat ini, Anda memerlukan:
- Sebuah akun Azure dengan langganan aktif. Gunakan tautan Buat akun secara gratis.
- Lingkungan Anda dikonfigurasi untuk mengakses Azure, misalnya dengan
az login. - Akses ke Planetary Computer Pro GeoCatalog. Jika Anda belum memiliki akses, Anda dapat membuat GeoCatalog baru.
- Lingkungan Python dengan
requestsdanazure-identityterinstal.
python3 -m pip install requests azure-identity
Membuat Sebuah Koleksi STAC JSON
Untuk membuat koleksi STAC, Pertama-tama Anda memerlukan file json yang menentukan properti koleksi. Beberapa properti diperlukan saat membuat Koleksi STAC seperti yang dijelaskan dalam Gambaran Umum Koleksi STAC. Properti lain dapat ditambahkan tergantung pada kasus penggunaan dan jenis data Anda.
Untuk tutorial ini, silakan membaca koleksi STAC io-lulc-annual-v02 melalui API STAC dari Planetary Computer Pro. Jika Anda sudah memilikinya sebagai koleksi STAC di GeoCatalog Anda, Anda dapat melewati ke bagian berikutnya.
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)"
Jika Anda menggunakan ID yang berbeda untuk koleksi Anda, pastikan untuk mengganti id bidang dengan nilai yang benar.
Untuk memvisualisasikan aset data dalam koleksi ini di Explorer, metadata koleksi harus menyertakan ekstensi Aset Item dan memiliki setidaknya satu aset item yang jenis medianya dapat divisualisasikan.
Mendapatkan token akses
Mengakses GeoCatalog memerlukan token untuk mengautentikasi permintaan. Gunakan pustaka klien Azure-identity untuk Python untuk mengambil token:
import azure.identity
credential = azure.identity.DefaultAzureCredential()
token = credential.get_token("https://geocatalog.spatio.azure.com")
headers = {
"Authorization": f"Bearer {token.token}"
}
Kredensial ini dapat disediakan sebagai token Pembawa di Authorization header dalam permintaan yang dibuat ke GeoCatalog Anda.
Menambahkan koleksi ke GeoCatalog
Dengan metadata STAC, token, dan URL ke GeoCatalog Anda, buat permintaan ke API STAC untuk menambahkan Koleksi.
# 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)
Kode 201 status menunjukkan bahwa Koleksi Anda dibuat. Kode 409 status menunjukkan bahwa koleksi dengan ID tersebut sudah ada. Lihat Memperbarui koleksi untuk cara memperbarui koleksi yang sudah ada.
Anda kini bisa membaca koleksi ini di endpoint /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()
Anda juga dapat melihat GeoCatalog di browser Anda untuk melihat koleksi baru.
Mengonfigurasi koleksi
Setiap koleksi dalam GeoCatalog mencakup beberapa konfigurasi yang mengontrol bagaimana item STAC dan aset data mereka disimpan, diindeks, dan divisualisasikan. Untuk mengonfigurasi koleksi:
Tentukan konfigurasi render untuk koleksi. Konfigurasi render ini mengontrol bagaimana aset item STAC dalam koleksi dirender saat divisualisasikan di Penjelajah GeoCatalog. Parameter spesifik yang digunakan di sini bergantung pada aset dalam koleksi Anda.
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)Tentukan mosaik untuk koleksi. Konfigurasi mosaik mengontrol bagaimana item dikueri, difilter, dan digabungkan untuk membuat satu tampilan data di Penjelajah GeoCatalog. Contoh konfigurasi mosaik berikut tidak menerapkan parameter atau filter kueri tambahan. Akibatnya, ketika konfigurasi ini dipilih dalam Penjelajah GeoCatalog, semua item dalam koleksi ditampilkan, dengan item terbaru ditampilkan terlebih dahulu.
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)Bidang
cqlkonfigurasi mosaik dapat digunakan untuk memfilter item berdasarkan propertinya. Misalnya, jika item STAC Anda menerapkan ekstensi [eo][eo], Anda dapat menentukan filter "awan rendah" (kurang dari 10% berawan) dengan"cql": [{"op": "<=", "args": [{"property": "eo:cloud_cover"}, 10]}]Tentukan Pengaturan Ubin untuk koleksi tersebut. Ini mengontrol fitur seperti tingkat zoom minimum.
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"} )
Memperbarui koleksi
Anda dapat memperbarui koleksi yang sudah ada dengan mengirimkan permintaan PUT ke endpoint /stac/collections/{collection_id}.
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 Kode status menunjukkan bahwa koleksi berhasil diperbarui.
Membersihkan sumber daya
Anda dapat menggunakan DELETE permintaan untuk menghapus koleksi dari GeoCatalog Anda. Menghapus koleksi juga akan menghapus:
- Semua Item STAC yang menjadi bagian dari koleksi tersebut.
- Semua aset yang menjadi turunan dari item-item tersebut.
- Semua aset pada tingkat kumpulan dari koleksi tersebut.
Quickstart, Tambahkan Item STAC ke koleksi, menggunakan koleksi ini, jadi jangan hapus dulu jika Anda berencana untuk menyelesaikan quickstart tersebut.
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)
Kode 204 status menunjukkan bahwa Koleksi Anda telah dihapus.
Peringatan
Jika Anda menghapus koleksi, Anda harus menunggu setidaknya 45 detik sebelum mencoba membuat koleksi baru dengan nama / ID yang identik. Jika Anda mencoba membuat koleksi baru menggunakan nama yang sama dengan koleksi yang dihapus, Anda menerima kesalahan. Jika kesalahan ini terjadi, coba buat ulang koleksi setelah penantian 45 detik.