ANSI-C program: offset_SLC.c
offset_SLC estimate the range and azimuth registration offset fields using the fringe visibility algorithm (rather than the cross correlation optimization of the detected SLC data used in offset_pwr).
SYNOPSIS
offset_SLC <SLC-1> <SLC-2> <SLC1_par>
<SLC2_par> <OFF_par> <offs> <snr> [rwin]
[azwin] [offsets] [N_OVR] [nr] [naz] [thres] [ISZ]
[pflag]
<SLC-1> | (input) single-look complex image 1 (reference) |
<SLC-2> | (input) (input) single-look complex image 2 |
<SLC1_par> | (input) SLC-1 ISP image parameter file |
<SLC2_par> | (input) SLC-2 ISP image parameter file |
<OFF_par> | (input) ISP offset/interferogram parameter file |
<offs> | (output) offset estimates (fcomplex) |
<snr> | (output) offset estimation SNR (float) |
[rwin] | search window size (in original range pixels, default from OFF_par) |
[azwin] | search window size (in original azimuth pixels, default from OFF_par) |
[offsets] | range and azimuth offsets (ascii format) |
[N_OVR] | SLC oversampling factor (integer 2**N (1,2,4) default = 2) |
[nr] | offset estimation samples in range |
[naz] | offset estimation samples in azimuth |
[thres] | offset estimation quality threshold (default from OFF_par) |
[ISZ] | search chip interferogram size (in non-oversampled pixels, default=16) |
[pflag] | print flag (0:print offset summary default=1:print all offset data) |
EXAMPLE
offset_SLC 1352.slc 1610.slc 1352.slc.par 1610.slc.par
1352_1610.off 1352_1610.offs 1352_1610.snr 4 8 1352_1610.offsets
2 24 24 3.0
estimates range and azimuth registration offsets (offsets of 1610.slc relative to 1352.slc) using the coherence optimization algorithm with 24 x 24 search windows of 4 pixels in range and 8 pixels in azimuth. An oversampling with a factor of 2 is applied.
DESCRIPTION
offset_SLC estimate the range and azimuth registration offset fields of a pair of SLC data using the coherence optimization algorithm.
Throughout the image small SLC data chips are selected to determine the local registration range and azimuth offsets. For each such offset estimation a series of small interferograms with changing offset is constructed. The average coherence of these interferograms is estimated and a two-dimensional least squares fit is used to determine the location of the coherence maximum at sub-pixel accuracy.
The optimum size of the range and azimuth search window searches out a region, large enough to handle the different offsets in the image, yet small enough so that the program execution is not prohibitively long. Typically, large baselines lead to larger changes in range and azimuth offset of the image. Already existing information on the range and azimuth offset is used to guide this search. Such information is found in already existing range and azimuth offset polynomials found in the ISP offset/processing parameter file (estimated for example with the program offset_pwr which can easily handle much larger search windows.
This method of measuring offsets between SLC images is complementary to the intensity correlation method used in offset_pwr. For identical search windows offset_SLC takes significantly longer to execute than offset_pwr, but has the advantage that the offset is actually based on the interferometric phase coherence. Another advantage is that the program can find offsets in areas with essentially no features at all such as snow fields where offset_pwr might fail.
Relatively small search windows and interferogram chip sizes are recommended to increase the efficiency of the algorithm. The coordinates of the image section selected to be processed are relative to SLC-1. For most cases a SNR threshold of 3.0 for the acceptance of an offset leads to good results. In cases of too low coherence the use of an intensity based algorithm is recommended, as supported by the programs offset_pwra and offset_pwr_tracking. But notice that not the average coherence is essential. Local high coherence, for example in urban areas distributed throughout the image, may be sufficient for offset_SLC to find a sufficient number of valid offsets.
Oversampling rates of 1 (no oversampling), 2, 4 are
supported. Usually the default oversampling rate of 2 leads
already yields very accurate offset estimates.
The offset for the fringe visiblity maximum is estimated
using a two-dimensional least squares fit.
The coarse range and azimuth offsets of SLC-2 relative to SLC-1 for the entire image are required. This can be done manually by comparison of image features, or using the program init_offset. The number of image chips used and the search window size can be selected in the the ISP offset/processing parameter file. Recommended values are suggested as default values in the program create_offset.Only samples with fringe SNR above a selected threshold are saved in the offset data file (<pair>.offs) as pairs of floating point numbers and and optionally printed in the text file (<pair>.offsets). Each line of the text file consists of the range and azimuth coordinates azimuth, the range and azimuth offset estimates at that point, and the estimation SNR
The program offset_fit is used to cull the offset field and use the least squares derived polynomial fit for the offset between the two SLC images. The model is then used to calculate the interferogram.
OPTIONS
The offset estimation programs use already existing range and azimuth offset polynomials found in the ISP offset/interferogram parameter file to improve its initial registration offset guess. An iterative use of this feature allows to optimize the efficiency and accuracy of the registration offset estimation. After an initial offset estimation from the orbit parameters (init_offset_orbit) or the data itself (init_offset a first offset polynomial is determined based on estimates calculated with offset_pwr which are efficient using large search windows. With these quite accurate registration polynomials offset_SLC_tracking or offset_pwr_tracking can then be run efficiently on many locations throuoghout the image, using small search windows.
SEE ALSO
typedef_ISP.h, OFF_par, offset_fit, offset_pwr, offset_pwr_trackinginit_offset_orbit, init_offset, create_offset