DORIS coregpm problem with PALSAR images
I came across a problem at the coregpm step when processing ALOS/PALSAR SAR interferograms with DORIS. Most of the pairs coregistered OK, however I would get a few bad pairs that refused to coregister correctly. The problem was that too many fine correlation observations were thrown away at the coregistration parameters step, causing the interferogram to be coherent only at the bottom of the image. The problem demonstrates itself with the following messages:
DEBUG : Window 2154: estimated coherence = 0.47 DEBUG : Window 2154: sigma(estimated shift) for coherent cross-correlation = 0.0130739 [pixel] DEBUG : Window 2154: sigma(estimated shift) = 0.0269695 [pixel] DEBUG : Window 2155: estimated coherence = 0.67 DEBUG : Window 2155: sigma(estimated shift) for coherent cross-correlation = 0.00771344 [pixel] DEBUG : Window 2155: sigma(estimated shift) = 0.0133268 [pixel] INFO : coregpm: max(abs(N*inv(N)-I)) = nan INFO : coregpm: overallmodeltest Lines = -nan INFO : coregpm: overallmodeltest Pixels = -nan INFO : maximum wtest statistic azimuth = nan for window number: 40 INFO : maximum wtest statistic range = nan for window number: 40 INFO : Detected outlier: summed sqr.wtest = -nan; observation: 0; window number: 40 PROGRESS: Start iteration 1 PROGRESS: Start iteration 1 INFO : Removing observation 0 from observation vector. INFO : coregpm: polynomial normalized by factors: 1 18432 1 9344 to [-2,2] DEBUG : Setting up design matrix for LS adjustment DEBUG : coregpm: (-1.72503, 1.42931): yL=40.31 yP=-99.31 DEBUG : coregpm: (-1.72503, 1.50551): yL=40.47 yP=-99.41
My first attempt to fixing this problem was increasing the cpm_degree, which is normally set at 2. I went up to degree 5, without any luck. Today I was looking at the DORIS source code and the nan (not-a-number) values in the above message caught my eye. I am still not certain what the cause of these nan values are, but I thought it may be due to the weighting somehow. The default value for cpm_weight is "Bamler", for Richard Bamler's papers presented at IGARSS conference in 2000. Setting the cpm_weight to "none" thus making all observation weighted uniformly solved the problem of estimating coregistration parameters described above. I also tested the linear and quadratic weighting as well, and they perform well as you can see below.
Seems like there is a bug in the code where the weighting for Bamler method is calculated. However, I could not find which part of the code is causing these nan values yet.
The data is over LA, from track 216, frame 660. I noticed the same issue with PALSAR data over King George Island, in Antarctica.
For completeness I ran the coregpm and coherence steps for possible values of cpm_weight, and I am displaying the results below. For coregpm, I am only showing the second temporary plot (dummy2*.ps). You may think that it should be possible to stop DORIS from removing too many point by decreasing the cpm_maxiter setting. I tried that as well and even though more points are left, I was not able to get a good interferogram.
cpm_weight=bamler
 
cpm_weight=quadratic

cpm_weight=linear

cpm_weight=none

Here are the settings for fine coregistration, coregistration parameters, resample and coherence steps used in this analysis.
fc_acc=32 32 fc_initoff=coarsecorr fc_method=magfft fc_nwin=4000 fc_osfactor=32 fc_winsize=64 64 cpm_degree=2 cpm_dump=off cpm_k_alpha=1.97 cpm_maxiter=4000 cpm_threshold=0.4 cpm_weight="AS GIVEN ABOVE" rs_dbow=1216 17216 672 8672 rs_dbow_geo=0 0 0 0 rs_method=knab6p rs_out_format=cr4 rs_shiftazi=on coh_method=refphase_only coh_multilook=1 1 coh_winsize=5 5
Update (20 February 2012):
Discussing the matter with Mahmut Arikan at TU-Delft and further investigation into the matter revealed that there were two observation windows with correlations higher than 1.00 in the result of fine_corr step:
Number posL posP offsetL offsetP correlation ... 3287 14306 8430 40.16 -100.19 0.41 3288 14306 8608 70.59 -129.56 1.01 3290 14485 1066 38.66 -93.69 0.57 ... 3651 15914 2050 38.88 -94.72 0.63 3652 15914 2228 38.88 -94.53 1.02 3653 15914 2405 38.94 -94.97 0.84
Setting the correlation values of these points to something very small by hand (like 0.01), I was able to run the coregpm step with cpm_weight="bamler" and produce the following results:
cpm_weight=bamler, fine coregistration results edited manually.
 
References:
- R. Bamler, "Interferometric Stereo Radargrammetry: Absolute Height Determination from ERS-ENVISAT Interferograms", IGARSS 2000
|