Skip to content

autoRIFT v2.0.0

Choose a tag to compare

@jhkennedy jhkennedy released this 27 May 22:33
· 32 commits to main since this release
c9ba2dd

Important

This release includes major changes to Geogrid, autoRIFT, and the expected usage; please read the release notes carefully. Notably, the radar workflow has been migrated from ISCE2 to ISCE3 and autoRIFT now depends on ISCE3 instead of being built inside it. This release is thanks to @mfangaritav, @AndrewPlayer3, @kmarnoult, and @jhkennedy.

Added

  • An environment.yml file for creating a developmental conda environment

  • ruff.toml configuration files for formatting python code with ruff

  • .clang-format configuration files for formatting C/C++ code with clang-format

  • Updating the changelog will now be required for all PRs into autoRIFT's main branch.

  • geogrid C++ extension for the radar workflow which calls core ISCE3 C++ code directly.

Changed

  • geogrid and autoRIFT now require Python 3.10 or greater
  • All project documentation has been consolidated into the README.md and docs/demo.md, which have been updated to reflect new usage.
  • Python's sysconfig is now used to get the Python include directory and purelib library paths instead of predicting it from the OpenCV build info.
  • Geogrid and autoRIFT now report their version numbers from the geo_autoRIFT namespace package metadata
  • The radar module in the Geogrid package has been changed from Geogrid.py to GeogridRadar.py.
  • The radar version of Geogrid now uses ISCE3 rather than ISCE2.
  • The test*.py workflows are no longer specific to optical or radar processing:
    • testGeogridOptical.py and testGeogrid_ISCE.py have been combined into a new testGeogrid.py script
    • testautoRIFT.py and testautoRIFT_ISCE.py workflow scripts have been merged into one testautoRIFT.py script
  • Significant performance improvements to functions in autoRIFT.py:
    • arPixDisp_s and arPixDisp_u (float32 and uint8 pixel-wise displacement functions):
      • Moved the looping code into autoriftmodule.cpp
      • Multi-threading is now done via OpenMP in C++, rather than by using Python's multiprocessing library
      • Removed the loop_unpacking_ functions that were used for multiprocessing
    • colfilt (column-wise filter function):

Fixed

  • The arPixDisp_s and arSubPixDisp_s C++ functions now use normalized cross-covariance (CV_TM_CCOEFF_NORMED) in the cv::matchTemplate calls, rather than normalized cross-correlation (CV_TM_CCORR_NORMED). This matches what the arPixDisp_u and arSubPixDisp_u workflows have been using. See here for the differences between the methods.

Removed

  • The geo_autoRIFT/__init__.py file and all the sconscript files have been removed with the migration to ISCE3 -- these only served to facilitate building autoRIFT as a contributed package inside ISCE2.
  • topsinsar_filename.py has been removed with the migration to ISCE3. This functionality has been moved to the get_topsinsar_config function in testautoRIFT.py.
  • testautoRIFT.py no longer outputs a Matlab-style offest.mat file
  • The geocode-only workflow added to testGeoGrid_ISCE.py in v1.6.0 with the switch to ISCE3. A similar workflow is currently being developed for a forthcoming release.