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 and 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 and Description |
---|
GroundStation(TopocentricFrame baseFrame)
Simple constructor.
|
Modifier and Type | Method and Description |
---|---|
TopocentricFrame |
getBaseFrame()
Get the base frame associated with the station.
|
ParameterDriver |
getEastOffsetDriver()
Get a driver allowing to change station position along East axis.
|
ParameterDriver |
getNorthOffsetDriver()
Get a driver allowing to change station position along North axis.
|
GeodeticPoint |
getOffsetGeodeticPoint()
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
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 the ground station is not defined on a ellipsoid
.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 GeodeticPoint getOffsetGeodeticPoint() throws OrekitException
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-2017 CS Systèmes d'information. All rights reserved.