Skip to content

Feature/coherence matrix time axis clean#2

Open
huchangyang wants to merge 17 commits into
feature/coherence-matrix-split-windows-cleanfrom
feature/coherence-matrix-time-axis-clean
Open

Feature/coherence matrix time axis clean#2
huchangyang wants to merge 17 commits into
feature/coherence-matrix-split-windows-cleanfrom
feature/coherence-matrix-time-axis-clean

Conversation

@huchangyang

Copy link
Copy Markdown
Owner

Description of proposed changes

This PR adds an optional continuous time-axis view for coherence matrix plotting.

The new --time-axis option in plot_coherence_matrix.py displays the coherence matrix using acquisition dates as a continuous time axis instead of image indices. Each acquisition is represented by a date-centered cell. Internal cell boundaries are placed at the midpoint between adjacent acquisition dates, while the first and last cells are extended outward by the adjacent acquisition spacing.

image

This makes temporal gaps in the interferogram network visible in the matrix view. The existing upper/lower triangle convention is preserved: the upper triangle shows used interferograms, and the lower triangle shows all available interferograms.

This PR also adds coherenceMatrixTimeAxis.pdf to plot_network.py outputs for coherence datasets.

Depends on: PR1 (feature/coherence-matrix-split-windows-clean)

Reminders

  • Fix #xxxx
  • Pass Pre-commit check (green)
  • Pass Codacy code review (green)
  • Pass Circle CI test (green)
  • Make sure that your code follows our style. Use the other functions/files as a basis.
  • If modifying functionality, describe changes to function behavior and arguments in a comment below the function declaration.
  • If adding new functionality, add a detailed description to the documentation and/or an example.

* plot_coherence_matrix: split image and matrix windows

* cli/plot_coh_matrix: comment out mpl_disconnect to be consistent with cli/tsview.py.

* more comment & rm redundant code

* show lat/lon info in the terminal whenever it's available

---------

Co-authored-by: Zhang Yunjun <yunjunz@outlook.com>
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
@huchangyang
huchangyang force-pushed the feature/coherence-matrix-time-axis-clean branch 4 times, most recently from 57db440 to 7a8a22d Compare June 4, 2026 14:12
dependabot Bot and others added 4 commits July 6, 2026 16:13
…lab#1497)

Bumps [akhilerm/tag-push-action](https://github.com/akhilerm/tag-push-action) from 2.2.0 to 2.3.0.
- [Release notes](https://github.com/akhilerm/tag-push-action/releases)
- [Commits](akhilerm/tag-push-action@v2.2.0...v2.3.0)

---
updated-dependencies:
- dependency-name: akhilerm/tag-push-action
  dependency-version: 2.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…rlab#1486)

* add basic entries to enable OPERA tropo support for parsing in MintPy

* first attempt on tropo_opera.py

* add opera functions to enable its method for tropo correction

* Added subsetting instead of full file download. This speeds up drastically

* fix: address review feedback (isort, memory scaling, docstring, CLI typos)

- Remove extra blank line after imports to satisfy isort
- Rewrite interpolation: cubic-lateral per height level then linear-vertical to reduce memory from O(npixels*ny*nx) to O(nz*npixels)
- Fix docstring in read_opera_total_delay_cube (one-level buffer -> bracketing)
- Fix CLI typos: Tropopsheric, trospheric, prerp, placeholder descriptions
- Add _ensure_ascending helper for axis/data orientation

* fix: pyupgrade f-string parens + add asf_search to requirements

- Remove redundant parentheses around f-strings (pyupgrade --py36-plus)
- Add asf_search to requirements.txt (needed for OPERA download)

* add fsspec[http] to requirements for OPERA remote subsetting

fsspec[http] includes aiohttp, enabling byte-range HTTP downloads
for efficient spatial/vertical subsetting of OPERA ZTD files.

* fsspec requires python=3.10+

* Implement geometry grid reprojection support for UTM TS

* fix: remove duplicate readfile import and trailing whitespace

* fix: sort imports (isort) in calc_zenith_delay_from_opera_file

* Refactor calc_zenith_delay_from_opera_file parameters

* Fix formatting in tropo_opera.py

* Refactor code for improved readability and structure

* Optimize calc_zenith_delay_from_opera_file function

Refactor zenith delay calculation for memory efficiency and clarity.

* Update authorship and improve docstring clarity

* Fix comment formatting in __main__.py

* Update author information and fix docstring format

* Fix docstring formatting in __main__.py

Removed unnecessary quotes from the docstring.

* fix: docstring D212 violations — summary on first line (Codacy)

* fix: convert multi-line docstrings to single-line to satisfy both D212+D213 (Codacy)

* cli/tropo_opera: minor print out msg re-org

* pre-commit fix

---------

Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
Co-authored-by: Zhang Yunjun <yunjunz@outlook.com>
Co-authored-by: Simran S Sangha <sssangha@ucla.edu>
…allel via smallbaselineApp (insarlab#1503)

+ view.py:
   - set matplotlib.use('Agg') BEFORE importing pyplot, and switch backend in `viewer.configure()`.
   - properly close fig object
   - do NOT specify the `num` while calling subplots(), to avoid potential conflicts between parallel processes of view.py calls

+ smallbaselineApp.plot_results(): use `multiprocessing` backend while calling joblib.Parallel()
Bumps [actions/checkout](https://github.com/actions/checkout) from 6 to 7.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v6...v7)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@huchangyang
huchangyang force-pushed the feature/coherence-matrix-time-axis-clean branch 9 times, most recently from 3130a5b to 52c65fe Compare July 10, 2026 06:22
yunjunz and others added 5 commits July 12, 2026 00:00
+ fix the backend issue for interactive plotting as used in tsview and plot_coherence_matrix, which was introduced in insarlab#1503

+ fix the tar.extractall warning in tests/smallbaselineApp, by adding `filter` argument, as required by Python 3.14, and preserve the compatibility for Python 3.11 and older.

+ fix gdal warning in all scripts by adding gdal.UseException()

+ fix the circle ci 'RuntimeError: PROJ: proj_identify: Open of /root/tools/miniforge/share/proj failed', by setting PROJ_LIB and GDAL_DATA env var.
[pre-commit.ci] pre-commit autoupdate

updates:
- [github.com/PyCQA/isort: 8.0.1 → 9.0.0a3](PyCQA/isort@8.0.1...9.0.0a3)
+ objects/constants: add `PlanetaryBody` class with parameters for 7 common used ones

+ prep_isce.prepare_stack(): use absolute path

+ support float LOS vec input for asc_desc2horz_vert.get_design_matrix4east_north_up()
Add a date-centered coherence matrix with year tick labels reused from
auto_adjust_xaxis_date(), expose --axis-format {index,time}, and include
the time-axis matrix in plot_network output.
For spans within 1.5 years, place year at January and odd-month numbers
on the same tick line; longer spans keep year-only labels.
@huchangyang
huchangyang force-pushed the feature/coherence-matrix-time-axis-clean branch from 52c65fe to e98f518 Compare July 13, 2026 06:39
pre-commit-ci Bot and others added 6 commits July 14, 2026 14:08
[pre-commit.ci] pre-commit autoupdate

updates:
- [github.com/PyCQA/isort: 9.0.0a3 → 9.0.0b1](PyCQA/isort@9.0.0a3...9.0.0b1)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
…insarlab#1501)

* Handle Sentinel-1D ReferenceGranule in HyP3 metadata

* hyp3: update S1C relative orbit calculation for S1C after orbit 8018 (https://dataspace.copernicus.eu/news/2026-5-28-sentinel-1-orbital-reconfiguration-dates), with formula cofirmed in FRINGE 2026.

---------

Co-authored-by: Alex-Lewandowski <aflewandowski@alaska.edu>
Co-authored-by: Zhang Yunjun <yunjunz@outlook.com>
Expose mintpy.network.plotAxisFormat (auto->time), keep plot_network at
four figures with a selectable matrix axis, and unify format_coord in
plot_coherence_matrix helpers.
format_coord now lives in the plot helpers, so the returned matrix is unused.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants