New Features
+ responsive command line interface (CLI) via lazy imports of the `mintpy.cli` sub-module (828, 854 by A. Valentino & Z. Yunjun). The new `mintpy.cli` sub-module contains all the CLI-related functionality and provides a significant speedup for all command line interactions, e.g. the help message and arguments checking.
+ switch the source code structure to the standard `src/mintpy` layout (903, by Z. Yunjun & S. Staniewicz)
+ `plate_motion` refactoring (851, 858, 868, 906 by Y. K. Liu & Z. Yunjun):
- add `mintpy.objects.euler_pole` for plate motion calculation and conversion.
- drop the dependency on `astropy` and `platemotion`.
- switch the default local coordinate translation from ECEF from sphere to spheroid.
- support azimuth output
- renamed from `bulk_plate_motion` to `plate_motion`
+ `timeseries2velocity`: save `residue` and `intercept` dataset (835)
+ `dem_error`: bugfix on the phase velocity minimization (875, 890, 902, 905, by Z. Yunjun & S. Mirzaee):
- change cutoff `cond` from 1e-15 to 1e-8 in `scipy.linalg.lstsq()` to avoid occasionally abnormal high residue.
- remove the all-zero column in the design matrix, to avoid occasionally high fitting residue.
+ IO & utility:
- `objects.timeseries.read`: auto-switch between array / single indexing to speedup (851)
- `load_data`: support azimuth angle file for ASF HyP3 product (865)
- `readfile.read_attribute`: allow ENVI files created with SUFFIX=ADD (841 by S. Staniewicz)
- `save_hdf5eos`: calculate `data_footprint` for radar-coded dataset (833 by A. Terrero)
- `save_roipac`: support non-velocity dataset from the velocity file (874 by B. Marfito)
- `geocode`: copy dataset units, such as from velocity.h5 file (910)
- `constants`: move from `mintpy.objects` to the root `mintpy` level (911)
+ dependency change:
- add `pre-commit` (873)
- add `rich` (851)
+ bugs fix (842, 843, 849, 851, 853, 860, 864, 871, 879, 883, 888, 901)
Technical Improvements
+ add `pre-commit` hook (852, 856, 866, 881, 907)
+ add `dependabot` to auto-update GitHub Actions (893, 894, 895, 896, 897, 898, 899)
+ enable building distributions for PRs by splitting it from upload to PyPI (893)
+ more unit tests for `dem_error`, `euler_pole`
+ delete obsolete `mintpy/legacy/gui` folder (846)
Contributors
+ Zhang Yunjun
+ Antonio Valentino
+ Yuan-Kai Liu
+ Sara Mirzaee
+ Scott Staniewicz
+ Bryan Marfito
+ Brett Buzzanga
+ Alfredo Terrero
+ Jiawei Li
+ Mohammad Mohseni Aref
Full Changelog: https://github.com/insarlab/MintPy/compare/v1.4.1...v1.5.0