Skip to main content

Python library for multi-sensor RTC processing using the OPERA algorithm

Project description

MultiRTC

A python library for creating ISCE3-based RTCs for multiple SAR data sources

[!WARNING] This package is still in early development. Users are encouraged to not use this package in production or other critical contexts until the v1.0.0 release.

[!IMPORTANT] All credit for this library's RTC algorithm goes to Gustavo Shiroma and the JPL OPERA and ISCE3 teams. This package merely allows others to use their algorithm with a wider set of SAR data sources. The RTC algorithm utilized by this package is described in Shiroma et al., 2023.

Usage

MultiRTC allows users to create RTC products from SLC data for multiple SAR sensor platforms, and provides utilities for assessing the resulting products. All utilities can be accessed via CLI pattern multirtc SUBCOMMAND ARGS, with the primary subcommand multirtc rtc.

Currently the list of supported datasets includes:

Full RTC:

Geocode Only:

To create an RTC, use the multirtc CLI entrypoint using the following pattern:

multirtc rtc PLATFORM SLC-GRANULE --resolution RESOLUTION --work-dir WORK-DIR

Where PLATFORM is the name of the satellite platform (currently S1, CAPELLA, ICEYE or UMBRA), SLC-GRANULE is the name of the SLC granule, RESOLUTION is the desired output resolution of the RTC image in meters, and WORK-DIR is the name of the working directory to perform processing in. Inputs such as the SLC data, DEM, and external orbit information are stored in WORK-DIR/input, while the RTC image and associated outputs are stored in WORK-DIR/output once processing is complete. SLC data that is available in the Alaska Satellite Facility's data archive (such as Sentinel-1 Burst SLCs) will be automatically downloaded to the input directory, but data not available in this archive (commercial datasets) are required to be staged in the input directory prior to processing.

Output RTC pixel values represent gamma0 power.

Current Umbra Implementation

Currently, the Umbra processor only supports basic geocoding and not full RTC processing. ISCE3's RTC algorithm is only designed to work with Range Migration Algorithm (RMA) focused SLC products, but Umbra creates their data using the Polar Format Algorithm (PFA). Using an approach detailed by Piyush Agram to adapt RMA approaches to the PFA image geometry, we have developed a workflow to geocode an Umbra SLC but there is more work to be done to implement full RTC processing. Since full RTC is not yet implemented, Umbra geocoded pixel values represent sigma0 power.

DEM options

Currently, only the OPERA DEM is supported. This is a global Height Above Ellipsoid DEM sourced from the COP-30 DEM. In the future, we hope to support a wider variety of automatically retrieved and user provided DEMs.

Calibration & Validation Subcommands

MultiRTC includes three calibration and validation (cal/val) subcommands for assessing the geometric and radiometric quality of SAR products. These tools are useful for analyzing geolocation, co-registration, and impulse response performance.

ale Absolute Location Error

Quantifies the geolocation accuracy of a SAR image by comparing known corner reflectors at the Rosamond, California site with their positions in the geocoded image.

Usage:

multirtc ale FILEPATH DATE AZMANGLE PROJECT --basedir BASEDIR

See multirtc ale --help for descriptions of each argument.

rle Relative Location Error

Measures the relative alignment of overlapping geocoded SAR images by measuring the offsets between each 1024x1024 pixel chunk of the images.

Usage:

multirtc rle REFPATH SECPATH PROJECT --basedir BASEDIR

See multirtc rle --help for descriptions of each argument.

pt Point Target Analysis

Evaluates the impulse response of corner reflector at the Rosamond, California site in the SAR image, including resolution, peak to side-lobe ratio (PSLR), and integrated side-lobe ratio (ISLR).

Usage:

multirtc pt FILEPATH DATE AZMANGLE PROJECT --basedir BASEDIR

See multirtc pt --help for descriptions of each argument.

When will support for [insert SAR provider here] products be added?

We're currently working on this package on a "best effort" basis with no specific timeline for any particular dataset. We would love to add support for every SAR dataset ASAP, but we only have so much time to devote to this package. If you want a particular dataset to be prioritized there are several things you can do:

  • Open an issue requesting support for your dataset and encourage others to like or comment on it.
  • Provides links to example datasets over the Rosamond, California corner reflector site (Lat/Lon 34.799,-118.095) for performing cal/val.
  • Reach out to us about funding the development required to add your dataset.

Developer Setup

  1. Ensure that conda is installed on your system (we recommend using mambaforge to reduce setup times).
  2. Download a local version of the multirtc repository (git clone https://github.com/forrestfwilliams/multirtc.git)
  3. In the base directory for this project call mamba env create -f environment.yml to create your Python environment, then activate it (mamba activate multirtc)
  4. Finally, install a development version of the package (python -m pip install -e .)

To run all commands in sequence use:

git clone https://github.com/forrestfwilliams/multirtc.git
cd multirtc
mamba env create -f environment.yml
mamba activate multirtc
python -m pip install -e .

License

MultiRTC is licensed under the BSD-3-Clause license. See the LICENSE file for more details.

Code of conduct

We strive to create a welcoming and inclusive community for all contributors to this project. As such, all contributors to this project are expected to adhere to our code of conduct.

Please see CODE_OF_CONDUCT.md for the full code of conduct text.

Contributing

Contributions to this project plugin are welcome! If you would like to contribute, please submit a pull request on the GitHub repository.

Contact Us

Want to talk about this project? We would love to hear from you!

Found a bug? Want to request a feature? open an issue

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

multirtc-0.4.0.tar.gz (43.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

multirtc-0.4.0-py3-none-any.whl (38.2 kB view details)

Uploaded Python 3

File details

Details for the file multirtc-0.4.0.tar.gz.

File metadata

  • Download URL: multirtc-0.4.0.tar.gz
  • Upload date:
  • Size: 43.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for multirtc-0.4.0.tar.gz
Algorithm Hash digest
SHA256 20f1422ae50cfac402faec4177c82b6055135e4528a0a5ba89d990c979342a90
MD5 bb44033ec54fee1377cdc216b36d5e1b
BLAKE2b-256 25c0bc9a90ef48d97edb10e326319b0f1e878d1972df43e1541d555667d725f4

See more details on using hashes here.

File details

Details for the file multirtc-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: multirtc-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 38.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for multirtc-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b915362a0945df25ec2e9e4124169967cc1476356f466e81561cff9f33106ec5
MD5 9e04a89c4563ccd587ab32c436ec3cd4
BLAKE2b-256 067569075037ef4b926fc93137577be6c5b961635c876c8b58a1b7d3c50fa465

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page