Re: [train_support] Which parameters should I use to evaluate the performance of atmospheric correction?

Skip to first unread message

David Bekaert

Oct 21, 2016, 12:01:59 PM10/21/16
Hi Tom,

This is an excellent question and open for lots of discussion. I think each method has some good metrics, but each one has its limitations too. I tried a lot of the different options myself. Below i give few pointers but others can add/ contribute their experience too. I also copy in the MAINSAR group as your second question is useful for StaMPS users too.

- correlation coefficient with topography (other studies): Describes the statistics of the dataset and the correction. For me it does not give a good indication on the correction capability, because of noise in the data.
- standard deviation (other studies): Typically this give an indication for reduction in atmosphere for the longer-wavelength, especially when the long-wavelength has slightly larger magnitude than the local variability. For InSAR, you do not observe the longest wavelength, as this is just the reference offset, the strongest impact of error comes from local mis-estimation.
- standard deviation with ramps removed prior to estimation (e.g. Joliviet, 2014): This will put more emphasis on the shorter wavelength. One of the strengths that weather model should be able to correct well are the longer-wavelengths introduced by P and T mainly. Typically the spatial scale at which this standard deviation is calculated is not consistent between interferograms. 
- local slope (e.g. Bekaert, 2015): Depending on the size of the windows one uses, you know the spatial scale you are evaluating the correction capability. By varying the window size you can appreciate the impact of the correction and generate a graph of local slope versus window size. However, at a certain moment if the window size gets to large, then you can expect a spatially varying atmosphere and in that case there is not a single correlation between phase and topography. Also one should be careful with deformation signals.
- power-spectrum (other studies): This is likely the most complete way of evaluating the correction. You look at a certain wavelength and investigate how much a correction has changed the power in the data. You will start to appreciate the correction capability for different spatial wavelength. This method does require to do and FFT and slightly more computation intensive.

Regarding you second question on the oscillator drift, orbit error corrections and APS and how they relate to eachother.
- The oscillator drift for envisat is a known long-wavelength correction in range direction.
It can be removed at any stage of the processing. In StaMPS processing we decide to remove it at the plotting stage.
- If you decide to do remove orbit correction "o" option with envisat, first the oscillator drift is corrected and then a planar correction is estimated on this data. If you decide not to remove any atmosphere at this time, part of the orbit plane correction will contain the long-wavelength atmospheric noise.
- If you decide to remove atmosphere with Envisat (e.g. a weather model which is an independent observation), then first the oscillator drift is removed and then the independent estimate of the APS. Note as this is an independent estimate it is not contaminated by the oscillator drift. This makes me realize, I need to add fix for the phase-based methods using the linear-phase correction for Envisat, which removed an estimate of the oscillator drift prior to the correction estimation.
- If you decide to remove atmosphere and orbit ramps with Envisat, then first the oscillator drift is removed, then the APS, and as last a planar correction is estimated on this data and removed.

It is correct to note, that the "o" option is a long-wavelength correction and does not need to be "orbits" alone.
Note that the planar orbit correction is different depending on how you use them (u-o,u-do,u-dao,o).
In StaMPS they are estimated on the fly, so they are not remove double.

Hope this helps,

On 20 October 2016 at 20:12, Tom <> wrote:
Hi David,
    I was confused that different parameters were used to evaluate the improvement of atmospheric corrections in different publications, such as standard deviation reduction was used in Romain Jolivet (2014), the reduction of local slope K between the interferograms and the topography was used in Bekaert (2015), your paper published in JGR, and RMSE was used in your paper published in RSE. Why these parameters can indicate the performance of the correction? Which one should I use?
   Another question, for Envisat InSAR data, the phase error due to Envisat's oscillator drift, the orbital phase ramps, and some part of the tropospheric delays, they both show a long-wavelength signal. When the phase contributions due to Envisat's oscillator drift and orbital ramps in StaMPS were estimatted and removed, some part of the long-wavelength component of tropospheric delays also contained in the estimates of orbital ramps, so when we use weather model to calculate the tropospheric delays, assuming the delay predicted from weather model are correct, these predicted delays also contained  the long-wavelength component of tropospheric delays, therefore this long-wavelength delay are doubly removed. How to consider this problem?

Thank you.

You received this message because you are subscribed to the Google Groups "TRAIN - Toolbox for Reducing Atmospheric InSAR Noise" group.
To unsubscribe from this group and stop receiving emails from it, send an email to
To post to this group, send email to
Visit this group at
To view this discussion on the web visit
For more options, visit

Engr. Bazgha Jabeen

Jul 19, 2021, 8:47:47 PM7/19/21
Hello everyone,  I have done atmospheric correction using linear method described in TRAIN manual and I am getting following results:

These results are exactly the same as what I got without atmospheric correction. Does it mean that atmospheric correction isn’t done properly or deformation maps(before atmospheric correction) were not varying due to atmospheric error?
Secondly, I tried to implement atmospheric correction using GACOS method described in TRAIN manual and I am getting following error:

although when I run ‘time = str2num(UTC_sat(1:2)) + str2num(UTC_sat(4:5))/60;’ individually in command window it executes without any error.
Can you guide me about how to overcome this error ? 

To unsubscribe from this group and stop receiving emails from it, send an email to
Reply all
Reply to author
0 new messages