Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Para visualizar dados geoespaciais usando o data explorer do Microsoft Planetary Computer Pro ou a API tiler, você deve definir uma ou mais configurações de renderização para cada uma das coleções do Catálogo de Ativos SpatioTemporal (STAC). Uma configuração de renderização especifica como os ativos de dados em seus itens STAC são combinados, processados e estilizados para criar blocos de mapa.
Este guia orienta você pelo processo de criação de configurações de renderização, desde a compreensão de pré-requisitos até a configuração de opções avançadas. As funcionalidades de renderização do Planetry Computer Pro são criadas com base no projeto TiTiler de software livre.
Prerequisites
Antes de configurar a renderização, verifique se as seguintes etapas de pré-requisito estão concluídas:
- A coleção STAC existe: Você criou uma coleção STAC no Planetry Computer Pro.
- Dados ingeridos: Você adicionou itens STAC que contêm os ativos de dados geoespaciais que deseja visualizar na coleção.
Processo para criar uma configuração de renderização
| Step | Title | Description |
|---|---|---|
| 1 |
Defina item_assets em seu JSON de coleção |
Primeiro, você precisa garantir que sua coleção STAC JSON inclua uma seção bem definida item_assets que descreva os ativos comuns em seus itens. |
| 2 | Entender sua meta de visualização e dados | Em seguida, determine o tipo de dados com os quais você está trabalhando e decida como deseja que eles apareçam visualmente (colormap de banda única, RGB de várias bandas). |
| 3 | Construir o objeto de configuração de renderização | Agora, crie a estrutura JSON básica que contém uma ou mais configurações de renderização para a interface do usuário do Explorer. |
| 4 |
Definir a cadeia options de caracteres – Parâmetros principais |
Configure os parâmetros essenciais do TiTiler dentro da cadeia de caracteres options para selecionar os ativos ou bandas corretos e aplicar estilos básicos como mapas de cores ou redimensionamento. |
| 5 |
Adicionar parâmetros avançados options (conforme necessário) |
Opcionalmente, aprimore sua visualização adicionando recursos avançados do TiTiler, como expressões, algoritmos, correção de cores ou colormaps personalizados usando a options cadeia de caracteres. |
| 6 | Adicionar a configuração de renderização à sua coleção | Por fim, aplique a lista de configuração de renderização que você criou à coleção STAC usando a interface da Web ou a API. |
Etapa 1: Definir item_assets em seu JSON de coleção
O campo item_assets em sua coleção JSON é essencial para renderização, pois fornece uma descrição consolidada dos ativos contidos nos itens da coleção. O mecanismo de renderização e o aplicativo Web Explorer usam o campo item_assets para entender os dados disponíveis para visualização sem inspecionar itens individuais. Ele declara as chaves (nomes) dos ativos, como image, , redNIRou elevation, que são referenciados pelas configurações de renderização. Além disso, item_assets pode incluir metadados de extensão STAC, como eo:bands para ativos de várias bandas, facilitando a seleção de bandas específicas para renderização. O Explorer usa essas informações para preencher menus e entender a estrutura geral de dados.
Exemplo item_assets para um ativo NAIP de 4 bandas:
{
"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 ...
}
Para obter mais informações sobre item_assets, consulte a seção Ativos de Item na Visão Geral do STAC. Consulte também a especificação oficial STAC Item Assets Extension.
Verifique se o JSON da coleção STAC inclui esta seção antes de continuar. Você pode atualizar sua definição de coleção por meio da API ou da interface da Web.
Etapa 2: Entender sua meta de visualização e dados
Antes de criar a configuração, determine como você deseja visualizar seus dados:
| Tipo de Dados | Description | Example | Meta de visualização |
|---|---|---|---|
| Dados de Single-Band | Cada pixel tem um valor. | elevação, temperatura, classificação de cobertura de terra, índice calculado | Mapeie esses valores únicos para um intervalo de cores ou cores discretas usando um mapa de cores. |
| Dados de várias bandas | Os dados têm várias bandas por pixel. | Imagens de satélite RGB, dados multispectrais | Combine três bandas específicas para representar os canais Vermelho, Verde e Azul da imagem de saída. |
| Dados derivados (expressões) | Calcule um novo valor a partir de uma ou mais faixas/ativos. | Índice de Vegetação de Diferença Normalizada (NDVI) das bandas Red e NIR | Defina uma expressão matemática e visualize o resultado (banda única com mapa de cores ou várias bandas diretamente). |
| Dados derivados (algoritmos) | Calcule um novo valor em todos os pixels. | Hillshade mostra contornos de dados de elevação | Use um algoritmo matemático para transformar dados em uma visualização. |
| Cubos de Dados (GRIB/NetCDF) | Dados armazenados em formatos GRIB ou NetCDF com várias variáveis e dimensões. | tempo, níveis de pressão | Selecione uma variável específica e, potencialmente, uma seção de outras dimensões (como o tempo) para visualização em 2D. |
Etapa 3: Construir o objeto de configuração de renderização
As configurações de renderização são definidas como uma lista de objetos JSON (ou dicionários Python se estiverem usando a API). Cada objeto na lista representa uma opção de visualização que será exibida na Lista suspensa do Explorer.
Estrutura básica:
[
{
"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: um identificador único legível por máquina para essa opção de renderização dentro da coleção. -
name: o nome de exibição mostrado na interface do Explorer. -
description: texto opcional fornecendo mais contexto. -
type: normalmente"raster-tile". -
options: uma cadeia de caracteres que contém parâmetros de consulta de URL (key=valuepares separados por&) que controlam o mecanismo de renderização tiTiler. É aqui que ocorre a maior parte da personalização. -
minZoom: inteiro opcional que especifica o nível mínimo de zoom do mapa no qual essa camada se torna visível. Útil para gerenciar o desempenho com dados de alta resolução.
Usando a mesma estrutura, é possível ter várias configurações de renderização para os mesmos dados para que os dados possam ser visualizados de várias maneiras.
Etapa 4: Definir a cadeia options de caracteres – Parâmetros principais
A options cadeia de caracteres é o coração da configuração de renderização. Ele usa um key=value&key=value formato. Aqui estão os parâmetros mais comuns:
1. Identificando Ativos/Bandas
| Parameter | Description | Caso de Uso | Example |
|---|---|---|---|
assets={asset_key} |
Especifica o(s) ativo(s) a serem usados, onde {asset_key} corresponde a uma chave definida na coleção item_assets. |
Renderização de banda única usando um ativo | assets=elevation |
| Renderização de três bandas usando três ativos de banda única separados (a ordem determina R, G, B) | assets=B04&assets=B03&assets=B02 |
||
| Renderização usando um único recurso de várias bandas |
assets=image (geralmente usado com asset_bidx) |
||
asset_bidx={asset_key}\|{band_index1},{band_index2},... |
Seleciona índices de banda específicos de dentro de um único ativo multibanda especificado por assets. Os índices de banda normalmente são baseados em 1. |
Três bandas RGB das bandas 1, 2, 3 do ativo image |
assets=image&asset_bidx=image\|1,2,3 |
Infravermelho de três bandas Cores falsas (NIR, Vermelho, Verde) das bandas 4, 1, 2 do ativo image |
assets=image&asset_bidx=image\|4,1,2 |
||
Renderização de banda única usando apenas a banda 4 do ativo image |
assets=image&asset_bidx=image\|4 |
2. Estilizando dados de banda única
| Parameter | Description | Example |
|---|---|---|
colormap_name={name} |
Aplica um mapa de cores nomeado predefinido. Exemplos comuns: viridis, , plasma, gray. rdylgn Consulte paletas de cores com suporte. |
assets=elevation&colormap_name=viridis |
rescale={min_val},{max_val} |
Alonga ou compacta os valores de dados para se ajustar ao intervalo completo do mapa de cores. Os valores fora desse intervalo são fixados nas cores mínima/máxima. | Mapeie valores de elevação de 100 m a 1500 m no mapa de cores completo: assets=elevation&colormap_name=viridis&rescale=100,1500 |
3. Estilização de dados multibanda (RGB)
| Parameter | Description | Example |
|---|---|---|
| Ordem das bandas RGB | As bandas RGB são definidas implicitamente pela ordem em assets (para ativos separados) ou asset_bidx (para bandas dentro de um ativo). |
Veja exemplos na tabela Identificar Ativos/Bandas |
rescale={min_val},{max_val} |
(Opcional) Pode ser usado para dimensionar os valores de entrada das bandas R, G, B antes de mapeá-los para o intervalo de exibição de 0 a 255. Útil se os dados de origem ainda não são de 8 bits. | assets=B04&assets=B03&assets=B02&rescale=0,3000 |
color_formula={formula_string} |
(Opcional) Aplica fórmulas de correção de cor. | Confira as opções avançadas na próxima seção. |
Etapa 5: Adicionar parâmetros avançados options (conforme necessário)
Além dos conceitos básicos, o TiTiler oferece muitos parâmetros avançados por meio da options cadeia de caracteres:
1. Expressões
| Parameter | Description | Format/Values | Example |
|---|---|---|---|
expression={formula} |
Defina uma fórmula matemática usando chaves de ativos como variáveis | Operadores padrão (+, , -, *) /e parênteses |
expression=(B08-B04)/(B08+B04) |
asset_as_band=true |
Necessário quando a expressão usa vários ativos de banda única |
true ou false |
expression=(B08-B04)/(B08+B04)&asset_as_band=true |
Examples
- Exemplo de resultado de banda única:
expression=(B08-B04)/(B08+B04)&asset_as_band=true&colormap_name=rdylgn&rescale=-1,1 - Expressões multibanda usam ponto e vírgula:
expression=B04*1.5;B03*1.1;B02*1.3&asset_as_band=true - Ao usar
expression, você geralmente não precisaassetsouasset_bidx
2. Algoritmos
| Parameter | Description | Format/Values | Example |
|---|---|---|---|
algorithm={name} |
Aplicar um algoritmo de processamento de pixel predefinido |
hillshade, contours, terrarium, , terrainrgbnormalizedIndex |
algorithm=hillshade |
algorithm_params={json_string} |
Parâmetros para o algoritmo (JSON codificado em URL) | Varia de acordo com o algoritmo | algorithm_params=%7B%22azimuth%22%3A%20315%2C%20%22angle_altitude%22%3A%2045%7D |
buffer={integer} |
Adicionar buffer de pixel ao redor de ladrilhos (geralmente necessário para algoritmos) | Valor inteiro | buffer=3 |
Exemploassets=elevation&algorithm=hillshade&colormap_name=gray&buffer=3&algorithm_params=%7B%22azimuth%22%3A%20315%2C%20%22angle_altitude%22%3A%2045%7D
Para obter detalhes sobre algoritmos específicos, consulte a documentação do Algoritmo TiTiler e Mapbox Hillshade
3. Correção de cor (para saída RGB/três bandas)
| Parameter | Description | Format | Example |
|---|---|---|---|
color_formula={formula_string} |
Aplicar ajustes de cor | Sequência de caracteres separada por espaços com ajustes de gama, saturação e/ou Sigmoidal | color_formula=Gamma RGB 2.5 Saturation 1.4 Sigmoidal RGB 15 0.35 |
Detalhes do formato:
-
Gamma {BANDS} {VALUE}- Ajustar o brilho -
Saturation {PROPORTION}- Ajustar a intensidade da cor -
Sigmoidal {BANDS} {CONTRAST} {BIAS}- Ajustar o contraste
Para obter mais informações sobre a correção de cores, consulte a documentação do TiTiler.
4. Mapas de cores personalizados (para saída de banda única)
| Parameter | Description | Format | Example |
|---|---|---|---|
colormap={json_string} |
Definir um mapa de cores personalizado | Valores de dados de mapeamento JSON codificados por URL para listas 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]} |
O exemplo decodifica para: Mapeia o valor 1 para verde escuro, 2 para verde muito escuro, 3 para verde-oliva, 4 para vermelho-laranja, 5 para amarelo, 6 para rosa/magenta, 7 para azul-violeta e 8 para vermelho.
5. Tratamento de dados
| Parameter | Description | Example |
|---|---|---|
nodata={value} |
Especificar o valor do pixel para tornar transparente |
nodata=0 ou nodata=-9999 ou nodata=nan |
unscale={true\|false} |
Aplicar escala/deslocamento de metadados GeoTIFF | unscale=true |
6. Desempenho / Comportamento de mosaico
| Parameter | Description | Format | Example |
|---|---|---|---|
maxItemsPerTile={integer} |
Número limite de itens STAC por mosaico | Integer | maxItemsPerTile=20 |
skipcovered={true\|false} |
Pular itens cobertos por outros |
true ou false |
skipcovered=true |
exitwhenfull={true\|false} |
Pare o processamento quando o ladrilho estiver totalmente coberto |
true ou false |
exitwhenfull=true |
time_limit={seconds} |
Tempo máximo para renderizar um bloco | Inteiro (segundos) | time_limit=10 |
7. Parâmetros de cubo de dados (GRIB/NetCDF)
| Parameter | Tipo de Dados | Description | Example |
|---|---|---|---|
subdataset_bands={band_index} |
GRIB | Selecionar mensagem/banda específica | assets=grib_data&subdataset_bands=1&colormap_name=jet&rescale=273,300 |
subdataset_name={variable_name} |
NetCDF | Selecionar variável para visualizar | assets=netcdf_data&subdataset_name=temperature |
datetime={timestamp} |
NetCDF | Selecionar fatia de tempo (ISO 8601) | datetime=2023-10-26T12:00:00Z |
Exemplo completo do NetCDF:assets=netcdf_data&subdataset_name=temperature&datetime=2023-10-26T12:00:00Z&colormap_name=viridis&rescale=0,30
Etapa 6: Adicionar a configuração de renderização à sua coleção
Depois de construir sua lista de configuração de renderização (um ou mais objetos JSON), adicione-a à coleção STAC:
Usando a Interface da Web:
- Navegue até sua coleção no portal do Planetry Computer Pro.
- Selecione o botão Configuração .
- Vá para a aba Render.
- Cole sua lista JSON no editor.
- Salve as alterações selecionando Atualizar.
Para obter mais informações sobre como configurar coleções, consulte Configurar uma coleção com a interface da Web.
Usando a API:
Defina uma configuração de renderização de coleção usando o endpoint create stac collection render options. Veja a seguir um exemplo de como usar esse endpoint usando a API REST com Python:
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)
Para obter mais informações sobre como usar a API de Coleção STAC, consulte Criar uma coleção STAC (exemplos de API).
Examples
Aqui estão vários exemplos da cadeia de options caracteres e do objeto de configuração de renderização completa:
1. Mudança de biomassa de banda única com mapa de cores e redimensionamento:
{
"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. Cor natural de três bandas (RGB) de ativos separados:
{
"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. Cor falsa de três bandas (NIR, R, G) de bandas dentro de um único ativo:
{
"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. Cálculo NDVI usando Expressão:
{
"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. Algoritmo 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. Visualização de temperatura do 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
}
Referência: Todos os options Parâmetros
A cadeia de caracteres options aceita os seguintes pares chave-valor (consulte a documentação do TiTiler para obter os detalhes mais atualizados):
| Parameter | Tipo | Description | Exemplo de Uso |
|---|---|---|---|
assets |
str | Chave(s) de ativo de item_assets. Repita a chave para vários ativos. |
assets=B04&assets=B03&assets=B02 |
expression |
str | Expressão matemática usando chaves de ativos. | expression=(B08-B04)/(B08+B04) |
asset_bidx |
str | Índices de banda para um ativo multibanda. Formato: {asset_key}|{idx1},{idx2},... |
asset_bidx=image|4,1,2 |
asset_as_band |
bool | Trate os ativos em expression como faixas únicas. Necessário quando a expressão usa vários ativos. |
asset_as_band=true |
colormap_name |
str | Nome do mapa de cores do TiTiler predefinido. | colormap_name=viridis |
colormap |
str | JSON codificado em URL definindo um mapa de cores personalizado. | colormap=%7B%221%22%3A%5B...%5D%7D |
rescale |
str | Valores mínimos e máximos separados por vírgulas para dimensionamento de dados. | rescale=0,3000 |
color_formula |
str | Fórmula de correção de cor separada por espaço (Gama, Saturação, Sigmoidal). | color_formula=Gamma RGB 2.2 Saturation 1.1 |
nodata |
str/float/int | Valor de pixel a ser tratado como ausência de dados (transparente). |
nodata=0 ou nodata=-9999.0 ou nodata=nan |
unscale |
bool | Aplique escala/deslocamento dos metadados GeoTIFF. | unscale=true |
algorithm |
str | Nome de um algoritmo de processamento TiTiler. | algorithm=hillshade |
algorithm_params |
str | Cadeia de caracteres JSON codificada em URL com parâmetros para o algoritmo. | algorithm_params=%7B%22azimuth%22%3A315%7D |
buffer |
derivar | Buffer de pixel ao redor de blocos (geralmente necessário para algoritmos). | buffer=3 |
maxItemsPerTile |
int | Máximo de itens STAC a serem processados por bloco. | maxItemsPerTile=20 |
skipcovered |
bool | Ignore itens totalmente obscurecidos por outros. | skipcovered=true |
exitwhenfull |
bool | Pare de processar um ladrilho quando ele estiver totalmente coberto. | exitwhenfull=true |
time_limit |
int | Tempo máximo de processamento (segundos) por bloco. | time_limit=10 |
subdataset_bands |
int | Índice de banda/mensagem para dados GRIB. | subdataset_bands=1 |
subdataset_name |
str | Nome da variável para dados NetCDF. | subdataset_name=temperature |
datetime |
str | Carimbo de data e hora ISO 8601 para seleção de intervalo de tempo no NetCDF. | datetime=2023-10-26T12:00:00Z |
resampling |
str | Método de reamostragem (nearest, bilinear). |
resampling=nearest |