Skip to content

Co-Register service specifications


This service provides a multi-mission and multi-temporal image stack of co-registered single band assets taken from Optical or Radar Calibrated Datasets. It performs heterogeneous co-registration in the image domain of secondary assets to the reference. It can also generate assets from the co-registered stack using band arithmetic.

📕 The tutorial of the Co-Register service is available in this section.

Service Description

The Co-Registered Stacking (Co-Register) service performs the co-registration of "secondary" images to a "reference" image.

The service employs the GeFolki1,2 coregistration software3,4 developed at ONERA in the Multidate Earth observation Datamass for Urban Sprawl Aftercase (MEDUSA) project. GeFolki allows heterogeneous image co-registration and is working in the image domain. Thus, the service can co-register intra- and inter-sensors images with different spatial resolutions.

The coregistration of two assets from calibrated datasets from Optical and Radar Products Calibration services does not require having the assets in the same map projection and spatial resolution. When reference and secondary images have different spatial resolutions, a co-location step is necessary to have both images at the same spatial resolution.

The co-registration is a mandatory step when dealing with multi sensor EO data. It allows to overcome limits in the georeferencing of different EO products from different missions and better detect changes.


Figure 1 - A comparison between Red-Cyan composites of reflectance before (left) and after (right) the co-registration of calibrated panchromatic single band assets acquired from two different sensors. Panchromatic images acquired respectively from GeoEye-1 and WorldView-3 missions before and after the 7.5 earthquake event occurred in central Sulawesi on the 28th September which triggered a tsunami with 3-metre high waves. After the co-registration of GeoEye-1 panchromatic against the WorldView-3 one, damages to the Mercure Palu Hotel and the Arqam Babu Rahman floating Mosque are clearly visible in the right side Red-Cyan composite.

Single band assets included in the co-registered stack can be then used for processing (e.g. change detection using band arithmetic).


The AOI shall be wide enough to not only cover the area of change but also surrounding stable features. Having stable areas far away from where a change occurred let the algorithm defining the GCP to be used in the co-registration. For instance to ensure a good quality co-registration of single band assets acquired before and after an earthquake, the AOI must not only contain damaged built up areas but also surrounding undamaged urban areas.


The role of topography must be considered when co-registering images. The co-registration of non-ORTHO images over mountain areas cannot be of good quality, especially if images are acquired with different looking angles. In these areas the co-registration is advisable only using images orthorectified with a good quality DEM. Differences in looking angles could also affect the quality of co-registration in case of tall buildings if images are orthorectified with a good quality DEM.

Several downstream on-demand processing services can take advantage of co-registered assets, such as those devoted to visualizing inter-sensors images or the ones to perform change detection.


The service implements the workflow depicted below.

graph TB b[(Calibrated Datasets)] style b fill:#ffde86,stroke:#333,color:#282828,stroke-width:2px b --> a1[input n] b --> a2[input ...] b --> a3[input 2] b --> an[input 1] subgraph Input style Input fill:#e8e8e8,stroke:#818181,color:#282828 a1[/Dataset n/] style a1 fill:#acc8ff,stroke:#333,color:#282828,stroke-width:2px a2[/Dataset .../] style a2 fill:#acc8ff,stroke:#333,color:#282828,stroke-width:2px a3[/Dataset 2/] style a3 fill:#acc8ff,stroke:#333,color:#282828,stroke-width:2px an[/Dataset 1/] style an fill:#acc8ff,stroke:#333,color:#282828,stroke-width:2px alist[/List of comma separated <br> single band assets/] style alist fill:#acc8ff,stroke:#333,color:#282828,stroke-width:2px aref[/Reference asset <br> in list of assets/] style aref fill:#acc8ff,stroke:#333,color:#282828,stroke-width:2px ba2[/AOI as WKT/] style ba2 fill:#acc8ff,stroke:#333,color:#282828,stroke-width:2px ba1[/S-expression/s/] style ba1 fill:#acc8ff,stroke:#333,color:#282828,stroke-width:2px end subgraph Co-registered Stacking an --> stack[Co-location] a3 --> stack[Co-location] a2 --> stack[Co-location] a1 --> stack[Co-location] alist --> stack[Co-location] aref --> stack[Co-location] ba2 -.-> stack[Co-location] stack --> csn(Co-located<br>asset n) style csn fill:#cfdfff,stroke:#333,color:#282828 stack --> cs3(Co-located<br>asset 2) style cs3 fill:#cfdfff,stroke:#333,color:#282828 stack --> cs2(Co-located<br>asset 1) style cs2 fill:#cfdfff,stroke:#333,color:#282828 stack --> cs1(Reference asset) style cs1 fill:#cfdfff,stroke:#333,color:#282828 csn --> stack1[Co-registration] cs3 --> stack1[Co-registration] cs2 --> stack1[Co-registration] cs1 --> stack1[Co-registration] stack1 --> dsn(Co-registered<br>asset n) style dsn fill:#cfdfff,stroke:#333,color:#282828 stack1 --> ds3(Co-registered<br>asset 2) style ds3 fill:#cfdfff,stroke:#333,color:#282828 stack1 --> ds2(Co-registered<br>asset 1) style ds2 fill:#cfdfff,stroke:#333,color:#282828 stack1 --> ds1(Reference<br>asset n) style ds1 fill:#cfdfff,stroke:#333,color:#282828 dsn -.-> arithm[Band<br>arithmetic] ds3 -.-> arithm[Band<br>arithmetic] ds2 -.-> arithm[Band<br>arithmetic] ds1 -.-> arithm[Band<br>arithmetic] ba1 -.-> arithm[Band<br>arithmetic] end subgraph Output style Output fill:#e8e8e8,stroke:#818181,color:#282828 dsn(Co-registered<br>asset n) --> o5[/Co-registered<br>asset n/] style o5 fill:#acc8ff,stroke:#87afff,color:#282828,stroke-width:2px ds3(Co-registered<br>asset 2) --> o4[/Co-registered<br>asset 2/] style o4 fill:#acc8ff,stroke:#87afff,color:#282828,stroke-width:2px ds2(Co-registered<br>asset 1) --> o3[/Co-registered<br>asset 1/] style o3 fill:#acc8ff,stroke:#87afff,color:#282828,stroke-width:2px ds1(Reference<br>asset) --> o2[/Reference<br>asset/] style o2 fill:#acc8ff,stroke:#87afff,color:#282828,stroke-width:2px arithm -.-> o1[/New asset/s from <br> band arithmetic/] style o1 fill:#acc8ff,stroke:#87afff,color:#282828,stroke-width:2px end


Input of Co-Register are single-band assets representing reflectance of Sigma Nought in dB included in Datasets derived systematically in the calibration processing from supported SAR and Optical sensors. Co-registration is also possible if input assets are a mix from SAR and Optical EO data2.


This service does not support SAR complex data (e.g. Sentinel-1 SLC, Saocom-1 L1A products).


The Co-Register service requires a specified number of mandatory and optional parameters. Table 1 lists all service parameters.

Parameter Description Required Default value
Input product reference(s) Input Dataset(s) including single band reflectance or backscatter assets to be employed in the co-registration YES
List(s) of comma-separated assets List of single-band assets from input datasets as comma-separeted items (reference plus secondary(ies) assets) YES
Reference asset in the list The single band asset to be used as reference in the list of comma-separeted assets YES
Area of Interest Area of interest expressed in WKT NO
S-expression/s S-expression(s) defined as 'new_asset_name:(s-expression)' to generate new single band asset(s) from the co-registered stack (e.g. average) NO

Table 1 - Service parameters for the Co-Register processor.

Below are given more information about the service parameters.


This first mandatory parameter is the list of input Dataset(s) that are used to create the co-registered stack.

Input of Co-Register can be:

  • Optical calibrated datasets

  • SAR calibrated datasets


The specified input Datasets must include at least one single-band asset. Only TOA/BOA reflectance or Sigma Nought single-band assets can be used in the co-registration.


This second mandatory parameter is a list of bands expressed as a comma separated list of common band names. It defines, for each input-reference product, the list of common band names to extract. There's a one-to-one mapping between the input-reference and the bands parameters. The list of single band assets to be used for the co-registration shall be given as a list of comma separated items following the following convention:



To build a co-registered stack using 5 single-band assets (e.g. coastal, blue, green, red, and nir reflectance assets) from a single Calibrated Dataset (e.g. by specifying only 1 input Dataset) the users shall define the input assets in Co-Register as following:



To build a multitemporal co-registered stack using 2 single-band assets (e.g. s0_db_c_vv, and s0_db_c_vh sigma nought assets) from multiple Calibrated Datasets (e.g. by specifying 3 different Datasets given as input product references 1, 2, and 3) the users shall define the 6 input assets in Co-Register as following:



Use comma separated reference.asset and avoid spaces between assets.


All CBNs available in the ESA Charter Mapper can be found here.

Reference asset in the list

The third mandatory parameter defines the reference asset in the list-of-comma-separated-assets. This asset shall be specified using the same convention used in the definition of the list of assets:


This single-band geophysical asset will be the reference in the co-registration. The other assets in the list will be co-registered to this asset.


Co-Register employs an asset based co-registration of each single band asset against one single band asset. For instance assuming the user insert as comma-separated list of red, green, blue assets from 2 Dataset (,,,,, it must specify which of them is reference single band asset (e.g. to be employed in the co-registration. Thus assets,,,, will be co-registered against the one.

AOI (optional)

This forth parameter (optional) may define the area of interest expressed as a Well-Known Text value.


If set, it overrides the automatic determination of the maximum common area between the input-reference products geometry.


In the definition of “Area of interest as Well Known Text” it is possible to apply as AOI the drawn polygon defined with the area filter. To do so, click on the Magic tool wizard button in the left side of the "Area of interest expressed as Well-known text" box and select the option AOI from the list. The platform will automatically fill the parameter value with the rectangular bounding box taken from current search area in WKT format.

S-expression (optional)

This last optional parameter allows generating new asset(s) derived from the co-registered input assets.

To generate a new item in the co-registered stack, the expression to be defined in this parameter is composed by the name of the new asset and the s-expression to be used for generating it separated by a colon : .



The s-expressions inserted by the user must be given within brackets.

As an example, to derive a new asset representing the average between red assets from a pair of co-registered single band assets ( and the expression to be inserted shall be:

average:(/ (+ 2)

This will add a new single band asset named average in the co-registered stack with average values derived from and

S-expressions in the ESA Charter Mapper supports arithmetic (* + / -) and logical (< <= == != >= > & |) operators plus some pre-defined functions.

More information about supported functions can be found in Table 2.

Function Description Syntax
asarray convert the input (list, tuples, etc.) to an array (asarray x)
interp returns the one-dimensional piecewise linear interpolant to a function with given discrete data points (xp, fp), evaluated at x (interp x xp fp)
mean returns the mean value (scalar) from the given input array x (mean x)
norm_diff returns the normalized difference between A and B as per ((x - y) / (x + y)) (norm_diff x y)
where return elements chosen from x or y depending on condition (where (condition) x y)

Table 2 - Supported functions that can be used in s-expressions.


The current list of functions can be further expanded in the future based on user's needs.

Examples of s-expressions which can be used to generate new bands from the Co-register service are listed in the below sections.


The following s-expression:

sum:(+ 1.pan 2.pan)

can be used to generate a band as the sum of 1.pan and 2.pan.


The following s-expression:

difference:(- 1.pan 2.pan)

can be used to generate a band as the difference of 1.pan and 2.pan.


The following s-expression:

average:(/ (+ 1.pan 2.pan) 2)

can be used to generate a band as the average between the values of 1.pan and 2.pan.

Difference from average

The following s-expression:

diff_from_avg:(- 1.pan (mean 1.pan))

can be used to estimate a band of difference from the average value of 1.pan.

Normalized difference

The following s-expression:

ndvi:(norm_diff 1.nir

can be used to derive multiple spectral indexes defined as normalized difference (e.g. NDVI, NDWI, NDBI, etc.).

Water masking via binarization of NDWI or backscatter values

The following s-expression:

opt_water_mask:(where (>= (norm_diff 1.nir) 0.3) 1 0)

can be used to derive water mask from binarization. Here (norm_diff 1.nir) is used to derive the NDWI index. The value 0.3 represents the threshold as TOA reflectance. Similar s-expressions can be made also for SAR such as:

sar_water_mask:(where (<= 1.s0_db_c_hh -23) 1 0)

in which 1.s0_db_c_hh is the asset and the value -23 represents the threshold as Sigma Nought in dB.

NDVI loss from pre- and post-event reflectance assets

The following s-expression:

ndvi_loss:(where (>= (- (norm_diff 1.nir (norm_diff 2.nir 0.25) 1 0)

can be used to derive NDVI loss from binarization of the NDVI difference before and after an event (e.g. wildfire or landslide). Here (norm_diff 1.nir is used to derive the NDVI index. The value 0.25 represents the threshold as NDVI difference.


The output of Co-Register is a multi-mission and multitemporal co-registered stack. The output STAC item includes as many single band assets as provided in the input. Assets are given as single band GeoTIFF in COG format.

The below table provides product specifications for the Co-Register service.

Attribute Value / description
Long Name Geometric Co-registered stack from Optical or SAR EO data
Short Name source_reference_number.source_asset (e.g. 1.nir)
Description Multiband co-registered stack of N images from optical and radar sensors
Processing level L1 / L2 (according to input)
Data Type Float32
Band N single-band
Format COG
Projection According to input
Fill Value According to input

  1. Plyer, A., et al. (2015), "A New Coregistration Algorithm for Recent Applications on Urban SAR Images", Geoscience and Remote Sensing Letters, IEEE, 12(11), 2198-2202. DOI: 10.1109/LGRS.2015.2455071

  2. Brigot, G., et al. (2016), "Adaptation and Evaluation of an optical flow method applied to co-registration of forest remote sensing images", accepted with modifications in IEEE Journal of Selected Topics in Applied Earth Observations and Remote Sensing, Volume: 9, Issue7, July 2016. DOI: 10.1109/JSTARS.2016.2578362

  3. GeFolki GitHub page, available at:

  4. GeFolki User manual, available at: