public class GroundStation extends Object
This class adds a position offset parameter to a base topocentric frame
.
Since 9.0, this class also adds parameters for an additional polar motion and an additional prime meridian orientation. Since these parameters will have the same name for all ground stations, they will be managed consistently and allow to estimate Earth orientation precisely (this is needed for precise orbit determination). The polar motion and prime meridian orientation will be applied after regular Earth orientation parameters, so the value of the estimated parameters will be correction to EOP, they will not be the complete EOP values by themselves. Basically, this means that for Earth, the following transforms are applied in order, between inertial frame and ground station frame (for non-Earth based ground stations, different precession nutation models and associated planet oritentation parameters would be applied, if available):
getPrimeMeridianOffsetDriver()
and getPrimeMeridianDriftDriver()
getPolarOffsetXDriver()
, getPolarDriftXDriver()
,
getPolarOffsetYDriver()
and getPolarDriftYDriver()
getEastOffsetDriver()
,
getNorthOffsetDriver()
and getZenithOffsetDriver()
Modifier and Type | Field | Description |
---|---|---|
static String |
INTERMEDIATE_SUFFIX |
Suffix for ground station intermediate frame name.
|
static String |
OFFSET_SUFFIX |
Suffix for ground station position offset parameter name.
|
Constructor | Description |
---|---|
GroundStation(TopocentricFrame baseFrame) |
Build a ground station ignoring
station displacements . |
GroundStation(TopocentricFrame baseFrame,
EOPHistory eopHistory,
StationDisplacement... displacements) |
Simple constructor.
|
Modifier and Type | Method | Description |
---|---|---|
TopocentricFrame |
getBaseFrame() |
Get the base frame associated with the station.
|
StationDisplacement[] |
getDisplacements() |
Get the displacement models.
|
ParameterDriver |
getEastOffsetDriver() |
Get a driver allowing to change station position along East axis.
|
Frame |
getEstimatedEarthFrame() |
Get the estimated Earth frame, including the estimated linear models for pole and prime meridian.
|
UT1Scale |
getEstimatedUT1() |
Get the estimated UT1 scale, including the estimated linear models for prime meridian.
|
ParameterDriver |
getNorthOffsetDriver() |
Get a driver allowing to change station position along North axis.
|
GeodeticPoint |
getOffsetGeodeticPoint() |
Deprecated.
as of 9.1, replaced by
getOffsetGeodeticPoint(AbsoluteDate) |
GeodeticPoint |
getOffsetGeodeticPoint(AbsoluteDate date) |
Get the geodetic point at the center of the offset frame.
|
Transform |
getOffsetToInertial(Frame inertial,
AbsoluteDate date) |
Get the transform between offset frame and inertial frame.
|
FieldTransform<DerivativeStructure> |
getOffsetToInertial(Frame inertial,
FieldAbsoluteDate<DerivativeStructure> date,
DSFactory factory,
Map<String,Integer> indices) |
Get the transform between offset frame and inertial frame with derivatives.
|
ParameterDriver |
getPolarDriftXDriver() |
Get a driver allowing to add a polar drift along X.
|
ParameterDriver |
getPolarDriftYDriver() |
Get a driver allowing to add a polar drift along Y.
|
ParameterDriver |
getPolarOffsetXDriver() |
Get a driver allowing to add a polar offset along X.
|
ParameterDriver |
getPolarOffsetYDriver() |
Get a driver allowing to add a polar offset along Y.
|
ParameterDriver |
getPrimeMeridianDriftDriver() |
Get a driver allowing to add a prime meridian rotation rate.
|
ParameterDriver |
getPrimeMeridianOffsetDriver() |
Get a driver allowing to add a prime meridian rotation.
|
ParameterDriver |
getZenithOffsetDriver() |
Get a driver allowing to change station position along Zenith axis.
|
public static final String OFFSET_SUFFIX
public static final String INTERMEDIATE_SUFFIX
public GroundStation(TopocentricFrame baseFrame) throws OrekitException
station displacements
.
The initial values for the pole and prime meridian parametric linear models
(getPrimeMeridianOffsetDriver()
, getPrimeMeridianDriftDriver()
,
getPolarOffsetXDriver()
, getPolarDriftXDriver()
,
getPolarOffsetXDriver()
, getPolarDriftXDriver()
) are set to 0.
The initial values for the station offset model (getEastOffsetDriver()
,
getNorthOffsetDriver()
, getZenithOffsetDriver()
) are set to 0.
This implies that as long as these values are not changed, the offset frame is
the same as the base frame
. As soon as some of these models
are changed, the offset frame moves away from the base frame
.
baseFrame
- base frame associated with the station, without *any* parametric
model (no station offset, no polar motion, no meridian shift)OrekitException
- if some frame transforms cannot be computed
or if Earth Orientation Parameters cannot be retrieved from the base frame.GroundStation(TopocentricFrame, EOPHistory, StationDisplacement...)
public GroundStation(TopocentricFrame baseFrame, EOPHistory eopHistory, StationDisplacement... displacements) throws OrekitException
The initial values for the pole and prime meridian parametric linear models
(getPrimeMeridianOffsetDriver()
, getPrimeMeridianDriftDriver()
,
getPolarOffsetXDriver()
, getPolarDriftXDriver()
,
getPolarOffsetXDriver()
, getPolarDriftXDriver()
) are set to 0.
The initial values for the station offset model (getEastOffsetDriver()
,
getNorthOffsetDriver()
, getZenithOffsetDriver()
) are set to 0.
This implies that as long as these values are not changed, the offset frame is
the same as the base frame
. As soon as some of these models
are changed, the offset frame moves away from the base frame
.
baseFrame
- base frame associated with the station, without *any* parametric
model (no station offset, no polar motion, no meridian shift)eopHistory
- EOP history associated with Earth framesdisplacements
- ground station displacement model (tides, ocean loading,
atmospheric loading, thermal effects...)OrekitException
- if some frame transforms cannot be computed
or if the ground station is not defined on a ellipsoid
.public StationDisplacement[] getDisplacements()
public ParameterDriver getEastOffsetDriver()
public ParameterDriver getNorthOffsetDriver()
public ParameterDriver getZenithOffsetDriver()
public ParameterDriver getPrimeMeridianOffsetDriver()
The parameter is an angle in radians. In order to convert this
value to a DUT1 in seconds, the value must be divided by
ave = 7.292115146706979e-5
(which is the nominal Angular Velocity
of Earth from the TIRF model).
public ParameterDriver getPrimeMeridianDriftDriver()
The parameter is an angle rate in radians per second. In order to convert this
value to a LOD in seconds, the value must be multiplied by -86400 and divided by
ave = 7.292115146706979e-5
(which is the nominal Angular Velocity
of Earth from the TIRF model).
public ParameterDriver getPolarOffsetXDriver()
The parameter is an angle in radians
public ParameterDriver getPolarDriftXDriver()
The parameter is an angle rate in radians per second
public ParameterDriver getPolarOffsetYDriver()
The parameter is an angle in radians
public ParameterDriver getPolarDriftYDriver()
The parameter is an angle rate in radians per second
public TopocentricFrame getBaseFrame()
The base frame corresponds to a null position offset, null polar motion, null meridian shift
public Frame getEstimatedEarthFrame()
This frame is bound to the driver for prime meridian offset
,
driver prime meridian drift
,
driver for polar offset along X
,
driver for polar drift along X
,
driver for polar offset along Y
,
driver for polar drift along Y
, so its orientation changes when
the setValue
methods of the drivers are called.
public UT1Scale getEstimatedUT1()
This time scale is bound to the driver for prime meridian offset
,
and driver prime meridian drift
, so its offset from UTC changes when
the setValue
methods of the drivers are called.
@Deprecated public GeodeticPoint getOffsetGeodeticPoint() throws OrekitException
getOffsetGeodeticPoint(AbsoluteDate)
OrekitException
- if frames transforms cannot be computedpublic GeodeticPoint getOffsetGeodeticPoint(AbsoluteDate date) throws OrekitException
date
- current date (may be null if displacements are ignored)OrekitException
- if frames transforms cannot be computedpublic Transform getOffsetToInertial(Frame inertial, AbsoluteDate date) throws OrekitException
The offset frame takes the current position offset,
polar motion and the meridian shift into account. The frame
returned is disconnected from later changes in the parameters.
When the parameters
managing these
offsets are changed, the method must be called again to retrieve
a new offset frame.
inertial
- inertial frame to transform todate
- date of the transformOrekitException
- if offset frame cannot be computed for current offset valuespublic FieldTransform<DerivativeStructure> getOffsetToInertial(Frame inertial, FieldAbsoluteDate<DerivativeStructure> date, DSFactory factory, Map<String,Integer> indices) throws OrekitException
As the East and North vector are not well defined at pole, the derivatives of these two vectors diverge to infinity as we get closer to the pole. So this method should not be used for stations less than 0.0001 degree from either poles.
inertial
- inertial frame to transform todate
- date of the transformfactory
- factory for the derivativesindices
- indices of the estimated parameters in derivatives computationsOrekitException
- if some frame transforms cannot be computedCopyright © 2002-2018 CS Systèmes d'information. All rights reserved.