Package pygeodesy :: Module rhumbBase :: Class RhumbLineBase
[frames] | no frames]

Class RhumbLineBase

  object --+            
           |            
named._Named --+        
               |        
named._NamedBase --+    
                   |    
    karney._CapsBase --+
                       |
                      RhumbLineBase
Known Subclasses:

(INTERNAL) Base class for rhumbaux.RhumbLineAux and rhumbx.RhumbLine.

Instance Methods
 
ArcPosition(self, a12, outmask=384)
Compute a point at a given angular distance on this rhumb line.
 
Inverse(self, lat2, lon2, wrap=False)
Return the rhumb angle, distance, azimuth, reverse azimuth, etc.
 
Position(self, s12, outmask=384)
Compute a point at a given distance on this rhumb line.
 
__del__(self)
 
__init__(self, rhumb, lat1, lon1, azi12, caps=3968, name='')
New RhumbLine.
 
degrees2m(self, angle)
Convert an angular distance along this rhumb line to meter.
 
distance2(self, lat, lon)
DEPRECATED, use method RhumbLineAux.Inverse or RhumbLine.Inverse.
 
intersection2(self, other, tol=1.4901161193847656e-08, **eps)
Iteratively find the intersection of this and an other rhumb line.
 
m2degrees(self, distance)
Convert a distance along this rhumb line to an angular distance.
 
nearestOn4(self, lat, lon, tol=1.4901161193847656e-08, exact=None, eps=2.220446049250313e-16, est=None)
Iteratively locate the point on this rhumb line nearest to the given point, in part transcoded from Karney's C++ rhumb-intercept.
 
toStr(self, prec=6, sep=', ', **unused)
Return this RhumbLine as string.

Inherited from karney._CapsBase: caps_

Inherited from named._NamedBase: __repr__, __str__, others, toRepr

Inherited from named._Named: __imatmul__, __matmul__, __rmatmul__, attrs, classof, copy, dup, methodname, rename, toStr2

Inherited from object: __delattr__, __format__, __getattribute__, __hash__, __new__, __reduce__, __reduce_ex__, __setattr__, __sizeof__, __subclasshook__

Class Variables

Inherited from karney._CapsBase: ALL, AREA, AZIMUTH, DISTANCE, DISTANCE_IN, EMPTY, GEODESICSCALE, LATITUDE, LINE_OFF, LONGITUDE, LONG_UNROLL, REDUCEDLENGTH, STANDARD

Properties
  TMorder
Get this rhumb line's Transverse Mercator order (int, 4, 5, 6, 7 or 8).
  azi12
Get this rhumb line's azimuth (compass degrees).
  azi12_sincos2
Get the sine and cosine of this rhumb line's azimuth (2-tuple (sin, cos)).
  ellipsoid
Get this rhumb line's ellipsoid (Ellipsoid).
  exact
Get this rhumb line's exact option (bool).
  isLoxodrome
Is this rhumb line a loxodrome (True if non-meridional and non-parallel, False if parallel or None if meridional)?
  lat1
Get this rhumb line's latitude (degrees90).
  latlon1
Get this rhumb line's lat- and longitude (LatLon2Tuple(lat, lon)).
  lon1
Get this rhumb line's longitude (degrees180).
  rhumb
Get this rhumb line's rhumb (RhumbAux or Rhumb).
  xTM
Get this rhumb line's Transverse Mercator projection (ExactTransverseMercator if exact and ellipsoidal, otherwise KTransverseMercator for TMorder).

Inherited from karney._CapsBase: caps, debug

Inherited from named._Named: classname, classnaming, iteration, name, named, named2, named3, named4, sizeof

Inherited from object: __class__

Method Details

ArcPosition (self, a12, outmask=384)

 

Compute a point at a given angular distance on this rhumb line.

Arguments:
  • a12 - The angle along this rhumb line from its origin to the point (degrees), can be negative.
  • outmask - Bit-or'ed combination of Caps values specifying the quantities to be returned.
Returns:
GDict with 4 to 8 items azi12, a12, s12, S12, lat2, lon2, lat1, lon1 with latitude lat2 and longitude lon2 of the point in degrees, the rhumb distance s12 in meter from the start point of and the area S12 under this rhumb line in meter squared.
Raises:
  • ImportError - Package numpy not found or not installed, only required for RhumbLineAux area S12 when exact is True.

Note: If a12 is large enough that the rhumb line crosses a pole, the longitude of the second point is indeterminate and NAN is returned for lon2 and area S12.

If the first point is a pole, the cosine of its latitude is taken to be sqrt(EPS). This position is extremely close to the actual pole and allows the calculation to be carried out in finite terms.

Inverse (self, lat2, lon2, wrap=False)

 

Return the rhumb angle, distance, azimuth, reverse azimuth, etc. of a rhumb line between the given point and this rhumb line's start point.

Arguments:
  • lat2 - Latitude of the point (degrees).
  • lon2 - Longitude of the points (degrees).
  • wrap - If True, wrap or normalize and unroll lat2 and lon2 (bool).
Returns:
GDict with 8 items a12, s12, azi12, azi21, lat1, lon1, lat2, lon2, the rhumb angle a12 and rhumb distance s12 between both points in degrees respectively meter, the rhumb line's azimuth azi12 and reverse azimuth azi21 both in compass degrees between -180 and +180.

Position (self, s12, outmask=384)

 

Compute a point at a given distance on this rhumb line.

Arguments:
  • s12 - The distance along this rhumb line from its origin to the point (meters), can be negative.
  • outmask - Bit-or'ed combination of Caps values specifying the quantities to be returned.
Returns:
GDict with 4 to 8 items azi12, a12, s12, S12, lat2, lon2, lat1, lon1 with latitude lat2 and longitude lon2 of the point in degrees, the rhumb angle a12 in degrees from the start point of and the area S12 under this rhumb line in meter squared.
Raises:
  • ImportError - Package numpy not found or not installed, only required for RhumbLineAux area S12 when exact is True.

Note: If s12 is large enough that the rhumb line crosses a pole, the longitude of the second point is indeterminate and NAN is returned for lon2 and area S12.

If the first point is a pole, the cosine of its latitude is taken to be sqrt(EPS). This position is extremely close to the actual pole and allows the calculation to be carried out in finite terms.

__init__ (self, rhumb, lat1, lon1, azi12, caps=3968, name='')
(Constructor)

 

New RhumbLine.

Overrides: object.__init__

degrees2m (self, angle)

 

Convert an angular distance along this rhumb line to meter.

Arguments:
  • angle - Angular distance (degrees).
Returns:
Distance (meter).

distance2 (self, lat, lon)

 

DEPRECATED, use method RhumbLineAux.Inverse or RhumbLine.Inverse.

Returns:
A Distance2Tuple(distance, initial) with the distance in meter and initial bearing (azimuth) in degrees.
Decorators:
  • @deprecated_method

intersection2 (self, other, tol=1.4901161193847656e-08, **eps)

 

Iteratively find the intersection of this and an other rhumb line.

Arguments:
  • other - The other rhumb line (RhumbLine).
  • tol - Tolerance for longitudinal convergence and parallel error (degrees).
  • eps - Tolerance for pygeodesy.intersection3d3 (EPS).
Returns:
A LatLon2Tuple{(lat, lon)} with the lat- and longitude of the intersection point.
Raises:
  • IntersectionError - No convergence for this tol or no intersection for an other reason.

See Also: Methods distance2 and nearestOn4 and function pygeodesy.intersection3d3.

Note: Each iteration involves a round trip to this rhumb line's ExactTransverseMercator or KTransverseMercator projection and invoking function pygeodesy.intersection3d3 in that domain.

m2degrees (self, distance)

 

Convert a distance along this rhumb line to an angular distance.

Arguments:
  • distance - Distance (meter).
Returns:
Angular distance (degrees).

nearestOn4 (self, lat, lon, tol=1.4901161193847656e-08, exact=None, eps=2.220446049250313e-16, est=None)

 

Iteratively locate the point on this rhumb line nearest to the given point, in part transcoded from Karney's C++ rhumb-intercept.

Arguments:
  • lat - Latitude of the point (degrees).
  • lon - Longitude of the point (degrees).
  • tol - Longitudinal convergence tolerance (degrees) or the distance tolerance (C(meter)) when exact is None, respectively not None.
  • exact - If None, use a rhumb line perpendicular to this rhumb line, otherwise use an exact Geodesic... from the given point perpendicular to this rhumb line (bool or Geodesic...), see method Ellipsoid.geodesic_.
  • eps - Optional tolerance for pygeodesy.intersection3d3 (EPS), used only if exact is None.
  • est - Optional, initial estimate for the distance s13 of the intersection along this rhumb line (meter), used only if exact is not None.
Returns:
A NearestOn4Tuple(lat, lon, distance, normal) with the lat- and longitude of the nearest point on and the distance in meter to this rhumb line and the normal azimuth at the intersection.
Raises:
  • ImportError - Karney's geographiclib package not found or not installed.
  • IntersectionError - No convergence for this eps or no intersection for an other reason.

See Also: Methods distance2 and intersection2 and function pygeodesy.intersection3d3.

toStr (self, prec=6, sep=', ', **unused)

 

Return this RhumbLine as string.

Arguments:
  • prec - The float precision, number of decimal digits (0..9). Trailing zero decimals are stripped for prec values of 1 and above, but kept for negative prec values.
  • sep - Separator to join (str).
Returns:
RhumbLine (str).
Overrides: named._Named.toStr

Property Details

TMorder

Get this rhumb line's Transverse Mercator order (int, 4, 5, 6, 7 or 8).

Get method:
TMorder(self) - Get this rhumb line's Transverse Mercator order (int, 4, 5, 6, 7 or 8).
Set method:
_fset_error(inst, val) - Throws an AttributeError, always.
Delete Method:
_fdel(inst) - Zap the cached/memoized property value.

azi12

Get this rhumb line's azimuth (compass degrees).

Get method:
azi12(self) - Get this rhumb line's azimuth (compass degrees).
Set method:
azi12(self, azi12) - Set this rhumb line's azimuth (compass degrees).
Delete Method:
_fdel(inst) - Zap the cached/memoized property value.

azi12_sincos2

Get the sine and cosine of this rhumb line's azimuth (2-tuple (sin, cos)).

Get method:
azi12_sincos2(self) - Get the sine and cosine of this rhumb line's azimuth (2-tuple (sin, cos)).
Set method:
_fset_error(inst, val) - Throws an AttributeError, always.
Delete Method:
_fdel(inst) - Zap the cached/memoized property value.

ellipsoid

Get this rhumb line's ellipsoid (Ellipsoid).

Get method:
ellipsoid(self) - Get this rhumb line's ellipsoid (Ellipsoid).
Set method:
_fset_error(inst, val) - Throws an AttributeError, always.
Delete Method:
_fdel(inst) - Zap the cached/memoized property value.

exact

Get this rhumb line's exact option (bool).

Get method:
exact(self) - Get this rhumb line's exact option (bool).
Set method:
_fset_error(inst, val) - Throws an AttributeError, always.
Delete Method:
_fdel(inst) - Zap the cached/memoized property value.

isLoxodrome

Is this rhumb line a loxodrome (True if non-meridional and non-parallel, False if parallel or None if meridional)?

Get method:
isLoxodrome(self) - Is this rhumb line a loxodrome (True if non-meridional and non-parallel, False if parallel or None if meridional)?
Set method:
_fset_error(inst, val) - Throws an AttributeError, always.
Delete Method:
_fdel(inst) - Zap the cached/memoized property value.

See Also: Osborne's 2.5 Rumb lines and loxodromes, page 37.

lat1

Get this rhumb line's latitude (degrees90).

Get method:
lat1(self) - Get this rhumb line's latitude (degrees90).
Set method:
_fset_error(inst, val) - Throws an AttributeError, always.
Delete Method:
_fdel(inst) - Zap the cached/memoized property value.

latlon1

Get this rhumb line's lat- and longitude (LatLon2Tuple(lat, lon)).

Get method:
latlon1(self) - Get this rhumb line's lat- and longitude (LatLon2Tuple(lat, lon)).
Set method:
_fset_error(inst, val) - Throws an AttributeError, always.
Delete Method:
_fdel(inst) - Zap the cached/memoized property value.

lon1

Get this rhumb line's longitude (degrees180).

Get method:
lon1(self) - Get this rhumb line's longitude (degrees180).
Set method:
_fset_error(inst, val) - Throws an AttributeError, always.
Delete Method:
_fdel(inst) - Zap the cached/memoized property value.

rhumb

Get this rhumb line's rhumb (RhumbAux or Rhumb).

Get method:
rhumb(self) - Get this rhumb line's rhumb (RhumbAux or Rhumb).
Set method:
_fset_error(inst, val) - Throws an AttributeError, always.
Delete Method:
_fdel(inst) - Zap the cached/memoized property value.

xTM

Get this rhumb line's Transverse Mercator projection (ExactTransverseMercator if exact and ellipsoidal, otherwise KTransverseMercator for TMorder).

Get method:
xTM(self) - Get this rhumb line's Transverse Mercator projection (ExactTransverseMercator if exact and ellipsoidal, otherwise KTransverseMercator for TMorder).
Set method:
_fset_error(inst, val) - Throws an AttributeError, always.
Delete Method:
_fdel(inst) - Zap the cached/memoized property value.