Package pygeodesy :: Module trf |
[frames] | no frames]

# Module trf

Veness' Terrestrial Reference Frames (TRF).

Classes RefFrame, registry RefFrames and TRFError.

Transcoded from Chris Veness' (C) 2006-2022 JavaScript originals latlon-ellipsoidal-referenceframe.js and latlon-ellipsoidal-referenceframe-txparams.js.

Following is a copy of the comments in Veness' latlon-ellipsoidal-referenceframe.js.

Modern geodetic reference frames: a latitude/longitude point defines a geographic location on, above or below the earth’s surface, measured in degrees from the equator and the International Reference Meridian (IRM) and metres above the ellipsoid within a given Terrestrial Reference Frame at a given epoch.

This is scratching the surface of complexities involved in high precision geodesy, but may be of interest and/or value to those with less demanding requirements. More information here and here.

Note that ITRF solutions do not directly use an ellipsoid, but are specified by Cartesian coordinates. The GRS80 ellipsoid is recommended for transformations to geographical coordinates.

Note WGS84(G730/G873/G1150) are coincident with ITRF at 10-centimetre level, see also here. WGS84(G1674) and ITRF20014 / ITRF2008 "are likely to agree at the centimeter level", see also QPS/Qinsy.

Version: 22.09.24

Classes
| Helmert7Tuple 7-Tuple `(tx, ty, tz, s, sx, sy, sz)` of Helmert transform parameters with translations `tx`, `ty` and `tz` in `millimeter`, scale `s` in `ppb` and rotations `sx`, `sy` and `sz` in `milliarcseconds`.
| RefFrame Terrestrial Reference Frame (TRF) parameters.

Functions
date2epoch(year, month, day) Return the reference frame `epoch` for a calendar day. |
epoch2date(epoch) Return the date for a reference frame `epoch`. |
trfXform(reframe1, reframe2, epoch=None, xform=None, rates=None) Define a new Terrestrial Reference Frame (TRF) conversion. |

Variables
| __all__ = `_ALL_LAZY.trf`
| RefFrames = `` Some pre-defined RefFrames, all lazily instantiated.
| RefFrames.ETRF2000 RefFrame(name='ETRF2000', epoch=2005, ellipsoid=Ellipsoid(name='GRS80')
| RefFrames.GDA2020 RefFrame(name='GDA2020', epoch=2020, ellipsoid=Ellipsoid(name='GRS80')
| RefFrames.GDA94 RefFrame(name='GDA94', epoch=1994, ellipsoid=Ellipsoid(name='GRS80')
| RefFrames.ITRF2000 RefFrame(name='ITRF2000', epoch=1997, ellipsoid=Ellipsoid(name='GRS80')
| RefFrames.ITRF2005 RefFrame(name='ITRF2005', epoch=2000, ellipsoid=Ellipsoid(name='GRS80')
| RefFrames.ITRF2008 RefFrame(name='ITRF2008', epoch=2005, ellipsoid=Ellipsoid(name='GRS80')
| RefFrames.ITRF2014 RefFrame(name='ITRF2014', epoch=2010, ellipsoid=Ellipsoid(name='GRS80')
| RefFrames.ITRF90 RefFrame(name='ITRF90', epoch=1988, ellipsoid=Ellipsoid(name='GRS80')
| RefFrames.ITRF91 RefFrame(name='ITRF91', epoch=1988, ellipsoid=Ellipsoid(name='GRS80')
| RefFrames.ITRF93 RefFrame(name='ITRF93', epoch=1988, ellipsoid=Ellipsoid(name='GRS80')
| RefFrames.NAD83 RefFrame(name='NAD83', epoch=1997, ellipsoid=Ellipsoid(name='GRS80')
| RefFrames.WGS84 RefFrame(name='WGS84', epoch=1984, ellipsoid=Ellipsoid(name='WGS84')
| RefFrames.WGS84g1150 RefFrame(name='WGS84g1150', epoch=2001, ellipsoid=Ellipsoid(name='WGS84')
| RefFrames.WGS84g1674 RefFrame(name='WGS84g1674', epoch=2005, ellipsoid=Ellipsoid(name='WGS84')
| RefFrames.WGS84g1762 RefFrame(name='WGS84g1762', epoch=2005, ellipsoid=Ellipsoid(name='WGS84')

Function Details

### date2epoch (year, month, day) |
Return the reference frame `epoch` for a calendar day. Arguments: `year` - Year of the date (`scalar`). `month` - Month in the `year` (`scalar`, 1..12). `day` - Day in the `month` (`scalar`, 1..31). Returns: Epoch, the fractional year (`float`). Raises: `TRFError` - Invalid `year`, `month` or `day`. Note: Any `year` is considered a leap year, i.e. having 29 days in February.

### epoch2date (epoch) |
Return the date for a reference frame `epoch`. Arguments: `epoch` - Fractional year (`scalar`). Returns: 3-Tuple `(year, month, day)`. Raises: `TRFError` - Invalid `epoch`. Note: Any `year` is considered a leap year, i.e. having 29 days in February.

### trfXform (reframe1, reframe2, epoch=None, xform=None, rates=None) |
Define a new Terrestrial Reference Frame (TRF) conversion. Arguments: `reframe1` - Source reframe (RefFrame), converting from. `reframe2` - Destination reframe (RefFrame), converting to. `epoch` - Epoch, a fractional calendar year (`scalar` or `str`) or `None` for `reframe2.epoch`. `xform` - Helmert transform parameters (`Helmert7Tuple`). `rates` - Helmert rate parameters (`Helmert7Tuple`). Raises: `TRFError` - Invalid `epoch` or TRF conversion already exists.