Umami is a package for calculating objective functions or objective function
components for Earth surface dynamics modeling. It was designed to work well
with
terrainbento and other models built with the
Landlab Toolkit. Examples can be
found in the notebooks
directory (or on Binder
).
Umami offers two primary classes:
- a
Residual
, which represents the difference between model and data, and - a
Metric
, which is a calculated value on either model or data.
The set of currently supported calculations are found in the umami.calculations
submodule.
Umami was designed to provide an input-file based interface for calculating
single-value landscape metrics for use in model analysis. This supports
reproducible analysis and systematic variation in metric construction. When
used with terrainbento
one input file can describe the model run, and one
input file can describe the model assessment or model-data comparison. This
streamlines model analysis applications. Umami also provides multiple output
formats (YAML and Dakota), the latter of which is designed to interface with
Sandia National Laboratory's Dakota package.
To get a sense of how it is meant to be used, check out the notebooks on Binder and the API documentation.
To install the release version of umami (this is probably what you want) we support conda and pip package management.
Open a terminal and execute the following:
$ conda config --add channels conda-forge
$ conda install umami
Open a terminal and execute the following:
$ pip install umami
The source code is housed on GitHub. To install the umami from source code we recommend creating a conda environment.
$ git clone https://github.com/TerrainBento/umami.git
$ cd umami
$ conda env create -f environment-dev.yml
$ conda activate umami-dev
$ python setup.py install
If you are interested in developing umami, please check out the development practices page.
Documentation is housed on ReadTheDocs.
Umami uses Github Issue as a single point of contact for users and developers. To ask a question, report a bug, make a feature request, or to get in touch for any reason, please make an Issue.
All contributions are welcome and appreciated. Feel free to:
- Make an issue to ask a question. Your question will help others in the future.
- Make an issue to report a bug or a potential improvement. We will work to fix it. If you have an idea about how to fix it, please feel free to propose it, or make a Pull Request.
- Fork the repository, make changes to the source code on a development branch, and submit a Pull Request to have your changes brought into the umami repository. No contribution to the code base or documentation is too small.
Contributors and maintainers to this project are are expected to abide the Contributor Code of Conduct.
Umami is described by a Journal of Open Source Software paper. If you use umami in your research, please cite it.