Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Pour visualiser les données géospatiales à l’aide de l’Explorateur de données Microsoft Planetary Computer Pro ou de l’API Tiler, vous devez définir une ou plusieurs configurations de rendu pour chacune de vos collections SpatioTemporal Asset Catalog (STAC). Une configuration de rendu spécifie la façon dont les ressources de données au sein de vos éléments STAC sont combinées, traitées et mises en forme pour créer des vignettes cartographiques.
Ce guide vous guide tout au long du processus de création de configurations de rendu, de la compréhension des prérequis à la configuration des options avancées. Les fonctionnalités de rendu de Planetary Computer Pro reposent sur le projet TiTiler open source.
Prerequisites
Avant de pouvoir configurer le rendu, vérifiez que les étapes préalables suivantes sont terminées :
- La collection STAC existe : Vous avez créé une collection STAC dans Planetary Computer Pro.
- Données ingérées : Vous avez ajouté des éléments STAC contenant les ressources de données géospatiales que vous souhaitez visualiser dans la collection.
- Un environnement Python 3.10 (ou version ultérieure)
Processus de génération d’une configuration de rendu
| Step | Title | Description |
|---|---|---|
| 1 |
Définir item_assets dans votre collection JSON |
Tout d’abord, vous devez vous assurer que votre collection STAC JSON inclut une section bien définie item_assets qui décrit les ressources communes dans vos éléments. |
| 2 | Comprendre votre objectif de données et de visualisation | Ensuite, déterminez le type de données que vous utilisez et décidez de la façon dont vous souhaitez qu’elles apparaissent visuellement (colormap à bande unique, RVB multibande). |
| 3 | Construire l’objet Render Configuration | À présent, créez la structure JSON de base qui contient une ou plusieurs configurations de rendu pour l’interface utilisateur de l’Explorateur. |
| 4 |
Définir la options chaîne - Paramètres principaux |
Configurez les paramètres TiTiler essentiels dans la options chaîne pour sélectionner les ressources ou bandes correctes et appliquer un style de base comme les mappages de couleurs ou la mise à l’échelle. |
| 5 |
Ajouter des paramètres avancés options (si nécessaire) |
Si vous le souhaitez, améliorez votre visualisation en ajoutant des fonctionnalités TiTiler avancées telles que des expressions, des algorithmes, une correction de couleur ou des colormaps personnalisés à l’aide de la options chaîne. |
| 6 | Ajouter la configuration de rendu à votre collection | Enfin, appliquez la liste de configuration de rendu que vous avez créée à votre collection STAC à l’aide de l’interface web ou de l’API. |
Étape 1 : Définir item_assets dans votre collection JSON
Le champ item_assets de votre collection JSON est essentiel pour le rendu, car il fournit une description consolidée des ressources contenues dans les éléments de la collection. Le moteur de rendu et l’application web Explorer utilisent le champ item_assets pour comprendre les données disponibles pour la visualisation sans inspecter les éléments individuels. Il déclare les clés (noms) des ressources, telles que image, redNIRou elevation, qui sont ensuite référencées par les configurations de rendu. En outre, item_assets pouvez inclure des métadonnées d’extension STAC comme eo:bands pour les ressources multibandes, ce qui facilite la sélection de bandes spécifiques pour le rendu. L’Explorateur utilise ces informations pour remplir les menus et comprendre la structure globale des données.
Exemple item_assets pour une ressource NAIP à 4 bandes :
{
"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 ...
}
Pour plus d’informations sur item_assets, consultez la section Éléments multimédias dans la vue d’ensemblede STAC. Reportez-vous également à la spécification officielle de l’extension des ressources d’élément STAC.
Vérifiez que votre collection STAC JSON inclut cette section avant de continuer. Vous pouvez mettre à jour votre définition de collection via l’API ou l’interface web.
Étape 2 : Comprendre votre objectif de données et de visualisation
Avant de générer la configuration, déterminez la façon dont vous souhaitez visualiser vos données :
| Type de données | Description | Example | Objectif de visualisation |
|---|---|---|---|
| Données Single-Band | Chaque pixel a une valeur. | élévation, température, classification des couvertures terrestres, index calculé | Mappez ces valeurs uniques à une plage de couleurs ou à des couleurs discrètes à l’aide d’un colormap. |
| Données à plusieurs bandes | Les données ont plusieurs bandes par pixel. | Imagerie satellite RVB, données multi-spectrales | Combinez trois bandes spécifiques pour représenter les canaux Rouge, Vert et Bleu de l’image de sortie. |
| Données dérivées (expressions) | Calculez une nouvelle valeur à partir d’une ou plusieurs bandes/ressources. | Indice de végétation des différences normalisées (NDVI) à partir de bandes Rouge et NIR | Définissez une expression mathématique et visualisez le résultat (à bande unique avec colormap ou multi-bande directement). |
| Données dérivées (algorithmes) | Calculez une nouvelle valeur en pixels. | Hillshade montre les contours des données d’élévation | Utilisez un algorithme mathématique pour transformer des données en visualisation. |
| Cubes de données (GRIB/NetCDF) | Données stockées dans des formats GRIB ou NetCDF avec plusieurs variables et dimensions. | temps, niveaux de pression | Sélectionnez une variable spécifique et potentiellement une tranche dans d’autres dimensions (comme le temps) pour la visualisation 2D. |
Étape 3 : Construire l’objet de configuration de rendu
Les configurations de rendu sont définies comme une liste d’objets JSON (ou dictionnaires Python si vous utilisez l’API). Chaque objet de la liste représente une option de visualisation qui s’affiche dans la liste déroulante Explorateur.
Structure de base :
[
{
"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: identificateur unique lisible par l’ordinateur pour cette option de rendu dans la collection. -
name: nom complet affiché dans l’interface utilisateur de l’Explorateur. -
description: texte facultatif fournissant plus de contexte. -
type: En général"raster-tile". -
options: chaîne contenant des paramètres de requête d’URL (key=valuepaires séparées par&) qui contrôlent le moteur de rendu TiTiler. C’est là que la plupart des personnalisations se produisent. -
minZoom: entier facultatif spécifiant le niveau de zoom de carte minimal auquel cette couche devient visible. Utile pour gérer les performances avec des données haute résolution.
À l’aide de la même structure, il est possible d’avoir plusieurs configurations de rendu pour les mêmes données afin que les données puissent être visualisées de plusieurs façons.
Étape 4 : Définir la options chaîne - Paramètres principaux
La options chaîne est le cœur de la configuration de rendu. Il utilise un key=value&key=value format. Voici les paramètres les plus courants :
1. Identification des ressources/bandes
| Parameter | Description | Cas d’usage | Example |
|---|---|---|---|
assets={asset_key} |
Spécifie la ou les ressources à utiliser, où {asset_key} correspond à une clé définie dans votre item_assetscollection. |
Rendu à bande unique à l’aide d’une ressource | assets=elevation |
| Rendu à trois bandes à l’aide de trois ressources à bande unique distinctes (l’ordre détermine R, G, B) | assets=B04&assets=B03&assets=B02 |
||
| Rendu à l’aide d’une ressource multibande unique |
assets=image (souvent utilisé avec asset_bidx) |
||
asset_bidx={asset_key}\|{band_index1},{band_index2},... |
Sélectionne des index de bande spécifiques à partir d’une ressource multibande unique spécifiée par assets. Les index de bande sont généralement basés sur 1. |
RVB à trois bandes de bandes 1, 2, 3 de ressource image |
assets=image&asset_bidx=image\|1,2,3 |
Trois bandes False Color Infrarouge (NIR, Rouge, Vert) à partir de bandes 4, 1, 2 de ressources image |
assets=image&asset_bidx=image\|4,1,2 |
||
Rendu à bande unique utilisant uniquement la bande 4 de ressource image |
assets=image&asset_bidx=image\|4 |
2. Mise en forme des données Single-Band
| Parameter | Description | Example |
|---|---|---|
colormap_name={name} |
Applique une palette de couleurs nommée prédéfinie. Exemples courants : viridis, , plasmagray, rdylgn. Consultez les cartes de couleurs prises en charge. |
assets=elevation&colormap_name=viridis |
rescale={min_val},{max_val} |
Étire ou compresse les valeurs de données pour qu’elles correspondent à la plage complète du colormap. Les valeurs en dehors de cette plage sont limitées aux couleurs min/max. | Mapper les valeurs d’élévation de 100 m à 1500 m sur la carte de couleur complète : assets=elevation&colormap_name=viridis&rescale=100,1500 |
3. Styles de données à plusieurs bandes (RVB)
| Parameter | Description | Example |
|---|---|---|
| Ordre des bandes RVB | Les bandes RVB sont implicitement définies par l’ordre dans assets (pour les ressources distinctes) ou asset_bidx (pour les bandes au sein d’une ressource). |
Voir des exemples dans la table Identification des ressources/bandes |
rescale={min_val},{max_val} |
(Facultatif) Peut être utilisé pour mettre à l’échelle les valeurs d’entrée des bandes R, G, B avant de les mapper à la plage d’affichage 0-255. Utile si vos données sources ne sont pas déjà 8 bits. | assets=B04&assets=B03&assets=B02&rescale=0,3000 |
color_formula={formula_string} |
(Facultatif) Applique des formules de correction de couleur. | Consultez les options avancées de la section suivante. |
Étape 5 : Ajouter des paramètres avancés options (si nécessaire)
Au-delà des principes de base, TiTiler offre de nombreux paramètres avancés via la options chaîne :
1. Expressions
| Parameter | Description | Format/Values | Example |
|---|---|---|---|
expression={formula} |
Définir une formule mathématique à l’aide de clés d'actif en tant que variables | Opérateurs standard (+, -, *, /) et parenthèses |
expression=(B08-B04)/(B08+B04) |
asset_as_band=true |
Obligatoire lorsque l’expression utilise plusieurs ressources à bande unique |
true ou false |
expression=(B08-B04)/(B08+B04)&asset_as_band=true |
Examples
- Exemple de résultat à bande unique :
expression=(B08-B04)/(B08+B04)&asset_as_band=true&colormap_name=rdylgn&rescale=-1,1 - Les expressions multibandes utilisent des points-virgules :
expression=B04*1.5;B03*1.1;B02*1.3&asset_as_band=true - Lorsque vous utilisez
expression, vous n’avez généralement pas besoinassetsouasset_bidx
2. Algorithmes
| Parameter | Description | Format/Values | Example |
|---|---|---|---|
algorithm={name} |
Appliquer un algorithme de traitement de pixels prédéfini |
hillshade, , contoursterrarium, , terrainrgbnormalizedIndex |
algorithm=hillshade |
algorithm_params={json_string} |
Paramètres de l’algorithme (JSON codé en URL) | Varie selon l’algorithme | algorithm_params=%7B%22azimuth%22%3A%20315%2C%20%22angle_altitude%22%3A%2045%7D |
buffer={integer} |
Ajouter une mémoire tampon de pixels autour des vignettes (souvent nécessaire pour les algorithmes) | Valeur de type entier | buffer=3 |
Exempleassets=elevation&algorithm=hillshade&colormap_name=gray&buffer=3&algorithm_params=%7B%22azimuth%22%3A%20315%2C%20%22angle_altitude%22%3A%2045%7D
Pour plus d’informations sur des algorithmes spécifiques, consultez la documentation sur l’algorithme TiTiler et Mapbox Hillshade
3. Correction des couleurs (pour la sortie RVB/ à trois bandes)
| Parameter | Description | Format | Example |
|---|---|---|---|
color_formula={formula_string} |
Appliquer des ajustements de couleur | Chaîne séparée par des espaces avec des ajustements gamma, saturation et/ou sigmoïdes | color_formula=Gamma RGB 2.5 Saturation 1.4 Sigmoidal RGB 15 0.35 |
Détails du format :
-
Gamma {BANDS} {VALUE}- Ajuster la luminosité -
Saturation {PROPORTION}- Ajuster l’intensité des couleurs -
Sigmoidal {BANDS} {CONTRAST} {BIAS}- Ajuster le contraste
Pour plus d’informations sur la correction des couleurs, consultez la documentation TiTiler.
4 Colormaps personnalisés (pour la sortie à bande unique)
| Parameter | Description | Format | Example |
|---|---|---|---|
colormap={json_string} |
Définir un colormap personnalisé | Valeurs de données de mappage JSON encodées par URL aux listes RVBA [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]} |
Exemple de décodage : Mappe la valeur 1 à vert foncé, 2 à vert très foncé, 3 à vert olive, 4 à orange-rouge, 5 à jaune, 6 à rose/magenta, 7 à bleu-violet, et 8 à rouge.
5. Gestion des données
| Parameter | Description | Example |
|---|---|---|
nodata={value} |
Spécifier la valeur de pixel pour rendre transparente |
nodata=0 ou nodata=-9999 ou nodata=nan |
unscale={true\|false} |
Appliquer la mise à l’échelle/décalage des métadonnées GeoTIFF | unscale=true |
6. Performance / Comportement de tiling
| Parameter | Description | Format | Example |
|---|---|---|---|
maxItemsPerTile={integer} |
Limiter le nombre d’éléments STAC par vignette | Integer | maxItemsPerTile=20 |
skipcovered={true\|false} |
Ignorer les éléments couverts par d’autres personnes |
true ou false |
skipcovered=true |
exitwhenfull={true\|false} |
Arrêter le traitement lorsque le carreau est entièrement recouvert |
true ou false |
exitwhenfull=true |
time_limit={seconds} |
Durée maximale pour le rendu d’une vignette | Valeur entière (secondes) | time_limit=10 |
7. Paramètres du cube de données (GRIB/NetCDF)
| Parameter | Type de données | Description | Example |
|---|---|---|---|
subdataset_bands={band_index} |
GRIB | Sélectionner un message/bande spécifique | assets=grib_data&subdataset_bands=1&colormap_name=jet&rescale=273,300 |
subdataset_name={variable_name} |
NetCDF | Sélectionner une variable à visualiser | assets=netcdf_data&subdataset_name=temperature |
datetime={timestamp} |
NetCDF | Sélectionner une tranche de temps (ISO 8601) | datetime=2023-10-26T12:00:00Z |
Exemple NetCDF complet :assets=netcdf_data&subdataset_name=temperature&datetime=2023-10-26T12:00:00Z&colormap_name=viridis&rescale=0,30
Étape 6 : Ajouter la configuration de rendu à votre collection
Une fois que vous avez construit votre liste de configuration de rendu (un ou plusieurs objets JSON), ajoutez-la à votre collection STAC :
Utilisation de l’interface web :
- Accédez à votre collection dans le portail Planetary Computer Pro.
- Sélectionnez le bouton Configuration .
- Accédez à l’onglet Rendu.
- Collez votre liste JSON dans l’éditeur.
- Enregistrez les modifications en sélectionnant Mettre à jour.
Pour plus d’informations sur la configuration des regroupements, consultez Configurer une collection avec l’interface web.
Utilisation de l’API :
Définissez une configuration de rendu de collection à l’aide du point de terminaison d’options de rendu de création de collection stac.
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": "2026-04-15"} # 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)
Pour plus d’informations sur l’utilisation de l’API de collection STAC, consultez Créer une collection STAC (exemples d’API).
Examples
Voici différents exemples de la options chaîne et de l’objet de configuration de rendu complet :
1. Single-Band Changement de biomasse avec carte de couleurs et redimensionnement :
{
"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 Couleur naturelle (RVB) à partir d'éléments distincts :
{
"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. Couleur false à trois bandes (NIR, R, G) à partir de bandes au sein d’une ressource unique :
{
"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. Calcul NDVI à l’aide de l’expression :
{
"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. Algorithme 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. Visualisation de température 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
}
Référence : Tous les options paramètres
La options chaîne accepte les paires clé-valeur suivantes (reportez-vous à la documentation TiTiler pour obtenir les détails les plus à jour) :
| Parameter | Type | Description | Exemple d’utilisation |
|---|---|---|---|
assets |
str | Clé(s) d’élément multimédia à partir de item_assets. Répétez la clé pour plusieurs ressources. |
assets=B04&assets=B03&assets=B02 |
expression |
str | Expression mathématique à l’aide de clés de ressource. | expression=(B08-B04)/(B08+B04) |
asset_bidx |
str | Index de bande pour une ressource multibande. Format : {asset_key}|{idx1},{idx2},... |
asset_bidx=image|4,1,2 |
asset_as_band |
bool | Traitez les ressources en expression tant que bandes uniques. Obligatoire lorsque l’expression utilise plusieurs ressources. |
asset_as_band=true |
colormap_name |
str | Nom de palette de couleurs TiTiler prédéfinie. | colormap_name=viridis |
colormap |
str | JSON codé en URL définissant un colormap personnalisé. | colormap=%7B%221%22%3A%5B...%5D%7D |
rescale |
str | Valeurs minimales séparées par des virgules, valeurs maximales pour la mise à l’échelle des données. | rescale=0,3000 |
color_formula |
str | Formule de correction de couleur séparée par l’espace (Gamma, Saturation, Sigmoidal). | color_formula=Gamma RGB 2.2 Saturation 1.1 |
nodata |
str/float/int | Valeur de pixel à traiter comme aucune donnée (transparente). |
nodata=0 ou nodata=-9999.0 ou nodata=nan |
unscale |
bool | Appliquez les paramètres d'échelle et de décalage à partir des métadonnées GeoTIFF. | unscale=true |
algorithm |
str | Nom d’un algorithme de traitement TiTiler. | algorithm=hillshade |
algorithm_params |
str | Chaîne JSON encodée par URL avec des paramètres pour l’algorithme. | algorithm_params=%7B%22azimuth%22%3A315%7D |
buffer |
float | Mémoire tampon de pixels autour des vignettes (souvent nécessaire pour les algorithmes). | buffer=3 |
maxItemsPerTile |
int | Nombre maximal d’éléments STAC à traiter par vignette. | maxItemsPerTile=20 |
skipcovered |
bool | Ignorez les éléments entièrement masqués par d’autres. | skipcovered=true |
exitwhenfull |
bool | Arrêtez le traitement d’une tuile une fois qu'elle est entièrement recouverte. | exitwhenfull=true |
time_limit |
int | Temps de traitement maximal (secondes) par vignette. | time_limit=10 |
subdataset_bands |
int | Index de bande/message pour les données GRIB. | subdataset_bands=1 |
subdataset_name |
str | Nom de variable pour les données NetCDF. | subdataset_name=temperature |
datetime |
str | Horodatage ISO 8601 pour la sélection d’une tranche de temps dans NetCDF. | datetime=2023-10-26T12:00:00Z |
resampling |
str | Méthode de rééchantillonnage (nearest, bilinear). |
resampling=nearest |
Contenu connexe
- Exemple de guide de visualisation des données
- Configurer une collection avec l’interface web Microsoft Planetary Computer Pro
- Configurations de mosaïque pour les collections
- Paramètres de vignette pour les regroupements
- Interrogeables pour les filtres de recherche personnalisés
- Vue d’ensemble de STAC
- TiTiler Documentation