{ "info": { "author": "Brian Miles", "author_email": "brian_miles@unc.edu", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Intended Audience :: Science/Research", "License :: OSI Approved :: BSD License", "Natural Language :: English", "Operating System :: Unix", "Topic :: Scientific/Engineering :: GIS" ], "description": "**RHESSysCalibrator**\t\t\t{#index}\n\n**Introduction**\n\nRHESSysCalibrator is a system for managing calibration sessions and run of\nRHESSys; A calibratration session contains one or more runs. Each run represents a\ndistinct and uniformly random set of sensitiviy parameters. \nRHESSysCalibrator uses a database (in sqlite3 format) to keep track of each \nsession and run. RHESSysCalibrator handles launching and management of each\nrun, and will update its database as run jobs are submitted, begin\nrunning, and finish (either with or without error). RHESSysCalibrator supports parallel execution of model runs using: (1) multiple processes (i.e. on your laptop or workstation); (2) compute clusters running Load Sharing Facility (LSF); (3) compute clusters running PBS/TORQUE; and (4) compute clusters running SLURM. \n\nIn addition to creating new calibration sessions, it is also possible\nto re-start sessions that have exited before completion. RHESSysCalibrator also handles calibration post processing (i.e. calculating Nash-Sutcliffe efficiency for modeled vs. observed streamflow), as well as uncertainty estimation using Generalized Likelihood Uncertainty Estimation (GLUE; Beven & Binley 1992).\n\n\n\n**Table of Contents**\n\n- [Authors](#authors)\n- [Source code](#source-code)\n- [Installation instructions](#installation-instructions)\n- [RHESSys calibration background](#rhessys-calibration-background)\n- [Usage instructions](#usage-instructions)\n- [Setup a new calibrator project](#setup-a-new-calibrator-project)\n- [Configuring a calibration session](#configuring-a-calibration-session)\n- [Create a new calibration session](#create-a-new-calibration-session)\n - [Using screen to run RHESSysCalibrator on compute clusters](#using-screen-to-run-rhessyscalibrator-on-compute-clusters)\n- [Restarting failed model sessions](#restarting-failed-model-sessions)\n- [Calculate model fitness statistics for basin-level output](#calculate-model-fitness-statistics-for-basin-level-output)\n- [Performing GLUE uncertainty estimation](#performing-glue-uncertainty-estimation)\n - [Applying behavioral parameter sets to another RHESSys model](#applying-behavioral-parameter-sets-to-another-rhessys-model)\n - [Visualizing behavioral model output](#visualizing-behavioral-model-output)\n - [Comparing behavioral simulations](#comparing-behavioral-simulations)\n - [Visualizing behavioral model output using other tools](#visualizing-behavioral-model-output-using-other-tools)\n- [Appendix](#appendix)\n - [Model directory structure](#model-directory-structure)\n - [References](#references)\n\n\n\nAuthors\n-------\nBrian Miles - brian_miles@unc.edu\n\nTaehee Hwang - taehee@indiana.edu\n\nLawrence E. Band - lband@email.unc.edu\n\nFor questions or support contact [Brian Miles](brian_miles@unc.edu)\n\n\nSource code\n-----------\nSource code can be found at: https://github.com/selimnairb/RHESSysCarlibrator\n\nDocumentation can be found at: http://pythonhosted.org/rhessyscalibrator\n\n\nInstallation instructions\n-------------------------\nRHESSysCalibrator requires [RHESSysWorkflows](https://github.com/selimnairb/RHESSysWorkflows) and [EcohydroLib](https://github.com/selimnairb/EcohydroLib); detailed\ninstallation instructions for OS X and Linux can be found [here](https://github.com/selimnairb/RHESSysWorkflows).\n\n> Though RHESSysCalibrator is written in Python it has only been tested under OS X and \n> Linux. \n\nOnce you have installed RHESSysWorkflows and EcohydroLib using the instructions above, install RHESSysCarlibrator using pip:\n\n\tsudo pip install rhessyscalibrator\n\t\n> Note that when installing RHESSysCalibrator and its dependencies on a compute cluster, \n> you will likely first need to setup a virtual Python environment using *virtualenv*.\n\nRHESSys calibration background\n------------------------------\nA discussion of model calibration theory is beyond the scope of this manual. Basic RHESSys model calibration is typically performed by calibrating the model's soil parameters against basin-level streamflow using a Monte Carlo approach. These soil parameters as well as general calibration strategies are described in detail [here](https://github.com/RHESSys/RHESSys/wiki/Calibrating-and-running-RHESSys).\n\nUsage instructions\n------------------\n\n## Setup a new calibrator project\nThe first step to using RHESSysCalibrator is to create empty \nRHESSysCalibrator project. First create a new directory:\n\n mkdir MY_CALIBRATION_PROJECT\n \nThen, populate this directory with the [correct subdirectory structure](#model-directory-structure):\n\n rhessys_calibrator.py -b Baisman_10m_calib --create\n\nNext, if the RHESSys model you wish to calibrate was created using RHESSysWorkflows, you can use the provided *rw2rc.py* script to copy your RHESSysWorkflows project into the empty RHESSysCalibrator project:\n\n rw2rc.py -p MY_RHESSYSWORKFLOWS_PROJECT -b MY_CALIBRATION_PROJECT\n \nIf you are not working from a RHESSysWorkflows project, you will need to copy the necessary model files into the [correct locations](#model-directory-structure) in your calibration directory.\n \nLastly, copy observed daily streamflow and precipitation data for your watershed into the *obs* directory of your RHESSysCalibrator project, for example:\n\n cp PATH/TO/MY_OBSERVED_DATA MY_CALIBRATION_PROJECT/obs\n \nNote that format for observered data must be a CSV file including the following columnsl:\n\n datetime,streamflow_mm,precip_mm\n 1/1/1991,3.7,0\n 1/2/1991,3.5,0\n 1/3/1991,3.51,8.4\n 1/4/1991,3.32,0.5\n 1/5/1991,3.21,0\n ...\n \nThe datetime column must contain the data in MM/DD/YYYY format. Streamflow and precipitation data must be in units of mm/day; streamflow must be in a column named \"streamflow_mm\", precipitation in a column named \"precip_mm\". Make sure your line endings are Unix, not Windows or Mac. \n \n## Configuring a calibration session\nRHESSysCalibrator uses a file called *cmd.proto* to control how calibration runs are created. The typical contents of this file is:\n\n $rhessys -st 2003 1 1 1 -ed 2008 10 1 1 -b -t $tecfile -w $worldfile -r $flowtable -pre $output_path -s $s1[0.01, 20.0] $s2[1.0, 150.0] $s3[0.1, 10.0] -sv $sv1[0.01, 20.0] $sv2[1.0, 150.0] -gw $gw1[0.001, 0.3] $gw2[0.01, 0.9]\n\nor for older versions of RHESSysCalibrator (or if you used the *--noparamranges* option when creating your project), the ranges for each parameter will not be included:\n \n $rhessys -st 2003 1 1 1 -ed 2008 10 1 1 -b -t $tecfile -w $worldfile -r $flowtable -pre $output_path -s $s1 $s2 $s3 -sv $sv1 $sv2 -gw $gw1 $gw2\n\n> Use the *--allparams* option when creating your project to include all possible RHESSys commmand line parameters\n> in the project's *cmd.proto*.\n\nHere we are setting the start and end dates of the calibration runs, as well as setting the soil parameters to calibrated against. In this case for each model run the following parameters will be varied: decay of saturated hydraulic conductivity for soil drainage (s1 or m in model parlance); saturated hydraulic conductivity for soil drainage (s2 or Ksat0); soil depth (s3); decay of saturated hydraulic conductivity for infiltration (sv1 or m_v); vertical saturated conductivity for infilration (sv2 or Ksat0_v); bypass flow from detention storage directly to hillslope groundwater (gw1); loss from the saturated zone to hillslope groundwater (gw2).\n\nIn general, you should only need to change the start and end dates, which calibration parameters to include, and\nthe range of the uniform distribution from which each parameter will be sampled; parameter ranges are specified by placing the desired closed interval (i.e. two floating point numbers separated by commas and enclosed by square brackets) immediately following the parameter name. Ignore all other parts of cmd.proto (e.g. $worldfile, $output_path) as these are used by RHESSysCalibrator to create the RHESSys command line for each model run created as part of the calibration session.\n \nWhen running on compute clusters, we recommend that you also make a test cmd.proto for debugging your model:\n\n cp MY_CALIBRATION_PROJECT/cmd.proto MY_CALIBRATION_PROJECT/cmd.proto.test\n \nFor example edit cmd.proto.test to run the model for only a single month:\n\n\t$rhessys -st 2007 1 1 1 -ed 2007 2 1 1 -b -t $tecfile -w $worldfile -r $flowtable -pre $output_path $s1[0.01, 20.0] $s2[1.0, 150.0] $s3[0.1, 10.0] -sv $sv1[0.01, 20.0] $sv2[1.0, 150.0] -gw $gw1[0.001, 0.3] $gw2[0.01, 0.9]\n\t\nNow save a copy of cmd.proto so that we don't overwrite it when testing our model:\n\n cp MY_CALIBRATION_PROJECT/cmd.proto MY_CALIBRATION_PROJECT/cmd.proto.run\n \nBefore running a debug calibration session, copy cmd.proto.test to cmd.proto:\n\n\tcp MY_CALIBRATION_PROJECT/cmd.proto.test MY_CALIBRATION_PROJECT/cmd.proto\n\t\n## Create a new calibration session\nTo run RHESSysCalibrator, we use the *rhessys_calibrator* command:\n\n\trhessys_calibrator.py -b MY_CALIBRATION_PROJECT -p 'My RHESSys model' -n 'Debug calibration session, one iteration' -i 1 -j 1 --parallel_mode process\n\t\nThe *-b* option specifies the RHESSyCalibrator project directory to use. We describe the project with the *-p* option, and provide notes for this particular calibration session with the *-n* option. As this is a test calibration session, we specify that we only want to run one iteration using the *-i* option, and that we only want to run at most one model run at a given time using the *-j*. Lastly, we set the parallel mode to *process*, which is appropriate for running on a laptop or workstation. To run the calibration session on a compute cluster running LSF change the command line as follows:\n\n rhessys_calibrator.py -b MY_CALIBRATION_PROJECT -p 'My RHESSys model' -n 'Debug calibration session, one iteration' -i 1 -j 1 --parallel_mode lsf --mem_limit N -q QUEUE_NAME\n \nWhere *N* is the amount of memory, in gigabytes (GB) that your model needs, and *QUEUE_NAME* is the name of the LSF queue to which jobs for this session should\nbe submitted. Note that the queue name will be specific to your compute cluster (ask for administrator for details). \n\nOr to run the session on a compute cluster running PBS/TORQUE:\n\n\trhessys_calibrator.py -b MY_CALIBRATION_PROJECT -p 'My RHESSys model' -n 'Debug calibration session, one iteration' -i 1 -j 1 --parallel_mode pbs --mem_limit N --wall_time M\n\t\nWhere *M* is the amount of hours you estimate that your model will need to complete. You may also optionally specify the *-q* option when running under PBS. Similarly, to run the session on a compute cluster running SLURM:\n\n\trhessys_calibrator.py -b MY_CALIBRATION_PROJECT -p 'My RHESSys model' -n 'Debug calibration session, one iteration' -i 1 -j 1 --parallel_mode slurm --mem_limit N -q QUEUE_NAME\n\t\nhere, *Q* is the name of the SLURM partition to submit the job to. You may also optionally specify the *--wall_time* option when running under SLURM.\n\nFor details about these and other options, run *rhessys_calibrator* with the *--help* option:\n\n rhessys_calibrator.py --help\n\n> While running, RHESSysCalibrator will print lots of ugly though usually informative \n> messages to the screen to tell you want it is doing.\n\nOnce you have successfully run your calibration project for a single iteration using your test *cmd.proto*, you can launch a real calibration session by first replacing the test *cmd.proto* with the real *cmd.proto*:\n\n\tcp MY_CALIBRATION_PROJECT/cmd.proto.run MY_CALIBRATION_PROJECT/cmd.proto\n\nThen, you can launch a calibration session as follows. For multiprocessor mode (i.e. on a laptop or workstation computer):\n\n rhessys_calibrator.py -b MY_CALIBRATION_PROJECT -p 'My RHESSys model' -n 'Debug calibration session, one iteration' -i 500 -j 8 --parallel_mode process\n \nWhere *-i* specifcies that this session should consist of 500 iterations or model realizations, with *-j* controlling the maximum number of iterations or simultaneous jobs (8 in this case) to run in parallel. The number of simultaneous jobs possible in multiprocessor mode will depend on the number of processors/cores/virtual cores in your computer, as well as the amount of memory and the amount of memory your RHESSys model requires (which depends on the spatial extent and resolution of your model domain).\n\n> You can see how much memory your model requires to run by using your computer's \n> Activity Monitor tool while the model is running.\n\nWhen running on compute clusters, you will typically be able to running many more simultaneous jobs in parallel. For example on LSF-based clusters:\n\n rhessys_calibrator.py -b MY_CALIBRATION_PROJECT -p 'My RHESSys model' -n 'Debug calibration session, one iteration' -i 5000 -j 1000 --parallel_mode lsf --mem_limit N -q QUEUE_NAME\n \nor for PBS/TORQUE-based clusters:\n\n rhessys_calibrator.py -b MY_CALIBRATION_PROJECT -p 'My RHESSys model' -n 'Debug calibration session, one iteration' -i 5000 -j 1000 --parallel_mode pbs --mem_limit N --wall_time M\n \nor for SLURM-based clusters:\n\n rhessys_calibrator.py -b MY_CALIBRATION_PROJECT -p 'My RHESSys model' -n 'Debug calibration session, one iteration' -i 5000 -j 1000 --parallel_mode slurm --mem_limit N --wall_time M\n \nHere we are telling RHESSysCalibrator to run 5,000 model iterations in this session with at most 1,000 simultaneous jobs. Note that the number of simultaneous jobs possible will depend on the size of the compute cluster (e.g. number of cores) as well as administrative policies. For example, some systems restrict users to using at most a few hundred compute cores at any one time and may impose aggregate memory limits across all of your jobs, for example a few terabytes (TB). Consult the documentation for your cluster before trying to run more than a few simultaneous jobs using RHESSysCalibrator.\n\n### Using screen to run RHESSysCalibrator on compute clusters\nWhen running calibration runs on compute clusters, we recommend running \n*rhessys_calibrator* within a *screen* session. *Screen* is a tool that allows you to \nrun commands in a terminal that will not exit if your connection to the compute\ncluster is lost. Assuming *screen* is installed on your cluters (if it is not, ask your administrator to install it), you would launch screen before running any RHESSysCalibrator commands:\n\n screen\n \nThis will cause screen to launch and to run a normal login shell, from which you can run RHESSysCalibrator commands. To detach from your screen session hit Control-A then Control-D on your keyboard. To re-attached to a detached screen session (whether you detached or we forceably disconnected) specify then *-r* option when running screen:\n\n screen -r\n\n## Restarting failed model sessions\nOn occasion, the *rhessys_calibrator* session may be forceably stopped before all calibration runs have finished (you may even decide to quit a session yourself). You can use the *rhessys_calibrator_restart* command to restart such a session, for LSF-based clusters:\n\n rhessys_calibrator_restart.py -b MY_CALIBRATION_PROJECT -s N -i 5000 -j 1000 --parallel_mode lsf --mem_limit M -q QUEUE_NAME\n \nor for PBS/TORQUE-based clusters:\n\n rhessys_calibrator_restart.py -b MY_CALIBRATION_PROJECT -s N -i 5000 -j 1000 --parallel_mode pbs --mem_limit M --wall_time W \n \nor for SLURM-based clusters:\n\n\trhessys_calibrator_restart.py -b MY_CALIBRATION_PROJECT -s N -i 5000 -j 1000 --parallel_mode slurm --mem_limit M --wall_time W\n \nWhere the *-s* option is used to specify the ID of the session that you would like to restart. Will print how many runs have completed, how many will be restarted, and how many new runs will be started, before asking you if you wish to continue.\n\n## Calculate model fitness statistics for basin-level output\nAfter the calibration session finishes (i.e. once all the model runs have completed), you can use *rhessys_calibrator_postprocess* to calculate model fitness parameters (e.g. Nash-Sutcliffe Efficiency for daily streamflow and daily log(streamflow)):\n\n rhessys_calibrator_postprocess.py -b MY_CALIBRATION_PROJECT -f MY_OBSERVED_DATA -s 2 --enddate 2007 2 1 1 --figureX 8 --figureY 6\n \nThe *-s* option specifies the calibration session for which we wish to calculate fitness parameters; typically session is *2* is our first realy calibration session as the first session was our testing session. Here we also specify the end date of the time period over which we wish to calculate fitness parameters; this is done using the *--enddate* option. Note that you can also specify the temporal aggregation with which to calculate fitness parameters using the *-p* (a.k.a. *--period*) option. The default is 'daily', but 'weekly' and 'monthly' are also supported. The *--figureX* and *--figureY* options control the X and Y dimensions (in inches) of output plots.\n\nOnce post-processing is finished, the following message will be printed:\n\n Fitness results saved to post-process session: N\n \nwhere \"N\" is the number of the post-process session just created for your calibration session; remember this number. The sensitivity of each parameter will be illustrated in \"dotty plot\" figure output as PDF file named *dotty_plots_SESSION_2_POSTPROCESS_1_daily.pdf* stored in the calibration project directory.\n \nYou can see the parameters used for each calibration run, as well as the fitness values for each run, by opening the calibration SQLite database stored in the calibration project. We recommend that you use the SQLite Manager add-on in the FireFox web browser to do so, though you can use any tool that can read SQLite version 3 databases. The calibration database for our project can be found here:\n\n MY_CALIBRATION_PROJECT/db/calibration.sqlite\n \n> If you are working with a database originally created in RHESSysCalibrator 1.0, the filename will be *calibration.db* instead.\n \nUsing SQLite Manager, you can view calibration parameters and model fitness statistics, determine the model command line and output location for each model run. The name and purpos of the most important tables are as follows:\n\nTable | Data stored\n--- | --- \nsession | General information, one entry each time *rhessys_calibrator* or *rhessys_calibrator_behavioral* is run.\nrun | Detailed information about each model run in a session, multiple runs are associated with each session.\npostprocess | General post-process information, one entry for each time *rhessys_calibrator_postprocess* or *rhessys_calibrator_behavioral* is run.\nrunfitness | Detailed run fitness information for a given model run, multiple runfitness entries are associated with each postprocess session. \n\nTo export model run information to CSV files suitable for importing into data analysis tools, you can use the *rhessys_calibrator_postprocess_export* tool:\n\n rhessys_calibrator_postprocess_export.py -b MY_CALIBRATION_PROJECT -s N -f mypreferred_filename.csv\n\nwhere \"N\" is the number of the post-process session output by *rhessys_calibrator_postprocess*.\n\n## Performing GLUE uncertainty estimation\nOnce you have a suite of model realizations from a calibration session, RHESSysCalibrator can also facilitate simple uncertainty analysis using the Generalized Likelihood Uncertainty Estimation methodology (GLUE; Beven & Binley 1992). \n\n### Applying behavioral parameter sets to another RHESSys model\nThe *rhessys_calibrator_behavioral* command will allow you to apply so-called behavioral model parameters from a previous calibration session to a new behavioral session representing a particular model scenario (e.g. a change in land cover from forest to suburban development; climate change scenarios, etc.). \n\nThe following invocation of *rhessys_calibrator_behavioral* will apply the top 100 model realizations, sorted in descending order by NSE-log then NSE, from post-process session 2 to a new behavioral RHESSysCalibrator project (make sure to copy the calibration.sqlite from the calibration project into the behavioral project), for LSF-based clusters:\n\n rhessys_calibrator_behavioral.py -b MY_BEHAVIORAL_CALIBRATION_PROJECT -p 'Behavioral runs for My RHESSys model' -s 2 -c cmd.proto -j 100 --parallel_mode lsf --mem_limit M -q QUEUE_NAME -f \"postprocess_id=2 order by nse_log desc, nse desc limit 100\"\n \nor for PBS/TORQUE-based clusters:\n\n rhessys_calibrator_behavioral.py -b MY_BEHAVIORAL_CALIBRATION_PROJECT -p 'Behavioral runs for My RHESSys model' -s 2 -c cmd.proto -j 100 --parallel_mode pbs --mem_limit M --wall_time W -f \"postprocess_id=2 order by nse_log desc, nse desc limit 100\"\n \nor for SLURM-based clusters:\n\n rhessys_calibrator_behavioral.py -b MY_BEHAVIORAL_CALIBRATION_PROJECT -p 'Behavioral runs for My RHESSys model' -s 2 -c cmd.proto -j 100 --parallel_mode slurm --mem_limit M --wall_time W -f \"postprocess_id=2 order by nse_log desc, nse desc limit 100\"\n \nNote that to allow the time period for uncertainty estimation of behavioral simulations to differ from that of the calibration session, we can specify a particular *cmd.proto* to use, which may or may not be the same as the *cmd.proto* used for the calibration session.\n\n> The *-f* option can be any valid SQLite \"WHERE\" clause.\n\nWhen the behavioral runs complete *rhessys_calibrator_behavioral* will print out the number of the calibration session and post-process session created, e.g.:\n\n Behavioral results saved to session 3, post-process session 2\n\nTake note of these for future reference in the visualization section below.\n\n### Visualizing behavioral model output\nOnce the behavioral simulations are complete, you can visualize the uncertainty around estimates of streamflow using the *rhessys_calibrator_postprocess_behavioral* command:\n\n rhessys_calibrator_postprocess_behavioral.py -b MY_BEHAVIORAL_CALIBRATION_PROJECT -s 2 -of PDF --figureX 8 --figureY 3 --supressObs --plotWeightedMean\n\nFor a full list of options, run:\n\n rhessys_calibrator_postprocess_behavioral.py --help\n\n*rhessys_calibrator_postprocess_behavioral* will output: (1) the number of modeled observations; (2) the number of observerations within the 95% uncertainty bounds; and (3) the Average Relative Interval Length (ARIL; Jin et al. 2010); ARIL represents the width of the prediction interval. Better models are those that have a smaller ARIL and a higher number of observed streamflow values falling within the prediction interval, relative to a worse model. \n\n### Comparing behavioral simulations\nYou can use the *rhessys_calibrator_postprocess_behavioral_compare* command to compare two sets of behavioral runs:\n \n rhessys_calibrator_postprocess_behavioral_compare.py MY_BEHAVIORAL_CALIBRATION_PROJECT_1 MY_BEHAVIORAL_CALIBRATION_PROJECT_2 3 4 -t \"Model scenario 1 vs. scenario 2 - 95% uncertainty bounds\" -of PDF --figureX 8 --figureY 3 --plotWeightedMean --legend \"Scenario 1\" \"Scenario 2\" --behavioral_filter \"nse>0 order by nse_log desc, nse desc limit 100\" --supressObs --color\t\n\t\nHere we are telling RHESSysCalibrator that we would like to compare post-process sessions 3 and 4, plotting the weighted ensemble mean (Seibert & Beven 2009) with the *--plotWeightedMean* option. Note that *MY_BEHAVIORAL_CALIBRATION_PROJECT_1* and *MY_BEHAVIORAL_CALIBRATION_PROJECT_2* could be the same RHESSysCalibrator project. \n\n*rhessys_calibrator_postprocess_behavioral_compare* will perform a Kolmogorov-Smirnov (K-S) test to determine if the weighted ensemble mean streamflow time series from the behavioral runs are statistically significant. Here is some example output:\n\n```\nCritical value for Kolmogorov-Smirnov statistic (D_alpha; alpha=0.0500): 0.0712\nKolmogorov-Smirnov statistic (D): 0.0205\nD > D_alpha? False\n\np-value: 0.9977\np-value < alpha? False\n```\n\nWhich indicates that there is no statistically significant difference between the weighted ensemble mean streamflow time series of the two behavioral model scenarios.\n\t\n### Visualizing behavioral model output using other tools\nIf you would like to visualize behavioral streamflow data using other analysis or visualization tools, you can use the *rhessys_calibrator_postprocess_behavioral_timeseries* command to out output: min, max, median, mean, and weighted ensemble mean time series:\n\n\trhessys_calibrator_postprocess_behavioral_timeseries.py -b MY_BEHAVIORAL_CALIBRATION_PROJECT -s 3\n\nwhere the *-s* or *--postprocess_session* option refers to the post-process session created for your behavioral run by *rhessys_calibrator_behavioral*.\n\t\nThen, for example, you can use RHESSysWorkflow's *RHESSysPlot* command to make scatter plots of streamflow for two behavioral sessions:\n\n\tRHESSysPlot.py -p scatter -o MY_BEHAVIORAL_CALIBRATION_PROJECT/obs/MY_OBSERVED_DATA -b MY_BEHAVIORAL_CALIBRATION_PROJECT/behavioral_ts_SESSION_3_weighted_ensmb_mean.csv MY_BEHAVIORAL_CALIBRATION_PROJECT/behavioral_ts_SESSION_4_weighted_ensmb_mean.csv -c streamflow -t \"Weighted ensemble mean daily streamflow: Scenario 1 v. Scenario 2\" -l \"Streamflow - Scenario 1 (mm/day)\" \"Streamflow - Scenario 2 (mm/day)\" --supressObs -f scenario1_v_scenario2 --figureX 8 --figureY 6\n\t\nSee:\n\n RHESSysPlot.py --help \n\nfor a complete description of possible options.\n\t\n## Appendix \n\n### Model directory structure\nBefore running rhessys_calibrator.py to perform calibrations, it is first \nnecessary to create the session directory structure. This is done by\nissuing the --create argument, along with the always-required\n--basedir argument. This will create the following directory\nstructure within $BASEDIR:\n\n```\ndb/ Where the session DB will be stored (by\n RHESSysCalibrator)\nrhessys/src/ Where you should place your RHESSys source code (optional).\nrhessys/bin/ Where you will place your RHESSys binary. (if more than one\n executable is present, there is no guarantee as to which will\n be used.)\nrhessys/worldfiles/active/ Where you will place world files for which \n calibration should be performed. (All worldfiles\n in this directory will be calibrated as part of the\n session)\nrhessys/flow/ Where you will place flow tables associated with\n each worldfile to be calibrated. Flow table file name must be \n of the form $(WORLDFILE_NAME)_flow_table.dat\nrhessys/tecfiles/active Where you will place the TEC file used in your \n calibration runs (only one will be used, with\n no guaranty of what will be used if there is\n more than one file in this directory)\nrhessys/defs/ Where you will place default files referenced in \n your worldfiles\nrhessys/clim/ Where you will place climate data referenced in your\n worldfiles\nrhessys/output/ Where output for each run will be stored. Each \n run's output will be stored in a directory named\n \"SESSION_$SESSION_ID$WORLDFILE_ITR_$ITR\" where \n $SESSION_ID is the session associated with a run,\n $ITR is the iteration and $WORLDFILE corresponds \n to a worldfile listed in\n $BASEDIR/rhessys/worldfiles/active\nobs/ Where you will store observed data to be compared to\n data from calibration model runs.\n```\n\n### References\nBeven, K. & Binley, A., 1992. The future of distributed models: Model calibration and uncertainty prediction. Hydrological Processes, 6(3), pp.279\u2013298.\n\nJin, X., Xu, C.-Y., Zhang, Q., & Singh, V. P., 2010. Parameter and modeling uncertainty simulated by GLUE and a formal Bayesian method for a conceptual hydrological model. Journal of Hydrology, 383(3-4), pp.147\u2013155.\n\nSeibert, J. & Beven, K J, 2009. Gauging the ungauged basin: how many discharge measurements are needed? Hydrology and Earth System Sciences.", "description_content_type": null, "docs_url": "https://pythonhosted.org/rhessyscalibrator/", "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/selimnairb/RHESSysCalibrator", "keywords": null, "license": "BSD", "maintainer": null, "maintainer_email": null, "name": "rhessyscalibrator", "package_url": "https://pypi.org/project/rhessyscalibrator/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/rhessyscalibrator/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/selimnairb/RHESSysCalibrator" }, "release_url": "https://pypi.org/project/rhessyscalibrator/2.1.0/", "requires_dist": null, "requires_python": null, "summary": "Libraries and command-line scripts for handling RHESSys model calibration.", "version": "2.1.0" }, "last_serial": 1899669, "releases": { "1.0.31": [ { "comment_text": "", "digests": { "md5": "e3786f7a43e91d7a215950df351f26fa", "sha256": "85d59b198ceff86ff961a1bc844a425bef9cddeee6a0b981e76d86b2e8446356" }, "downloads": -1, "filename": "rhessyscalibrator-1.0.31.tar.gz", "has_sig": false, "md5_digest": "e3786f7a43e91d7a215950df351f26fa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 79425, "upload_time": "2015-04-09T16:31:57", "url": "https://files.pythonhosted.org/packages/62/82/540086822fd9cedd9531e0c0323853e9ae3d86d1a9a6c7e1fd97e5c2a011/rhessyscalibrator-1.0.31.tar.gz" } ], "1.0.32": [ { "comment_text": "", "digests": { "md5": "4d087061dbf88a357675d4402cc85cf3", "sha256": "82586c01a976a28ea556319e02afa124b48982ff540a51554b34de46b31a5a26" }, "downloads": -1, "filename": "rhessyscalibrator-1.0.32.tar.gz", "has_sig": false, "md5_digest": "4d087061dbf88a357675d4402cc85cf3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 82323, "upload_time": "2015-04-29T02:09:53", "url": "https://files.pythonhosted.org/packages/38/ef/d01bc536c3775ff1a0e644b70ecce35ddcbe3d57af2b0daec4d102726cc6/rhessyscalibrator-1.0.32.tar.gz" } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "ebfe7b744bd845c893de3e4915ecc7f5", "sha256": "bf9ec56b9463e413cb75880347baa21300ae8a030a0667d715e0dac9e9fef73b" }, "downloads": -1, "filename": "rhessyscalibrator-2.0.0.tar.gz", "has_sig": false, "md5_digest": "ebfe7b744bd845c893de3e4915ecc7f5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 93402, "upload_time": "2015-05-14T18:32:29", "url": "https://files.pythonhosted.org/packages/69/ed/9095430e44f2113b0ac723eaeb1afde68cb69fb1a5718055f165b544fa73/rhessyscalibrator-2.0.0.tar.gz" } ], "2.0.1": [ { "comment_text": "", "digests": { "md5": "501b06c733e374aa1dd69404157e4281", "sha256": "315731e5a15550d1471af4905ce92c867e43137a9783e3aba97a0b75f5fadc84" }, "downloads": -1, "filename": "rhessyscalibrator-2.0.1.tar.gz", "has_sig": false, "md5_digest": "501b06c733e374aa1dd69404157e4281", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 92862, "upload_time": "2015-06-14T02:21:00", "url": "https://files.pythonhosted.org/packages/97/bb/57ee004c3d2f0ca9c417e6dbb8426c8d80dfc3312e0344e5f62137dea658/rhessyscalibrator-2.0.1.tar.gz" } ], "2.0.2": [ { "comment_text": "", "digests": { "md5": "16d1399b8e3024f5cbf3177c4635fea2", "sha256": "468d07b25aa6f4654bffceb91ebccb275c49669a67b03f0e75b3e35e04f6cb23" }, "downloads": -1, "filename": "rhessyscalibrator-2.0.2.tar.gz", "has_sig": false, "md5_digest": "16d1399b8e3024f5cbf3177c4635fea2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 93303, "upload_time": "2015-06-17T03:19:49", "url": "https://files.pythonhosted.org/packages/71/f5/8b2dc26d0f2f7230170f0211a9fcf5e2b1f16e5fd8106c671d945506b082/rhessyscalibrator-2.0.2.tar.gz" } ], "2.1.0": [ { "comment_text": "", "digests": { "md5": "4b8fa4e9e17750a57976d5ede9c238e3", "sha256": "c2d23199c94b832d2b6a26c516058493b712ffe140ed4c6a697d43f4dc08d67e" }, "downloads": -1, "filename": "rhessyscalibrator-2.1.0.tar.gz", "has_sig": false, "md5_digest": "4b8fa4e9e17750a57976d5ede9c238e3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 94383, "upload_time": "2016-01-11T19:29:29", "url": "https://files.pythonhosted.org/packages/f6/3c/d8ae86e2067f1d00186aef0b912f26f379d4b03ad412720580f27ace94c7/rhessyscalibrator-2.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "4b8fa4e9e17750a57976d5ede9c238e3", "sha256": "c2d23199c94b832d2b6a26c516058493b712ffe140ed4c6a697d43f4dc08d67e" }, "downloads": -1, "filename": "rhessyscalibrator-2.1.0.tar.gz", "has_sig": false, "md5_digest": "4b8fa4e9e17750a57976d5ede9c238e3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 94383, "upload_time": "2016-01-11T19:29:29", "url": "https://files.pythonhosted.org/packages/f6/3c/d8ae86e2067f1d00186aef0b912f26f379d4b03ad412720580f27ace94c7/rhessyscalibrator-2.1.0.tar.gz" } ] }