You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/planetary-computer/render-configuration.md
+17-16Lines changed: 17 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,14 +3,16 @@ title: Configure render settings for data visualization in Microsoft Planetary C
3
3
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.
4
4
author: 777arc
5
5
ms.author: marclichtman
6
-
ms.service: azure
6
+
ms.service: planetary-computer-pro
7
7
ms.topic: how-to
8
8
ms.date: 05/08/2025
9
+
ms.custom:
10
+
- build-2025
9
11
---
10
12
11
13
# Configure render settings for visualizing data in Microsoft Planetary Computer Pro
12
14
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.
14
16
15
17
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.
16
18
@@ -20,12 +22,11 @@ Before you can configure rendering, ensure the following prerequisite steps are
20
22
21
23
1.**STAC Collection Exists:** You created a [STAC collection in Planetary Computer Pro](./create-stac-collection.md).
22
24
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.
| 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. |
29
30
| 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). |
30
31
| 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. |
31
32
| 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
34
35
35
36
## Step 1: Define `item_assets` in your Collection JSON
36
37
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.
38
39
39
40
**Example `item_assets` for a 4-band NAIP asset:**
40
41
@@ -86,13 +87,13 @@ Before building the configuration, determine how you want to visualize your data
|**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**. |
88
89
|**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). |
90
91
|**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. |
91
92
|**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. |
92
93
93
94
## Step 3: Construct the Render Configuration Object
94
95
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).
96
97
97
98
**Basic Structure:**
98
99
@@ -140,7 +141,7 @@ The `options` string is the heart of the render configuration. It uses a `key=va
140
141
141
142
| Parameter | Description | Example |
142
143
| :-------- | :---------- | :------ |
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`|
144
145
|`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`|
145
146
146
147
### 3. Styling Multi-Band (RGB) Data
@@ -162,7 +163,7 @@ Beyond the basics, TiTiler offers many advanced parameters via the `options` str
162
163
|`expression={formula}`| Define a mathematical formula using asset keys as variables | Standard operators (`+`, `-`, `*`, `/`) and parentheses |`expression=(B08-B04)/(B08+B04)`|
163
164
|`asset_as_band=true`| Required when expression uses multiple *single-band* assets |`true` or `false`|`expression=(B08-B04)/(B08+B04)&asset_as_band=true`|
164
165
165
-
Other details:
166
+
**Examples**
166
167
- Single-band result example: `expression=(B08-B04)/(B08+B04)&asset_as_band=true&colormap_name=rdylgn&rescale=-1,1`
167
168
- Multi-band expressions use semicolons: `expression=B04*1.5;B03*1.1;B02*1.3&asset_as_band=true`
168
169
- When using `expression`, you generally don't need `assets` or `asset_bidx`
@@ -175,9 +176,9 @@ Other details:
175
176
|`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`|
176
177
|`buffer={integer}`| Add pixel buffer around tiles (often needed for algorithms) | Integer value |`buffer=3`|
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)
181
182
182
183
### 3. Color Correction (for RGB / Three-band output)
183
184
@@ -190,7 +191,7 @@ For details on specific algorithms, see the [TiTiler Algorithm documentation](ht
190
191
-`Saturation {PROPORTION}` - Adjust color intensity
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).
194
195
195
196
### 4. Custom Colormaps (for single-band output)
196
197
@@ -235,16 +236,16 @@ Once you construct your render configuration list (one or more JSON objects), ad
235
236
1. Navigate to your collection in the Planetary Computer Pro portal.
236
237
2. Select the **Configuration** button.
237
238
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**.
240
241
241
242
[](media/render-configuration-web-interface.png#lightbox)
242
243
243
244
For more information on configuring collections, see [Configure a collection with the web interface](./configure-collection-web-interface.md).
244
245
245
246
**Using the API:**
246
247
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:
248
249
249
250
```python
250
251
import requests
@@ -289,7 +290,7 @@ Here are various examples of the `options` string and the full render configurat
289
290
"name": "Biomass Change from prior year (tonnes)",
290
291
"description": "Annual estimates of changes (gains and losses) in aboveground woody biomass.",
0 commit comments