Observation

This class set up the oberservation equations in linearized Gauss-Makoff model \[\label{gmm} \M l = \M A \M x + \M e\qquad\text{and}\qquad\mathcal{C}(\M e) = \sigma^2\M P^{-1}. \]The observations are divided into short data blocks which can computed independently and so easily can be parallelized. Usually this data blocks are short arcs of a satellites orbit. In most cases the unknown parameter vector contains coefficients of a gravity field parametrization given by parametrizationGravity. Additional parameters like instrument calibrations parameters are appended at the end of the vector $\M x$. It is possible to give several observation vectors in one model.

The observations within each arc are decorrelated in the following way: In a first step a cholesky decomposition of the covariance matrix is performed \[ \M P^{-1} = \M W^T\M W, \]where $\M W$ is an upper regular triangular matrix. In a second step the transformation \[\label{dekorrelierung} \bar{\M A} = \M W^{-T}\M A\qquad\text{and}\qquad \bar{\M l} = \M W^{-T}\M l \]gives an estimation from decorrelated observations with equal variance \[\label{normal.GMM} \bar{\M l} = \bar{\M A} \M x + \bar{\M e} \qquad\text{and}\qquad \mathcal{C}(\bar{\M e})= \sigma^2 \M I. \]Usually the arc depending parameters are eliminated in the next step and not mentioned for the parameter names in the following.

PodVariational

The observation equations for precise orbit data (POD) are formulated as variational equations. It is based on inputfileVariational calculated with PreprocessingVariationalEquation. Necessary integrations are performed by integrating a moving interpolation polynomial of degree integrationDegree.

The kinematic positions as pseudo observations are taken from rightHandSide and should not given equally spaced in time. The observation equations are interpolated to these times by a moving polynomial of degree interpolationDegree.

The accuracy or the full covariance matrix of the precise orbit data is provided in covariancePod and can be estimated with PreprocessingPod.

accelerateComputation: In the event that the sampling of the kinematic orbit is much higher than the sampling of the variational equations (e.g. 1 second vs. 5 seconds) the accumulation of the observation equations can be accelerated by transforming the observation equations \[ \M l = \M J \M A \M x + \M e, \]where $\M J$ describes the interpolation of the sampling of the variational design matrix $\M A$ to the sampling of the observations $\M l$ with more rows than columns. The QR decomposition \[ \M J = \begin{pmatrix} \M Q_1 & \M Q_2 \end{pmatrix} \begin{pmatrix} \M R \\ \M 0 \end{pmatrix}. \]can be used to transform the observation equations \[ \begin{pmatrix} \M Q_1^T \M l \\ \M Q_2^T \M l \end{pmatrix} = \begin{pmatrix} \M Q_1^T \M R \\ \M 0 \end{pmatrix} \M A \M x + \begin{pmatrix} \M Q_1^T \M e \\ \M Q_2^T \M e \end{pmatrix}. \]As the zero lines should not be considered the computational time for the accumulation is reduced. This option is not meaningful for evaluating the residuals such in PreprocessingPod.

The following parameters with parameter names are set up:

NameTypeAnnotation
rightHandSide
sequenceinput for observation vectors
inputfileOrbit
filenamekinematic positions as observations
inputfileVariational
filenameapproximate position and integrated state matrix
ephemerides
ephemerides
parametrizationGravity
parametrizationGravitygravity field parametrization
parametrizationAcceleration
parametrizationAccelerationorbit force parameters
integrationDegree
uintintegration of forces by polynomial approximation of degree n
interpolationDegree
uintorbit interpolation by polynomial approximation of degree n
accelerateComputation
booleanacceleration of computation by transforming the observations
covariancePod
covariancePodcovariance matrix of kinematic orbits

PodIntegral

The observation equations for precise orbit data (POD) of short arcs are given by \[ {\M r}_\epsilon(\tau) = {\M r}_A(1-\tau) + {\M r}_B\tau - T^2\int_0^1 K(\tau,\tau') \left(\M f_0(\tau')+\nabla V(\tau')\right)\,d\tau' \]with the integral kernel \[ K(\tau,\tau') = \begin{cases} \tau'(1-\tau) & \text{for }\tau'\le\tau \\ \tau(1-\tau') & \text{for }\tau'>\tau \end{cases}, \]and the normalized time \[ \tau = \frac{t-t_A}{T}\qquad\text{with}\qquad T=t_B-t_A. \]The kinematic positions ${\M r}_\epsilon(\tau)$ as pseudo observations are taken from rightHandSide. From these positions the influence of the reference forces $\M f_0(\tau)$ is subtracted which are computed with the background models in rightHandSide. The integral is solved by the integration of a moving interpolation polynomial of degree integrationDegree. The boundary values ${\M r}_A$ and ${\M r}_B$ (satellite's state vector) are estimated per arc and are usually directly eliminated if keepSatelliteStates is not set.

The unknown gravity field $\nabla V(\M r, t)$ parametrized by parametrizationGravity is not evaluated at the observed positions but at the orbit given by inputfileOrbit. The same is true for the reference forces. The linearized effect of the gravity field change by the position adjustment is taken into account by gradientfield. This may be a low order field up to a spherical harmonics degree of $n=2$ or $n=3$.

The inputfileOrbit, inputfileStarCamera, and inputfileAccelerometer must be synchronous and must be given with a constant sampling and without any gaps in each short arc (see InstrumentSynchronize). The kinematic positions ${\M r}_\epsilon(\tau)$ should not given equally spaced in time but must be divided into the same arcs as the other instrument data. The observation equations are interpolated to this time by a polynomial interpolation with degree interpolationDegree.

The accuracy or the full covariance matrix of the precise orbit data is provided in covariancePod and can be estimated with PreprocessingPod.

For accelerateComputation see observation:podVariational.

The following parameters with parameter names are set up:

and for each arc if keepSatelliteStates is set

NameTypeAnnotation
inputfileSatelliteModel
filenamesatellite macro model
rightHandSide
podRightSideinput for the reduced observation vector
inputfileOrbit
filenameused to evaluate the observation equations, not used as observations
inputfileStarCamera
filename
earthRotation
earthRotation
ephemerides
ephemerides
gradientfield
gravityfieldlow order field to estimate the change of the gravity by position adjustement
parametrizationGravity
parametrizationGravitygravity field parametrization
parametrizationAcceleration
parametrizationAccelerationorbit force parameters
keepSatelliteStates
booleanset boundary values of each arc global
integrationDegree
uintintegration of forces by polynomial approximation of degree n
interpolationDegree
uintorbit interpolation by polynomial approximation of degree n
accelerateComputation
booleanacceleration of computation by transforming the observations
covariancePod
covariancePodcovariance matrix of kinematic orbits

PodAcceleration

The observation equations for precise orbit data (POD) are given by \[ \ddot{\M r}(t) - \M g_0(t) = \nabla V(\M r, t), \]where the accelerations of the satellite $\ddot{\M r}(t)$ are derived from the kinematic positions in rightHandSide. The orbit differentation is performed by a moving polynomial interpolation or approximation with degree interpolationDegree and number of used epochs numberOfEpochs. The reference forces $\M g_0(t)$ are computed with the background models in rightHandSide.

All instrument data inputfileOrbit, inputfileStarCamera, and inputfileAccelerometer must be synchronous and be given with a constant sampling without any gaps in each short arc (see InstrumentSynchronize).

The unknown gravity field $\nabla V(\M r, t)$ parametrized by parametrizationGravity is not evaluated at the observed positions but at the orbit given by inputfileOrbit. The same is true for the reference forces. This orbit may be a more accurate dynamical orbit but in most cases the kinematic orbit provides good results.

The accuracy or the full covariance matrix of the precise orbit data is provided in covariancePod and can be estimated with PreprocessingPod.

The following parameters with parameter names are set up:

NameTypeAnnotation
inputfileSatelliteModel
filenamesatellite macro model
rightHandSide
podRightSideinput for the reduced observation vector
inputfileOrbit
filenameused to evaluate the observation equations, not used as observations
inputfileStarCamera
filename
earthRotation
earthRotation
ephemerides
ephemerides
parametrizationGravity
parametrizationGravitygravity field parametrization
parametrizationAcceleration
parametrizationAccelerationorbit force parameters
interpolationDegree
uintorbit differentation by polynomial approximation of degree n
numberOfEpochs
uintnumber of used Epochs for polynom computation
covariancePod
covariancePodcovariance matrix of kinematic orbits

PodEnergy

The observation equations for precise orbit data (POD) are given by \[ \frac{1}{2}\dot{\M r}^2 -\dot{\M r} \cdot (\M\Omega\times\M r) +\int_{t_0}^t(\dot{\M\Omega}\times\M r)\cdot \dot{\M r}\,dt - \int_{t_0}^t \M g_0 \cdot\dot{\M r}'\,dt = V + E. \]where the velocities of the satellite $\ddot{\M r}(t)$ are derived from the kinematic positions in rightHandSide and the Earth's rotation vector $\M\Omega(t)$ is modeled within earthRotation. The orbit differentation is performed by a polynomial interpolation with degree interpolationDegree. The integrals are solved a polynomial interpolation with degree integrationDegree. The reference forces $\M g_0(t)$ are computed with the background models in rightHandSide.

All instrument data inputfileOrbit, inputfileStarCamera, and inputfileAccelerometer must be synchronous and be given with a constant sampling without any gaps in each short arc (see InstrumentSynchronize).

The unknown gravity potential $V(\M r)$ parametrized by parametrizationGravity is not evaluated at the observed positions but at the orbit given by inputfileOrbit. The same is true for the reference forces. This orbit may be a more accurate dynamical orbit but in most cases the kinematic orbit provides good results.

An unknown energy bias $E$ per arc is parametrized by parametrizationBias and should be a constant in theory but temporal changes might help to absorb other unmodelled effects.

The accuracy or the full covariance matrix of the precise orbit data is provided in covariancePod and can be estimated with PreprocessingPod.

The following parameters with parameter names are set up: *:<parametrizationGravity>:*:*.

NameTypeAnnotation
inputfileSatelliteModel
filenamesatellite macro model
rightHandSide
podRightSideinput for the reduced observation vector
inputfileOrbit
filenameused to evaluate the observation equations, not used as observations
inputfileStarCamera
filename
earthRotation
earthRotation
ephemerides
ephemerides
parametrizationGravity
parametrizationGravitygravity field parametrization (potential)
parametrizationBias
parametrizationTemporalunknown total energy per arc
interpolationDegree
uintorbit differentation by polynomial approximation of degree n
integrationDegree
uintintegration of forces by polynomial approximation of degree n
covariancePod
covariancePodcovariance matrix of kinematic orbits

SstVariational

Like observation:podVariational (see there for details) but with two satellites and additional satellite-to-satellite (SST) observations.

If multiple inputfileSatelliteTracking are given all data are add together. So corrections in extra files like the light time correction can easily be added. Empirical parameters for the SST observations can be setup with parametrizationSst. The accuracy or the full covariance matrix of SST is provided in covarianceSst.

The following parameters with parameter names are set up:

NameTypeAnnotation
rightHandSide
sequenceinput for observation vectors
inputfileSatelliteTracking
filenameranging observations and corrections
inputfileOrbit1
filenamekinematic positions of satellite A as observations
inputfileOrbit2
filenamekinematic positions of satellite B as observations
sstType
choice
range
rangeRate
none
inputfileVariational1
filenameapproximate position and integrated state matrix
inputfileVariational2
filenameapproximate position and integrated state matrix
ephemerides
ephemerides
parametrizationGravity
parametrizationGravitygravity field parametrization
parametrizationAcceleration1
parametrizationAccelerationorbit1 force parameters
parametrizationAcceleration2
parametrizationAccelerationorbit2 force parameters
parametrizationSst
parametrizationSatelliteTrackingsatellite tracking parameter
integrationDegree
uintintegration of forces by polynomial approximation of degree n
interpolationDegree
uintorbit interpolation by polynomial approximation of degree n
covarianceSst
covarianceSstcovariance matrix of satellite to satellite tracking observations
covariancePod1
covariancePodcovariance matrix of kinematic orbits (satellite 1)
covariancePod2
covariancePodcovariance matrix of kinematic orbits (satellite 2)

SstIntegral

Like observation:podIntegral (see there for details) but with two satellites and additional satellite-to-satellite (SST) observations.

If multiple inputfileSatelliteTracking are given all data are add together. So corrections in extra files like the light time correction can easily be added. Empirical parameters for the SST observations can be setup with parametrizationSst. The accuracy or the full covariance matrix of SST is provided in covarianceSst.

The following parameters with parameter names are set up:

and for each arc if keepSatelliteStates is set

NameTypeAnnotation
inputfileSatelliteModel1
filenamesatellite macro model
inputfileSatelliteModel2
filenamesatellite macro model
rightHandSide
sstRightSideinput for the reduced observation vector
sstType
choice
range
rangeRate
rangeAcceleration
none
inputfileOrbit1
filenameused to evaluate the observation equations, not used as observations
inputfileOrbit2
filenameused to evaluate the observation equations, not used as observations
inputfileStarCamera1
filename
inputfileStarCamera2
filename
earthRotation
earthRotation
ephemerides
ephemerides
gradientfield
gravityfieldlow order field to estimate the change of the gravity by position adjustement
parametrizationGravity
parametrizationGravitygravity field parametrization
parametrizationAcceleration1
parametrizationAccelerationorbit1 force parameters
parametrizationAcceleration2
parametrizationAccelerationorbit2 force parameters
parametrizationSst
parametrizationSatelliteTrackingsatellite tracking parameter
keepSatelliteStates
booleanset boundary values of each arc global
integrationDegree
uintintegration of forces by polynomial approximation of degree n
interpolationDegree
uintorbit interpolation by polynomial approximation of degree n
covarianceSst
covarianceSstcovariance matrix of satellite to satellite tracking observations
covariancePod1
covariancePodcovariance matrix of kinematic orbits (satellite 1)
covariancePod2
covariancePodcovariance matrix of kinematic orbits (satellite 2)

DualSstVariational

Like observation:sstVariational (see there for details) but with two simultaneous satellite-to-satellite (SST) observations.

This class reads two SST observation files (inputfileSatelliteTracking1 and inputfileSatelliteTracking2). Empirical parameters for the SST observations can be setup independently for both SST observation types with parametrizationSst1 and parametrizationSst2.

Both SST observation types are reduced by the same background models and the same impact of accelerometer measurements. The covariance matrix of the reduced observations should not consider the the instrument noise only (covarianceSst1/2) but must take the cross correlations covarianceAcc into account. The covariance matrix of the reduced observations is given by \[ \M\Sigma(\begin{bmatrix} \Delta l_{SST1} \\ \Delta l_{SST2} \end{bmatrix}) = \begin{bmatrix} \M\Sigma_{SST1} + \M\Sigma_{ACC} & \M\Sigma_{ACC} \\ \M\Sigma_{ACC} & \M\Sigma_{SST2} + \M\Sigma_{ACC} \end{bmatrix}. \] The following parameters with parameter names are set up:

NameTypeAnnotation
rightHandSide
sequenceinput for observation vectors
inputfileSatelliteTracking1
filenameranging observations and corrections
inputfileSatelliteTracking2
filenameranging observations and corrections
inputfileOrbit1
filenamekinematic positions of satellite A as observations
inputfileOrbit2
filenamekinematic positions of satellite B as observations
sstType
choice
range
rangeRate
none
inputfileVariational1
filenameapproximate position and integrated state matrix
inputfileVariational2
filenameapproximate position and integrated state matrix
ephemerides
ephemerides
parametrizationGravity
parametrizationGravitygravity field parametrization
parametrizationAcceleration1
parametrizationAccelerationorbit1 force parameters
parametrizationAcceleration2
parametrizationAccelerationorbit2 force parameters
parametrizationSst1
parametrizationSatelliteTrackingsatellite tracking parameter for first ranging observations
parametrizationSst2
parametrizationSatelliteTrackingsatellite tracking parameter for second ranging observations
integrationDegree
uintintegration of forces by polynomial approximation of degree n
interpolationDegree
uintorbit interpolation by polynomial approximation of degree n
covarianceSst1
covarianceSstcovariance matrix of first satellite to satellite tracking observations
covarianceSst2
covarianceSstcovariance matrix of second satellite to satellite tracking observations
covarianceAcc
covarianceSstcommon covariance matrix of reduced satellite to satellite tracking observations
covariancePod1
covariancePodcovariance matrix of kinematic orbits (satellite 1)
covariancePod2
covariancePodcovariance matrix of kinematic orbits (satellite 2)

Gradiometer

Observation equations for satellite gravity gradiometry (SGG) \[ \nabla\nabla V(\M r) = \begin{pmatrix} \frac{\partial^2 V}{\partial x^2} & \frac{\partial^2 V}{\partial x\partial y} & \frac{\partial^2 V}{\partial x\partial z} \\ \frac{\partial^2 V}{\partial y\partial x} & \frac{\partial^2 V}{\partial y^2} & \frac{\partial^2 V}{\partial y\partial z} \\ \frac{\partial^2 V}{\partial z\partial x} & \frac{\partial^2 V}{\partial z\partial y} & \frac{\partial^2 V}{\partial z^2} \end{pmatrix}. \]From the inputfileGradiometer observations precomputed inputfileReferenceGradiometer together with other background models are reduced, all given in rightHandSide.

All instrument data inputfileGradiometer, inputfileOrbit, and inputfileStarCamera must be synchronous and be diveded into each short arcs (see InstrumentSynchronize).

Additional to the parametrizationGravity an (temporal changing) bias for each gradiometer component and arc can be estimated with parametrizationBias.

The accuracy or the full covariance matrix of the gradiometer is provided in covarianceSgg and can be estimated with PreprocessingGradiometer.

The following parameters with parameter names are set up: *:<parametrizationGravity>:*:*.

NameTypeAnnotation
rightHandSide
sggRightSideinput for the observation vector
inputfileOrbit
filename
inputfileStarCamera
filename
earthRotation
earthRotation
ephemerides
ephemerides
parametrizationGravity
parametrizationGravity
parametrizationBias
parametrizationTemporalper arc
useXX
boolean
useYY
boolean
useZZ
boolean
useXY
boolean
useXZ
boolean
useYZ
boolean
covarianceSgg
sequence
sigma
doublegeneral variance factor
inputfileSigmasPerArc
filenamedifferent accuaries for each arc (multplicated with sigma)
inputfileCovarianceFunction
filenamecovariance function in time

Terrestrial

The gravity field is estimated from point wise measurements. The gravity field parametrization is given by parametrizationGravity. There is no need to have the data regular distributed or given on a sphere or ellipsoid. The type of the gridded data (e.g gravity anomalies or geoid heights) must be set with kernel. A referencefield can be reduced beforehand.

The observations at given positions are calculated from inputfileGriddedData. The input columns are enumerated by data0, data1, … , see dataVariables.

The observations can be divided into small blocks for parallelization. With blockingSize set the maximum count of observations in each block.

The following parameters with parameter names are set up: *:<parametrizationGravity>:*:*.

NameTypeAnnotation
rightHandSide
sequenceinput for observation vectors
inputfileGriddedData
filename
observation
expression[SI units]
sigma
expressionaccuracy, 1/sigma used as weighting
referencefield
gravityfield
kernel
kerneltype of observations
parametrizationGravity
parametrizationGravity
time
timefor reference field and parametrization
blockingSize
uintsegementation of the obervations if designmatrix can't be build at once

Deflections

The gravity field parametrized by parametrizationGravity is estimated from deflections of the vertical measurements. A referencefield can be reduced beforehand.

The observations $\xi$ in north direction and $\eta$ in east direction at given positions are calculated from inputfileGriddedData. The input columns are enumerated by data0, data1, … , see dataVariables.

The ellipsoid parameters R and inverseFlattening are used to define the local normal direction.

The observations can be divided into small blocks for parallelization. With blockingSize set the maximum count of observations in each block.

The following parameters with parameter names are set up: *:<parametrizationGravity>:*:*.

NameTypeAnnotation
rightHandSide
sequenceinput for observation vectors
inputfileGriddedData
filename
observationXi
expressionNorth-South Deflections of the Vertical [rad]
observationEta
expressionEast-West Deflections of the Vertical [rad]
sigmaXi
expressionaccuracy, 1/sigma used as weighting
sigmaEta
expressionaccuracy, 1/sigma used as weighting
referencefield
gravityfield
parametrizationGravity
parametrizationGravity
time
timefor reference field and parametrization
R
doublereference radius for ellipsoid
inverseFlattening
doublereference flattening for ellipsoid, 0: sphere
blockingSize
uintsegementation of the obervations if designmatrix can't be build at once

StationLoading

Observation equations for displacements of a list of stations due to the effect of time variable loading masses. The displacement $\M u$ of a station is calculated according to \[ \M u(\M r) = \frac{1}{\gamma}\sum_{n=0}^\infty \left[\frac{h_n}{1+k_n}V_n(\M r)\,\M e_{up} + R\frac{l_n}{1+k_n}\left( \frac{\partial V_n(\M r)}{\partial \M e_{north}}\M e_{north} +\frac{\partial V_n(\M r)}{\partial \M e_{east}} \M e_{east}\right)\right], \]where $\gamma$ is the normal gravity, the load Love and Shida numbers $h_n,l_n$ are given by inputfileDeformationLoadLoveNumber and the load Love numbers $k_n$ are given by inputfilePotentialLoadLoveNumber. The $V_n$ are the spherical harmonics expansion of degree $n$ of the full time variable gravitational potential (potential of the loading mass + deformation potential) parametrized by parametrizationGravity. Additional parameters can be setup to estimate the realization of the reference frame of the station coordinates (estimateTranslation, estimateRotation, and estimateScale).

The observations at stations coordinates are calculated from inputfileGriddedData. The input columns are enumerated by data0, data1, … , see dataVariables.

The ellipsoid parameters R and inverseFlattening are used to define the local frame (north, east, up).

The following parameters with parameter names are set up:

See also Gravityfield2DisplacementTimeSeries.

Reference: Rietbroek (2014): Retrieval of Sea Level and Surface Loading Variations from Geodetic Observations and Model Simulations: an Integrated Approach, Bonn, 2014. - Dissertation, https://nbn-resolving.org/urn:nbn:de:hbz:5n-35460

NameTypeAnnotation
rightHandSide
sequenceinput for observation vectors
inputfileGriddedData
filenamestation positions with displacement data
observationNorth
expressiondisplacement [m]
observationEast
expressiondisplacement [m]
observationUp
expressiondisplacement [m]
sigmaNorth
expressionaccuracy, 1/sigma used as weighting
sigmaEast
expressionaccuracy, 1/sigma used as weighting
sigmaUp
expressionaccuracy, 1/sigma used as weighting
inGlobalFrame
booleanobs/sigmas given in global x,y,z frame instead of north,east,up
referencefield
gravityfield
time
timefor reference field and parametrization
parametrizationGravity
parametrizationGravityof loading (+defo) potential
estimateTranslation
booleancoordinate center
estimateScale
booleanscale factor of position
estimateRotation
booleanrotation
inputfileDeformationLoadLoveNumber
filename
inputfilePotentialLoadLoveNumber
filenameif full potential is given and not only loading potential
R
doublereference radius for ellipsoid
inverseFlattening
doublereference flattening for ellipsoid, 0: sphere