# Geodesic calculations¶

This module defines the Geodesic class which can interface with the Proj geodesic functions. See the Proj geodesic page for more background information.

class `cartopy.geodesic.``Geodesic`(radius=6378137.0, flattening=1 / 298.257223563)

Define an ellipsoid on which to solve geodesic problems.

Parameters: radius (float, optional) – Equatorial radius (metres). Defaults to the WGS84 semimajor axis (6378137.0 metres). flattening (float, optional) – Flattening of ellipsoid. Setting flattening = 0 gives a sphere. Negative flattening gives a prolate ellipsoid. If flattening > 1, set flattening to 1/flattening. Defaults to the WGS84 flattening (1/298.257223563).
`circle`(self, double lon, double lat, double radius, int n_samples=180, endpoint=False)

Find a geodesic circle of given radius at a given point.

Parameters: lon (float) – Longitude coordinate of the centre. lat (float) – Latitude coordinate of the centre. radius (float) – The radius of the circle (metres). n_samples (int, optional) – Integer number of sample points of circle. endpoint (bool, optional) – Whether to repeat endpoint at the end of returned array. `numpy.ndarray`, shape=(n_samples, 2) – The evenly spaced longitude-latitude points on the circle.
`direct`(self, points, azimuths, distances)

Solve the direct geodesic problem where the length of the geodesic is specified in terms of distance.

Can accept and broadcast length 1 arguments. For example, given a single start point and distance, an array of different azimuths can be supplied to locate multiple endpoints.

Parameters: points (array_like, shape=(n or 1, 2)) – The starting longitude-latitude point(s) from which to travel. azimuths (float or array_like with shape=(n, )) – List of azimuth values (degrees). distances (float or array_like with shape(n, )) – List of distances values (metres). `numpy.ndarray`, shape=(n, 3) – The longitudes, latitudes, and forward azimuths of the located endpoint(s).
`geometry_length`(self, geometry)

Return the distance (in physical meters) of the given Shapely geometry.

The geometry is assumed to be in spherical (lon, lat) coordinates.

Parameters: geometry (`shapely.geometry.BaseGeometry`) – The Shapely geometry to compute the length of. For polygons, the exterior length will be calculated. For multi-part geometries, the sum of the parts will be computed.
`inverse`(self, points, endpoints)

Solve the inverse geodesic problem.

Can accept and broadcast length 1 arguments. For example, given a single start point, an array of different endpoints can be supplied to find multiple distances.

Parameters: points (array_like, shape=(n or 1, 2)) – The starting longitude-latitude point(s) from which to travel. endpoints (array_like, shape=(n or 1, 2)) – The longitude-latitude point(s) to travel to. `numpy.ndarray`, shape=(n, 3) – The distances, and the (forward) azimuths of the start and end points.