earthsciencekit: Earth-System Models in Python#

EarthScienceKit makes the equations behind 7 Earth-science domains computable, inspectable and visualizable. Choose a domain to explore its history, run its examples and inspect its API. NumPy and SciPy provide the numerical foundations; this package connects them to Earth-system concepts.

Plate cooling, seismic pulse, atmospheric pressure, climate warming and inertial current

Browse by domain#

Solid Earth

earthsciencekit.plate_tectonics

Euler plate motion, spreading, subduction, isostasy, flexure and lithosphere cooling.

earthsciencekit.plate_tectonics
earthsciencekit.seismology

Elastic wave speeds, reflection, seismic moment, source pulses and damped response.

earthsciencekit.seismology
earthsciencekit.volcanology

Radiometric dating, isotope and trace-element geochemistry, magma viscosity and ascent, ground deformation and eruption columns.

earthsciencekit.volcanology
earthsciencekit.geophysics

Gravity anomalies, the figure of the Earth, the geoid, the geomagnetic field, paleomagnetism and the dynamo.

earthsciencekit.geophysics

Fluid Earth and Climate

earthsciencekit.atmosphere

Hydrostatic balance, dry thermodynamics, moisture, rotation and parcel ascent.

earthsciencekit.atmosphere
earthsciencekit.climate

Radiative balance, forcing, heat storage, carbon baselines and climate adjustment.

earthsciencekit.climate
earthsciencekit.oceanography

Tides, waves, seawater density, geostrophy, the Ekman spiral, wind-driven gyres and thermohaline boxes.

earthsciencekit.oceanography

Start here#

Quickstart introduces the API. Numerical methods and sampled results explains sampled histories and solver choices. The model guides give equations, units, conventions and applicability limits. Validation policy documents the evidence behind this release and Scope and limitations describes its scope.

import numpy as np
from earthsciencekit.climate import simulate_one_box
from earthsciencekit.units import convert

time = convert(np.linspace(0, 100, 201), "year", "s")
result = simulate_one_box(4, 1.2, 2e8, time)
print(result.summary())
figure, axes = result.plot()

Related toolkits

Sibling Python toolkits for learning and teaching, built the same way: