A Docker container including ESA-STEP Sentinel Application Platform (SNAP, http://step.esa.int/main/toolboxes/snap/) and Sentinel toolboxes jointly developed by Brockmann Consult, Array Systems Computing and C-S.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
java8-maven3-git-snap_dev
sen2cor
snap2
snap3
.gitignore
LICENSE
README.md
docker-snap.Rproj
make_images.sh

README.md

Docker containers for the Sentinel Application Platform

Docker containers including ESA-STEP Sentinel Application Platform (SNAP) and Sentinel toolboxes jointly developed by Brockmann Consult, Array Systems Computing and C-S.

Some useful utlities containers are also included.

Resources

Links to other useful projects

SEN2COR

Status

  • in early development and may change at anytime without notice
  • headless debian containers available
  • images not yet on Dockerhub.

Versions

Headless SNAP with toolboxes, gpt command line API enabled

Headless SNAP with toolboxes, gpt command line API and snappy Python API enabled

Utilities

  • sen2cor:2.0.6 Python miniconda container with sen2cor 2.0.6 a utility for the atmospheric correction of L1C Sentinel 2 products.
  • alpine3-pythonX-sentinelsat Python container with sentinelsat 0.6.4 a utility to search and download Sentinel-1 Imagery [TODO]
  • java8-maven-git-snap_dev - For compiling developer versions of snap using netbeans.[TODO]

Dependencies

Details

The SNAP installer, created with install4j from ej-technologies, supports graphical, console and unattended installation (see Install SNAP on the command line.

The base container downloads the SNAP Unix installer and prepares the container ready for installation using Dockerfile ONBUILD instructions. For improved maintenance ONBUILD instructions are stored in a seperate Dockerfile; meaning less builds of the base image. Upon initiating a specific build, the snap2.varfile which contains the build options is copied to the container and the unattended installation of SNAP within the container is done by passing the option -q and the 'instalation file' to the installer via the -varfile option (all these commands are found in the :on_build Dockerfile, whereas the instalations instructions are in snap2.varfile). The Dockerfiles in each build directory mainly add metadata (labels, ect.).

SNAP has 2 headless APIs, gpt a mature command line interface and snappy a Python API. To facilitate the communication with SNAP via snappy a set of containers that include Python 2.7 (from the Debian package distribution system) are also available, note the Python instalation is intentially minimal and 'frozen' to a debian package release.

Note: An initial (quick) test with 1science/docker-alpine:3.3 suggested The SNAP installer does not work with the minimilist Docker image from Alpine Linux; Error unpacking jar files. The architecture or bitness (32/64) of the bundled JVM might not match your machine. However, on the Alpine Linux distribution site 64bit version are available. More research to be done!

Installation

  1. Install Docker.

  2. Choose your flavour!

  • Use a pre-made container (replace :tag with the version you want)

    • Download build from public Docker Registry: docker pull epmorris/debian8-snap2:s1tbx
    • Alternatively, you can build an image from Dockerfile (replace :tag and the repository subdirectory with the version you want): docker build -t="epmorris/debian8-snap2:s1tbx" github.com/edwardpmorris/docker-snap.git#:debian8-snap2-s1tbx)
  • Build a custom container...

Usage

SNAP containers

To run a container (choose the container flavour using the :tag option) and view the help for the SNAP command line API, gpt, open a terminal and type:

docker run --rm epmorris/debian8-snap2:s1tbx gpt -h
  • adding vmoptions:
docker run -it -v /home/edward/snap/bin/gpt.vmoptions:/usr/local/snap/bin/gpt.vmoptions epmorris/debian8-esa-step-snap2:s1tbx

Sen2Cor

To get help for the Sen2Cor command line interface:

docker run --rm epmorris/sen2cor:2.0.6 L2A_Process -h

Run atmospheric correction on a image

docker run -it -v /home/edward/Desktop/S2:/home/worker/S2 epmorris/sen2cor:2.2.1 \
L2A_Process \
--resolution 10 \
--GIP_L2A $SEN2COR_HOME/cfg/L2A_GIPP.xml \
S2/S2A_OPER_PRD_MSIL1C_PDMC_20160309T104243_R137_V20160308T112023_20160308T112023.SAFE/GRANULE/S2A_OPER_MSI_L1C_TL_MTI__20160308T193334_A003709_T29SQA_N02.01

Acknowledgements

Thanks to ESA-STEP Sentinel Application Platform and Sentinel toolboxes development teams for making SNAP freely available. Thanks to Docker for their excellent tool. Thanks to Marco and STEP forum members for their prompt answers. EPM is supported by the EU-FP7 project 'Foreshore Assessment using Space Research' (FAST, http://www.fast-space-project.eu/).