Calculate the distance between 2 points on Earth.
Project description
Haversine
Calculate the distance (in various units) between two points on Earth using their latitude and longitude.
Installation
$ pip install haversine
Usage
Calculate the distance between Lyon and Paris
from haversine import haversine, Unit
lyon = (45.7597, 4.8422) # (lat, lon)
paris = (48.8567, 2.3508)
haversine(lyon, paris)
>> 392.2172595594006 # in kilometers
haversine(lyon, paris, unit=Unit.MILES)
>> 243.71201856934454 # in miles
# you can also use the string abbreviation for units:
haversine(lyon, paris, unit='mi')
>> 243.71201856934454 # in miles
haversine(lyon, paris, unit=Unit.NAUTICAL_MILES)
>> 211.78037755311516 # in nautical miles
The haversine.Unit
enum contains all supported units:
import haversine
print(tuple(haversine.Unit))
outputs
(<Unit.FEET: 'ft'>, <Unit.INCHES: 'in'>, <Unit.KILOMETERS: 'km'>,
<Unit.METERS: 'm'>, <Unit.MILES: 'mi'>, <Unit.NAUTICAL_MILES: 'nmi'>)
Performance optimisation for distances between all points in two vectors
You will need to add numpy in order to gain performance with vectors.
You can then do this:
from haversine import haversine_vector, Unit
lyon = (45.7597, 4.8422) # (lat, lon)
paris = (48.8567, 2.3508)
new_york = (40.7033962, -74.2351462)
haversine_vector([lyon, lyon], [paris, new_york], Unit.KILOMETERS)
>> array([ 392.21725956, 6163.43638211])
It is generally slower to use haversine_vector
to get distance between two points, but can be really fast to compare distances between two vectors.
Contributing
Clone the project.
Install pipenv.
Run pipenv install --dev
Launch test with pipenv run pytest
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
haversine-2.2.0.tar.gz
(3.8 kB
view hashes)
Built Distribution
Close
Hashes for haversine-2.2.0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 157982c06bf77de8b8a535e5a372baa8a2f8aa0e109eb8d3adef2c5ea13a7d47 |
|
MD5 | d95aaca1286eb02036bb88b1e768f351 |
|
BLAKE2b-256 | 728e6df8b563dd6b2961a36cd740b34c00b89142f1b97d92092c133379b2973f |