TopSAR Processing

The source code can be found on github:

These are also useful links

Please have a look at the Developer Guide:

Thank You So Much Dear ABraun for your kind reply

hi, anyone plz tell me how to fix this

Please install the latest updates.

1 Like

thank you, I will check

i have updated the SNAP with latest version but still the problem exist. Please help me out

Does it work with the standard operator, so first TOPS Split and then Orbit applied separately?

Did you restart SNAP so that the downloaded updates got installed? The error refers to an obsolete website that no longer exists and the updates should have fixed that.

I tried, but it does not work

yes i did restart many times but does not work

What if I would like to apply band math to do a coherence mask for only the high coherence pixels to be displayed across a series of coherence maps. Should I do the coherence mask specifically after the terrain correction as you have thankfully recommended?

I am asking because I have done coherence mask with minimum and maximum values and those values have changed after the range doppler terrain correction due to the bilinear interpolation resampling method.

PS. I am trying to find a proper reference point for GACOS tropospheric correction.

It doesn’t matter if you create the coherence mask before or after the terrain correction. The point of the mask is simply to reject low-coherence pixels

Another question if you wouldn’t mind. This is what the stack looks like in the bandmath expression editor. Is there a method to reject correlated pixels whose value get below a threshold across the entire series?

I wanted to display only the pixels whose coherence value remain above let’s say 0.97 in all the input coherence maps inside the stack

You can average the entire stack to get the mean coherence value and then create the mask using the threshold that you prefer.
You can use logical expression like
If ( coh_band1 and coh_band2 and and coh_band3 and ………. so on) > [threahold] then 1 else NaN

Of course the above mentions are two different things giving two different results.

you mentioned to correlated pixels. This is something you can do for example using R .

That’s an amazing tip. I have already tried the second suggestion and I really appreciate validating it. I have created a stack using the S1 TOPS backgeocoding operator and then have
applied this bandmath expression coherence_filtering_expression.txt (2.3 KB) on the coherence bands that were created during interferogram formation.But I was confused with the statistics, because the minimum and maximum value for the resultant band after applying this band math was supposed to be 0 and 1 respectively, but it was 0 and 4.9E-324 or 0 and 0 display range.


I have made that coherence mask before terrain correction and after terrain correction using both resampling methods the nearest neighbour and bilinear interpolation, and yet all results are the same
I have also tried to reduce the threshold in order to include more pixels but I have got the same result every time.
Does choosing a different master input while stacking matter?

  • Have you checked coherence maps one by one to validate that are appropriate computed? maybe one or more are faulty.

  • In your script you don’t have brackets "if (coh1 and coh2 and…)>= [threshold] then 1 else NaN.

  • The coherence value 0.97 as a threshold is to much high.

-Since you are interesting to approach stable coherence points, I believe that the mean or median value of the entire stack seems a more appropriate way.

You are right, I have checked the previous stack and some values were not right. Most original coh. bands were fine except this one
But I have created yet another stack, which have included that coherence map above regardless of its minimum value, using the (Create Stack) instead of the (S1 TOPS Back-Geocoding) this time, and I have used the Nearest neighbor resampling method either way. The Create Stack operator gave results that looked fine unlike the latter.

It didn’t make any difference having brackets or no brackets but I appreciate the notice, I will put brackets next time since it’s the proper way to state it

I thought high-coherence pixels would represet areas with minimal temporal coherence due to minimal physical changes and atmospheric fluctuations, especially if the coherence value remains high across the entire series.

I would appreciate if you could tell me how I may apply this approach on snap? Is this the operator I should use? If so, Then its input must be the stack I have created using the (create stack) operator.

Thanks again for your cooperation.