ANSI-C program: temp_mod_pt.c
NAME
temp_mod_pt -
Calculate linear regression of differential interferometric phase
with respect to temperature difference between SLCs and the
related model for the temperature dependent phase
SYNOPSIS
temp_mod_pt <plist> <pmask>
<SLC_tab_temp> <itab> <pres> [mode]
[pdph_dtemp] [pph_offset] [pph_model] [pph_sigma] [dttab]
[temp_max]
<plist> | (input) point list (int) |
<pmask> | (input) point data stack of mask values (uchar, set to - to accept all points) |
<SLC_tab_temp> | (input) table of SLC filenames, SLC parameter
filenames, and temperature values (C) (text) SLC SLC_par Temperature C |
<itab> | (input) table associating interferogram stack records
with pairs of SLC stack records (text) pSLC_rec1 pSLC_rec2 itab_rec_num switch_flag |
<pres> | (input) unwrapped phase data stack for each interferogram containing the temperature dependent phase (float) |
<mode> | phase model processing mode: 0: a1*temp[i] phase model has slope only, without temperature difference correction for each interferogram layer 1: a0 + a1*temp[i] phase model has slope and intercept, without temperature difference correction for each interferogram layer 2: a1*temp[i] phase model has slope only, with temperature difference correction for each interferogram layer 3: a0 + a1*temp[i] phase model has slope and intercept, with temperature difference correction for each interferogram layer (default) |
[pdph_dtemp] | (output) derivative of phase w.r.t. temperature for each point (radians/degree C, float) (enter - for none) |
[pph_offset] | (output) phase offset of linear regression of phase w.r.t. temperature (radians, float) (enter - for none) |
[pph_model] | (output) linear model for the phase due to temperature difference for each interferogram layer (radians, float) (enter - for none) |
[pph_sigma] | (output) standard deviation of the linear regression residual phase for each point (radians, float) (enter - for none) |
[dttab] | (output) table of delta temperature corrections for each interferogram layer (text) (enter - for none) |
temp_max | maximum temperature difference for an SLC pair such that the interferometric phase is included in the regression (default: unlimited) |
temp_mod_pt pt - SLC_tab_temp itab pres1 3
pdh_dtemp - pph_mod pph_sigma dttab -
It is known that structures expand and contract due to changes in the local temperature and solar illumination. These changes in the structure dimensions lead to changes in the distance of point targets to the radar. This manifests as changes in the absolute propagation phase along the line of sight. Since SLC data in IPTA analysis is from single point targets, we can observe a thermal contribution to interferometric phase proportional to the difference in temperatures when the image data were acquired. The program temp_mod_pt performs a linear regression on the residual interferometric phase with respect to the difference in scene temperatures for the days when the two SLC images were acquired. The slope of the linear regression is the derivative of the phase with respect to temperature difference.
The SLC_tab_temp has an additional third column with the average scene temperature in degrees C near to the time when the SLC data were acquired. An example of the SLC_tab_temp used in an example is shown below:
20071230.rslc
20071230.rslc.par 8.0
20080110.rslc 20080110.rslc.par 13.0
20080121.rslc 20080121.rslc.par 9.0
20080212.rslc 20080212.rslc.par 8.0
20080223.rslc 20080223.rslc.par 11.0
20080305.rslc 20080305.rslc.par
8.0
The third column of the SLC_tab_temp file is read by temp_mod_pt to determine the scene temperature. The SLC images used in the stack of interferograms is specified in the itab file and the residual unwrapped interferometric phase after removal of height related phase and tropospheric phase is stored in the pres file. Each layer in the pres file is the differential interferometric phase for interferogram using SLCs in the SLC_tab. The program temp_mod_pt prints out the temperature and date data for each interferogram. A section of the table for the first 6 interferograms in the stack of a test example is shown below:
interf #SLC-1 #SLC-2
Date-1
Date-2 Temp-1
Temp-2 Diff-Temp
**************************************************************************
1
40 1 2010 6
8 2007 12 3 21.000
8.000 -13.000
2
40 2 2010 6
8 2008 1 10 21.000
13.000 -8.000
3
40 3 2010 6
8 2008 1 21 21.000
9.000 -12.000
4
40 4 2010 6
8 2008 2 12 21.000
8.000 -13.000
5
40 5 2010 6
8 2008 2 23 21.000
11.000 -10.000
6
40 6 2010 6
8 2008 3 5 21.000
8.000 -13.000
Notice that this is a single reference stack with SLC 40 as the reference scene. Note that the reference scene in June is quite a bit warmer than the scenes acquired early in the year. The model for the temperature dependence of the interferometric phase can be calculated either with or without a constant offset. The value of the model phase for each point is given by the equation:
where is a phase constant and
is the derivative of phase with respect to temperature
difference for each point with index i. The slope and phase constant are
obtained by least-squares fit of the residual phase with respect
to difference temperature of each interferogram with index
k. The standard
deviation of the differences between the model and the
phase values is stored in an array. The physical basis for this
model is that thermal expansion is a linear function of
temperature. The degree of expansion is dependent on the material
properties, dimension of the structure, and the temperature
difference.
For single-reference stacks the phase constant should be included in the phase model because the indicated temperature will not exact for many points causing a phase offset. In the case of multi-reference stacks the constant should rather be set to 0. Below is a part of the screen output for different points in the stack shown the phase offset, phase slope, and standard-deviation of the phase relative to the regression.
point:
0 offset (rad): -0.112 rad/deg.:
-0.017 std.dev.(rad): 0.993
point: 9535 offset (rad):
-0.024 rad/deg.: -0.005
std.dev.(rad): 0.572
point: 19070 offset (rad):
-0.154 rad/deg.: -0.026
std.dev.(rad): 0.703
point: 28605 offset (rad):
-0.018 rad/deg.: -0.002
std.dev.(rad): 0.329
point: 38140 offset (rad):
-0.187 rad/deg.: -0.032
std.dev.(rad): 0.960
point: 47675 offset (rad):
-0.205 rad/deg.: -0.034
std.dev.(rad): 0.778
point: 57210 offset (rad):
0.003 rad/deg.: 0.003
std.dev.(rad): 0.612
point: 66745 offset (rad):
0.108 rad/deg.: 0.018
std.dev.(rad): 0.654
If there is an offset in the average temperature difference of a single interferogram layer, there will be a bias in the phase constant values away from zero. Averaging over all the points in the layer an average temperature offset can be estimated by averaging the weighted values over all the points:
where the weights wi for each point derived from the sensitivity and standard deviation of the phase relative to the point phase model:
Sample offsets calculated for the first 6 layers of the interferogram stack from the screen output is shown below.
The values for the first 6 interferograms in the stack are shown below:
itab
tdiff
tdiff1
delta std_dev
*******************************************************
1 -13.0000
-18.0009 -5.0009
6.761e-02
2
-8.0000 -1.8846
6.1154 5.588e-02
3
-12.0000 -4.6286
7.3714 4.955e-02
4 -13.0000
-14.2420 -1.2420
4.903e-02
5
-10.0000 -1.3900
8.6100 4.997e-02
6
-13.0000 -4.7219
8.2781 4.936e-02
The standard deviation of the weighted temperature corrections estimated for the interferometric phases of each point can be calculated using:
The standard deviation of the average of the all the
individual offsets of the offset scales as if all the offsets have the same average. However
the since the temperature correction for a layer is most likely
not a constant over the scene, this assumption is not correct and
there the actual standard deviation can be an order of magnitude
greater than the value that is printed in the table. The
value in the table is average weighted value
divided by the number of points where the slope is
greater than .02 radians/deg.
In the case where the average temperature correction is estimated for each interferogram (modes 2,3), the phase model is recalculated using the updated average temperature difference tdiff1.
Input to the program consists of the following data and parameters
ipta.h, SLC_tab format, itab file format, plist file format, expand_data_pt, def_mod_pt, temp_mod_sim_pt