Skip to main content

Calculate the distance between 2 points on Earth.

Project description

Haversine Build Status

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


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 details)

Uploaded Source

Built Distribution

haversine-2.2.0-py2.py3-none-any.whl (4.9 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file haversine-2.2.0.tar.gz.

File metadata

  • Download URL: haversine-2.2.0.tar.gz
  • Upload date:
  • Size: 3.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/44.0.0 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/3.7.3

File hashes

Hashes for haversine-2.2.0.tar.gz
Algorithm Hash digest
SHA256 b710aaf32c442a6d04aa89678be55e3f6c11f9752fc01c216e89b13120b36269
MD5 6b1badeb63aac6214c978d07a4ecd171
BLAKE2b-256 23a626ae8d984e8aada22fe926aa8eabeb8453eb174bcad0111ddabb64a3e151

See more details on using hashes here.

File details

Details for the file haversine-2.2.0-py2.py3-none-any.whl.

File metadata

  • Download URL: haversine-2.2.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 4.9 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/44.0.0 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/3.7.3

File hashes

Hashes for haversine-2.2.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 157982c06bf77de8b8a535e5a372baa8a2f8aa0e109eb8d3adef2c5ea13a7d47
MD5 d95aaca1286eb02036bb88b1e768f351
BLAKE2b-256 728e6df8b563dd6b2961a36cd740b34c00b89142f1b97d92092c133379b2973f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page