Bagikan melalui


Mengonfigurasi pengaturan render untuk memvisualisasikan data di Microsoft Planetary Computer Pro

Untuk memvisualisasikan data geospasial menggunakan penjelajah data Microsoft Planetary Computer Pro atau TILER API, Anda harus menentukan konfigurasi render untuk koleksi SpatioTemporal Asset Catalog (STAC) Anda. Konfigurasi render menentukan bagaimana aset data dalam item STAC Anda harus digabungkan, diproses, dan ditata untuk membuat petak peta.

Panduan ini memandu Anda melalui proses pembuatan konfigurasi render, mulai dari memahami prasyarat hingga mengonfigurasi opsi tingkat lanjut. Kemampuan penyajian Planetary Computer Pro dibangun di atas proyek TiTiler sumber terbuka.

Prasyarat

Sebelum Anda dapat mengonfigurasi penyajian, pastikan langkah-langkah prasyarat berikut selesai:

  1. Koleksi STAC Ada: Anda membuat koleksi STAC di Planetary Computer Pro.
  2. Data yang Diserap: Anda menambahkan item STAC yang berisi aset data geospasial yang ingin Anda visualisasikan ke dalam koleksi.
  3. item_assets Ditentukan dalam Koleksi: Definisi JSON koleksi STAC Anda harus menyertakan bagian yang terdefinisi dengan baik item_assets. Properti ini menginformasikan mesin penyajian tentang aset data umum (dan propertinya seperti jenis data atau pita) yang tersedia di seluruh item dalam koleksi. Konfigurasi render mengacu pada kunci aset yang ditentukan di sini.

Proses untuk membangun Konfigurasi Render

Langkah Judul Deskripsi
1 Tentukan item_assets dalam Koleksi JSON Anda Pertama, Anda perlu memastikan JSON koleksi STAC Anda menyertakan bagian item_assets yang terdefinisi dengan jelas yang menjelaskan aset-aset umum dalam item Anda.
2 Memahami Tujuan Data dan Visualisasi Anda Selanjutnya, tentukan jenis data yang sedang Anda kerjakan dan putuskan bagaimana Anda ingin data tersebut muncul secara visual (peta warna pita tunggal, RGB multi-band).
3 Membuat Objek Konfigurasi Render Sekarang, buat struktur JSON dasar yang menyimpan satu atau beberapa konfigurasi render untuk UI Explorer.
4 options Tentukan String - Parameter Inti Konfigurasikan parameter TiTiler penting dalam options string untuk memilih aset atau pita yang benar dan menerapkan gaya dasar seperti peta warna atau penskalaan ulang.
5 Tambahkan Parameter Tingkat Lanjut options (Sesuai Kebutuhan) Secara opsional, tingkatkan visualisasi Anda dengan menambahkan fitur TiTiler tingkat lanjut seperti ekspresi, algoritma, koreksi warna, atau peta warna kustom menggunakan options string.
6 Menambahkan Konfigurasi Render ke Koleksi Anda Terakhir, terapkan daftar konfigurasi render yang Anda buat ke koleksi STAC Anda menggunakan antarmuka web atau API.

Langkah 1: Tentukan item_assets dalam Koleksi JSON Anda

Bidang item_assets dalam koleksi Anda JSON sangat penting untuk penyajian karena menyediakan skema yang menjelaskan aset yang terkandung dalam item koleksi. Skema ini memungkinkan mesin penyajian dan aplikasi web Explorer untuk memahami data yang tersedia untuk visualisasi tanpa memeriksa item individual. Ini mendeklarasikan kunci (nama) aset, seperti image, , redNIR, atau elevation, yang mereferensikan konfigurasi render Anda. Selain itu, item_assets dapat menyertakan metadata seperti eo:bands untuk aset multi-band, memfasilitasi pemilihan pita tertentu untuk penyajian. Explorer menggunakan informasi ini untuk mengisi menu dan memahami struktur data keseluruhan.

Contoh item_assets untuk aset NAIP 4-band:

{
  "item_assets": {
    "image": {
      "type": "image/tiff; application=geotiff; profile=cloud-optimized",
      "roles": [
        "data"
      ],
      "title": "RGBIR COG tile",
      "eo:bands": [
        {
          "name": "Red",
          "common_name": "red",
          "description": "Red band, 610-680 nm"
        },
        {
          "name": "Green",
          "common_name": "green",
          "description": "Green band, 510-600 nm"
        },
        {
          "name": "Blue",
          "common_name": "blue",
          "description": "Blue band, 420-530 nm"
        },
        {
          "name": "NIR",
          "common_name": "nir",
          "description": "Near-infrared band, 830-920 nm"
        }
      ]
    }
  },
  // ... other collection properties ...
}

Untuk informasi selengkapnya tentang item_assets, lihat bagian Aset Item di Gambaran Umum STAC. Juga lihat spesifikasi resmi Ekstensi Aset Item STAC.

Pastikan file JSON koleksi STAC Anda menyertakan bagian ini sebelum melanjutkan. Anda dapat memperbarui definisi koleksi melalui API atau antarmuka web.

Langkah 2: Memahami Tujuan Data dan Visualisasi Anda

Sebelum membuat konfigurasi, tentukan bagaimana Anda ingin memvisualisasikan data Anda:

Jenis Data Deskripsi Contoh Tujuan Visualisasi
DataSingle-Band Setiap piksel memiliki satu nilai. elevasi, suhu, klasifikasi penutup lahan, indeks terhitung Petakan nilai tunggal ini ke rentang warna atau warna diskrit menggunakan peta warna.
Multi-Band Data Data memiliki beberapa pita per piksel. Citra satelit RGB, data multi-spektral Gabungkan tiga pita tertentu untuk mewakili saluran Merah, Hijau, dan Biru dari gambar output.
Data Turunan (Ekspresi) Hitung nilai baru dari satu atau beberapa pita/aset. NDVI dari band Merah dan NIR Tentukan ekspresi matematika dan visualisasikan hasilnya (pita tunggal dengan peta warna atau multi-pita secara langsung).
Data Turunan (Algoritma) Hitung nilai baru di seluruh piksel. Hillshade memvisualisasikan kontur dari data ketinggian. Gunakan algoritma matematika untuk mengubah data menjadi visualisasi.
Kubus Data (GRIB/NetCDF) Data yang disimpan dalam format GRIB atau NetCDF dengan beberapa variabel dan dimensi. waktu, tingkat tekanan Pilih variabel tertentu dan mungkin mengambil irisan melalui dimensi lain (seperti waktu) untuk visualisasi 2D.

Langkah 3: Buat Objek Konfigurasi Render

Konfigurasi render didefinisikan sebagai daftar objek JSON (atau kamus Python jika menggunakan API). Setiap objek dalam daftar mewakili satu opsi visualisasi yang akan muncul di menu dropdown Explorer.

Struktur Dasar:

[
  {
    "id": "unique-render-id",
    "name": "Human-Readable Name for UI",
    "description": "Optional: More details about this render.",
    "type": "raster-tile", // Usually "raster-tile"
    "options": "key1=value1&key2=value2...", // The core TiTiler parameters
    "minZoom": 8 // Optional: Minimum map zoom level to display this layer
  },
  {
    // ... another render configuration object ...
  }
]
  • id: Pengidentifikasi unik yang dapat dibaca mesin untuk opsi render ini dalam koleksi.
  • name: Nama tampilan yang ditampilkan di UI Penjelajah.
  • description: Teks opsional memberikan lebih banyak konteks.
  • type: Biasanya "raster-tile".
  • options: String yang berisi parameter kueri URL (key=value pasangan dipisahkan oleh &) yang mengontrol mesin penyajian TiTiler. Di sinilah sebagian besar penyesuaian terjadi.
  • minZoom: Bilangan bulat opsional yang menentukan tingkat pembesaran peta minimum di mana lapisan ini menjadi terlihat. Berguna untuk mengelola performa dengan data resolusi tinggi.

Menggunakan struktur yang sama, dimungkinkan untuk memiliki beberapa konfigurasi render untuk data yang sama sehingga data dapat divisualisasikan dengan berbagai cara.

Langkah 4: Tentukan options String - Parameter Inti

String options adalah inti dari konfigurasi render. Ini menggunakan key=value&key=value format. Berikut adalah parameter yang paling umum:

Mengidentifikasi Aset-Band

Pengaturan Deskripsi Kasus Penggunaan Contoh
assets={asset_key} Menentukan aset yang akan digunakan, di mana {asset_key} cocok dengan kunci yang ditentukan dalam item_assets koleksi Anda. Penyajian band tunggal menggunakan satu aset assets=elevation
Penyajian tiga pita menggunakan tiga aset pita tunggal terpisah (urutan menentukan R, G, B) assets=B04&assets=B03&assets=B02
Pemrosesan menggunakan satu aset multi-frekuensi assets=image (sering digunakan dengan asset_bidx)
asset_bidx={asset_key}\|{band_index1},{band_index2},... Memilih indeks pita frekuensi tertentu dari dalam satu aset multi-band yang ditentukan oleh assets. Indeks pita biasanya berbasis 1. Tiga pita RGB dari pita 1, 2, 3 aset image assets=image&asset_bidx=image\|1,2,3
Tiga pita Inframerah Warna Palsu (NIR, Merah, Hijau) dari pita 4, 1, 2 aset image assets=image&asset_bidx=image\|4,1,2
Perenderan pita tunggal hanya menggunakan pita 4 dari aset image assets=image&asset_bidx=image\|4

2. Pemformatan Data Single-Band

Pengaturan Deskripsi Contoh
colormap_name={name} Menerapkan peta warna bernama yang telah ditentukan sebelumnya. Contoh umum: viridis, plasma, gray, rdylgn. Lihat peta warna bernama yang tersedia. assets=elevation&colormap_name=viridis
rescale={min_val},{max_val} Membentangkan atau mengompresi nilai data agar pas dengan rentang lengkap peta warna. Nilai di luar rentang ini dibatasi ke warna min/maks. Petakan nilai elevasi dari 100 m hingga 1500 m di seluruh peta warna lengkap: assets=elevation&colormap_name=viridis&rescale=100,1500

3. Memformat Data Multi-Band (RGB)

Pengaturan Deskripsi Contoh
Urutan pita RGB Pita RGB secara implisit didefinisikan oleh urutan dalam assets (untuk aset terpisah) atau asset_bidx (untuk pita dalam aset). Lihat contoh pada tabel Identifikasi Aset/Pita Alokasi
rescale={min_val},{max_val} (Opsional) Dapat digunakan untuk menskalakan nilai input pita R, G, B sebelum memetakannya ke rentang tampilan 0-255. Berguna jika data sumber Anda belum 8-bit. assets=B04&assets=B03&assets=B02&rescale=0,3000
color_formula={formula_string} (Opsional) Menerapkan rumus koreksi warna. Lihat opsi tingkat lanjut di bagian berikutnya.

Langkah 5: Tambahkan Parameter Tingkat Lanjut options (Sesuai Kebutuhan)

Di luar dasar-dasarnya, TiTiler menawarkan banyak parameter tingkat lanjut melalui options string:

1. Ekspresi

Pengaturan Deskripsi Format/Nilai Contoh
expression={formula} Menentukan rumus matematika menggunakan kunci aset sebagai variabel Operator standar (+, -, *, /) dan tanda kurung expression=(B08-B04)/(B08+B04)
asset_as_band=true Diperlukan saat ekspresi menggunakan beberapa aset pita tunggal true atau false expression=(B08-B04)/(B08+B04)&asset_as_band=true

Detail lainnya:

  • Contoh hasil pita tunggal: expression=(B08-B04)/(B08+B04)&asset_as_band=true&colormap_name=rdylgn&rescale=-1,1
  • Ekspresi multi-frekuensi menggunakan titik koma: expression=B04*1.5;B03*1.1;B02*1.3&asset_as_band=true
  • Saat menggunakan expression, Anda umumnya tidak memerlukan assets atau asset_bidx

2. Algoritma

Pengaturan Deskripsi Format/Nilai Contoh
algorithm={name} Menerapkan algoritma pemrosesan piksel yang telah ditentukan sebelumnya hillshade, contoursterrarium, terrainrgb,normalizedIndex algorithm=hillshade
algorithm_params={json_string} Parameter untuk algoritma (JSON yang dikodekan URL) Bervariasi menurut algoritma algorithm_params=%7B%22azimuth%22%3A%20315%2C%20%22angle_altitude%22%3A%2045%7D
buffer={integer} Menambahkan buffer piksel di sekitar petak peta (sering kali diperlukan untuk algoritma) Nilai bilangan bulat buffer=3

Contoh lengkap:assets=elevation&algorithm=hillshade&colormap_name=gray&buffer=3&algorithm_params=%7B%22azimuth%22%3A%20315%2C%20%22angle_altitude%22%3A%2045%7D

Untuk detail tentang algoritma tertentu, lihat dokumentasi Algoritma TiTiler dan algoritma Mapbox

3. Koreksi Warna (untuk output RGB/Tiga pita)

Pengaturan Deskripsi Rancangan Contoh
color_formula={formula_string} Menerapkan penyesuaian warna String yang dipisahkan oleh spasi dengan penyesuaian Gamma, Saturasi, dan/atau Sigmoidal color_formula=Gamma RGB 2.5 Saturation 1.4 Sigmoidal RGB 15 0.35

Rincian format:

  • Gamma {BANDS} {VALUE} - Menyesuaikan kecerahan
  • Saturation {PROPORTION} - Menyesuaikan intensitas warna
  • Sigmoidal {BANDS} {CONTRAST} {BIAS} - Sesuaikan kontras

Untuk informasi selengkapnya tentang koreksi warna, lihat dokumentasi TiTiler.

4. Peta Warna Kustom (untuk output pita tunggal)

Pengaturan Deskripsi Rancangan Contoh
colormap={json_string} Menentukan peta warna kustom Nilai data pemetaan JSON yang dikodekan URL ke daftar RGBA [R,G,B,Alpha] colormap={\"1\":[54,124,20,255],\"2\":[28,67,0,255],\"3\":[94, 91, 32, 255],\"4\":[234, 99, 32, 255],\"5\":[237, 232, 60, 255],\"6\":[236, 31, 175, 255],\"7\":[19, 0,239, 255], \"8\":[209, 3, 0, 255]}

Contoh dekode ke: Memetakan nilai 1 ke hijau gelap, 2 ke hijau sangat gelap, 3 ke hijau zaitun, 4 ke oranye-merah, 5 ke kuning, 6 ke merah muda/magenta, 7 ke biru-violet, dan 8 ke merah.

5. Penanganan Data

Pengaturan Deskripsi Contoh
nodata={value} Tentukan nilai piksel untuk membuat transparan nodata=0 atau nodata=-9999 atau nodata=nan
unscale={true\|false} Menerapkan skala/offset dari metadata GeoTIFF unscale=true

6. Kinerja / Perilaku Pengaturan Ubin

Pengaturan Deskripsi Rancangan Contoh
maxItemsPerTile={integer} Batas jumlah item STAC per petak peta Integer maxItemsPerTile=20
skipcovered={true\|false} Lewati item yang diliput oleh orang lain true atau false skipcovered=true
exitwhenfull={true\|false} Hentikan pemrosesan saat petak peta tercakup sepenuhnya true atau false exitwhenfull=true
time_limit={seconds} Waktu maksimum untuk merender petak peta Bilangan bulat (detik) time_limit=10

7. Parameter Data Kubus (GRIB/NetCDF)

Pengaturan Jenis Data Deskripsi Contoh
subdataset_bands={band_index} GRIB Pilih pesan atau pita tertentu assets=grib_data&subdataset_bands=1&colormap_name=jet&rescale=273,300
subdataset_name={variable_name} NetCDF Pilih variabel untuk divisualisasikan assets=netcdf_data&subdataset_name=temperature
datetime={timestamp} NetCDF Pilih potongan waktu (ISO 8601) datetime=2023-10-26T12:00:00Z

Contoh NetCDF lengkap:assets=netcdf_data&subdataset_name=temperature&datetime=2023-10-26T12:00:00Z&colormap_name=viridis&rescale=0,30

Langkah 6: Tambahkan Konfigurasi Render ke Koleksi Anda

Setelah Anda membuat daftar konfigurasi render (satu atau beberapa objek JSON), tambahkan ke koleksi STAC Anda:

Menggunakan Antarmuka Web:

  1. Navigasikan ke koleksi Anda di portal Planetary Computer Pro.
  2. Pilih tombol Konfigurasi .
  3. Buka tab Render .
  4. Tempelkan daftar JSON Anda ke editor atau gunakan bidang UI untuk membuatnya.
  5. Simpan perubahan.

Cuplikan layar antarmuka web konfigurasi render yang menampilkan opsi untuk menyiapkan konfigurasi render.

Untuk informasi selengkapnya tentang mengonfigurasi koleksi, lihat Mengonfigurasi koleksi dengan antarmuka web.

Menggunakan API:

Gunakan permintaan HTTP POST ke endpoint pengaturan tampilan koleksi.

import requests
import json
import azure.identity

geocatalog_url = <your geocatalog url>
collection_id = <your collection id>

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

response = requests.post(
    f"{geocatalog_url}/stac/collections/{collection_id}/configurations/render-options",
    json=render_config, # Your list of render config dicts
    headers=headers,
    params={"api-version": "2025-04-30-preview"} # Use the appropriate API version
)

if response.status_code == 200:
    print("Render configuration updated successfully.")
    print(response.json())
else:
    print(f"Error updating render configuration: {response.status_code}")
    print(response.text)

Untuk informasi selengkapnya tentang menggunakan STAC Collection API, lihat Membuat koleksi STAC (contoh API).

Contoh

Berikut adalah berbagai contoh options string dan objek konfigurasi render lengkap:

1. Single-Band Perubahan Biomassa dengan Peta Warna dan Penyesuaian Skala:

 {
    "id": "biomass-change",
    "name": "Biomass Change from prior year (tonnes)",
    "description": "Annual estimates of changes (gains and losses) in aboveground woody biomass.",
    "type": "raster-tile",
    "options": 'assets=biomass_change_wm&colormap_name=spectral&rescale=-5000,5000',
    "minZoom": 2
  }

2. Three-Band Warna Alami (RGB) dari aset terpisah:

 {
    "id": "natural-color",
    "name": "Natural color",
    "description": "True color composite of visible bands (B04, B03, B02)",
    "type": "raster-tile",
    "options": "assets=B04&assets=B03&assets=B02&nodata=0&color_formula=Gamma RGB 3.2 Saturation 0.8 Sigmoidal RGB 25 0.35",
    "minZoom": 9
  }

3. Three-Band Warna Palsu (NIR, R, G) dari saluran dalam satu aset:

{
    "id": "color-infrared",
    "name": "Color infrared",
    "description": "Highlights healthy (red) and unhealthy (blue/gray) vegetation.",
    "type": "raster-tile",
    "options": "assets=image&asset_bidx=image|4,1,2&color_formula=Sigmoidal RGB 15 0.35",
    "minZoom": 12
  }

4. Perhitungan NDVI menggunakan Ekspresi:

{
    "id": "normalized-difference-veg-inde",
    "name": "Normalized Difference Veg. Index (NDVI)",
    "description": "Normalized Difference Vegetation Index (B08-B04)/(B08+B04), darker green indicates healthier vegetation.",
    "type": "raster-tile",
    "options": "nodata=0&expression=(B08-B04)/(B08+B04)&rescale=-1,1&colormap_name=rdylgn&asset_as_band=true",
    "minZoom": 9
  }

5. Algoritma Hillshade:

{
    "id": "hillshade",
    "name": "Hillshade",
    "description": "Terrain visualization based on elevation.",
    "type": "raster-tile",
    "options": "assets=data&colormap_name=gray&algorithm=hillshade&buffer=3&algorithm_params=%7B%22azimuth%22%3A%20315%2C%20%22angle_altitude%22%3A%2045%7D",
    "minZoom": 7
  }

6. Visualisasi Suhu NetCDF:

{
    "id": "pr-1950-07-07",
    "name": "Precipitation (1950-07-07)",
    "description": "Precipitation from NetCDF data.",
    "type": "raster-tile",
    "options": "assets=cmip&rescale=0,0.01&colormap_name=viridis&subdataset_name=pr&datetime=1950-07-07T00:00:00",
    "minZoom": 4
  }

Referensi: Semua options Parameter

String options menerima pasangan kunci-nilai berikut (lihat dokumentasi TiTiler untuk detail -tanggal yang paling up-to):

Pengaturan Tipe Deskripsi Contoh Penggunaan
assets Str Kunci aset dari item_assets. Ulangi kunci untuk beberapa aset. assets=B04&assets=B03&assets=B02
expression Str Ekspresi matematika menggunakan kunci aset. expression=(B08-B04)/(B08+B04)
asset_bidx Str Indeks pita untuk aset multi-band. Format: {asset_key}|{idx1},{idx2},... asset_bidx=image|4,1,2
asset_as_band bool Perlakukan aset sebagai expression pita tunggal. Diperlukan saat ekspresi menggunakan beberapa aset. asset_as_band=true
colormap_name Str Nama peta warna TiTiler yang telah ditentukan sebelumnya. colormap_name=viridis
colormap Str JSON yang dikodekan URL mendefinisikan peta warna kustom. colormap=%7B%221%22%3A%5B...%5D%7D
rescale Str Nilai min dan maks yang dipisahkan koma untuk penskalaan data. rescale=0,3000
color_formula Str Rumus koreksi warna yang dipisahkan spasi (Gamma, Saturasi, Sigmoidal). color_formula=Gamma RGB 2.2 Saturation 1.1
nodata str/float/int Nilai piksel untuk diperlakukan sebagai tidak ada data (transparan). nodata=0 atau nodata=-9999.0 atau nodata=nan
unscale bool Terapkan skala/offset dari metadata GeoTIFF. unscale=true
algorithm Str Nama algoritma pemrosesan dari TiTiler. algorithm=hillshade
algorithm_params Str String JSON yang dikodekan URL dengan parameter untuk algoritma. algorithm_params=%7B%22azimuth%22%3A315%7D
buffer mengapung Buffer piksel di sekitar ubin (sering diperlukan untuk algoritma). buffer=3
maxItemsPerTile int (integer) Item STAC maks untuk diproses per petak peta. maxItemsPerTile=20
skipcovered bool Lewati item yang sepenuhnya dikaburkan oleh item lain. skipcovered=true
exitwhenfull bool Hentikan pemrosesan petak setelah tercakup sepenuhnya. exitwhenfull=true
time_limit int (integer) Waktu pemrosesan maksimum (detik) per petak peta. time_limit=10
subdataset_bands int (integer) Indeks pita/pesan untuk data GRIB. subdataset_bands=1
subdataset_name Str Nama variabel untuk data NetCDF. subdataset_name=temperature
datetime Str Stempel waktu ISO 8601 untuk memilih potongan waktu di NetCDF. datetime=2023-10-26T12:00:00Z
resampling Str Metode pengambilan sampel ulang (nearest, bilinear). resampling=nearest