Home > WMS Configurator

WMS Configurator

WMS configuration

Since WMS parameters (for historical lookup, cloud coverage filtering, advanced styles, etc.) are not supported by all GIS clients, we have implemented our own WMS configuration tool, which allows you to configure WMS instances to your needs.

Every registered user can add as many unique-named instances as he/she chooses. An instance acts as a separate WMS/WMTS/WFS/WCS service and each can be configured to provide a certain set of layers with different settings. It is therefore possible to create multiple instances each with a different set of layers fulfilling various needs. Instances may contain an arbitrary number of layers. Each layer is associated with either one of the raw Sentinel-2 bands or the products (such as TRUE_COLOR) and product styles. Layers are also additionally configurable using the settings defined above, such as MAXCC, TIME, the max area limitation, etc. The instance itself also has some global settings for default values on all layers, like image quality.

To configure your instances and layers, go to:

WMS configurator

To use the WMS or WMTS service use the provided WMS or WMTS URL which contains the selected instance's ID.


Atmospheric correction

It is possible to get of a good estimation of bottom-of-the-atmosphere reflectance as opposed to top-of-the-atmosphere reflectance (which is the default) by enabling the atmospheric correction filter. This filter is a runtime-optimised version of ESA's provided Sen2Cor processor (Sen2Cor is applied at product-scale level and then statistically distributed to tiles).

To enable, either set the Atmospheric correction to 'Full' within the Style Parameters in the WMS Configurator, or add the ATMFILTER parameter to you request URL with the value ATMCOR. Example:


There are two atmospheric correction filters available, both of which use precomputed data:

  • DOS1 being simpler and somewhat less accurate as well as available only for RGB bands.
  • ATMCOR is the one based on Sen2cor and is available for all bands, with the exception of band 10, but might not be available for all tiles. In this case the system will use DOS1 calculation instead for those tiles.

These filters can be used with any Sentinel imagery product, however if a filter will only affect bands for which it has data. This should not be a problem with ATMCOR but makes NDVI only partially corrected with DOS1, for example, since it will adjust the R band but not the NIR band.

Preview modes

Preview modes make it possible to receive data from across all zoom levels. This is done by adding the URL parameter PREVIEW. Optional, default="0". Supported values:

Values info


Only high resolution data from Sentinel-2 is used. This corresponds to real world distances up to 200m/pixel.


Up to 200m/pixel it displays the same data as would PREVIEW=0. In addition to this it uses lower resolution data for real world distances up to 1500m/pixel.


Up to 1500m/pixel it displays the same data as would PREVIEW=1. It uses a pregenerated image pyramid at views larger than 1500m/pixel and will only display TRUE_COLOR data, regardless of the layer choice. Because the pyramid is pregenerated this also means that at these scales we are unable to use other Custom service URL parameters.

Custom evaluation script usage

A custom evaluation script can be used by adding the URL parameter EVALSCRIPT=<base64_encoded_script>. Note that the base64 encoded script must also be escaped into valid URL syntax; '+' becomes '%2B', '/' becomes '%2F' and '=' becomes '%3D'. It is also possible to select the "Custom" product for the layer in the WMS configurator which enables the option to edit the custom script; here all that is needed is the raw Javascript code while the system handles the rest internally. In both case the script must be valid Javascript. The script can use any Javascript function or language structures, as long as a valid array of numbers with fixed number of elements is returned at any point. The number of the returned array elements represent the number of the components in the output image. Note that JPEG and PNG can only support 1 or 3 components. The returned numbers must be normalized into 0..1 range, where 0 will become blackest component value and 1 will become the whitest one. The values outside this range will be clamped back into 0..1 range. The script can use any or all of the Sentinel-2 bands, which are represented as B01 to B12 (including B8A) variables. Band variable are normalized into 0..1 range, where 0 represent the minimum and 1 the maximum input value.


return [B04, B03, B02]

var value = (B05 - B02) / (B05 + B02);
return [value, 1 - value, 0.5]

Beside the standard Javascript functions, Sentinel WMS service also provides two additional utility functions:

Utility functions info

colorMap(inputNumber, indexArray, outputValueArray)

This method returns the value in "outputValueArray" at the same index as is the location of "inputValue" in the "indexArray". For example, when indexArray = [0, 0.2, 0.4], inputValue in the interval [0, 0.2) will make coloMap to return the outputValueArray value at index 0, inputValue in the interval [0.2, 0.4) will return value at index 1, etc. InputValue lesser than the first indexArray value will return the first value in outputValueArray and inputValue greater than the last indexArray value will return the last outputValueArray value. outputValueArray can contains single numbers or even arrays of numbers (in which case, colorMap will return an array instead of a single number).

colorBlend(inputNumber, indexArray, outputValueArray)

similar to colorMap, except the returned value is interpolated between two consecutive values in outputValueArray.


var value = colorMap(B04, [0, 0.2, 0.4, 0.6, 0.8, 1], [0, 0.1, 0.25, 0.4, 0.75, 1]); return [value, value, value];

return colorBlend(B04, [0, 0.2, 0.4, 0.6, 0.8, 1], [[0,0,0], [0.1,0.2,0.5], [0.25,0.4,0.5], [0.4,0.6,0.5], [0.75,0.8,0.5], [1,1,0.5]]);


Sentinel data is free. However, we still have to cover the infrastructure for processing this and distributing them to you. Prices start with 20 EUR per month for consumers and research users and 99 EUR per month for commercial users.

Enterprise level service and in-house deployments are available as well.

Check Pricing page

Apply here for trial account.