SENTINEL5P API

SENTINEL5P Sentinel API permette di ricevere da Sentinel HUB dati da Sentinel-5P by ESA, satellite per misurare la qualità dell’aria dallo spazio.

Server disponibile qui con una DEMO

Il server REST è disponibile tramite indirizzo: https://sentinel5p.herokuapp.com/api/v1/

INSTALLATION

    git clone https://github.com/gzileni/sentinelAPI.git
    cd sentinelAPI
    yarn install

Authentication

E’ necessario registrarsi a Sentinel HUB per poter configurare il client OAuth dashboard2

Inoltre creare la propria istanza del layer da visualizzare sulla mappa dashboard2

CREATE .ENV FILE

Creare il file .env con le variabili per accedere a Sentinel HUB

cd sentinelAPI
nano .env    

Aggiungere righe con

RUN

yarn start

DOCKER

$ docker build -t yourusername/sentinelAPI .
$ docker run -p3000:3000 yourusername/sentinelAPI

GET TOKEN

Restituisce il Token di autorizzazione per accedere ai dati di Sentinel HUB

POST https://sentinel5p.herokuapp.com/api/v1/auth

Esempio

const FormData = require('form-data');
const fetch = require('node-fetch');

var body = new FormData();
body.append("clientID", "<YOUR CLIENT ID");
body.append("clientSecret", "<YOUR CLIENT SECRET>");

var requestOptions = {
  method: 'POST',
  body: body,
  redirect: 'follow'
};

fetch("http://localhost:3000/api/v1/auth", requestOptions)
  .then(response => response.text())
  .then(token => console.log(token))
  .catch(error => console.log('error', error));

Get Image S5P

Restituisce l’immagine del satellite Sentinel da visualizzare sul client in formato PNG

POST https://sentinel5p.herokuapp.com/api/v1/process

Esempio

const FormData = require('form-data');
const fetch = require('node-fetch');

var headers = {
    "Content-Type", "application/x-www-form-urlencoded"
};

var body = new FormData();
body.append("clientID", "<YOUR CLIENT ID>");              // required
body.append("clientSecret", "<YOUR CLIENT SECRET>");      // required
body.append("evalscript", "CO");                          // not required, default value = 'CO'
body.append("fromUTC", "2019-04-01T00:00:00Z");           // not required, default value to yesterday
body.append("toUTC", "2019-06-30T00:00:00Z");             // not required, default value to yesterday
body.append("width", "512");                              // not required, default value = 512
body.append("height", "512");                             // not required, default value = 512
body.append("lng1", "13");                                // required 
body.append("lat1", "45");                                // required
body.append("lng2", "15");                                // required
body.append("lat2", "47");                                // required
body.append("base64", "true");                            // not required, dafault value = 'false'

var requestOptions = {
  method: 'POST',
  headers: headers,
  body: body,
  redirect: 'follow'
};

fetch("http://localhost:3000/api/v1/sentinel/process", requestOptions)
  .then(response => response.blob())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

Get EvalScript

Restituisce lo script personalizzato per l’elaborazione dei dati satellitari

https://sentinel5p.herokuapp.com/api/v1/process?evalscript=

Esempio

const fetch = require('node-fetch');

var requestOptions = {
  method: 'GET',
  redirect: 'follow'
};

fetch("http://localhost:3000/api/v1/process/?evalscript=CO", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

Evalscipts

Gli script personalizzati EVALSCRPT V3 sono codici Javascript richiesti per elaborare i dati satellitari da Sentinel Hub e quali valori il servizio restituirà. Nei parametri dei metodi delle richieste HTTP si possono specificare una serie di script come i seguenti: