Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions geodesy/lamberts_ellipsoidal_distance.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,26 @@ def lamberts_ellipsoidal_distance(
Returns:
geographical distance between two points in metres

>>> lamberts_ellipsoidal_distance(100, 0, 0, 0)
Traceback (most recent call last):
...
ValueError: Latitude must be between -90 and 90 degrees

>>> lamberts_ellipsoidal_distance(0, 0, -100, 0)
Traceback (most recent call last):
...
ValueError: Latitude must be between -90 and 90 degrees

>>> lamberts_ellipsoidal_distance(0, 200, 0, 0)
Traceback (most recent call last):
...
ValueError: Longitude must be between -180 and 180 degrees

>>> lamberts_ellipsoidal_distance(0, 0, 0, -200)
Traceback (most recent call last):
...
ValueError: Longitude must be between -180 and 180 degrees

>>> from collections import namedtuple
>>> point_2d = namedtuple("point_2d", "lat lon")
>>> SAN_FRANCISCO = point_2d(37.774856, -122.424227)
Expand All @@ -46,6 +66,14 @@ def lamberts_ellipsoidal_distance(
'9,737,326 meters'
"""

# Validate latitude values
if not -90 <= lat1 <= 90 or not -90 <= lat2 <= 90:
raise ValueError("Latitude must be between -90 and 90 degrees")

# Validate longitude values
if not -180 <= lon1 <= 180 or not -180 <= lon2 <= 180:
raise ValueError("Longitude must be between -180 and 180 degrees")

# CONSTANTS per WGS84 https://en.wikipedia.org/wiki/World_Geodetic_System
# Distance in metres(m)
# Equation Parameters
Expand Down
Loading