EarthScienceKit
Inspectable Earth-system computations for learning and teaching.
EarthScienceKit 0.2.0 follows the MathematicsKit family structure with seven subpackages and 171 domain models: 162 algebraic equations and nine sampled dynamic models. Every model documents its units, input bounds and applicability. NumPy and SciPy supply mature numerical foundations.
| Subpackage | Models | Focus |
|---|---|---|
plate_tectonics |
23 | Euler rotation, spreading, subduction, isostasy, flexure, convection, hotspots, cooling |
seismology |
23 | Elastic, surface and head waves, rays, interfaces, magnitudes, pulses, rebound |
atmosphere |
22 | Hydrostatics, dry thermodynamics, humidity, stratification, rotation, Rossby waves, barotropic vorticity |
climate |
24 | Radiation, greenhouse layers, insolation, forcing, feedback, ice-albedo hysteresis, red noise, heat storage, carbon and sea level |
oceanography |
24 | Tides, trochoidal and dispersive waves, density and TEOS-10 cabbeling, dynamic method, Ekman spiral, gyres, two-box overturning, abyssal mixing |
geophysics |
31 | Gravity anomalies, normal gravity and flattening, satellite J2, Stokes's geoid, dipole and Gauss coefficients, paleomagnetic poles, reversal anomalies, Love numbers, GRACE water, Rikitake dynamo |
volcanology |
24 | Decay and radiometric ages, radiocarbon, Pb-Pb, concordia and isochron dating, Rayleigh and crystal fractionation, lattice strain, isotope thermometry, magma viscosity and ascent, Mogi inflation, plume and column heights, VEI |
Install and explore
python -m pip install earthsciencekit
# Or from a checkout:
python -m pip install -e '.[dev]'
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()
animation = result.animate(interval=40)
SI units apply unless an argument explicitly states otherwise. Latitude and angles use radians. Algebraic functions accept scalars and broadcast arrays; finite real quantities and physical bounds are validated. Unit conversions are explicit. Sampled histories copy their arrays, retain labels and support plots and animation export.
Documentation and validation
The Sphinx site has Subpackages, History, Examples and API entry points, MathematicsKit-style cards/hubs and cross-links. Seven history pages connect at least fifteen dated breakthroughs each to the APIs; seven guides explain equations, conventions and independent checks. One executed gallery script per breakthrough provides figures and Python/notebook downloads.
MPLBACKEND=Agg python -m pytest --cov=earthsciencekit --cov-report=term-missing
python -m ruff check .
python -m ruff format --check .
MPLBACKEND=Agg python -m sphinx -E -W --keep-going -b html docs/source docs/_build/html
python -m build
Coverage enforces 100% of production statements, including validators and
visualization; test files alone are omitted. This metric does not establish
physical applicability. Tests include independent analytic solutions,
conservation balances, limiting cases and invalid-input contracts. Exact release
results are in VERIFICATION.md; model limits are in docs/source/limitations.rst.
The documentation is hosted at https://cpoli.github.io/earthsciencekit/, and
notebooks/quickstart.ipynb runs in Colab from the badge above.
Contribute
See CONTRIBUTING.md. Educational models should have explicit equations, units, assumptions, independent benchmarks and an executable example. The MIT license is in LICENSE. Please cite this software using CITATION.cff.
Metadata
Release files for earthsciencekit 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| earthsciencekit-0.2.0.tar.gz | 103.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| earthsciencekit-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 234.6 kB
Release files / earthsciencekit-0.2.0.tar.gz
| Download URL | earthsciencekit-0.2.0.tar.gz |
|---|---|
| Size | 103.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
519a0ce8ad252422d61569368edab501becbf0690278b55200f1e0e0b83ddba1
|
|
BLAKE2b-256 checksum How to use checksums |
2c0d377a9f875922802bfc7cc1eb1f7ad92a78ad7d52517d332cabfbc27d9dd8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 17, 2026.
Transparency logRelease files / earthsciencekit-0.2.0-py3-none-any.whl
| Download URL | earthsciencekit-0.2.0-py3-none-any.whl |
|---|---|
| Size | 131.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6e2ad74c6ae53aedd5fdbb03039073aa4312f7f6cc4c8228c9e4ed8df031d840
|
|
BLAKE2b-256 checksum How to use checksums |
8c49ec4e711d7703cfd943eb813d7cbb672ea15b5838259a19429a08087eafa0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 17, 2026.
Transparency log