Sdílet prostřednictvím


Nakonfigurujte nastavení vykreslování pro vizualizaci dat v Microsoft Planetary Computer Pro

Pokud chcete vizualizovat geoprostorová data pomocí Průzkumníka dat Microsoft Planety Computer Pro nebo rozhraní Tiler API, musíte definovat jednu nebo více konfigurací vykreslování pro každou z kolekcí STAC (SpatioTemporal Asset Catalog). Konfigurace vykreslení určuje, jak se datové prostředky v rámci položek STAC kombinují, zpracovávají a stylují pro vytváření mapových dlaždic.

Tato příručka vás provede procesem vytváření konfigurací vykreslování, od pochopení požadavků až po konfiguraci pokročilých možností. Funkce vykreslování planetárního počítače Pro jsou postaveny na opensourcovém projektu TiTiler .

Prerequisites

Než budete moct nakonfigurovat vykreslování, ujistěte se, že jsou splněné následující nezbytné kroky:

  1. Kolekce STAC existuje: Vytvořili jste kolekci STAC v planetárním počítači Pro.
  2. Ingestování dat:Přidali jste položky STAC obsahující geoprostorové datové prostředky, které chcete vizualizovat do kolekce.

Postup sestavení konfigurace vykreslení

Step Title Description
1 Definujte item_assets ve vašem JSON kolekce Nejprve je potřeba zajistit, aby JSON kolekce STAC obsahoval dobře definovanou item_assets sekci, která popisuje společné prvky v rámci vašich položek.
2 Vysvětlení cíle dat a vizualizace Dále určete typ dat, se kterými pracujete, a rozhodněte se, jak se mají zobrazovat vizuálně (barevná mapa s jedním pásmem, vícesměrová RGB).
3 Vytvoření objektu konfigurace vykreslení Teď vytvořte základní strukturu JSON, která obsahuje jednu nebo více konfigurací vykreslování pro uživatelské rozhraní Průzkumníka.
4 options Definování řetězce – základní parametry Nakonfigurujte základní parametry TiTileru v řetězci options , abyste vybrali správné prostředky nebo pásma a použili základní styly, jako jsou barevné mapy nebo změna měřítka.
5 Přidání rozšířených options parametrů (podle potřeby) Volitelně můžete vizualizaci vylepšit přidáním pokročilých funkcí TiTileru, jako jsou výrazy, algoritmy, opravy barev nebo vlastní barevné mapy pomocí options řetězce.
6 Přidání konfigurace vykreslování do kolekce Nakonec použijte seznam konfigurace vykreslování, který jste vytvořili v kolekci STAC pomocí webového rozhraní nebo rozhraní API.

Krok 1: Definování item_assets ve formátu JSON kolekce

Pole item_assets ve formátu JSON kolekce je nezbytné pro vykreslování, protože poskytuje konsolidovaný popis prostředků obsažených v položkách kolekce. Vykreslovací modul a webová aplikace Explorer používají pole item_assets k pochopení dostupných dat pro vizualizaci bez kontroly jednotlivých položek. Deklaruje klíče (názvy) prostředků, jako image, red, NIR nebo elevation, na které se pak odkazuje pomocí konfiguračních parametrů vykreslování. Kromě toho mohou item_assets zahrnovat metadata rozšíření STAC, jako je eo:bands pro vícepásmové prostředky, což usnadňuje výběr konkrétních pásem pro vykreslování. Průzkumník tyto informace používá k naplnění nabídek a pochopení celkové datové struktury.

Příklad item_assets pro 4pásmový prostředek NAIP:

{
  "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 ...
}

Další informace o item_assetsproduktu naleznete v části Prostředky položky v přehledu STAC. Projděte si také oficiální specifikaci rozšíření STAC Item Assets.

Než budete pokračovat, ujistěte se, že JSON kolekce STAC obsahuje tuto část. Definici kolekce můžete aktualizovat prostřednictvím rozhraní API nebo webového rozhraní.

Krok 2: Vysvětlení cíle dat a vizualizace

Před vytvořením konfigurace určete, jak chcete vizualizovat data:

Datový typ Description Example Cíl vizualizace
Single-Band data Každý pixel má jednu hodnotu. zvýšení, teplota, klasifikace krytu půdy, počítaný index Namapovat tyto jednotlivé hodnoty na rozsah barev nebo samostatné barvy pomocí mapy barev.
Data s více pásmy Data mají více pásem na pixel. Satelitní snímky RGB, multispektrální data Zkombinujte tři specifická pásma, která představují kanály Red, Green a Blue ve výstupním obrázku.
Odvozená data (výrazy) Vypočítejte novou hodnotu z jednoho nebo více pásem/prostředků. Normalizovaný rozdílový vegetační index (NDVI) z červeného a NIR pásma Definujte matematický výraz a vizualizujte výsledek (jednopásmový s barevnou mapou nebo vícepásmový přímo).
Odvozená data (algoritmy) Vypočítejte novou hodnotu v pixelech. Hillshade zobrazuje kontury nadmořských výškových dat. Pomocí matematického algoritmu můžete transformovat data do vizualizace.
Datové krychle (GRIB/NetCDF) Data uložená ve formátech GRIB nebo NetCDF s více proměnnými a dimenzemi čas, hladiny tlaku Vyberte konkrétní proměnnou a případně průřez přes jiné dimenze (například čas) pro 2D vizualizaci.

Krok 3: Vytvoření objektu konfigurace vykreslení

Konfigurace vykreslování se definují jako seznam objektů JSON (nebo slovníků Pythonu, pokud používáte rozhraní API). Každý objekt v seznamu představuje jednu možnost vizualizace, která se zobrazí v rozevíracím seznamu Průzkumníka.

Základní struktura:

[
  {
    "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: Jedinečný strojově čitelný identifikátor pro tuto možnost vykreslení v kolekci.
  • name: Název zobrazený v uživatelském rozhraní Průzkumníka.
  • description: Nepovinný text poskytující další kontext.
  • type: Obvykle "raster-tile".
  • options: Řetězec obsahující parametr dotazu URL (key=value dvojice oddělené podle &), které řídí vykreslovací modul TiTiler. Tady se odehrává většina přizpůsobení.
  • minZoom: Volitelné celé číslo určující minimální úroveň přiblížení mapy, na které se tato vrstva zobrazí. Užitečné pro správu výkonu s daty s vysokým rozlišením.

Pomocí stejné struktury je možné mít více konfigurací vykreslování pro stejná data, aby bylo možné data vizualizovat několika způsoby.

Krok 4: Definování options řetězce – základní parametry

Řetězec options je jádrem konfigurace vykreslování. Používá key=value&key=value formát. Tady jsou nejběžnější parametry:

1. Identifikace prostředků/pásem

Parameter Description Případ použití Example
assets={asset_key} Určuje aktiva, která se mají použít, kde {asset_key} odpovídá klíči definovanému v kolekci item_assets. Jednopásmové renderování pomocí jednoho zdroje assets=elevation
Třípásmové vykreslování pomocí tří oddělených prostředků pro jednopásmové vykreslování, kde pořadí určuje barvy R, G, B. assets=B04&assets=B03&assets=B02
Vykreslování pomocí jednoho vícepásmového zdroje assets=image (často používané s asset_bidx)
asset_bidx={asset_key}\|{band_index1},{band_index2},... Vybere konkrétní indexy pásem v rámci jednoho vícepásmového prostředku určeného assets. Indexy pásem jsou obvykle založené na 1. Třís pásma RGB z pásem 1, 2, 3 aktiva image assets=image&asset_bidx=image\|1,2,3
Třípásmové infračervené falešné barvy (NIR, červená, zelená) z pásem 4, 1, 2 aktiva image assets=image&asset_bidx=image\|4,1,2
Monopásmové vykreslování s využitím pouze pásma 4 prostředku image assets=image&asset_bidx=image\|4

2. Formátování Single-Band dat

Parameter Description Example
colormap_name={name} Použije předdefinovanou pojmenovanou mapu barev. Běžné příklady: viridis, plasma, gray, rdylgn. Viz podporované barevné mapy. assets=elevation&colormap_name=viridis
rescale={min_val},{max_val} Roztáhne nebo zkomprimuje hodnoty dat tak, aby odpovídaly celému rozsahu barevné mapy. Hodnoty mimo tento rozsah jsou uchycené na minimální/maximální barvy. Zobrazit hodnoty nadmořské výšky od 100 m do 1500 m přes celou barevnou mapu: assets=elevation&colormap_name=viridis&rescale=100,1500

3. Stylování dat s více pásmy (RGB)

Parameter Description Example
Pořadí pásem RGB Pásma RGB jsou implicitně definována pořadím v assets (pro samostatná aktiva) nebo asset_bidx (pro pásma v rámci aktiva). Podívejte se na příklady v tabulce Identifikace prostředků/pásů.
rescale={min_val},{max_val} (Volitelné) Lze použít ke škálování vstupních hodnot pásma R, G, B před jejich mapováním na rozsah zobrazení 0–255. Užitečné, pokud zdrojová data ještě nejsou 8bitová. assets=B04&assets=B03&assets=B02&rescale=0,3000
color_formula={formula_string} (Volitelné) Použije vzorce pro opravu barev. Další část obsahuje upřesňující možnosti.

Krok 5: Přidání rozšířených options parametrů (podle potřeby)

Kromě základů nabízí TiTiler mnoho pokročilých parametrů prostřednictvím options řetězce:

1. Výrazy

Parameter Description Format/Values Example
expression={formula} Definujte matematický vzorec pomocí klíčů aktiv jako proměnných. Standardní operátory (+, -, *, /) a závorky expression=(B08-B04)/(B08+B04)
asset_as_band=true Vyžaduje se, když výraz používá více prostředků s jedním pásmem . true nebo false expression=(B08-B04)/(B08+B04)&asset_as_band=true

Examples

  • Příklad výsledku s jedním pásmem: expression=(B08-B04)/(B08+B04)&asset_as_band=true&colormap_name=rdylgn&rescale=-1,1
  • Výrazy s více pásmy používají středníky: expression=B04*1.5;B03*1.1;B02*1.3&asset_as_band=true
  • Při použití expression, obvykle nepotřebujete assets nebo asset_bidx

2. Algoritmy

Parameter Description Format/Values Example
algorithm={name} Použití předdefinovaného algoritmu zpracování pixelů hillshade, contours, terrarium, , terrainrgbnormalizedIndex algorithm=hillshade
algorithm_params={json_string} Parametry algoritmu (JSON kódovaný adresou URL) Liší se podle algoritmu. algorithm_params=%7B%22azimuth%22%3A%20315%2C%20%22angle_altitude%22%3A%2045%7D
buffer={integer} Přidání vyrovnávací paměti pixelů kolem dlaždic (často potřebných pro algoritmy) Celočíselná hodnota buffer=3

Příkladassets=elevation&algorithm=hillshade&colormap_name=gray&buffer=3&algorithm_params=%7B%22azimuth%22%3A%20315%2C%20%22angle_altitude%22%3A%2045%7D

Podrobnosti o konkrétních algoritmech najdete v dokumentaci TiTiler Algorithm a Mapbox Hillshade.

3. Opravy barev (pro RGB / tříkanálový výstup)

Parameter Description Format Example
color_formula={formula_string} Nastavte úpravy barev Řetězec oddělený mezerami s nastavením gama, sytosti a/nebo Sigmoidální úpravy color_formula=Gamma RGB 2.5 Saturation 1.4 Sigmoidal RGB 15 0.35

Podrobnosti o formátu:

  • Gamma {BANDS} {VALUE} - Úprava jasu
  • Saturation {PROPORTION} - Upravit intenzitu barev
  • Sigmoidal {BANDS} {CONTRAST} {BIAS} - Upravit kontrast

Další informace o opravě barev najdete v dokumentaci TiTiler.

4. Vlastní barevné mapy (pro výstup s jedním pásmem)

Parameter Description Format Example
colormap={json_string} Definování vlastní barevné mapy Mapování hodnot dat JSON zakódovaných adresou URL na seznamy 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]}

Příklad dekóduje na: Mapuje hodnotu 1 na tmavě zelenou, 2 na velmi tmavě zelenou, 3 na olivově zelenou, 4 na oranžově červenou, 5 na žlutou, 6 na růžovo-purpurovou, 7 na modrofialovou a 8 na červenou.

5. Zpracování dat

Parameter Description Example
nodata={value} Určení hodnoty pixelu, aby byla průhledná nodata=0 nebo nodata=-9999 nebo nodata=nan
unscale={true\|false} Použití měřítka nebo posunu z metadat GeoTIFF unscale=true

6. Výkon / Chování při svázání

Parameter Description Format Example
maxItemsPerTile={integer} Omezení počtu položek STAC na dlaždici Integer maxItemsPerTile=20
skipcovered={true\|false} Přeskočit položky, na které se vztahuje něco jiného true nebo false skipcovered=true
exitwhenfull={true\|false} Zastavení zpracování, když je dlaždice plně pokrytá true nebo false exitwhenfull=true
time_limit={seconds} Maximální doba pro vykreslení dlaždice Celé číslo (sekundy) time_limit=10

7. Parametry datové krychle (GRIB/NetCDF)

Parameter Datový typ Description Example
subdataset_bands={band_index} GRIB Výběr konkrétní zprávy nebo pásma assets=grib_data&subdataset_bands=1&colormap_name=jet&rescale=273,300
subdataset_name={variable_name} NetCDF Výběr proměnné pro vizualizaci assets=netcdf_data&subdataset_name=temperature
datetime={timestamp} NetCDF Výběr časového úseku (ISO 8601) datetime=2023-10-26T12:00:00Z

Úplný příklad NetCDF:assets=netcdf_data&subdataset_name=temperature&datetime=2023-10-26T12:00:00Z&colormap_name=viridis&rescale=0,30

Krok 6: Přidání konfigurace vykreslování do kolekce

Jakmile sestavíte seznam konfigurace vykreslování (jeden nebo více objektů JSON), přidejte ho do kolekce STAC:

Pomocí webového rozhraní:

  1. Přejděte do své kolekce na portálu Planetární počítač Pro.
  2. Vyberte tlačítko Konfigurace .
  3. Přejděte na kartu Vykreslení .
  4. Vložte seznam JSON do editoru.
  5. Uložte změny výběrem možnosti Aktualizovat.

Snímek obrazovky s webovým rozhraním konfigurace vykreslování zobrazující možnosti nastavení konfigurací vykreslování

Další informace o konfiguraci kolekcí naleznete v tématu Konfigurace kolekce pomocí webového rozhraní.

Pomocí rozhraní API:

Definujte konfiguraci vykreslení kolekce pomocí koncového bodu create stac collection render options. Následuje příklad použití tohoto koncového bodu pomocí rozhraní REST API s Pythonem:

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)

Další informace o použití rozhraní STAC Collection API najdete v tématu Vytvoření kolekce STAC (příklady rozhraní API).

Examples

Tady jsou různé příklady options řetězce a kompletního objektu konfigurace vykreslení:

1. Single-Band Změna biomasy pomocí barevné mapy a přepočítání:

 {
    "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 přirozené barvy (RGB) ze samostatných zdrojů:

 {
    "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 False Color (NIR, R, G) z pásem v rámci jednoho snímku:

{
    "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. Výpočet NDVI pomocí výrazu:

{
    "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. Algoritmus 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. Vizualizace teploty 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
  }

Referenční informace: Všechny options parametry

Řetězec options přijímá následující páry klíč-hodnota (pro většinu up-to-date details najdete v dokumentaci TiTileru ):

Parameter Typ Description Příklad použití
assets str Klíče majetku z item_assets. Opakujte klíč pro více prostředků. assets=B04&assets=B03&assets=B02
expression str Matematický výraz s použitím klíčů assetů expression=(B08-B04)/(B08+B04)
asset_bidx str Pruhové indexy pro vícesměrový prostředek. Formát: {asset_key}|{idx1},{idx2},... asset_bidx=image|4,1,2
asset_as_band bool Zacházejte s prostředky expression jako s jedním pásmem. Vyžaduje se, když výraz používá více aktiv. asset_as_band=true
colormap_name str Předdefinovaný název mapy barev TiTiler. colormap_name=viridis
colormap str KÓD JSON kódovaný adresou URL definující vlastní mapu barev. colormap=%7B%221%22%3A%5B...%5D%7D
rescale str Minimální hodnoty oddělené čárkami a maximální hodnoty pro škálování dat rescale=0,3000
color_formula str Vzorec opravy barev oddělený mezerami (Gama, Sytost, Sigmoidal). color_formula=Gamma RGB 2.2 Saturation 1.1
nodata str/float/int Hodnota pixelu, která se má považovat za žádná data (transparentní). nodata=0 nebo nodata=-9999.0 nebo nodata=nan
unscale bool Použijte měřítko nebo posun z metadat GeoTIFF. unscale=true
algorithm str Název algoritmu zpracování TiTiler. algorithm=hillshade
algorithm_params str Řetězec JSON kódovaný adresou URL s parametry algoritmu. algorithm_params=%7B%22azimuth%22%3A315%7D
buffer float Pixelová vyrovnávací paměť kolem dlaždic (často nutná pro algoritmy). buffer=3
maxItemsPerTile int Maximální počet položek STAC ke zpracování na dlaždici maxItemsPerTile=20
skipcovered bool Přeskočte položky, které jsou zcela zakryty ostatními. skipcovered=true
exitwhenfull bool Jakmile je dlaždice plně pokrytá, zastavte zpracování dlaždice. exitwhenfull=true
time_limit int Maximální doba zpracování (sekundy) na dlaždici time_limit=10
subdataset_bands int Index datového pásma nebo zpráv pro data GRIB subdataset_bands=1
subdataset_name str Název proměnné pro data NetCDF subdataset_name=temperature
datetime str Časové razítko ISO 8601 pro výběr časového úseku v NetCDF datetime=2023-10-26T12:00:00Z
resampling str Metoda převzorkování (nearest, bilinear). resampling=nearest