sklearn.metrics.pairwise.haversine_distances¶

sklearn.metrics.pairwise.haversine_distances(X, Y=None)[source]

Compute the Haversine distance between samples in X and Y.

The Haversine (or great circle) distance is the angular distance between two points on the surface of a sphere. The first coordinate of each point is assumed to be the latitude, the second is the longitude, given in radians. The dimension of the data must be 2.

$D(x, y) = 2\arcsin[\sqrt{\sin^2((x_{lat} - y_{lat}) / 2) + \cos(x_{lat})\cos(y_{lat})\ sin^2((x_{lon} - y_{lon}) / 2)}]$
Parameters:
X{array-like, sparse matrix} of shape (n_samples_X, 2)

A feature array.

Y{array-like, sparse matrix} of shape (n_samples_Y, 2), default=None

An optional second feature array. If None, uses Y=X.

Returns:
distancendarray of shape (n_samples_X, n_samples_Y)

The distance matrix.

Notes

As the Earth is nearly spherical, the haversine formula provides a good approximation of the distance between two points of the Earth surface, with a less than 1% error on average.

Examples

We want to calculate the distance between the Ezeiza Airport (Buenos Aires, Argentina) and the Charles de Gaulle Airport (Paris, France).

>>> from sklearn.metrics.pairwise import haversine_distances