vibeproj.projections.equal_earth

Equal Earth projection (2018).

Modern equal-area pseudocylindrical projection with pleasing aesthetics. Polynomial formulas — closed-form forward and inverse. EPSG: 8857, 8858, 8859.

On the ellipsoid the input geodetic latitude is first converted to authalic latitude (β) so that equal-area properties are preserved. The polynomial formulas then operate on β. Inverse recovers geodetic latitude from β via the iterative q-inversion used by LAEA/CEA.

Classes

EqualEarth

Base class for all map projections.

Module Contents

class vibeproj.projections.equal_earth.EqualEarth

Bases: vibeproj.projections.base.Projection

Base class for all map projections.

Subclasses implement forward/inverse transforms that operate on arrays of coordinates. The xp parameter is the array module (numpy or cupy).

Projection math operates in radians on the ellipsoid. The pipeline handles degree/radian conversion, axis swapping, and false easting/northing.

name = 'eqearth'
setup(params: vibeproj.crs.ProjectionParams) dict

Compute derived parameters from projection params.

Called once at construction time. Returns a dict of computed params that will be passed to forward/inverse.

forward(lam, phi, params, computed, xp)

Forward projection: geographic (lon, lat in radians) -> projected (x, y in meters).

lam: longitude relative to central meridian (radians), array phi: latitude (radians), array Returns (x, y) in projection-native units (before false easting/northing and scale).

inverse(x, y, params, computed, xp)

Inverse projection: projected (x, y) -> geographic (lon, lat in radians).

x, y: projection-native units (after removing false easting/northing and scale). Returns (lam, phi) in radians, with lam relative to central meridian.