dvm-dos-tem

A process based Dynamic Vegetation, Dynamic Organic Soil, Terrestrial Ecosystem Model.
https://github.com/uaf-arctic-eco-modeling/dvm-dos-tem

Category: Biosphere
Sub Category: Plants and Vegetation

Keywords

arctic boreal carbon carbon-cycling cryosphere ecosystem-modeling fire-dynamics permafrost permafrost-dynamics soil-thermal-dynamics terrestrial-ecosystem-modeling vegetation-dynamics

Keywords from Contributors

transforms measur archiving ecosystem-model conversion observation compose plants optimize projection

Last synced: about 16 hours ago
JSON representation

Repository metadata

A process based Dynamic Vegetation, Dynamic Organic Soil, Terrestrial Ecosystem Model.

README.md

README for dvm-dos-tem

DOI
Slack

The dvm-dos-tem (dvmdostem) model is a process based bio-geo-chemical
ecosystem model that focuses on C and N cycles, vegetation dynamics and soil
thermal dynamics in high latitude ecosystems.

For more information see the User Guide.

For questions and to get involved please see the Github Issues and Github Discussions.

[!NOTE]
Whats with the name? dvm-dos-tem is short for "Dynamic
Vegetation [Model] Dynamic Organic Soil Terrestrial
Ecosystem Model". Orignally the model was simply "TEM", and as more
logic and capabilities have been added, the name has grown. We still
frequently use simply "TEM" because it is less cumbersome for writing and
typing. In most context TEM, dvmdostem, dvm-dos-tem, DVM-DOS-TEM and DMVDOSTEM
are synonomous and can be used interchangably.

Quickstart

For users who have Docker and Git installed and some familiarity with the
command line.

More details are available in the User Guide - Basic Model Setup and Run.

[!TIP]
These instructions should work for users with Podman
rather than Docker, but several additional steps may be necessary to ensure
that Podman can run with non-root access. See this
issue
for more information.

The settings shown here will use the input data that is shipped with the code in the
repository's demo-data/ directory. The run will output a single variable (GPP),
and will run for 2 pixels.

Clone the repository and change into the directory:

$ git clone https://github.com/uaf-arctic-eco-modeling/dvm-dos-tem.git
$ cd dvm-dos-tem

Make yourself locations for input data and your modeling workflows. We don't
actually use the input directory for this quickstart, but creating it and setting
the env variable below prevents some warnings.

$ mkdir -p /home/whoever/my-stuff/input
$ mkdir -p /home/whoever/my-stuff/workflows

On some systems you will need to make Docker usable by non-root users. See here.

Build Docker images. For this demo we only build 2 of the images. For your needs
you might want to build the other images. See ./docker-build-wrapper.sh --help for
more info.

$ ./docker-build-wrapper.sh cpp-dev
$ ./docker-build-wrapper.sh dev

Setup your environment variables V_TAG, DDT_INPUT_CATALOG, and DDT_WORKFLOWS.
You can do this in a .env file, your .bashrc, or by exporting them to your shell.
For example using the .env file:

$ echo "DDT_INPUT_CATALOG=/home/whoever/my-stuff/input" >> .env
$ echo "DDT_WORKFLOWS=/home/whoever/my-stuff/workflows" >> .env
$ echo "V_TAG=$(git describe)" >> .env

Start the Docker containers:

$ docker compose up -d dvmdostem-dev

Obtain a shell in the container:

$ docker compose exec dvmdostem-dev bash

Compile the code:

develop@56ef79004e31:/work$ make

Setup a working directory for your model run and change into it. The setup_working_directory.py
script bootstraps a new directory to hold your model run. This includes a few configuraiton files
and a folder for the outputs.

devleop@56ef79004e31:/work$ setup_working_directory.py --input-data-path demo-data /data/workflows/sample_run
devleop@56ef79004e31:/work$ cd /data/workflows/sample_run

Adjust run mask, config, outputs as necessary. The default settings should
run 1 or 2 pixels and produce outputs for GPP. There are more tools provided in the
scripts/ directory for working with the config file, run mask, output specificaitons
and parameters.

Start the model run:

develop@56ef79004e31:/data/workflows/sample_run$ ./dvmdostem --log-level monitor -p 100 -e 1000 -s 250 -t 115 -n 85

Visualize run:

develop@56ef79004e31:/data/workflows/sample_run$ /work/scripts/viewers/plot_output_var.py --yx 0 0 --file output/GPP_yearly_tr.nc

GPP_plot_output_var

Testing and Continuous Integration (CI)

This project has a very basic CI workflow implemented using Github Actions. When
a pull request is made to the master branch, an action is run that checks out
the code, builds one of the Docker images, compiles the dvmdostem binary and
runs the model using the demo data for a short number of years. This test does
not confirm any of the scientific aspects of the model and does not exercise any
of the supporting pre- and post-processing tools. Extending and improving the
CI coverage remains an open project. We would like for future development to
improve overall test coverage and setup more actions to run the tests. For more
information about the testing and CI, see the Testing and Deployment of the User Guide.

[!WARNING]
Sept 2022 - We are in the process of updating the entire documentation
system. There is still info scattered across this README, the wiki, a Google
Doc and the Sphinx system but we are working on consolidating the info into
primarily the Sphinx system (the User Guide).

Citation (CITATION.cff)

# cff-version: 1.2.0
title: "DVMDOSTEM"

message: >-
  If you use this software, please cite it using the
  metadata from this file.
type: software
identifiers:
  - type: doi
    value: 10.5281/zenodo.4281497
    description: "Latest release of DVMDOSTEM software"
repository-code: "https://uaf-arctic-eco-modeling/dvm-dos-tem"
url: >-
  https://uaf-arctic-eco-modeling.github.io/dvm-dos-tem/index.html#
abstract: >-
  `DVMDOSTEM` is an advanced process-based terrestrial
  ecosystem model (TEM) designed to study ecosystem responses to climate changes
  and disturbances. It has a particular focus on permafrost regions (i.e. regions
  characterized by soils that stay partially frozen all year round for at
  least two consecutive years), encompassing boreal, arctic, and alpine landscapes.
keywords:
  - C++
  - Python
  - Ecology
  - Terrestrial Ecology
  - Arctic
  - Boreal
  - Permafrost
  - Cryosphere
  - Tundra
license: MIT
authors:
  - family-names: "Carman"
    given-names: "Tobey B"
    orcid: "https://orcid.org/0000-0003-4617-4674"
    affiliation: "Institute of Arctic Biology, University of Alaska Fairbanks, Fairbanks 99775, Alaska, USA"

  - family-names: "Genet"
    given-names: "Hélène"
    orcid: "https://orcid.org/0000-0003-4537-9563"
    affiliation: "Institute of Arctic Biology, University of Alaska Fairbanks, Fairbanks 99775, Alaska, USA"

  - family-names: "Rutter"
    given-names: "Ruth A"
    orcid: "https://orcid.org/0009-0009-7043-6081"
    affiliation: "Institute of Arctic Biology, University of Alaska Fairbanks, Fairbanks 99775, Alaska, USA"

  - family-names: "Jafarov"
    given-names: "Elchin"
    orcid: "https://orcid.org/0000-0002-8310-3261"
    affiliation: "Woodwell Climate Research Center, Falmouth 02540, Massachusetts, USA"

  - family-names: "Euskirchen"
    given-names: "Eugénie"
    orcid: "https://orcid.org/0000-0002-0848-4295"
    affiliation: "Institute of Arctic Biology, University of Alaska Fairbanks, Fairbanks 99775, Alaska, USA"

  - family-names: "Maglio"
    given-names: "Ben"
    orcid: "https://orcid.org/0000-0002-1948-0177"
    affiliation: "Institute of Arctic Biology, University of Alaska Fairbanks, Fairbanks 99775, Alaska, USA"

  - family-names: "Clein"
    given-names: "Joy"
    orcid: "https://orcid.org/0000-0002-2816-5312"
    affiliation: "Institute of Arctic Biology, University of Alaska Fairbanks, Fairbanks 99775, Alaska, USA"

  - family-names: "Briones"
    given-names: "Valeria"
    orcid: "https://orcid.org/0000-0002-5649-851X"
    affiliation: "Woodwell Climate Research Center, Falmouth 02540, Massachusetts, USA"

  - family-names: "Mullen"
    given-names: "Andrew L"
    orcid: "https://orcid.org/0000-0002-9127-9996"
    affiliation: "Woodwell Climate Research Center, Falmouth 02540, Massachusetts, USA"

  - family-names: "Greaves"
    given-names: "Heather"
    orcid: "https://orcid.org/0000-0002-8800-019X"
    affiliation: "Institute of Arctic Biology, University of Alaska Fairbanks, Fairbanks 99775, Alaska, USA"

  - family-names: "McGuire"
    given-names: "A. D."
    orcid: "https://orcid.org/0000-0003-4646-0750"
    affiliation: "Institute of Arctic Biology, University of Alaska Fairbanks, Fairbanks 99775, Alaska, USA"

  - family-names: "Yuan"
    given-names: "Fengming"
    orcid: "https://orcid.org/0000-0003-0910-5231"
    affiliation: "Environmental Science Division and Climate Change Science Institute, Oak Ridge National Laboratory, Oak Ridge, TN 37831"

  - family-names: "Chang"
    given-names: "Chu-Chun"
    orcid: "https://orcid.org/0000-0002-2971-2349"
    affiliation: "Woodwell Climate Research Center, Falmouth 02540, Massachusetts, USA"

  - family-names: "Rady"
    given-names: "Joshua M."
    orcid: "https://orcid.org/0000-0002-7806-136X"
    affiliation: "Woodwell Climate Research Center, Falmouth 02540, Massachusetts, USA"

  - family-names: "Teber"
    given-names: "Doğukan"
    affiliation: "Woodwell Climate Research Center, Falmouth 02540, Massachusetts, USA"

  - family-names: "Rogers"
    given-names: "Brendan M"
    orcid: "https://orcid.org/0000-0001-6711-8466"
    affiliation: "Woodwell Climate Research Center, Falmouth 02540, Massachusetts, USA"

  - family-names: "Smith"
    given-names: "Trevor"
    affiliation: "Woodwell Climate Research Center, Falmouth 02540, Massachusetts, USA"

  - family-names: "Mevenkamp"
    given-names: "Hannah"
    orcid: "https://orcid.org/0000-0002-7241-5374"
    affiliation: "Institute of Arctic Biology, University of Alaska Fairbanks, Fairbanks 99775, Alaska, USA"

  - family-names: "Lara"
    given-names: "Mark J"
    orcid: "https://orcid.org/0000-0002-4670-7031"
    affiliation: "Department(s) of Plant Biology and Geography, University of Illinois Urbana-Champaign, Urbana, IL 61801"

  - family-names: "Zhuang"
    given-names: "Qianlai"
    orcid: "https://orcid.org/0000-0002-4536-9851"
    affiliation: "Department of Earth, Atmospheric, and Planetary Science, Purdue University, West Lafayette IN 47907 USA"

  - family-names: "Yi"
    given-names: "Shuhua"
    affiliation: "School of Geographic Sciences, Nantong University, Nantong Jiangsu, 226019 P.R. China"


Owner metadata


GitHub Events

Total
Last Year

Committers metadata

Last synced: 11 days ago

Total Commits: 3,314
Total Committers: 31
Avg Commits per committer: 106.903
Development Distribution Score (DDS): 0.28

Commits in past year: 173
Committers in past year: 5
Avg Commits per committer in past year: 34.6
Development Distribution Score (DDS) in past year: 0.514

Name Email Commits
Tobey Carman t****n@g****m 2387
Ruth Rutter r****r@a****u 600
Elchin e****v@g****m 66
Heather Greaves h****s@a****u 61
Helene Genet h****t@a****u 30
dependabot[bot] 4****] 28
Colin Tucker c****r@a****u 28
benjamin-maglio m****2@g****m 15
Aiza Kabeer a****r@w****g 15
Colin Tucker c****r@l****n 12
Dogukan Teber d****1@h****m 11
Jana Canary j****y@a****u 9
vbriones v****s@w****g 7
Fengming Yuan f****n@g****m 7
Hannah Mevenkamp h****p@a****u 6
amullen01 a****9@g****m 5
bmaglio b****o@a****u 5
Elchin Jafarov E****v@s****d 4
Shawn P. Serbin s****n@b****v 2
Alec Bennett a****c@a****m 2
vbriones v****s@i****l 2
colin tucker c****r@l****n 2
Elchin Jafarov E****v@E****l 2
Mark Lara m****k@l****n 1
Elchin Jafarov E****v@m****d 1
Helene Genet H****e@H****l 1
Yuan Y****n@Y****u 1
amullen01 a****n@t****l 1
benjamin-maglio m****2@W****k 1
Joshua Rady j****y@g****m 1
and 1 more...

Committer domains:


Issue and Pull Request metadata

Last synced: 1 day ago

Total issues: 114
Total pull requests: 141
Average time to close issues: 6 months
Average time to close pull requests: 24 days
Total issue authors: 15
Total pull request authors: 13
Average comments per issue: 1.68
Average comments per pull request: 0.53
Merged pull request: 121
Bot issues: 0
Bot pull requests: 19

Past year issues: 23
Past year pull requests: 47
Past year average time to close issues: 3 months
Past year average time to close pull requests: 15 days
Past year issue authors: 8
Past year pull request authors: 6
Past year average comments per issue: 3.61
Past year average comments per pull request: 0.23
Past year merged pull request: 38
Past year bot issues: 0
Past year bot pull requests: 8

More stats: https://issues.ecosyste.ms/repositories/lookup?url=https://github.com/uaf-arctic-eco-modeling/dvm-dos-tem

Top Issue Authors

  • tobeycarman (48)
  • rarutter (17)
  • Benjamin-Maglio (12)
  • valeriabriones (8)
  • amullen01 (7)
  • jsclein-uaf (6)
  • kdorheim (4)
  • Elchin (3)
  • hgenet (2)
  • JoshuaRady (2)
  • dogukanteber (1)
  • mengqi-z (1)
  • christinaschaedel (1)
  • mevenkamp (1)
  • arbennett (1)

Top Pull Request Authors

  • tobeycarman (49)
  • rarutter (44)
  • dependabot[bot] (19)
  • dogukanteber (5)
  • amullen01 (5)
  • valeriabriones (5)
  • Benjamin-Maglio (4)
  • hgenet (3)
  • Elchin (2)
  • JoshuaRady (2)
  • christinaschaedel (1)
  • mevenkamp (1)
  • aiza-k (1)

Top Issue Labels

  • bug (28)
  • calibration (18)
  • AC-REFAC (15)
  • I/O (13)
  • enhancement (12)
  • parameter utility tooling (9)
  • docker (8)
  • documentation (7)
  • science (6)
  • Fix (4)
  • question (2)

Top Pull Request Labels

  • dependencies (19)
  • python (2)

Package metadata

proxy.golang.org: github.com/uaf-arctic-eco-modeling/dvm-dos-tem


Dependencies

.github/workflows/main_sample.yml actions
  • actions/checkout v2 composite
Dockerfile docker
  • cpp-dev $GIT_VERSION build
  • dvmdostem-dev ${GIT_VERSION} build
  • ubuntu focal build
docker-compose.yml docker
  • cpp-dev ${V_TAG}
  • dvmdostem-build ${V_TAG}
  • dvmdostem-dev ${V_TAG}
  • dvmdostem-mapping-support ${V_TAG}
  • dvmdostem-run ${V_TAG}
requirements_general_dev.txt pypi
  • Sphinx ==5.1.1 development
  • bokeh ==2.4.2 development
  • commentjson ==0.9.0 development
  • ipython ==8.3.0 development
  • jupyter ==1.0.0 development
  • lhsmdu ==1.1 development
  • matplotlib ==3.5.2 development
  • netCDF4 ==1.5.8 development
  • numpy ==1.22.3 development
  • pandas ==1.4.2 development
  • sphinx-rtd-theme ==1.0.0 development
requirements_mapping.txt pypi
  • Fiona ==1.8.18
  • GDAL ==3.1.2
  • Jinja2 ==2.11.3
  • MarkupSafe ==1.1.1
  • Pillow ==9.3.0
  • PyYAML ==5.4
  • Pygments ==2.7.4
  • Shapely ==1.7.1
  • appnope ==0.1.0
  • attrs ==20.3.0
  • backcall ==0.2.0
  • bokeh ==2.2.3
  • certifi ==2022.12.7
  • cftime ==1.2.1
  • click ==7.1.2
  • click-plugins ==1.1.1
  • cligj ==0.7.1
  • commentjson ==0.8.3
  • configobj ==5.0.6
  • cycler ==0.10.0
  • decorator ==4.4.2
  • geojson ==2.5.0
  • geopandas ==0.8.1
  • ipython ==7.31.1
  • ipython-genutils ==0.2.0
  • jedi ==0.17.2
  • kiwisolver ==1.2.0
  • lark-parser ==0.7.8
  • matplotlib ==3.3.1
  • munch ==2.5.0
  • netCDF4 ==1.5.4
  • numpy ==1.22.0
  • packaging ==20.8
  • pandas ==1.1.5
  • parso ==0.7.1
  • pexpect ==4.8.0
  • pickleshare ==0.7.5
  • prompt-toolkit ==3.0.6
  • ptyprocess ==0.6.0
  • pyparsing ==2.4.7
  • pyproj ==3.0.0.post1
  • python-dateutil ==2.8.1
  • pytz ==2020.4
  • six ==1.15.0
  • tornado ==6.1
  • traitlets ==4.3.3
  • typing-extensions ==3.7.4.3
  • wcwidth ==0.2.5

Score: -Infinity