Dear Yunjun,
I have a question during the processing of mintpy - correct_unwrap_error part.
I’m processing Sentinel-1 data over Incheon Airport in Korea -
an island with coastlines, narrow water channels and often decorrelation. I’m running into persistent failures during correct_unwrap_error (bridging), even after I switch the reference mask away from maskConnComp.h5. Many IFGs show fragmented or nearly empty connectComponent over land (see mosaic figure below, ifgramStack.h5 - connComponent)
I'm using mintpy version 1.5.3, and I got the following error message when I proceed correct_unwrap_error step.
******************** step - correct_unwrap_error ********************
unwrap_error_bridging.py /disk1/shpark/KCG/CDR/IncheonAirport/process/mintpy/inputs/ifgramStack.h5 --template /disk1/shpark/KCG/CDR/IncheonAirport/process/mintpy/smallbaselineApp.cfg --update
read options from template file: smallbaselineApp.cfg
--------------------------------------------------
update mode: ON
1) output dataset: unwrapPhase_bridging exists
2) output dataset is newer than input dataset: unwrapPhase
3) NOT all key configuration parameters are the same: ['waterMaskFile', 'connCompMinArea', 'ramp', 'bridgePtsRadius'].
waterMaskFile : no --> ROI_demMask.h5
connCompMinArea : no --> 50.0
bridgePtsRadius : no --> 50
run or skip: run.
--------------------------------------------------
correct unwrapping error in /disk1/shpark/KCG/CDR/IncheonAirport/process/mintpy/inputs/ifgramStack.h5 with bridging ...
read water mask from file: ROI_demMask.h5
open /disk1/shpark/KCG/CDR/IncheonAirport/process/mintpy/inputs/ifgramStack.h5 with r+ mode
input dataset: unwrapPhase
output dataset: unwrapPhase_bridging
access /unwrapPhase_bridging of np.float32 in size of (114, 1602, 1411)
[======================= 54% ] 20220610_20220704 14s / 12sTraceback (most recent call last):
File "/home/shpark/anaconda3/envs/isce2/bin/smallbaselineApp.py", line 10, in <module>
sys.exit(main())
File "/home/shpark/anaconda3/envs/isce2/lib/python3.9/site-packages/mintpy/cli/smallbaselineApp.py", line 208, in main
run_smallbaselineApp(inps)
File "/home/shpark/anaconda3/envs/isce2/lib/python3.9/site-packages/mintpy/smallbaselineApp.py", line 1117, in run_smallbaselineApp
app.run(steps=inps.runSteps)
File "/home/shpark/anaconda3/envs/isce2/lib/python3.9/site-packages/mintpy/smallbaselineApp.py", line 886, in run
self.run_unwrap_error_correction(sname)
File "/home/shpark/anaconda3/envs/isce2/lib/python3.9/site-packages/mintpy/smallbaselineApp.py", line 351, in run_unwrap_error_correction
mintpy.cli.unwrap_error_bridging.main(iargs_bridge)
File "/home/shpark/anaconda3/envs/isce2/lib/python3.9/site-packages/mintpy/cli/unwrap_error_bridging.py", line 137, in main
run_unwrap_error_bridging(
File "/home/shpark/anaconda3/envs/isce2/lib/python3.9/site-packages/mintpy/unwrap_error_bridging.py", line 155, in run_unwrap_error_bridging
cc_obj.label(min_area=cc_min_area)
File "/home/shpark/anaconda3/envs/isce2/lib/python3.9/site-packages/mintpy/objects/conncomp.py", line 175, in label
raise ValueError('input reference point is NOT included in the connectComponent.')
ValueError: input reference point is NOT included in the connectComponent.
*What I've tried*
1. Avoided the common cc mask for reference selection.
Because the common cc mask eliminates the island in many IFGs, I built a custom land mask from a DEM (water=0, land=1) and converted it to radar grid (ROI_demMask.h5) to use as mintpy.reference.maskFile.
2. Enable bridging (also I tried bridging+phase_closure)
3. Tuned bridging parameter
mintpy.unwrapError.connCompMinArea = 50
mintpy.unwrapError.waterMaskFile = ROI_demMask.h5
mintpy.network.minCoherence = 0.3 - 0.6 (tested to drop IFGs)
Despite that, bridging still fails with the error above (apparently because the chosen reference pixel is outside cc in some IFGs).
But still the same error occurred. Do you have any solution? same problem happened in other islands area in my case, so I'm confused.
Attachments
-
Mosaic of connectComponent across all IFGs (PNG)
-
Current smallbaselineApp.cfg
info.py summaries for geometryRadar.h5, ifgramstack.h5 and ROI_demMask.h5
Many thanks for any advice on parameter ranges, drop rules, and ref-pixel/cc handling for island/coastal scenes. I’d love to get a stable time series over islands in Korea.
Best regards,
Sohee Park