A Python module of a fast and intelligent algorithm for finding the pixel displacement between two images that can be used for all dense feature tracking applications, including the measurement of surface displacements occurring between two repeat satellite images as a result of glacier flow, large earthquake displacements, and land slides.
Dense feature tracking in an arbitrary map-projected Cartesian (northing/easting) coordinate systems can be done when used in combination with the sister Geogrid Python package distributed with autoRIFT. Example applications include searching radar-coordinate imagery on a polar stereographic grid and searching Universal Transverse Mercator (UTM) imagery at a user-specified map-projected Cartesian (northing/easting) coordinate grid.
Important
autoRIFT only returns displacement values for locations where significant feature matches are found, otherwise autoRIFT returns no data values.
Copyright (C) 2019 California Institute of Technology. Government Sponsorship Acknowledged.
Link: https://github.com/nasa-jpl/autoRIFT
Citation: https://doi.org/10.3390/rs13040749
Released version of autoRIFT are available from conda-forge and can be installed using conda
/mamba
:
mamba install -c conda-forge autorift
For a development version, we recommend using conda
/mamba
as some dependencies (e.g., ISCE3) are only distributed on Conda-Forge and would need to be built manually otherwise. To setup a development environment, clone this repository, create a conda environment, and install an editable version of this repository:
git clone https://github.com/nasa-jpl/autoRIFT.git
cd autoRIFT
mamba env create -f environment.yml
mamba activate autoRIFT
python -m pip install --use-pep517 --no-build-isolation -e .
When developing files, please use ruff
and clang-format
to ensure files are formatted to match our style:
ruff format .
find geo_autoRIFT -iname "*.h" -exec clang-format -i {} \;
find geo_autoRIFT -iname "*.cpp" -exec clang-format -i {} \;
Warning
autoRIFT is undergoing a significant refactor during the v2.0+ series so usage is subject to change. We expect to release a stable, user-friendly version of autoRIFT with v3.0.
Currently, the expected workflow for autoRIFT is to:
- (Optionally) Run
testGeogrid.py
for working with map-projected Cartesian (northing/easting) coordinates (lat/lon is not supported) - Run
testautoRIFT.py
to generate offsets and velocity maps - (Optionally) Run
netcdf_output.py
to package output products into an ITS_LIVE netCDF file.
However, these files are not distributed with the package and so will need to be cloned/copied from the GitHub repository and likely modified for your use case.
For an example of using autoRIFT to determine the velocity of glaciers in Greenland, please see docs/demo.md
.
For a full description of how to call these scripts and the options available, please use the --help
command:
testGeogrid.py --help
testautoRIFT.py --help
netcdf_output.py --help
Notable changes to this project will be recorded in our CHANGELOG and provided as release notes.
Here are some known development opportunities:
- for radar (SAR) images, it is yet to include the complex correlation of the two images, i.e. the current version only uses the amplitude correlation
- combinative use of current SAR amplitude-based offset tracking results with InSAR phase-derived velocity maps needs to be investigated with a better data fusion
- the GPU implementation would be useful to extend
AutoRIFT 1.0 was initially developed by:
- Alex Gardner (JPL/Caltech; alex.s.gardner@jpl.nasa.gov) who first described the algorithm "auto-RIFT" in (Gardner et al., 2018) and developed the first version in MATLAB and continued to refine the algorithm;
- Yang Lei (GPS/Caltech; leiyangfrancis@gmail.com) who translated it to Python, further optimized and incorporated it into the ISCE2 software while also developed its sister module Geogrid;
- and Piyush Agram (GPS/Caltech; piyush@gps.caltech.edu) who set up the installation as a standalone module and further cleaned the code.
Since then, autoRIFT has been further developed by a number of ITS_LIVE project members, collaborators, and contributors. Please see: https://github.com/nasa-jpl/autoRIFT/graphs/contributors
Reference:
1. Gardner, A.S., Moholdt, G., Scambos, T., Fahnstock, M., Ligtenberg, S., Broeke, M.V.D. and Nilsson, J., 2018. Increased West Antarctic and unchanged East Antarctic ice discharge over the last 7 years. The Cryosphere, 12(2), pp.521-547.
2. Lei, Y., Gardner, A. and Agram, P., 2021. Autonomous Repeat Image Feature Tracking (autoRIFT) and Its Application for Tracking Ice Displacement. Remote Sensing, 13(4), p.749.
This effort was funded by the NASA MEaSUREs program in contribution to the Inter-mission Time Series of Land Ice Velocity and Elevation (ITS_LIVE) project (https://its-live.jpl.nasa.gov/) and through Alex Gardner’s participation in the NASA NISAR Science Team.