diff --git a/notebooks/Finished_project/Ws_sensitivity/wind_speed_sensitivity.ipynb b/notebooks/Finished_project/Ws_sensitivity/wind_speed_sensitivity.ipynb index 6bc7c23e2903ee45830e91018b38aeba6ba7b609..4bf562569c0f49fd233298ef32c1a0358fd1c8ca 100644 --- a/notebooks/Finished_project/Ws_sensitivity/wind_speed_sensitivity.ipynb +++ b/notebooks/Finished_project/Ws_sensitivity/wind_speed_sensitivity.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "declared-dealer", + "id": "dangerous-indie", "metadata": {}, "source": [ "# **Sensitivity of the PM model to wind speed: Sympy study**" @@ -10,7 +10,7 @@ }, { "cell_type": "markdown", - "id": "heavy-plastic", + "id": "superb-progressive", "metadata": { "slideshow": { "slide_type": "slide" @@ -38,7 +38,7 @@ }, { "cell_type": "markdown", - "id": "sonic-harrison", + "id": "aquatic-uruguay", "metadata": {}, "source": [ "# Part II - Functions set up" @@ -46,7 +46,7 @@ }, { "cell_type": "markdown", - "id": "specialized-chest", + "id": "limiting-mason", "metadata": {}, "source": [ "## Importing relevant packages" @@ -54,10 +54,19 @@ }, { "cell_type": "code", - "execution_count": 137, - "id": "gothic-native", + "execution_count": 1, + "id": "realistic-biotechnology", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING (aesara.link.c.cmodule): install mkl with `conda install mkl-service`: No module named 'mkl'\n", + "WARNING (aesara.tensor.blas): Using NumPy C-API based implementation for BLAS functions.\n" + ] + } + ], "source": [ "# data manipulation and plotting\n", "import pandas as pd\n", @@ -112,7 +121,7 @@ }, { "cell_type": "markdown", - "id": "structured-judge", + "id": "fewer-essex", "metadata": {}, "source": [ "## Path of the different files (pre-defined python functions, sympy equations, sympy variables)" @@ -120,8 +129,8 @@ }, { "cell_type": "code", - "execution_count": 138, - "id": "initial-marina", + "execution_count": 2, + "id": "olympic-wichita", "metadata": { "tags": [ "parameters" @@ -152,7 +161,7 @@ }, { "cell_type": "markdown", - "id": "cooperative-trinidad", + "id": "manufactured-knight", "metadata": {}, "source": [ "## Importing the sympy variables and equations defined in the theory.ipynb notebook" @@ -160,146 +169,10 @@ }, { "cell_type": "code", - "execution_count": 139, - "id": "accepted-heart", + "execution_count": 3, + "id": "waiting-pension", "metadata": {}, "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:theta_sat\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:theta_res\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:alpha\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:n\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:m\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:S_mvg\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:theta\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:h\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:S\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:theta_4\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:theta_3\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:theta_2\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:theta_1\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:L\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:Mw\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:Pv\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:Pvs\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:R\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:T\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:c1\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:T0\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:Delta\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:E\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:G\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:H\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:Rn\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:LE\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:gamma\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:alpha_PT\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:c_p\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:w\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:kappa\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:z\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:u_star\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:VH\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:d\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:z_om\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:z_oh\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:r_a\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:g_a\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:r_s\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:g_s\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:c1_e\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:c2_e\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:e\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:T_min\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:T_max\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:RH_max\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:RH_min\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:e_a\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:e_s\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:iv_T\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:T_kv\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:P\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:rho_a\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:VPD\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/equations/_core.py:107: UserWarning: \"e/theory_equation:eq_m_n\" will be overridden by \"e/theory_equation:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/equations/_core.py:107: UserWarning: \"e/theory_equation:eq_MVG_neg_case\" will be overridden by \"e/theory_equation:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/equations/_core.py:107: UserWarning: \"e/theory_equation:eq_MVG\" will be overridden by \"e/theory_equation:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/equations/_core.py:107: UserWarning: \"e/theory_equation:eq_sat_degree\" will be overridden by \"e/theory_equation:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/equations/_core.py:107: UserWarning: \"e/theory_equation:eq_MVG_h\" will be overridden by \"e/theory_equation:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/equations/_core.py:107: UserWarning: \"e/theory_equation:eq_h_FC\" will be overridden by \"e/theory_equation:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/equations/_core.py:107: UserWarning: \"e/theory_equation:eq_theta_4_3\" will be overridden by \"e/theory_equation:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/equations/_core.py:107: UserWarning: \"e/theory_equation:eq_theta_2_1\" will be overridden by \"e/theory_equation:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/equations/_core.py:107: UserWarning: \"e/theory_equation:eq_water_stress_simple\" will be overridden by \"e/theory_equation:\"\n", - " instance[expr] = instance\n" - ] - }, { "name": "stdout", "output_type": "stream", @@ -359,27 +232,7 @@ "T_kv\n", "P\n", "rho_a\n", - "VPD\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/opt/conda/lib/python3.8/site-packages/essm/equations/_core.py:107: UserWarning: \"e/theory_equation:eq_Pvs_T\" will be overridden by \"e/theory_equation:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/equations/_core.py:107: UserWarning: \"e/theory_equation:eq_Delta\" will be overridden by \"e/theory_equation:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/equations/_core.py:107: UserWarning: \"e/theory_equation:eq_PT\" will be overridden by \"e/theory_equation:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/equations/_core.py:107: UserWarning: \"e/theory_equation:eq_PM\" will be overridden by \"e/theory_equation:\"\n", - " instance[expr] = instance\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ + "VPD\n", "eq_m_n\n", "eq_MVG_neg_case\n", "eq_MVG\n", @@ -397,18 +250,6 @@ "eq_PM_g\n", "eq_PM_inv\n" ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/opt/conda/lib/python3.8/site-packages/essm/equations/_core.py:107: UserWarning: \"e/theory_equation:eq_PM_VPD\" will be overridden by \"e/theory_equation:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/equations/_core.py:107: UserWarning: \"e/theory_equation:eq_PM_g\" will be overridden by \"e/theory_equation:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/equations/_core.py:107: UserWarning: \"e/theory_equation:eq_PM_inv\" will be overridden by \"e/theory_equation:\"\n", - " instance[expr] = instance\n" - ] } ], "source": [ @@ -426,7 +267,7 @@ }, { "cell_type": "markdown", - "id": "fixed-lodging", + "id": "particular-shakespeare", "metadata": {}, "source": [ "## Importing the performance assessment functions defined in the analysis_function.py file" @@ -434,8 +275,8 @@ }, { "cell_type": "code", - "execution_count": 140, - "id": "distinct-lighting", + "execution_count": 4, + "id": "noble-guatemala", "metadata": {}, "outputs": [ { @@ -487,7 +328,7 @@ }, { "cell_type": "markdown", - "id": "buried-malaysia", + "id": "helpful-thinking", "metadata": {}, "source": [ "## Data import, preprocess and shape for the computations" @@ -495,7 +336,7 @@ }, { "cell_type": "markdown", - "id": "deadly-drove", + "id": "express-acoustic", "metadata": {}, "source": [ "### Get the different files where data are stored\n", @@ -505,8 +346,8 @@ }, { "cell_type": "code", - "execution_count": 141, - "id": "imperial-victim", + "execution_count": 5, + "id": "monetary-length", "metadata": {}, "outputs": [ { @@ -536,7 +377,7 @@ }, { "cell_type": "markdown", - "id": "lyric-bookmark", + "id": "wicked-possession", "metadata": {}, "source": [ "### Define and test a function that process the fPAR data\n", @@ -545,8 +386,8 @@ }, { "cell_type": "code", - "execution_count": 142, - "id": "nominated-oxide", + "execution_count": 6, + "id": "universal-pixel", "metadata": {}, "outputs": [], "source": [ @@ -584,8 +425,8 @@ }, { "cell_type": "code", - "execution_count": 143, - "id": "orange-spectacular", + "execution_count": 7, + "id": "structural-mediterranean", "metadata": {}, "outputs": [ { @@ -700,7 +541,7 @@ "12 0.78 12" ] }, - "execution_count": 143, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -711,7 +552,7 @@ }, { "cell_type": "markdown", - "id": "behind-brother", + "id": "antique-queen", "metadata": {}, "source": [ "### fPARSet function\n", @@ -720,8 +561,8 @@ }, { "cell_type": "code", - "execution_count": 144, - "id": "widespread-subsection", + "execution_count": 8, + "id": "increasing-franchise", "metadata": {}, "outputs": [], "source": [ @@ -752,7 +593,7 @@ }, { "cell_type": "markdown", - "id": "southern-excuse", + "id": "swedish-certification", "metadata": {}, "source": [ "### DataChose function\n", @@ -772,8 +613,8 @@ }, { "cell_type": "code", - "execution_count": 145, - "id": "agreed-holocaust", + "execution_count": 9, + "id": "middle-antique", "metadata": {}, "outputs": [], "source": [ @@ -866,7 +707,7 @@ }, { "cell_type": "markdown", - "id": "hollywood-azerbaijan", + "id": "authorized-gabriel", "metadata": {}, "source": [ "## Compile the different functions defined in the symbolic domain\n", @@ -875,7 +716,7 @@ }, { "cell_type": "markdown", - "id": "computational-preservation", + "id": "canadian-thickness", "metadata": {}, "source": [ "### Water stress functions" @@ -883,8 +724,8 @@ }, { "cell_type": "code", - "execution_count": 146, - "id": "simple-peace", + "execution_count": 10, + "id": "after-utilization", "metadata": {}, "outputs": [], "source": [ @@ -905,7 +746,7 @@ }, { "cell_type": "markdown", - "id": "chinese-salmon", + "id": "meaningful-darkness", "metadata": {}, "source": [ "### Soil water potential" @@ -913,8 +754,8 @@ }, { "cell_type": "code", - "execution_count": 147, - "id": "liable-generation", + "execution_count": 11, + "id": "friendly-amsterdam", "metadata": {}, "outputs": [], "source": [ @@ -929,8 +770,8 @@ }, { "cell_type": "code", - "execution_count": 148, - "id": "imperial-elizabeth", + "execution_count": 12, + "id": "historical-thesis", "metadata": {}, "outputs": [], "source": [ @@ -947,7 +788,7 @@ }, { "cell_type": "markdown", - "id": "hearing-helping", + "id": "statutory-martin", "metadata": {}, "source": [ "### Penman-Monteith" @@ -955,8 +796,8 @@ }, { "cell_type": "code", - "execution_count": 149, - "id": "cooperative-hazard", + "execution_count": 13, + "id": "bigger-training", "metadata": {}, "outputs": [], "source": [ @@ -974,8 +815,8 @@ }, { "cell_type": "code", - "execution_count": 150, - "id": "pregnant-carolina", + "execution_count": 14, + "id": "impressive-screening", "metadata": {}, "outputs": [], "source": [ @@ -1002,8 +843,8 @@ }, { "cell_type": "code", - "execution_count": 151, - "id": "enhanced-associate", + "execution_count": 15, + "id": "mental-gabriel", "metadata": {}, "outputs": [], "source": [ @@ -1024,8 +865,8 @@ }, { "cell_type": "code", - "execution_count": 152, - "id": "suffering-balloon", + "execution_count": 16, + "id": "intellectual-election", "metadata": {}, "outputs": [], "source": [ @@ -1046,8 +887,8 @@ }, { "cell_type": "code", - "execution_count": 153, - "id": "hindu-scotland", + "execution_count": 17, + "id": "loving-movement", "metadata": {}, "outputs": [], "source": [ @@ -1068,8 +909,8 @@ }, { "cell_type": "code", - "execution_count": 154, - "id": "chinese-appearance", + "execution_count": 18, + "id": "cathedral-comedy", "metadata": {}, "outputs": [], "source": [ @@ -1096,8 +937,8 @@ }, { "cell_type": "code", - "execution_count": 155, - "id": "japanese-copying", + "execution_count": 19, + "id": "built-coverage", "metadata": {}, "outputs": [], "source": [ @@ -1127,8 +968,8 @@ }, { "cell_type": "code", - "execution_count": 156, - "id": "changed-district", + "execution_count": 20, + "id": "rising-injection", "metadata": {}, "outputs": [], "source": [ @@ -1156,8 +997,8 @@ }, { "cell_type": "code", - "execution_count": 157, - "id": "inner-samuel", + "execution_count": 21, + "id": "lyric-sleeve", "metadata": {}, "outputs": [], "source": [ @@ -1190,8 +1031,8 @@ }, { "cell_type": "code", - "execution_count": 158, - "id": "alternative-pocket", + "execution_count": 22, + "id": "limited-mileage", "metadata": {}, "outputs": [], "source": [ @@ -1213,8 +1054,8 @@ }, { "cell_type": "code", - "execution_count": 159, - "id": "elect-hours", + "execution_count": 23, + "id": "incorrect-highway", "metadata": {}, "outputs": [], "source": [ @@ -1232,7 +1073,7 @@ }, { "cell_type": "markdown", - "id": "general-appointment", + "id": "apart-mills", "metadata": {}, "source": [ "### Assign the different compiled functions to variables functions (create the functions in python)" @@ -1240,8 +1081,8 @@ }, { "cell_type": "code", - "execution_count": 160, - "id": "cosmetic-peace", + "execution_count": 24, + "id": "fifth-agent", "metadata": {}, "outputs": [], "source": [ @@ -1268,8 +1109,8 @@ }, { "cell_type": "code", - "execution_count": 161, - "id": "direct-prerequisite", + "execution_count": 25, + "id": "frank-shakespeare", "metadata": {}, "outputs": [], "source": [ @@ -1298,7 +1139,7 @@ }, { "cell_type": "markdown", - "id": "thrown-employee", + "id": "selected-playing", "metadata": {}, "source": [ "## Functions to run the different models\n", @@ -1307,7 +1148,7 @@ }, { "cell_type": "markdown", - "id": "compliant-niger", + "id": "tight-queens", "metadata": {}, "source": [ "### Varying surface resistance model" @@ -1315,8 +1156,8 @@ }, { "cell_type": "code", - "execution_count": 162, - "id": "accomplished-meditation", + "execution_count": 26, + "id": "critical-rogers", "metadata": {}, "outputs": [], "source": [ @@ -1379,7 +1220,7 @@ }, { "cell_type": "markdown", - "id": "legal-memory", + "id": "decent-organization", "metadata": {}, "source": [ "### Constant surface conductance model" @@ -1387,8 +1228,8 @@ }, { "cell_type": "code", - "execution_count": 163, - "id": "plain-illustration", + "execution_count": 27, + "id": "surgical-error", "metadata": {}, "outputs": [], "source": [ @@ -1452,7 +1293,7 @@ }, { "cell_type": "markdown", - "id": "optical-macro", + "id": "concerned-boston", "metadata": {}, "source": [ "### Benchmark Penman-Monteith model" @@ -1460,8 +1301,8 @@ }, { "cell_type": "code", - "execution_count": 164, - "id": "three-garage", + "execution_count": 28, + "id": "pleased-alcohol", "metadata": {}, "outputs": [], "source": [ @@ -1520,8 +1361,8 @@ }, { "cell_type": "code", - "execution_count": 165, - "id": "younger-completion", + "execution_count": 29, + "id": "referenced-confidentiality", "metadata": {}, "outputs": [], "source": [ @@ -1580,7 +1421,7 @@ }, { "cell_type": "markdown", - "id": "expressed-spirit", + "id": "solid-crown", "metadata": {}, "source": [ "### Modified version of the PM equation\n", @@ -1595,8 +1436,8 @@ }, { "cell_type": "code", - "execution_count": 166, - "id": "colored-protocol", + "execution_count": 30, + "id": "pacific-understanding", "metadata": {}, "outputs": [], "source": [ @@ -1659,8 +1500,8 @@ }, { "cell_type": "code", - "execution_count": 167, - "id": "aggregate-calendar", + "execution_count": 31, + "id": "coastal-italic", "metadata": {}, "outputs": [], "source": [ @@ -1724,7 +1565,7 @@ }, { "cell_type": "markdown", - "id": "supreme-geology", + "id": "cellular-spain", "metadata": {}, "source": [ "### Priestley and Taylor model" @@ -1732,8 +1573,8 @@ }, { "cell_type": "code", - "execution_count": 168, - "id": "corporate-sapphire", + "execution_count": 32, + "id": "innocent-lotus", "metadata": {}, "outputs": [], "source": [ @@ -1788,8 +1629,8 @@ }, { "cell_type": "code", - "execution_count": 169, - "id": "editorial-enterprise", + "execution_count": 33, + "id": "distant-effect", "metadata": {}, "outputs": [], "source": [ @@ -1844,7 +1685,7 @@ }, { "cell_type": "markdown", - "id": "nearby-cheese", + "id": "received-haiti", "metadata": {}, "source": [ "### Inverse modelling\n", @@ -1853,8 +1694,8 @@ }, { "cell_type": "code", - "execution_count": 170, - "id": "atomic-kernel", + "execution_count": 34, + "id": "similar-mercy", "metadata": {}, "outputs": [], "source": [ @@ -1908,7 +1749,7 @@ }, { "cell_type": "markdown", - "id": "interpreted-district", + "id": "homeless-montreal", "metadata": {}, "source": [ "## Calibration algorithm" @@ -1916,8 +1757,8 @@ }, { "cell_type": "code", - "execution_count": 171, - "id": "thick-reach", + "execution_count": 35, + "id": "ideal-civilian", "metadata": {}, "outputs": [], "source": [ @@ -1938,8 +1779,8 @@ }, { "cell_type": "code", - "execution_count": 172, - "id": "integrated-paris", + "execution_count": 36, + "id": "conservative-lindsay", "metadata": { "jupyter": { "source_hidden": true @@ -2074,7 +1915,7 @@ }, { "cell_type": "markdown", - "id": "statistical-truth", + "id": "statutory-sugar", "metadata": {}, "source": [ "Use the global optimizer from the `scipy.optimize` package. Minimize the squared residual :\n", @@ -2085,8 +1926,8 @@ }, { "cell_type": "code", - "execution_count": 173, - "id": "arctic-tract", + "execution_count": 37, + "id": "liquid-reproduction", "metadata": {}, "outputs": [], "source": [ @@ -2105,7 +1946,7 @@ }, { "cell_type": "markdown", - "id": "opposite-salvation", + "id": "working-titanium", "metadata": {}, "source": [ "# Part III - Experiments" @@ -2113,7 +1954,7 @@ }, { "cell_type": "markdown", - "id": "incredible-honduras", + "id": "brown-photographer", "metadata": {}, "source": [ "#### Investigate the influence of wind speed on $E_a$\n", @@ -2122,8 +1963,16 @@ }, { "cell_type": "code", - "execution_count": 53, - "id": "substantial-mitchell", + "execution_count": null, + "id": "standard-corrections", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 38, + "id": "obvious-sacrifice", "metadata": {}, "outputs": [ { @@ -2158,7 +2007,7 @@ " ⎝ ⎝gₛ ⎠⎠ " ] }, - "execution_count": 53, + "execution_count": 38, "metadata": {}, "output_type": "execute_result" } @@ -2169,8 +2018,8 @@ }, { "cell_type": "code", - "execution_count": 54, - "id": "australian-renewal", + "execution_count": 39, + "id": "plain-market", "metadata": {}, "outputs": [ { @@ -2195,7 +2044,7 @@ " ⎝ ⎝ ⎝ VH ⎠ ⎝ VH ⎠⎠⎠" ] }, - "execution_count": 54, + "execution_count": 39, "metadata": {}, "output_type": "execute_result" } @@ -2207,8 +2056,8 @@ }, { "cell_type": "code", - "execution_count": 55, - "id": "honest-mouse", + "execution_count": 40, + "id": "advanced-munich", "metadata": { "jupyter": { "source_hidden": true @@ -2393,10 +2242,23 @@ }, { "cell_type": "code", - "execution_count": 56, - "id": "chubby-rapid", + "execution_count": 51, + "id": "known-strap", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ "# define new classes of equations: \n", "\n", @@ -2424,21 +2286,24 @@ " \"\"\"Formal equation of PM\"\"\"\n", " expr = Eq(E,(Delta*(Rn-G)+rho_a*c_p*VPD*eq_ga.rhs)/(L*(Delta+gamma*(1+eq_ga.rhs/g_s))))\n", "\n", - "vdic = {Delta:0.2, G:25, Rn:300, VPD:10, L:L.definition.default, gamma: gamma.definition.default, c_p: c_p.definition.default,\n", - " rho_a:rho_a.definition.default, kappa:kappa.definition.default, u_star:0.2, g_s:0.0014, z:23}\n", + "vdic = {Delta:0.2, G:25, Rn:400, VPD:10, L:L.definition.default, gamma: gamma.definition.default, c_p: c_p.definition.default,\n", + " rho_a:rho_a.definition.default, kappa:kappa.definition.default, u_star:0.2, g_s:1/70, z:23}\n", + "\n", + "from sympy.plotting import plot\n", + "plot(eq_PM_formal.rhs.subs(vdic))\n", "\n", "expr = eq_PM_formal.rhs.subs(vdic)" ] }, { "cell_type": "code", - "execution_count": 57, - "id": "fewer-uzbekistan", + "execution_count": 42, + "id": "planned-collector", "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -2451,10 +2316,10 @@ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 57, + "execution_count": 42, "metadata": {}, "output_type": "execute_result" } @@ -2466,8 +2331,8 @@ }, { "cell_type": "code", - "execution_count": 58, - "id": "generic-elevation", + "execution_count": 43, + "id": "split-pilot", "metadata": {}, "outputs": [], "source": [ @@ -2493,7 +2358,7 @@ { "cell_type": "code", "execution_count": 59, - "id": "connected-wagner", + "id": "tested-equivalent", "metadata": {}, "outputs": [], "source": [ @@ -2509,7 +2374,7 @@ { "cell_type": "code", "execution_count": 60, - "id": "interior-retreat", + "id": "unexpected-serum", "metadata": {}, "outputs": [], "source": [ diff --git a/notebooks/Finished_project/simpler_model/Influence_atmo_E_wet.png b/notebooks/Finished_project/simpler_model/Influence_atmo_E_wet.png index 146f46d53b2b75bf832f6614c8f85621862d65a2..7736dac84aba108b5b0f32ef6bb4fa50e7104cd4 100644 --- a/notebooks/Finished_project/simpler_model/Influence_atmo_E_wet.png +++ b/notebooks/Finished_project/simpler_model/Influence_atmo_E_wet.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5b432fbd8fced3e58306b0628250eb454c292493c50958bff90c84c406161afc -size 251648 +oid sha256:dd3ad5c2074f1867c3292e7745e474c8a189294673d984adef6276c746827ed0 +size 252947 diff --git a/notebooks/Finished_project/simpler_model/Influence_atmo_rel_dry_sturt.png b/notebooks/Finished_project/simpler_model/Influence_atmo_rel_dry_sturt.png index 7e7b1853f6719381b4028697eb9faad97bd05673..dce9346f8639c8347ccfa9805503f5f6ff0e480a 100644 --- a/notebooks/Finished_project/simpler_model/Influence_atmo_rel_dry_sturt.png +++ b/notebooks/Finished_project/simpler_model/Influence_atmo_rel_dry_sturt.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7c4e826a4dc63d4371799340713dd74a0377cb0f8c706e32382e4a3f21fad35c -size 321212 +oid sha256:daf08ac960600de4aa568104f881ac5f18b62314b54bd857300d2ecd3ec89ca4 +size 294317 diff --git a/notebooks/Finished_project/simpler_model/inverseModelling.png b/notebooks/Finished_project/simpler_model/inverseModelling.png index 4149ab2324021000b6caa22726bcc94731c1b4eb..66567170eea1144b3ea1340b9ea0de3df42ca7ff 100644 Binary files a/notebooks/Finished_project/simpler_model/inverseModelling.png and b/notebooks/Finished_project/simpler_model/inverseModelling.png differ diff --git a/notebooks/Finished_project/simpler_model/latex_files/dry_season.tex b/notebooks/Finished_project/simpler_model/latex_files/dry_season.tex index 1dcfd3aba13da422c6209f5d6282ee3a83ab6b37..28586d0d850db384644eb3ab56e82ca94341b9fa 100644 --- a/notebooks/Finished_project/simpler_model/latex_files/dry_season.tex +++ b/notebooks/Finished_project/simpler_model/latex_files/dry_season.tex @@ -1,12 +1,12 @@ \begin{tabular}{lrrrrrrrr} \toprule -{} & Varying\_gS & Mod\_var\_gS & Constant\_gS & Mod\_cst\_gS & PT\_model & Bench\_PT & fPAR\_PM & Bench\_PM \\ +{} & Varying\_gS & Mod\_var\_gS & Constant\_gS & Mod\_cst\_gS & PT\_model & Bench\_PT & fPAR\_PM & Bench\_PM \\ \midrule -RMSE & 0.613282 & 0.626179 & 0.728898 & 0.750989 & 0.635991 & 2.001012 & 2.367712 & 5.080072 \\ -RMedSE & 0.438843 & 0.364637 & 0.482288 & 0.520776 & 0.384338 & 1.306227 & 1.949292 & 4.380618 \\ -NS & 0.746747 & 0.735983 & 0.642259 & 0.620246 & 0.727644 & -1.696088 & -2.774787 & -16.376981 \\ -RVE & -0.045086 & -0.004417 & -0.039894 & 0.069212 & -0.058347 & -0.613086 & -0.735152 & -1.652722 \\ -MAE & 0.482613 & 0.478669 & 0.573307 & 0.598198 & 0.496328 & 1.702450 & 2.084216 & 4.570540 \\ -bias & -0.124684 & -0.012215 & -0.110326 & 0.191402 & -0.161357 & -1.695466 & -2.033035 & -4.570540 \\ +RMSE & 0.931820 & 0.893647 & 2.796542 & 1.308901 & 0.635991 & 2.001012 & 4.892235 & 9.123506 \\ +RMedSE & 0.407479 & 0.461836 & 2.378363 & 0.990405 & 0.384338 & 1.306227 & 4.206196 & 7.780005 \\ +NS & 0.415347 & 0.462268 & -4.265958 & -0.153581 & 0.727644 & -1.696088 & -15.115697 & -55.047735 \\ +RVE & -0.046600 & 0.068944 & 0.406716 & 0.336310 & -0.058347 & -0.613086 & -1.601375 & -2.999871 \\ +MAE & 0.621935 & 0.649353 & 2.500643 & 1.043889 & 0.496328 & 1.702450 & 4.428542 & 8.296030 \\ +bias & -0.128870 & 0.190662 & 1.124757 & 0.930052 & -0.161357 & -1.695466 & -4.428542 & -8.296030 \\ \bottomrule \end{tabular} diff --git a/notebooks/Finished_project/simpler_model/latex_files/wet_season.tex b/notebooks/Finished_project/simpler_model/latex_files/wet_season.tex index de802b947683defcf9cbf4041816f39451e94862..c4cff5b9249e55df403fcf74939591d52444c224 100644 --- a/notebooks/Finished_project/simpler_model/latex_files/wet_season.tex +++ b/notebooks/Finished_project/simpler_model/latex_files/wet_season.tex @@ -1,12 +1,12 @@ \begin{tabular}{lrrrrrrrr} \toprule -{} & Varying\_gS & Mod\_var\_gS & Constant\_gS & Mod\_cst\_gS & PT\_model & Bench\_PT & fPAR\_PM & Bench\_PM \\ +{} & Varying\_gS & Mod\_var\_gS & Constant\_gS & Mod\_cst\_gS & PT\_model & Bench\_PT & fPAR\_PM & Bench\_PM \\ \midrule -RMSE & 0.770018 & 0.808084 & 0.801993 & 0.918294 & 0.831119 & 1.797729 & 1.936702 & 4.116962 \\ -RMedSE & 0.461744 & 0.448924 & 0.505759 & 0.609993 & 0.413534 & 1.265567 & 1.278348 & 2.545557 \\ -NS & 0.800861 & 0.780686 & 0.783979 & 0.716784 & 0.768005 & -0.085430 & -0.259735 & -4.692554 \\ -RVE & 0.009411 & 0.007280 & -0.009784 & 0.022225 & 0.003059 & -0.373457 & -0.344705 & -0.896827 \\ -MAE & 0.563843 & 0.597555 & 0.628617 & 0.720772 & 0.585899 & 1.541070 & 1.553741 & 3.389369 \\ -bias & 0.034944 & 0.027033 & -0.036332 & 0.082527 & 0.011358 & -1.386752 & -1.279987 & -3.330175 \\ +RMSE & 1.159471 & 1.144177 & 2.855625 & 1.691557 & 0.831119 & 1.797729 & 4.221179 & 7.730995 \\ +RMedSE & 0.610701 & 0.656019 & 2.378363 & 1.358722 & 0.413534 & 1.265567 & 3.322006 & 5.591585 \\ +NS & 0.548484 & 0.560317 & -1.738771 & 0.038993 & 0.768005 & -0.085430 & -4.984405 & -19.073555 \\ +RVE & -0.131226 & -0.062211 & -0.036571 & 0.360602 & 0.003059 & -0.373457 & -0.986124 & -1.817859 \\ +MAE & 0.856273 & 0.882958 & 2.519780 & 1.411916 & 0.585899 & 1.541070 & 3.672916 & 6.750230 \\ +bias & -0.487281 & -0.231006 & -0.135799 & 1.339018 & 0.011358 & -1.386752 & -3.661761 & -6.750230 \\ \bottomrule \end{tabular} diff --git a/notebooks/Finished_project/simpler_model/latex_files/whole_year.tex b/notebooks/Finished_project/simpler_model/latex_files/whole_year.tex index dc215523aa48b8a3d83b4ea495d32ab50f0363a8..9ddbb92378f796e465f6e23cedab0557455c30d0 100644 --- a/notebooks/Finished_project/simpler_model/latex_files/whole_year.tex +++ b/notebooks/Finished_project/simpler_model/latex_files/whole_year.tex @@ -1,12 +1,12 @@ \begin{tabular}{lrrrrrrrr} \toprule -{} & Varying\_gS & Mod\_var\_gS & Constant\_gS & Mod\_cst\_gS & PT\_model & Bench\_PT & fPAR\_PM & Bench\_PM \\ +{} & Varying\_gS & Mod\_var\_gS & Constant\_gS & Mod\_cst\_gS & PT\_model & Bench\_PT & fPAR\_PM & Bench\_PM \\ \midrule -RMSE & 0.867409 & 0.931554 & 0.924532 & 1.038747 & 0.899593 & 1.845079 & 1.789343 & 3.849381 \\ -RMedSE & 0.471161 & 0.514767 & 0.540893 & 0.648825 & 0.439765 & 1.392651 & 1.189700 & 2.635833 \\ -NS & 0.709874 & 0.665378 & 0.670403 & 0.583937 & 0.687945 & -0.312710 & -0.234599 & -4.713745 \\ -RVE & 0.024020 & 0.013361 & -0.002139 & 0.024325 & 0.021555 & -0.364515 & -0.270482 & -0.801912 \\ -MAE & 0.614918 & 0.676997 & 0.692477 & 0.799959 & 0.619385 & 1.600261 & 1.406583 & 3.199727 \\ -bias & 0.092765 & 0.051602 & -0.008259 & 0.093944 & 0.083244 & -1.407761 & -1.044603 & -3.096990 \\ +RMSE & 1.283445 & 1.273254 & 2.945861 & 1.762784 & 0.899593 & 1.845079 & 3.956166 & 7.332395 \\ +RMedSE & 0.678966 & 0.767610 & 2.438221 & 1.470380 & 0.439765 & 1.392651 & 3.034375 & 5.581212 \\ +NS & 0.364825 & 0.374872 & -2.346290 & -0.198222 & 0.687945 & -0.312710 & -5.035150 & -19.731502 \\ +RVE & -0.153913 & -0.086192 & -0.130060 & 0.369599 & 0.021555 & -0.364515 & -0.869089 & -1.660680 \\ +MAE & 0.957122 & 0.988365 & 2.571213 & 1.505232 & 0.619385 & 1.600261 & 3.390706 & 6.414795 \\ +bias & -0.594413 & -0.332875 & -0.502292 & 1.427393 & 0.083244 & -1.407761 & -3.356427 & -6.413556 \\ \bottomrule \end{tabular} diff --git a/notebooks/Finished_project/simpler_model/simpler_model.ipynb b/notebooks/Finished_project/simpler_model/simpler_model.ipynb index c5b026510171d5b1f0b4d7d401d62b1fa38dd005..8fed94c682af1d38665558bde26c778b9d9522e7 100644 --- a/notebooks/Finished_project/simpler_model/simpler_model.ipynb +++ b/notebooks/Finished_project/simpler_model/simpler_model.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "virgin-reminder", + "id": "egyptian-watershed", "metadata": {}, "source": [ "# **Location of the stress factor in potential evapo-transpiration models**" @@ -10,7 +10,7 @@ }, { "cell_type": "markdown", - "id": "synthetic-ebony", + "id": "metallic-stadium", "metadata": { "slideshow": { "slide_type": "slide" @@ -62,7 +62,7 @@ }, { "cell_type": "markdown", - "id": "liberal-choir", + "id": "august-authentication", "metadata": {}, "source": [ "# Part II - Functions set up" @@ -70,7 +70,7 @@ }, { "cell_type": "markdown", - "id": "naughty-picnic", + "id": "forward-paintball", "metadata": {}, "source": [ "## Importing relevant packages" @@ -78,10 +78,19 @@ }, { "cell_type": "code", - "execution_count": 493, - "id": "refined-lodge", + "execution_count": 1, + "id": "brief-driver", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING (aesara.link.c.cmodule): install mkl with `conda install mkl-service`: No module named 'mkl'\n", + "WARNING (aesara.tensor.blas): Using NumPy C-API based implementation for BLAS functions.\n" + ] + } + ], "source": [ "# data manipulation and plotting\n", "import pandas as pd\n", @@ -136,7 +145,7 @@ }, { "cell_type": "markdown", - "id": "covered-bridge", + "id": "quality-robert", "metadata": {}, "source": [ "## Path of the different files (pre-defined python functions, sympy equations, sympy variables)" @@ -144,8 +153,8 @@ }, { "cell_type": "code", - "execution_count": 494, - "id": "democratic-finger", + "execution_count": 2, + "id": "joint-dryer", "metadata": { "tags": [ "parameters" @@ -180,7 +189,7 @@ }, { "cell_type": "markdown", - "id": "accompanied-tenant", + "id": "through-sunday", "metadata": {}, "source": [ "## Importing the sympy variables and equations defined in the theory.ipynb notebook" @@ -188,148 +197,10 @@ }, { "cell_type": "code", - "execution_count": 495, - "id": "polished-explanation", + "execution_count": 3, + "id": "former-evanescence", "metadata": {}, "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:theta_sat\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:theta_res\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:alpha\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:n\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:m\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:S_mvg\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:theta\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:h\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:S\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:theta_4\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:theta_3\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:theta_2\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:theta_1\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:L\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:Mw\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:Pv\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:Pvs\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:R\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:T\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:c1\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:T0\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:Delta\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:E\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:G\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:H\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:Rn\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:LE\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:gamma\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:alpha_PT\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:c_p\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:w\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:kappa\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:z\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:u_star\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:VH\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:d\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:z_om\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:z_oh\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:r_a\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:g_a\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:r_s\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:g_s\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:c1_e\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:c2_e\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:e\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:T_min\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:T_max\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:RH_max\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:RH_min\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:e_a\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:e_s\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:iv_T\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:T_kv\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:P\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:rho_a\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/variables/_core.py:89: UserWarning: \"e/theory_variable:VPD\" will be overridden by \"e/theory_variable:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/equations/_core.py:107: UserWarning: \"e/theory_equation:eq_m_n\" will be overridden by \"e/theory_equation:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/equations/_core.py:107: UserWarning: \"e/theory_equation:eq_MVG_neg_case\" will be overridden by \"e/theory_equation:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/equations/_core.py:107: UserWarning: \"e/theory_equation:eq_MVG\" will be overridden by \"e/theory_equation:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/equations/_core.py:107: UserWarning: \"e/theory_equation:eq_sat_degree\" will be overridden by \"e/theory_equation:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/equations/_core.py:107: UserWarning: \"e/theory_equation:eq_MVG_h\" will be overridden by \"e/theory_equation:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/equations/_core.py:107: UserWarning: \"e/theory_equation:eq_h_FC\" will be overridden by \"e/theory_equation:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/equations/_core.py:107: UserWarning: \"e/theory_equation:eq_theta_4_3\" will be overridden by \"e/theory_equation:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/equations/_core.py:107: UserWarning: \"e/theory_equation:eq_theta_2_1\" will be overridden by \"e/theory_equation:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/equations/_core.py:107: UserWarning: \"e/theory_equation:eq_water_stress_simple\" will be overridden by \"e/theory_equation:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/equations/_core.py:107: UserWarning: \"e/theory_equation:eq_Pvs_T\" will be overridden by \"e/theory_equation:\"\n", - " instance[expr] = instance\n" - ] - }, { "name": "stdout", "output_type": "stream", @@ -389,27 +260,7 @@ "T_kv\n", "P\n", "rho_a\n", - "VPD\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/opt/conda/lib/python3.8/site-packages/essm/equations/_core.py:107: UserWarning: \"e/theory_equation:eq_Delta\" will be overridden by \"e/theory_equation:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/equations/_core.py:107: UserWarning: \"e/theory_equation:eq_PT\" will be overridden by \"e/theory_equation:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/equations/_core.py:107: UserWarning: \"e/theory_equation:eq_PM\" will be overridden by \"e/theory_equation:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/equations/_core.py:107: UserWarning: \"e/theory_equation:eq_PM_VPD\" will be overridden by \"e/theory_equation:\"\n", - " instance[expr] = instance\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ + "VPD\n", "eq_m_n\n", "eq_MVG_neg_case\n", "eq_MVG\n", @@ -427,16 +278,6 @@ "eq_PM_g\n", "eq_PM_inv\n" ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/opt/conda/lib/python3.8/site-packages/essm/equations/_core.py:107: UserWarning: \"e/theory_equation:eq_PM_g\" will be overridden by \"e/theory_equation:\"\n", - " instance[expr] = instance\n", - "/opt/conda/lib/python3.8/site-packages/essm/equations/_core.py:107: UserWarning: \"e/theory_equation:eq_PM_inv\" will be overridden by \"e/theory_equation:\"\n", - " instance[expr] = instance\n" - ] } ], "source": [ @@ -454,7 +295,7 @@ }, { "cell_type": "markdown", - "id": "concrete-bishop", + "id": "massive-uniform", "metadata": {}, "source": [ "## Importing the performance assessment functions defined in the analysis_function.py file" @@ -462,8 +303,8 @@ }, { "cell_type": "code", - "execution_count": 496, - "id": "found-liverpool", + "execution_count": 4, + "id": "cooked-scholarship", "metadata": {}, "outputs": [ { @@ -515,7 +356,7 @@ }, { "cell_type": "markdown", - "id": "peaceful-marsh", + "id": "obvious-direction", "metadata": {}, "source": [ "## Data import, preprocess and shape for the computations" @@ -523,7 +364,7 @@ }, { "cell_type": "markdown", - "id": "missing-disorder", + "id": "changing-interim", "metadata": {}, "source": [ "### Get the different files where data are stored\n", @@ -533,8 +374,8 @@ }, { "cell_type": "code", - "execution_count": 497, - "id": "swiss-instruction", + "execution_count": 5, + "id": "sixth-words", "metadata": {}, "outputs": [ { @@ -564,7 +405,7 @@ }, { "cell_type": "markdown", - "id": "disturbed-smile", + "id": "removable-reception", "metadata": {}, "source": [ "### Define and test a function that process the fPAR data\n", @@ -573,8 +414,8 @@ }, { "cell_type": "code", - "execution_count": 498, - "id": "roman-festival", + "execution_count": 6, + "id": "flush-conditions", "metadata": {}, "outputs": [], "source": [ @@ -612,8 +453,8 @@ }, { "cell_type": "code", - "execution_count": 499, - "id": "prompt-notion", + "execution_count": 7, + "id": "urban-invite", "metadata": {}, "outputs": [ { @@ -728,7 +569,7 @@ "12 0.78 12" ] }, - "execution_count": 499, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -739,7 +580,7 @@ }, { "cell_type": "markdown", - "id": "incorporated-advertiser", + "id": "minimal-seating", "metadata": {}, "source": [ "### fPARSet function\n", @@ -748,8 +589,8 @@ }, { "cell_type": "code", - "execution_count": 500, - "id": "hourly-assurance", + "execution_count": 8, + "id": "proved-despite", "metadata": {}, "outputs": [], "source": [ @@ -780,7 +621,7 @@ }, { "cell_type": "markdown", - "id": "referenced-graphic", + "id": "aging-cover", "metadata": {}, "source": [ "### DataChose function\n", @@ -800,8 +641,8 @@ }, { "cell_type": "code", - "execution_count": 501, - "id": "relative-grocery", + "execution_count": 9, + "id": "level-gardening", "metadata": {}, "outputs": [], "source": [ @@ -894,7 +735,7 @@ }, { "cell_type": "markdown", - "id": "educated-consolidation", + "id": "induced-stewart", "metadata": {}, "source": [ "## Compile the different functions defined in the symbolic domain\n", @@ -903,7 +744,7 @@ }, { "cell_type": "markdown", - "id": "exotic-particle", + "id": "adaptive-lottery", "metadata": {}, "source": [ "### Water stress functions" @@ -911,8 +752,8 @@ }, { "cell_type": "code", - "execution_count": 502, - "id": "consecutive-margin", + "execution_count": 10, + "id": "pressed-april", "metadata": {}, "outputs": [], "source": [ @@ -933,7 +774,7 @@ }, { "cell_type": "markdown", - "id": "answering-carrier", + "id": "duplicate-pierre", "metadata": {}, "source": [ "### Soil water potential" @@ -941,8 +782,8 @@ }, { "cell_type": "code", - "execution_count": 503, - "id": "powered-quick", + "execution_count": 11, + "id": "compact-morris", "metadata": {}, "outputs": [], "source": [ @@ -957,8 +798,8 @@ }, { "cell_type": "code", - "execution_count": 504, - "id": "enhanced-negotiation", + "execution_count": 12, + "id": "continental-disability", "metadata": {}, "outputs": [], "source": [ @@ -975,7 +816,7 @@ }, { "cell_type": "markdown", - "id": "offshore-visit", + "id": "complex-basketball", "metadata": {}, "source": [ "### Penman-Monteith" @@ -983,8 +824,8 @@ }, { "cell_type": "code", - "execution_count": 505, - "id": "normal-singing", + "execution_count": 13, + "id": "demographic-outside", "metadata": {}, "outputs": [], "source": [ @@ -1002,8 +843,8 @@ }, { "cell_type": "code", - "execution_count": 506, - "id": "sought-shoot", + "execution_count": 14, + "id": "economic-supplier", "metadata": {}, "outputs": [], "source": [ @@ -1030,8 +871,8 @@ }, { "cell_type": "code", - "execution_count": 507, - "id": "separated-confidence", + "execution_count": 15, + "id": "dried-radius", "metadata": {}, "outputs": [], "source": [ @@ -1052,8 +893,8 @@ }, { "cell_type": "code", - "execution_count": 508, - "id": "mexican-margin", + "execution_count": 16, + "id": "american-facility", "metadata": {}, "outputs": [], "source": [ @@ -1074,8 +915,8 @@ }, { "cell_type": "code", - "execution_count": 509, - "id": "rising-northeast", + "execution_count": 17, + "id": "genetic-manitoba", "metadata": {}, "outputs": [], "source": [ @@ -1096,8 +937,8 @@ }, { "cell_type": "code", - "execution_count": 510, - "id": "stretch-warning", + "execution_count": 18, + "id": "dying-ceremony", "metadata": {}, "outputs": [], "source": [ @@ -1124,8 +965,8 @@ }, { "cell_type": "code", - "execution_count": 511, - "id": "disciplinary-geology", + "execution_count": 19, + "id": "cloudy-acting", "metadata": {}, "outputs": [], "source": [ @@ -1155,8 +996,8 @@ }, { "cell_type": "code", - "execution_count": 512, - "id": "accessory-preparation", + "execution_count": 20, + "id": "vital-volume", "metadata": {}, "outputs": [], "source": [ @@ -1184,8 +1025,8 @@ }, { "cell_type": "code", - "execution_count": 513, - "id": "royal-pointer", + "execution_count": 21, + "id": "identical-nicaragua", "metadata": {}, "outputs": [], "source": [ @@ -1218,8 +1059,8 @@ }, { "cell_type": "code", - "execution_count": 514, - "id": "dirty-circle", + "execution_count": 22, + "id": "unique-approval", "metadata": {}, "outputs": [], "source": [ @@ -1241,8 +1082,8 @@ }, { "cell_type": "code", - "execution_count": 515, - "id": "expressed-latex", + "execution_count": 23, + "id": "empirical-communist", "metadata": {}, "outputs": [], "source": [ @@ -1260,7 +1101,7 @@ }, { "cell_type": "markdown", - "id": "first-independence", + "id": "efficient-interpretation", "metadata": {}, "source": [ "### Assign the different compiled functions to variables functions (create the functions in python)" @@ -1268,8 +1109,8 @@ }, { "cell_type": "code", - "execution_count": 516, - "id": "regulated-chinese", + "execution_count": 24, + "id": "according-elephant", "metadata": {}, "outputs": [], "source": [ @@ -1296,8 +1137,8 @@ }, { "cell_type": "code", - "execution_count": 517, - "id": "instrumental-notification", + "execution_count": 25, + "id": "satellite-healing", "metadata": {}, "outputs": [], "source": [ @@ -1326,7 +1167,7 @@ }, { "cell_type": "markdown", - "id": "damaged-shoot", + "id": "herbal-cotton", "metadata": {}, "source": [ "## Functions to run the different models\n", @@ -1335,7 +1176,7 @@ }, { "cell_type": "markdown", - "id": "advisory-endorsement", + "id": "worse-utility", "metadata": {}, "source": [ "### Varying surface resistance model" @@ -1343,12 +1184,12 @@ }, { "cell_type": "code", - "execution_count": 518, - "id": "expanded-midnight", + "execution_count": 26, + "id": "enhanced-utilization", "metadata": {}, "outputs": [], "source": [ - "def PM_run_var(data, Psi_3_val, Psi_4_val, gs_val = 1/70, compute_VPD = False):\n", + "def PM_run_var(data, Psi_3_val, Psi_4_val, gs_val = 1/7, compute_VPD = False):\n", " \"\"\"run varying SR Penman Monteith model but with VPD data instead of Ea and Es\n", " -----------------------------------\n", " data: list containing the data /!\\ the data should be in a specific order : Data = [Ta, Fn, Fg, Sws, Fe, Ws, Ustar, Ta_min, Ta_max, RH_min, RH_max]\n", @@ -1408,7 +1249,7 @@ }, { "cell_type": "markdown", - "id": "selected-gregory", + "id": "boxed-drama", "metadata": {}, "source": [ "### Constant surface conductance model" @@ -1416,12 +1257,12 @@ }, { "cell_type": "code", - "execution_count": 519, - "id": "numerical-plane", + "execution_count": 27, + "id": "unsigned-sponsorship", "metadata": {}, "outputs": [], "source": [ - "def PM_run_cst(data, Psi_3_val, Psi_4_val, gs_val = 1/70, compute_VPD = False):\n", + "def PM_run_cst(data, Psi_3_val, Psi_4_val, gs_val = 1/7, compute_VPD = False):\n", " \"\"\"run constant SR Penman Monteith mode but with VPD data instead of Ea and Es\n", " -----------------------------------\n", " data: list containing the data /!\\ the data should be in a specific order : Data = [Ta, Fn, Fg, Sws, Fe, Ws, Ustar, Ta_min, Ta_max, RH_min, RH_max]\n", @@ -1481,7 +1322,7 @@ }, { "cell_type": "markdown", - "id": "exempt-translation", + "id": "english-installation", "metadata": {}, "source": [ "### Benchmark Penman-Monteith model" @@ -1489,12 +1330,12 @@ }, { "cell_type": "code", - "execution_count": 520, - "id": "sharing-hardware", + "execution_count": 28, + "id": "leading-shoot", "metadata": {}, "outputs": [], "source": [ - "def PM_run_classic_fPAR(data, gs_val = 1/70, compute_VPD = False):\n", + "def PM_run_classic_fPAR(data, gs_val = 1/7, compute_VPD = False):\n", " \"\"\"run classic PM model (only Rs as calibration parameter)\n", " -----------------------------------\n", " data: list containing the data /!\\ the data should be in a specific order : Data = [Ta, Fn, Fg, Sws, Fe, Ws, Ustar, Ta_min, Ta_max, RH_min, RH_max]\n", @@ -1549,12 +1390,12 @@ }, { "cell_type": "code", - "execution_count": 521, - "id": "unlikely-provincial", + "execution_count": 29, + "id": "grateful-poultry", "metadata": {}, "outputs": [], "source": [ - "def PM_run_classic(data, gs_val = 1/70, compute_VPD = False):\n", + "def PM_run_classic(data, gs_val = 1/7, compute_VPD = False):\n", " \"\"\"run classic PM model (only Rs as calibration parameter)\n", " -----------------------------------\n", " data: list containing the data /!\\ the data should be in a specific order : Data = [Ta, Fn, Fg, Sws, Fe, Ws, Ustar, Ta_min, Ta_max, RH_min, RH_max]\n", @@ -1609,7 +1450,7 @@ }, { "cell_type": "markdown", - "id": "modern-cheat", + "id": "amazing-induction", "metadata": {}, "source": [ "### Modified version of the PM equation\n", @@ -1624,12 +1465,12 @@ }, { "cell_type": "code", - "execution_count": 522, - "id": "loving-boundary", + "execution_count": 30, + "id": "partial-duration", "metadata": {}, "outputs": [], "source": [ - "def PM_run_2var(data, Psi_3_val, Psi_4_val, gs_val = 1/70, compute_VPD = False):\n", + "def PM_run_2var(data, Psi_3_val, Psi_4_val, gs_val = 1/7, compute_VPD = False):\n", " \"\"\"run varying SR Penman Monteith model but with VPD data instead of Ea and Es\n", " -----------------------------------\n", " data: list containing the data /!\\ the data should be in a specific order : Data = [Ta, Fn, Fg, Sws, Fe, Ws, Ustar, Ta_min, Ta_max, RH_min, RH_max]\n", @@ -1689,12 +1530,12 @@ }, { "cell_type": "code", - "execution_count": 523, - "id": "sudden-setup", + "execution_count": 31, + "id": "gentle-group", "metadata": {}, "outputs": [], "source": [ - "def PM_run_2cst(data, Psi_3_val, Psi_4_val, gs_val = 1/70, compute_VPD = False):\n", + "def PM_run_2cst(data, Psi_3_val, Psi_4_val, gs_val = 1/7, compute_VPD = False):\n", " \"\"\"run constant SR Penman Monteith mode but with VPD data instead of Ea and Es\n", " -----------------------------------\n", " data: list containing the data /!\\ the data should be in a specific order : Data = [Ta, Fn, Fg, Sws, Fe, Ws, Ustar, Ta_min, Ta_max, RH_min, RH_max]\n", @@ -1754,7 +1595,7 @@ }, { "cell_type": "markdown", - "id": "satellite-hotel", + "id": "infinite-guide", "metadata": {}, "source": [ "### Priestley and Taylor model" @@ -1762,8 +1603,8 @@ }, { "cell_type": "code", - "execution_count": 524, - "id": "prostate-services", + "execution_count": 32, + "id": "loving-prophet", "metadata": {}, "outputs": [], "source": [ @@ -1818,8 +1659,8 @@ }, { "cell_type": "code", - "execution_count": 525, - "id": "increasing-lawsuit", + "execution_count": 33, + "id": "israeli-caribbean", "metadata": {}, "outputs": [], "source": [ @@ -1874,7 +1715,7 @@ }, { "cell_type": "markdown", - "id": "frozen-timing", + "id": "understood-conversation", "metadata": {}, "source": [ "### Inverse modelling\n", @@ -1883,8 +1724,8 @@ }, { "cell_type": "code", - "execution_count": 526, - "id": "welcome-cathedral", + "execution_count": 34, + "id": "angry-democracy", "metadata": {}, "outputs": [], "source": [ @@ -1938,7 +1779,7 @@ }, { "cell_type": "markdown", - "id": "timely-nicholas", + "id": "comfortable-interstate", "metadata": {}, "source": [ "## Calibration algorithm" @@ -1946,8 +1787,8 @@ }, { "cell_type": "code", - "execution_count": 527, - "id": "dependent-being", + "execution_count": 35, + "id": "accurate-huntington", "metadata": {}, "outputs": [], "source": [ @@ -1968,8 +1809,8 @@ }, { "cell_type": "code", - "execution_count": 528, - "id": "finished-arabic", + "execution_count": 36, + "id": "statutory-committee", "metadata": {}, "outputs": [], "source": [ @@ -2100,7 +1941,7 @@ }, { "cell_type": "markdown", - "id": "multiple-veteran", + "id": "lonely-damages", "metadata": {}, "source": [ "Use the global optimizer from the `scipy.optimize` package. Minimize the squared residual :\n", @@ -2111,8 +1952,8 @@ }, { "cell_type": "code", - "execution_count": 529, - "id": "residential-number", + "execution_count": 37, + "id": "computational-quilt", "metadata": {}, "outputs": [], "source": [ @@ -2131,7 +1972,7 @@ }, { "cell_type": "markdown", - "id": "reduced-eligibility", + "id": "attractive-texture", "metadata": {}, "source": [ "Function to compute the moving average of a time serie with a varying window size" @@ -2139,8 +1980,8 @@ }, { "cell_type": "code", - "execution_count": 530, - "id": "lesbian-hampton", + "execution_count": 38, + "id": "exposed-personal", "metadata": {}, "outputs": [], "source": [ @@ -2169,7 +2010,7 @@ }, { "cell_type": "markdown", - "id": "adopted-reference", + "id": "official-charge", "metadata": {}, "source": [ "Define a non-linear stress factor function for later experiments" @@ -2177,8 +2018,8 @@ }, { "cell_type": "code", - "execution_count": 531, - "id": "pediatric-daisy", + "execution_count": 39, + "id": "durable-parallel", "metadata": {}, "outputs": [], "source": [ @@ -2212,7 +2053,7 @@ }, { "cell_type": "markdown", - "id": "intellectual-stopping", + "id": "impressed-population", "metadata": {}, "source": [ "# Part III - Experiments" @@ -2220,7 +2061,7 @@ }, { "cell_type": "markdown", - "id": "lesbian-proof", + "id": "eleven-absence", "metadata": {}, "source": [ "## One site, one year\n", @@ -2229,8 +2070,8 @@ }, { "cell_type": "code", - "execution_count": 532, - "id": "democratic-bahrain", + "execution_count": 40, + "id": "recognized-pension", "metadata": {}, "outputs": [ { @@ -2620,10 +2461,10 @@ " vegetation: Woody savanna\n", " xl_datemode: 0\n", " xl_filename: E:/My Dropbox/Dropbox/Data_flux_data/Site data ...\n", - " xl_moddatetime: 2020-01-21 11:59:06