A toolbox for the MSI instruments on board of ESA's Sentinel-2 satellite.
The project page of SNAP, and the sentinel toolboxes can be found at http://step.esa.int. There you can find tutorials, developer guides, a user forum and other interesting things.
Download and install the required build tools
- Install Java 8 JDK and set JAVA_HOME accordingly. A distribution of OpenJDK is suggested. Several distributions are available, for example
- Install Maven and set MAVEN_HOME accordingly.
- Install git
Add $JAVA_HOME/bin, $MAVEN_HOME/bin to your PATH.
Clone the S2TBX source code and related repositories into a directory referred to as ${snap} from here on
cd ${snap}
git clone https://github.com/senbox-org/s2tbx.git
git clone https://github.com/senbox-org/snap-desktop.git
git clone https://github.com/senbox-org/snap-engine.git
Build SNAP-Engine:
cd ${snap}/snap-engine
mvn clean install
Build SNAP-Desktop:
cd ${snap}/snap-desktop
mvn clean install
cd ${snap}/snap-desktop/snap-application
mvn nbm:cluster-app
Build Sentinel-2 Toolbox:
cd ${snap}/s2tbx
mvn clean install
If unit tests are failing, you can use the following to skip the tests
mvn clean
mvn install -Dmaven.test.skip=true
-
Create an empty project with the ${snap} directory as project directory
-
Import the pom.xml files of snap-engine, snap-desktop and s2tbx as modules. Ensure not to enable the option Create module groups for multi-module Maven projects. Everything can be default values.
-
Set the used SDK for the main project. A JDK 1.8 or later is needed.
-
Use the following configuration to run SNAP in the IDE:
Main class: org.esa.snap.nbexec.Launcher VM parameters: -Dsun.awt.nopixfmt=true -Dsun.java2d.noddraw=true -Dsun.java2d.dpiaware=false All VM parameters are optional Program arguments: --userdir "${snap}/s2tbx/target/userdir" --clusters "${snap}/s2tbx/s2tbx-kit/target/netbeans_clusters/s2tbx" --patches "${snap}/snap-engine/$/target/classes;${snap}/s2tbx/$/target/classes" Working directory: ${snap}/snap-desktop/snap-application/target/snap/ Use classpath of module: snap-main
Enjoy!