Phase Filtering and Unwrapping


One option for phase unwrapping is to use the SNAPHU (Statistical-cost, Network-flow Algorithm for PHase Unwrapping) program developed by Curtis Chen when he was a student at Stanford. The program source code is available from the Stanford website . Note that the v1.4.2 source code may have problems if it is compiled in 64-bit mode, so you may need to use the "-m32" flag in compiling it.

ROI_pac version 3.0.1 (and higher) has Perl scripts that can run the SNAPHU program, including "". You will need to set the environment variable MY_BIN to the directory where you have installed the "snaphu" executable program. The new "" processing script supports "unw_method=snaphu" and "unw_method=snaphu_mcf" specifications in the "int.proc" file.

Classic unwrapper

The classic unwrapping algorithm in ROI_pac is the default and it is based on the Goldstein, Zebker and Werner (1988) paper. It can be selected with "unw_method=old" in the "int.proc" file. Some hints about the unwrapping procedure using the branch-cut algorithm:

Starting point

After calculating residues and and generating the cuts in the image, the unwrapping procedure starts from the center of the scene and grows across the interferogram avoiding crossing cuts. If the starting point of the unwrapping process (by default the center of the scene) happens to be in an incoherent zone, the process stalls at the beginning and none of the image is unwrapped. You can diagnose the problem if you see the message: number of points unwrapped: 0

The remedy to the problem is to add keywords indicating the values of the column and line of the pixel in the image from where to start the unwrapping in the int_****.proc file.

unw_seedx = 
unw_seedy = 

The pixel must be chosen in a large coherent patch of the interferogram.


If the interferogram has large areas where the phase is not coherent, it often happens that only one patch of the interferogram around the starting point is unwrapped and disconnected coherent patches are not. ROI_PAC has the option of defining bridges between disconnected, coherent areas by setting a text file called, placed in the int_**** folder. The file must have one line per bridge with the following format:

col1  row1  col2  row2  ambig

where col1/row1 are the column and row of the starting point of the bridge and col2/row2 indicate the ending point of the bridge. ambig is an integer number indicating the number of cycles between them (=0 if it is the same fringe).

When the file is set, remove all files created after the "cut" file by ROI_PAC and relaunch either (read the command line in the log file) or whole with the keyword "filtered" to start the process at the unwrapping step. Repeat these steps for each new bridge to unwrap the areas of interest in the interferogram.

PhaseFiltUnwrap (last edited 2013-04-26 21:53:05 by wildcard)