{ "cells": [ { "cell_type": "code", "execution_count": 1, "id": "bd2d9bd5", "metadata": { "tags": [ "hide-cell" ] }, "outputs": [], "source": [ "# Suppress distracting outputs in these examples\n", "# Note: this cell should be hidden with the tag \"hide-cell\"\n", "import logging\n", "import warnings\n", "\n", "warnings.filterwarnings(\"ignore\", category=UserWarning)\n", "logger = logging.getLogger(\"esmvalcore\")\n", "logger.setLevel(logging.WARNING)" ] }, { "attachments": {}, "cell_type": "markdown", "id": "aa960d4b", "metadata": {}, "source": [ "# Parameter sets\n", "\n", "Parameter sets are an essential part of many hydrological models, and for the eWaterCycle package as well." ] }, { "cell_type": "code", "execution_count": 3, "id": "c46c9fc4", "metadata": {}, "outputs": [], "source": [ "import ewatercycle.parameter_sets" ] }, { "attachments": {}, "cell_type": "markdown", "id": "00129d25", "metadata": {}, "source": [ "The default [system setup](https://ewatercycle.readthedocs.io/en/latest/system_setup.html#download-example-parameter-sets) includes a number of example parameter sets that can be used directly. System administrators can also add available parameter sets that are globally availble to all users. In the future, we're hoping to add functionality to fetch new parameter sets using a DOI as well.\n", "\n", "To see the available parameter sets:" ] }, { "cell_type": "code", "execution_count": 4, "id": "b1ee9e54", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
{\n", " 'pcrglobwb_rhinemeuse_30min': ParameterSet(\n", " name='pcrglobwb_rhinemeuse_30min',\n", " directory=PosixPath('/home/bart/ewatercycle/parameter-sets/pcrglobwb_rhinemeuse_30min'),\n", " config=PosixPath('/home/bart/ewatercycle/parameter-sets/pcrglobwb_rhinemeuse_30min/ini_and_batch_files/delt\n", "ares_laptop/setup_natural_test.ini'),\n", " doi='https://doi.org/10.5281/zenodo.1045339',\n", " target_model='pcrglobwb',\n", " supported_model_versions={'setters'},\n", " downloader=GitHubDownloader(\n", " org='UU-Hydro',\n", " repo='PCR-GLOBWB_input_example',\n", " branch='master',\n", " subfolder='RhineMeuse30min'\n", " )\n", " ),\n", " 'wflow_rhine_sbm_nc': ParameterSet(\n", " name='wflow_rhine_sbm_nc',\n", " directory=PosixPath('/home/bart/ewatercycle/parameter-sets/wflow_rhine_sbm_nc'),\n", " config=PosixPath('/home/bart/ewatercycle/parameter-sets/wflow_rhine_sbm_nc/wflow_sbm_NC.ini'),\n", " doi='N/A',\n", " target_model='wflow',\n", " supported_model_versions={'2020.1.2', '2020.1.3', '2020.1.1'},\n", " downloader=GitHubDownloader(\n", " org='openstreams',\n", " repo='wflow',\n", " branch='master',\n", " subfolder='examples/wflow_rhine_sbm_nc'\n", " )\n", " )\n", "}\n", "\n" ], "text/plain": [ "\u001b[1m{\u001b[0m\n", " \u001b[32m'pcrglobwb_rhinemeuse_30min'\u001b[0m: \u001b[1;35mParameterSet\u001b[0m\u001b[1m(\u001b[0m\n", " \u001b[33mname\u001b[0m=\u001b[32m'pcrglobwb_rhinemeuse_30min'\u001b[0m,\n", " \u001b[33mdirectory\u001b[0m=\u001b[1;35mPosixPath\u001b[0m\u001b[1m(\u001b[0m\u001b[32m'/home/bart/ewatercycle/parameter-sets/pcrglobwb_rhinemeuse_30min'\u001b[0m\u001b[1m)\u001b[0m,\n", " \u001b[33mconfig\u001b[0m=\u001b[1;35mPosixPath\u001b[0m\u001b[1m(\u001b[0m\u001b[32m'/home/bart/ewatercycle/parameter-sets/pcrglobwb_rhinemeuse_30min/ini_and_batch_files/delt\u001b[0m\n", "\u001b[32mares_laptop/setup_natural_test.ini'\u001b[0m\u001b[1m)\u001b[0m,\n", " \u001b[33mdoi\u001b[0m=\u001b[32m'https://doi.org/10.5281/zenodo.1045339'\u001b[0m,\n", " \u001b[33mtarget_model\u001b[0m=\u001b[32m'pcrglobwb'\u001b[0m,\n", " \u001b[33msupported_model_versions\u001b[0m=\u001b[1m{\u001b[0m\u001b[32m'setters'\u001b[0m\u001b[1m}\u001b[0m,\n", " \u001b[33mdownloader\u001b[0m=\u001b[1;35mGitHubDownloader\u001b[0m\u001b[1m(\u001b[0m\n", " \u001b[33morg\u001b[0m=\u001b[32m'UU-Hydro'\u001b[0m,\n", " \u001b[33mrepo\u001b[0m=\u001b[32m'PCR-GLOBWB_input_example'\u001b[0m,\n", " \u001b[33mbranch\u001b[0m=\u001b[32m'master'\u001b[0m,\n", " \u001b[33msubfolder\u001b[0m=\u001b[32m'RhineMeuse30min'\u001b[0m\n", " \u001b[1m)\u001b[0m\n", " \u001b[1m)\u001b[0m,\n", " \u001b[32m'wflow_rhine_sbm_nc'\u001b[0m: \u001b[1;35mParameterSet\u001b[0m\u001b[1m(\u001b[0m\n", " \u001b[33mname\u001b[0m=\u001b[32m'wflow_rhine_sbm_nc'\u001b[0m,\n", " \u001b[33mdirectory\u001b[0m=\u001b[1;35mPosixPath\u001b[0m\u001b[1m(\u001b[0m\u001b[32m'/home/bart/ewatercycle/parameter-sets/wflow_rhine_sbm_nc'\u001b[0m\u001b[1m)\u001b[0m,\n", " \u001b[33mconfig\u001b[0m=\u001b[1;35mPosixPath\u001b[0m\u001b[1m(\u001b[0m\u001b[32m'/home/bart/ewatercycle/parameter-sets/wflow_rhine_sbm_nc/wflow_sbm_NC.ini'\u001b[0m\u001b[1m)\u001b[0m,\n", " \u001b[33mdoi\u001b[0m=\u001b[32m'N/A'\u001b[0m,\n", " \u001b[33mtarget_model\u001b[0m=\u001b[32m'wflow'\u001b[0m,\n", " \u001b[33msupported_model_versions\u001b[0m=\u001b[1m{\u001b[0m\u001b[32m'2020.1.2'\u001b[0m, \u001b[32m'2020.1.3'\u001b[0m, \u001b[32m'2020.1.1'\u001b[0m\u001b[1m}\u001b[0m,\n", " \u001b[33mdownloader\u001b[0m=\u001b[1;35mGitHubDownloader\u001b[0m\u001b[1m(\u001b[0m\n", " \u001b[33morg\u001b[0m=\u001b[32m'openstreams'\u001b[0m,\n", " \u001b[33mrepo\u001b[0m=\u001b[32m'wflow'\u001b[0m,\n", " \u001b[33mbranch\u001b[0m=\u001b[32m'master'\u001b[0m,\n", " \u001b[33msubfolder\u001b[0m=\u001b[32m'examples/wflow_rhine_sbm_nc'\u001b[0m\n", " \u001b[1m)\u001b[0m\n", " \u001b[1m)\u001b[0m\n", "\u001b[1m}\u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sets = ewatercycle.parameter_sets.available_parameter_sets()\n", "print(sets)" ] }, { "attachments": {}, "cell_type": "markdown", "id": "e3d9a094", "metadata": {}, "source": [ "Since most parameter sets are model specific, you can filter the results as well:" ] }, { "cell_type": "code", "execution_count": 5, "id": "c089709e", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
{\n", " 'wflow_rhine_sbm_nc': ParameterSet(\n", " name='wflow_rhine_sbm_nc',\n", " directory=PosixPath('/home/bart/ewatercycle/parameter-sets/wflow_rhine_sbm_nc'),\n", " config=PosixPath('/home/bart/ewatercycle/parameter-sets/wflow_rhine_sbm_nc/wflow_sbm_NC.ini'),\n", " doi='N/A',\n", " target_model='wflow',\n", " supported_model_versions={'2020.1.2', '2020.1.3', '2020.1.1'},\n", " downloader=GitHubDownloader(\n", " org='openstreams',\n", " repo='wflow',\n", " branch='master',\n", " subfolder='examples/wflow_rhine_sbm_nc'\n", " )\n", " )\n", "}\n", "\n" ], "text/plain": [ "\u001b[1m{\u001b[0m\n", " \u001b[32m'wflow_rhine_sbm_nc'\u001b[0m: \u001b[1;35mParameterSet\u001b[0m\u001b[1m(\u001b[0m\n", " \u001b[33mname\u001b[0m=\u001b[32m'wflow_rhine_sbm_nc'\u001b[0m,\n", " \u001b[33mdirectory\u001b[0m=\u001b[1;35mPosixPath\u001b[0m\u001b[1m(\u001b[0m\u001b[32m'/home/bart/ewatercycle/parameter-sets/wflow_rhine_sbm_nc'\u001b[0m\u001b[1m)\u001b[0m,\n", " \u001b[33mconfig\u001b[0m=\u001b[1;35mPosixPath\u001b[0m\u001b[1m(\u001b[0m\u001b[32m'/home/bart/ewatercycle/parameter-sets/wflow_rhine_sbm_nc/wflow_sbm_NC.ini'\u001b[0m\u001b[1m)\u001b[0m,\n", " \u001b[33mdoi\u001b[0m=\u001b[32m'N/A'\u001b[0m,\n", " \u001b[33mtarget_model\u001b[0m=\u001b[32m'wflow'\u001b[0m,\n", " \u001b[33msupported_model_versions\u001b[0m=\u001b[1m{\u001b[0m\u001b[32m'2020.1.2'\u001b[0m, \u001b[32m'2020.1.3'\u001b[0m, \u001b[32m'2020.1.1'\u001b[0m\u001b[1m}\u001b[0m,\n", " \u001b[33mdownloader\u001b[0m=\u001b[1;35mGitHubDownloader\u001b[0m\u001b[1m(\u001b[0m\n", " \u001b[33morg\u001b[0m=\u001b[32m'openstreams'\u001b[0m,\n", " \u001b[33mrepo\u001b[0m=\u001b[32m'wflow'\u001b[0m,\n", " \u001b[33mbranch\u001b[0m=\u001b[32m'master'\u001b[0m,\n", " \u001b[33msubfolder\u001b[0m=\u001b[32m'examples/wflow_rhine_sbm_nc'\u001b[0m\n", " \u001b[1m)\u001b[0m\n", " \u001b[1m)\u001b[0m\n", "\u001b[1m}\u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sets = ewatercycle.parameter_sets.available_parameter_sets(target_model=\"wflow\")\n", "print(sets)" ] }, { "attachments": {}, "cell_type": "markdown", "id": "1508a346", "metadata": {}, "source": [ "Once you have found a suitable parameter set, you can load it and see some more details:" ] }, { "cell_type": "code", "execution_count": 6, "id": "cfb3109e", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
ParameterSet(\n", " name='wflow_rhine_sbm_nc',\n", " directory=PosixPath('/home/bart/ewatercycle/parameter-sets/wflow_rhine_sbm_nc'),\n", " config=PosixPath('/home/bart/ewatercycle/parameter-sets/wflow_rhine_sbm_nc/wflow_sbm_NC.ini'),\n", " doi='N/A',\n", " target_model='wflow',\n", " supported_model_versions={'2020.1.2', '2020.1.3', '2020.1.1'},\n", " downloader=GitHubDownloader(\n", " org='openstreams',\n", " repo='wflow',\n", " branch='master',\n", " subfolder='examples/wflow_rhine_sbm_nc'\n", " )\n", ")\n", "\n" ], "text/plain": [ "\u001b[1;35mParameterSet\u001b[0m\u001b[1m(\u001b[0m\n", " \u001b[33mname\u001b[0m=\u001b[32m'wflow_rhine_sbm_nc'\u001b[0m,\n", " \u001b[33mdirectory\u001b[0m=\u001b[1;35mPosixPath\u001b[0m\u001b[1m(\u001b[0m\u001b[32m'/home/bart/ewatercycle/parameter-sets/wflow_rhine_sbm_nc'\u001b[0m\u001b[1m)\u001b[0m,\n", " \u001b[33mconfig\u001b[0m=\u001b[1;35mPosixPath\u001b[0m\u001b[1m(\u001b[0m\u001b[32m'/home/bart/ewatercycle/parameter-sets/wflow_rhine_sbm_nc/wflow_sbm_NC.ini'\u001b[0m\u001b[1m)\u001b[0m,\n", " \u001b[33mdoi\u001b[0m=\u001b[32m'N/A'\u001b[0m,\n", " \u001b[33mtarget_model\u001b[0m=\u001b[32m'wflow'\u001b[0m,\n", " \u001b[33msupported_model_versions\u001b[0m=\u001b[1m{\u001b[0m\u001b[32m'2020.1.2'\u001b[0m, \u001b[32m'2020.1.3'\u001b[0m, \u001b[32m'2020.1.1'\u001b[0m\u001b[1m}\u001b[0m,\n", " \u001b[33mdownloader\u001b[0m=\u001b[1;35mGitHubDownloader\u001b[0m\u001b[1m(\u001b[0m\n", " \u001b[33morg\u001b[0m=\u001b[32m'openstreams'\u001b[0m,\n", " \u001b[33mrepo\u001b[0m=\u001b[32m'wflow'\u001b[0m,\n", " \u001b[33mbranch\u001b[0m=\u001b[32m'master'\u001b[0m,\n", " \u001b[33msubfolder\u001b[0m=\u001b[32m'examples/wflow_rhine_sbm_nc'\u001b[0m\n", " \u001b[1m)\u001b[0m\n", "\u001b[1m)\u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "parameter_set = sets[\"wflow_rhine_sbm_nc\"]\n", "print(parameter_set)" ] }, { "attachments": {}, "cell_type": "markdown", "id": "71afc038", "metadata": {}, "source": [ "or you can access individual attributes of the parameter sets" ] }, { "cell_type": "code", "execution_count": 7, "id": "fcae4d5d", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'2020.1.1', '2020.1.2', '2020.1.3'}" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "parameter_set.supported_model_versions" ] }, { "attachments": {}, "cell_type": "markdown", "id": "5089109b", "metadata": {}, "source": [ "Should you wish to configure your own parameter set (e.g. for PCRGlobWB in this case), this is also possible:" ] }, { "cell_type": "code", "execution_count": 8, "id": "7843755c", "metadata": {}, "outputs": [], "source": [ "custom_parameter_set = ewatercycle.parameter_sets.ParameterSet(\n", " name=\"custom_parameter_set\",\n", " directory=\"~/ewatercycle/docs/examples/parameter-sets/pcrglobwb_rhinemeuse_30min\",\n", " config=\"~/ewatercycle/docs/examples/parameter-sets/pcrglobwb_rhinemeuse_30min/setup_natural_test.ini\",\n", " target_model=\"pcrglobwb\",\n", " doi=\"https://doi.org/10.5281/zenodo.1045339\",\n", " supported_model_versions={\"setters\"},\n", ")" ] }, { "attachments": {}, "cell_type": "markdown", "id": "5d7ea27e", "metadata": {}, "source": [ "