{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import copy\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import netCDF4 as nc\n",
    "import sys\n",
    "PFTname=['tropical evergreen','tropical deciduous','extra-tropical evergreen','extra-tropical deciduous',\n",
    "         'raingreen shrubs','deciduous shrubs','C3 grass','C4 grass','C3 pasture','C4 pasture','C3/C4 crop',\n",
    "         'Tree','Shrub','Grass','Pasture']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2015\n",
      "2020\n",
      "2025\n",
      "2030\n",
      "2035\n",
      "2040\n",
      "2045\n",
      "2050\n",
      "2055\n",
      "2060\n",
      "2065\n",
      "2070\n",
      "2075\n",
      "2080\n",
      "2085\n",
      "2090\n",
      "2095\n",
      "(3, 15, 85)\n"
     ]
    }
   ],
   "source": [
    "gridarea_T63 = nc.Dataset('/home/shkhwwey/OAE/gridarea_T63.nc').variables['cell_area'][:]\n",
    "cover_type = nc.Dataset ('/home/shkhwwey/OAE/jsbach_T63ORCA05_11tiles_5layers_1850_dynveg.nc').variables['cover_type'][:]\n",
    "\n",
    "startyear = 2015\n",
    "endyear = 2100\n",
    "flux = False\n",
    "mass = False\n",
    "save_to_csv = False\n",
    "DIFF = False\n",
    "var_name = 'pft_area'\n",
    "dirlist = []\n",
    "expset = 'SynTraAR'\n",
    "if expset =='SynTraREF':\n",
    "    expname = ['HW013','HW012','HW011']\n",
    "    dirlist.append('/scratch/usr/shkhwwey/models/foci2.0/experiments/FOCI20.0-HW013_esm_ssp370_constLu/nc/')\n",
    "    dirlist.append('/scratch/usr/shkhwwey/models/foci2.0/experiments/FOCI20.0-HW012_esm_ssp370_constLu/nc/')\n",
    "    dirlist.append('/scratch/usr/shkhwwey/models/foci2.0/experiments/FOCI20.0-HW011_esm_ssp370_constLu/nc/')\n",
    "if expset == 'SynTraAR':\n",
    "    expname = ['HW022','HW023','HW024']\n",
    "    dirlist.append('/scratch/usr/shkhwwey/models/foci2.0_maps_wh/experiments/FOCI20.0-HW022_esm_ssp370_AR/nc/')\n",
    "    dirlist.append('/scratch/usr/shkhwwey/models/foci2.0_maps_wh/experiments/FOCI20.0-HW023_esm_ssp370_AR/nc/')\n",
    "    dirlist.append('/scratch/usr/shkhwwey/models/foci2.0_maps_wh/experiments/FOCI20.0-HW024_esm_ssp370_AR/nc/')\n",
    "# expname = ['CC104','CC105','CC106','HW002','HW005','HW006','HW003','HW007','HW008']\n",
    "# expname = ['HW002','HW005','HW006']\n",
    "# dirlist.append ('/scratch/usr/shkhwwey/output_others/FOCI1.20.0-CC104_RCP_ESM_spinup2089/nc/')\n",
    "# dirlist.append ('/scratch/usr/shkhwwey/output_others/FOCI1.20.0-CC105_RCP_ESM_spinup2099/nc/')\n",
    "# dirlist.append ('/scratch/usr/shkhwwey/output_others/FOCI1.20.0-CC106_RCP_ESM_spinup2079/nc/')\n",
    "# dirlist.append ('/scratch/usr/shkhwwey/models/foci2.0/experiments/FOCI20.0-HW002_esm_ssp585_ocn_alk/nc/')\n",
    "# dirlist.append ('/scratch/usr/shkhwwey/models/foci2.0/experiments/FOCI20.0-HW005_esm_ssp585_ocn_alk/nc/')\n",
    "# dirlist.append ('/scratch/usr/shkhwwey/models/foci2.0/experiments/FOCI20.0-HW006_esm_ssp585_ocn_alk/nc/')\n",
    "# dirlist.append ('/scratch/usr/shkhwwey/models/foci2.0/experiments/FOCI20.0-HW003_esm_ssp585_ssp126Lu/nc/')\n",
    "# dirlist.append ('/scratch/usr/shkhwwey/models/foci2.0/experiments/FOCI20.0-HW007_esm_ssp585_ssp126Lu/nc/')\n",
    "# dirlist.append ('/scratch/usr/shkhwwey/models/foci2.0/experiments/FOCI20.0-HW008_esm_ssp585_ssp126Lu/nc/')\n",
    "#dirlist.append ('/scratch/usr/shkhwwey/models/foci2.0/experiments/FOCI20.0-HW011_esm_ssp370_constLu/nc/')\n",
    "# dirlist.append ('/scratch/usr/shkhwwey/models/foci2.0/experiments/FOCI20.0-HW014_esm_ssp585_AR_stop/nc/')\n",
    "#########\n",
    "# (nexp, npft, nyear)\n",
    "Var_timeseries = []\n",
    "for i in range(len(dirlist)):\n",
    "    Var_timeseries.append([])\n",
    "    for j in range(11):\n",
    "        Var_timeseries[-1].append([])\n",
    "###########\n",
    "for year in range(startyear,endyear):\n",
    "    arealist = []\n",
    "    for iexp in range(len(dirlist)):\n",
    "        veg_ratio_max = nc.Dataset(dirlist[iexp]+'jsbach_' + str(year)+'.nc').variables['veg_ratio_max'][:] \n",
    "        cover_fract = nc.Dataset(dirlist[iexp]+'jsbach_' + str(year)+'.nc').variables['cover_fract'][:] \n",
    "        veg_ratio_max[veg_ratio_max<5e-5] = 0\n",
    "        cover_fract[cover_fract<5e-5] = 0\n",
    "        glac = copy.deepcopy(cover_type[0])\n",
    "        glac[cover_type[0]!=1] = 0\n",
    "        bare = 1 - veg_ratio_max - glac\n",
    "        for ipft in range(11):\n",
    "            annual_mean = np.ma.average(veg_ratio_max * cover_fract[:,ipft,:,:],axis=0)\n",
    "            global_sum = np.ma.sum(gridarea_T63 * annual_mean) * 0.0001 /1000000. # m2 to million ha\n",
    "            Var_timeseries[iexp][ipft].append(global_sum)\n",
    "    if year%5==0:\n",
    "        print(f'{year}')\n",
    "###############\n",
    "# cover_fract_nat = nc.Dataset('/scratch/usr/shkifmsw/foci_input2/ECHAM6_GENERAL/JSBACH/input/T63/jsbach_T63GR15_11tiles_5layers_natural-veg.nc').variables['cover_fract'][:]\n",
    "# veg_ratio_max_nat = nc.Dataset('/scratch/usr/shkifmsw/foci_input2/ECHAM6_GENERAL/JSBACH/input/T63/jsbach_T63GR15_11tiles_5layers_natural-veg.nc').variables['veg_ratio_max'][:]\n",
    "# cover_type_nat = nc.Dataset('/scratch/usr/shkifmsw/foci_input2/ECHAM6_GENERAL/JSBACH/input/T63/jsbach_T63GR15_11tiles_5layers_natural-veg.nc').variables['cover_type'][:]\n",
    "# #(ntiles,lat,lon) and (lat,lon)\n",
    "# veg_ratio_max_nat[veg_ratio_max_nat<5e-5] = 0\n",
    "# cover_fract_nat[cover_fract_nat<5e-5] = 0\n",
    "# glac_nat = copy.deepcopy(cover_type_nat[0])\n",
    "# glac_nat[cover_type_nat[0]!=1] = 0\n",
    "# natural_veg_area = []\n",
    "# for ipft in range(11):\n",
    "#     global_sum = np.ma.sum(gridarea_T63 * veg_ratio_max_nat * cover_fract_nat[ipft,:,:]) * 0.0001 /1000000. # m2 to million ha\n",
    "#     natural_veg_area.append(global_sum)\n",
    "# tree = natural_veg_area[0] + natural_veg_area[1] + natural_veg_area[2] + natural_veg_area[3]\n",
    "# natural_veg_area.append(tree)\n",
    "# shrub = natural_veg_area[4] + natural_veg_area[5]\n",
    "# natural_veg_area.append(shrub)\n",
    "# grass = natural_veg_area[6] + natural_veg_area[7]\n",
    "# natural_veg_area.append(grass)\n",
    "# pasture = natural_veg_area[8] + natural_veg_area[9]\n",
    "# natural_veg_area.append(pasture)\n",
    "##############\n",
    "# add tree, shrub, grass, pasture\n",
    "for iexp in range(len(dirlist)):\n",
    "    tree = np.array(Var_timeseries[iexp][0]) + np.array(Var_timeseries[iexp][1]) + np.array(Var_timeseries[iexp][2]) + np.array(Var_timeseries[iexp][3])\n",
    "    Var_timeseries[iexp].append(tree)\n",
    "    shrub = np.array(Var_timeseries[iexp][4]) + np.array(Var_timeseries[iexp][5])\n",
    "    Var_timeseries[iexp].append(shrub)\n",
    "    grass = np.array(Var_timeseries[iexp][6]) + np.array(Var_timeseries[iexp][7])\n",
    "    Var_timeseries[iexp].append(grass)\n",
    "    pasture = np.array(Var_timeseries[iexp][8]) + np.array(Var_timeseries[iexp][9])\n",
    "    Var_timeseries[iexp].append(pasture)\n",
    "Var_timeseries = np.array(Var_timeseries) \n",
    "print(Var_timeseries.shape) # (nexp, npft+4, nyear)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAD4CAYAAAAXUaZHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAgAElEQVR4nO3deXhV1b3G8e8vM2EOEIYkEBCQSYEQI4NDK9o6oHhVqgiKiqJeW1trr9Xe1vba9rGDY50qiopIVUSs1DpRAbVWhoRRCEKYkhCGQEgCmU/Oun/k2KJGCJCwz/B+nocnZ++9Dvlls3lZrLP3WuacQ0REwkuU1wWIiEjzU7iLiIQhhbuISBhSuIuIhCGFu4hIGIrxugCAzp07u/T0dK/LEBEJKTk5OXudc10aOxYU4Z6enk52drbXZYiIhBQz2/5NxzQsIyIShhTuIiJhSOEuIhKGFO4iImFI4S4iEoYU7iIiYUjhLiIShoLiPncRkXDn9zsO1PjYd7CGotJqisqqKCqt4pwByZya2qHZv5/CXUSkGVXV1rOmsJQV+aXkbN9P7s5yyqrqOFjja7R9pzbxCncRkWBS73eUVNSyac8Blmzex6db9rGqoJS6+oZFkPp0bk1mekeSWsfRNiGWdgkxJLWOo0eHVqR0aEXXdgnExbTM6LjCXUSkCarr6lmyZR8fbixmyZYS9pRXU1JZyxeL2UUZnJLSnhvO6E1WehLDezaEulcU7iIi32DfwRoWrN/Nu+t28enmfdT4/MTHRJHVO4mMnh3o1Caezm3iSOuYyIj0jrRLiPW65H9TuIuIBFTX1bN2RxnLt5Xw8ca9LN26D7+DnkmJTDq9F986uQtZvZNIiI32utQjUriLSEQrr67jrdU7+euqHazKL6W23g9A/65tuO3bfTl/SDcGdW+HmXlc6dFRuItIRMreVsJflubz9mc7qa7z0y+5DdePSSczPYkRvbwdL28OCncRiRh+v+P99buZ/tFmVuSX0jYhhsszUpmQmcbQ1PYh1zs/HIW7iIQ9X72fN1bu4KnFm9myt4K0pFbcN34wE0ak0Sou+MfPj4XCXUTC1heh/viiPLbvq2Rwj3Y8fvVwzh/cjZjo8J59ReEuImGnosbHa9kFzPhkKwUlVQxJacez12YydmByWA29HI7CXUTCxp7yap7/1zZmL9lOebWPEb06cu+4wZwbQaH+BYW7iIS8HaVVPP3hZl5ZXoCv3s93B3fjxjP7MKJXR69L84zCXURC1q6yah79YCNzcwoBuDwjlVvOPon0zq09rsx7CncRCTlVtfVM/2gLf/5wM/V+x8Ssntx89kmkdGjldWlBQ+EuIiHDOcff1uzk/rdz2VlWzUWndOfuCwaQlpTodWlBR+EuIiGhqLSKn//1MxZu2MOQlHY8etVwsnoneV1W0FK4i0hQ8/sdLy/P5/63N1Dvd/xi3CCuG51OdFRk3f1ytBTuIhK0dpdX85PXVvPxpr2M6duJ+//rVHp20hBMUyjcRSQovb9uFz99fQ1VdfX85tIhTDq9Z8Tdq348FO4iElRqfPXc97f1zF6az+AeDWPrfZPbeF1WyFG4i0jQ2F9Ry82zcli2rYRpZ/Xhzu/0Jz4mPCf2amkKdxEJCpuLDzL1heUUlVXzp4nDuWRoD69LCmkKdxHx3L/y9nLLSznERkfx8k0jI3ragObSpDkvzewOM1tnZp+Z2ctmlmBmvc1sqZltMrNXzSwu0DY+sJ0XOJ7ekj+AiIQu5xzPfryFa55bRtd2Cfz1tjEK9mZyxHA3sxTgdiDTOTcEiAauAn4PPOyc6wfsB6YG3jIV2O+c6ws8HGgnIvIllbU+bn9lFb/5ey7nDezKG7eN0ZOmzaips9XHAK3MLAZIBHYC5wBzA8dnApcGXo8PbBM4PtZ0/5KIBDjn+HTzPi578l/8fU0Rd51/Mk9NzqBNvEaJm9MRz6ZzboeZPQDkA1XA+0AOUOqc8wWaFQIpgdcpQEHgvT4zKwM6AXsP/X3NbBowDaBnz57H/5OISFDz1ft557NdTP9oC2t3lNG5TTwvXJ/FWf27eF1aWDpiuJtZRxp6472BUuA14IJGmrov3nKYY//Z4dx0YDpAZmbm146LSHjYX1HLq9kFzPp0OztKq+jTuTX3X3YK/zU8hYRY3ebYUpry/6Bzga3OuWIAM5sHjAY6mFlMoPeeChQF2hcCaUBhYBinPVDS7JWLSFDL31fJE4vy+OuqHdT4/Izsk8S9Fw/ivIFdidK8MC2uKeGeD4w0s0QahmXGAtnAIuAK4BVgCvBmoP38wPangeMLnXPqmYtEkAXrd/PjOauoq/dzWUYqU0b3YkC3dl6XFVGaMua+1MzmAisAH7CShuGUvwOvmNlvAvtmBN4yA5hlZnk09NivaonCRST41PsdDy/YyOOL8hiS0o6nJo3QHTAesWDoVGdmZrrs7GyvyxCR41BWWcf3X17Bx5v2cmVmGv83frDG1FuYmeU45zIbO6Z7j0TkuBWVVjHluWVs21fB7y47hauydAec1xTuInJccneWc93zy6isqWfmDVmMPqmz1yUJCncROQ4fbSzmttkrSIyP5rVbR+lD0yCicBeRo7a5+CB/eHcD763bTb/kNrxwQxYpHVp5XZYcQuEuIk3inCN35wH+smw7Ly8roFVsNHee15+pZ/YmMU5REmz0JyIi36iqtp5/5O5m0ed7+HjTXooP1BATZUw+vSc/GNuPzm3ivS5RvoHCXUS+xO93LN9WwusrCnl77S4O1vjomBjLGf26cFa/zpzdvwvJ7RK8LlOOQOEuIkDDxF7zVxfx5OLN5O05SOu4aC48pTuXZaSS1TuJaE0ZEFIU7iIRrqyqjrfWFPHnDzdTUFLFyV3b8uCEoVxwSjeNpYcw/cmJRBjnHNv3VfLBhj18kLubZVtL8PkdQ9M6cO+4wYwdkKyJvcKAwl0kAhys8bH48z18kreXjzftpXB/FQD9kttw45l9OG9QVzJ6dkDr6oQPhbtIGFtXVMbspfm8uXIHFbX1tI2PYeRJnZh2Vh/O7t+FXp1ae12itBCFu0iY+WIM/bXsQlYVlBIfE8UlQ3swITONjJ4diIlu6uqaEsoU7iJhoLLWx7/y9vHm6iLeW7eLWp+ffsltuHfcIC7PSKV9YqzXJcoJpnAXCVGbiw+yMHcPizfuYfnW/dTW+2nfKparTkvjihGpnJLSXmPoEUzhLhJCVhWU8s7anSzI3c2W4goA+ndtw5TRvfjWyclkpnckPkZzqIvCXSQkZG8r4aEFG/nX5n3ERBmjTurElFHpjB2YTGpHrXQkX6dwFwli64rK+N07G/h40146t4nj5xcN5HunpdEuQWPocngKd5Eg5Jxj1pLt/OatXNokxPCzCwcweWQvPTEqTaYrRSTIlFfXcffra3h77S6+fXIXHvreMDq2jvO6LAkxCneRILKqoJQfvrKSwv1V3H3BAKad2UdTAcgxUbiLBIG6ej9PLMrjsYV5dG0bzyvTRnJaepLXZUkIU7iLeGxL8UHumLOa1QWl/NfwFH51yWDat9IHpnJ8FO4iHqmo8fHk4jye+XgrrWKjefzq4Yw7tYfXZUmYULiLnGDOOd5cVcT97+Syu7yGS4f14J4LB9JVqxtJM1K4i5xA1XX1/OiVVby7bhenpLTnyUkZjOilsXVpfgp3kROktLKWG2dmk5O/n/+9cCBTz+itO2GkxSjcRU6AHaVVTHluGfn7KnlsosbWpeUp3EVaWFFpFZc/+S8qanzMvCGLUSd18rokiQAKd5EWVOOr59bZKzhY42POzaMY1KOd1yVJhFC4i7Sg3/49l9UFpfx5coaCXU4orbcl0kLeXLWDFz/dzk1n9ub8Id29LkcijMJdpAVs3H2Au19fS1Z6EnedP8DrciQCKdxFmllZVR23zMqhdXwMj189nFgtSC0eaNJVZ2YdzGyumW0ws1wzG2VmSWa2wMw2Bb52DLQ1M/uTmeWZ2Rozy2jZH0EkePj9jjteXUV+SSVPTsogWU+dikea2qV4FHjXOTcAGArkAncDHzjn+gEfBLYBLgD6BX5NA55q1opFgtjD/9jIwg17+OXFg8jqrSdPxTtHDHczawecBcwAcM7VOudKgfHAzECzmcClgdfjgRddgyVABzPTp0kS9t5Zu5PHFuZxZWYak0f28rociXBN6bn3AYqB581spZk9a2atga7OuZ0Aga/JgfYpQMEh7y8M7PsSM5tmZtlmll1cXHxcP4SI19YUlnLna6sZltaB+y4djJmmFRBvNSXcY4AM4Cnn3HCggv8MwTSmsavafW2Hc9Odc5nOucwuXbo0qViRYPTuZzu58ukldEyM48+TRxAfE+11SSJNCvdCoNA5tzSwPZeGsN/9xXBL4OueQ9qnHfL+VKCoecoVCR7OOZ5YlMctL63g5G5teeO20XRrrw9QJTgcMdydc7uAAjM7ObBrLLAemA9MCeybArwZeD0fuDZw18xIoOyL4RuRcFFR4+POOav543ufc8nQHrwybSTJbRXsEjyaOv3AD4DZZhYHbAGup+EfhjlmNhXIByYE2r4NXAjkAZWBtiJhY2X+fu54dRXbSyq549z+3D62r8bYJeg0Kdydc6uAzEYOjW2krQNuO866RIKOr97PYwvzeHxRHt3aJfDyTSMZ2UczPEpw0sRhIk1QfKCG/56dw/Jt+7lseAq/Gj+YdglaxFqCl8Jd5AhWF5Ry86wcSqtqeeTKYVw6/Gt39ooEHYW7yGG8nlPIPW+spUubeF6/dTSDe7T3uiSRJlG4izTCOceD72/k8UV5jOrTiScmZZDUOs7rskSaTOEu8hV19X7umbeWuTmFTMxK49fjhxCjmR0lxCjcRQ5RUePjv2ev4MONxfzo3H78cGw/3eYoIUnhLhKwu7yaG2dms66ojPsvO4WJWT29LknkmCncRYC1hWXc+OJyDlT7mH5NJucO6up1SSLHReEuEe/ttTv58ZxVdGodz9xbRmshawkLCneJWLU+Pw//YyNPLd5MRs8OPH1NJl3axntdlkizULhLRPp81wHueHUV63eWc9VpafzqksEkxGqqXgkfCneJKHX1fp7/ZCsPvLeRtgkxPHNtJudpfF3CkMJdIkJdvZ83VuzgTws3Ubi/ivMGdeX+y06hcxsNw0h4UrhLWHPOMX91EQ8t2Mj2fZWcktKe+8YP5tsnJ+v+dQlrCncJW2sLy/jV39aRs30/A7u345lrMzl3oEJdIoPCXcJOWVUdv3snl1eWF5CUGMcfLj+VK0akEhWlUJfIoXCXsLKzrIrrnltOXvFBbhjTm9vH9qN9K827LpFH4S5hY+PuA0x5bhkHqn3MuiGL0X07e12SiGcU7hIWlm8rYeoLy0mIjWbOzaP0lKlEPIW7hLy31hTx4zmrSe3YipnXZ5GWlOh1SSKeU7hLyHLO8fRHW/jdOxvI7NWRZ67NpKMW1BABFO4Sonz1fn45fx2zl+Yz7tTuPDBhqKYPEDmEwl1CTnVdPbfNXsEHG/Zw67dO4n++c7JucxT5CoW7hJQD1XXcODObZdtK+PX4wVwzKt3rkkSCksJdQkZJRS3XPb+M9UXlPHLlMMYPS/G6JJGgpXCXkLCnvJpJzy4lv6SS6deO4JwBmslR5HAU7hL0ig/UcPWzSykqrWLmDVmM7NPJ65JEgp7CXYJaSUUtk59dyo79Vbxw/WmcrmAXaZIorwsQ+SallbVMenYp2/ZVMGNKpoJd5Cio5y5BqayyjskzlrK5+CDPXpupeWJEjpJ67hJ0yirrmDRjCRt3HeTpySM4q38Xr0sSCTkKdwkqXwr2a0bw7QHJXpckEpIU7hI0FOwizUfhLkGhvLqOa55bqmAXaSZNDnczizazlWb2VmC7t5ktNbNNZvaqmcUF9scHtvMCx9NbpnQJFweq65jy3DJyd5bz1OQMBbtIMzianvsPgdxDtn8PPOyc6wfsB6YG9k8F9jvn+gIPB9qJNKqixscNLyxnbWEZj1+dwdiBevJUpDk0KdzNLBW4CHg2sG3AOcDcQJOZwKWB1+MD2wSOjzUtNy+NqKjxMXXmcnK27+fRq4bz3cHdvC5JJGw0tef+CHAX4A9sdwJKnXO+wHYh8MUsTilAAUDgeFmg/ZeY2TQzyzaz7OLi4mMsX0LVF/exL9tawsNXDuOiU7t7XZJIWDliuJvZOGCPcy7n0N2NNHVNOPafHc5Nd85lOucyu3TRfcyRZM+Baq6c/inrdpTz5KQRmt1RpAU05QnVMcAlZnYhkAC0o6En38HMYgK981SgKNC+EEgDCs0sBmgPlDR75RKSCvdXMvnZpewur+G5607jjH568lSkJRyx5+6cu8c5l+qcSweuAhY65yYBi4ArAs2mAG8GXs8PbBM4vtA597Weu0QW5xzzVxdx8WP/pKSilpduPF3BLtKCjmdumZ8Cr5jZb4CVwIzA/hnALDPLo6HHftXxlSihbu/BGn7x189457NdDE3rwIMThtI3uY3XZYmEtaMKd+fcYmBx4PUWIKuRNtXAhGaoTcLAwg27+clrazhY7eOn5w/gpjN7ExOtZ+dEWppmhZQW4av38+CCjTy1eDODurfjkWnD6N+1rddliUQMhbs0uz3l1fzg5ZUs3VrCxKye/PLiQSTERntdlkhEUbhLs1qRv5+bZ+VwoLqOBycM5fIRqV6XJBKRFO7SbF7PKeSeeWvp1j6BWVOzGNCtndcliUQshbsct3q/4w/vbuDpj7Ywqk8nnpyUQcfWcV6XJRLRFO5yXD7dvI/fv7uBVQWlXDOyF/dePIhY3Q0j4jmFuxyTNYWl/PG9z/l40166t0/goe8N5bIMja+LBAuFuxyVz3cd4OEFG3l33S46Jsby84sGMnlkL90NIxJkFO7SJNv2VvDwPzYyf3URbeJi+NG5/Zh6Rm/aJsR6XZqINELhLodV73c898+t/PH9z4k245azT2LamX30galIkFO4yzfK31fJT15bzbJtJZw3qCu/vXQIye0SvC5LRJpA4S6N+tvqIn76+hqizXhgwlAuz0hBC2qJhA6Fu3zNc//cyn1vrSezV0cenTiclA6tvC5JRI6Swl3+zTnHH977nKcWb+Y7g7ryp4nDdReMSIhSuAsAdfV+fjZvLa/lFDIxqye/uXQI0VEahhEJVQp3oby6jttmr+DjTXu5fWw/7ji3n8bXRUKcwj3CFe6v5IYXlrOluII/XH4q3zstzeuSRKQZKNwj2KqCUm6cmU2Nr56ZN2Qxpq/WNBUJFwr3COSc4/lPtnH/O7l0bZfAyzedTj+tkiQSVhTuEWZ/RS3/M3cN/8jdzbkDk/njFUP1tKlIGFK4R5A1haXcPCuHvQdruHfcIK4fk64PTkXClMI9QnyQu5vv/2UlndrEMe/WMZyS2t7rkkSkBSncI8Dspdv5xV8/Y3CP9sy4LpPktpofRiTcKdzDmN/veOD9z3ly8Wa+fXIXHr86g9bx+iMXiQT6mx6mKmt9/PjV1by7bhcTs3ry6/GDidHydyIRQ+EehnaWVXHTi9msKyrn5xcNZOoZvfXBqUiEUbiHmRX5+7llVg6VtfXMmJLJOQO6el2SiHhA4R4mfPV+nly8mUc/2ESPDgnMmno6J3fTg0kikUrhHgYKSiq549VVZG/fz/hhPbhv/BDat9LapiKRTOEewpxzzMku4Ndv5WLAo1cNY/ywFK/LEpEgoHAPUTvLqrj79bV8uLGYkX2SeGDCUFI7JnpdlogECYV7CHpjZSH3vrkOX73jvvGDmXx6L6K0sIaIHELhHkJqfX7ue2sdLy3JJys9iT9OOJVenVp7XZaIBKEjPtViZmlmtsjMcs1snZn9MLA/ycwWmNmmwNeOgf1mZn8yszwzW2NmGS39Q0SCPeXVTHxmCS8tyefms/vwl5tOV7CLyDdqyiOLPuBO59xAYCRwm5kNAu4GPnDO9QM+CGwDXAD0C/yaBjzV7FVHmJX5+xn32D9ZX1TO41cP554LBuppUxE5rCMmhHNup3NuReD1ASAXSAHGAzMDzWYClwZejwdedA2WAB3MrHuzVx4hFm7YzcRnlhAfG8Ubt41m3Kk9vC5JRELAUXX/zCwdGA4sBbo653ZCwz8AQHKgWQpQcMjbCgP7vvp7TTOzbDPLLi4uPvrKI8Cc7AJuejGHvsltmHfrGAZ0a+d1SSISIpoc7mbWBngd+JFzrvxwTRvZ5762w7npzrlM51xmly5dmlpGRHDO8cSiPO6au4bRJ3XilWmj6NI23uuyRCSENOluGTOLpSHYZzvn5gV27zaz7s65nYFhlz2B/YVA2iFvTwWKmqvgcFddV8/P3ljLvBU7uHRYD/5wxVDiYjS+LiJHpyl3yxgwA8h1zj10yKH5wJTA6ynAm4fsvzZw18xIoOyL4Rs5vN3l1Vw1fQnzVuzgjnP789D3hinYReSYNKXnPga4BlhrZqsC+34G/A6YY2ZTgXxgQuDY28CFQB5QCVzfrBWHqdUFpUyblc2Bah9/npzB+UP0GbSIHLsjhrtz7p80Po4OMLaR9g647TjriigL1u/mBy+voFPreF6/dTQDu+uDUxE5PnpC1WMvLdnOvW9+xpCU9syYcpo+OBWRZqFw94hzjj++17C+6TkDknn86uEkxumPQ0Sah9LEA845fv1WLs99slXrm4pIi1C4e+DxhXk898lWrh+Tzr3jBml9UxFpduounmCzlmznwQUbuWx4Cr+4SMEuIi1D4X4CzV9dxL1vfsbYAcn8/opTNQe7iLQYhfsJsnxbCXfOWcVpvZJ4YlIGsRpjF5EWpIQ5AQpKKrllVg6pHRN55tpMEmKjvS5JRMKcwr2FVdT4uOnFbGrr/TxzbSbtE2O9LklEIoDCvQX5/Y47Xl3Fxt0HeOLqDPomt/G6JBGJEAr3FvTIB5t4f/1ufjFuEGf117TGInLiKNxbyEcbi3ls4SauGJHKdaPTvS5HRCKMwr0F7Cqr5kevrqJ/clt+PX6I7mUXkRNO4d7MfPV+bn95JdV19TwxKYNWcbozRkROPE0/0MweWrCRZdtKeOTKYfoAVUQ8o557M1qyZR9PLt7MxKw0Lh3+tTXBRUROGIV7M6nxNax92jMpkXvHDfa6HBGJcBqWaSZ/XryFLcUVzLwhS+PsIuI59dybwZbigzyxKI+Lh/bgbN3PLiJBQOF+nJxz/O8bnxEfG8Uvxg30uhwREUDhftzmrdjBp1v2cfcFA0hum+B1OSIigML9uBys8XH/O7lk9OzAxNN6el2OiMi/KdyPw9MfbmbvwVp+efFgLbwhIkFF4X6MdpdX88zHW7h4aA+GpnXwuhwRkS9RuB+jh97fSL3fcdd3T/a6FBGRr1G4H4PPdx3gtZwCrh2VTlpSotfliIh8jcL9GPzunVzaxMfwg3P6el2KiEijFO5H6ZO8vSz6vJjvn9OXDolxXpcjItIohftRqKjxcfe8NfTqlMi1o9K9LkdE5BtpbpmjcP87uRTur2LOzaNIiNX8MSISvNRzb6KPNxXz0pJ8po7pzWnpSV6XIyJyWAr3JiivruOuuWs4qUtrfqJbH0UkBGhY5gicc9z3t/XsLq9m3n+P0XCMiIQEhfth7DlQzc/mfcY/cnfz/W/3ZZieRBWRENEiwzJmdr6ZfW5meWZ2d0t8j5b21poivvvwR3y0qZj/vXAgd5zX3+uSRESarNl77mYWDTwBnAcUAsvNbL5zbn1zf6+mqqv3U1VXT2VNPQdr6jhYU8/Bah/VdfXU+PzU+OqpqPFRuL+K/JJKtu6tYMOuAwxNbc+D3xtK3+S2XpUuInJMWmJYJgvIc85tATCzV4DxQLOH+5zlBTz90Wbq/Y66eke93+HzO/yu4XW931FdV4/P75r0+8VFR5Ga1Iq0jolcnpHK9WPSiYnWZ84iEnpaItxTgIJDtguB07/ayMymAdMAevY8trnQOyTGMqBbO2KijegoIybKiI6KIjoKYqKiiDKjVVwUrWKjSYiNJjEuhjYJMbSNj6F1fAytYqOJj40iLjqKxLhoOreJ19S9IhIWWiLcG0vHr3WdnXPTgekAmZmZTetaf8V3BnfjO4O7HctbRUTCWkuMORQCaYdspwJFLfB9RETkG7REuC8H+plZbzOLA64C5rfA9xERkW/Q7MMyzjmfmX0feA+IBp5zzq1r7u8jIiLfrEUeYnLOvQ283RK/t4iIHJnu8xMRCUMKdxGRMKRwFxEJQwp3EZEwZM4d0/NDzVuEWTGw/Rjf3hnY24zlhCOdo8PT+TkynaPD8+r89HLOdWnsQFCE+/Ews2znXKbXdQQznaPD0/k5Mp2jwwvG86NhGRGRMKRwFxEJQ+EQ7tO9LiAE6Bwdns7PkekcHV7QnZ+QH3MXEZGvC4eeu4iIfIXCXUQkDIV0uIfDQtzNyczSzGyRmeWa2Toz+2Fgf5KZLTCzTYGvHb2u1UtmFm1mK83srcB2bzNbGjg/rwamqo5YZtbBzOaa2YbAtTRK19CXmdkdgb9jn5nZy2aWEGzXUciG+yELcV8ADAImmtkgb6vynA+40zk3EBgJ3BY4J3cDHzjn+gEfBLYj2Q+B3EO2fw88HDg/+4GpnlQVPB4F3nXODQCG0nCudA0FmFkKcDuQ6ZwbQsPU5lcRZNdRyIY7hyzE7ZyrBb5YiDtiOed2OudWBF4foOEvZQoN52VmoNlM4FJvKvSemaUCFwHPBrYNOAeYG2gS6eenHXAWMAPAOVfrnCtF19BXxQCtzCwGSAR2EmTXUSiHe2MLcad4VEvQMbN0YDiwFOjqnNsJDf8AAMneVea5R4C7AH9guxNQ6pzzBbYj/TrqAxQDzweGrp41s9boGvo359wO4AEgn4ZQLwNyCLLrKJTDvUkLcUciM2sDvA78yDlX7nU9wcLMxgF7nHM5h+5upGkkX0cxQAbwlHNuOFBBBA/BNCbwecN4oDfQA2hNw/DwV3l6HYVyuGsh7kaYWSwNwT7bOTcvsHu3mXUPHO8O7PGqPo+NAS4xs200DOOdQ0NPvkPgv9eg66gQKHTOLQ1sz6Uh7HUN/ce5wFbnXLFzrg6YB4wmyK6jUA53LcT9FYHx4xlArnPuoUMOzQemBF5PAd480bUFA+fcPc65VOdcOg3Xy0Ln3NWGXFQAAADLSURBVCRgEXBFoFnEnh8A59wuoMDMTg7sGgusR9fQofKBkWaWGPg798U5CqrrKKSfUDWzC2noeX2xEPdvPS7JU2Z2BvAxsJb/jCn/jIZx9zlATxouzAnOuRJPigwSZvYt4CfOuXFm1oeGnnwSsBKY7Jyr8bI+L5nZMBo+cI4DtgDX09AR1DUUYGb/B1xJwx1qK4EbaRhjD5rrKKTDXUREGhfKwzIiIvINFO4iImFI4S4iEoYU7iIiYUjhLiIShhTuIiJhSOEuIhKG/h89u6wIJxEWkAAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = plt.figure()\n",
    "ax = fig.add_subplot(111)\n",
    "for ii in [1]:\n",
    "    ax.plot(Var_timeseries[ii,11] - Var_timeseries[ii-1,11])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "save_to_csv = True\n",
    "if save_to_csv:\n",
    "    for iexp in range(len(Var_timeseries)):\n",
    "        # combine variables\n",
    "        #df = pd.read_csv('csv/' + expname[iexp] + '.csv',index_col='year')\n",
    "        #df[var_name] = Var_timeseries[iexp]\n",
    "        #df.to_csv(expname[iexp]+'.csv')\n",
    "        #print(df)\n",
    "        # separate file for the current variables\n",
    "        df = pd.DataFrame(data=Var_timeseries[iexp,11], index=range(startyear,endyear), columns=['tree'])\n",
    "        df.index.name = 'year'\n",
    "        df.to_csv(expname[iexp] + '_' + 'tree' + '.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>tree</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>2015</td>\n",
       "      <td>4158.170519</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2016</td>\n",
       "      <td>4161.918605</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2017</td>\n",
       "      <td>4160.361283</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2018</td>\n",
       "      <td>4156.313791</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2019</td>\n",
       "      <td>4157.533132</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2095</td>\n",
       "      <td>4384.844056</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2096</td>\n",
       "      <td>4395.061709</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2097</td>\n",
       "      <td>4399.836329</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2098</td>\n",
       "      <td>4400.973737</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2099</td>\n",
       "      <td>4407.263154</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>85 rows × 1 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "             tree\n",
       "2015  4158.170519\n",
       "2016  4161.918605\n",
       "2017  4160.361283\n",
       "2018  4156.313791\n",
       "2019  4157.533132\n",
       "...           ...\n",
       "2095  4384.844056\n",
       "2096  4395.061709\n",
       "2097  4399.836329\n",
       "2098  4400.973737\n",
       "2099  4407.263154\n",
       "\n",
       "[85 rows x 1 columns]"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.15"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
