Skip to content

Commit 8344677

Browse files
committed
render configuration review
1 parent 1dfbb57 commit 8344677

File tree

1 file changed

+17
-16
lines changed

1 file changed

+17
-16
lines changed

articles/planetary-computer/render-configuration.md

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,16 @@ title: Configure render settings for data visualization in Microsoft Planetary C
33
description: Learn the step-by-step process to configure render settings for visualizing geospatial data using the Microsoft Planetary Computer Pro data explorer and Tiler API.
44
author: 777arc
55
ms.author: marclichtman
6-
ms.service: azure
6+
ms.service: planetary-computer-pro
77
ms.topic: how-to
88
ms.date: 05/08/2025
9+
ms.custom:
10+
- build-2025
911
---
1012

1113
# Configure render settings for visualizing data in Microsoft Planetary Computer Pro
1214

13-
To visualize geospatial data using the Microsoft Planetary Computer Pro data explorer or the Tiler API, you must define **render configurations** for your SpatioTemporal Asset Catalog (STAC) collections. A render configuration specifies how the data assets within your STAC items should be combined, processed, and styled to create map tiles.
15+
To visualize geospatial data using the Microsoft Planetary Computer Pro data explorer or the Tiler API, you must define one or more **render configurations** for each of your SpatioTemporal Asset Catalog (STAC) collections. A render configuration specifies how the data assets within your STAC items are combined, processed, and styled to create map tiles.
1416

1517
This guide walks you through the process of creating render configurations, from understanding prerequisites to configuring advanced options. Planetary Computer Pro's rendering capabilities are built upon the open-source [TiTiler](https://developmentseed.org/titiler/) project.
1618

@@ -20,12 +22,11 @@ Before you can configure rendering, ensure the following prerequisite steps are
2022

2123
1. **STAC Collection Exists:** You created a [STAC collection in Planetary Computer Pro](./create-stac-collection.md).
2224
2. **Data Ingested:** You [added STAC items](./add-stac-item-to-collection.md) containing the geospatial data assets you want to visualize into the collection.
23-
3. **`item_assets` Defined in Collection:** Your STAC collection's JSON definition *must* include a well-defined [`item_assets`](./stac-overview.md#item-assets) section. These properties inform the rendering engine about the common data assets (and their properties like data type or bands) available across the items in the collection. Render configurations reference the asset keys defined here.
2425

2526
## Process to build a Render Configuration
2627
| Step | Title | Description |
2728
| :--- | :------------------------------------------------------------------------------------------------ | :--------------------------------------------------------------------------------------------------------- |
28-
| 1 | [Define `item_assets` in your Collection JSON](#step-1-define-item_assets-in-your-collection-json) | First, you need to ensure your STAC collection JSON includes a well-defined `item_assets` section that describes the common assets within your items. |
29+
| 1 | [Define `item_assets` in your Collection JSON](#step-1-define-item_assets-in-your-collection-json) | First, you need to ensure your STAC collection JSON includes a well-defined [`item_assets`](./stac-overview.md#item-assets) section that describes the common assets within your items. |
2930
| 2 | [Understand Your Data and Visualization Goal](#step-2-understand-your-data-and-visualization-goal) | Next, determine the type of data you're working with and decide how you want it to appear visually (single-band colormap, multi-band RGB). |
3031
| 3 | [Construct the Render Configuration Object](#step-3-construct-the-render-configuration-object) | Now, create the basic JSON structure that holds one or more render configurations for the Explorer UI. |
3132
| 4 | [Define the `options` String - Core Parameters](#step-4-define-the-options-string---core-parameters) | Configure the essential TiTiler parameters within the `options` string to select the correct assets or bands and apply basic styling like colormaps or rescaling. |
@@ -34,7 +35,7 @@ Before you can configure rendering, ensure the following prerequisite steps are
3435

3536
## Step 1: Define `item_assets` in your Collection JSON
3637

37-
The item_assets field in your collection JSON is essential for rendering because it provides a schema describing the assets contained within the collection's items. This schema allows the rendering engine and the Explorer web application to understand the available data for visualization without inspecting individual items. It declares the keys (names) of the assets, such as `image`, `red`, `NIR`, or `elevation`, which reference your render configurations. Additionally, item_assets can include metadata like `eo:bands` for multi-band assets, facilitating the selection of specific bands for rendering. The Explorer uses this information to populate menus and understand the overall data structure.
38+
The item_assets field in your collection JSON is essential for rendering because it provides a consolidated description of the assets contained within the collection's items. The rendering engine and the Explorer web application use the item_assets field to understand the available data for visualization without inspecting individual items. It declares the keys (names) of the assets, such as `image`, `red`, `NIR`, or `elevation`, which are then referenced by the render configurations. Additionally, item_assets can include STAC extension metadata like `eo:bands` for multi-band assets, facilitating the selection of specific bands for rendering. The Explorer uses this information to populate menus and understand the overall data structure.
3839

3940
**Example `item_assets` for a 4-band NAIP asset:**
4041

@@ -86,13 +87,13 @@ Before building the configuration, determine how you want to visualize your data
8687
| :------------------------ | :----------------------------------------------------------------------- | :------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------- |
8788
| **Single-Band Data** | Each pixel has one value. | elevation, temperature, land cover classification, calculated index | Map these single values to a color range or discrete colors using a **colormap**. |
8889
| **Multi-Band Data** | Data has multiple bands per pixel. | RGB satellite imagery, multi-spectral data | Combine three specific bands to represent the Red, Green, and Blue channels of the output image. |
89-
| **Derived Data (Expressions)** | Calculate a new value from one or more bands/assets. | NDVI from Red and NIR bands | Define a mathematical **expression** and visualize the result (single-band with colormap or multi-band directly). |
90+
| **Derived Data (Expressions)** | Calculate a new value from one or more bands/assets. | Normalized Difference Vegitaiton Index (NDVI) from Red and NIR bands | Define a mathematical **expression** and visualize the result (single-band with colormap or multi-band directly). |
9091
| **Derived Data (Algorithms)** | Calculate a new value across pixels. | Hillshade shows contours of elevation data | Use a mathematical **algorithm** to transform data into a visualization. |
9192
| **Data Cubes (GRIB/NetCDF)** | Data stored in GRIB or NetCDF formats with multiple variables and dimensions. | time, pressure levels | Select a specific variable and potentially a slice through other dimensions (like time) for 2D visualization. |
9293

9394
## Step 3: Construct the Render Configuration Object
9495

95-
Render configurations are defined as a list of JSON objects (or Python dictionaries if using the API). Each object in the list represents one visualization option that will appear in the Explorer dropdown.
96+
Render configurations are defined as a list of JSON objects (or Python dictionaries if using the API). Each object in the list represents one visualization option that will appear in the [Explorer dropdown](./use-explorer.md#Select-a-different-render-configuration).
9697

9798
**Basic Structure:**
9899

@@ -140,7 +141,7 @@ The `options` string is the heart of the render configuration. It uses a `key=va
140141

141142
| Parameter | Description | Example |
142143
| :-------- | :---------- | :------ |
143-
| `colormap_name={name}` | Applies a predefined named colormap. Common examples: `viridis`, `plasma`, `gray`, `rdylgn`. See available [named colormaps](media/colormaps.png). | `assets=elevation&colormap_name=viridis` |
144+
| `colormap_name={name}` | Applies a predefined named colormap. Common examples: `viridis`, `plasma`, `gray`, `rdylgn`. See [supported colormaps](./supported-colormaps.md). | `assets=elevation&colormap_name=viridis` |
144145
| `rescale={min_val},{max_val}` | Stretches or compresses the data values to fit the full range of the colormap. Values outside this range are clamped to the min/max colors. | Map elevation values from 100 m to 1500 m across the full colormap: `assets=elevation&colormap_name=viridis&rescale=100,1500` |
145146

146147
### 3. Styling Multi-Band (RGB) Data
@@ -162,7 +163,7 @@ Beyond the basics, TiTiler offers many advanced parameters via the `options` str
162163
| `expression={formula}` | Define a mathematical formula using asset keys as variables | Standard operators (`+`, `-`, `*`, `/`) and parentheses | `expression=(B08-B04)/(B08+B04)` |
163164
| `asset_as_band=true` | Required when expression uses multiple *single-band* assets | `true` or `false` | `expression=(B08-B04)/(B08+B04)&asset_as_band=true` |
164165

165-
Other details:
166+
**Examples**
166167
- Single-band result example: `expression=(B08-B04)/(B08+B04)&asset_as_band=true&colormap_name=rdylgn&rescale=-1,1`
167168
- Multi-band expressions use semicolons: `expression=B04*1.5;B03*1.1;B02*1.3&asset_as_band=true`
168169
- When using `expression`, you generally don't need `assets` or `asset_bidx`
@@ -175,9 +176,9 @@ Other details:
175176
| `algorithm_params={json_string}` | Parameters for the algorithm (URL-encoded JSON) | Varies by algorithm | `algorithm_params=%7B%22azimuth%22%3A%20315%2C%20%22angle_altitude%22%3A%2045%7D` |
176177
| `buffer={integer}` | Add pixel buffer around tiles (often needed for algorithms) | Integer value | `buffer=3` |
177178

178-
**Full example:** `assets=elevation&algorithm=hillshade&colormap_name=gray&buffer=3&algorithm_params=%7B%22azimuth%22%3A%20315%2C%20%22angle_altitude%22%3A%2045%7D`
179+
**Example** `assets=elevation&algorithm=hillshade&colormap_name=gray&buffer=3&algorithm_params=%7B%22azimuth%22%3A%20315%2C%20%22angle_altitude%22%3A%2045%7D`
179180

180-
For details on specific algorithms, see the [TiTiler Algorithm documentation](https://developmentseed.org/titiler/examples/notebooks/Working_with_Algorithm/) and [Mapbox algorithms](https://docs.mapbox.com/data/tilesets/guides/access-elevation-data/)
181+
For details on specific algorithms, see the [TiTiler Algorithm documentation](https://developmentseed.org/titiler/examples/notebooks/Working_with_Algorithm/) and [Mapbox Hillshade](https://docs.mapbox.com/style-spec/reference/layers/#hillshade)
181182

182183
### 3. Color Correction (for RGB / Three-band output)
183184

@@ -190,7 +191,7 @@ For details on specific algorithms, see the [TiTiler Algorithm documentation](ht
190191
- `Saturation {PROPORTION}` - Adjust color intensity
191192
- `Sigmoidal {BANDS} {CONTRAST} {BIAS}` - Adjust contrast
192193

193-
For more information about color correction, see the [TiTiler documentation](https://developmentseed.org/titiler/endpoints/cog/#color-correction).
194+
For more information about color correction, see the [TiTiler documentation](https://developmentseed.org/titiler/user_guide/rendering/#color-formula).
194195

195196
### 4. Custom Colormaps (for single-band output)
196197

@@ -235,16 +236,16 @@ Once you construct your render configuration list (one or more JSON objects), ad
235236
1. Navigate to your collection in the Planetary Computer Pro portal.
236237
2. Select the **Configuration** button.
237238
3. Go to the **Render** tab.
238-
4. Paste your JSON list into the editor or use the UI fields to build it.
239-
5. Save the changes.
239+
4. Paste your JSON list into the editor.
240+
5. Save the changes by selecting **Update**.
240241

241242
[ ![Screenshot of the render configuration web interface displaying options for setting up render configurations.](media/render-configuration-web-interface.png) ](media/render-configuration-web-interface.png#lightbox)
242243

243244
For more information on configuring collections, see [Configure a collection with the web interface](./configure-collection-web-interface.md).
244245

245246
**Using the API:**
246247

247-
Use an HTTP POST request to the collection's render options endpoint.
248+
Define a collection render configuration using the [create stac collection render options](https://learn.microsoft.com/rest/api/planetarycomputer/data-plane/stac-collection-render-options/create) endpoint. The following is an example of using this endpoint using the REST API with Python:
248249

249250
```python
250251
import requests
@@ -289,7 +290,7 @@ Here are various examples of the `options` string and the full render configurat
289290
"name": "Biomass Change from prior year (tonnes)",
290291
"description": "Annual estimates of changes (gains and losses) in aboveground woody biomass.",
291292
"type": "raster-tile",
292-
"options": 'assets=biomass_change_wm&colormap_name=spectral&rescale=-5000,5000',
293+
"options": "assets=biomass_change_wm&colormap_name=spectral&rescale=-5000,5000",
293294
"minZoom": 2
294295
}
295296
```

0 commit comments

Comments
 (0)