این صفحه هنوز ترجمه نشده است؛ نسخهٔ انگلیسی نمایش داده میشود.
Coordinate systems
This folder implements the coordinate systems used in geodesy, following the classical classification below:
Fig. 1: Relationship between geocentric, topocentric, and 2D coordinate systems
- Geocentric systems (origin at the Earth's center):
- IT — Instantaneous Terrestrial: tied to the true (instantaneous) rotation axis; related to CT through polar motion (x_P, y_P)
- CT — Conventional (Average) Terrestrial: the Earth-fixed frame the others are referred to
- G — Geodetic: latitude φ, longitude λ, height h on a reference ellipsoid; related to CT by the datum parameters (x₀, y₀, z₀, ε_X, ε_Y, ε_Z)
- Topocentric systems (origin at an observer on the surface):
- LA — Local Astronomic: aligned with the plumb line (astronomical Φ, Λ)
- LG — Local Geodetic: aligned with the ellipsoid normal (φ, λ); LA ↔ LG differ by the deflection of the vertical (ξ, η) and azimuth correction ΔA
- Celestial / orbital systems: AP — Apparent Places (related to IT through GAST), OR — Orbital
- Mappings take geodetic coordinates to 2D coordinate systems — implemented in
MapProjections
Systems in this folder
Each subfolder follows the same four-file pattern: the coordinate-system class, a strongly-typed …Point class, and their two interfaces. Points are generic over measurement units (e.g. Meter/Degree) from IRI.Maptor.Core.Common.Metrics.
| Folder | Coordinates | Used for |
|---|---|---|
Cartesian2D |
X, Y (LinearUnit) |
Planar/projected coordinates |
Cartesian3D |
X, Y, Z (LinearUnit) |
Geocentric frames (CT, IT) and datum shifts |
Polar |
Radius, Angle | 2D polar coordinates |
Curvilinear.Spherical |
Radius, HorizontalAngle, VerticalAngle | Spherical approximations, astronomy |
Curvilinear.Ellipsoidal |
HorizontalAngle, VerticalAngle + Datum |
Angular coordinates on a reference ellipsoid |
Curvilinear.Ellipsoidal/Curvilinear.Astronomical |
HorizontalAngle, VerticalAngle | Astronomical (plumb-line) coordinates — LA, AP, HA |
Curvilinear.Geodetic |
Latitude, Longitude, Height + Datum |
The geodetic system (G) — lat/lon/height on an ellipsoid |
Basic usage
GeodeticPoint<TLinear, TAngular> is the workhorse: a φ/λ/h position bound to a datum (Ellipsoids), convertible to geocentric Cartesian:
using IRI.Maptor.Core.Common.Metrics;
using IRI.Maptor.Core.SpatialReferenceSystem;
var point = new GeodeticPoint<Meter, Degree>(
Ellipsoids.WGS84,
new Meter(0), // ellipsoidal height
new Degree(51.123456), // longitude
new Degree(35.123456)); // latitude
var cartesian = point.ToCartesian<Meter>(); // geocentric X, Y, Z
Converting between systems
The static Transformations class implements the arrows of Fig. 1:
| Conversion | Methods |
|---|---|
| CT ↔ IT | AverageToInstantaneous / InstantaneousToAverage |
| CT ↔ G | AverageToGeodetic / GeodeticToAverage |
| G1 ↔ G2 (datum change) | ChangeDatum |
| CT ↔ LA | AverageToLocalAstronomic / LocalAstronomicToAverage |
| G ↔ LG | GeodeticToLocalGeodetic / LocalGeodeticToGeodetic |
| LA ↔ LG | LocalAstronomicToLocalGeodetic / LocalGeodeticToLocalAstronomic |
| LA ↔ HA | LocalAstronomicToHorizontalAngle / HorizontalAngleToLocalAstronomic |
| HA ↔ AP | HorizontalAngleToApparentPlace / ApparentPlaceToHorizontalAngle |
| IT ↔ AP | InstantaneousToApparentPlace / ApparentPlaceToInstantaneous |
| OR ↔ AP | OrbitalToApparentPlace / ApparentPlaceToOrbital |