Skip to content

Latitude-longitude grid

Dictionary: grid_params · Class: GridParams

Used by: planet, trace

Defines the latitude/longitude grid over which a global field/cutoff map is computed.

Key Type Default Description
maxlat float 90 Northern latitude bound (degrees).
minlat float -90 Southern latitude bound (degrees).
latstep float -5 Latitude step (degrees). Must be negative to iterate from maxlat down to minlat — a positive value triggers a warning and will likely produce an empty or unexpected grid.
maxlong float 360 Eastern longitude bound (degrees).
minlong float 0 Western longitude bound (degrees).
longstep float 5 Longitude step (degrees), from minlong up to maxlong.
array_of_lats_and_longs list or None None Optional explicit list of (latitude, longitude) pairs to use instead of generating a grid from the bounds/step above.
grid_type str "regular" planet only. "regular" builds the latitude/longitude grid above. "healpix" uses equal-area HEALPix pixel centres. "healpix_geomag" uses the same points with the rings laid out in centred-dipole (geomagnetic) coordinates for the requested date. "fibonacci" uses a golden-angle (Fibonacci) spiral. The equal-area types ignore the steps and bounds.
nside int 12 Resolution for the equal-area grid types: 12 * nside**2 points (the HEALPix count, also used for "fibonacci").

Equal-area grids

A regular grid puts the same number of points in every latitude row, so the points crowd together towards the poles. A 5° grid has 29% of its points poleward of ±60°, which is only 13% of the Earth's surface, and the cutoff there is near zero and barely changes. HEALPix points each cover the same area.

nside Points Spacing
10 1200 ~650 km
12 1728 ~550 km (like 5° at the equator)
16 3072 ~410 km
23 6348 ~290 km

The points are built as equal-area directions from the Earth's centre (geocentric). With inputcoord "GDZ" (the default) their latitudes are converted to WGS84 geodetic latitude, which moves them up to ~0.19° poleward at mid-latitudes. With "GEO" or "SPH" they stay geocentric.

The points are not on a latitude/longitude grid. To map them, interpolate on the sphere. A smooth interpolant, e.g. scipy.interpolate.RBFInterpolator with a cubic kernel on the 3-D unit vectors, worked best for Ru and Rc, and linear interpolation worked best for Rl and the transmission.

import OTSO

df, *_ = OTSO.planet(grid_params={"grid_type": "healpix_geomag", "nside": 12})