Reproducible Hydrological Modeling with CyberGIS-Jupyter For Water (CJW) and HydroShare

$Fangzheng$ $Lyu^{1}$, $Zhiyu$ $Li^{1}$, $Anand$ $Padmanabhan^{1}$, $Shaowen$ $Wang^{1}$, $Youngdon$ $Choi^{2}$, $Jonathan$ $Goodall^{2}$, $Andrew$ $Bennett^{3}$, $Bart$ $Nijssen^{3}$, $David$ $Tarboton^{4}$

$^{1}$ $University$ $of$ $Illinois$ $at$ $Urbana-Champaign$; $^{2}$ $University$ $of$ $Virginia$; $^{3}$ $University$ $of$ $Washington$; $^{4}$ $Utah$ $State$ $University$

CyberGIS-Jupyter for Water (CJW), leveraging the cyberGIS software ecosystem, is integrated with HydroShare. CJW provides a collaborative platform for enabling computationally intensive and reproducible hydrologic research by delivering advanced cyberinfrastructure and cyberGIS capabilities based on high-performance computing (HPC) resources such as Virtual ROGER and XSEDE Comet. The Structure For Unifying Multiple Modeling Alternatives (SUMMA), which is a hydrological modeling framework, allows for formal evaluation of multiple working hypotheses on model representations of physical processes. This CyberGIS-Jupyter notebook illustrates specific support for a SUMMA model on top of the cutting-edge hydrologic modeling capabilities on CJW. By taking advantage of CJW, users can easily tune different parameters for a SUMMA model and submit computationally intensive High-Throughput Computing (HTC) jobs for executing the model on HPC resources via Jupyter notebooks without having to possess in-depth technical knowledge about cyberGIS or HydroShare. Computational experiments demonstrate that the integration of cyberGIS capabilities and HydroShare achieves a high-performance and easy-to-use environment for reproducible SUMMA-based hydrological modeling.

The Structure For Unifying Multiple Modeling Alternatives (SUMMA)

SUMMA or the Structure for Unifying Multiple Modeling Alternatives is a hydrologic modeling approach that is built on a common set of conservation equations and a common numerical solver, which together constitute the structural core of the model. Different modeling approaches can then be implemented within the structural core, enabling a controlled and systematic analysis of alternative modeling options, and providing insight for future model development.

  1. The formulation of the conservation equations is cleanly separated from their numerical solution;
  2. Different model representations of physical processes (in particular, different flux parameterizations) can be used within a common set of conservation equations; and
  3. The physical processes can be organized in different spatial configurations, including model elements of different shape and connectivity (e.g., nested multi-scale grids and HRUs)

Architecture of Job Submission System

The architecture of job submission system is illustrated as follows. The architecture of the integrated system enables interactions among three key entities: users, CyberGISX frontend, and HPC resources provided through cyberGIS platform (e.g. keeling). In addition, there are six supporting components with which the key entities interact with: 1) CyberGISX website that acts as a portal for users to login out server; 2) authentication system for CyberGISX platform; 3) HydroShare for hydrological data retrieval; 4) Shared folder to store existing resources to avoid excessive data transfer; 5) JupyterHub with appropriate cyberGIS and geospatial python libraries installed, and 6) Docker hub for SUMMA singularity image. HydroShare is a collaborative research platform for advancing hydrological data and model sharing.

Retrieve a SUMMA model instance resource from HydroShare

This is the resource id of a HydroShare composite resource that contains a SUMMA model instance. More information on this resource

In [1]:
# Indicate the resource ID
resource_id = '1f3f310af8364d2aa3e6a9459152a21c'

We use HydroShare REST API Python client (hs_restclient) to retrieve the above resource onto the notebook server

In [2]:
# Import json, os, hs_restclient, subprocess library
import json
import os
from hs_restclient import HydroShare, HydroShareAuthBasic
import subprocess
# Connect with HydroShare
auth = HydroShareAuthBasic("cybergis", "demo")
hs = HydroShare(auth=auth)
# Dictionary path
base_dir = os.path.abspath('/home/jovyan/work')
download_dir = "/home/jovyan/shared_data/data/tmp_job_submit"
# Get the metadata of the resource
metadata = hs.getScienceMetadata(resource_id)
timestamp = resource_id+";"+metadata['dates'][1]['start_date']
# Test if the file is located in the shared folder
out = subprocess.Popen(['ls',  '/home/jovyan/shared_data/data/tmp_job_submit'], 
           stdout=subprocess.PIPE, 
           stderr=subprocess.STDOUT)
stdout,stderr = out.communicate()
out2 = subprocess.Popen(['grep', timestamp, '/home/jovyan/shared_data/data/tmp_job_submit/managementfile'], 
           stdout=subprocess.PIPE, 
           stderr=subprocess.STDOUT)
stdout2,stderr2 = out2.communicate()
# when the resource is not available in the shared folder
if (resource_id.encode("utf-8") not in stdout or stdout2==b""):
    print("Downloading Data")
    #!mkdir -p {download_dir}
    hs.getResource(resource_id, destination=download_dir, unzip=True)
    with open('/home/jovyan/shared_data/data/tmp_job_submit/managementfile', 'a') as file:
        file.write(timestamp)
print("Done")
Done

Unzip model instance package

Create a temporary local folder and unzip the SUMMA instance

In [3]:
# Import os, tempfile library
import os
import tempfile
# Unzip model file
model_folder_name = "SummaModel_ReynoldsAspenStand_StomatalResistance_sopron"
content_folder = os.path.join(download_dir ,"{}/{}/data/contents".format(resource_id, resource_id))
file_manger_rel_path = "settings/summa_fileManager_riparianAspenSimpleResistance.txt"
workspace_dir = os.path.join(base_dir, 'workspace')
!mkdir -p {workspace_dir}
unzip_dir = tempfile.mkdtemp(dir=workspace_dir)
!cd {content_folder} && unzip -o {model_folder_name}.zip -d {unzip_dir}
print("Unzipping Done")
Archive:  SummaModel_ReynoldsAspenStand_StomatalResistance_sopron.zip
   creating: /home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/
   creating: /home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/data/
   creating: /home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/data/forcingData/
  inflating: /home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/data/forcingData/forcing_above_aspen.nc  
  inflating: /home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/data/reynolds_geojson_latlon.geojson  
   creating: /home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/data/validationData/
  inflating: /home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/data/validationData/ReynoldsCreek_eddyFlux.nc  
  inflating: /home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/installTestCases_local.sh  
   creating: /home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/output/
   creating: /home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/
  inflating: /home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/GENPARM.TBL  
   creating: /home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/meta/
  inflating: /home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/meta/dos2unix.sh  
  inflating: /home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/meta/Model_Output.txt  
  inflating: /home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/meta/summa_zBasinModelVarMeta.txt  
  inflating: /home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/meta/summa_zBasinParamMeta.txt  
  inflating: /home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/meta/summa_zCategoryMeta.txt  
  inflating: /home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/meta/summa_zForceMeta.txt  
  inflating: /home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/meta/summa_zLocalAttributeMeta.txt  
  inflating: /home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/meta/summa_zLocalModelIndexMeta.txt  
  inflating: /home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/meta/summa_zLocalModelVarMeta.txt  
  inflating: /home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/meta/summa_zLocalParamMeta.txt  
  inflating: /home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/meta/summa_zModelIndexMeta.txt  
  inflating: /home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/meta/summa_zParamMeta.txt  
  inflating: /home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/meta/summa_zTimeMeta.txt  
  inflating: /home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/meta/var_lookup.f90  
  inflating: /home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/MPTABLE.TBL  
  inflating: /home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/SOILPARM.TBL  
  inflating: /home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/summa_fileManager_riparianAspenSimpleResistance.txt  
  inflating: /home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/summa_zBasinParamInfo.txt  
  inflating: /home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/summa_zDecisions_riparianAspenSimpleResistance.txt  
  inflating: /home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/summa_zForcingFileList_riparianAspen.txt  
  inflating: /home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/summa_zForcingInfo_riparianAspen.txt  
  inflating: /home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/summa_zInitialCond.nc  
  inflating: /home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/summa_zLocalAttributes_riparianAspen.nc  
  inflating: /home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/summa_zLocalParamInfo.txt  
  inflating: /home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/summa_zParamTrial_riparianAspen.nc  
  inflating: /home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/VEGPARM.TBL  
Unzipping Done

Install SUMMA model on Jupyter server (configure path in summa file_manager)

By default, the file_manager file of the SUMMA instance does not contain local path. Need to use script to install it locally.

In [4]:
# Install the testcases
model_source_folder_path = os.path.join(unzip_dir, model_folder_name)
!cd {model_source_folder_path} && chmod +x ./installTestCases_local.sh
!cd {model_source_folder_path} && ./installTestCases_local.sh
TestCases installed

Use pySUMMA to build ensembles

We create an empty "summa_zParamTrial_riparianAspen.nc" file so later we can do ensemble analysis on parameters

In [5]:
# Create a empty ParamTrial.nc file (required by parameter ensemble)
import netCDF4 as nc
name = os.path.join(model_source_folder_path, 'settings/summa_zParamTrial_riparianAspen.nc')
print(name)
param_trial = nc.Dataset(name, "w", format="NETCDF3_CLASSIC")
param_trial.createDimension("hru", 1)
param_trial.close()
/home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/summa_zParamTrial_riparianAspen.nc

Build the ensemble cases: here we create a combination of different stomResist types, rootDistExp values and summerLAI values with help from PySumma. The total ensemble number is 75. We then save the 75 cases into a json file named "summa_options.json"

In [6]:
# Import library
import numpy as np
import json
from pysumma import ensemble

def safe_arange(start, stop, step):
    a = np.arange(start, stop, step)
    result =[]
    for i in a:
        par = round(i, 10)
        result = np.append(result, par)
    return result

# create ensemble
# different parameterizations
decision_options = {
    "stomResist": ["BallBerry", "Jarvis", "simpleResistance"]
}
# different parameters
param_options = {
   'rootDistExp': safe_arange(0.01, 1.00, 0.20),
   'summerLAI': safe_arange(0.01, 10.00, 2.00)
}

config = ensemble.total_product(dec_conf=decision_options, param_conf=param_options)

# save ensemble info to json file
with open(os.path.join(model_source_folder_path, 'summa_options.json'), 'w') as outfile:
    json.dump(config, outfile)

# check ensemble parameters    
print("Number of ensemble runs: {}".format(len(config)))
print(json.dumps(config, indent=4, sort_keys=True)[:800])
print("...")
Number of ensemble runs: 75
{
    "++BallBerry++rootDistExp=0.01++summerLAI=0.01++": {
        "decisions": {
            "stomResist": "BallBerry"
        },
        "parameters": {
            "rootDistExp": 0.01,
            "summerLAI": 0.01
        }
    },
    "++BallBerry++rootDistExp=0.01++summerLAI=2.01++": {
        "decisions": {
            "stomResist": "BallBerry"
        },
        "parameters": {
            "rootDistExp": 0.01,
            "summerLAI": 2.01
        }
    },
    "++BallBerry++rootDistExp=0.01++summerLAI=4.01++": {
        "decisions": {
            "stomResist": "BallBerry"
        },
        "parameters": {
            "rootDistExp": 0.01,
            "summerLAI": 4.01
        }
    },
    "++BallBerry++rootDistExp=0.01++summerLAI=6.01++": {
        "decisions": {
            "stomRe
...

Submit model to Virtual Roger (Keeling) HPC using CyberGIS-Jupyter tool

We use cybergis lib to submit the HTC SUMMA model to High-Performance Computer as a job

In [7]:
## Submit the job directly without UI
from cybergis import HPCSUMMA
dict_ = {}
dict_["model"] = "summa"
dict_["model_source_folder_path"] = model_source_folder_path
dict_["file_manger_rel_path"] = file_manger_rel_path
dict_["workspace_dir"] = workspace_dir
dict_["machine"] = "keeling"
dict_['node'] = 16
dict_['walltime'] = 1

para_json_str = json.dumps(dict_)

s = HPCSUMMA(para_json_str)
s.run()
2020-05-22 18:18:53,454 [MainThread  ] [INFO ]  SSH logged into keeling.earth.illinois.edu as user cigi-gisolve
2020-05-22 18:18:53,467 [MainThread  ] [INFO ]  Uploading /home/jovyan/work/workspace/Summa_1590171524_fb351aeb to /data/keeling/a/cigi-gisolve
2020-05-22 18:18:57,438 [MainThread  ] [INFO ]  Submitting Job summa.sbatch to queue
2020-05-22 18:18:57,805 [MainThread  ] [INFO ]  Remote Job ID assigned: 3563521
2020-05-22 18:19:01,449 [MainThread  ] [INFO ]  R
2020-05-22 18:19:04,949 [MainThread  ] [INFO ]  R
2020-05-22 18:19:08,427 [MainThread  ] [INFO ]  R
2020-05-22 18:19:11,941 [MainThread  ] [INFO ]  R
2020-05-22 18:19:15,487 [MainThread  ] [INFO ]  R
2020-05-22 18:19:19,476 [MainThread  ] [INFO ]  R
2020-05-22 18:19:23,027 [MainThread  ] [INFO ]  R
2020-05-22 18:19:27,033 [MainThread  ] [INFO ]  R
2020-05-22 18:19:30,538 [MainThread  ] [INFO ]  R
2020-05-22 18:19:34,030 [MainThread  ] [INFO ]  R
2020-05-22 18:19:37,515 [MainThread  ] [INFO ]  R
2020-05-22 18:19:41,018 [MainThread  ] [INFO ]  R
2020-05-22 18:19:44,603 [MainThread  ] [INFO ]  R
2020-05-22 18:19:48,110 [MainThread  ] [INFO ]  R
2020-05-22 18:19:51,602 [MainThread  ] [INFO ]  R
2020-05-22 18:19:55,431 [MainThread  ] [INFO ]  R
2020-05-22 18:19:58,988 [MainThread  ] [INFO ]  R
2020-05-22 18:20:02,492 [MainThread  ] [INFO ]  Job completed: Summa_1590171524_fb351aeb; 3563521
2020-05-22 18:20:02,496 [MainThread  ] [INFO ]  Downloading /data/keeling/a/cigi-gisolve/Summa_1590171524_fb351aeb/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/output to /home/jovyan/work/workspace/Summa_1590171524_fb351aeb
2020-05-22 18:20:54,241 [MainThread  ] [INFO ]  Downloading /data/keeling/a/cigi-gisolve/Summa_1590171524_fb351aeb/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/slurm-3563521.out to /home/jovyan/work/workspace/Summa_1590171524_fb351aeb
2020-05-22 18:20:54,254 [MainThread  ] [INFO ]  Done

Walltime (hour) is the maximum duration of time the job is allowed to run on the HPC before it gets killed. Nodes indicate the number of CPU cores will be allocated for this job. CyberGIS lib will run the job over the assigned CPUs in parallel. If you select 16 nodes, then each node will run about 4-5 cases out of the 75-member ensemble

Check model output -- NetCDF files

Once job finishes execution on HPC, cybergis lib will retrieve the results back to notebook server. Each ensemble member will create a separate nc file, so there are 75 netcdf files in this case.

In [8]:
# check output directory
job_dir = os.path.join(workspace_dir, "{}".format(s.job_local_id))
output_path = os.path.join(job_dir, "output")
# check SUMMA output file 
name_list = os.listdir(output_path)
full_list = [os.path.join(output_path,i) for i in name_list if i.endswith(".nc")]
sorted_list = sorted(full_list)

for f in sorted_list:
    print(f)
print("Number of NC files: {}".format(len(sorted_list)))
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++BallBerry++rootDistExp=0.01++summerLAI=0.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++BallBerry++rootDistExp=0.01++summerLAI=2.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++BallBerry++rootDistExp=0.01++summerLAI=4.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++BallBerry++rootDistExp=0.01++summerLAI=6.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++BallBerry++rootDistExp=0.01++summerLAI=8.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++BallBerry++rootDistExp=0.21++summerLAI=0.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++BallBerry++rootDistExp=0.21++summerLAI=2.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++BallBerry++rootDistExp=0.21++summerLAI=4.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++BallBerry++rootDistExp=0.21++summerLAI=6.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++BallBerry++rootDistExp=0.21++summerLAI=8.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++BallBerry++rootDistExp=0.41++summerLAI=0.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++BallBerry++rootDistExp=0.41++summerLAI=2.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++BallBerry++rootDistExp=0.41++summerLAI=4.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++BallBerry++rootDistExp=0.41++summerLAI=6.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++BallBerry++rootDistExp=0.41++summerLAI=8.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++BallBerry++rootDistExp=0.61++summerLAI=0.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++BallBerry++rootDistExp=0.61++summerLAI=2.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++BallBerry++rootDistExp=0.61++summerLAI=4.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++BallBerry++rootDistExp=0.61++summerLAI=6.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++BallBerry++rootDistExp=0.61++summerLAI=8.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++BallBerry++rootDistExp=0.81++summerLAI=0.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++BallBerry++rootDistExp=0.81++summerLAI=2.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++BallBerry++rootDistExp=0.81++summerLAI=4.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++BallBerry++rootDistExp=0.81++summerLAI=6.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++BallBerry++rootDistExp=0.81++summerLAI=8.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++Jarvis++rootDistExp=0.01++summerLAI=0.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++Jarvis++rootDistExp=0.01++summerLAI=2.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++Jarvis++rootDistExp=0.01++summerLAI=4.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++Jarvis++rootDistExp=0.01++summerLAI=6.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++Jarvis++rootDistExp=0.01++summerLAI=8.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++Jarvis++rootDistExp=0.21++summerLAI=0.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++Jarvis++rootDistExp=0.21++summerLAI=2.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++Jarvis++rootDistExp=0.21++summerLAI=4.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++Jarvis++rootDistExp=0.21++summerLAI=6.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++Jarvis++rootDistExp=0.21++summerLAI=8.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++Jarvis++rootDistExp=0.41++summerLAI=0.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++Jarvis++rootDistExp=0.41++summerLAI=2.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++Jarvis++rootDistExp=0.41++summerLAI=4.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++Jarvis++rootDistExp=0.41++summerLAI=6.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++Jarvis++rootDistExp=0.41++summerLAI=8.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++Jarvis++rootDistExp=0.61++summerLAI=0.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++Jarvis++rootDistExp=0.61++summerLAI=2.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++Jarvis++rootDistExp=0.61++summerLAI=4.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++Jarvis++rootDistExp=0.61++summerLAI=6.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++Jarvis++rootDistExp=0.61++summerLAI=8.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++Jarvis++rootDistExp=0.81++summerLAI=0.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++Jarvis++rootDistExp=0.81++summerLAI=2.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++Jarvis++rootDistExp=0.81++summerLAI=4.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++Jarvis++rootDistExp=0.81++summerLAI=6.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++Jarvis++rootDistExp=0.81++summerLAI=8.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++simpleResistance++rootDistExp=0.01++summerLAI=0.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++simpleResistance++rootDistExp=0.01++summerLAI=2.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++simpleResistance++rootDistExp=0.01++summerLAI=4.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++simpleResistance++rootDistExp=0.01++summerLAI=6.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++simpleResistance++rootDistExp=0.01++summerLAI=8.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++simpleResistance++rootDistExp=0.21++summerLAI=0.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++simpleResistance++rootDistExp=0.21++summerLAI=2.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++simpleResistance++rootDistExp=0.21++summerLAI=4.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++simpleResistance++rootDistExp=0.21++summerLAI=6.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++simpleResistance++rootDistExp=0.21++summerLAI=8.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++simpleResistance++rootDistExp=0.41++summerLAI=0.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++simpleResistance++rootDistExp=0.41++summerLAI=2.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++simpleResistance++rootDistExp=0.41++summerLAI=4.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++simpleResistance++rootDistExp=0.41++summerLAI=6.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++simpleResistance++rootDistExp=0.41++summerLAI=8.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++simpleResistance++rootDistExp=0.61++summerLAI=0.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++simpleResistance++rootDistExp=0.61++summerLAI=2.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++simpleResistance++rootDistExp=0.61++summerLAI=4.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++simpleResistance++rootDistExp=0.61++summerLAI=6.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++simpleResistance++rootDistExp=0.61++summerLAI=8.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++simpleResistance++rootDistExp=0.81++summerLAI=0.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++simpleResistance++rootDistExp=0.81++summerLAI=2.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++simpleResistance++rootDistExp=0.81++summerLAI=4.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++simpleResistance++rootDistExp=0.81++summerLAI=6.01++_timestep.nc
/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++simpleResistance++rootDistExp=0.81++summerLAI=8.01++_timestep.nc
Number of NC files: 75

Plot time series for total evapotranspiration (total ET)

Here we define a functions that can read in a list of Summa output nc files, calculate Total evapotranspiration and plot it

In [9]:
# Import library
%matplotlib inline
import os
import xarray as xr
import pandas as pd
import matplotlib.pyplot as plt
from jupyterthemes import jtplot
import seaborn as sns
import numpy as np

#  Function to calculate the total evapotranspiration
def calc_total_et(et_output_df):
    total_et_data = (et_output_df['scalarLatHeatTotal'])*3600/2260000
    # create dates(X-axis) attribute from ouput netcdf
    dates = total_et_data.coords['time'].data
    # create data value(Y-axis) attribute from ouput netcdf
    data_values = total_et_data.data
    # create two dimensional tabular data structure 
    total_et_df = pd.DataFrame(data_values, index=dates)
    # round time to nearest hour (ex. 2006-10-01T00:59:59.99 -> 2006-10-01T01:00:00)
    total_et_df.index = total_et_df.index.round("H")
    # set the time period to display plot 
    total_et_df = total_et_df.loc["2007-05-31 23:00:00":"2007-08-20 23:00:00"]
    # resample data by the average value hourly
    total_et_df_hourly = total_et_df.resample("H").mean()
    # resample data by the average for hour of day
    total_et_by_hour = total_et_df_hourly.groupby(total_et_df_hourly.index.hour).mean()
    total_et_by_hour.index.name = 'hour'
    total_et_by_hour.columns = ['ET']
    # calculate 3 hour moving average
    total_et_by_hour.loc[24] = total_et_by_hour.loc[0].values
    for index in range(1,24,1):
        total_et_by_hour['ET'][index] = (total_et_by_hour['ET'][index-1]+total_et_by_hour['ET'][index]+total_et_by_hour['ET'][index+1])/3
    return total_et_by_hour
In [10]:
def plot_ET1(nc_list):
    
    dataset_list = [calc_total_et(xr.open_dataset(nc)) for nc in nc_list]
    ET_Combine = pd.concat(dataset_list, axis=1)
    ET_Combine_Graph = ET_Combine.plot(linewidth=3.0,figsize=(12,10))
    # invert y axis
    ET_Combine_Graph.invert_yaxis()

    # add x, y label
    plt.xlabel('Time of day (hr)', fontsize=25)
    plt.ylabel('Total evapotranspiration (mm/h)', fontsize=25)
    # show up the legend
    legends = []
    for nc in nc_list:
        legends.append(os.path.basename(nc))
    #for lengend in legends:
    legend = []
    for lists in legends:
        list = lists.split("++")[3]
        legend.append(list)
    ET_Combine_Graph.legend(legend, fontsize=20, loc=2)
    plt.xticks(fontsize=20)
    plt.yticks(fontsize=20)

How do different Leaf Area Index (summerLAI) values affect total ET?

Here we plot the ET results for different summaLAI by setting stomResist to BallBerry and rootDistExp=0.21

In [11]:
subset = [x for x in sorted_list if 'BallBerry++rootDistExp=0.21' in x]
plot_ET1(subset)

How do different stomatal resistance parameterizations affect total ET?

Here we only plot the ET results for different stomResist types by setting rootDistExp=0.21 and summerLAI to 4.01

In [12]:
def plot_ET1(nc_list):
    
    dataset_list = [calc_total_et(xr.open_dataset(nc)) for nc in nc_list]
    ET_Combine = pd.concat(dataset_list, axis=1)
    ET_Combine_Graph = ET_Combine.plot(linewidth=3.0,figsize=(12,10))
    # invert y axis
    ET_Combine_Graph.invert_yaxis()

    # add x, y label
    #ET_Combine_Graph.set(xlabel='Time of day (hr)', ylabel='Total evapotranspiration (mm h-1)', fontsize=25)
    plt.xlabel('Time of day (hr)', fontsize=25)
    plt.ylabel('Total evapotranspiration (mm/h)', fontsize=25)
    # show up the legend
    legends = []
    for nc in nc_list:
        legends.append(os.path.basename(nc))
    #for lengend in legends:
    legend = []
    for lists in legends:
        list = lists.split("++")[1]
        legend.append(list)
    ET_Combine_Graph.legend(legend, fontsize=20, loc=2)
    plt.xticks(fontsize=20)
    plt.yticks(fontsize=20)
In [13]:
subset = [x for x in sorted_list if 'rootDistExp=0.21++summerLAI=4.01' in x]
plot_ET1(subset)

Cleanup

This step is optional, which will remove all model outputs on notebook server

In [14]:
! rm -rvf {unzip_dir} {job_dir}
removed '/home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/data/forcingData/forcing_above_aspen.nc'
removed directory '/home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/data/forcingData'
removed '/home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/data/reynolds_geojson_latlon.geojson'
removed '/home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/data/validationData/ReynoldsCreek_eddyFlux.nc'
removed directory '/home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/data/validationData'
removed directory '/home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/data'
removed '/home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/installTestCases_local.sh'
removed directory '/home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/output'
removed '/home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/GENPARM.TBL'
removed '/home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/meta/dos2unix.sh'
removed '/home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/meta/Model_Output.txt'
removed '/home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/meta/summa_zBasinModelVarMeta.txt'
removed '/home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/meta/summa_zBasinParamMeta.txt'
removed '/home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/meta/summa_zCategoryMeta.txt'
removed '/home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/meta/summa_zForceMeta.txt'
removed '/home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/meta/summa_zLocalAttributeMeta.txt'
removed '/home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/meta/summa_zLocalModelIndexMeta.txt'
removed '/home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/meta/summa_zLocalModelVarMeta.txt'
removed '/home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/meta/summa_zLocalParamMeta.txt'
removed '/home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/meta/summa_zModelIndexMeta.txt'
removed '/home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/meta/summa_zParamMeta.txt'
removed '/home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/meta/summa_zTimeMeta.txt'
removed '/home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/meta/var_lookup.f90'
removed directory '/home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/meta'
removed '/home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/MPTABLE.TBL'
removed '/home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/SOILPARM.TBL'
removed '/home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/summa_fileManager_riparianAspenSimpleResistance.txt'
removed '/home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/summa_zBasinParamInfo.txt'
removed '/home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/summa_zDecisions_riparianAspenSimpleResistance.txt'
removed '/home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/summa_zForcingFileList_riparianAspen.txt'
removed '/home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/summa_zForcingInfo_riparianAspen.txt'
removed '/home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/summa_zInitialCond.nc'
removed '/home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/summa_zLocalAttributes_riparianAspen.nc'
removed '/home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/summa_zLocalParamInfo.txt'
removed '/home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/summa_zParamTrial_riparianAspen.nc'
removed '/home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/VEGPARM.TBL'
removed directory '/home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings'
removed '/home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/summa_options.json'
removed directory '/home/jovyan/work/workspace/tmpiodqpyg1/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron'
removed directory '/home/jovyan/work/workspace/tmpiodqpyg1'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/data/forcingData/forcing_above_aspen.nc'
removed directory '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/data/forcingData'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/data/reynolds_geojson_latlon.geojson'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/data/validationData/ReynoldsCreek_eddyFlux.nc'
removed directory '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/data/validationData'
removed directory '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/data'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/installTestCases_local.sh'
removed directory '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/output'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/GENPARM.TBL'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/meta/dos2unix.sh'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/meta/Model_Output.txt'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/meta/summa_zBasinModelVarMeta.txt'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/meta/summa_zBasinParamMeta.txt'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/meta/summa_zCategoryMeta.txt'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/meta/summa_zForceMeta.txt'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/meta/summa_zLocalAttributeMeta.txt'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/meta/summa_zLocalModelIndexMeta.txt'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/meta/summa_zLocalModelVarMeta.txt'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/meta/summa_zLocalParamMeta.txt'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/meta/summa_zModelIndexMeta.txt'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/meta/summa_zParamMeta.txt'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/meta/summa_zTimeMeta.txt'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/meta/var_lookup.f90'
removed directory '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/meta'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/MPTABLE.TBL'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/SOILPARM.TBL'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/summa_fileManager_riparianAspenSimpleResistance.txt'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/summa_zBasinParamInfo.txt'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/summa_zDecisions_riparianAspenSimpleResistance.txt'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/summa_zForcingFileList_riparianAspen.txt'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/summa_zForcingInfo_riparianAspen.txt'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/summa_zInitialCond.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/summa_zLocalAttributes_riparianAspen.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/summa_zLocalParamInfo.txt'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/summa_zParamTrial_riparianAspen.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings/VEGPARM.TBL'
removed directory '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/settings'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/summa_options.json'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/runSumma.py'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron/summa.sbatch'
removed directory '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/SummaModel_ReynoldsAspenStand_StomatalResistance_sopron'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/runinfo.txt'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++BallBerry++rootDistExp=0.41++summerLAI=0.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++BallBerry++rootDistExp=0.81++summerLAI=0.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++Jarvis++rootDistExp=0.41++summerLAI=0.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++simpleResistance++rootDistExp=0.21++summerLAI=8.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++Jarvis++rootDistExp=0.01++summerLAI=0.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++simpleResistance++rootDistExp=0.61++summerLAI=4.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++BallBerry++rootDistExp=0.01++summerLAI=0.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++BallBerry++rootDistExp=0.61++summerLAI=0.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++Jarvis++rootDistExp=0.21++summerLAI=0.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++simpleResistance++rootDistExp=0.41++summerLAI=6.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++Jarvis++rootDistExp=0.81++summerLAI=0.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++simpleResistance++rootDistExp=0.81++summerLAI=2.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++BallBerry++rootDistExp=0.21++summerLAI=0.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++simpleResistance++rootDistExp=0.21++summerLAI=0.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++Jarvis++rootDistExp=0.61++summerLAI=0.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++simpleResistance++rootDistExp=0.01++summerLAI=0.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++Jarvis++rootDistExp=0.41++summerLAI=2.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++BallBerry++rootDistExp=0.41++summerLAI=2.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++BallBerry++rootDistExp=0.81++summerLAI=2.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++Jarvis++rootDistExp=0.61++summerLAI=2.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++BallBerry++rootDistExp=0.01++summerLAI=2.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++BallBerry++rootDistExp=0.21++summerLAI=2.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++Jarvis++rootDistExp=0.01++summerLAI=2.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++Jarvis++rootDistExp=0.21++summerLAI=2.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++Jarvis++rootDistExp=0.81++summerLAI=2.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++BallBerry++rootDistExp=0.61++summerLAI=2.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++simpleResistance++rootDistExp=0.41++summerLAI=8.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++simpleResistance++rootDistExp=0.01++summerLAI=2.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++simpleResistance++rootDistExp=0.81++summerLAI=4.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++simpleResistance++rootDistExp=0.61++summerLAI=6.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++simpleResistance++rootDistExp=0.21++summerLAI=2.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++simpleResistance++rootDistExp=0.41++summerLAI=0.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++BallBerry++rootDistExp=0.41++summerLAI=4.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++Jarvis++rootDistExp=0.61++summerLAI=4.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++Jarvis++rootDistExp=0.41++summerLAI=4.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++BallBerry++rootDistExp=0.21++summerLAI=4.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++BallBerry++rootDistExp=0.01++summerLAI=4.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++Jarvis++rootDistExp=0.21++summerLAI=4.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++BallBerry++rootDistExp=0.61++summerLAI=4.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++Jarvis++rootDistExp=0.01++summerLAI=4.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++simpleResistance++rootDistExp=0.81++summerLAI=6.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++simpleResistance++rootDistExp=0.01++summerLAI=4.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++simpleResistance++rootDistExp=0.21++summerLAI=4.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++simpleResistance++rootDistExp=0.61++summerLAI=0.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++Jarvis++rootDistExp=0.81++summerLAI=4.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++BallBerry++rootDistExp=0.81++summerLAI=4.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++simpleResistance++rootDistExp=0.41++summerLAI=2.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++simpleResistance++rootDistExp=0.61++summerLAI=8.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++BallBerry++rootDistExp=0.41++summerLAI=6.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++Jarvis++rootDistExp=0.61++summerLAI=6.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++Jarvis++rootDistExp=0.41++summerLAI=6.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++BallBerry++rootDistExp=0.01++summerLAI=6.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++BallBerry++rootDistExp=0.61++summerLAI=6.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++Jarvis++rootDistExp=0.21++summerLAI=6.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++BallBerry++rootDistExp=0.21++summerLAI=6.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++simpleResistance++rootDistExp=0.81++summerLAI=8.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++Jarvis++rootDistExp=0.01++summerLAI=6.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++simpleResistance++rootDistExp=0.01++summerLAI=6.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++simpleResistance++rootDistExp=0.21++summerLAI=6.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++BallBerry++rootDistExp=0.81++summerLAI=6.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++simpleResistance++rootDistExp=0.41++summerLAI=4.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++simpleResistance++rootDistExp=0.61++summerLAI=2.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++Jarvis++rootDistExp=0.81++summerLAI=6.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++simpleResistance++rootDistExp=0.81++summerLAI=0.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++BallBerry++rootDistExp=0.41++summerLAI=8.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++Jarvis++rootDistExp=0.41++summerLAI=8.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++BallBerry++rootDistExp=0.01++summerLAI=8.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++Jarvis++rootDistExp=0.61++summerLAI=8.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++Jarvis++rootDistExp=0.21++summerLAI=8.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++Jarvis++rootDistExp=0.01++summerLAI=8.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++BallBerry++rootDistExp=0.61++summerLAI=8.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++BallBerry++rootDistExp=0.21++summerLAI=8.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++BallBerry++rootDistExp=0.81++summerLAI=8.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++Jarvis++rootDistExp=0.81++summerLAI=8.01++_timestep.nc'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output/vegImpactsTranspire_output_++simpleResistance++rootDistExp=0.01++summerLAI=8.01++_timestep.nc'
removed directory '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/output'
removed '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb/slurm-3563521.out'
removed directory '/home/jovyan/work/workspace/Summa_1590171524_fb351aeb'

Done