Skip to main content
  • Home
  • Development
  • Documentation
  • Donate
  • Operational login
  • Browse the archive

swh logo
SoftwareHeritage
Software
Heritage
Archive
Features
  • Search

  • Downloads

  • Save code now

  • Add forge now

  • Help

https://github.com/insarlab/MintPy
13 September 2023, 20:02:44 UTC
  • Code
  • Branches (22)
  • Releases (7)
  • Visits
    • Branches
    • Releases
    • HEAD
    • refs/heads/aria_prep_corr
    • refs/heads/gui-qt
    • refs/heads/main
    • refs/heads/python2
    • refs/heads/sss_rerefGPS
    • refs/tags/v1.1.0
    • refs/tags/v1.1.1
    • refs/tags/v1.1.2
    • refs/tags/v1.2.0
    • refs/tags/v1.2.2
    • refs/tags/v1.2.3
    • refs/tags/v1.2alpha
    • refs/tags/v1.2beta
    • refs/tags/v1.3.0
    • refs/tags/v1.3.1
    • refs/tags/v1.3.2
    • refs/tags/v1.3.3
    • refs/tags/v1.4.0
    • refs/tags/v1.4.1
    • refs/tags/v1.5.0
    • refs/tags/v1.5.1
    • refs/tags/v1.5.2
    • v1.2.1
    • v1.0.0
    • v0.4.0
    • v0.3.0
    • v0.2.1
    • v0.2.0
    • v0.1.0
Take a new snapshot of a software origin

If the archived software origin currently browsed is not synchronized with its upstream version (for instance when new commits have been issued), you can explicitly request Software Heritage to take a new snapshot of it.

Use the form below to proceed. Once a request has been submitted and accepted, it will be processed as soon as possible. You can then check its processing state by visiting this dedicated page.
swh spinner

Processing "take a new snapshot" request ...

Permalinks

To reference or cite the objects present in the Software Heritage archive, permalinks based on SoftWare Hash IDentifiers (SWHIDs) must be used.
Select below a type of object currently browsed in order to display its associated SWHID and permalink.

  • revision
  • snapshot
origin badgerevision badge
swh:1:rev:93d769b6ca5de7488ba259f3fe86ab7de23efc89
origin badgesnapshot badge
swh:1:snp:7dbbee8e2e7831e633901c968a583c69b662c2df
Citations

This interface enables to generate software citations, provided that the root directory of browsed objects contains a citation.cff or codemeta.json file.
Select below a type of object currently browsed in order to generate citations for them.

  • revision
  • snapshot
Generate software citation in BibTex format (requires biblatex-software package)
Generating citation ...
Generate software citation in BibTex format (requires biblatex-software package)
Generating citation ...

sort by:
RevisionAuthorDateMessageCommit Date
93d769b Zhang Yunjun18 November 2022, 19:53:12 UTCdocs: add <details> tag to shorten installation note + version 1.5.0 tag (#912) * docs/install: add <details> tag to shorten the default instruction * version: add tag for version 1.5..018 November 2022, 19:53:12 UTC
a28fc2c Zhang Yunjun17 November 2022, 03:55:03 UTCmv `constants` from `mintpy.objects` to `mintpy` level (#911) + move the `constants` from the `objects` directory to the root directory, to simplify its usage. + update all existing usage of `mintpy.constants` sub-module17 November 2022, 03:55:03 UTC
7181dec Zhang Yunjun17 November 2022, 00:43:57 UTC`plate_motion`: add `--plate` option to use built-in tables (#906) * move add_attribute.py to legacy dir move `mintpy/add_attribute.py` to the `mintpy/legacy` directory because: 1. it's rarely used (it was designed as a quick hack to fix unexpected metadata problems) 2. it does not have the argparse usage to be included in the "mintpy/cli" sub-module, making it inconvenient to maintain 3. its functionality can be covered in Python using `mintpy.utils.utils.add_attribute()` API and in command line by adding extra metadata in the custom template file during data loading process. * plate_motion: add --plate option to use built-in tables add --plate option to grab the built-in rotation parameters from ITRF2014-PMM (Altamimi et al., 2017), for easy usage.17 November 2022, 00:43:57 UTC
e00074a Zhang Yunjun16 November 2022, 07:32:11 UTCcopy dataset units in `geocode.py` (#910) + `utils.readfile`: add `get_hdf5_dataset_attrs()` to extract a given attribute from all top-level datasets of the input HDF5 file. + `geocode.py`: copy over the dataset unit from input file to output file, e.g. for the velocity.h5 file. - call `readfile.get_hdf5_dataset_attrs()` - pass to `writefile.layout_hdf5(ds_unit_dict)`16 November 2022, 07:32:11 UTC
27f8924 pre-commit-ci[bot]15 November 2022, 03:02:28 UTC[pre-commit.ci] pyupgrade: v3.2.0 → v3.2.2 (#907) updates: - [github.com/asottile/pyupgrade: v3.2.0 → v3.2.2](https://github.com/asottile/pyupgrade/compare/v3.2.0...v3.2.2) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>15 November 2022, 03:02:28 UTC
16f4596 Zhang Yunjun12 November 2022, 06:16:38 UTC`dem_error` w/ phase velocity: rm all-zero column in design matrix (#905) + dem_error.py --phase-velocity: remove the all-zero column in the design matrix G and the all-one column in the design matrix G0, as the constant intercept term is not estimated in the phase velocity minimization scenario. Including this all-zero column in G could sometimes introduce abnormally large eigenvalues in the least-squares inversion, resulting in unrealistic TS residual.12 November 2022, 06:16:38 UTC
0b0a8eb Zhang Yunjun09 November 2022, 21:14:57 UTCswitch to `src` layout (#903) + switch `mintpy` to the standard `src/mintpy` layout for the source code + move/rename `mintpy/data/input_files` to `docs/templates` + update links and paths for 1) the src layout, 2) the renamed template dir and 3) $MINTPY_HOME usage: - docs/api/attributes.md - docs/api/colormaps.md - docs/dask.md - docs/demo_dataset.md - docs/google_earth.md - docs/hdfeos5.md - docs/installation.md - docs/README.md - mkdocs.yml + update `setup.py`: - update "version" and "packages" settings for the new `src` layout - remove "data/input_files" from the package data section + `version`: use ".postX" convention to be consistent with pip09 November 2022, 21:14:57 UTC
ea5457f Zhang Yunjun08 November 2022, 20:50:56 UTCsmallbaselineApp/dem_error: roll back "phase" minimization as default (#902) + mintpy/defaults/smallbaselineApp(_auto).cfg: roll back the default to `phase velocity` for topo resid + tests/dem_error: use model with step functions, which has better est. accuracy for complex deformation + mintpy/utils/time_func/*design_matrix4poly*: more comments on the math form of the polynomial equations08 November 2022, 20:50:56 UTC
f24076b Zhang Yunjun08 November 2022, 07:17:03 UTCupdate circle CI + bugfix in save_gmt (#901) + .circleci/config.yml update: - use $BASH_ENV to set and share environment variable (PATH) among multiple run steps - rename to workflow/job to "unit-n-workflow-tests" + cli/save_gmt.py: fix a typo in the module import + cli/load_data: check `-t smallbaselineApp.cfg` existence and print out error msg + tsview: show the reference index/date info on the slider as the title08 November 2022, 07:17:03 UTC
64ffdef dependabot[bot]07 November 2022, 18:26:35 UTCbuild(deps): bump docker/build-push-action from 2 to 3 (#899) Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 2 to 3. - [Release notes](https://github.com/docker/build-push-action/releases) - [Commits](https://github.com/docker/build-push-action/compare/v2...v3) --- updated-dependencies: - dependency-name: docker/build-push-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>07 November 2022, 18:26:35 UTC
2ab0148 dependabot[bot]07 November 2022, 18:25:48 UTCbuild(deps): bump docker/setup-buildx-action from 1 to 2 (#897) Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 1 to 2. - [Release notes](https://github.com/docker/setup-buildx-action/releases) - [Commits](https://github.com/docker/setup-buildx-action/compare/v1...v2) --- updated-dependencies: - dependency-name: docker/setup-buildx-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>07 November 2022, 18:25:48 UTC
fd368b4 dependabot[bot]07 November 2022, 07:29:31 UTCbuild(deps): bump actions/checkout from 2 to 3 (#898) Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 3. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v2...v3) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>07 November 2022, 07:29:31 UTC
7ce59a8 dependabot[bot]07 November 2022, 07:29:06 UTCbuild(deps): bump akhilerm/tag-push-action from 1.0.0 to 2.0.0 (#896) Bumps [akhilerm/tag-push-action](https://github.com/akhilerm/tag-push-action) from 1.0.0 to 2.0.0. - [Release notes](https://github.com/akhilerm/tag-push-action/releases) - [Commits](https://github.com/akhilerm/tag-push-action/compare/v1.0.0...v2.0.0) --- updated-dependencies: - dependency-name: akhilerm/tag-push-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>07 November 2022, 07:29:06 UTC
f6695ac dependabot[bot]07 November 2022, 07:28:33 UTCbuild(deps): bump actions/setup-python from 3 to 4 (#895) Bumps [actions/setup-python](https://github.com/actions/setup-python) from 3 to 4. - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](https://github.com/actions/setup-python/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/setup-python dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>07 November 2022, 07:28:33 UTC
d55f781 dependabot[bot]07 November 2022, 07:26:17 UTCbuild(deps): bump docker/login-action from 1 to 2 (#894) Bumps [docker/login-action](https://github.com/docker/login-action) from 1 to 2. - [Release notes](https://github.com/docker/login-action/releases) - [Commits](https://github.com/docker/login-action/compare/v1...v2) --- updated-dependencies: - dependency-name: docker/login-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>07 November 2022, 07:26:17 UTC
6167bc9 Zhang Yunjun07 November 2022, 06:55:29 UTCbreak publish-to-pypi into 2 jobs + add dependabot (#893) + build-n-publish-to-pypi.yml: - rename "publish-to-test-pypi.yml" to "build-n-publish-to-pypi.yml" - trigger for pull requests - split jobs into 2: "build-sdist-n-wheel" and "upload-to-pypi" - use upload/download artifacts to connect them, as used in pysolid + add `.github/dependabot.yml` for auto update07 November 2022, 06:55:29 UTC
a199d92 Zhang Yunjun06 November 2022, 06:48:19 UTCdem_error: set `cond=1e-8` to fix abnormal fit residual + add unit test (#890) + `dem_error`: fix abnormal residual TS with default phase velocity mode - estimate_dem_error(): switch cutoff value of the least squares solution from 1e-15 to 1e-8, to avoid abnormal high TS residual value, when the phase velocity mode is turned ON by default. Tests (based on the new unit test script) shows this change has no impact on the estimation result at all, which is good. - set `debug_mode` as global variable to be test a specific pixel given Y/X easily. + add `tests/dem_error.py`, to test the DEM error estimation / correction in both scenarios (simple linear and complex non-linear) for one pixel. - add to circle CI testing + `ifgram_inversion`: rename/shortern the default output filenames for ionStack.h5 + `tropo_pyaps3`: improved auto-skip/run checks - skip dload if ERA5.h5 already exists - skip re-applying correction if corrected displacement exists and is newer - print out msg adjustment06 November 2022, 06:48:19 UTC
ffefb7c Zhang Yunjun04 November 2022, 18:35:01 UTCbugfix for block-by-block resample & run/skip in load_data (#888) + objects.resample.prepare_geometry_definition_radar(): use abs() to ensure positive area calculation for both source/destination, before the adaptive source bbox calculation for block-by-block processing. + load_data.run_or_skip: check length/width only for ifgramStack to be able to skip re-loading if the existing ifgramStack file has more pairs than the input. + smallbaselineApp --plot: use relpath() for ionStack.h5 file04 November 2022, 18:35:01 UTC
75012c5 Mohammad Mohseni Aref04 November 2022, 06:39:19 UTCdocs/install: set env variables for more robust handling of HDF5 and GDAL VRT (#886) + docs/installation: add "3.c Extra environment variables setup" sub-section to setup three environment variables for more robust handling of HDF5 (for the file lock and version checking) and GDAL VRT (for dataset sharing in a multi-threading environment). Co-authored-by: Zhang Yunjun <yunjunzgeo@gmail.com>04 November 2022, 06:39:19 UTC
2983a1a Zhang Yunjun02 November 2022, 17:57:35 UTC`tropo_pyaps3`: ensure 2 chars for `--hour` input (#883) + tropo_pyaps3: ensure 2 chars for --hour input + docs/module_hierarchy: add euler_pole + .circleci: use Unit/Workflow tests as names02 November 2022, 17:57:35 UTC
24b1615 pre-commit-ci[bot]31 October 2022, 23:45:15 UTC[pre-commit.ci] pre-commit autoupdate (#881) updates: - [github.com/asottile/pyupgrade: v3.1.0 → v3.2.0](https://github.com/asottile/pyupgrade/compare/v3.1.0...v3.2.0)31 October 2022, 23:45:15 UTC
930cbf4 Yuan-Kai Liu30 October 2022, 06:17:33 UTC`plate_motion` refactoring: remove pkg dependency (#868) + add `objects.euler_pole.py`: - create the `EulerPole` class/object based on `numpy` and `pyproj` (similar to https://github.com/joferkington/euler_pole/blob/master/euler_pole/euler_pole.py) - use matrix rotation to convert the cartesian frame to local ENU frame, to compute the plate motion - the above two remove the dependency on `astropy` and `platemotion` (https://github.com/lcx366/PlateTectonic) - add references to Pichon et al., 1973, Cox et al., 1986, ESA webpage - turn ON "ellipsoid" Earth calculation by default - `get_velocity_enu()`: set vu to 0 if assuming spherical Earth (ellps=False) + add `tests/objects/euler_pole.py` for the unit tests: - test the EulerPole object initiation/conversion - test the plate motion calculation against the UNAVCO web calculator - add to the circle CI testing + `plate_motion.py` and `cli/plate_motion.py`: add published DOI to Stephenson, Liu, et al. (2022). + simplify the setup/install section for plate_motion in `setup.py` and `__main__.py` + other minor features and bugfixes: - utils.utils0.py: add get_azimuth_angle_from_east_north_obs() - utils.readfile.sort_dataset_list4velocity(): support velocity file without velocity dataset, e.g. ITRF14enu.h5 file. Co-authored-by: Zhang Yunjun <yunjunzgeo@gmail.com>30 October 2022, 06:17:33 UTC
c15ad0f Zhang Yunjun26 October 2022, 00:30:26 UTCbugfix for `smallbaselineApp.py --plot` option (#879) + smallbaselineApp: fix the bug of empty template file in _read_template(), which results in TypeError while running `smallbaselineApp.py --plot` + tests/smallbaselineApp: use abspath() to fix the bug while using --dir for a different direction for testing + modify_network: print given ifg index number, instead of ordering number, to be more informative + setup: uncomment pysolid as it's now available on pypi26 October 2022, 00:30:26 UTC
4275a94 Bryan Marfito23 October 2022, 03:58:22 UTC`save_roipac`: support non-velocity dataset from the velocity file (#874) + `save_roipac.read_data()`: add an `if` check to skip the "velocity to displacement" conversion if the dataset of interest is not "velocity" + `cli.save_roipac.py`: add example usage for non-velocity datasets, e.g. step, annualAmplitude23 October 2022, 03:58:22 UTC
a4a0780 Sara Mirzaee22 October 2022, 18:55:23 UTC`dem_error`: change default from phase to phase velocity (#875) + Change the default minimization option from "phase" to "phase velocity", based on the experiment of geolocation correction in the urban area. This is also more consistent with Fattahi & Amelung (2013, TGRS). + Fix matrix size bug for using phase velocity history during matrix operations.22 October 2022, 18:55:23 UTC
4756732 Zhang Yunjun19 October 2022, 21:05:08 UTCadd `pre-commit` to dependency and contributing guideline (#873) * ptime.read_date_txt(): ignore invalid/empty lines * read_template: bugfix for `skip_chars` arg * deps: add pre-commit + add `pre-commit` to the following dependency files, so that it will be installed automatically in the development version. - docs/environment.yml - requirements.txt - setup.py + docs/CONTRIBUTING: add note to install `pre-commit` + github PR template: add selection box for pre-commit check. * Update CONTRIBUTING.md we need to run `pre-commit sample-config` to have a basic config file before running `pre-commit install`. Co-authored-by: Yuan-Kai Liu <55262505+yuankailiu@users.noreply.github.com>19 October 2022, 21:05:08 UTC
868c27f Bryan Marfito16 October 2022, 17:52:03 UTC`writefile.write`: force `BANDS` to 2 for `.unw` file (#871) to ensure the consistency between output metadata and data with the 2-band format, because the input *.unw file may have only 1-band, as produced by `isce2/alosStack`.16 October 2022, 17:52:03 UTC
1350ddf Zhang Yunjun13 October 2022, 02:32:37 UTCsupport `hyp3` `lv_phi` file as azimuth angle (#865) + prep_hyp3.add_hyp3_metadata(): set UNIT to radian for "lv_phi" file + objects.stackDict.geometryDict(): - convert hyp3 azimuthAngle input from gamma to mintpy/isce2 convention - convert no-data-value from 0 to nan for azimuthAngle and incidenceAngle + docs: add lv_phi file to the example dir structure for hyp313 October 2022, 02:32:37 UTC
8c23297 Zhang Yunjun11 October 2022, 04:25:55 UTCionex: split interp_3d_maps() out of get_ionex_value() for re-use (#867)11 October 2022, 04:25:55 UTC
890a743 pre-commit-ci[bot]11 October 2022, 01:06:11 UTC[pre-commit.ci] pre-commit autoupdate (#866)11 October 2022, 01:06:11 UTC
e4c94d1 Zhang Yunjun09 October 2022, 22:50:38 UTCut.add_attribute(): support binary file type (#864) + utils.utils1.add_attribute(): support binary file, by writing roipac RSC file, in addition to the existing HDF5 file09 October 2022, 22:50:38 UTC
b71a6cf Zhang Yunjun07 October 2022, 21:11:10 UTCsort ds_list to ensure `velocity` as first and `residue/intercept` as last (#860) + `utils.readfile`: - add sort_dataset_list4velocity() to ensure velocity are the first dataset, and intercept/residue are the last datasets - apply the above func in get_dataset/slice_list() for velocity file - replace var `k` with `ftype` for code readility + tests/smallbaselineApp: use *.tar.gz file, in addition to *.tar.xz file, if exists. + add `mintpy.objects.progress.FileProgressObject` class to show a progrerss bar during uncompressing07 October 2022, 21:11:10 UTC
38a9891 Zhang Yunjun01 October 2022, 20:51:44 UTCrename `bulk_plate_motion` to `plate_motion` (#858) + rename `bulk_plate_motion` to `plate_motion`: including changes in: - `mintpy.plate_motion.py` - `mintpy.cli.plate_motion.py` - `mintpy.__main__` - `setup.py` + `utils.readfile.read()`: add `no_data_values` arg to be able to convert the no-data-value from one number to another number. + `utils.network`: del the obsolete `igram_perp_baseline_list()` function + use the Python context manager `with` statement to better control the HDF5 file handle/lock (#855).01 October 2022, 20:51:44 UTC
5eb8857 pre-commit-ci[bot]27 September 2022, 00:58:37 UTC[pre-commit.ci] autoupdate pyupgrade: v2.37.3 → v2.38.2 (#856) updates: - [github.com/asottile/pyupgrade: v2.37.3 → v2.38.2](https://github.com/asottile/pyupgrade/compare/v2.37.3...v2.38.2)27 September 2022, 00:58:37 UTC
8ccacd1 Zhang Yunjun24 September 2022, 02:06:46 UTC`smallbaselineApp`: replace workflow import w/ individual import (#854) + `smallbaselineApp`: bring back the individual module import (as proposed in the lazy import PR #828), to replace the workflow import, for better speed and robustness. + `workflow/__init__.py`: fix the UnboundLocalError of 'mintpy' + `info`: support `--compact` output to `--date / --num` options + general Codacy style suggestions24 September 2022, 02:06:46 UTC
9ca4adc Zhang Yunjun23 September 2022, 01:46:27 UTCreadfile.read_isce_xml: bugfix when v_first=0 (#853)23 September 2022, 01:46:27 UTC
7e36e6a Zhang Yunjun22 September 2022, 21:54:14 UTCsetup `pre-commit` hook + initial run against all files (#852) + install pre-commit GitHub Apps + add `.pre-commit-config.yaml` + changes from the initial run of pre-commit against all files - end-of-file-fixer - trailing-whitespace - sort imports via isort - modernize python via pyupgrade + info: printout h5 dataset compression info + tests: consistent script header comments + utils.readfile: use MACRO_CASE global var - replace standardMetadataKeys with STD_METADATA_KEYS22 September 2022, 21:54:14 UTC
73f4e28 Zhang Yunjun22 September 2022, 06:32:41 UTCsupport azimuth output for `solid_earth_tides` and `bulk_plate_motion` (#851) + solid_earth_tides.py: - add --comp enu2los / en2az to switch between range / azimuth direction output - use ut.get_unit_vector4comp_of_interest() for --comp projection - support date_list text file as input, as an alternative to the TS HDF5 file - change set_file as optional arg in calc_solid_earth_tides_timeseries() + bulk_plate_motion.py: - add --comp enu2los / en2az to switch between range / azimuth direction output - use ut.get_unit_vector4comp_of_interest() for --comp projection - use lower case "enu" and/or "az" for default output filename - set pmm_file as optional arg in calc_bulk_plate_motion() + utils.utils0.py: - add Coordinate / Orbit sub-section to simplify the Geometry sub-section - add definition with example values for the following angles: los_inc_angle, los_az_angle, orb_az_angle, head_angle - add los2orbit_azimuth_angle() - add azimuth2heading_angle(look_direction) and heading2azimuth_angle(look_direction) - add en2az() - add get_unit_vector4comp_of_interest() - add misregistration2coherence() based on Just & Bamler (1994) + utils.utils.prepare_geo_los_geometry(): change the output from head_angle to los_az_angle. + objects.ionex: move plotting-related modules inside plot_ionex() for more independency + objects.stack/giant: use MACRO_CASE for the global variables and update their usages throughout the repo. + objects.timeseries.read(): use single indexing to speedup IO + smallbaselineApp.plot_result: rm '-u cm' for velocity, as it now has datasets with different units, thus, '-u cm' won't work anymore. + tsview: fix the mpl.figure.canvas.set_window_title() bug, as reported and fixed by Jiawei Li + view: update example usage in the comments for (cli)/view.py + dependency: add `rich` to the formal dependency list, as it's lightweight and prints colorful template content, and plan to be used more. + del simulation/configSenDesc.txt, as it's not used in the code anymore.22 September 2022, 06:32:41 UTC
eec16ba Antonio Valentino21 September 2022, 19:12:11 UTClazy import via `mintpy.cli` for more responsive CLI (#828) NOTE: re-installation is required after this update, using pip or path setup, as described in docs/installation.md. + add `mintpy.cli`: split all CLI scripts in root module `mintpy` into two parts: core functionality (still in `mintpy`), and CLI-related functionalities (into a new sub-module `mintpy.cli`). The `mintpy.cli` module includes the following functions; and enables lazy improts (fast responsive CLI) to the `mintpy` command. - create_parser() - cmd_line_parse() - read_template2inps() - main() - __main__ - other very simple sub-functions + `mintpy.cli`: use `parse -> import -> run / check / default` order to expand the lazy imports to all the individual *.py commands. + `mintpy.__main__`: use absolute imports + `mintpy.workflow.__init__`: update the dynamic import to `mintpy.cli`. + setup.py: add extras_require field + create an overall processing function for the following scripts, to allow for simple main() call in `mintpy.cli`: - bulk_plate_motion.py - closure_phase_bias.py - dem_gsi.py - generate_mask.py - ifgram_inversion.py - info.py - iono_tec.py - load_data.py - lookup_geo2radar.py - modify_network.py - smallbaselineApp.py + ifgram_inversion: remove the unavailable and unused "mintpy.networkInversion.residualNorm" option, to simplify the code. + load_data: use `importlib` to import prep_module + objects.timeseries(): - add temporal_derivative() from temporal_derivative.py - add temporal_filter() from temporal_filter.py + objects.insar_vs_gps: refactor to replace `dateutil` with `datetime` to remove the `dateutil` dependency + smallbaselineApp.TimeSeriesAnalysis(): remove all unused `return` statement + tropo_gacos: keep only the JGR paper, to accurately reflect the fact that gacos website produced products do not include the GNSS info, as shown in Yu's other papers. + utils.utils1.run_or_skip(): rename check_readable to readable, to shortern its calls + view: remove unused `PLOT_TEMPLATE` and `--plot-setting` option. This was for insarmaps website, but does not seems to be used. Remove for code simplification. + remove the followings scripts, as they are aborted into `mintpy.cli` or `mintpy.objects.stack.timeseries`: - prep_snap.py - remove_hdf5_dset.py renamed from remove_hdf5_dataset.py - remove_ramp.py - spatial_average.py - temporal_average.py - temporal_derivative.py - temporal_filter.py + docs/installation.md: update the instruction to install mintpy via path setup + adjust to make path setup method working on cmd: - add `#!/usr/bin/env python3` to the top of all cli/[a-z]*.py scripts - run `chmod +x` to all `cli/[a-z]*.py` scripts - run `chmod -x` to all `mintpy/[a-z]*.py` scripts, except for two (add_attribute.py and multi_transect.py). Co-authored-by: Zhang Yunjun <yunjunzgeo@gmail.com> Co-authored-by: Antonio Valentino <Antonio.Valentino@ext.esa.int>21 September 2022, 19:12:11 UTC
414cb65 Zhang Yunjun17 September 2022, 00:03:01 UTCbugfix in ionex.dload_ionex() (#849)17 September 2022, 00:03:01 UTC
726fa70 Zhang Yunjun13 September 2022, 04:11:09 UTCdel obsolete mintpy/legacy/gui folder (#846) + delete the obsolete `mintpy/legacy/gui` folder, as 1) they are not working nor maintained anymore, 2) they are causing problems while trying pre-commit hooks + legacy/transect_legacy.py: update print() from py2 to py3 + utils/isce_utils.get_processor(): add `data.db` to the supported list of metadata files generated by stripmapStack + load_data.py: add more msg for aria if load_data failed13 September 2022, 04:11:09 UTC
d987950 Bryan Marfito07 September 2022, 06:20:27 UTCfix typo in `smallbaselineApp.cfg` for `stepDate` (#843)07 September 2022, 06:20:27 UTC
4a0f2c5 BB05 September 2022, 19:46:54 UTCunmask ref pixel in ts2vel and tsview (#842) + timeseries2velocity.py: - include the reference point as valid pixels for calculation/inversion. - use np.full() instead of np.ones() for initiation with nan value. + tsview.py: bugfix for keeping the reference point in the valid pixel mask + utils/plot.auto_figure_title(): add "_" for the processing flag if not existed already. Co-authored-by: bbuzz31 <buzzanga@jpl.nasa.gov> Co-authored-by: Zhang Yunjun <yunjunzgeo@gmail.com>05 September 2022, 19:46:54 UTC
3245008 Scott Staniewicz01 September 2022, 16:32:36 UTCreadfile.read_attribute: allow ENVI files created with SUFFIX=ADD (#841) + readfile.read_attribute: allow ENVI files created by GDAL with `SUFFIX=ADD`, in additional to the current ones created with `SUFFIX=REPLACE`.01 September 2022, 16:32:36 UTC
fe2fc27 Zhang Yunjun22 August 2022, 22:09:09 UTCts2vel: save `residue` & `intercept` (#835) + timeseries2velocity.py: - save `residue` for the overall fitting residues, a useful parameter to evaluate the fitting quality - save `intercept` for the Y-axis intercept of the polynomial function, to be able to reconstruct the time-series completely. + .github/workflows/pypi: publish the release to test-pypi as well22 August 2022, 22:09:09 UTC
4fef13c stackTom20 August 2022, 04:02:57 UTChdf5eos: calc `data_footprint` for radar-coded dataset (#833) + save_hdf5eos.py: support radar-coded dataset - calculate `data_footprint` for radar-coded files, based on geometry files from both isce and roipac style - check the incompatible --subset option with radar-coded dataset - add example cmd for radar-coded dataset + utils0.py: add `snwe_to_wkt_polygon()` Co-authored-by: Zhang Yunjun <yunjunzgeo@gmail.com>20 August 2022, 04:02:57 UTC
36a0835 Zhang Yunjun16 August 2022, 06:51:05 UTCwrap up for version 1.4.1 (#829) + version: add Tag for version 1.4.1 + readfile.read_hdf5_file(): speedup the 3D matrix reading when slicing a small fraction of the 1st dimension, by using integer indexing for 3D h5 dataset, instead of 1D boolean array indexing. + view.read_data4figure(): bugfix for referencing unwrapPhase while plotting mixed dset types + move the following plotting functions to utils.plot.py for a more compact module import, to simplify the UNAVCO notebook: - unwrap_error_phase_closure.plot_num_triplet_with_nonzero_integer_ambiguity() - timeseries_rms.plot_rms_bar() - objects.insar_vs_gps.plot_insar_vs_gps_scatter() + plot.plot_insar_vs_gps_scatter(): add preliminary outlier detection16 August 2022, 06:51:05 UTC
47bb7f6 Zhang Yunjun12 August 2022, 18:12:49 UTCautomate PyPI publishing with GitHub Actions (#827) + version: replace version_num with version for easy re-use, and update its usage in __inti__.py + setup: use sys.path.append() to replace open() to grab version from version.py + add .github/workflows/publish-to-test-pypi.yml: - triggered for push event on insarlab/main branch - use "pip install" and "python -m build" to build the binary wheel and source tarball - use pypa/gh-action-pypi-publish action to push to PyPI and TestPyPI - push to PyPI only for released version and when owner is insarlab + repo setting: add github secrets from pypi, to support the above action12 August 2022, 18:12:49 UTC
2e9e300 Zhang Yunjun11 August 2022, 21:11:48 UTCbugfix in `load_data` for empty path due to the new iono file in `auto_path` (#826) + load_data.py: bugfix when empty file path found, introduced in load iono stack PR 780, due to the additional new iono file path defined in defaults/auto_path.py.11 August 2022, 21:11:48 UTC
ef31de5 Zhang Yunjun08 August 2022, 06:04:39 UTCremove `openmp` from the dependency list (#825) + remove "openmp" from all the dependency files, as "conda install pyresample" will install openmp correctly (llvm-openmp for linux, libgomp for linux; https://conda-forge.org/docs/maintainer/knowledge_base.html#openmp) + version.py: remove the prefix "v" from the version number, to be consistent with styles from gdal/numpy + smallbaselineApp.generate_temporal_coherence_mask(): run plot_result() to populate pic folder before raising errors, to facilitate the trouble shooting + reference_point: support more flexible mask dataset name in the mask h5 file.08 August 2022, 06:04:39 UTC
68cdbbe Zhang Yunjun04 August 2022, 20:01:49 UTCwrap up for version 1.4.0 (#824) + version: add release tag for v1.4.0 + bulk_plate_motion: add ITRF2014_PMM global var for convenience and future options with PMM model name and plate name, instead of typing detailed values manually. + geocode.py: add checking for the imcompatible options between "--geo2radar" and "--bbox / --software scipy" + subset: replace try/except with if/else for more robustness + arg_group: add --title / --fig-title for --figtitle option as alternatives04 August 2022, 20:01:49 UTC
537c4ef Antonio Valentino04 August 2022, 08:18:55 UTCSingle entrypoint with sub-commands (#823) + add `__main__.py` for the initial implementation of the single-entrypoint script - add sub-parser grabbing functions `get_*_parser()` for all executable scripts - add `_autocomplete()` - add the main parser function `get_parser()` with groupped calls for sub-parsers - add `main()` with proper logging info and exit code + `utils.arg_utils.py`: - rename from `arg_group.py` to `arg_utils.py` - add `create_argument_parser()` to create parser with or without sub-parsers - call `create_argument_parser()` from all executable scripts in `mintpy` folder. + `setup.py`: add the following optional requirements: - argcomplete - platemotion and astropy + `timeseries2velocity.py`: rename `inps.step` to `inps.stepDate` to avoid weird initiation bug in sub-command mode. Co-authored-by: Zhang Yunjun <yunjunzgeo@gmail.com>04 August 2022, 08:18:55 UTC
00dd106 Zhang Yunjun28 July 2022, 04:19:07 UTCvarious bugs-fix in `ts2vel.py --periodic` and `prep_hyp3` (#822) + `timeseries2velocity.py --periodic`: use `atan2()`, instead of `atan()`, to account for the 4 quadrant outcome of the arc tangent operation, while calculating the phase component of the periodic signals. + `prep_hyp3.py`: fix bug of `ORBIT_DIRECTION`. + `reference_point.py inputs/ifgramStack.h5 --write-data`: skip pixels with no-data-value (zero) while updating the `unwrapPhase` matrix. + `README.md` and `setup.py`: switch MintPy license from `GPLv3` to `GPLv3+`.28 July 2022, 04:19:07 UTC
8d8d85d BB27 July 2022, 22:57:49 UTCreturn empty in `main()` to have error code of 0 for normal complete (#821) return empty/None in `main()` for all executable scripts, to avoid the conflict with having error code "0" for normal completion. Co-authored-by: Zhang Yunjun <yunjunzgeo@gmail.com>27 July 2022, 22:57:49 UTC
47c9bcc Yujie Zheng27 July 2022, 00:04:02 UTCnon-closure phase bias estimation (#765) This PR adds the bias time-series estimation introduced by the non-closure phase, as described in Zheng et al. (2022, TGRS), via `--action quick_estimate / estimate` options. Detailed changes are as below: + `utils.isce_utils.py` - add `guassian_kernel()` and `convolve()` for the complex interferogram filtering. - add `estimate_coherence()` and `unwrap_snaphu()` based on `isce2/topsStack` to re-unwrap the closure phase interferogram, to mitigate the PU error during closure phase bias estimation, including notes on SNAPHU from Piyush. + `objects.stack.ifgramStack`: - move `split2boxes()` from `ifgram_inversion.py` to here for more convenient re-use, add `dim0_size` option for more flexibility - add `get_closure_phase_index()` to return the indices of interferograms that forms the given connection level of closure loop - add `get_sequential_closure_phase()` for the 3D CP calculation and its temporal average. + `ifgram_inversion.estimate_timeseries()`: support `inv_quality_name = no` to turn OFF the calculation. + closure_phase_bias.py: - add `--action mask` for average CP and mask calculation, by refactoring the existing script. - add `compute_unwrap_closure_phase()` to compute the wrapped sequential closure phase, unwrap them using isce2 modules, and then calculate the cumulative unwrapped seq closure phase time-series via `cum_seq_unw_closure_phase_timeseries()`, with parallel support and auto-skip. - add `estimate_wratio()` and `estimate_wratio_all()` for the `W_r` estimation, a.k.a., the weighted closure phase history. - add `bandwidth2num_ifgram()` - add `estimate_bias_timeseries_approx()` for `--action quick_estimate` - add `estimate_bias_timeseries()` for `--action estimate` with parallel support using dask. - 2X speedup of `estimate_bias_timeseries()` via `ifgram_inversion.estimate_timeseries()` with `scipy.linalg`, instead of `np.linalg.pinv`, and auto-skip the zero/nan values in part of the interferograms among the stack. - 2X speed up via common design matrix operation, same as in `ifgram_inversion.py` Co-authored-by: Zhang Yunjun <yunjunzgeo@gmail.com>27 July 2022, 00:04:02 UTC
e17d1d3 Zhang Yunjun23 July 2022, 22:07:35 UTCtsview: add --no-show-img option (#820) + tsview: add --no-show-img option to hide the map-view figures + timeseries2velocity: re-organize the UQ comment in the code, for clarify + prep_giant: move to the legacy folder as it's not used; remove it from setup.py entry_points + docs/installation: update the Debian link to tracker.debian.org + setup: fix the license info inconsistency by removing the "license" option, the rest is all GPLv3. + setup: remove the unnecessary wrapper of `__main__` and `do_steup()`23 July 2022, 22:07:35 UTC
43e2c8b Scott Staniewicz14 July 2022, 22:50:24 UTCreadfile: fix gdal_read to accept Paths obj(#813) * readfile: fix gdal_read to accept Paths object. The `os.fspath` was recommended in the GDAL issue (https://github.com/OSGeo/gdal/issues/1613), as the GDAL Python bindings fail for Path objects.14 July 2022, 22:50:24 UTC
f8319ec Antonio Valentino14 July 2022, 21:06:55 UTCAdd installation instructions for Debian (#812) * Add installation instructions for Debian14 July 2022, 21:06:55 UTC
d1aa094 Yuan-Kai Liu13 July 2022, 23:33:33 UTCgps: bugfix component string (#811) bugfix on the string for identifying the component mintpy/objects/gps.py13 July 2022, 23:33:33 UTC
632a394 Zhang Yunjun10 July 2022, 01:00:33 UTCplate_motion: supp radar-coord geometry & ITRF14 as default fname (#808) + utils.utils0.get_lat_lon(): add ystep and xstep for more flexible output + utils.utils.py: add prepare_geo_los_geometry() from solid_earth_tides.py for easy re-use. + bulk_plate_motion.py: - support radar-coord geometry input via resample object to radar-code the PMM output - refactor pmm2enu_at() - replace scipy.interpolate with skimage.transform.resize - use ut.get_lat_lon() for coarse grid preparation - use ut.prepare_geo_los_geometry() and simplify the post-handling for unit and no-data value - remove the obsolete interp_2d3l(), get_geobox_width_length() - remove MORVEL56 example cmd, to avoid potential confusion - replace BulkPlateMotion.h5 with ITRF14.h5 for the default output file name. This may change in the future to other PMM names once they are auto determined with values auto grabbed. - use pmm internally in the code10 July 2022, 01:00:33 UTC
0d3b715 Zhang Yunjun07 July 2022, 18:33:20 UTCplot: better handle the DEM range < contour level warning (#807) + `utils.plot.prepare_dem_background`: better handle the warning msg when the DEM range < contour levels + `objects.stackDict`: use enumerate for "for" loop & progressBar while writing HDF5 files + `scripts/jupyter_notebook_config.py`: replace NotebookApp with ServerApp for running docker + `bulk_plate_motion`: update comments by removing NNR-NUVEL1A as it seems obsolete compared with ITRF2014-PMM and NNR-MORVEL56.07 July 2022, 18:33:20 UTC
6558a52 Bryan Marfito06 July 2022, 22:37:14 UTCprep_isce: typo fix in alosStack example usage (#805)06 July 2022, 22:37:14 UTC
ee43222 BB06 July 2022, 22:33:44 UTCbugfix in `prep_aria.py` multilook method option (#806) + prep_aria: add default values for multilooking options (x/ystep, method) when no template file is given + prep_fringe: use ptime.yyyymmdd_date12() for more robust info extraction + utils0.py: add print_command_line() to add "" for arguments containing *, for improved usability. + load_data.prepare_metadata(): use ut.print_command_line() to facilitate debugging. Co-authored-by: Zhang Yunjun <yunjunzgeo@gmail.com>06 July 2022, 22:33:44 UTC
6e741da Yuan-Kai Liu30 June 2022, 21:41:35 UTCsmallbaselineApp: get ionStack file & add metadata from custom template file (#802) + smallbaselineApp.py: - run_load_data(): add metadata to ionStack.h5 file from custom template file, to be consistent with ifgramStack.h5 and geometry*.h5 files - run_load_data(): remove load_complete, as it's not used. - plot_result(): add ion_file to plot_result() - update usage for check_loaded_dataset() throughout the script + utils.check_loaded_dataset(): - check and return ionStack.h5 file if it's valid - remove load_complete in returned values, as it's not used at all, for simplification - refactor Co-authored-by: Zhang Yunjun <yunjunzgeo@gmail.com>30 June 2022, 21:41:35 UTC
b13e409 Yuan-Kai Liu29 June 2022, 21:42:38 UTCbulk_plate_motion.py (#769) + Estimate the bulk motion of tectonic plates in the reference frame of the satellite. - bulk_plate_motion.py is the major new function that takes the geometry file and the user-input Euler pole vector to compute the plate motion velocity projected to the LOS in the SAR scene. - setup.py: add entry_points for bulk_plate_motion.py - add a reference to our paper, Stephenson et al., 2022, about this plate motion correction - add a brief description of each of the PMMs, including the reference + Applying the correction of the bulk motion of tectonic plates from the input velocity file: - diff.py: modified to take care of the velocity field subtraction - reference_point.py: use FILE_TYPE for velocity dataset name Co-authored-by: Zhang Yunjun <yunjunzgeo@gmail.com>29 June 2022, 21:42:38 UTC
719c2b4 Joseph H Kennedy28 June 2022, 18:42:19 UTCAutomatically build and push a docker image (#696) + update Dockerfile - move to the top-level - build from the local repo and include jupyter, gdal and isce2 - use micromamba user name - provide an easy access to Jupyter via ./scripts/jupyter_notebook_config.py - pin the python version to 3.9 + add dockerize github workflow to auto build/push the docker image to the github container registry - tag 'latest' to the latest released version - tag 'develop' to the latest development version + dependency files: pin pyaps3 >= 0.3 + update the documentation related to docker in installation.md and docker.md28 June 2022, 18:42:19 UTC
340062d Yuan-Kai Liu22 June 2022, 06:38:04 UTCload_data: add `mintpy.multilook.method` for mean/median (#797) + add `mintpy.multilook.method = nearest / mean / median` to use different interpolation methods while loading stacks of observations. - mv mintpy.subset.* in front of mintpy.multilook.* to be more consistent with the order of execution in the code - update the following scripts to support this functionality: - load_data.py - objects/stackDict.py - defaults/smallbaselineApp.cfg - defaults/smallbaselineApp_auto.cfg - prep_aria.py + [BREAKING CHANGES] rename the following template options: - mintpy.load.ystep --> mintpy.multilook.ystep - mintpy.load.xstep --> mintpy.multilook.xstep - update files in `tests/configs` accordingly + utils.attribute.py: add `update_attribute4resize()` and simplify its usage in `prep_isce.prepare_stack()` and `stackDict.ifgramStackDict.write2hdf5()` + fix the metadata bug for ionosphere stack due to resizing Co-authored-by: Zhang Yunjun <yunjunzgeo@gmail.com>22 June 2022, 06:38:04 UTC
c50a231 Zhang Yunjun21 June 2022, 23:46:43 UTCtests: remove "test_" prefix + smaller zenodo file sizes (#799) + tests: remove the "test_" prefix for: - asc_desc2horz_vert.py - smallbaselineApp.py + tests/smallbaselineApp.py: update zenodo link for smaller sizes for the following 2 datasets, to avoid overburden zenodo/circle CI - SanFranSenDT42: 410 MB --> 280 MB - WCapeSenAT29: 520 MB --> 240 MB21 June 2022, 23:46:43 UTC
d17c7d9 Zhang Yunjun19 June 2022, 01:26:42 UTCtsview: update to the latest timeseries2velocity (#798) + tsview: - update its model/time func usage to the latest timeseries2velocity/time_func - remove the unnecessary np.array() call while updating image array + load_data: align the long global variable names, for readability19 June 2022, 01:26:42 UTC
f0a8038 Zhang Yunjun17 June 2022, 21:24:52 UTCload multiple stack files + resize ionosphere on the fly (#796) + utils.isce_utils.extract_geometry_metadata(): - extract LENGTH & WIDTH, as reference for the A/RLOOKS - update attribute if box is not None - simplify its usage in prep_fringe.py + prep_isce.py: simplify and support multiple obs files w/ different resolutions - prepare_stack(): update A/R/NCORRLOOKS & AZ/RG_PIXEL_SIZE if the input obs file has a different size than the stack.rsc file, to better reflect the truth, e.g. for low-resolution iono file. - Note that LENGTH/WIDTH/Y/X_FIRST/STEP is already extracted from the obs file, thus, no need for checking or updating to reflect the truth. - replace the combination of `-f/-d` with the single `-f` option for a simpler and more robust logic to grab all data files in a given path pattern. + objects.stackDict.py: - ifgramStackDict.get_size(): add geom_obj arg to be able to use the size from the reference geometry file, for the low-resolution ion file, needed for run_or_skip() checking in load_data.py - ifgramStackDict.write2hdf5(): add geom_obj arg, to auto detect the low-reso ion file, for resizing on the fly - ifgramDict.read(): add resize2shape arg to resize on the fly using skimage.transform.resize(), and make it compatible with the exiting subset and resampling options. + load_data.py: support multiple stack files loading in one command line, which is more flexible and simpler - remove the obsolete --ion option, as it's not needed anymore - remove the rarely used --output options, and use the hardwired values in the code, for simplification - code refactoring - update to the latest usage of prep_isce.py, to support loading regular and ion interferograms at the same command line call - use a for loop to load the following multiple stack HDF5 files: - ifgramStack.h5 - ionStack.h5 - offsetStack.h5 + diff.py: light refactoring17 June 2022, 21:24:52 UTC
8ed98c1 Zhang Yunjun17 June 2022, 20:29:06 UTCintegrate advanced time func with UQ into the routine workflow (#795) * ts2vel: add uncertaintyQuantification & timeSeriesCovFile option + add the following two new template options into smallbaselineApp.cfg - mintpy.velocity.uncertaintyQuantification = residue / covariance / bootstrap, to replace the previous mintpy.velocity.bootstrap option - mintpy.velocity.timeSeriesCovFile with the default value of no + timeseries2velocity: re-use arg_group.add_reference_argument(plot=False) in timeseries2velocity.py + load_data: write S1A/B_date.txt file from SAFE_files.txt file if the latter exists in its default location (same level as reference folder) * ts2vel: add timeFunc.* options to smallbaselineApp.cfg + integrate the advanced time func fitting into smallbaselineApp.py, via the following template options: - mintpy.timeFunc.polynomial - mintpy.timeFunc.periodic - mintpy.timeFunc.step - mintpy.timeFunc.exp - mintpy.timeFunc.log + rename the following options for consistency **[BREAKING CHANGES]**: - mintpy.velocity.excludeDate --> mintpy.timeFunc.excludeDate - mintpy.velocity.startDate --> mintpy.timeFunc.startDate - mintpy.velocity.endDate --> mintpy.timeFunc.endDate - mintpy.velocity.uncertaintyQuantifiction --> mintpy.timeFunc.uncertaintyQuantification - mintpy.velocity.timeSeriesCovFile --> mintpy.timeFunc.timeSeriesCovFile - mintpy.velocity.bootstrapCount --> mintpy.timeFunc.bootstrapCount + utils.time_func.py: - add MODEL_EXAMPLE as the single-sourced example for the time function model/configuration setup - add inps2model() to parse/convert the namespace "inps" object into time function dict "model" object - add get_num_param() to estimate the num of unknown parameters from a given model dict object + utils.readfile.read_template(): add "skip_chars" argument to skip certain characters in the template values, e.g. the commonly template typo from users "[" and "]". This is to simplify the read_template2inps() functions. - leverage the new read_template() in following scripts: - dem_error.py - geocode.py - modify_network.py - reference_point.py - timeseries2velocity.py - the insarmaps-related code is removed, and they are messy and they can and should be implemented separately in insarmaps repo if needed. + utils.ptime.py: add get_exclude_date_list() from previous ts2vel.py + utils.arg_group.py: - add_time_func_argument(): fix typo and better alignment for comments to improve the readability - adjust indentation throughout the script + timeseries2velocity: support time function inputs from template files - add time function inputs into the config keys to be saved in the h5 file - remove the comments on contributing authors, as they are visible in the git commit history - merge init_exp_log_dicts() and read_inps2model() into utils.time_func.inps2model() - refactor and move read_exclude_date() into utils.ptime.get_exclude_date_list() - read_template2inps(): support the new time function template options - model2hdf5_dataset(): modify the periodic/exp/log dataset names, to be more clear on the time unit + move ifgram_reconstrunction.py to /legacy since it's not frequently used at all + move tropo_pyaps.py to /legacy since it's unavailable anymore (due to the takedown of EarthDef and Python2) and not actively used.17 June 2022, 20:29:06 UTC
c8ae9c7 Zhang Yunjun06 June 2022, 23:43:42 UTCadd ionex.py with simplified IONEX file reading + add mintpy.objects.ionex sub-module to handle all the IONEX file download/reading - add ionex.py based on daniestevez notebook, to simplify the IONEX file reading - move the following functions from mintpy.simulation.iono, to be more independent: - dload_ionex() - get_ionex_value() - get_ionex_filename() - get_ionex_date() - get_ionex_height() - plot_ionex() - simulation.iono.py: remove the obsolete read_ionex_tec() + add unit test for objects/ionext.py: - add tests/objects/ionex.py - add tests/data/jplg3190.15i - update .circleci/config.yml + update simulation.iono.py and iono_tec.py accordingly + update docs: - add ionex to docs/api/module_hierarchy.md - update .gitignore against the latest github example for python17 June 2022, 03:42:28 UTC
d3f6be4 Zhang Yunjun06 June 2022, 06:23:23 UTCview: add --ylabel-rot option17 June 2022, 03:42:28 UTC
ba834f3 Zhang Yunjun03 June 2022, 19:19:38 UTCadd utils.map module for lalo_label/scalebar + move draw_lalo_label() and draw_scalebar() from mintpy.utils.plot.py into a new sub-module mintpy.utils.map.py, for more independence. + refactor mintpy.utils.map.py + mv read_gmt_lonlat_file() from plot.py into readfile.py + remove unused plot.cmd_line_parse() + update module_hierarchiy accordingly. + mv constants from utils to objects17 June 2022, 03:42:28 UTC
da225ba Zhang Yunjun14 June 2022, 06:51:52 UTCifg_inv: adjust default stack aux quality file for ionStack (#791) + ifgram_inversion.py: adjust the default stack quality file for ionStack, add size checking before using it for masking + load_data.run_or_skip(): bugfix for the in/out_size comparison, as suggested by @olliestephenson. + cluster.DaskCluster.close(): reverse client/cluster.close() order to better avoid the CancelledError. + multilook: replace average with mean + utils.plot.auto_fig_title(): add extra suffix for ionStack.h514 June 2022, 06:51:52 UTC
3045089 Yuan-Kai Liu12 June 2022, 21:24:51 UTCload ionosphere stack from isce2/topsStack (#780) + load ionosphere stack from isce2/topsStack via `load_data.py --ion` - add the following new template options for iono file paths to smallbaselineApp.cfg - mintpy.load.ionUnwFile - mintpy.load.ionCorFile - mintpy.load.ionConnCompFile - add the mintpy.load.ion*File to auto_path.py to support mintpy.load.autoPath = True - split datasetName2templateKey into 4 dict objects, to help to distinguish between regular stack and ion stack, while setting the correct template key - add `load_data.py --geom` to load only the geometry files - set --ion / geom as mutually exclusive arg for more robust user typo checking - add Parameters/Returns comments for most functions - rename update_object() to run_or_skip() for consistency and a more intuitive name - run_or_skip(): add the checking of dataset list between in/out stack file/obj + ifgram_inversion.py: set default output file name based on ionStack.h5 filename + stackDict.ifgramStackDict: add get_dataset_list() + plot_network: auto handle ionStack.h5 and non-interruptive handle of no dataset found. + utils/ptime.py and prep_isce.py: add get_date12_from_path() to simplify code + utils/readfile: add .ion file ext to read_binary_file() and get_slice_list() + remove the obsolete `ionoPhase` related code and comments in the following files: - docs/api/data_structure.md - objects/stack.py - objects/stackDict.py Co-authored-by: Zhang Yunjun <yunjunzgeo@gmail.com>12 June 2022, 21:24:51 UTC
4f77a83 Zhang Yunjun02 June 2022, 03:26:53 UTCadd `s1ab_range_bias.py` for range offset time series (#787) + add s1ab_range_bias.py to calculate and correct for the S1A/B range bias in the range offset time series, as in Yunjun et al. (2022). - use --action to swith between compute / correct, to be able to compute from an TS file, and correct for it from another TS file. - add --save/nodisplay optiton, and remove --plot option, so that it works in the same way as plot_network.py + safe_list_file2sensor_list(): mv from isce_utils to s1_utils + update yunjun et al. (2022) bio info in relevant scripts: title syntax and vol num02 June 2022, 03:26:53 UTC
1857814 Zhang Yunjun31 May 2022, 21:12:49 UTCsave_kmz_ts: support non-mpl colormaps + save_kmz(_timeseries).py: - use inps.cmap_name for the str and inps.colormap for the mpl colormap object to better book keeping - more organized comments + save_kmz.py: bugfix for the placemark KMZ file when cbar is not shown after moving the file location + save_kmz_timseries.py: support custom non-mpl colormaps, similar to view/tsview.py31 May 2022, 21:45:46 UTC
5e2a43a Zhang Yunjun26 May 2022, 05:08:18 UTCview: support --ref-lalo out of subset ext for 2D matrix + view: support --ref-lalo out of subset extent for 2D matrix input, similar to the existing support for 3D matrix + minor comments update in scripts below: - asc_desc2horz_vert.py - prep_fringe.py - objects/sensor: notes on az*_pix*_size for S131 May 2022, 21:45:46 UTC
8b773be Antonio Valentino30 May 2022, 01:05:34 UTCMove shell scripts from mintpy/sh to scripts. (#785) + move shell scripts from `mintpy/sh` to `script`. + update setup.py as the shell scripts are no longer installed * update README.md for the link of the example shell script usage.30 May 2022, 01:05:34 UTC
5111f33 Bryan Marfito27 May 2022, 17:38:41 UTCFixed a minor typo on README.md and smallbaselineApp.py (#784) goodle --> google27 May 2022, 17:38:41 UTC
6e592f8 Zhang Yunjun23 May 2022, 22:23:02 UTCplot_transection: bugfix for `add_arrow()` (#778) + plot_transection.py: fix the "IndexError: index 2 is out of bounds for axis 0 with size 2" due to utils/plot.add_arrow() + utils/plot.plot_colorbar(): use len(unique_values) instead of cmap_lut while checking for discrete colorbar ticks + view: rm the useless plt.subplots(num), as it shows up in notebooks with %matplotlib widget + iono_tec: printout CENTER_LINE_UTC and local solar time + diff.check_reference(): simple refactor and bugfix when file1 is absolute w/o REF_DATE. + docs/installation: minor comment simplification23 May 2022, 22:23:02 UTC
5405746 Antonio Valentino22 May 2022, 18:47:49 UTCuse `sh` instead of `bash` in `load_data_aoi.sh` (#774)22 May 2022, 18:47:49 UTC
8dd9390 Antonio Valentino21 May 2022, 20:48:58 UTCFix spelling errors and typos (#775) * Fix spelling errors and typos in different files (mostly online help messages of the CLI). * Remove the unused `--no-parallel` opt for `subset/prep_roipac.py` Co-authored-by: Zhang Yunjun <yunjunzgeo@gmail.com>21 May 2022, 20:48:58 UTC
7014b0b Zhang Yunjun10 May 2022, 02:45:44 UTCmove `requirements.txt` to the root dir (#772) * mv requirements.txt to root dir for a shorter path + move requirements.txt from ./docs to ./ dir for a shorter path; update path in installations.md and circleci/config.yml + utils.utils1.update_template_file(): handle value2seach inside if check, to avoid unnecessary running * view: add --coastline-lw / --lalo-off / --lalo-fs + view: add 3 new options to customize plotting in geo-coordinates: - coastline-linewidth - lalo-offset - lalo-fontsize + asc_desc2horz_vert: - bugfix on the printout msg during REF_LAT/LON checking - bugfix on the output metadata in one output HDF5 fil + readfile: GDAL related metadata - DATA_TYPE_GDAL2NUMPY/NUMPY2GDAL: add cint16/32 for translation purpose - add ".tiff" to GDAL_FILE_EXTS10 May 2022, 02:45:44 UTC
8b32b3c Kang Liang07 May 2022, 22:00:04 UTCbugfix for manually specified site_list_file in `gps.search_gps()` (#771) + objects.gps.search_gps(): fix a bug that `site_list_file` will not be downloaded when the user specifies the path to it, and pass `site_list_file` to `dload_site_list()`.07 May 2022, 22:00:04 UTC
0344522 Zhang Yunjun02 May 2022, 20:43:57 UTCut.update_template_file(): support "[]()" during option value search (#768) + utils.utils1.update_template_file(): - add "[]()" to the special symbol interpretation list while searching for template option values. - use "value2search" for "re.findall()" expression, without changing original value variable, for more robust replace() operation.02 May 2022, 20:43:57 UTC
0718be9 Zhang Yunjun02 May 2022, 04:36:45 UTCtsview: bugfix for cartopy feature (#767) + tsview.py: bugfix for cartopy feature while initializing projection + timeseries2velocity.read_inps2model(): add print_msg + objects/sensor.SEN: fix antenna and PRF parameters + smallbaselineApp.py:_read_template(): align the print out "copy for backup" msg02 May 2022, 04:36:45 UTC
bbb2ce2 Zhang Yunjun22 April 2022, 21:55:55 UTCtsview: new "narrow" slider + tsview: switch to a new look of "slider" in tsview.py. The main changes are: 1. use a narrower slider on the Y-axis, for a more compact looking. 2. The slider is solely based on image number, instead of time, to be agnostic against TS files with different time gaps. 3. Plot the reference date as a "gray" dot on the slider, to be more visible. 4. use subplot() with tight_layout() to better scale the subplots + utils.ptime: add get_compact_isoformat()23 April 2022, 00:16:03 UTC
479d308 Zhang Yunjun22 February 2022, 06:02:14 UTCuse fig.canvas.draw_idle() to replace fig.canvas.draw() + replace fig.canvas.draw() with "fig.canvas.draw_idle()" and "fig.canvas.flush_events()", as recommended by matplotlib (https://matplotlib.org/stable/users/explain/interactive_guide.html). This fixed the non-resposive point TS plot, with the latest version of matplotlib version 3..5.1. It's unknown since which version of matplotlib that this behavior change started to happen. Involved scripts are: - tsview.py - plot_transection.py - plot_coherence_matrix.py + tsview: update bar() plot in the slider, to make sure the vertical lines are within the slider extent + utils.plot: add add_arrow() from stack overflow + plot_transection: plot the profile location as dashed arrow instead of dashed line, to indicate the profile direction, via plot.add_arrow().23 April 2022, 00:16:03 UTC
04bf0b2 Zhang Yunjun10 April 2022, 05:10:14 UTCplot_colorbar(): show the exact tick values for matrix w/ <=5 unique values + utils/plot.auto_adjust_colormap_lut_and_disp_limit(): add unique_values as the 3rd return arg & update its usage in save_kmz.py, view.py and tsview.py + utils/plot.plot_colorbar(): use unique_values to set tick locations if they are <=5 + utils/plot.read.gmt_lonlat_file(): ignore comment lines + utils/utils.read_timeseries_yx(): bugfix for dis_std unit conversion + objects/sensor: add a few paramters for the GaoFen-3 sensor + objects/gps.get_gps_los_obs(): bugfix when input site_names are not consistent with CSV file + add Yunjun et al. (2022) with DOI to the following files: - defaults/smallbaselineApp.cfg: SET option - iono_tec.py - solid_earth_tides.py - simulation/iono.py23 April 2022, 00:16:03 UTC
a390362 Falk Amelung21 April 2022, 04:12:17 UTCsave_hdfeos5.py: allows for suffix in filename (#763) add --suffix option to allow for suffix in the filename.21 April 2022, 04:12:17 UTC
edebebd Zhang Yunjun14 April 2022, 21:14:12 UTCversion: add version 1.3.3 tag (#761)14 April 2022, 21:14:12 UTC
fb88aa4 Zhang Yunjun17 March 2022, 06:16:32 UTCadd iono ramp calc from GIM TEC products + add simulation/iono.py sub-module: - add iono mapping functions from Yunjun et al. (2022) - add JPL high resolution GIM I/O - add GIS low resolution GIM downloading, I/O and plotting + add iono_tec.py for high level usage - auto download IGS TEC files, similar to tropo_pyaps3.py - call simulation/iono.py to read and calculate iono ramps + add data/top_tec_perc_s1.py from Yunjun et al.. (2022) + update docs accordingly - docs/api/module_hierarchy.md: add simulation/iono - setup.py: add entry point for iono_tec.py23 March 2022, 19:52:52 UTC
8edc973 Zhang Yunjun19 March 2022, 21:41:46 UTCplot very long TEC TS file + coord.geo2radar(): support file longitude exceeding 180 in both end, e.g. the GIM IONEX file + plot.auto_multilook_num(): turn OFF multilooking for small spatial size, even if the over size is large due to the large time dimension, to speed up the reading. Otherwise, it will do the epoch-by-epoch reading with indexing, which is slow. + tsview: for very long TS (> 1000 acquisitions), do not print out displacement TS in the terminal, reduce the default marker size by 10X.23 March 2022, 19:52:52 UTC
c0d6c3a Zhang Yunjun21 March 2022, 03:53:09 UTCasc_desc2horz_vert: speedup pixel-wise inversion via win-by-win (#756) + asc_desc2horz_vert.py: - use a window-by-window strategy to speedup the pixel-wised inversion - add get_design_matrix4east_north_up() for future 3D decomposition - bug fix for --oo option during file writing + gps.GPS.read_displacement(): add self.date_list member variable, for easy use + stack.timeseries: remove get_design_matrix4time_func, as it's not used anywhere in mintpy anymore, to avoid circular imports21 March 2022, 03:53:09 UTC
84421d5 Zhang Yunjun19 March 2022, 22:50:47 UTCreadfile.read_snap_dim(): bugfix on WAVELENGTH unit (#755) + utils.readfile.read_snap_dim(): bugfix on WAVELENGTH unit + asc_desc2horz_vert: pass angles in deg instead of rad + utils.plot.auto_adjust_xaxis_date(): fix a bug introduced in https://github.com/insarlab/MintPy/pull/734 + local_oscilator_drift.get_relative_range_distance(): typo fix + docs/README: update aux links in Yunjun et al. (2019)19 March 2022, 22:50:47 UTC
44dfae4 zhurewitz19 March 2022, 03:44:32 UTCget_design_matrix4time_func(): bugfix for `poly_order = 0` (#754) + utils.time_func.get_design_matrix4time_func(): resolves a bug that creates design matrices with columns of zeros, when the polynomial order is zero.19 March 2022, 03:44:32 UTC
bbbaf2b Oliver Stephenson18 March 2022, 05:44:57 UTCimage_stitch - bugfix for bool / integer matrix (#751) Currently `image_stitch.py` can't correctly merge mask files. It puts the merged arrays into an array initialized as `np.nan`. Nans evaluates to `True`, meaning that we are left with blocks outside the data region that are set to `True`. + Adding a simple check to see if we're merging non-float arrays, then set the default values of `fill_value` to `0` instead of `np.nan` fixes the issue. + use vprint() to shorten the print() if check18 March 2022, 05:44:57 UTC
bd8795f Yujie Zheng10 March 2022, 04:57:34 UTCclosure_phase_bias.py - mask for areas susceptible to closure phase bias (#740) + add a new script `closure_phase_bias.py`, to create a mask for areas susceptible to closure phase bias, based on Zheng et al. (2022, TGRS, under review). + setup.py: add entry point for the new script10 March 2022, 04:57:34 UTC
  • Newer
  • Older

Software Heritage — Copyright (C) 2015–2025, The Software Heritage developers. License: GNU AGPLv3+.
The source code of Software Heritage itself is available on our development forge.
The source code files archived by Software Heritage are available under their own copyright and licenses.
Terms of use: Archive access, API— Contact— JavaScript license information— Web API

back to top