Helmert transformations, which are 7-parameter transformations between reference frames (i.e. ECEF position coordinates). A Helmert tranformation is defined by 7 parameters: a rotation(3), a translation(3) and scale factor(1).
- Deprecated:
- This enum is deprecated as of Dec 2022 and should not be used. Use TransformLibrary or HelmertTransformer instead.
Definition at line 63 of file HelmertTransform.hpp.
#include <HelmertTransform.hpp>
|
std::string | asString () const noexcept |
|
CommonTime | getEpoch () const noexcept |
| Get the time at which this transform becomes valid. More...
|
|
ReferenceFrame | getFromFrame () const noexcept |
| Get the reference frame this transform can convert from (or to). More...
|
|
ReferenceFrame | getToFrame () const noexcept |
| Get the reference frame this transform can convert to (or from). More...
|
|
| HelmertTransform () noexcept |
| Default constructor. More...
|
|
| HelmertTransform (ReferenceFrame from, ReferenceFrame to, double irx, double iry, double irz, double itx, double ity, double itz, double sc, const std::string &desc, const CommonTime &refEpoch) |
|
void | transform (const Position &pos, Position &result) |
|
void | transform (const Triple &vec, ReferenceFrame frame, Triple &result) |
|
void | transform (const Vector< double > &vec, ReferenceFrame frame, Vector< double > &result) |
|
void | transform (const Xvt &xvt, Xvt &result) |
|
void | transform (double x, double y, double z, ReferenceFrame frame, double &rx, double &ry, double &rz) |
|
◆ HelmertTransform() [1/2]
gnsstk::HelmertTransform::HelmertTransform |
( |
| ) |
|
|
noexcept |
◆ HelmertTransform() [2/2]
gnsstk::HelmertTransform::HelmertTransform |
( |
ReferenceFrame |
from, |
|
|
ReferenceFrame |
to, |
|
|
double |
irx, |
|
|
double |
iry, |
|
|
double |
irz, |
|
|
double |
itx, |
|
|
double |
ity, |
|
|
double |
itz, |
|
|
double |
sc, |
|
|
const std::string & |
desc, |
|
|
const CommonTime & |
refEpoch |
|
) |
| |
Explicit constructor, from the 7 parameters. All the inputs are unchanged.
This constructor and class are for data to be used with the transformation of the either of the two following forms (view via doxygen).
- Warning
- If the transformation parameters you wish to use use the transposed version of the rotation matrix (i.e. the signs on the rotation angles are reversed from what is shown below), make sure to flip the sign on the irx,iry,irz parameters to the constructor.
- Parameters
-
[in] | from | Transform takes "from" -> "to" |
[in] | to | Transform takes "from" -> "to" |
[in] | irx | X axis rotation angle in degrees |
[in] | iry | Y axis rotation angle in degrees |
[in] | irz | Z axis rotation angle in degrees |
[in] | itx | X axis translation in meters |
[in] | ity | Y axis translation in meters |
[in] | itz | Z axis translation in meters |
[in] | sc | scale factor (dimensionless) |
[in] | desc | description of the transform, should include |
[in] | refEpoch | time when transform became applicable (default=BOT) reference frames and an indication of the source (e.g. literature citation). |
- Exceptions
-
InvalidRequest | if the transform is invalid. |
- Note
- small angle approximation is used.
-
by construction, transpose(rotation) == inverse(rotation) (given small angle approximation).
Definition at line 68 of file HelmertTransform.cpp.
◆ asString()
string gnsstk::HelmertTransform::asString |
( |
| ) |
const |
|
noexcept |
Dump the object to a multi-line string including reference frames, the 7 parameters and description.
Definition at line 119 of file HelmertTransform.cpp.
◆ getEpoch()
CommonTime gnsstk::HelmertTransform::getEpoch |
( |
| ) |
const |
|
inlinenoexcept |
◆ getFromFrame()
Get the reference frame this transform can convert from (or to).
Definition at line 197 of file HelmertTransform.hpp.
◆ getToFrame()
Get the reference frame this transform can convert to (or from).
Definition at line 201 of file HelmertTransform.hpp.
◆ transform() [1/5]
Transform Position to another frame using this transform or its inverse.
- Parameters
-
[in] | pos | position to be transformed; unchanged on output. |
[out] | result | position after transformation. |
- Exceptions
-
InvalidRequest | if transformation, or inverse, cannot act on ReferenceFrame of input. |
Definition at line 151 of file HelmertTransform.cpp.
◆ transform() [2/5]
Transform a Triple using this Helmert transformation or its inverse.
- Parameters
-
[in] | vec | containing position and frame to be transformed. |
[in] | frame | Transform takes "frame" -> "new-frame" |
[out] | result | with position in new frame |
- Exceptions
-
InvalidRequest | if transformation, or inverse, cannot act on ReferenceFrame of input. |
Definition at line 220 of file HelmertTransform.cpp.
◆ transform() [3/5]
Transform a 3-vector, in the given frame, using this Helmert transformation.
- Parameters
-
[in] | vec | 3-vector of position coordinates in "from" frame. |
[in] | frame | Transform takes "frame" -> "new-frame" |
[out] | result | 3-vector in "new-frame" frame. |
- Exceptions
-
InvalidRequest | if transformation, or inverse, cannot act on ReferenceFrame of input. |
Definition at line 194 of file HelmertTransform.cpp.
◆ transform() [4/5]
void gnsstk::HelmertTransform::transform |
( |
const Xvt & |
xvt, |
|
|
Xvt & |
result |
|
) |
| |
Transform an Xvt using this Helmert transformation or its inverse.
- Parameters
-
[in] | xvt | containing position and frame to be transformed. |
[out] | result | with position in new frame |
- Exceptions
-
InvalidRequest | if transformation, or inverse, cannot act on ReferenceFrame of input. |
Definition at line 239 of file HelmertTransform.cpp.
◆ transform() [5/5]
void gnsstk::HelmertTransform::transform |
( |
double |
x, |
|
|
double |
y, |
|
|
double |
z, |
|
|
ReferenceFrame |
frame, |
|
|
double & |
rx, |
|
|
double & |
ry, |
|
|
double & |
rz |
|
) |
| |
Transform 3 doubles, in the given frame, using this Helmert transformation.
- Parameters
-
[in] | x,y,z | 3-vector of position coordinates in "from" frame. |
[in] | frame | Transform takes "frame" -> "new-frame" |
[out] | rx,ry,rz | result 3-vector in "new-frame" frame. |
- Exceptions
-
InvalidRequest | if transformation, or inverse, cannot act on ReferenceFrame of input. |
Definition at line 260 of file HelmertTransform.cpp.
◆ description
std::string gnsstk::HelmertTransform::description |
|
protected |
an arbitrary string describing the transform; it should include the source.
Definition at line 242 of file HelmertTransform.hpp.
◆ epoch
◆ fromFrame
◆ PZ90Epoch
◆ rotation
Matrix<double> gnsstk::HelmertTransform::rotation |
|
protected |
◆ rx
double gnsstk::HelmertTransform::rx |
|
protected |
◆ ry
double gnsstk::HelmertTransform::ry |
|
protected |
◆ rz
double gnsstk::HelmertTransform::rz |
|
protected |
◆ scale
double gnsstk::HelmertTransform::scale |
|
protected |
◆ stdCount
const GNSSTK_EXPORT int gnsstk::HelmertTransform::stdCount = 5 |
|
static |
◆ stdTransforms
◆ toFrame
◆ translation
Vector<double> gnsstk::HelmertTransform::translation |
|
protected |
◆ tx
double gnsstk::HelmertTransform::tx |
|
protected |
◆ ty
double gnsstk::HelmertTransform::ty |
|
protected |
◆ tz
double gnsstk::HelmertTransform::tz |
|
protected |
The documentation for this class was generated from the following files: