Configurer les paramètres de rendu pour visualiser les données dans Microsoft Planetary Computer Pro

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 :

  1. La collection STAC existe : Vous avez créé une collection STAC dans Planetary Computer Pro.
  2. 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.
  3. 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=value paires 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 besoin assets ou asset_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 :

  1. Accédez à votre collection dans le portail Planetary Computer Pro.
  2. Sélectionnez le bouton Configuration .
  3. Accédez à l’onglet Rendu.
  4. Collez votre liste JSON dans l’éditeur.
  5. Enregistrez les modifications en sélectionnant Mettre à jour.

Capture d’écran de l’interface web de configuration de rendu affichant les options de configuration des configurations de rendu.

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