Examples for S3OLCI

To request data using any of the request below, you will need to replace the string <your access token> with your Sentinel Hub access token. Sentinel Hub access token will look something like this:

ayJhbGciOiJSUzI1NiJ9.ayJzdWIiOiI0MmYwODZjCy1kMzI3LTRlOTMtYWMxNS00ODAwOGFiZjI0YjIiLCJhdWQiOiJlY2I1MGM1Zi1i
MWM1LTQ3ZTgtYWE4NC0zZTU4NzJlM2I2MTEiLCJqdGkiOiI5MzYxMWE4ODEyNTM4Y2M0MmU0NDJjYjUyMTY0YmJlNyIsImV4cCI6MTU1N
TQyMzk3MiwibmFtZSI6ImFuamEudnJlY2tvQHNpbmVyZ2lzZS5jb20iLCJlbWFpbCI6ImFuamEudnJlY2tvQHNpbmVyZ2lzZS5jb20iLC
JzaWQiOiIzZjVjZDVkNS04MjRiLTQ3ZjYtODgwNy0wNDMyNWY4ODQxZmQifQ.U7FPOy_2jlEOFxXSjyN5KEdBROna3-Dyec0feShIbUOY
1p9lEXdNaMmR5euiINi2RXDayX9Kr47CuSTsvq1zHFvZs1YgkFr1iH6kDuX-t_-wfWpqu5oPjoPVKZ4Rj0Ms_dxAUTQFTXR0rlbLuO-KS
gnaeLVb5iiv_qY3Ctq2XKdIRcFRQLFziFcP4yZJl-NZMlwzsiiwjakcpYpI5jSYAdU2hpZLHRzceseeZt5YfZOe5Px1kZXro9Nd0L2GPC
-qzOXw_V1saMGFa2ov8qV6Dvk92iv2SDDdGhOdII_JOf8XkK4E3g2z0EEFdWhG9F4Iky4ukNsqBPgE8LRb31s0hg

and can be obtained as described in the Authentication chapter.

A Postman collection with examples can be downloaded here.

True Color

curl -X POST \
https://creodias.sentinel-hub.com/api/v1/process \
-H 'Authorization: Bearer <your access token>' \
-F 'request={
"input": {
"bounds": {
"properties": {
"crs": "http://www.opengis.net/def/crs/OGC/1.3/CRS84"
},
"bbox": [
8.3333,
41.3149,
9.7009,
43.0568
]
},
"data": [
{
"type": "S3OLCI",
"dataFilter": {
"timeRange": {
"from": "2020-04-04T00:00:00Z",
"to": "2020-04-05T00:00:00Z"
}
}
}
]
},
"output": {
"width": 512,
"height": 512,
"responses": [
{
"format": {
"type": "image/png"
}
}
]
}
}' \
-F 'evalscript=//VERSION=3
function setup() {
return {
input: ["B08", "B06", "B04"],
output: {
bands: 3,
sampleType: "AUTO" // default value - scales the output values from [0,1] to [0,255].
}
}
}
function evaluatePixel(sample) {
return [2.5 * sample.B08, 2.5 * sample.B06, 2.5 * sample.B04]
}'

True Color (EPSG 32632)

curl -X POST \
https://creodias.sentinel-hub.com/api/v1/process \
-H 'Authorization: Bearer <your access token>' \
-F 'request={
"input": {
"bounds": {
"properties": {
"crs": "http://www.opengis.net/def/crs/EPSG/0/32632"
},
"bbox": [
444170,
4574059,
557052,
4767386
]
},
"data": [
{
"type": "S3OLCI",
"dataFilter": {
"timeRange": {
"from": "2020-04-04T00:00:00Z",
"to": "2020-04-05T00:00:00Z"
}
}
}
]
},
"output": {
"width": 512,
"height": 512,
"responses": [
{
"format": {
"type": "image/png"
}
}
]
}
}' \
-F 'evalscript=//VERSION=3
function setup() {
return {
input: ["B08", "B06", "B04"],
output: {
bands: 3,
sampleType: "AUTO" // default value - scales the data from 0-255.
}
}
}
function evaluatePixel(sample) {
return [2.5 * sample.B08, 2.5 * sample.B06, 2.5 * sample.B04]
}'

True Color, resolution (EPSG 32632)

curl -X POST \
https://creodias.sentinel-hub.com/api/v1/process \
-H 'Authorization: Bearer <your access token>' \
-F 'request={
"input": {
"bounds": {
"properties": {
"crs": "http://www.opengis.net/def/crs/EPSG/0/32632"
},
"bbox": [
444170,
4574059,
557052,
4767386
]
},
"data": [
{
"type": "S3OLCI",
"dataFilter": {
"timeRange": {
"from": "2020-04-04T00:00:00Z",
"to": "2020-04-05T00:00:00Z"
},
"processing": {
"upsampling": "BILINEAR"
}
}
}
]
},
"output": {
"resx": 150,
"resy": 150,
"responses": [
{
"format": {
"type": "image/png"
}
}
]
}
}' \
-F 'evalscript=//VERSION=3
function setup() {
return {
input: ["B08", "B06", "B04"],
output: {
bands: 3,
sampleType: "AUTO" // default value - scales the output values from [0,1] to [0,255].
}
}
}
function evaluatePixel(sample) {
return [2.5 * sample.B08, 2.5 * sample.B06, 2.5 * sample.B04]
}'

True Color, multi-band GeoTiff

curl -X POST \
https://creodias.sentinel-hub.com/api/v1/process \
-H 'Authorization: Bearer <your access token>' \
-H 'Accept: image/tiff' \
-F 'request={
"input": {
"bounds": {
"properties": {
"crs": "http://www.opengis.net/def/crs/OGC/1.3/CRS84"
},
"bbox": [
8.3333,
41.3149,
9.7009,
43.0568
]
},
"data": [
{
"type": "S3OLCI",
"dataFilter": {
"timeRange": {
"from": "2020-04-04T00:00:00Z",
"to": "2020-04-05T00:00:00Z"
}
}
}
]
},
"output": {
"width": 512,
"height": 512,
"responses": [
{
"format": {
"type": "image/tiff"
}
}
]
}
}' \
-F 'evalscript=//VERSION=3
function setup() {
return {
input: [{
bands: ["B04", "B06", "B08"],
units: "REFLECTANCE" // default value
}],
output: {
bands: 3,
sampleType: "UINT16"
}
}
}
function evaluatePixel(sample) {
// Return the data multiplied by 10000 as integers to save processing units. To obtain reflectance values, simply divide the result's pixel values by 10000.
return [Math.round(10000 * sample.B08), Math.round(10000 * sample.B06), Math.round(10000 * sample.B04)]
}'

True color and metadata (multi-part response GeoTIFF and json)

curl -X POST \
https://creodias.sentinel-hub.com/api/v1/process \
-H 'Authorization: Bearer <your access token>' \
-H 'accept: application/tar' \
-F 'request={
"input": {
"bounds": {
"properties": {
"crs": "http://www.opengis.net/def/crs/OGC/1.3/CRS84"
},
"bbox": [
8.3333,
41.3149,
9.7009,
43.0568
]
},
"data": [
{
"type": "S3OLCI",
"dataFilter": {
"timeRange": {
"from": "2020-04-04T00:00:00Z",
"to": "2020-04-05T00:00:00Z"
}
}
}
]
},
"output": {
"width": 512,
"height": 512,
"responses": [
{
"identifier": "default",
"format": {
"type": "image/tiff"
}
},
{
"identifier": "userdata",
"format": {
"type": "application/json"
}
}
]
}
}' \
-F 'evalscript=//VERSION=3
function setup() {
return {
input: [{
bands: ["B04", "B06", "B08"],
units: "REFLECTANCE"
}],
mosaicking: Mosaicking.SIMPLE,
output: {
id:"default",
bands: 3,
sampleType: "INT16"
}
}
}
function updateOutputMetadata(scenes, inputMetadata, outputMetadata) {
outputMetadata.userData = { "metadata": JSON.stringify(scenes) }
}
function evaluatePixel(samples) {
// Return the bands multiplied by 10000 as integers to save processing units. To obtain reflectance values, simply divide the resulting pixel values by 10000.
return [Math.round(10000 * samples.B08), Math.round(10000 * samples.B06), Math.round(10000 * samples.B04)]
}'

OTCI as jpeg image with bounds given as polygon

curl -X POST \
https://creodias.sentinel-hub.com/api/v1/process \
-H 'Authorization: Bearer <your access token>' \
-F 'request={
"input": {
"bounds": {
"properties": {
"crs": "http://www.opengis.net/def/crs/OGC/1.3/CRS84"
},
"geometry": {
"type": "Polygon",
"coordinates": [
[
[
8.80279541015625,
42.494377798972465
],
[
8.6956787109375,
42.370720143531976
],
[
8.7890625,
42.238685347536496
],
[
8.60504150390625,
42.20614200929954
],
[
8.70391845703125,
42.15322331239858
],
[
8.83575439453125,
41.97991089691236
],
[
8.81378173828125,
41.797935707842974
],
[
8.9208984375,
41.777456667491066
],
[
8.94012451171875,
41.68316883525891
],
[
9.0472412109375,
41.52297326747377
],
[
9.35760498046875,
41.70777900286713
],
[
9.33013916015625,
42.06764572379527
],
[
9.48394775390625,
42.261049162113856
],
[
9.47021484375,
42.51462626746592
],
[
9.33837890625,
42.62385465855651
],
[
9.1900634765625,
42.6844544397102
],
[
8.80279541015625,
42.494377798972465
]
]
]
}
},
"data": [
{
"type": "S3OLCI",
"dataFilter": {
"timeRange": {
"from": "2020-04-04T00:00:00Z",
"to": "2020-04-05T00:00:00Z"
}
}
}
]
},
"output": {
"width": 512,
"height": 512,
"responses": [
{
"identifier": "default",
"format": {
"type": "image/jpeg",
"quality": 90
}
}
]
}
}' \
-F 'evalscript=//VERSION=3
function setup() {
return {
input: [{
bands:["B10", "B11", "B12"],
}],
output: {
id: "default",
bands: 3,
sampleType: "AUTO"
}
}
}
// Create a new visualiser to represent data
var cm=new ColorMapVisualizer([
[0,[0, 0, 0.5]],
[1,[0, 0.3, 0.8]],
[1.8,[1, 0.2, 0.2]],
[2.5,[1, 0.9, 0]],
[4,[0, 0.8, 0.1]],
[4.5,[0, 0.6,0.2]],
[5,[1, 1, 1]]
]);
function evaluatePixel(sample) {
let OTCI = (sample.B12 - sample.B11) / (sample.B11 - sample.B10);
return cm.process(OTCI);
}
'

OTCI image and value (multi-part response png and GeoTIFF containing floats)

curl -X POST \
https://creodias.sentinel-hub.com/api/v1/process \
-H 'Authorization: Bearer <your access token>' \
-H 'Content-Type: multipart/form-data' \
-H 'Accept: application/tar' \
-F 'request={
"input": {
"bounds": {
"properties": {
"crs": "http://www.opengis.net/def/crs/OGC/1.3/CRS84"
},
"geometry": {
"type": "Polygon",
"coordinates": [
[
[
8.80279541015625,
42.494377798972465
],
[
8.6956787109375,
42.370720143531976
],
[
8.7890625,
42.238685347536496
],
[
8.60504150390625,
42.20614200929954
],
[
8.70391845703125,
42.15322331239858
],
[
8.83575439453125,
41.97991089691236
],
[
8.81378173828125,
41.797935707842974
],
[
8.9208984375,
41.777456667491066
],
[
8.94012451171875,
41.68316883525891
],
[
9.0472412109375,
41.52297326747377
],
[
9.35760498046875,
41.70777900286713
],
[
9.33013916015625,
42.06764572379527
],
[
9.48394775390625,
42.261049162113856
],
[
9.47021484375,
42.51462626746592
],
[
9.33837890625,
42.62385465855651
],
[
9.1900634765625,
42.6844544397102
],
[
8.80279541015625,
42.494377798972465
]
]
]
}
},
"data": [
{
"type": "S3OLCI",
"dataFilter": {
"timeRange": {
"from": "2020-04-04T00:00:00Z",
"to": "2020-04-05T00:00:00Z"
}
}
}
]
},
"output": {
"width": 512,
"height": 512,
"responses": [
{
"identifier": "otci_image",
"format": {
"type": "image/png"
}
},
{
"identifier": "default",
"format": {
"type": "image/tiff"
}
}
]
}
}' \
-F 'evalscript=//VERSION=3
function setup() {
return {
input: [{
bands:["B10", "B11", "B12"],
}],
output: [{
id: "default",
bands: 1,
sampleType: "FLOAT32"
},
{
id: "otci_image",
bands: 3,
sampleType: "AUTO"
}
]
}
}
// Create a new visualiser to represent data
var cm=new ColorMapVisualizer([
[0,[0, 0, 0.5]],
[1,[0, 0.3, 0.8]],
[1.8,[1, 0.2, 0.2]],
[2.5,[1, 0.9, 0]],
[4,[0, 0.8, 0.1]],
[4.5,[0, 0.6,0.2]],
[5,[1, 1, 1]]
]);
function evaluatePixel(sample) {
let OTCI = (sample.B12 - sample.B11) / (sample.B11 - sample.B10);
return {
default: [ OTCI ],
otci_image: cm.process(OTCI)
}
}'

All S3OLCI reflectance bands as a GeoTIFF, no normalization (EPSG 32632)

curl -X POST \
https://creodias.sentinel-hub.com/api/v1/process \
-H 'Authorization: Bearer <your access token>' \
-H 'Accept: image/tiff' \
-F 'request={
"input": {
"bounds": {
"properties": {
"crs": "http://www.opengis.net/def/crs/EPSG/0/32632"
},
"bbox": [
444170,
4574059,
557052,
4767386
]
},
"data": [
{
"type": "S3OLCI",
"dataFilter": {
"timeRange": {
"from": "2020-04-04T00:00:00Z",
"to": "2020-04-05T00:00:00Z"
}
}
}
]
},
"output": {
"resx": 300,
"resy": 300,
"responses": [
{
"format": {
"type": "image/tiff"
}
}
]
}
}' \
-F 'evalscript=//VERSION=3
function setup() {
return {
input: [{
bands: ["B01", "B02", "B03", "B04", "B05", "B06", "B07", "B08", "B09", "B10", "B11", "B12", "B13", "B14", "B15", "B16", "B17", "B18", "B19", "B20", "B21"],
units: "REFLECTANCE"
}],
output: {
bands: 21,
sampleType: "UINT16"
}
}
}
function multiplyband(sample){
// Multiply by 10000 and round
return Math.round(10000 * sample);
}
function evaluatePixel(sample) {
// Return the bands multiplied by 10000 as integers to save processing units. To obtain reflectance values, simply divide the resulting pixel values by 10000.
return [multiplyband(sample.B01), multiplyband(sample.B02), multiplyband(sample.B03), multiplyband(sample.B04), multiplyband(sample.B05), multiplyband(sample.B06), multiplyband(sample.B07), multiplyband(sample.B08), multiplyband(sample.B09), multiplyband(sample.B10), multiplyband(sample.B11), multiplyband(sample.B12), multiplyband(sample.B13), multiplyband(sample.B14), multiplyband(sample.B15), multiplyband(sample.B16), multiplyband(sample.B17), multiplyband(sample.B18), multiplyband(sample.B19), multiplyband(sample.B20), multiplyband(sample.B21)]
}'