GAMMA DIFF/GEO Software: Reference Manual
SLC coregistration and resampling using offset polynomials
(SLC_resamp_all)
Perl script: SLC_resamp_all
Description
This is a guide on how to use the
script SLC_resamp_all to resample a
set of SLC images to a common reference SLC scene using a
polynomial offset models in range and azimuth. The resampling
uses range and azimuth offset polynomials that are stored in the
ISP OFF_par file (offset/interferogram parameter file). As
input data the following inputs are required:
1. SLC image data with the ISP image parameter files
2. A table of the SLC images to be resampled and the reference
scene in the form of an SLC_tab. The SLC tab has two columns, one
line per SLC. In the first column is the SLC file name including
the absolute or relative
path to the SLC. In the second column is the SLC parameter file
name including the absolute or relative path to the SLC parameter
file
An example SLC_tab is shown below for 2 SLC images with relative
paths:
slc/19990915.slc
slc/19990915.slc.par
slc/19991020.slc
slc/19991020.slc.par
3. A multi-look intensity MLI image of the scene and the
associated ISP image parameter file
Either include $DIFF_HOME/scripts in the PATH environment
variable or copy the SLC_resamp_all script to the
directory above where the SLCs are located. Next, run the script
without arguments to see the command line arguments:
*** ./SLC_resamp_all
*** Copyright 2014, Gamma Remote Sensing, v4.1 3-Feb-2014 clw
***
*** Resample a set of SLCs to a common reference SLC ***
usage: ./SLC_resamp_all <SLC_tab> <ref_SLC>
<ref_par> <rslc_dir> <RSLC_tab> <mode>
[rflag] [rlks] [azlks] [rpos] [azpos] [npoly]
SLC_tab (input) two column list of
SLC filenames and SLC parameter filenames (including paths)
(ascii)
ref_SLC (input) reference SLC
(including path)
ref_par (input) ISP image
parameter file of the reference SLC (including path)
rslc_dir directory to receive the
resampled SLCs and ISP image parameter files
RSLC_tab (output) RSLC_tab file for the
resampled SLC files
mode processing
mode:
0: create offset parameter files
1: estimate initial range and azimuth offsets using orbit state
vectors
2: measure initial range and azimuth offsets using SLC images
3: estimate range and azimuth offset models using correlation of
image intensities
4: resample SLC images using range and azimuth offset model
rflag flag for
interactive refinement of the resampled SLC:
0: resample and measure residual range and azimuth offsets
(default)
1: interactively improve range and azimuth
offset polynomials and then measure residual offsets
2: no checking of residual offsets
rlks number of
range looks for initial offset estimation (enter - for
default)
azlks number of
azimuth looks for initial offset estimation (enter - for
default)
rpos center of
patch in range (samples) (enter - for default: image center)
azpos center of patch
in azimuth (lines) (enter - for default: image center)
npoly fit polynomial
order (1,3,4,6, default: 3)
n_ovr SLC over-sampling factor for offset
estimation (integer 2**N (1,2,4) default: $n_ovr)
-i "roff azoff" initial values for
range and azimuth offsets, example: "-10 30", default: "- -"
The SLC images should normally all be in one directory, though
the SLC_tab can work with files in different directories. The
output coregistered files all be in the directory specified on
the command line. The SLC_tab can be created using the
script mk_tab.
The different modes represent steps in the processing that must
be performed sequentially. The poly parameter sets the order of
the polynomial model in the call to program offset_fit. The option -i is
used to specify initial values for the range and azimuth offsets
used in modes 2 and 3. The offset values must be bracketed in
double quotes.
Mode 0: Create offset
parameter files for estimation of the offsets
The
first step in the co-registration and resampling process is
creating an offset parameter
file. The offset
parameter file contains the parameters that specifies the
locations where offsets are measured and the range and azimuth
offset polynomials used for resampling the second SLC.
Example:
SLC_resamp_all SLC_tab
rslc/19990915.rslc rslc/19990915.rslc.par geo/hm_dem.rdc mli rslc
RSLC_tab 1
This generates the following call to the program
create_offset:
create_offset
rslc/19960421.rslc.par slc/19960422.slc.par
rslc/19960421_19960422.off < create_offset.in
The inputs to create_offset are derived from
the SLC are the default values as shown below. Here is an example
of the offset parameter file after all processing steps have been
completed:
Gamma Interferometric SAR Processor (ISP)
Interferogram and Image
Offset Parameter File
title: offset
parameters
initial_range_offset:
6
initial_azimuth_offset:
228
slc1_starting_range_pixel:
0
number_of_slc_range_pixels:
2296
offset_estimation_starting_range:
48
offset_estimation_ending_range:
2248
offset_estimation_range_samples:
32
offset_estimation_range_spacing:
70
offset_estimation_starting_azimuth:
48
offset_estimation_ending_azimuth:
5698
offset_estimation_azimuth_samples:
32
offset_estimation_azimuth_spacing:
182
offset_estimation_window_width:
64
offset_estimation_window_height:
128
offset_estimation_threshhold:
7.00
range_offset_polynomial:
5.51269 2.9014e-04 3.2657e-06
0.0000e+00
azimuth_offset_polynomial:
228.46385 -6.3313e-05 6.3504e-06
0.0000e+00
slc1_starting_azimuth_line:
0
interferogram_azimuth_lines:
574
interferogram_width:
1148
first_nonzero_range_pixel:
0
number_of_nonzero_range_pixels:
1148
interferogram_range_looks:
2
interferogram_azimuth_looks:
10
interferogram_range_pixel_spacing:
15.809780 m
interferogram_azimuth_pixel_spacing:
39.907180 m
resampled_range_pixel_spacing:
0.000000 m
resampled_azimuth_pixel_spacing:
0.000000 m
resampled_starting_ground_range:
0.00000 m
resampled_pixels_per_line:
0
resampled_number_of_lines:
0
Mode 1: Measure initial
range and azimuth offsets using orbit information
The
most robust way to estimate the initial offsets between the
images is to use the orbit state vector and SLC timing
information. The ISP program init_offset_orbit determines the
time of closest approach of the two tracks to determine an
estimate of the range and azimuth offsets between the images
Example:
SLC_resamp_all
SLC_tab slc/19960421.slc slc/19960421.slc.par rslc RSLC_tab 0 1 1
1
This results in the following command being
run:
init_offset_orbit
rslc/19960421.rslc.par slc/19960422.slc.par
rslc/19960421_19960422.off
with the result:
initial offset
range (samples): 6 azimuth (lines): 229
Mode 2: Measure initial
range and azimuth offsets using the images
Instead of
or in addition to using the orbits, the initial offset of the
images can be determined using the ISP program init_offset. This step measures
the initial offset between the reference SLC and SLC-2 using an
image patch specified by the user. The location for the
initial estimate is nominally in the image center. If another
location with more topography is desired, the location can be
specified on the command line using the following
parameters that can be entered on the SLC_resamp_all command line:
rlks number of range looks for
initial offset estimation (enter - for
default)
azlks number of azimuth looks for initial
offset estimation (enter - for default)
rpos center of patch for initial
offset estimation in range (samples) (enter - for default: image
center)
azpos center of patch for initial offset
estimation in azimuth (lines) (enter - for default: image
center)
Example:
SLC_resamp_all
SLC_tab slc/19960421.slc slc/19960421.slc.par rslc RSLC_tab 2 1 1
1
This results in the following command being
run:
init_offset
rslc/19960421.rslc slc/19960422.slc rslc/19960421.rslc.par
slc/19960422.slc.par rslc/19960421_19960422.off 1 1 1148 2873
with the result:
offset estimate
(range,azimuth):
5.900 228.353
correlation
SNR: 117.219
output DIFF/GEO
parameter file: rslc/19960421.rslc.par
Mode 3: Estimate range
and azimuth offset models using correlation of image
intensities
In this step, the offsets between the SLC
reference and initial resampled SLC are measured over a grid of
points taking into account the initial offset deterimined in the
previous steps. The values of these offsets are then used to
estimate range and azimuth offset polynomials to resample the
SLC.
Example:
SLC_resamp_all
SLC_tab slc/19960421.slc slc/19960421.slc.par rslc RSLC_tab 3 1 1
1
This results in the following commands and
result:
offset_pwr rslc/19960421.rslc
slc/19960422.slc rslc/19960421.rslc.par slc/19960422.slc.par
rslc/19960421_19960422.off rslc/19960421_19960422.offs
rslc/19960421_19960422.snr
In the output log file rslc/19960421_19960422_resamp.log is
listed the output from offset_pwr
number of offsets above SNR
threshold: 914 of 1024
The range and azimuth offsets as well as the signal to noise
values for the offsets (SNR values) are then used as inputs to
the offset_fit program:
offset_fit
rslc/19960421_19960422.offs rslc/19960421_19960422.snr
rslc/19960421_19960422.off rslc/19960421_19960422.coffs - -
3
with output:
range_offset_polynomial:
5.51269 2.9014e-04 3.2657e-06
0.0000e+00
azimuth_offset_polynomial:
228.46385 -6.3313e-05 6.3504e-06
0.0000e+00
Mode 4: Resample SLC
images using polynomial offset model determined in mode 3 and
generate RSLC_tab
The offset parameter file now
contains the range and azimuth offset polynomials. See the
documentation on offset_fit to understand the different terms in
the polynomials. If the rflag
command line parameter is
set to 1 (offset confirmation) the residual offsets from this
second resampling are measured and a further correction to the
offset model is determined.
Example:
Resampling
using the initial offset correction polynomial:
SLC_resamp_all SLC_tab slc/19960421.slc slc/19960421.slc.par rslc
RSLC_tab 4 1 1 1
generates
the following command:
SLC_interp slc/19960422.slc
rslc/19960421.rslc.par slc/19960422.slc.par
rslc/19960421_19960422.off rslc/19960422.rslc
rslc/19960422.rslc.par
If the rflag parameter has been set, the offsets are remeasured
and a further improvement of the offset polynomials is carried
out:
create_offset
rslc/19960421.rslc.par rslc/19960422.rslc.par
rslc/19960421_19960422_2.off <
create_offset.in
offset_pwr rslc/19960421.rslc rslc/19960422.rslc
rslc/19960421.rslc.par rslc/19960422.rslc.par
rslc/19960421_19960422_2.off rslc/19960421_19960422_2.offs \
rslc/19960421_19960422_2.snr
offset_fit rslc/19960421_19960422_2.offs
rslc/19960421_19960422_2.snr rslc/19960421_19960422_2.off
rslc/19960421_19960422_2.coffs - - 3
With these results for the residual offset between
the resampled SLC and the reference from offset_fit:
final range offset poly.
coeff.:
-0.00347 3.15927e-06
2.47865e-07
final range offset poly.
coeff. errors: 3.39985e-05
1.70438e-08 8.12911e-09
final azimuth offset poly.
coeff.:
0.00160 -3.66268e-06
3.13187e-07
final azimuth offset poly.
coeff. errors: 3.81452e-05
1.91226e-08 9.12061e-09
final model fit std. dev.
(samples) range: 0.0132 azimuth:
0.0148
Next update the offset polynomial with the residual
correction:
set_value
rslc/19960421_19960422.off rslc/19960421_19960422.off
"range_offset_polynomial" " 5.5126900e+00
2.90139e-04 3.26567e-06 0.00000e+00"
set_value rslc/19960421_19960422.off rslc/19960421_19960422.off
"azimuth_offset_polynomial" " 2.2846385e+02 -6.33127e-05
6.35039e-06 0.00000e+00"
Followed by the final resampling of the SLC data and
measurement of the residual offsets:
SLC_interp
slc/19960422.slc rslc/19960421.rslc.par slc/19960422.slc.par
rslc/19960421_19960422.off rslc/19960422.rslc
rslc/19960422.rslc.par
offset_pwr rslc/19960421.rslc rslc/19960422.rslc
rslc/19960421.rslc.par rslc/19960422.rslc.par
rslc/19960421_19960422_2.off rslc/19960421_19960422_2.offs
rslc/19960421_19960422_2.snr
offset_fit rslc/19960421_19960422_2.offs
rslc/19960421_19960422_2.snr rslc/19960421_19960422_2.off
rslc/19960421_19960422_2.coffs - - 3
These are the final residual polynomials for the range and
azimuth offsets:
final range offset poly.
coeff.:
-0.00061 5.07065e-07 4.24556e-08
final azimuth offset poly.
coeff.:
0.00034 -5.37996e-07 3.41833e-08
Offset Error Estimation:
It is essential to have
estimates of the residual error in the resampling for each of the
SLCs. A log file is created for each SLC pair and stored in the
resampled SLC directory. The commands and complete output
of each of the programs is recorded in the log file. In
this particular example there is only one log file since only a
single pair has been co-registered. In this example the SLC data
were resampled 3 times and the residual offsets measured.
The values of the standard deviation of the measurements relative
to the model can be extracted from the log file using the
Linux/Unix grep utility as follows:
grep "final model
fit std. dev." 19990915_19991020_resamp.log
final model fit std. dev. (samples)
range: 0.0205 azimuth: 0.0164
final model fit std. dev. (samples) range:
0.0132 azimuth: 0.0148
final model fit std. dev. (samples) range:
0.0132 azimuth: 0.0149
This indicates that the standard deviation of the offsets in
range and azimuth were improved after the second resampling.
Copyright for Documentation, Users Guide and Reference Manual by Gamma Remote Sensing, 2014.
CW last change 4-Feb-2014.