Skip to content

Preprocess and integrate Sentinel-1 imagery into FORCE

License

Notifications You must be signed in to change notification settings

felixlobert/force-sar

Repository files navigation

force-sar

Intro

force-sar is a module that enables the integration of Sentinel-1 Synthetic Aperture Radar (SAR) data into the Framework for Operational Radiometric Correction for Environmental monitoring (FORCE) by David Frantz. force-sar provides the capability to create SAR data cubes with consistent radiometric and geometric properties, covering large regions and time periods. This enables users to perform multi-sensor and multi-temporal analyses.

With force-sar, Sentinel-1 Ground Range Detected (GRD) acquisitions are preprocessed to analysis-ready backscatter coefficient data, including calibration, speckle filtering, and terrain correction. The analysis-ready SAR data are then seamlessly ingested into your existing FORCE data cube allowing for convenient scalability of operations and applying the whole FORCE Higher Level functionality. With force-sar, you have the flexibility to use GRD data from a mounted satellite data repository or download the data directly to your machine.

Please note that force-sar is currently in development, and further enhancements are ongoing. Contributions from the community are welcomed to help shape and improve the functionality of force-sar in the future.

Main components

force-sar consists of four main components:

  1. query
    • The query module allows you to search for Sentinel-1 data that matches your criteria in terms of space and time. You can specify search criteria and retrieve metadata, including footprints, of the scenes that match your query. The data can be downloaded from the Alaskan Satellite Facility (ASF) or, if you are working on CODE-DE, EO-Lab or Creodias, directly used from the mounted satellite data repository. You can also specify additional processing parameters, such as orbit direction, to narrow down your search.
  2. download
    • In case you don't have access to a mounted satellite data repository, the download module allows you to automatically download the queried Sentinel-1 scenes from the Alaska Satellite Facility - Distributed Active Archive Center using your user credentials. The downloaded products will be stored in a Level 0 (unprocessed products) archive.
  3. process
    • The processing module uses an esa SNAP docker image to process the downloaded or mounted Sentinel-1 data with a pre-built, but easily customizable, S1-GRD to $\gamma^0$ workflow (graphs/grd_to_gamma0.xml). Within the processing workflow, the S1 data is already subsetted to match the extent of your defined data cube, saving disk space when working with small study areas. Processed data will be stored in a Level 1 (processed but not yet tiled) archive. You can specify additional processing parameters, such as calibration options and speckle filtering.
  4. cube
    • In the cube module, the processed S1 data is seamlessly integrated into your FORCE datacube using the power of gdal vrts and the FORCE built-in force-cube functionality.

Setup

force-sar comes as completely dockerized stand-alone command line interface. The latest image can be pulled from dockerhub and tested with:

docker pull felixlobert/force-sar
docker run felixlobert/force-sar

Keep in mind that all force-sar functions are performed within the Docker container. As a result, you need to properly mount the directories that contain the data you want to use with force-sar when executing the docker run command. To streamline the process and make it more user-friendly, you may want to add a customized alias, similar to the example provided, to your ~/.bashrc file for seamless and convenient usage of force-sar.

alias force-sar=' \
  docker run \
  -u "$(id -u):$(id -g)" \
  -v $HOME:$HOME \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /etc/group:/etc/group:ro \
  --group-add $(stat -c '%g' /var/run/docker.sock) \
  -ti \
  --rm \
  felixlobert/force-sar'

Note force-sar itself makes use of Docker in form of starting a FORCE container for certain operations (e.g., cube). Therefore, your Docker socket (docker.sock) needs to be mounted to the container to make this interaction with the Docker daemon possible. This ensures that force-sar has the necessary permissions and access to Docker functionalities for the specific modules.

Usage

Using the force-sar functions is similar to using FORCE. To get started, prepare a parameter file and provide it to one of the functions. You can find an example parameter file at demo/prm_file.prm. To learn more about the required arguments and options for a function, you can add --help to the command. For example:

force-sar query --help

Acknowledgements

force-sar greatly benefits from the features and the data cube concept of the Framework for Operational Radiometric Correction for Environmental monitoring (FORCE) by David Frantz, and acknowledges its contribution to the project.