PyEQSP is built on the mathematical framework for partitioning the unit sphere Sᵈ into regions of equal area.
The EQ algorithm partitions the unit sphere
- Equal Area: Every region in a partition has exactly the same measure (area).
-
Small Diameter: The regions are designed to be as "round" as possible, with a diameter that remains small as
$N$ increases. - Recursive Logic: The partitioning process is defined recursively across dimensions.
While most applications focus on the physical 2-sphere (
-
$S^1$ (Circle): Simple angular partitioning. -
$S^2$ (Sphere): The world-standard sphere, used in geophysics and climate modelling. -
$S^3$ (3-sphere): Essential for applications involving quaternions and rotations (SO(3)). -
$S^d$ (High-dimensional spheres): Generalized logic for any$d \ge 1$ .
To support different research backgrounds, PyEQSP provides utilities for converting between common coordinate conventions:
- Latitude/Longitude: Standard for geospatial applications.
- Colatitude/Azimuth: Common in physics and mathematical modelling.
Points on the sphere are represented as unit vectors in
- For
$S^2$ , points are$(x, y, z)$ where$x^2 + y^2 + z^2 = 1$ .
The core logic resides in the eqsp package.
A unique feature of the Python implementation is the even_collars option. When enabled, this ensures that the Equatorial plane (
- Splitting the sphere into identical North/South hemispheres.
- Precise mapping of
$S^3$ to SO(3) for quaternion sampling.