From c71de42395149427ab3976c2ccc662ecc637a65a Mon Sep 17 00:00:00 2001 From: Man Date: Wed, 18 Mar 2026 11:25:46 +0530 Subject: [PATCH 1/2] Update SIPNET documentation. Fixes #3703 --- CHANGELOG.md | 1 + .../00_developer_guide.Rmd | 1 + .../07_model_documentation.Rmd | 60 +++++++ .../03_topical_pages/05_models/sipnet.Rmd | 18 +- models/sipnet/README.md | 2 +- models/template/README.md | 167 +++++++----------- 6 files changed, 140 insertions(+), 109 deletions(-) create mode 100644 book_source/02_demos_tutorials_workflows/05_developer_workflows/07_model_documentation.Rmd diff --git a/CHANGELOG.md b/CHANGELOG.md index 056d9a24de8..feaea148f56 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ For more information about this file see also [Keep a Changelog](http://keepacha ### Added - Add `format_try_for_ma()` and `try_trait_mapping()` to `PEcAn.data.remote` to convert trait data from the external TRY database into the tabular format required by the PEcAn meta-analysis module (#3717). +- Standardized PEcAn.SIPNET documentation across README, PEcAn Book, and pkgdown, and added a new ["Model Documentation Maintenance"](https://pecanproject.github.io/pecan-documentation/develop/model-documentation-maintenance.html) guide to the Developer Guide (#3703). - Add function `qsub_sda()` for submitting SDA batch jobs by splitting a large number of sites into multiple small groups of sites (#3634). - Add function `PEcAn.MA::meta_analysis_standalone` to run meta-analysis without database or file IO. - Added Demo 03: Meta Analysis Quarto notebook (`documentation/tutorials/Demo_03_Meta_Analysis/meta_analysis.qmd`) to demonstrate how to perform Bayesian meta-analysis and visualize posterior distributions using pre-generated trait data. diff --git a/book_source/02_demos_tutorials_workflows/05_developer_workflows/00_developer_guide.Rmd b/book_source/02_demos_tutorials_workflows/05_developer_workflows/00_developer_guide.Rmd index fda065a9695..d7a1723e936 100644 --- a/book_source/02_demos_tutorials_workflows/05_developer_workflows/00_developer_guide.Rmd +++ b/book_source/02_demos_tutorials_workflows/05_developer_workflows/00_developer_guide.Rmd @@ -6,3 +6,4 @@ Get started with PEcAn development with this guide. You'll learn how to use Git * [Update PEcAn Code](#pecan-make) * [PEcAn and Git](#pecan-git) * [Coding Practices](#coding-practices) +* [Model Documentation Maintenance](#model-documentation-maintenance) diff --git a/book_source/02_demos_tutorials_workflows/05_developer_workflows/07_model_documentation.Rmd b/book_source/02_demos_tutorials_workflows/05_developer_workflows/07_model_documentation.Rmd new file mode 100644 index 00000000000..93f878d153f --- /dev/null +++ b/book_source/02_demos_tutorials_workflows/05_developer_workflows/07_model_documentation.Rmd @@ -0,0 +1,60 @@ +# Model Documentation Maintenance {#model-documentation-maintenance} + +This guide describes how to maintain and update the documentation for PEcAn model couplers. For every ecosystem model integrated with PEcAn, there are three primary documentation locations that should be kept in sync: + +1. **Package README (`models/[modelname]/README.md`):** This is the entry point for someone visiting the PEcAn repository or the `pkgdown` site. +2. **Model Pkgdown site:** Generated from the README and function documentation using the `pkgdown` package. +3. **PEcAn Book Page (`book_source/03_topical_pages/05_models/[modelname].Rmd`):** This is part of the central PEcAn documentation (the "Book") and should focus on how the model fits into the overall PEcAn workflow. + +## Documentation Structure + +To avoid duplication, follows these guidelines: + +### 1. Package README (`README.md`) +The README should be the most comprehensive source for a specific model coupler. It should include: +- **What is [MODEL]?**: A brief summary of the standalone model. +- **Standalone Documentation Link**: Point users to the official docs for the underlying model logic. +- **Homepage & Source**: Links to the model's primary home and repository. +- **Using via PEcAn**: A high-level description of what the PEcAn coupler does (inputs/outputs). +- **Installation**: Clear steps for installing both the R package and the underlying model binary. +- **Documentation Links**: Links to the `pkgdown` site, book chapter, and source code. + +### 2. PEcAn Book Chapter +The book chapter should be a concise summary. **Do not duplicate long descriptions from the README.** Instead: +- Provide the standard "Model Information" table. +- Give a short introductory paragraph. +- List model-specific configuration file patterns. +- Link out to the `README.md` and the `pkgdown` site for detailed usage information and tutorials. + +### 3. Pkgdown Site +This is automatically generated. Ensure that your `README.md` is well-formatted and that your R functions have complete Roxygen documentation. + +## Updating a Model Coupler's Documentation + +If you are updating documentation for a model (like SIPNET), follow these steps: + +1. **Locate the README:** Usually found at `models/[modelname]/README.md`. + - *Tip:* Use the [models/template/README.md](https://github.com/PecanProject/pecan/tree/develop/models/template/README.md) as a starting point. +2. **Locate the Book Source:** Found in `book_source/03_topical_pages/05_models/[modelname].Rmd`. +3. **Consolidate and Clean:** + - Combine relevant info from old book text into the new README. + - Add links to standalone model docs (e.g., [https://pecanproject.github.io/sipnet](https://pecanproject.github.io/sipnet)). + - Ensure the "Using via PEcAn" section includes a link to the [Basic Run Demo](https://pecanproject.github.io/pecan-documentation/develop/rendered-demo-notebooks/run_pecan.html). +4. **Verify and Build:** + - Commit changes and check that links point to the `develop` branch. + - Ensure the book and pkgdown site render correctly (build instructions below). + +## Build Instructions + +### Building the PEcAn Book +To build the book locally: +```bash +cd book_source +make +``` + +### Building Pkgdown site +To build a specific package's documentation: +```r +pkgdown::build_site("models/[modelname]") +``` diff --git a/book_source/03_topical_pages/05_models/sipnet.Rmd b/book_source/03_topical_pages/05_models/sipnet.Rmd index 808a6c9da8b..db56867ea19 100644 --- a/book_source/03_topical_pages/05_models/sipnet.Rmd +++ b/book_source/03_topical_pages/05_models/sipnet.Rmd @@ -2,27 +2,27 @@ | Model Information || | -- | -- | -| Home Page | https://pecanproject.github.io/sipnet | -| Source Code | https://github.com/PecanProject/sipnet | -| License | BSD 3-Clause | +| Home Page | [https://pecanproject.github.io/sipnet/](https://pecanproject.github.io/sipnet/) | +| Source Code | [https://github.com/PecanProject/sipnet](https://github.com/PecanProject/sipnet) | | Authors | Michael Longfritz, William Sacks, David Moore, John M. Zobitz, Bobby H. Braswell, David S. Schimel, Rob Kooper, Michael C. Dietze, Istem Fer, Chris Black, David S. LeBauer| | PEcAn Integration | Michael Dietze, Rob Kooper | +| PEcAn package | [PEcAn.SIPNET pkgdown site](https://pecanproject.github.io/package-documentation/develop/PEcAn.SIPNET/index.html) | **Introduction** -SIPNET (Simplified Photosynthesis and Evapotranspiration Model) is a lightweight ecosystem model designed to simulate complex environmental dynamics. It tracks carbon, water, nitrogen, and trace greenhouse-gas (N₂O, CH₄) interactions, supporting applications from forest carbon inventories to managed croplands. +SIPNET (Simplified Photosynthesis and Evapotranspiration Model) is a lightweight ecosystem model for coupled carbon, water, nitrogen, and trace greenhouse-gas (N₂O, CH₄) dynamics. It was built for data-assimilation workflows with eddy-covariance observations. -Key features include simulation of photosynthesis, respiration, allocation, soil water, soil temperature, and nitrogen cycling on sub-daily time steps. The model tracks vegetation, litter, soil, and mineral-N pools, and includes event-based management for agricultural processes. +For comprehensive information about the standalone model structure, configuring it directly, and input/output descriptions, please visit the [Standalone SIPNET Documentation](https://pecanproject.github.io/sipnet/). -For model documentation including model structure, user guide, and developer guide, see the [SIPNET documentation](https://pecanproject.github.io/sipnet). For PEcAn.SIPNET documentation, see the [package website](https://pecanproject.github.io/package-documentation/develop/PEcAn.SIPNET/). +To use SIPNET through PEcAn and learn about its integration functions, please review the [PEcAn.SIPNET pkgdown site](https://pecanproject.github.io/package-documentation/develop/PEcAn.SIPNET/index.html) and its [README](https://github.com/PecanProject/pecan/tree/develop/models/sipnet#readme). **PEcAn configuration file additions** -Should list the model specific additions to the PEcAn file here +For basic SIPNET usage via PEcAn, please refer to the [PEcAn Basic Run Demo](https://pecanproject.github.io/pecan-documentation/develop/rendered-demo-notebooks/run_pecan.html). **Model specific input files** -List of inputs required by model, such as met, etc. +SIPNET requires meteorology files to be translated into its specific driver format. The `PEcAn.SIPNET` package handles this translation via its functions documented on the pkgdown site. **Model configuration files** @@ -34,4 +34,4 @@ SIPNET is configured using 3 files which are placed in the run folder, as well a **Installation notes** -For current SIPNET installation instructions, please see the [SIPNET Installation Guide](https://pecanproject.github.io/sipnet/install.html) or install binaries from the official [releases](https://github.com/PecanProject/sipnet/releases) page. +For current SIPNET installation instructions, please see the [SIPNET Quick-Start Guide](https://pecanproject.github.io/sipnet/user-guide/getting-started/) or install binaries from the official [releases](https://github.com/PecanProject/sipnet/releases) page. diff --git a/models/sipnet/README.md b/models/sipnet/README.md index 2c94137f570..639ffed5f73 100644 --- a/models/sipnet/README.md +++ b/models/sipnet/README.md @@ -58,7 +58,7 @@ install_github('pecanproject/pecan', subdir = "models/sipnet") ### Install SIPNET Model -To use PEcAn.SIPNET, you also need the SIPNET model executable installed on your system. You can download precompiled versions from the SIPNET [releases page](https://github.com/PecanProject/sipnet/releases), or [download the code](https://github.com/PecanProject/sipnet) from Github and compile it yourself following the official [instructions](https://github.com/PecanProject/sipnet/blob/master/docs/user-guide/getting-started.md). +To use PEcAn.SIPNET, you also need the SIPNET model executable installed on your system. You can download precompiled versions from the SIPNET [releases page](https://github.com/PecanProject/sipnet/releases), or [download the code](https://github.com/PecanProject/sipnet) from Github and compile it yourself following the official [SIPNET Quick-Start Guide](https://pecanproject.github.io/sipnet/user-guide/getting-started/). ## Documentation diff --git a/models/template/README.md b/models/template/README.md index 79ecc18223e..2ffacf7c649 100644 --- a/models/template/README.md +++ b/models/template/README.md @@ -1,100 +1,69 @@ -A generic template for adding a new model to PEcAn -========================================================================== - -Adding a new model to PEcAn in a few easy steps: - -1. add modeltype to BETY -2. add a model and PFT to BETY for use with modeltype -3. implement 3 functions as described below -4. Add tests to `tests/testthat` -5. Update README, documentation -6. Update Dockerfile and model_info.json -7. execute pecan with new model - - -### Three Functions - -There are 3 functions that will need to be implemented, each of these -functions will need to have MODEL be replaced with the actual modeltype as -it is defined in the BETY database. - -* `write.config.MODEL.R` - - This will write the configuratin file as well as the job launcher used by - PEcAn. There is an example of the job execution script in the template - folder. The configuration file can also be a template that is found based - on the revision number of the model. This should use the computed results - specified in defaults and trait.values to write a configuration file - based on the PFT and traits found. - -* `met2model.MODEL.R` - - This will convert the standard Met CF file to the model specific file - format. This will allow PEcAn to create metereological files for the - specific site and model. This will only be called if no meterological - data is found for that specific site and model combination. - -* `model2netcdf.MODEL.R` - - This will convert the model specific output to NACP Intercomparison - format. After this function is finished PEcAn will use the generated - output and not use the model specific outputs. The outputs should be - named YYYY.nc - -### Dockerization - -The PEcAn system is leveraging Docker to encapsulate most of the code. -This will make it easier to share new model with others, without them -having to compile the models. The goal is for people to be able to -launch the model in docker, and it will register with PEcAn and is -almost immediatly available to be used. To accomplish this you will need to modify two files. - -* `Dockerfile` - - The [Dockerfile](https://docs.docker.com/engine/reference/builder/) is - like the Makefile for docker. This file is split in two pieces the - part at the top is to actually build the binary. This is where you - specify all the libraries that are needed, as well as all the build - tools to compile your model. The second part, starting at the second - `FROM` line, is where you will install only the libraries needed to - run the binary and copy the binary from the build stage, using the - `COPY --from` line. - -* `model_info.json` - - The model_info.json describes the model and is used to register the - model with PEcAn. In the model_info.json the only fields that are - really required are those at the top: `name`, `type`, `version` and - `binary`. All other fields are optional but are good to be filled - out. You can leave `version` and `binary` with the special values - which will be updated by the Dockerfile. - -Once the image can be build it can be pushed so others can leverage -of the model. For PEcAn we have been using the following naming scheme -for the docker images: `pecan/model--:` -where the `model` and `model_version` are the same as those used to -build the model, and `pecan_version` is the version of PEcAn this -model is compiled for. - -### Additional Changes - -* `README.md` - -This file should contain basic background information about the model. -At a minimum, this should include the scientific motivation and scope, -name(s) of maintainer(s), links to project homepage, and a list of a few -key publications. -relevant publications. - -* `/tests/testthat/` - -Each package should have tests that cover the key functions of the package, -at a minimum, the three functions above. - -* documentation - -Update the `NAMESPACE`, `DESCRIPTION` and `man/*.Rd` files by running - -```r -devtools("models//") +# PEcAn.MODEL + + + +[![Lifecycle: experimental](https://img.shields.io/badge/lifecycle-experimental-orange.svg)](https://lifecycle.r-lib.org/articles/stages.html#experimental) +[![PEcAn.MODEL status badge](https://pecanproject.r-universe.dev/badges/PEcAn.MODEL)](https://pecanproject.r-universe.dev/PEcAn.MODEL) + + + +PEcAn Functions for the MODEL model. + +## What is MODEL? + +[Add a brief (1-2 sentence) description of the ecological model here.] + +For full details about the model logic, compiling the source, inputs, and outputs, please see the **[Standalone MODEL Documentation](URL_TO_STANDALONE_DOCS)**. + +* **Homepage**: [URL_TO_HOMEPAGE](URL_TO_HOMEPAGE) +* **Source Code**: [URL_TO_SOURCE](URL_TO_SOURCE) +* **Authors**: Maintainer Name, Original Author Name (PEcAn Integration) +* **License**: [e.g. BSD 3-Clause] + +## Using MODEL via PEcAn + +The `PEcAn.MODEL` package provides the necessary functions to generate configuration files and process outputs for MODEL within the PEcAn workflow. + +**Getting Started:** +- [Demo 1: Basic PEcAn Run](https://pecanproject.github.io/pecan-documentation/develop/rendered-demo-notebooks/run_pecan.html) +- [MODEL in the PEcAn Book](https://pecanproject.github.io/pecan-documentation/develop/models-MODEL.html) + +### Model Configuration Files + +MODEL is configured using [X] files which are placed in the run folder, along with any necessary input links: + +* **`config.in`**: [Description of function and where template lives in `inst/`] +* **`params.file`**: [Description] + +## Installation + +### Install PEcAn.MODEL Package + +You can install the development version of `PEcAn.MODEL` from R-universe: + +``` r +# Enable repository from pecanproject +options(repos = c( + pecanproject = 'https://pecanproject.r-universe.dev', + CRAN = 'https://cloud.r-project.org')) +# Download and install PEcAn.MODEL in R +install.packages('PEcAn.MODEL') +``` + +Or you can install directly from GitHub using the `remotes` package: + +``` r +library(remotes) +install_github('pecanproject/pecan', subdir = "models/template") ``` + +### Install MODEL Model + +To use PEcAn.MODEL, you also need the MODEL model executable installed on your system. Refer to the [MODEL installation guide](URL_TO_INSTALLATION_GUIDE) for instructions. + +## Documentation + +- **PEcAn.MODEL pkgdown site:** [https://pecanproject.github.io/package-documentation/develop/PEcAn.MODEL/index.html](https://pecanproject.github.io/package-documentation/develop/PEcAn.MODEL/index.html) +- **Standalone MODEL Docs:** [URL_TO_STANDALONE_DOCS](URL_TO_STANDALONE_DOCS) +- **PEcAn Book - MODEL Chapter:** [https://pecanproject.github.io/pecan-documentation/develop/models-MODEL.html](https://pecanproject.github.io/pecan-documentation/develop/models-MODEL.html) +- **Source Code:** [https://github.com/PecanProject/pecan/tree/develop/models/template](https://github.com/PecanProject/pecan/tree/develop/models/template) From ff89851bd54d4e3e399a6aef3e31a81d8b349016 Mon Sep 17 00:00:00 2001 From: Man Date: Wed, 18 Mar 2026 20:02:41 +0530 Subject: [PATCH 2/2] docs: Address mentor comments on SIPNET documentation and templates --- .../07_model_documentation.Rmd | 29 ++--- .../03_topical_pages/05_models/sipnet.Rmd | 8 +- changes.diff | Bin 0 -> 24198 bytes models/template/README.md | 114 ++++++++++++++++-- 4 files changed, 121 insertions(+), 30 deletions(-) create mode 100644 changes.diff diff --git a/book_source/02_demos_tutorials_workflows/05_developer_workflows/07_model_documentation.Rmd b/book_source/02_demos_tutorials_workflows/05_developer_workflows/07_model_documentation.Rmd index 93f878d153f..7a90e744bad 100644 --- a/book_source/02_demos_tutorials_workflows/05_developer_workflows/07_model_documentation.Rmd +++ b/book_source/02_demos_tutorials_workflows/05_developer_workflows/07_model_documentation.Rmd @@ -11,38 +11,25 @@ This guide describes how to maintain and update the documentation for PEcAn mode To avoid duplication, follows these guidelines: ### 1. Package README (`README.md`) -The README should be the most comprehensive source for a specific model coupler. It should include: +The README should serve as a concise entry point for a specific model coupler. It should include: - **What is [MODEL]?**: A brief summary of the standalone model. - **Standalone Documentation Link**: Point users to the official docs for the underlying model logic. - **Homepage & Source**: Links to the model's primary home and repository. -- **Using via PEcAn**: A high-level description of what the PEcAn coupler does (inputs/outputs). +- **Using via PEcAn**: A high-level description of what the PEcAn coupler does. - **Installation**: Clear steps for installing both the R package and the underlying model binary. -- **Documentation Links**: Links to the `pkgdown` site, book chapter, and source code. +- **Documentation Links**: Links to the `pkgdown` site, and most importantly, the PEcAn book chapter for detailed information. ### 2. PEcAn Book Chapter -The book chapter should be a concise summary. **Do not duplicate long descriptions from the README.** Instead: +The book is the right place to present detailed information about the model coupler. It should be the comprehensive source. It should include: - Provide the standard "Model Information" table. -- Give a short introductory paragraph. -- List model-specific configuration file patterns. -- Link out to the `README.md` and the `pkgdown` site for detailed usage information and tutorials. +- Give a comprehensive introduction explaining how the model fits into PEcAn. +- List and detail model-specific configuration and input file patterns. +- Link out to standalone model documentation or vignettes if available. Do not link out to the README for detailed information—the book itself should be the master resource. ### 3. Pkgdown Site This is automatically generated. Ensure that your `README.md` is well-formatted and that your R functions have complete Roxygen documentation. -## Updating a Model Coupler's Documentation - -If you are updating documentation for a model (like SIPNET), follow these steps: - -1. **Locate the README:** Usually found at `models/[modelname]/README.md`. - - *Tip:* Use the [models/template/README.md](https://github.com/PecanProject/pecan/tree/develop/models/template/README.md) as a starting point. -2. **Locate the Book Source:** Found in `book_source/03_topical_pages/05_models/[modelname].Rmd`. -3. **Consolidate and Clean:** - - Combine relevant info from old book text into the new README. - - Add links to standalone model docs (e.g., [https://pecanproject.github.io/sipnet](https://pecanproject.github.io/sipnet)). - - Ensure the "Using via PEcAn" section includes a link to the [Basic Run Demo](https://pecanproject.github.io/pecan-documentation/develop/rendered-demo-notebooks/run_pecan.html). -4. **Verify and Build:** - - Commit changes and check that links point to the `develop` branch. - - Ensure the book and pkgdown site render correctly (build instructions below). +When updating an existing model coupler's documentation, ensure it follows the structure described above. After making changes, verify that your links point to the `develop` branch where appropriate, and ensure both the book and pkgdown site render correctly (build instructions below). ## Build Instructions diff --git a/book_source/03_topical_pages/05_models/sipnet.Rmd b/book_source/03_topical_pages/05_models/sipnet.Rmd index db56867ea19..f4971abe85d 100644 --- a/book_source/03_topical_pages/05_models/sipnet.Rmd +++ b/book_source/03_topical_pages/05_models/sipnet.Rmd @@ -10,7 +10,9 @@ **Introduction** -SIPNET (Simplified Photosynthesis and Evapotranspiration Model) is a lightweight ecosystem model for coupled carbon, water, nitrogen, and trace greenhouse-gas (N₂O, CH₄) dynamics. It was built for data-assimilation workflows with eddy-covariance observations. +SIPNET (Simplified Photosynthesis and Evapotranspiration Model) is a lightweight ecosystem model designed to simulate complex environmental dynamics. It tracks carbon, water, nitrogen, and trace greenhouse-gas (N₂O, CH₄) interactions, supporting applications from forest carbon inventories to managed croplands. It was built for data-assimilation workflows with eddy-covariance observations. + +Key features include simulation of photosynthesis, respiration, allocation, soil water, soil temperature, and nitrogen cycling on sub-daily time steps. The model tracks vegetation, litter, soil, and mineral-N pools, and includes event-based management for agricultural processes. For comprehensive information about the standalone model structure, configuring it directly, and input/output descriptions, please visit the [Standalone SIPNET Documentation](https://pecanproject.github.io/sipnet/). @@ -22,7 +24,9 @@ For basic SIPNET usage via PEcAn, please refer to the [PEcAn Basic Run Demo](htt **Model specific input files** -SIPNET requires meteorology files to be translated into its specific driver format. The `PEcAn.SIPNET` package handles this translation via its functions documented on the pkgdown site. +SIPNET requires meteorology files to be translated into its specific driver format (`.clim`). The `PEcAn.SIPNET` package handles this translation via its functions (`met2model.SIPNET`) documented on the pkgdown site. The `.clim` format is a space-delimited text file that includes variables like temperature, precipitation, vapor pressure deficit, and radiation at each timestep. + +Additionally, SIPNET understands event files (e.g. `events.in`) for management actions such as planting, harvest, and irrigation. When configured within the PEcAn workflow, the coupler will also read from and properly initialize state variables based on input files for phenology, soil carbon/nitrogen, and initial condition (IC) pools. **Model configuration files** diff --git a/changes.diff b/changes.diff new file mode 100644 index 0000000000000000000000000000000000000000..84fd284a7e6ab112d0ba7d1f58655cf69c743528 GIT binary patch literal 24198 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 KqbM^-:` +where the `model` and `model_version` are the same as those used to +build the model, and `pecan_version` is the version of PEcAn this +model is compiled for. + +### Additional Changes + +* `README.md` + +This file should contain basic background information about the model. +At a minimum, this should include the scientific motivation and scope, +name(s) of maintainer(s), links to project homepage, and a list of a few +key publications. +relevant publications. + +* `/tests/testthat/` + +Each package should have tests that cover the key functions of the package, +at a minimum, the three functions above. + +* documentation + +Update the `NAMESPACE`, `DESCRIPTION` and `man/*.Rd` files by running + +```r +devtools("models//") +``` + +--- +**NOTE: Read the instructions above and delete them when done.** +**Below is the boilerplate README template to fill out for your model:** +--- + # PEcAn.MODEL @@ -25,15 +131,9 @@ For full details about the model logic, compiling the source, inputs, and output The `PEcAn.MODEL` package provides the necessary functions to generate configuration files and process outputs for MODEL within the PEcAn workflow. **Getting Started:** -- [Demo 1: Basic PEcAn Run](https://pecanproject.github.io/pecan-documentation/develop/rendered-demo-notebooks/run_pecan.html) +- [Link to a demo or vignette that lets a user who has already run Demo 1 get started with this model. If no such demo exists, consider including a brief tutorial directly in this README.] - [MODEL in the PEcAn Book](https://pecanproject.github.io/pecan-documentation/develop/models-MODEL.html) -### Model Configuration Files - -MODEL is configured using [X] files which are placed in the run folder, along with any necessary input links: - -* **`config.in`**: [Description of function and where template lives in `inst/`] -* **`params.file`**: [Description] ## Installation