Giter VIP home page Giter VIP logo

itowers1 / profit_maximisation_european_forests Goto Github PK

View Code? Open in Web Editor NEW

This project forked from manonsabot/profit_maximisation_european_forests

0.0 0.0 0.0 2.04 GB

Repository containing all the code to reproduce the results in Sabot et al. (2019): Plant profit maximisation improves predictions of European forest responses to drought. New Phytologist, accepted.

License: MIT License

Python 87.66% Shell 12.22% Makefile 0.13%

profit_maximisation_european_forests's Introduction

The Profit Maximisation of European Forests

Manon E. B. Sabot, Martin G. De Kauwe, Andy J. Pitman, Belinda E. Medlyn, Anne Verhoef, Anna M. Ukkola, and Gab Abramowitz

Overview

Repository containing all the code to reproduce the results in Sabot et al. (2019): Plant profit maximisation improves predictions of European forest responses to drought. New Phytologist, Accepted.

DOI

General instructions

To make sure the model is properly set up, simply type:

make -f setup.mk

N.B.: You need anaconda to use the existing environment files within which to run the model. By default, python3.7 will be used to run the model. If you would rather install the dependancies locally, you will need python.

Followed by:

source activate TractLSM37

N.B.: If you prefer, you can activate TractLSM27 (the python2.7 version) or TractLSM (no specific associated module versions) instead.

  

To regenerate all our results and figures, type:

make -f results.mk

N.B. 1: By default, this uses 4 CPUs. However, if you have access to more CPUs and want things to speed up, change the NCPUs line 35 of src/predicting_kmax.sh and line 31 of src/var_solver_accuracy.sh.

N.B. 2: If the model runs are present in output/projects/, this will only relaunch the analysis and figures. To run all of the model experiments from scratch, you will first need to remove all of the specific experiment files from output/projects/. If you also want to recreate the input files from scratch, you can remove them from input/projects/, provided you have the eddy-covariance site data netcdf files stored in input/fluxsites/met/ and in input/fluxsites/flux/.

If you want to regenerate all the parameter calibrations for the Control model, type:

make -f calib.mk

N.B.: This is very long and would need to be performed on more than 4 CPUs. The CPU count can be increased at lines 30 in src/calib_Zroot.sh, src/calib_g1.sh, and src/calib_fw.sh

If you wish to clean up old log files from the src/tmp/ folder, type:

make clean -f results.mk

 

The model

The TractLSM is a site-level simplified tractable Land Surface Model. It is well suited to comparing assumptions with regard to modelling plant induced carbon and water fluxes, as it represents soil hydrology using a simple water balance “tipping bucket” model.

The schematics below show how the model works at a glance, but consult the ReadMe in src/TractLSM/ for more detail.

alt text

 

Datasets

Eddy-covariance data

These data are to be stored in input/fluxsites/met/ and in input/fluxsites/flux/.

LAI data

The forcing climatologies are provided in input/fluxsites/LAI/, but you might wish to rebuild them (see src/TractLSM/Utils/modis_lai_lat_lon.py and src/TractLSM/Utils/met_flux_LAI_site_level.py) using the latest MODIS data.

Background climate data

The calculations ensuing from these data are stored in input/fluxsites/info_sites.csv, but should you wish to recreate them (see src/TractLSM/Utils/cru_climate_lat_lon.py) you will need the tmp, tmn, tmx, vap, pet, pre, and cld CRU TS v4.03 datasets.

Plant trait data

The data are all stored in input/fluxsites/info_sites.csv.

Vcmax,25

g1

P50 and P88

 

Experiments

Varying kmax

We conducted three experiments to vary (and predict) kmax. If you wish to reproduce these experiments with some flexibility, you can use the following commands:

src/predicting_kmax.sh

varies kmax depending on the site average, and then extreme climate scenario;

src/predicting_kmax.sh -S

runs the calibration experiment;

src/predicting_kmax.sh -A

runs all three experiments.

The schematics below show how the experiments work at a glance, but consult src/predicting_kmax.sh to understand the detail of the code.

alt text

 

Varying the instantaneous solving

The TractLSM allows to vary:

  • the frequency of optimisation in the Profitmax
  • the solving windown around the previous leaf water potential in the Profitmax
  • the resolution of the incremental changes between two water potentials on the hydraulic stream

To explore the relative impacts of making any of these assumptions, simply type:

src/var_accuracy.sh

 

Calibrating the Control

The calibrated effective rooting depth used to run all of our experiments was retrieved by running:

src/calib_Zroot.sh

For further calibration of the Control model, simply type:

src/calib_g1.sh

which calibrates the g1 parameter; Or:

src/calib_fw.sh

which calibrates the soil moisture stress function.

 

CABLE outputs

CABLE outputs were generated using the CABLE LSM version 2.0 revision 5320, and output/CABLE_output/run_cable_site.py and output/CABLE_output/cable_utils.py.

The outputs are not stored in this repository but will be provided upon request.

 

To go further...

If you wish to further explore model behaviour, simply make changes to src/irun.txt (similar to a namelist) and type:

src/ExecTractLSM src/irun.txt

 

License

This project is licensed under the MIT License - see the LICENSE file for details

 

Contact

Manon Sabot: [email protected]

profit_maximisation_european_forests's People

Contributors

manonsabot avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.