MiaplPy icon indicating copy to clipboard operation
MiaplPy copied to clipboard

Cannot detect PS after phase linking using TerraSAR-X images

Open david-ncu2019 opened this issue 1 year ago • 7 comments

Dear @mirzaees ,

Really sorry to bother you. I’d really appreciate it if you could take a moment to look into my case.

I’ve processed 25 TerraSAR-X (TSX) images in a descending path for land subsidence monitoring in an agricultural region of Taiwan. The pre-processing was done with ISCE, and I focused on a small area with miaplpy to test PS detection. The TSX images were kept at full resolution. MAP_PLOT - Copy

For comparison, I also processed Sentinel-1 images from the same period, which were multilooked (3 azimuth: 1 range) over a larger bounding box.

I expected the number of PS detected from TSX image processing to be significantly higher than those from the Sentinel-1A images, but surprisingly, this was not the case. This has left me quite confused. I’m uncertain if the issue stems from the ISCE processing step or if miaplpy doesn't fully support TSX images.

  1. The first figure shows the bounding box for Sentinel-1 and TSX image processing. fig001_resize2

  2. The second figure shows the PS mask after phase linking performance on S1A images. fig002_resize2

  3. The final figure contains both amp_dispersion_index and top_eigenvalues raster. Even the output results show high values of amplitude dispersion index and eigenvalues phase linking performance on TSX images, but the file maskPS.h5 shows nothing. I'm really confused why this happened. fig003_resize2

Any advice you can provide would be really helpful. Thank you for your time!

Best regards, David

david-ncu2019 avatar Sep 06 '24 15:09 david-ncu2019

Hi @david-ncu2019 Sorry for my late reply It seems like the processing for TSX was not successful and the PS mask is not actually generated another way to generate this mask is to use temporal coherence. all the coherence values =1 are PS

mirzaees avatar Oct 11 '24 15:10 mirzaees

Dear @mirzaees ,

Really thank you for your response!

I understand that your schedule may be quite busy, but I'm really grateful if you could take a moment to check my following questions.

It seems like the processing for TSX was not successful and the PS mask is not actually generated

  • Actually, the output files after concatenate_patches still showed values if I checked them individually (using view.py. from MintPy). However, the creation of MaskPS was not successful → Was it due to (1) image processing (with ISCE) or (2) due to the miaplpy algorithm itself?
  • If it was due to (1), what should I do to resolve the issue? For the TSX image pre-processing, I applied unpackFrame_TSX.py and stackStripMap.py.
  • Is it possible to adjust the default values of phase linking functions (phase_linking and concatenate_patches) in miaplpyApp.py from the source code in installed folder?

another way to generate this mask is to use temporal coherence. all the coherence values =1 are PS

  • Would you mind suggesting me the functions to perform this process? Thank you! (I will try playing with some functions to perform the temporal_coherence_mask first. Hope my progress aligns with yours)

david-ncu2019 avatar Oct 13 '24 14:10 david-ncu2019

Hi @david-ncu2019

If the individual patches have valid mask ps, then there was a problem during concatenate step I can tell you more if I see the messages output after running concatenate. Also please delete the file before running this step. I don't think there is any problem in either isce or miaplpy but it might be that your run did not complete successfully and when you try running it again, it checks for the file to exist before regenerating it. I can tell more if I you run and send me output messages For the temporal coherence you can use mintpy function: generate_mask.py temporal_coherence_average.tif -m 1 -o maskPS.h5

mirzaees avatar Oct 14 '24 01:10 mirzaees

Dear @mirzaees ,

Thank you for your response!

I think I will rerun the phase_linking and concatenate_patches with a very small area to test it again, then provide you the output messages.

david-ncu2019 avatar Oct 14 '24 06:10 david-ncu2019

Dear @mirzaees ,

Sorry for my late reply.

I have re-executed the process to get the output messages for each step, from load_data to concatenate_patches. I have attached the output figures and log files for your review.

I would greatly appreciate it if you could take some time to look over them. Thank you very much for your help.


Figure 1 shows the amplitudes of the selected area over time, highlighting a town with buildings and bridges. slcStack selected_area

Figure 2 displays the results after running concatenate_patches: tempCoh_average tempCoh_full

Even though the selected area shows high values of full and average temporal coherence, the amp_dispersion_index and top_eigenvalues results reveal only a few observable points. amp_dispersion_index top_eigenvalues

Eventually, the maskPS shows no point. maskPS


Here below are the log messages after running phase_linking and concatenate_patches

phase_linking.txt concatenate_patches.txt

david-ncu2019 avatar Oct 28 '24 07:10 david-ncu2019

Hi @david-ncu2019 Thanks for sending me your results, I am suspecting of the minimum number of SHPs you are using for your TSX data. The default value (10) is selected for Sentinel data but for TSX it is probably higher. I suggest you doing an statistical analysis similar to Figure 20 in the paper: https://www.sciencedirect.com/science/article/pii/S0098300422002400

in your inverted folder there is the phase_series.h5 which contains SHP and the temporal coherence. using the first band (average temporal coherence), select pixels where the average temp coherence is above 0.9 (or 0.98 like the paper) for example and plot the histogram of SHP for those pixels. That plot can tell you what number is better to use as your minimum number of SHPs.

mirzaees avatar Oct 29 '24 20:10 mirzaees

Dear @mirzaees,

Thank you very much for your suggestions!

Following your instructions, I analyzed the phase_series.h5 file, plotted the histogram for the average temporal coherence array, and experimented with SHP histograms at various temporal coherence thresholds.

The array shape is (2051, 1478).

Temporal Coherence Threshold Number of Pixels Total Pixels
0.6 289,351 3,031,378
0.65 151,331 3,031,378
0.7 69,880 3,031,378
0.75 27,795 3,031,378
0.8 9,407 3,031,378
0.85 2,884 3,031,378
0.9 634 3,031,378
0.95 75 3,031,378

avgtempcoh_histogram SHP_histograms

Based on these histograms, it's quite challenging for me to pick a suitable threshold.

I have tried modifying SHP searching window (range=azimuth=30), and PsNumShp=100. The number of points shown up in amp_disp_index and top_eigenvalues did increase, but not significantly, and the maskPS.h5 still showed nothing.

I'd greatly appreciate any guidance or suggestions you might have, just a hint is great for me!

Thank you so much for your time and support!

david-ncu2019 avatar Nov 01 '24 10:11 david-ncu2019