isce-framework / isce-framework/isce3

InSAR test failures when calculating diff_phase in ionosphere.py/compute_differential_phase

Open
#130 2 comments 0 reactions 4 assignees View on GitHub

@xhuang-jpl is already working on this.

Since Sep 3, 2025.

Dominant language
Python
Stars
239
Forks
90
Avg merge
13d 1h
Merged PRs (30d)
5

Description

Several of the InSAR benchmarking test cases failed with variants of the following error when run with the r05.00.0-v0.25.0 Docker image last night:

 - journal: successfully ran crossmul in 84.871 seconds
 - Traceback (most recent call last):
 -   File "<frozen runpy>", line 198, in _run_module_as_main
 -   File "<frozen runpy>", line 88, in _run_code
 -   File "/opt/conda/lib/python3.12/site-packages/nisar/workflows/insar.py", line 130, in <module>
 -     run(insar_runcfg.cfg, out_paths, persist.run_steps)
 -   File "/opt/conda/lib/python3.12/site-packages/nisar/workflows/insar.py", line 85, in run
 -     ionosphere.run(cfg, out_paths['RUNW'])
 -   File "/opt/conda/lib/python3.12/site-packages/nisar/workflows/ionosphere.py", line 1060, in run
 -     insar_ionosphere_pair(iono_insar_cfg, runw_hdf5)
 -   File "/opt/conda/lib/python3.12/site-packages/nisar/workflows/ionosphere.py", line 883, in insar_ionosphere_pair
 -     compute_differential_phase(phase_first,
 -   File "/opt/conda/lib/python3.12/site-packages/nisar/workflows/ionosphere.py", line 538, in compute_differential_phase
 -     diff_phase = first_data_block * np.conj(second_data_block)
 -                  ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
 - ValueError: operands could not be broadcast together with shapes (1000,961) (1000,927)

Before running the test cases, I'd updated their runconfigs to conform to the version 00408 Parameter Set Files. The runconfigs had not been updated recently so some of the changes I made may date back to release 4.0.7 or earlier.

The above error was from the 20+5 mountain_glaciers interferograms (RIFG, RUNW, GUNW) test case. The full set of test cases that failed with this error are

20+5 mountain glaciers, interferograms (RIFG, RUNW, GUNW)
20+5 mountain glaciers, all 5 products
40+5 ice sheets, interferograms
40+5 ice sheets, all 5 products
40+5 mountain glaciers, interferograms
40+5 mountain glaciers, all 5 products

The array shapes varied from case to case, but the errors were the same.

The 20+4, 40+5, and 77-MHz offset-products-only test cases all ran to completion, as did the 77-MHz interferograms test case.

The full log files are on dev-3 in /scratch/jshimada/iscale/r05.00/{eap40_05,oman04}/FAILED/test*log . All the runconfigs are under /scratch/jshimada/iscale/r05.00/insar_runconfigs. The 20+5, 40+5, and 77-MHz runconfigs are in the oman, eap40, and antarctica subdirectories, respectively. The Docker image was isce3_release:r05.00.0-v0.25.0.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.