- News & Events
- HEDAVI Tutorial: How to proces...
HEDAVI Tutorial: How to process optical images in Explorer mode
07 May 2026
This tutorial guides you through how to process optical images available in the HEritage DAta VIsualisation (HEDAVI) tool. The tutorial describes how to use features suited to beginners and those benefiting more experienced users.
The tutorial follows our previous guides to finding products and organising a layerstack in the HEDAVI Explorer.
Once a product has been prepared in the HEDAVI Explorer, all views you generate using this product will be Processed On-the-Fly (POF), only on the extent of your screen and at the adequate level of detail. This improves performance and demand on your device, because you do not need to download and process full images. It enables creating a simple or advanced custom processing chain with a limited weight on the resources of the HEDAVI server because tiles are only processed when they are needed. In addition to making for a near-instantaneous rendition and exploration of images processed using original criteria, this also ensures multiple users can use the service simultaneously.
Note that the processing bricks below are useful to improve the rendering to the human eye, but they cause degradation of the quantity of information contained in data. Thus, they may not be advisable for automated processes if you intend to export and replace (rather than add) original data by processed data.
1 Default style
When you select an optical product in the list of results, it is shown using the default style, usually with a “natural colour” composite or using only the thermal band for Sentinel-3 SLSTR.
The table below summarises the main characteristics of the optical sensors available:
| Sensor | Landsat-5 TM, Landsat-7 ETM+ | Sentinel-2 MSI | ALOS-1 AVNIR-2 | Envisat MERIS | Sentinel-3 OLCI | Sentinel-3 SLSTR |
| Time resolution | <16 days | <10 days | 46 days | 1-3 days | 1-3 days | 1-3 days |
| Space resolution | 30 m | 10, 20 and 60 m | 10 m | 300 m | 300 m | 500 and 1000 m |
| Number of bands | 7 bands, 8 bands | 13 bands | 4 bands | 15 bands | 21 bands | 9 bands |
| Range of bands | Visible / NIR / SWIR / thermal | Visible / NIR / SWIR | Visible / NIR | Visible / NIR | Visible / NIR | Visible / NIR / SWIR / thermal |
| Swath | 185 km | 290 km | 70 km | 1150 km | 1270 km | 1675 km |
2 Predefined styles
With just two clicks you can change from the default style to other predefined styles. Right-click on the name of the layer in the layer stack or in the list of results, then hover or click on “Style”, which opens a drop-down menu, and select the predefined style of your choice.
The predefined styles shown for the product depend on the bands available. In some cases, the list of bands is not given in the name of the style, so the following table provides an overview:
| Name of the predefined style | Bands for the mono or Red / Green / Blue channel | Landsat-5, Landsat-7 | Sentinel-2 | AVNIR-2 | MERIS | OLCI | SLSTR |
| Time resolution | 16 days | <10 days | 1-3 days | ||||
| Space resolution | X | X | X | * | X | ||
| Bands | |||||||
| Natural colour | Red / Green / Blue | X | X | X | * | X | |
| Vegetation | NIR / Red / Green | X | X | X | * | X | X |
| Urban | 2.2 µm / 1.6 µm / Red | X | X | X | |||
| Agriculture | 1.6 µm / NIR / Blue | X | X | ||||
| Atmospheric penetration | 2.2 µm / 1.6 µm / NIR | X | X | * | |||
| Healthy vegetation | NIR / 1.6 µm / Blue | X | X | ||||
| Land/Water | NIR / 1.6 µm / Red | X | X | X | |||
| Natural with atmospheric removal | 2.2 µm / NIR / Green | X | X | X | |||
| Shortwave infrared | 2.2 µm / NIR / Red | X | X | X | |||
| Vegetation analysis | 1.6 µm / NIR / Red | X | X | X | |||
| Natural SWIR | 2.2 µm / 1.6 µm / Blue | * | X | * | |||
| Geology (10 m) | NIR / Red / Blue | * | X | ||||
| Geology (20 m) | 1.6 µm / 0.865 µm / 0.70 µm | ||||||
| SCL - lut | Scene classification band with Look-Up Table | # | |||||
| Ocean Colour 1 | 0.56 µm / 0.44 µm / 0.41 µm | * | X | ||||
| Ocean Colour 2 | 0.62 µm / 0.56 µm / 0.49 µm | * | X | ||||
| Thermal | 10.8 µm with Look-Up Table | X | |||||
* = not predefined but available using a custom style
# = only available in Sentinel-2 L2A product level
3 Custom colour composite
3.1 Create / Edit / Copy
From the Style menu, you can create a custom colour composite in three ways:
- Select “Create” to create a new style based on the default style parameters
- Select “Edit” to modify an existing style (possibly applying modifications on multiple products) Select “Copy” to create a new style by copying another style on the list.
- Select “Copy” to create a new style by copying another style on the list.
When you create a new style, add a name for it in the “Style name” field. This name will be listed in the Styles menu for your future reference.
3.2 Greyscale
Using the “Greyscale” drop-down menu, you can select a single band or virtual band that will be used for your style. This solution will produce a greyscale image by default.
Single band
You can select one of the existing bands of the selected product to define your custom style.
Biophysical index
The second-to-last item in the Greyscale list is “Biophysical indices”. Select one of the indicators available then, if needed, select the bands corresponding to the wavelengths displayed. This creates a virtual band applying the index’s equation to the selected bands.
Normalized Difference Index
Normalized Difference Index (NDI) is the last item in the Greyscale list. It creates a virtual band defined by the following equation with two existing bands in input NDI= ((A-B))⁄((A+B) ). The value of an NDI is always between -1 and 1 but it is possible to change the contrast by applying any stretching parameters. For example, you would apply the NDVI by selecting band 0.86 µm for A and 0.66 µm for B.
3.3 Colour composite
You can create your own colour composite by selecting a band or creating a virtual band for each of the three channels just as described above.
4 Advanced styles
4.1 Histogram transforms
The histogram of an image is the count of the number of pixels that take a specific value (or range of values) in the dynamic range of an image. It doesn’t take into account the spatial distribution of the values but brings global information like extrema, mean, standard deviation, mode etc.
To create an image, the band selected in a channel is transformed from its initial input dynamic to a [1-255] output dynamic that can be represented on a screen. In most cases, a linear transform is applied and pixels with an output value outside the [1-255] range are saturated.
You can make an image brighter, either by making the dark parts of an image less dark or by making the brightest part of an image brighter. Similarly, you can make an image darker, either by making the dark parts of an image darker or by making the brightest part of an image less bright.
Default
The minimum and maximum value allowed by the image dynamic (from 8 bit to 16 bit depending on the source) are attributed respectively to 1 and 255. The thresholds don’t depend on the histogram. It results in an image with no added saturation but usually very little contrast.
Automatic stretching
Set the percentage of pixels saturated at the darkest (left) and brightest (right) value possible. The thresholds depend only on the extrema of the histogram. It is applied by default in most predefined styles using 2% saturation at right and left.
Linear stretching
Set the value of the digital number saturated at the darkest (left) and brightest (right) value possible. The thresholds don’t depend on the histogram. Values outside this range of digital numbers are saturated. It is required to use the linear stretching (or a Lookup Table) after several processes such as biophysical indices or radar calibration.
Statistics stretching
Set the value of the output mean and standard deviation of the output image. The thresholds depend on the whole histogram. While the way the thresholds are found are different and the result may vary from one image to the next, it is often possible to achieve the same result with any of the last three.
Interval stretching
Define several pairs of input and output points in ascending input value that specify several linear transforms. The dynamic of the output is [1 to 255] while the dynamic of the input depends on the source product.
The interval of input values in which a given pixel falls determines which linear stretching applies.
Gamma
Define a power law using a scaling factor A and an exponent gamma. An exponent above 1 increases the contrast on the brighter part of the input image and decreases it in the darker part of the input image. An exponent below 1 increases the contrast on the darker part of the image and decreases it in the brighter part of the input image.
The gamma setting is particularly useful to improve the rendering of a very bright (snowy or sandy landscape) or a very dark (dark dense vegetation, deep sea water) scene.
Histogram equalization
Finally, other global transforms are available to specify a non-linear transform that gives the output histogram a specific shape. The output histogram is homogeneous, from 1 to 255 there are as many pixels attributed to each value.
Gaussian equalization
Set the value of the output mean and standard deviation of the output image. The output histogram is given the shape of the gaussian curve defined by these values.
4.2 Convolutive filtering
These processing tools use convolution filters that are applied after global histogram transformation, they work at a local level hence the result for each pixel depends on those surrounding it. They are accessed via the “Filtering” drop-down menu.
Contrast enhancement
This filter uses local gradients to enhance the contrast, removing some blur or adding a crisp effect, possibly causing pixelisation if the effect is too strong.
Convolution gradient
This filter highlights edges found in a 3x3 tile of pixels. You can select either an isotropic gradient with 4 or 8-connecting pixels or a directional gradient using the “Convolution type” drop-down menu. The “Offset” parameter sets the neutral value (that will become the mean of the output), while the “Gain” controls the gradient amplitude.
Local statistics
Another processing computes the local statistics of your choice (mean, standard deviation or coefficient of variation) within a 3x3, 5x5, 7x7 or 9x9 area centred on each pixel.
Dilatation / Erosion
This filter changes the value of the current pixel to that of the brightest / darkest pixel in a structuring element, with a 3x3 area centred on the current pixel. It results in a brighter / darker image where the small and thin dark / bright features tend to be absorbed by their bright / dark neighbouring pixels in contrasted areas while the small and thin bright / dark features grow.
The following filters typically use elevation models as input data or can be understood by an analogy with the input band as a Digital Elevation Model (DEM).
Slopes / Azimuth / Curvature
It is possible to compute the slope around a pixel, the azimuth of the slope (between 0° and 360° with reference to the north) or the curvature around the pixel (horizontal, vertical, or tangential).
Isocurve
This processing transforms a raster input data into a set of isocurves, either defined by a step increment or by a list of digital number (heights) in the input data for which an isocurve should be processed.
4.3 Lookup Table
A Lookup Table can be applied to any single channel processing chain to improve the rendering. A table is needed after several processes such as slopes / azimuth / curvature.
Choose a Lookup table
Simply pick one of the tables listed in the “Lookup Table” menu. While some are good at offering contrast, others are better suited for the study of vegetation, water, thermal applications or altimetry etc.
Left / Right range - Output range
The “Left range” and “Right range” parameters work in the same way as a linear stretching on a single channel processing chain (it is even equivalent using the “Greyscale” lookup table), it defines the minimum and maximum value beyond which saturation will be applied. If a stretching has already been applied in a previous step, the input values will be within the 1 to 255 range. The “Output range” defines the range of the legend attached to the lookup table.
Cyclic
They are mostly useful combined with the “Cyclic” checkbox to define a cycle of the table, define fringes with a period equal to the maximum or minimum range.
Shadowing
You can apply shadowing to a lookup table to add some contrast on the input, even on saturated areas. The shadowing is defined by the direction of the shadow (opposite to the “lightsource”) and its factor.
4.4 Negative
It is possible to transform a band to its negative by selecting enable. Note that the negative of the negative of a layer is identical to this layer.
4.5 Mask
Using the “Mask” process, you can apply a Land / Sea mask or a Land / Water mask (based on the Copernicus DEM) to a band. Select “Enable” then choose to mask either the Land or the Sea / Water.
4.6 Same processing for RGB
All processing tools described above constitute a processing chain. It can be applied to a single band (or virtual-band) or to the three channels of a product but it is also possible to apply a different processing chain to each channel separately.
In the example below, a land water mask has been applied in the red and blue channel but not in the green one, turning the bodies of water to green. A “Contrast enhancement” with a high sharpening factor of 10 has been added to this same channel only.
4.7 Force Background
When the “Force background” checkbox is ticked for a layer, a pixel becomes a background pixel and the same applies to any of its components (in the red, green or blue channel).
5. Expert style edition - Processing On-the-Fly Macro-Language
5.1 Single layer
HEDAVI also enables an expert mode with even more freedom in the way you can design a processing chain but with a limited text-based user interface using HEDAVI’s core language, the Processing On-the-Fly Macro-Language (POF-ML). You can access it via the “Edit POF-ML” option in the list of styles.
If the created style could have been designed using the user interface described previously, this style can be edited with the classic user interface again. Otherwise, it can only be edited in text in the future.
The POF-ML language is described in the VtWeb framework. The framework describes the general syntax and the detail of the individual bricks, some of which are not available with the user interface. A shortlist of examples is also available to show you some use-cases and how to apply them. If you have questions to implement your own POF using existing Processing Units (PU), you may contact the HEDAVI team for help. Learn more:
A list and limited description of the PU is also available from the “Help” button at the bottom-right of the POF “Dataset rendering” window. For each channel of your product, you should apply them with a band name, and if needed the band histogram and Coordinate Reference System (CRS) required for the selected PU.
5.2 Layer combination
5.2.1 Creation
Finally, you can even combine several products to apply multidate processing. To do so, add two or more raster products in the same folder of the layer stack, right-click on the folder and select “Combine layers”. Please note that the HEDAVI server will have to read and process the tiles within each layer to produce each tile you require, which could slow down the rendering.
Create a new virtual layer that is named after this folder and uses natively the style of the first product of the folder. This new layer is only editable in the expert interface using POF-ML.
5.2.2 Calling layers
You can apply processing styles on a combination of layers in the same way as you would with a single layer. The difference is that when you call a band / histogram / CRS, you have to specify which product you refer to. The granules are ordered in the granule list and referenced by a serial number e.g. “#0”, “#1” etc.
In the case of a combination of layers, you can reference them with consecutive numbers, e.g. “0:”, “1:” etc. If you apply it in a combination of a combination of layers, you can reference them by using e.g. “0.0:”, “0.1:” for the first combination of products, “1.0:”, “1.1:” for the second combination of products etc.
In this example, we apply the Normalized Difference Water Index - Open Water on both layers of this combination and keep the maximum value of these.
5.2.3 Loops
You can also use “for (,operator)” loops which enable a shorter (and less error prone) syntax. You can also specify to which of the layers you wish to apply the aggregation operator (max, min, mean, stdev etc.) by adding the indices of the layer as shown below.
Conclusion
From beginner to experts, HEDAVI enables a powerful and innovative way to adapt to your needs in rendering raster products without needing to download and process full products. A short tutorial later this year will cover with the specific tools HEDAVI makes available to process radar data