isce-framework / isce-framework/dolphin

Masked reference point

Open
#672 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
153
Forks
33
PR merge metrics
No merged PRs in 30d

Description

Discussed in https://github.com/isce-framework/dolphin/discussions/670

Originally posted by giorgoskouroupis January 8, 2026
Hello @scottstanie and the whole team :)

I have been running the dolphin and so far it seems quite robust.
thank you for your work. :)

However i came to a small bug(?), i guess from using a (water) mask file.
After an unsuccessful inversion run (all good up until the inversion step) the log reads:

[INFO|timeseries|L153] 2026-01-07T09:38:41+0100: Selecting a reference point for unwrapped interferograms
INFO🐬Selecting a reference point for unwrapped interferograms
[INFO|timeseries|L1313] 2026-01-07T09:38:41+0100: Selecting reference point
INFO🐬Selecting reference point
[INFO|timeseries|L1395] 2026-01-07T09:38:41+0100: Creating intersection of connected components
INFO🐬Creating intersection of connected components

100%|██████████| 156/156 [00:29<00:00, 5.37it/s]

[INFO|timeseries|L1415] 2026-01-07T09:39:11+0100: Found 36530 connected components in intersection
INFO🐬Found 36530 connected components in intersection
[INFO|timeseries|L1363] 2026-01-07T09:39:11+0100: Saving ReferencePoint(row=1456, col=122) to ./reference_point.txt
INFO🐬Saving ReferencePoint(row=1456, col=122) to ./reference_point.txt
[INFO|stitching|L694] 2026-01-07T09:39:11+0100: Using ./water_mask_tile_0.tif, already matches size of ./unwrapped/20200105_20200117.unw.tif
INFO🐬Using ./water_mask_tile_0.tif, already matches size of ./unwrapped/20200105_20200117.unw.tif
[INFO|timeseries|L207] 2026-01-07T09:39:11+0100: Inverting network of 600 unwrapped ifgs
INFO🐬Inverting network of 600 unwrapped ifgs
[INFO|timeseries|L1060] 2026-01-07T09:39:11+0100: Inverting network using L1-norm minimization
INFO🐬Inverting network using L1-norm minimization
[INFO|timeseries|L1095] 2026-01-07T09:39:11+0100: Using unweighted unw inversion
INFO🐬Using unweighted unw inversion
[WARNING|timeseries|L1101] 2026-01-07T09:39:12+0100: Masked data found at 1456, 122.
WARNING🐬Masked data found at 1456, 122.
[WARNING|timeseries|L1102] 2026-01-07T09:39:12+0100: Zeroing out reference pixel. Results may be wrong.
WARNING🐬Zeroing out reference pixel. Results may be wrong.

From the look of the code, the reference point is calculated before any consideration of the the mask in https://github.com/isce-framework/dolphin/blob/4daa48199c812ac3bad634077c4eaa90ab48032d/src/dolphin/timeseries.py#L152-L176

If this is indeed a small bug, a naive solution would be to call the mask into the "def select_reference_point(...)"

https://github.com/isce-framework/dolphin/blob/4daa48199c812ac3bad634077c4eaa90ab48032d/src/dolphin/timeseries.py#L1313-L1314

and multiply the quality_file_values with the mask to remove masked areas, but i am not sure if there would be a more appropriate solution.

Any ideas, or thoughts?

Many thanks for your time :)

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.

Research direction

Start in src/dolphin/timeseries.py at select_reference_point(...) around lines 1313-1314 and review the reference-point selection flow around lines 152-176. Trace how the water mask is handled before inversion, then verify that a selected reference point is not masked and that the inversion no longer reports zeroing it out.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
data
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.