Taxicab metric on the sphere!
Project description
Seafarer ⛵
Taxicab metric on the sphere! Install via
pip install seafarer
This library calculates the "seafarer distance" between two points on Earth: Travel parallel to latitude and longitude instead of "as the crow flies" – like in the old days...
Usage
Calculate the distance between Schwerin and Helsinki:
from seafarer import seafarer_metric
schwerin = (53.629722, 11.414722) # (lat, lon)
helsinki = (60.170278, 24.952222)
seafarer_metric(schwerin, helsinki)
# 1474.7398906623202 kilometres
You can also obtain the result in different units:
seafarer_metric(schwerin, helsinki, unit="mi")
# 916.3608837507956 miles
seafarer_metric(schwerin, helsinki, unit="ft")
# 4838385.468052049 feet
Seafarer is using the haversine library
under the hood and you can use their Unit
directly:
from haversine import Unit
seafarer_metric(schwerin, helsinki, unit=Unit.NAUTICAL_MILES)
# 796.2958366185961 nautical miles
What is this? Why Seafarer?
On a 2-dimensional plane, the metric obtained when travelling along the axes is known as taxicab, Manhattan, or L1 metric. What is the equivalent on a 3-dimensional sphere?
We calculate the distance when travelling along the grid of longitudinal and latitudinal lines. When travelling from Schwerin (53°N 11°E) to Helsinki (60°N 24°E) in the example above, there are two possiblities: travel via 53°N 24°E or 60°N 11°E. Unlike the 2D case, these two distances are (generally) different, so we use the short one.
Before navigation improved to a sufficient degree, this is how ships were sailing: parallel to the equator until they hit the target meridian, then North or South to their final destination. Hence seafarer metric! ⛵
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file seafarer-0.1.0.tar.gz
.
File metadata
- Download URL: seafarer-0.1.0.tar.gz
- Upload date:
- Size: 5.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.40.2 CPython/3.7.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 752c42c7b6ccb72feb7867763551d60c04a6d0de3fbea486a981438cf41bb756 |
|
MD5 | e7b74b4de86675220edd6e4cb079656c |
|
BLAKE2b-256 | c74f04f4d3d8ca19e892154c6b493ef11e6ebbac4766c87c0d6a5902454832a5 |
File details
Details for the file seafarer-0.1.0-py2.py3-none-any.whl
.
File metadata
- Download URL: seafarer-0.1.0-py2.py3-none-any.whl
- Upload date:
- Size: 5.1 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.40.2 CPython/3.7.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ae994cced915d556a5ec3432fa5e503a03d4d5f42e2353200367ba25b98fb317 |
|
MD5 | 0d3b45122e2ccf9391928723e4a1ea9d |
|
BLAKE2b-256 | 6f72e05e05df7cf2df01676f6ee8f8d33e8d89aece2a60b442ad36eae1869132 |