Gamma ISP: Reference Manual


mcf

ANSI-C program: mcf.c, mssptr.c, mssptr.c, m_tri_init2.c, mcf2.h.

NAME
mcf - Phase unwrapping algorithm using Minimum Cost Flow (MCF) and triangulation

SYNOPSIS
mcf <interf> <wgt> <mask> <unw> <width> [tri_mode] [roff] [loff] [nr] [nlines] [npat_r] [npat_az] [ovrlap] [r_init] [az_init] [init_flag]

<interf> (input) interferogram (*.int,*.flt)(fcomplex)
<wgt> (input) weight factors (0 -> 1.0) file (float)(enter - for uniform weight)
<mask> (input) validity mask (SUN raster or BMP format, value 0 -> pixel not used)(enter - if no mask)
<unw> (output) unwrapped phase image (*.unw)(float)
<width> number of samples/row
[tri_mode] triangulation mode
  0: filled triangular mesh (default)
  1: Delaunay triangulation
[roff] offset to starting range of section to unwrap (default: 0)
[loff] offset to starting line of section to unwrap (default: 0)
[nr] number of range samples of section to unwrap (default(-): width-roff)
[nlines] number of lines of section to unwrap (default(-): total number of lines -loff)
[npat_r] number of patches in range
[npat_az] number of patches in azimuth
[ovrlap] overlap between patches in pixels (>= 7, default(-): 512)
[r_init] phase reference range offset (default(-): roff)
[az_init] phase reference azimuth offset (default(-): loff)
[init_flag] init_flag  flag to set phase at reference point
   0: use initial point phase value (default)
   1: set phase to 0.0 at initial point

EXAMPLE
mcf 19990915_19991020.diff 19990915_19991020.cc - 199990915_19991020.unw 2456

Unwraps the differential interferogram 19990915_19991020.diff, using the coherence file 19990915_19991020.cc as weights for the MCF solution. No mask file is provided, consequently all non-NULL values are unwrapped. The interferogram width is 1024 samples. Output is written to 01608_02109.unw. A filled triangular mesh is used for the unwrapping.

mcf 19990915_19991020.diff 19990915_19991020..cc 19990915_19991020.cc.mask.ras 19990915_19991020.unw 1024 1 128 128 768 768 2 2 256

Similar to above, but now only a 768x768 section of the input interferogram is unwrapped. A validity mask (19990915_19991020.cc.mask.ras) is used to indicate areas which should and areas which should not be unwrapped (for example because of too high phase noise). A Delaunay triangulation is used in this case instead of the default filled triangular mesh, because the data has gaps. The unwrapping is done in 4 patches (2 in range and 2 in azimuth) with an overlap of 256 samples between patches.

DESCRIPTION

mcf is a standalone phase unwrapping program for complex input data.

Triangulation is used to generate a network describing the data values. This has two main advantages, namely, that the network is two times denser than the rectangular network and that spatially incomplete data can easily be dealt with. Gaps in the data can be specified using a validity mask file. This Sun raster or BMP format file has values of (0,0,0) in regions that will not be unwrapped. Only points with non-zero values will be triangulated and unwrapped. Delaunay triangulation is used to generate an optimized irregular triangular network.

The minimum cost flow (MCF) algorithm is used to minimize the total cost associated with phase discontinuities in the scene associated with noise, and layover. The user supplies weights (usually related to the coherence) used to calculate where discontinuities (i.e. network flow) are preferred. Regions of low weight have low costs for phase jumps whereas areas of high cost tend to exclude such discontinuities in the unwrapped phase.

Each triangle is a node in the network. If integration of the phase around a triangle indicates a a positive phase discontinuity (residue) then the node is marked as contributing flow to the network. A negative phase discontinuity at a node is marked as accepting flow from the network. The cost of flow in an arc connecting adjacent nodes is derived from the weight file provided. Typically, the interferometric correlation is used as weight file. The MCF algorithm solves for the flow in the arcs that minimizes the net cost. The implemented MCF solution is based on the successive shortest path (SSP) method.

Correlation values are usually used for the weighting function. Be sure to specify the starting sample position and the number of range and azimuth samples to unwrap such that weights values are available. Because of the window function used to estimate the correlation, there will be a few pixels at the edge of the correlation that will be set to 0. Using the mask file can take care of this detail in the operation of the unwrapping. The program rascc_mask can be used to generate a mask file, with pixel values set to 0 for regions of the image that have correlation values below a user specified threshold.

The triangulation network structure can also be used to reduce the amount of data to be unwrapped. Areas of high phase noise can be masked out by accordingly defining a validity mask. This process can also be supported by adaptive reduction of the sampling. In areas of low phase variation larger sample spacings are acceptable. This may be used to reduce the network size to allow global optimization, even for large data sets. The program rascc_mask_thinning supports this.

To unwrap images larger than can be processed with the available computer RAM, the input is divided into patches in range and azimuth. For the default patch size (1024x1024), the memory requirements is approximately 320 MB. The results from unwrapping the individual patches is combined by comparing the phase values within the overlapping regions of the patches.

The user can independently specify the number of patches in range and azimuth, and the size of the the overlap on the command line. Generally it is advised to select patches as large as possible that do not exceed the RAM resources of the machine. Furthermore, it is recommended to reduce the number of azimuth patches. If a phase unwrapping error is evident on the patch boundary, changing the number patches or the patch overlap may eliminate the error. The overlap between patches is an important parameter. Large overlaps such as half the patch size permit to minimize errors. Attempt if possible, to select the patch boundaries to lie in areas of high fringe visibility and minimal terrain.

SEE ALSO
rascc_mask, rascc_mask_thinning, interp_ad


© Copyrights for Documentation, Users Guide and Reference Manual by Gamma Remote Sensing, 2005. UW, CW, last change 21-Sep-2005.