Differentiable Earth System Coupler
Project description
dCoupler
Differentiable Earth System Coupler — a PyTorch-based framework for building differentiable coupling graphs between hydrological and earth system model components.
Quickstart
pip install dcoupler
import torch
import dcoupler as dc
# Define two components
class Bucket(dc.DifferentiableComponent):
...
class Router(dc.DifferentiableComponent):
...
# Build coupling graph
graph = dc.CouplingGraph()
graph.add_component(bucket)
graph.add_component(router)
graph.connect("bucket", "runoff", "router", "lateral_inflow")
# Run forward
outputs = graph.forward(external_inputs, n_timesteps=365, dt=86400)
# Optimize via backprop
loss = loss_fn(outputs, observations)
loss.backward()
optimizer.step()
Component Types
| Type | Gradient | Use Case |
|---|---|---|
DifferentiableComponent |
PyTorch autograd | Pure PyTorch models |
JAXComponent |
JAX vjp via bridge | JAX models (XAJ, SAC-SMA, Snow-17) |
ProcessComponent |
None / finite diff | External executables (SUMMA, MESH) |
EnzymeComponent |
Enzyme AD | C++ models with Enzyme |
All component types implement the BMIMixin protocol for standardized
lifecycle management (initialize/update/finalize).
Optional Dependencies
pip install dcoupler[jax] # JAX bridge support
pip install dcoupler[models] # cfuse + droute components
pip install dcoupler[all] # Everything
License
Apache 2.0 — see LICENSE for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dcoupler-0.2.0.tar.gz.
File metadata
- Download URL: dcoupler-0.2.0.tar.gz
- Upload date:
- Size: 40.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
df6ab1d9a8700e8c16719aaba06428be8ad4c4bc5229b33d3e012ecf88b37033
|
|
| MD5 |
2e73c7b89788e6c18d4a69727b8541dd
|
|
| BLAKE2b-256 |
15cb9e9b424605923d0c655d4f18e3c12c921d169634b11cf53937eadfd11cc8
|
File details
Details for the file dcoupler-0.2.0-py3-none-any.whl.
File metadata
- Download URL: dcoupler-0.2.0-py3-none-any.whl
- Upload date:
- Size: 39.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
752d6ad4fe5a89032a1d8fbab1cc6ec4a9e39ab617fd866e272fc80eec7ea47f
|
|
| MD5 |
b41d5355263c063b9047c64389ef3ae7
|
|
| BLAKE2b-256 |
175d24da103def5a928632ef7a0a0b0c0f71b0becb1192de0c93be043be2f425
|