SNAPHU parameters

Hello everyone,

Anybody who can explain the SNAPHU parameters to me and maybe somebody has some experience how they affect the results?

-Number of tiles (do more tiles decrease the accuracy of the deformation results?). My supervisor told me I should try to unwrap the whole interferogram as one but this seems to be impossible.
-row overlap/ column overlap- when should they be more than 0?
-tile cost threshold? (I do not understand what this means at all?)

Does anybody know which parameters to use in order to to unwrap it relatively quickly and still have good accuracy?

To unwrap interferograms on a desktop or laptop with Snaphu, you want to keep the width of the tiles less than about 3000 pixels or you will run out of memory. You can unwrap the whole interferogram as one if it is narrower than that.

More tiles increases the chances of mismatch between tiles.

The tile overlap should be around 200 pixels. I don’t know why the default in SNAP is 0. Snaphu needs some overlap to match the phase between tiles.

I don’t know what the tile cost threshold is.


I’ll update the defaults. Thanks

1 Like

I see snaphu 2.0 is available:

“The -S command: Do single-tile re-optimization after tile-mode initialization.
If this option is specified, snaphu will run in tile mode to
generate an unwrapped solution, which is then used as the ini-
tialization to a single-tile optimization that produces the
final unwrapped output.”

I’m waiting for Windows 64 binaries.

1 Like

Exciting that Snaphu v2.0.0 has been worked on and is being added to Ubuntu 19.10) package lists.
Curious if the -S option can improve solutions in some cases…
Snaphu gives a warning about not enough tile overlap if 200 is used, 400 seems to work.
It is now able to export a connected component file even in tile mode. This is useful for time series packages like MintPy - However, I am not sure how to read this file yet, does anyone know how to read the connected component output (from the -g option) into SNAP?

The Snaphu connected components file is a 1-byte image with the same number of pixels as the interferogram. I am not sure how to read it into SNAP.

I found a workaround using the same reader as Snaphu import.

  • Rename the connected component file with extension .img
  • Copy the unrapped header file that Snaphu export creates to be the header for the connected component file (same name but with .hdr ext).
  • Edit the header file and change data type from 4 (int32) to 1 (unint8).
  • Read using Snaphu import (needs the interferogram again)
  • The connected component band will be named Unw_Phase_ifg_*


I am using snaphu graphical user interface (I don’t know how to use snaphu command based interface).

I am trying to unwrap all the sub swaths (IW1-IW3) at once but am unable to do so. I get the message that says process completed in about 61,000 seconds, but there is no .img file generated, so the process is not complete. Sometimes I also get ‘Out of Memory’ error. I saw this answer about decreasing the width of tiles but I don’t understand how to change the width of pixels in snaphu export step. Can you please elaborate? (Photo of snaphu GUI is attached)

Thank you for help!