Coverage for pyguymer3/geo/max_dist.py: 78%
18 statements
« prev ^ index » next coverage.py v7.9.2, created at 2025-07-08 18:47 +0000
« prev ^ index » next coverage.py v7.9.2, created at 2025-07-08 18:47 +0000
1#!/usr/bin/env python3
3# Define function ...
4def max_dist(
5 lons,
6 lats,
7 midLon,
8 midLat,
9 /,
10 *,
11 eps = 1.0e-12,
12 nIter = 100,
13 space = "EuclideanSpace",
14):
15 # Import special modules ...
16 try:
17 import numpy
18 except:
19 raise Exception("\"numpy\" is not installed; run \"pip install --user numpy\"") from None
21 # Import sub-functions ...
22 from .max_distSrc import max_dist_euclidean
23 from .max_distSrc import max_dist_geodesic
25 # **************************************************************************
27 # Check arguments ...
28 assert isinstance(lons, numpy.ndarray), "\"lons\" is not a NumPy array"
29 assert isinstance(lats, numpy.ndarray), "\"lats\" is not a NumPy array"
31 # **************************************************************************
33 # Check what space the user wants to measure in ...
34 match space:
35 case "EuclideanSpace":
36 # Check arguments ...
37 assert eps is None, "\"eps\" is not None but \"space\" is \"EuclideanSpace\""
38 assert nIter is None, "\"nIter\" is not None but \"space\" is \"EuclideanSpace\""
40 # Return answer ...
41 return max_dist_euclidean(
42 lons,
43 lats,
44 midLon,
45 midLat,
46 )
47 case "GeodesicSpace":
48 # Return answer ...
49 return max_dist_geodesic(
50 lons,
51 lats,
52 midLon,
53 midLat,
54 eps = eps,
55 nIter = nIter,
56 )
57 case _:
58 # Crash ...
59 raise ValueError(f"\"space\" is an unexpected value ({repr(space)})") from None