/ cyvincenty Public

Cython-optimized implementation of Vincenty's distance formula

You must be signed in to change notification settings

# dmsul/cyvincenty

## Folders and files

NameName
Last commit message
Last commit date

# cy-vincenty

Update [May 2019]: `cyvincenty` now uses multiple cores by default.

`cyvincenty` is a simple Cython implementation of Vincenty's inverse formula to find the distance between two latitude-longitude points. Rough testing shows that `cyvincenty` is 1000 to 2000 times faster than ArcPy 10.3 (`cyvincenty` calculates 1000 distances in .0016 seconds vs. ArcPy's 3.2 seconds).

This package contains two functions, `vincenty` and `vincenty_cross`.

`vincenty` finds the distance between two points:

```from cyvincenty import vincenty

x1, y1 = -118, 32
x2, y2 = -117, 31

dist_km = vincenty(x1, y1, x2, y2)```

`vincenty_cross` finds the all the distances between two sets of points (like `scipy.spatial.distance.cdist`).

```import numpy as np
from cyvincenty import vincenty_cross

x1 = np.linspace(-118, -117, 100, dtype=np.float32)
y1 = np.linspace(32, 34, 100, dtype=np.float32)

x2 = np.linspace(-112, -110, 35, dtype=np.float32)
y2 = np.linspace(35, 37, 35, dtype=np.float32)

# A 100-by-35 numpy array
dist_km = vincenty_cross(x1, y1, x2, y2)```

# Installation

Just clone the repository and run

`\$ python setup.py install`

If you're using Windows, you will need to jump through the necessary hoops so Python can find your C compiler. Installing Visual Studio is the most straightforward route, but make sure you install the C/C++ command line interface (CLI) tools! If you're using Visual Studio, the easiest route is to run `setup.py` in a Visual Studio Developer console.

Cython-optimized implementation of Vincenty's distance formula

## Releases

No releases published

## Packages 0

No packages published