Goldstein filtering introducing artifacts around bright targets

I am generating filtered Sentinel-1 interferograms for an area with some bright urban targets.
These targets consistently create cross-like artifacts on filtered interferograms.
I assumed it was some co-registration issue on burst corners but I realized they look like backscatter lobes and you can see on this image of intensity (bottom) the artifacts correspond to the bright targets. I then realized it is not on the unfiltered scene (middle).

I use Goldstein filtering with a windowsize of 5, a coherence threshold of 0.2, alpha of 1 and FFTsize of 64. Pretty much default. I have tried smaller window sizes and changing the alpha factor to 0.7 but it still happens. It happens on multiple scenes with different study areas and it does propagate through to phase unwrapping.

I wonder if someone has come across this before and can recommend better filtering parameters or approach to avoid this issue?

The Goldstein filter takes the FFT of a window, then raises the FFT values to the power alpha. If the FFT is dominated by a single bright target, then the phase of that target will be smeared out with sidelobes like you found. The easiest way to reduce this is to change your alpha to a much smaller value like 0.2.


Thank you for the clear explanation Eric.

I have tried to reduce it before but never went further than 0.5 (which is the default on Gamma software where we didn’t get such artifacts).

All the way to 0.2 did the trick and seems to give an appropriate compromise. The tricky thing with this is that I am running SBAS on the scenes and since bright targets are producing the artifacts but are also more coherent I was actually losing some good phase information due to over-filtering.

This image shows an alpha of 0.7 (top), 0.5 (middle) and 0.2 (bottom). (The window sizes were a bit different too - but I keep them small at 32)

a very heplful comment, thank you @EJFielding!

I always struggled with filter artifacts over urban areas.

As we are talking about it: I have an image pair of COSMO SkyMed (HIMAGE mode, 1m) with a temporal baseline of 1 day, same track. Does anyone have a recommendation for the unwrapping when I want to extract the height of urban areas? There are some new and interesting parameters since snaphu 2.0.1, but am not very experienced with them yet.

The interferogram looks great though

I’m sorry for getting across, but still in SNAP 7. there is an old version of snaphu, v.1,


Or it’s re-written to SNAP under version 1.!

I think this only refers to the unwrapping plugin inside SNAP, which calls the external program (snaphu.exe) anyways.

But I see different author, Authors CS Romania, I don’t now it refers to company or institute to the one mentioned in the link you referred to,

Or it’s re-written to SNAP under version 1.!

yes, CS Romania developed the plugin (version 1.0) which calls snaphu from within SNAP. But snapu itself was developed by Chen and Zebker and is either version 1.4.2 or 2.0.1.

Thanks for clarification, so now from within SNAP Does it call (the plugin) sanphu V.1.4.2 Or 2.0.1.?

I think 1.4.2 but you can download and compile 2.0.1 from the original page and replace it in the installation folder (or simple use the command line).

As for the Goldstein filter - A good compromise to avoid these artifacts seems to be to run the filter twice using a low alpha (0.2) and very small window sizes (32, 7). The second time improves things a bit.

Snaphu v2.0.0 is the default install with apt-get install snaphu on Ubuntu 19.10 (Eoan Ermine), if you like to live on the edge with your Linux distributions. My SNAP / Snappy install works on 19.10.

I am now testing it a bit - the -S option may be interesting, it refines the solution with one tile using the tiled result. And the connected component mask can be grown when using tiles (not possible in 1.4.2).

1 Like

This v.2.0.1 hasn’t snaphu.exe file! how to call it from command line?

Or is it Linux version?, and this case the windows os. users they need cygwin again to run it !

exactly, it has not been published for Windows but you can compile an exe file as described here.

If you are trying to unwrap an interferogram with topographic fringes, then you might get better results with the “topo” mode of Snaphu. This requires that you provide an approximate baseline and a good amplitude image as it uses the amplitude image to try to guess where there may be layover in the interferogram.

The interferogram that you show looks like it will be very difficult to unwrap correctly as the fringe rate is high enough to lose fringes in some steep slopes. You may need to find another pair with a shorter baseline if you need to get a good phase unwrapping in the hills. There are some extremely advanced methods that can help with unwrapping of CSK pairs by doing range band filtering to reduce the fringe spacing, but I am sure that is not possible in SNAP.

1 Like

One way that may help with manipulating fringe spacing is Integer Interferogram Combination, which has been added to SNAP recently. Although you trade off noise.

“It is possible to stack several interferograms of the same site to increase their clarity or reduce the number of fringes, thus creating an integer interferogram combination. The combined interferogram can have a better altitude of ambiguity ha than any of the source interferograms.”