A guide for using position variation models in Calc/Solve
Leonid Petrov
Abstract:
This document describes the way how to apply external position variation
model(s) in the software system Calc/Solve
Table of contents:
- 1 Overview
- 2 Harmonic site position variations model
- 3 Time series of site position variations
-
- 3.1 How Solve applies site position variations model
-
-
- 3.2 Locking method
-
1 Overview
It was predicted in the 1970-s and 1980-s that various mass loadings
cause site displacements at the level of 1-20 mm. In 90-s analysis of
space geodetic data confirmed this prediction. In the 21-st century it
became an imperative to apply contribution to the observables caused by
mass loading. Computation of site displacements caused by mass loading
is a tedious task which requires significant computer resources. It is
impractical to compute mass loading during analysis of observations.
The practical way of organizing computations is to calculate site
displacements due to mass loading by using a stand-alone program and then
to pass the results of this computation to the analysis software.
Solve allows to apply up to 8 position variations models on the fly during
running of the batch solution. It supports two form of representation of
the site position variations: harmonic model and time series.
2 Harmonic site position variations model
Harmonic model specifies displacements of each individual site
in this form:
/ \
| sum_i Up_cos_i * cos( arg_i(t) ) + Up_sin_i * ( arg_i(t) ) |
D_uen = | sum_i East_cos_i * cos( arg_i(t) ) + East_sin_i * ( arg_i(t) ) |
| sum_i North_cos_i * cos( arg_i(t) ) + North_sin_i * ( arg_i(t) ) |
\ /
where arg_i(t) = H0_i + H1_i * (t - J2000.0) + H2_i/2 * (t - J2000.0)**2
H0_i is the phase of the i -th harmonic
H1_i is the frequency of the i -th harmonic
H2_i is the acceleration of the i -th harmonic
t is time in TDB scale
J2000.0 is the fundamental epoch J2000 ( 2001.01.01_12:00:00 in TDB scale )
Traditional form of representation of tidal constituents (Doodson,
Cartwright & Taylor, Hartmann & Wenzell, etc. ) can be easily transformed
to this form. Moreover, non-tidal harmonic site displacements, f.e. annual
of diurnal site position variations can be represented in this form as well.
Solve reads the model of harmonic site position variations from the
external file in HARPOS format. Specifications of HARPOS format can be
found in $MK5_ROOT/help/harpos_format.txt
The external file specifies displacements of sites which are not
necessarily exactly coincides with VLBI stations. Although each harmonic
site position variations file contains names of each site, Solve ignores
these names. It reads all sits and during processing of each VLBI station
finds the site which is the closest to that station. If the distance
between the VLBI station and the closest site exceeds the limit defined
in the constant NEA__PSV from $MK5_ROOT/include/solve.i file, Solve
considers that no matching site in harmonic site position displacement
file was found. Otherwise, it applies position variations for the
station which is the closest to the site from the harmonic position
variations file.
3 Time series of site position variations
The anharmonic site position variations can be presented as time series.
Solve supports the models of site position variations in the form of time
series with equal spacing. The set of site position variations in BINDISP
format and the summary file of this model should be located in the special
directory. No other files can be in that directory. The format of BINDISP
files can be found in $MK5_ROOT/help/bindisp_format.txt . The format
of the BINDISP_SUMMARY file can be found in
$MK5_ROOT/help/bindisp_summary_format.txt
Each site position variations file contains the site name, site
coordinates, the range of time epochs, duration of the sampling interval,
specifiers of the format of internal representation of binary data as well
as the series of site position displacements for X, Y and Z coordinates in
a crust-fixed reference frame. The files consist of record of fixed length,
so Solve reads information from these files using direct access method.
The summary file does not contain any new information. It keeps in ASCII
format information extracted from the headers of all site position variation
files in BINDISP format found in that directory. This file can be inspected
by an analyst. Solve parses this file in order to reduce overheads related
with reading a bunch of site position variation files.
Similarly to the external file in HARPOS file, the files of site position
variations in BINDISP form specifiy displacements for sites, which are not
necessarily coincide with VLBI stations. Solve matches site and VLBI stations
using the same technique as it does in parsing of site position variations
in HARPOS format.
3.1 How Solve applies site position variations model
External site position variations models can be applied only in batch mode.
In the beginning of the run Solve parses the keyword, checks syntax, checks
whether the files exist and then loads all external model files. In the case
of harmonic site position variations it parses the input file and saves
in memory arrays of site names, site coordinates, harmonic names, phases,
frequencies and acceleration of all harmonics, as well as sine and cosine
amplitudes of site displacements. It transforms the displacements from the
topocentric UEN reference system to the crust-fixed XYZ reference system on
the fly. If Solve restarts it re-does this operation. In the case of time
series of site position variations Solve parses the summary files and puts
results of parsing in the internal arrays kept in memory.
Solve uses this information in processing each session. First, it
computes site position variations at the grid of equidistant nodes around
the time interval of the session. The number of nodes is defined by the
M__PSV constant from $MK5_ROOT/include/solve.i . The first node has the
time epoch OVH__PSV seconds less than the nominal start of the session.
The last node has the time epoch OVH__PSV seconds more that the nominal
end of the session. The constant OVH__PSV is defined in
$MK5_ROOT/include/solve.i . In the case of harmonic model Solve computes
displacement for each node of the grid before processing the first
observation. If displacements are defined by time series, Solve computes
site displacements for each point of the grid using interpolation, linear
or spline, as it was specified for that model in the batch control file.
By another words, Solve re-grids time series.
Initial grid -x--------x--------X--------X--------X--------X--------x--------x-
Secondary --------------------o--o--o--o--o--o--o--o--o---------------------
grid
---------------------***********************----------------------
Session interval
The nodes of the initial grid, on which the time series of apriori site
position variations is defined, are selected in such a manner that the time
epoch of the first node of the grid just precedes the time epoch of the first
node of the secondary grid. The time epoch of the last node of the initial
grid just follows the time epoch of the secondary series. In the case of spline
interpolation two nodes before the first node and two nodes after the last
node of the initial grid are added if data are available. Site position
displacements in the time epochs of the secondary grid are computed by using
linear or spline interpolation on the basis of the values in the nodes of the
initial grid.
First, Solve computes site position displacements at the nodes of the
secondary grid for all models with linear interpolation and sums them
together. Then Solve does the same with all models which require spline
interpolation. As a result two arrays of site displacements with the time
epoch at the nodes of the secondary grid for each station, each components
are created: one for all models which require linear interpolation, another
for all models which requere spline interpolation. In addition to that, Solve
computes coefficients of cubic interpolating spline for the displacements
models which require spline interpolation. Of course, one of these arrays of
displacements can be zero if all models require linear interpolation or
all models require spline interpolation.
During processing of observation Solve uses these arrays of site position
displacements. If linear interpolation is requested then it interpolates
between the nodes of the secondary grid. If spline interpolation is requested,
it uses coefficients of spline interpolation over the nodes of the secondary
grid which were computed earlier.
3.2 Locking method
Solve takes into account the fact that the time series of site position
variations can be updated asynchronously, i.e. during Solve execution time.
After parsing batch control file Solve saves the date of the last modification
of the BINDISP summary file. Before processing each session it checks the
date. If the last modification date was changed, Solve re-reads the summary
file. In addition to that Solve, checks whether the directory with the binary
site position displacements time files contains the read lock file. If the
read lock file exists, it checks how old the read lock file is. If the read
lock file is not stale, Solve sleeps and checks either whether the read lock
file is gone or it becomes too old. If the read lock file becomes too old,
Solve removes it. Then it creates the write lock file, reads necessary files
with time series of site displacements and deletes the write lock file which
it has created. The names of the lock files and duration of waiting time are
defined in the file $MK5_ROOT/include/bindisp.i .
From the other side Solve expects "courtesy" from the asynchronous process
which creates the time series of site displacements. Solve expects that such
a process does not write into the BINDISP or the summary file directly, since
this operation maybe too lengthly. Instead of that, that process should write
into the temporary files, then wait for disappearing (or becoming too old)
the write lock files, then it should set read lock, wait for a while, and
then very quickly rename files. After that the process should, of course, not
forget to remove the read lock file. Surely, Solve assumes, that the files of
site position variations are changed onlu by adding several new points at the
end of the files, and the previously defined points are not changed. Otherwise,
statistics computation may be incorrect.
No locking mechanism is implemented for changes of harmonic site position
variations files, since these files are read only once at the beginning of the
run.
Questions and comments about this guide should be sent to:
Leonid Petrov ( Leonid.Petrov@lpetrov.net )
Last update: 2004.07.25