Region-scale integer-cycle inconsistency in a distributed P05023 GUNW, identified by a five-acquisition loop-closure net
-
syota.sasaki.earthsea_wizard
- Posts: 2
- Joined: Mon Aug 24, 2026 10:03 am America/New_York
Region-scale integer-cycle inconsistency in a distributed P05023 GUNW, identified by a five-acquisition loop-closure net
Hello,
I have been running a loop-closure (phase-closure) QC experiment on provisional NISAR L2 GUNW products over the Boso Peninsula, Japan (descending track 118, frame 71), and found a region-scale integer-cycle inconsistency in one of the ASF-distributed granules. I am sharing the result because the detection method may be of general interest: the error survives the pairwise check most users can run — comparing the product against a production-equivalent reprocessing of the same pair — and becomes detectable, and attributable to a specific pair, only in a closure network built from pair combinations beyond the nearest-neighbour set.
Setup:
Five acquisitions (2026-05-29, 06-10, 06-22, 07-04, 07-16; cycles 021–025). ASF distributes the four nearest-neighbour pairs; I generated all C(5,2) = 10 pairs myself with ISCE3 v0.25.16 (matching the PGE `softwareVersion`), using the processing settings recovered from the production runconfigs embedded in the distributed products, with pair-specific inputs, identifiers, and TEC files substituted (NISAR DEM v1.2, water mask v0.5, one IMAGEN TEC file — JPL global ionospheric TEC maps — per reference date; troposphere disabled). The four self-run nearest-neighbour pairs reproduce the distributed products to numerical noise (p95 of the median-removed phase difference ≤ 2.4e-5 rad over the overlapping grid, identical connected-component partitions), confirming the chain end-to-end; the six additional "skip" pairs come from that same validated chain.
The exact input scenes (all P05023):
- `NISAR_L1_PR_RSLC_021_118_D_071_4005_DHDH_A_20260529T092830_20260529T092849_P05023_N_P_J_001`
- `NISAR_L1_PR_RSLC_022_118_D_071_4005_DHDH_A_20260610T092829_20260610T092848_P05023_N_P_J_001`
- `NISAR_L1_PR_RSLC_023_118_D_071_4005_DHDH_A_20260622T092828_20260622T092847_P05023_N_P_J_001`
- `NISAR_L1_PR_RSLC_024_118_D_071_4005_DHDH_A_20260704T092828_20260704T092847_P05023_N_P_J_001`
- `NISAR_L1_PR_RSLC_025_118_D_071_4005_DHDH_A_20260716T092827_20260716T092846_P05023_N_P_J_001`
and the four distributed GUNW granules used as the production reference:
- `NISAR_L2_PR_GUNW_021_118_D_071_022_4000_SH_20260529T092830_20260529T092849_20260610T092829_20260610T092848_P05023_N_P_J_001`
- `NISAR_L2_PR_GUNW_022_118_D_071_023_4000_SH_20260610T092829_20260610T092848_20260622T092828_20260622T092847_P05023_N_P_J_001`
- `NISAR_L2_PR_GUNW_023_118_D_071_024_4000_SH_20260622T092828_20260622T092847_20260704T092828_20260704T092847_P05023_N_P_J_001`
- `NISAR_L2_PR_GUNW_024_118_D_071_025_4000_SH_20260704T092828_20260704T092847_20260716T092827_20260716T092846_P05023_N_P_J_001`
Method:
With all 10 pairs, every pair sits in 3 of the C(5,3) = 10 closure triangles. Integer-cycle closure residuals were computed per pixel on trusted pixels (finite, non-zero phase, cc > 0 in all three legs). A voting solver attributes a non-zero closure to a specific pair where at least two of that pair's observable triangles agree, sign included, and the attributed errors reproduce every observed triangle; 0.355 % of the pixels with sufficient triangle coverage remain ambiguous and are excluded.
Finding — an integer-cycle inconsistency in a distributed granule. Under that criterion, the granule
`NISAR_L2_PR_GUNW_022_118_D_071_023_4000_SH_20260610T092829_20260610T092848_20260622T092828_20260622T092847_P05023_N_P_J_001`
(2026-06-10 → 06-22, 12-day pair) carries a −1 cycle (−2π, ~11.9 cm LOS at L-band) offset over a coastal strip on the east coast of the Izu Peninsula (near Ito): 7,842 trusted pixels at 80 m posting, bounding box ~6.9 × 11.2 km. The strip is separated from the main landmass of the frame by open water, and the offset's spatial pattern is consistent with an unwrap bridging failure across the water. The same strip is hit again, with the opposite sign (+1 cycle), in the 48-day skip pair 05-29 → 07-16 — supporting a regional susceptibility rather than a one-off numerical anomaly. The non-zero closures appear in exactly the six triangles that contain one of these two pairs (three triangles each); the four triangles containing neither close at the 99.9 % level, and that pattern is what attributes each error to its pair.
Three properties seem worth noting:
1. My independent self-run of the same pair reproduces the identical offset: inside the flagged region the two unwrapped phases agree to p99 |Δφ| = 1.6e-5 rad with zero pixels above π — a coherent region-level offset shared by both products, not phase noise. A pairwise comparison against a production-equivalent reprocessing is therefore structurally blind to this error class; the closure network, not the comparison, is what detects it.
2. The flagged strip and the main landmass share the same connected-component label (`connectedComponents` = 1) in both the distributed and self-run products, so the inconsistency is internal to a single labeled component — discarding secondary components would not catch it.
3. Closure triangles require pair combinations beyond the nearest-neighbour set, which is why the six skip pairs in this study are self-processed. I am happy to make these interferograms available (e.g., via Zenodo) if they would be useful for verification, and I welcome comments on the methodology.
Caveats:
These are PROVISIONAL P05023 products — calibrated and partially validated, pending broader validation, per the known-issues page (https://nisar-docs.asf.alaska.edu/provisional-known-issues/) — and I offer this reproducible result as QC feedback during the provisional phase. The closure attribution holds under the stated voting criterion; per-acquisition constant shifts and spatially constant per-pair offsets span the null space of the closure system and are not observable here.
Discussion:
Loop closure is a central internal-consistency check in InSAR analysis, and I would welcome open discussion of this exploratory study — the methodology, its limitations, and any related aspects including data distribution. If useful, I can provide the full pixel masks and per-triangle closure maps for the flagged granule. I would also be interested to hear whether a closure-based QC layer (or a region-level "unwrap-suspect" flag for water-separated areas) is being considered for the production GUNW pipeline.
Figures and the analysis summary are available here: https://github.com/s-sasaki-earthsea-wizard/isce3-benchmark/wiki/NISAR-GUNW-closure-network-118D-071
Thanks — and thanks to the NISAR/ASF team for the provisional release. Across the trusted domain, 99.1–99.9 % of the pixels in each of the ten triangles had zero-cycle closure.
I have been running a loop-closure (phase-closure) QC experiment on provisional NISAR L2 GUNW products over the Boso Peninsula, Japan (descending track 118, frame 71), and found a region-scale integer-cycle inconsistency in one of the ASF-distributed granules. I am sharing the result because the detection method may be of general interest: the error survives the pairwise check most users can run — comparing the product against a production-equivalent reprocessing of the same pair — and becomes detectable, and attributable to a specific pair, only in a closure network built from pair combinations beyond the nearest-neighbour set.
Setup:
Five acquisitions (2026-05-29, 06-10, 06-22, 07-04, 07-16; cycles 021–025). ASF distributes the four nearest-neighbour pairs; I generated all C(5,2) = 10 pairs myself with ISCE3 v0.25.16 (matching the PGE `softwareVersion`), using the processing settings recovered from the production runconfigs embedded in the distributed products, with pair-specific inputs, identifiers, and TEC files substituted (NISAR DEM v1.2, water mask v0.5, one IMAGEN TEC file — JPL global ionospheric TEC maps — per reference date; troposphere disabled). The four self-run nearest-neighbour pairs reproduce the distributed products to numerical noise (p95 of the median-removed phase difference ≤ 2.4e-5 rad over the overlapping grid, identical connected-component partitions), confirming the chain end-to-end; the six additional "skip" pairs come from that same validated chain.
The exact input scenes (all P05023):
- `NISAR_L1_PR_RSLC_021_118_D_071_4005_DHDH_A_20260529T092830_20260529T092849_P05023_N_P_J_001`
- `NISAR_L1_PR_RSLC_022_118_D_071_4005_DHDH_A_20260610T092829_20260610T092848_P05023_N_P_J_001`
- `NISAR_L1_PR_RSLC_023_118_D_071_4005_DHDH_A_20260622T092828_20260622T092847_P05023_N_P_J_001`
- `NISAR_L1_PR_RSLC_024_118_D_071_4005_DHDH_A_20260704T092828_20260704T092847_P05023_N_P_J_001`
- `NISAR_L1_PR_RSLC_025_118_D_071_4005_DHDH_A_20260716T092827_20260716T092846_P05023_N_P_J_001`
and the four distributed GUNW granules used as the production reference:
- `NISAR_L2_PR_GUNW_021_118_D_071_022_4000_SH_20260529T092830_20260529T092849_20260610T092829_20260610T092848_P05023_N_P_J_001`
- `NISAR_L2_PR_GUNW_022_118_D_071_023_4000_SH_20260610T092829_20260610T092848_20260622T092828_20260622T092847_P05023_N_P_J_001`
- `NISAR_L2_PR_GUNW_023_118_D_071_024_4000_SH_20260622T092828_20260622T092847_20260704T092828_20260704T092847_P05023_N_P_J_001`
- `NISAR_L2_PR_GUNW_024_118_D_071_025_4000_SH_20260704T092828_20260704T092847_20260716T092827_20260716T092846_P05023_N_P_J_001`
Method:
With all 10 pairs, every pair sits in 3 of the C(5,3) = 10 closure triangles. Integer-cycle closure residuals were computed per pixel on trusted pixels (finite, non-zero phase, cc > 0 in all three legs). A voting solver attributes a non-zero closure to a specific pair where at least two of that pair's observable triangles agree, sign included, and the attributed errors reproduce every observed triangle; 0.355 % of the pixels with sufficient triangle coverage remain ambiguous and are excluded.
Finding — an integer-cycle inconsistency in a distributed granule. Under that criterion, the granule
`NISAR_L2_PR_GUNW_022_118_D_071_023_4000_SH_20260610T092829_20260610T092848_20260622T092828_20260622T092847_P05023_N_P_J_001`
(2026-06-10 → 06-22, 12-day pair) carries a −1 cycle (−2π, ~11.9 cm LOS at L-band) offset over a coastal strip on the east coast of the Izu Peninsula (near Ito): 7,842 trusted pixels at 80 m posting, bounding box ~6.9 × 11.2 km. The strip is separated from the main landmass of the frame by open water, and the offset's spatial pattern is consistent with an unwrap bridging failure across the water. The same strip is hit again, with the opposite sign (+1 cycle), in the 48-day skip pair 05-29 → 07-16 — supporting a regional susceptibility rather than a one-off numerical anomaly. The non-zero closures appear in exactly the six triangles that contain one of these two pairs (three triangles each); the four triangles containing neither close at the 99.9 % level, and that pattern is what attributes each error to its pair.
Three properties seem worth noting:
1. My independent self-run of the same pair reproduces the identical offset: inside the flagged region the two unwrapped phases agree to p99 |Δφ| = 1.6e-5 rad with zero pixels above π — a coherent region-level offset shared by both products, not phase noise. A pairwise comparison against a production-equivalent reprocessing is therefore structurally blind to this error class; the closure network, not the comparison, is what detects it.
2. The flagged strip and the main landmass share the same connected-component label (`connectedComponents` = 1) in both the distributed and self-run products, so the inconsistency is internal to a single labeled component — discarding secondary components would not catch it.
3. Closure triangles require pair combinations beyond the nearest-neighbour set, which is why the six skip pairs in this study are self-processed. I am happy to make these interferograms available (e.g., via Zenodo) if they would be useful for verification, and I welcome comments on the methodology.
Caveats:
These are PROVISIONAL P05023 products — calibrated and partially validated, pending broader validation, per the known-issues page (https://nisar-docs.asf.alaska.edu/provisional-known-issues/) — and I offer this reproducible result as QC feedback during the provisional phase. The closure attribution holds under the stated voting criterion; per-acquisition constant shifts and spatially constant per-pair offsets span the null space of the closure system and are not observable here.
Discussion:
Loop closure is a central internal-consistency check in InSAR analysis, and I would welcome open discussion of this exploratory study — the methodology, its limitations, and any related aspects including data distribution. If useful, I can provide the full pixel masks and per-triangle closure maps for the flagged granule. I would also be interested to hear whether a closure-based QC layer (or a region-level "unwrap-suspect" flag for water-separated areas) is being considered for the production GUNW pipeline.
Figures and the analysis summary are available here: https://github.com/s-sasaki-earthsea-wizard/isce3-benchmark/wiki/NISAR-GUNW-closure-network-118D-071
Thanks — and thanks to the NISAR/ASF team for the provisional release. Across the trusted domain, 99.1–99.9 % of the pixels in each of the ten triangles had zero-cycle closure.
Filters:
-
NISAR - hfattahi
- Subject Matter Expert

- Posts: 7
- Joined: Thu Feb 26, 2026 11:44 am America/New_York
- Endorsed: 2 times
Re: Region-scale integer-cycle inconsistency in a distributed P05023 GUNW, identified by a five-acquisition loop-closure
Thank you for sharing your analysis. Yes users should be aware that there is no easy way to connect possible disconnected islands in an operational system. The provided connected components should help users to identify the separated components and adjust as they wish if they have auxiliary information on how phase may vary from one island to the other.
-
syota.sasaki.earthsea_wizard
- Posts: 2
- Joined: Mon Aug 24, 2026 10:03 am America/New_York
Re: Region-scale integer-cycle inconsistency in a distributed P05023 GUNW, identified by a five-acquisition loop-closure
Thank you — your reply prompted me to examine the connected-component layer and the unwrap log more closely.
For the flagged 2026-06-10 → 06-22 product, the Izu strip and the main landmass are both labeled `connectedComponents` = 1; every analysis-valid pixel in my window carries that label, in both the ASF granule and my production-equivalent rerun. The rerun's unwrap log reports one cluster and says that bridging was not applied because all components were already connected (bridging was enabled in the runconfig, radius 500).
I also found a map-space validity mismatch in the GUNW: 341,816 of the 1,572,616 pixels labeled `connectedComponents` = 1 are invalid by the GUNW mask/phase/coherence criteria (a zero subswath digit in the `mask` layer, coherence NaN, and unwrapped phase exactly 0.0). Those labeled-but-invalid pixels form a contiguous map-space band joining the strip, the northern tip of Izu Oshima, and the mainland. Because unwrapping and the bridge decision occur on the RUNW before geocoding, I do not assume this GUNW band caused the one-cluster decision — but it does show that a single GUNW connected-component label is not, by itself, evidence of connectivity through valid GUNW samples.
Could you clarify (1) whether positive connected-component labels on these GUNW-invalid pixels are expected after geocoding, and (2) whether another product layer or QA indicator is intended to flag a one-cycle inconsistency within a single output label? I have posted the connected-component comparison figure (split by sample validity), the flagged-pixel masks as GeoTIFFs, and the full per-pixel attribution export on the companion page: https://github.com/s-sasaki-earthsea-wizard/isce3-benchmark/wiki/NISAR-GUNW-closure-network-118D-071#follow-up-connected-components-and-the-unwrap-log-2026-08-26
For the flagged 2026-06-10 → 06-22 product, the Izu strip and the main landmass are both labeled `connectedComponents` = 1; every analysis-valid pixel in my window carries that label, in both the ASF granule and my production-equivalent rerun. The rerun's unwrap log reports one cluster and says that bridging was not applied because all components were already connected (bridging was enabled in the runconfig, radius 500).
I also found a map-space validity mismatch in the GUNW: 341,816 of the 1,572,616 pixels labeled `connectedComponents` = 1 are invalid by the GUNW mask/phase/coherence criteria (a zero subswath digit in the `mask` layer, coherence NaN, and unwrapped phase exactly 0.0). Those labeled-but-invalid pixels form a contiguous map-space band joining the strip, the northern tip of Izu Oshima, and the mainland. Because unwrapping and the bridge decision occur on the RUNW before geocoding, I do not assume this GUNW band caused the one-cluster decision — but it does show that a single GUNW connected-component label is not, by itself, evidence of connectivity through valid GUNW samples.
Could you clarify (1) whether positive connected-component labels on these GUNW-invalid pixels are expected after geocoding, and (2) whether another product layer or QA indicator is intended to flag a one-cycle inconsistency within a single output label? I have posted the connected-component comparison figure (split by sample validity), the flagged-pixel masks as GeoTIFFs, and the full per-pixel attribution export on the companion page: https://github.com/s-sasaki-earthsea-wizard/isce3-benchmark/wiki/NISAR-GUNW-closure-network-118D-071#follow-up-connected-components-and-the-unwrap-log-2026-08-26