The Differentiable Parameter Learning Layered Green & Ampt with Redistribution (dpLGAR) model is a differentiable implementation of LGAR (see below). All operations of the model are coded using PyTorch to track gradients and tune model parameters.
The LASAM simulates infiltration and runoff based on Layered Green & Ampt with redistribution (LGAR) model. LGAR is a model which partitions precipitation into infiltration and runoff, and is designed for use in arid or semi arid climates. LGAR closely mimics precipitation partitioning results simulated by the famous Richards/Richardson equation (RRE), without the inherent reliability and stability challenges the RRE poses. Therefore, this model is useful when accurate, stable precipitation partitioning simulations are desired in arid or semi arid areas.
LGAR has its C version that is available here.
Published Papers:
- Layered Green & Ampt Infiltration with Redistribution https://doi.org/10.1029/2022WR033742
BibTeX:
@article{LaFollette_Ogden_Jan_2023,
title={Layered green & AMPT infiltration with redistribution},
DOI={10.1029/2022wr033742},
journal={Water Resources Research},
author={La Follette, Peter and Ogden, Fred L. and Jan, Ahmad},
year={2023}
}
Use conda to create your own env based on our environment.yml
file
conda env create -f environment.yml
conda activate lgar
We are using Hydra to store/manage configuration files.
The main branch code is currently configured to run the Phillipsburg, KS test case. If you want to use your own case, you will need to manage three config files located here:
dpLGAR/config.yaml
- The main config file. I recommend looking at the Hydra config docs here to learn how this file is structured.
dpLGAR/models/config/base.yaml
- This holds all config values for the models
dpLGAR/data/config/<site_name>.yaml
- This holds all config values for the dataset you're working on.
To run the code, just run the following command inside the dpLGAR/
folder:
python -m dpLGAR
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Please make sure to update tests as appropriate.
Project Template provided by: https://github.com/moemen95/Pytorch-Project-Template