This repository contains the functionality SenSARP used within the MULTIPLY main platform. The SenSARP specific documentation is hosted on ReadTheDocs. It is part of the MULTIPLY core documentation. Please find the pdf version of the SenSARP documentation here and for the MULTIPLY platform here. SenSARP is a pipeline to pre-process Sentinel-1 SLC data by using ESA SNAP Sentinel-1 Toolbox. Expert users can adapt the default pre-processing chain to their needs and benefit from functionalities provided by SenSARP.
Sentinel-1 satellites will provide continuous free available microwave remote sensing data of the entire globe at least until the end of 2030. Furthermore, ESA is not only providing Sentinel satellite images (e.g. Sentinel-1, Sentinel-2, Sentinel-3) but they also developed free open source toolboxes (Sentinel-1, 2, 3 toolboxes) for scientific exploitation. The toolboxes can be accessed and used via the Sentinel Application Platform (SNAP). SNAP offers a graphical interface were expert users can develop different processing schemes and apply them on the satellite images. Although, Sentinel-1 satellite data and a processing software are freely available, the usage of the data is mainly limited to expert users in the field of microwave remote sensing as different pre-processing steps need to be applied before using Sentinel-1 images.
SenSARP was developed to provide a push-button option to easily apply a rigid pre-processing pipeline with sensible defaults to a Sentinel-1 Level 1 SLC time series data as well as single Sentinel-1 Level 1 SLC images. Thus, non-expert users in the field of pre-processing microwave data are able to use radiometric and geometric corrected sigma nought backscatter data for their specific applications. Beside a rigid pre-processing pipeline, SenSARP provides filter options to retrieve only images of a specific year or images that contain a specific area of interest from a stack of downloaded Sentinel-1 data. Furthermore, the default processing scheme of SenSARP can handle if an area of interest is contained in two tiles of the same swath (due to storage reasons data of one Sentinel-1 satellite swath is provided by ESA within different tiles). Additionally, SenSARP checks if within a stack of Sentinel-1 images, one specific image was multiple processed by ESA and uses the newest.
For expert users, SenSARP provides the possibility to automate their pre-processing on a large scale by either modifying the default pre-processing scheme (modification of xml graph pre_processing_step1.xml) or create their own pre-processing scheme (create a new xml graph) with the graph builder of the SNAP software. They can benefit from the filter options, the default pre-processing step 2 (co-registration of images) and the SenSARP functions to stack all processed and co-registered images within a netCDF file with additional image information e.g. satellite name, relative orbit and orbitdirection.
docs/
- The auto generated documentationrecipe/
Conda installation recipesar_pre_processing/
- The main sar pre processing software packagetest/
- The test package.AUTHORS.rst
- Author information.CHANGES.md
- Package change log.LICENSE.rst
- License of software in repository.README.md
- Readme.environmental.yml
- Requirements.setup.py
- main build script, to be run with Python 3.6
The first step is to clone the latest code and step into the check out directory::
git clone https://github.com/multiply-org/sar-pre-processing.git
cd sar-pre-processing
Download and install Anaconda or Miniconda. Anaconda/Miniconda installation instructions can be found Anaconda
To install all required modules, use
conda env create --prefix ./env --file environment.yml
conda activate ./env # activate the environment
To install SenSARP into an existing Python environment, use::
python setup.py install
To install for development, use::
python setup.py develop
Install system requirements
sudo apt install python3-pip python3-tk python3-virtualenv python3-venv virtualenv
Create a virtual environment
virtualenv -p /usr/bin/python3 env
source env/bin/activate # activate the environment
pip install --upgrade pip setuptools # update pip and setuptools
To install SenSARP into an existing Python environment, use::
python setup.py install
To install for development, use::
python setup.py develop
GDAL package needs to be installed too
sudo apt install gdal-bin libgdal-dev
python -m pip install pygdal=="`gdal-config --version`.*"
Please see the environment file for a list of all installed dependencies during the installation process. Additionally, ESA's SNAP Sentinel-1 Toolbox (Version >8.0.3) has to be installed prerequisite. The Software can be downloaded here. To install the SNAP toolbox, open a terminal window and use
bash esa-snap_sentinel_unix_8_0.sh
SenSARP uses only functionalities of the Sentinel-1 Toolbox. Currently, only SNAP version 8.0 can be downloaded from the website. To update SNAP to a version >8.0.3 please start the SNAP software. You will be asked if you want to search for update. Please search for updates and install all updates. After the updates are installed, you need to restart SNAP to initialize the updates correctly. SNAP Toolbox need libgfortran for specific operations but currently libgfortran is not installed during the installation process of SNAP, therefore you might use
sudo apt-get install gfortran
For usage checkout the juypter notebook
We use Sphinx to generate the documentation of SenSARP on ReadTheDocs. The SenSARP documentation is available here
Please contribute using Github Flow. Create a branch, add commits, and open a pull request.
If you find a bug in SenSARP, please open an new issue and tag it "bug".
If you want to suggest a new feature or an improvement of a current feature, you can submit this on the issue tracker and tag it "enhancement".
The package is currently tested for Python >= 3.6 on Unix-like systems. To run unit tests, execute the following line from the root of the repository:
pytest
This project is licensed under the GPLv3 License - see the LICENSE.rst file for details.
If you used SenSARP - please cite the paper:
APA-style format
Thomas Weiß, & Tonio Fincke (2022). SenSARP: A pipeline to pre-process Sentinel-1 SLC data by using ESA SNAP Sentinel-1 Toolbox. Journal of Open Source Software, 7(69), 3337, https://doi.org/10.21105/joss.03337
@article{Weiß2022,
doi = {10.21105/joss.03337},
url = {https://doi.org/10.21105/joss.03337},
year = {2022},
publisher = {The Open Journal},
volume = {7},
number = {69},
pages = {3337},
author = {Thomas Weiß and Tonio Fincke},
title = {SenSARP: A pipeline to pre-process Sentinel-1 SLC data by using ESA SNAP Sentinel-1 Toolbox},
journal = {Journal of Open Source Software}
}