Metadata-Version: 2.4
Name: soil-moisture-utac
Version: 1.0.0
Summary: Real critical soil moisture threshold science (Fu et al. 2024, Qiao et al. 2023) -- land-atmosphere feedback tipping parameter, no UTAC/CREP bridge
Project-URL: Homepage, https://github.com/GenesisAeon/soil-moisture-utac
Project-URL: Repository, https://github.com/GenesisAeon/soil-moisture-utac
Author: Römer, Johann
License: MIT
License-File: LICENSE
Requires-Python: >=3.11
Provides-Extra: dev
Requires-Dist: mypy>=1.10.0; extra == 'dev'
Requires-Dist: pre-commit>=3.7.0; extra == 'dev'
Requires-Dist: pytest-cov>=5.0.0; extra == 'dev'
Requires-Dist: pytest>=8.0.0; extra == 'dev'
Requires-Dist: ruff>=0.6.0; extra == 'dev'
Description-Content-Type: text/markdown

# soil-moisture-utac

[![GenesisAeon](https://img.shields.io/badge/GenesisAeon-P90-blue)](https://github.com/GenesisAeon)
[![CI](https://github.com/GenesisAeon/soil-moisture-utac/actions/workflows/ci.yml/badge.svg)](https://github.com/GenesisAeon/soil-moisture-utac/actions/workflows/ci.yml)
[![Python 3.11+](https://img.shields.io/badge/python-3.11%2B-blue)](https://www.python.org)
[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE)

GenesisAeon Package 90 — real critical soil moisture threshold science.
**Deliberately has no UTAC/CREP/AFET bridge** — see
[DISCLAIMER.md](DISCLAIMER.md).

## What's real here

- Fu et al. (2024, *Nature Communications*): global mean critical soil
  moisture (CSM) threshold of 0.19 m³/m³, ranging from 0.12 m³/m³ (arid)
  to 0.26 m³/m³ (humid) ecosystems.
- Qiao et al. (2023, *Nature Communications*): soil-moisture-atmosphere
  coupling contributes an estimated 0.68±0.38°C to end-of-century global
  land warming, with regional hotspots up to 2.4°C.
- Explicitly **not** framed as a bistable tipping element like AMOC or
  the Amazon — see [DISCLAIMER.md](DISCLAIMER.md).

## Quickstart

```bash
pip install soil-moisture-utac
```

```python
from soil_moisture_utac import is_water_limited, GLOBAL_MEAN_CSM_M3_M3

print(f"Global mean critical soil moisture: {GLOBAL_MEAN_CSM_M3_M3} m3/m3")
print(f"Water-limited at 0.10 m3/m3? {is_water_limited(0.10)}")
```

## Development

```bash
pip install -e ".[dev]"
pre-commit install
ruff check src tests
mypy src
pytest
```

## Citation

See [CITATION.cff](CITATION.cff) and [.zenodo.json](.zenodo.json).
