![]() |
SuperNOVAS v1.5
The NOVAS C library, made better
|
Functions | |
int | novas_cartesian_to_geodetic (const double *restrict x, enum novas_reference_ellipsoid ellipsoid, double *restrict lon, double *restrict lat, double *restrict alt) |
int | novas_geodetic_to_cartesian (double lon, double lat, double alt, enum novas_reference_ellipsoid ellipsoid, double *x) |
int | novas_itrf_transform (int from_year, const double *restrict from_coords, const double *restrict from_rates, int to_year, double *to_coords, double *to_rates) |
int | novas_itrf_transform_eop (int from_year, double from_xp, double from_yp, double from_dut1, int to_year, double *restrict to_xp, double *restrict to_yp, double *restrict to_dut1) |
Transformations of station coordinates, velocities, and Earth orinetation parameters (EOP) between various ITRF realizations, and conversion between Cartesian (x, y, z) and geodetic (longitude, latitude, altitude) coordinates w.r.t. the reference ellipsoid.
REFERENCES:
int novas_cartesian_to_geodetic | ( | const double *restrict | x, |
enum novas_reference_ellipsoid | ellipsoid, | ||
double *restrict | lon, | ||
double *restrict | lat, | ||
double *restrict | alt | ||
) |
Converts geocentric Cartesian site coordinates to geodetic coordinates, based on the GRS80 reference ellipsoid.
NOTES:
GCONV2.F
source code, see https://iers-conventions.obspm.fr/content/chapter4/software/GCONV2.F. REFERENCES:
[in] | x | [m] Input geocentric Cartesian coordinates (x, y, z) 3-vector. |
ellipsoid | Reference ellipsoid to use. For ITRF use NOVAS_GRS80_ELLIPSOID , for GPS related applications use NOVAS_WGS84_ELLIPSOID . | |
[out] | lon | [deg] Geodetic longitude. It may be NULL if not required. |
[out] | lat | [deg] Geodetic latitude. It may be NULL if not required. |
[out] | alt | [m] Geodetic altitude (i.e. above sea level). It may be NULL if not required. |
References M_PI, NOVAS_GRS80_FLATTENING, and NOVAS_GRS80_RADIUS.
int novas_geodetic_to_cartesian | ( | double | lon, |
double | lat, | ||
double | alt, | ||
enum novas_reference_ellipsoid | ellipsoid, | ||
double * | x | ||
) |
Converts geodetic site coordinates to geocentric Cartesian coordinates, based on the GRS80 reference ellipsoid.
[in] | lon | [deg] Geodetic longitude |
[in] | lat | [deg] Geodetic latitude |
[in] | alt | [m] Geodetic altitude (i.e. above sea level). |
ellipsoid | Reference ellipsoid to use. For ITRF use NOVAS_GRS80_ELLIPSOID , for GPS related applications use NOVAS_WGS84_ELLIPSOID . | |
[out] | x | [m] Corresponding geocentric Cartesian coordinates (x, y, z) 3-vector. |
References NOVAS_GRS80_FLATTENING, and NOVAS_GRS80_RADIUS.
int novas_itrf_transform | ( | int | from_year, |
const double *restrict | from_coords, | ||
const double *restrict | from_rates, | ||
int | to_year, | ||
double * | to_coords, | ||
double * | to_rates | ||
) |
Converts ITRF coordinates between different realizations of the ITRF coordinate system. It does not account for station motions, which the user should apply separately. For example, consider the use case when input coordinates are given in ITRF88, for measurement in the epoch 1994.36, and output is expected in ITRF2000 for measurements at 2006.78. This function simply translates the input, measured in epoch 1994.36, to ITRF2000. Proper motion between the epochs (2006.78 and 1994.36) can be calculated with the input rates before conversion, e.g.:
or equivalently, after the transformation to ITRF2000, as:
REFERENCES:
from_year | [yr] ITRF realization year of input coordinates / rates. E.g. 1992 for ITRF92. | |
[in] | from_coords | [m] input ITRF coordinates. |
[in] | from_rates | [m/yr] input ITRF coordinate rates, or NULL if not known or needed. |
to_year | [yr] ITRF realization year of output coordinates / rates. E.g. 2014 for ITRF2014. | |
[out] | to_coords | [m] ITRF coordinates at final year, or NULL if not required. It may be the same as either of the inputs. |
[out] | to_rates | [m/yr] ITRF coordinate rates at final year, or NULL if not known or needed. It may be the same as either of the inputs. |
int novas_itrf_transform_eop | ( | int | from_year, |
double | from_xp, | ||
double | from_yp, | ||
double | from_dut1, | ||
int | to_year, | ||
double *restrict | to_xp, | ||
double *restrict | to_yp, | ||
double *restrict | to_dut1 | ||
) |
Transforms Earth orientation parameters (xp, yp, dUT1) from one ITRF realization to another.
REFERENCES:
from_year | [yr] ITRF realization year of input coordinates / rates. E.g. 1992 for ITRF92. | |
[in] | from_xp | [arcsec] x-pole Earth orientation parameter (angle) in the input ITRF realization. |
[in] | from_yp | [arcsec] y-pole Earth orientation parameter (angle) in the input ITRF realization. |
[in] | from_dut1 | [s] UT1-UTC time difference in the input ITRF realization. |
to_year | [yr] ITRF realization year of input coordinates / rates. E.g. 2000 for ITRF2000. | |
[out] | to_xp | [arcsec] x-pole Earth orientation parameter (angle) in the output ITRF realization, or NULL if not required. |
[out] | to_yp | [arcsec] y-pole Earth orientation parameter (angle) in the output ITRF realization, or NULL if not required. |
[out] | to_dut1 | [s] UT1-UTC time difference in the output ITRF realization, or NULL if not required. |
References NOVAS_DAY, NOVAS_EARTH_FLATTENING, and TWOPI.