Sentinel Application Platform (SNAP) Brice Mora MedRIN meeting, Paphos, Cyprus, 20 March, 2019
Sentinel Application Platform (SNAP)
Brice Mora
MedRIN meeting, Paphos, Cyprus, 20 March, 2019
What is SNAP?
An open-source, flexible and re-usable scientific Toolbox
Based on the strong software heritage of BEAM & NEST
With specific Sentinel data exploitation tools
Multi-mission : Sentinel-1/2/3
Envisat, MODIS, SeaWIFS, …
AVHRR, SMOS, Chris-PROBA, SPOT VGT, …
LANDSAT, RapidEye, SPOT
Generic formats : NetCDF, GeoTIFF, HDF…
Modular and extensible
Installation
Java provides great portability : Same code, but also same binaries run on all platforms
Installers provided for all standard platforms
Executables: Snap64: SNAP desktop
Gpt : run processes in command line
Pconvert : Data product conversion and quicklook generation
Snappy-conf: Configuration tool for the SNAP-Python interface
snap-conf-optimiser
Architecture
SNAP - Modularity
Functionalities split in individual modules : Readers, Writers
Operators
GUI functionalities
Module Manager : Updates
Installation/Removal of modules
Notifications
Any number of third party repositories
SNAP – Core features
Common architecture and data model for all Toolboxes
Very fast image display and navigation even of giga-pixel images
Graph Processing Framework (GPF)
Advanced layer management allows adding and manipulation of new overlays such as images of other bands, images from WMS servers or ESRI shapefiles
Flexible band arithmetic using arbitrary mathematical expressions
Accurate reprojection and ortho-rectification to common map projections
Geo-coding and rectification using ground control points
Automatic SRTM DEM download and tile selection
Multithreading and Multi-core processor support
SNAP – Extensibility
Java as the native language. A Java API to Develop your own application (cli or gui)
Extend the existing application by adding modules
Python as a main extension language. SNAPPY: The Python API mimics the Java API
Write your own Python scripts leveraging on SNAP
Extend SNAP by developing modules in Python (numpy, scipy, …). Useful for bridging your C/C++ library
Standalone Tools Adapter module Use your own cli tools as if they were a native SNAP module
GDAL, Orfeo Toolbox, Sen2Cor, Sen2Three, ...
SNAP – Main Toolboxes
S1TBX:
Support the large archive of data from ESA SAR missions including SENTINEL-1, ERS-1 & 2 and ENVISAT, as well as third party SAR data from ALOS PALSAR, TerraSAR-X, COSMO-SkyMed and RADARSAT-2.
S2TBX:
Exploitation of high resolution optical data
Sentinel-2, Envisat (MERIS & AATSR), ERS (ATSR), as well as third party data from RapidEye, SPOT, MODIS (Aqua and Terra), Landsat (TM), ALOS (AVNIR & PRISM) and others
S3TBX:
Exploitation of medium resolution optical data
Sentinel-3 (OLCI and SLSTR), Envisat (MERIS & AATSR), ERS (ATSR), SMOS as well as third party data from MODIS (Aqua and Terra), Landsat (TM), ALOS (AVNIR & PRISM) and others.
SNAP – Community
Our website : step.esa.int Get it : http://step.esa.int/main/download/
Ask questions, discuss anything SNAP or Sentinel data related : http://forum.step.esa.int
Tutorials, News, Links, related software, ...
S2-TOOLBOX
Exploitation of high resolution optical data
Sentinel-2 L1B, L1C, L2A and L3, Landsat-8, Spot 1 to Spot 7, Spot4 Take5, Spot5 Take5, RapidEye, Deimos
S2TBX – FEATURE SUMMARY
Sen2Cor for Atmospheric Correction
Sen2Three level-3 processor for Spatio-Temporal Synthesis of bottom of atmosphere corrected Sentinel-2 level 2a images
L2B biophysical processor (LAI, fAPAR, …)
Reflectance to Radiance Processor
Radiometric Indices
Vegetation indices : DVI, RVI, PVI, IPVI, WDVI, TNDVI, GNDVI, GEMI, ARVI, NDI45…
Soil indices : SAVI, TSAVI, MSAVI, MSAVI2, BI, BI2, RI, CI
Water indices : NDWI, NDWI2, MNDWI, NDPI, NDTI
IdePix Processor: pixel classification
MCI Processor: Maximum Chlorophyll Index by exploiting the height of a measurement over a specific baseline.
OTB tools: Pansharpening, Rasterization, Segmentation …
S2TBX – SENTINEL2 READER
Products are aggregation of granules (L1B) or tiles (L1C)
Transparent to the end user : single mosaic in Sentinel 2 Toolbox
Optimized multi-resolution viewing/processing
JPEG2000 decoding through OpenJPEG library
Internal cache of JP2 decoded tiles for performance
S2TBX – Product examples: vegetation monitoring
S2TBX – Product examples: atmospheric correction S2-L1C
S2-L2A
SNAP: Next steps
Upcoming release of version SNAP 7.0 (May, 2019: ESA LPS), more releases scheduled until end of 2020
Dedicated python-based interface to facilitate use the API
Documentation especially for developers to be extended
Better support for multi-size products (different spatial resolution, image size), especially for Sentinel-2
Homogenization of metadata and readers
Improvement of graph builder tool
Fusion and change detection processors, time series analysis, and direct access of cloud resources
S1TBX to support new sensors (ALOS-2, PAZ, RISAT-1…), stack generation and coherence estimator improvements
S2TBX to add product readers for VHSR optical sensors, add support for Landsat products in biophysical processor. Addition of new processors for atmospheric corrections and cloud detection
S3TBX to provide new pre-processing tools for radiometric calibration improvement and reflectance values derivation from OLCI data. Addition of processors to derive water quality indices. Tool development to allow creation of L1C synergy data products from OLCI and SLSTR data
Thank you for your attention
Brice Mora