Skip to main content

Change Detection API

The API calculates difference between two scenes.

Sentinel-2 co-registration of multi temporal scenes

The information gathered by Sentinel-2 system on Sentinel-2 orbit, attitude, date accuracy, and viewing directions of all detectors allows an excellent accuracy for the geolocation of all Sentinel-2 pixels. The overall geo-location accuracy is better than 11 or 12 meter, for about 97 % of the cases, which is about the size of one Sentinel-2 pixel.

But even if it is excellent, it is not enough. The standard need for multi-temporal registration errors is 0.3 pixels, and the current performances show that for more than 50% of the cases, the performance does not meet that requirement.

Over the years, a broad range of techniques has been developed aimed to improve coregistration between multi temporal images.

HTTP Request

GET https://api-connect.eos.com/api/render/<sensor>/diff/<band>/<z>/<x>/<y>?scene1=scene1_name&scene2=scene2_name&api_key=<your_api_key>

Request Parameters

Request Path ParameterDescription
api_key(Required) Apikey retrieved from developer portal
Request Body ParameterDescription
sensorThe alias of the sensor
Valid sensors aliases: “L4TM”, “L4MSS”, “L5TM”, “L5MSS”, “L7”, “L8”, “S2”, “S2L2A”, “NAIP”, “MODIS”, “CBERS4MUX”, “CBERS4AWFI”, “CBERS4PAN5M”, “CBERS4PAN10M”.
bandband combination expression. Some band combinations are defined in the service using aliases (see Name Aliases). For available bands please refer to Supported Datasets
zZoom level according to slippy map tilenames
xX coordinate according to slippy map tilenames
yY coordinate according to slippy map tilenames
scene1(required) the first scene;
for Sentinel2 need to take "view_id" without sensor name and change separator on “-“
scene2(required) the second scene;
for Sentinel2 need to take "view_id" without sensor name and change separator on “-“
MIN_MAX(optional) list of comma separated min,max values for contrast stretching. Default: calculated by cumulative count cut algorithm with 2%-98% range and cloud correction.
COLORS(optional, only used in pair with THRESHOLDS) (for bandmath and grayscale only) list of comma separated color-hexes, which are used for colorization in pair with THRESHOLDS. Note: has to contain 1 more value than THRESHOLDS. (See Range colorization)
THRESHOLDS(optional, only used in pair with COLORS) (for bandmath and grayscale only) list of comma separated values of color thresholds, which are used for colorization in pair with COLORS. Note: has to contain 1 less value than COLORS. (See Range colorization)
COLORMAP(optional) (for bandmath and grayscale only) bandmath colorization with the specified colormap. MIN_MAX can be applied with this query param.
COLORS_LIMIT(optional) count of colors for continuous colormaps
PALETTE(optional) dictionary with bit numbers (1 bit number or 2 as a tuple) as keys and colors (in form of RGB or hex) as values. If in any given pixel some bits have value 1, it’s set to corresponding color from the palette. If bits don’t have a color tied to them in the palette, pixels are made transparent. Without this parameter BQA is colorized with default palette
MASKING(optional) mask type for masking tile, available type: “FOREST” - masking by forest cover

Example

Calculate the difference between two Sentinel-2 scenes for NDVI

curl --location --request GET 'https://api-connect.eos.com/api/render/S2/diff/NDVI/11/343/729?scene1=10-T-GR-2018-6-24-0&scene2=10-T-GR-2018-8-28-0&api_key=your_api_key'

Render Sentinel-2 change detection