Hi, I'm an error. x

Sensitivity of dryland vegetation patterns to storm characteristics

Resource type: Composite Resource
Storage: The size of this resource is 1.6 GB
Created: Mar 04, 2020 at 7:29 a.m.
Last updated: Mar 04, 2020 at 7:55 a.m.
DOI: 10.4211/hs.0ce4aae4c5ba4606969d46d10389e0f5
Citation: See how to cite this resource
Sharing Status: Published
Views: 106
Downloads: 2
+1 Votes: Be the first one to  +1 this.  (You need to be logged in to rate this.)
Comments: No comments (yet)


This resource contains code and simulation data that support the findings of the manuscript "Sensitivity of dryland vegetation patterns to storm characteristics", currently under review at GRL. Please see the readme for further details.

Subject Keywords

  • No subject keywords have been added.
  • ${ k }

Duplicate. Keyword not added.

Error: ${ error }
Deleting all keywords will set the resource sharing status to private.



This resource contains code and simulation data that support the findings of the manuscript "Sensitivity of dryland vegetation patterns to storm characteristics", currently under review at GRL. The files support the execution of the workflow described below. A comprehensive description of each file is provided following the workflow summary. Note that all section references (e.g., to Sections 2.4 and 2.5) pertain to the manuscript.

List of Files:

│   environment.yml
│   readme.md
|   workflow.png
└─── code
│   │   plot_functions.py
│   │   ravel_fxns_RF.py
└─── data
│   │   compare.csv
│   │   rg_RF_explore.pkl
│   │   rg_RF_test.pkl
│   │   rg_SVE_test.pkl
│   │   SVE_training_data.pkl
└─── figures
│   │   
│   └─── SVE_tr-10,d-1.6
│   │   │   summary plots for the 10 min, 1.6 cm storms
│   │  
│   └─── pattern_evolution
│   │   │    tr=10,D=0.4.png ...
│   |
|   └─── side-by-side
│   │   │    tr=10,D=0.4.png ...
└─── notebooks
│   │   exploratory_simulations.ipynb
│   │   modify_Rietkerk_Guttal.ipynb
│   │   Random_forest_features.ipynb
│   │   Rietkerk_Guttal_model.ipynb
│   │   SVE_training_simulations.ipynb
│   │   test_simulations.ipynb

alt text


The schematic above outlines the key steps in the workflow. For each of these steps, the code and simulation output to reproduce these findings is available as follows:

  1. Running the physical flow model (the SVE model) to predict cumulative infiltration following rain events.

    • The SVE model is described in Crompton et al. (2019).
    • The SVE model code is archived on Zenodo:

    Octavia Crompton. (2019, August 23). octavia-crompton/SVE-R: First release of SVE-R model (Version v1.0.0). Zenodo. http://doi.org/10.5281/zenodo.3375086

  2. Extracting training data from the SVE simulations (i.e. infiltration predictions and features).

    • Code is provided in ravel_fxns_RF.py and Random_forest_features.ipynb.
    • The SVE training set is provided in SVE_training_data.pkl.
  3. Training the emulator model (i.e. ensemble of random forests) on these features.

    • This was accomplished using scikit-learn, a free software machine learning library for Python (https://scikit-learn.org/stable/).
    • We not provide the trained emulator model due to the space requirements, but (1) and (2) contain all of the inputs needed to reproduce the emulator model.
  4. Updating the pattern-forming vegetation model to take the output from either the SVE or emulator model.

    • The original pattern-forming vegetation model (the Rietkerk/Guttal or R/G model) in its unmodified form is provided in Rietkerk_Guttal_model.ipynb.
    • modify_Rietkerk_Guttal.ipynb contains pseudo-code showing how to adapt the vegetation model to take output from either the SVE or emulator model as an input.
  5. Running the modified vegetation models to generate the output in the paper.

    • The data used in the figures is available in rg_RF_explore.pkl, rg_RF_test.pkl and rg_SVE_test.pkl.
    • Code to replot this data is provided in test_simulations.ipynb, exploratory_simulations.ipynb and compare_SVE_RF.py.

Notes about the data:

  • The data is all model-generated, and consists of two sets of simulations, labeled 'test' and 'exploratory'. The purpose of the test simulations was to verify that the R/G-emulator and R/G-SVE models produce similar results, for given initial conditions, storm climatologies, etc. The R/G-emulator model was then used to simulate a larger parameter space in the exploratory simulations.

  • Jupyter notebook files are provided in the notebooks folder to open, analyze and plot all simulations data. The notebooks also contain descriptions of the variable names, and code to reproduce the Figures in the manuscript and Supporting Information.

File descriptions :

  • environment.yml : is a requirements file listing the Python libraries needed to execute the notebook files.

    For information on how to install a Conda environment, see: https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html

Files in SI_datasets/code:

  • compare_SVE_RF.py : contains code to compare the R/G-SVE and R/G-emulator model simulations for the paired test simulations (described in Section 2.4: 'Testing the R/G-emulator model'). See test_simulations.ipynb.

  • plot_functions.py : contains miscellaneous functions that are used by the Jupyter notebook files to visualize the model simulations.

  • ravel_fxns_RF.py : contains functions which extract, from a given vegetation field, the features upon which the emulator model is trained. The use of these functions to generate the training data is illustrated in the Jupyter notebook: notebooks/Random_forest_features.ipynb

Files in patterns/data:

  • rg_RF_explore.pkl : R/G-SVE model predictions for the 'exploratory' simulations (described in Section 2.5) See exploratory_simulations.ipynb.

  • rg_RF_test.pkl : R/G-SVE model predictions for the 'test' simulations (described in Section 2.4). See test_simulations.ipynb.

  • rg_SVE_test.pkl : R/G-SVE model predictions for the 'test' simulations (described in Section 2.4). See test_simulations.ipynb.

  • compare.csv : Summary of the differences between the paired R/G-SVE and R/G-emulator simulations. Code to generate this data and explanation of the column names can be found in test_simulations.ipynb.

  • SVE_training_data.pkl : SVE model simulations used to train the emulator model (i.e., the random forests). See SVE_training_sims.ipynb.

Files in patterns/figures:

  • pattern_evolution : contains figures showing the R/G-SVE model predictions of the pattern evolution for each of the 16 storm cases in the test simulations (Section 2.4). These figures are analogous to SI Figure S3, and indicate that the simulated patterns are approaching steady states after the 632 simulated storms. Code to reproduce these figures can be found in test_simulations.ipynb.

  • side-by-side : contains side-by-side comparisons of the paired R/G-SVE and R/G-emulator simulations after 632 storms (from the test simulations). Code to reproduce these figures can be found in test_simulations.ipynb.

  • SVE_tr-10,d-1.6 : contains plots of all the training simulations with storm duration = 40 min, and rain depth = 1.6 cm. All other training simulations can be viewed in SVE_training_sims.ipynb.

Files in patterns/notebooks:

To run the notebooks, please install and activate the virtual environment found in environment.yml.

  • exploratory_simulations.ipynb : contains code to load and plot the exploratory R/G-emulator simulations (described in Section 2.5 )

  • modify_Rietkerk_Guttal.ipynb : contains pseudocode to illustrate how the R/G model is modified to replace the surface water equation (O) with SVE model predictions of infiltration (or emulations thereof).

  • Random_forest_features.ipynb : illustrates how the training data is extracted from the SVE simulations.

  • Rietkerk_Guttal_model.ipynb : contains a simple implementation of the original. Rietkerk/Guttal model.

  • SVE_training_sims.ipynb : contains code to visualize the SVE training simulations.

  • test_simulations.ipynb : contains code to load and plot the paired R/G-SVE and R/G-emulator model simulations (described in Section 2.4).


Crompton, O., Sytsma, A., & Thompson, S. (2019). Emulation of the saint venant equations enables rapid and accurate predictions of infiltration and overland flow velocity on spatially heterogeneous surfaces. Water Resources Research.

Guttal, V., & Jayaprakash, C. (2007). Self-organization and productivity in semi-arid ecosystems: Implications of seasonality in rainfall. Journal of theoretical biology, 248(3), 490-500.

Rietkerk, M., Boerlijst, M. C., van Langevelde, F., HilleRisLambers, R., de Koppel, J. V., Kumar, L., ... & de Roos, A. M. (2002). Self-organization of vegetation in arid ecosystems. The American Naturalist, 160(4), 524-530.

How to Cite

Crompton, O. (2020). Sensitivity of dryland vegetation patterns to storm characteristics, HydroShare, https://doi.org/10.4211/hs.0ce4aae4c5ba4606969d46d10389e0f5

This resource is shared under the Creative Commons Attribution CC BY.



There are currently no comments

New Comment