forward (self,
latlonh,
lon=None,
height=0,
M=False)
|
|
Convert from geodetic (lat, lon, height) to geocentric
(x, y, z).
- Arguments:
latlonh - Either a LatLon, an Ecef9Tuple or scalar latitude in
degrees.
lon - Optional scalar longitude in degrees
for scalar latlonh.
height - Optional height in meter, vertically above (or
below) the surface of the ellipsoid.
M - Optionally, return the rotation EcefMatrix (bool).
- Returns:
- An Ecef9Tuple
(x, y, z, lat, lon, height, C,
M, datum) with geocentric (x, y, z)
coordinates for the given geodetic ones (lat, lon,
height), case C 0, optional EcefMatrix M and datum
if available.
- Raises:
EcefError - If latlonh not LatLon, Ecef9Tuple or scalar or
lon not scalar for
scalar latlonh or
abs(lat) exceeds 90°.
- Overrides:
_EcefBase.forward
Note:
Let v be a unit vector located at (lat, lon,
h). We can express v as column vectors in one
of two ways, v1 in east, north, up coordinates (where
the components are relative to a local coordinate system at
C(lat0, lon0, h0)) or as v0 in geocentric
x, y, z coordinates. Then, v0 = M ⋅
v1 where M is the rotation matrix.
|