Lewati ke konten utama

Menggunakan STAC API

Piksel Explorer memperlihatkan seluruh katalog data melalui STAC API 1.1.0 (SpatioTemporal Asset Catalog). Dengan STAC, Anda dapat mencari, memfilter, dan mengambil metadata citra secara terprogram tanpa perlu membuka antarmuka web.

Endpoint utama

https://explorer.piksel.big.go.id/stac

Mengapa STAC

STAC adalah standar terbuka untuk katalog aset geospasial. Menggunakan STAC berarti:

  • Satu API, banyak katalog. Kode yang bekerja dengan STAC Piksel juga bekerja dengan katalog lain seperti Microsoft Planetary Computer, Earth Search, dan USGS Landsat.
  • Filter kuat. Kueri berdasarkan area, waktu, tutupan awan, atau field metadata apa pun menggunakan CQL2.
  • Interoperable. Kompatibel dengan pystac-client, stackstac, odc-stac, QGIS, dan banyak tool lainnya.

Struktur Endpoint

EndpointFungsi
/stacKatalog akar — daftar seluruh collection
/stac/collectionsDaftar collection yang tersedia
/stac/collections/{product}Metadata satu collection
/stac/searchCari item lintas collection dengan filter
/stac/queryablesField yang dapat difilter

Contoh: Cari Item dengan pystac-client

pystac-client adalah cara paling umum mengakses STAC API dari Python.

pip install pystac-client
from pystac_client import Client

catalog = Client.open("https://explorer.piksel.big.go.id/stac")

search = catalog.search(
collections=["ls9_c2l2_sr"],
bbox=[119.5, -9.5, 121.5, -8.0],
datetime="2022-08-01/2022-08-31",
limit=100,
)

for item in search.items():
print(item.id, item.properties["datetime"])

Contoh di atas mencari citra Landsat 9 Surface Reflectance di wilayah Nusa Tenggara Timur untuk bulan Agustus 2022.

Filter Lanjutan dengan CQL2

Piksel STAC mendukung CQL2 (Common Query Language) untuk filter kompleks yang tidak bisa diekspresikan dengan parameter dasar.

search = catalog.search(
collections=["s2_l2a"],
bbox=[95.0, -11.0, 141.0, 6.0],
filter_lang="cql2-json",
filter={
"op": "and",
"args": [
{"op": "<=", "args": [{"property": "eo:cloud_cover"}, 20]},
{"op": ">=", "args": [{"property": "datetime"}, "2024-01-01T00:00:00Z"]},
],
},
)

Contoh di atas mencari citra Sentinel-2 di seluruh Indonesia dengan tutupan awan ≤ 20% sejak Januari 2024.

Untuk melihat semua field yang dapat difilter, buka /stac/queryables.

Mengambil URL Aset

Setiap item STAC berisi aset — URL langsung ke file COG (Cloud-Optimized GeoTIFF) yang dapat dibaca oleh rioxarray, rasterio, atau odc-stac.

item = next(search.items())
red_band_url = item.assets["red"].href
print(red_band_url)

Aset ini dapat dibuka langsung tanpa mengunduh seluruh file, memanfaatkan HTTP range requests.

Pagination

Untuk hasil pencarian yang besar, gunakan iterator pystac-client yang menangani pagination secara otomatis:

for item in search.items():
process(item)

Gunakan parameter limit untuk mengatur ukuran halaman dan max_items untuk membatasi total hasil yang diambil.