From 98f8a2c6b51aac639e4172dae3447d7616599ce9 Mon Sep 17 00:00:00 2001
From: "pre-commit-ci[bot]"
<66853113+pre-commit-ci[bot]@users.noreply.github.com>
Date: Tue, 5 Sep 2023 19:41:06 +0000
Subject: [PATCH] [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
---
.../00_Introduction_to_JupyterLab.ipynb | 450 +-
.../01_Getting_watershed_boundaries.ipynb | 590 +-
...ct_geographical_watershed_properties.ipynb | 1436 ++---
.../03_Extracting_forcing_data.ipynb | 1698 +++---
.../04_Emulating_hydrological_models.ipynb | 1650 +++---
.../05_Advanced_RavenPy_configuration.ipynb | 1170 ++--
docs/notebooks/06_Raven_calibration.ipynb | 706 +--
.../07_Making_and_using_hotstart_files.ipynb | 458 +-
...tting_and_bias_correcting_CMIP6_data.ipynb | 4768 ++++++++---------
...drological_impacts_of_climate_change.ipynb | 436 +-
docs/notebooks/10_Data_assimilation.ipynb | 1020 ++--
.../11_Climatological_ESP_forecasting.ipynb | 592 +-
...2_Performing_hindcasting_experiments.ipynb | 648 +--
.../Assess_probabilistic_flood_risk.ipynb | 2612 ++++-----
...omparing_hindcasts_and_ESP_forecasts.ipynb | 746 +--
.../Distributed_hydrological_modelling.ipynb | 472 +-
docs/notebooks/HydroShare_integration.ipynb | 430 +-
.../Hydrological_realtime_forecasting.ipynb | 532 +-
.../Managing_Jupyter_Environments.ipynb | 278 +-
docs/notebooks/Perform_Regionalization.ipynb | 580 +-
.../Running_HMETS_with_CANOPEX_dataset.ipynb | 1980 +++----
...e_change_impact_study_on_a_watershed.ipynb | 2658 ++++-----
docs/notebooks/time_series_analysis.ipynb | 562 +-
23 files changed, 13236 insertions(+), 13236 deletions(-)
diff --git a/docs/notebooks/00_Introduction_to_JupyterLab.ipynb b/docs/notebooks/00_Introduction_to_JupyterLab.ipynb
index dfc9c799..60651f93 100644
--- a/docs/notebooks/00_Introduction_to_JupyterLab.ipynb
+++ b/docs/notebooks/00_Introduction_to_JupyterLab.ipynb
@@ -1,227 +1,227 @@
{
- "cells": [
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "# 00 - Introduction to JupyterLab\n",
- "\n",
- "## Before going any further: \n",
- "\n",
- "These notebooks are best visualized by copying them to your writable-workspace on your PAVICS account, as files will be created and written on your writable-workspace that has write access. Please copy the tutorial notebooks (00-12) to that folder before continuing. \n",
- "\n",
- "Please see the PAVICS-Hydro documentation on the [PAVICS website](https://pavics.ouranos.ca) for more details."
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## JupyterLab\n",
- "\n",
- "Welcome to this PAVICS-Hydro tutorial, where we will explore the various hydrological modelling and forecasting possibilities offered by PAVICS-Hydro. The platform uses the [Raven hydrological modelling framework](http://raven.uwaterloo.ca/) to emulate different hydrological models, and relies on various scientific Python libraries to analyze the results. This tutorial starts by exploring the JupyterLab environment that this notebook is currently running on.\n",
- "\n",
- "\n",
- "## The file explorer\n",
- "\n",
- "The file explorer to the left of your screen works in much the same way as any file explorer on Windows, Mac or Linux. Here, we have files and folders that contain notebooks and data that we will want to use in our research or operations. You can:\n",
- "\n",
- "- Upload files here by using drag-and-drop OR using the button to that effect above the file explorer to send files from computer to the server (e.g. watershed boundaries, model files, input data, streamflow data, etc.) as required;\n",
- "- Cut, Copy, Paste files from one folder to another in the JupyterLab server;\n",
- "- Download files by right-clicking the file and saving to your computer locally;\n",
- "- Open notebook files (*.ipynb*) in the editor to modify and run the codes within;\n",
- "- Shutting down a running notebook by right-clicking and selecting \"Shut Down Kernel\".\n",
- "\n",
- "The file explorer allows users to manage the files and codes. To modify the codes and run them, we need to double-click on a notebook to open it in the file editor.\n",
- "\n",
- "## The file editor\n",
- "\n",
- "The file editor is what is being used right now to read the contents of this notebook! It is what is on the right side of your screen. If you open multiple notebooks, there will be as many tabs open on the top of the file editor. This is where the magic happens! Once a notebook has been opened, you can see that there are some \"Text\" cells and some \"Code\" cells. \n",
- "\n",
- "The **text cells** give context to what is happening and can be seen as meta-comments on top of the regular code comments, to ensure everything is clear to the users. The cell you are currently reading, for example, is a code cell. If you double-click it, you can modify its contents. To make it appear as text again, press the \"play\" or \"run\" button in the button list at the top of the file editor. These texts cells follow the Markdown templating.\n",
- "\n",
- "The **code cells** will actually perform the work on the PAVICS-Hydro server. For example, here is a simple code cell that will import a python package in our notebook. These code cells are in Python."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "import xarray as xr"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "The above cell does not do anything unless we tell the notebook that it needs to be run. To run a cell, you need to select it (click on it) and press the \"play\"/\"run\" button. This will tell the PAVICS-Hydro server that it needs to run this piece of code. To see if a code is running, the small brackets to the left of **code cells** will briefly turn to an asterisk, and will display a number once the code has finished running. If there is an error, there will be a red box with clear error messages under the executed cell.\n",
- "\n",
- "We can then see if importing the xarray package has worked by using a quick test. Run the below code. If it displays an error, then the importing has failed and should be run again. Also, there will be an empty space between the brackets. If it has worked, you should see a version in the brackets and the xarray version displayed under the cell!"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "print(xr.__version__)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Order of operations and variables in memory\n",
- "\n",
- "Jupyter Notebooks function in the same way as scripts in most programming languages. That is to say:\n",
- "\n",
- "- Cells will execute the first line within that cell before the second one, etc.;\n",
- "- If a cell tries to use a variable that has not been created yet, it will cause an error;\n",
- "- If a cell creates a variable, then that variable will be available to all other cells from that point on;\n",
- "- If a cell deletes a variable, then that variable is no longer available to any cell.\n",
- "\n",
- "To test this, you can try **skipping the next cell and running the following one, first**, which will return an error:"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "# SKIP THIS CELL FOR NOW!\n",
- "\n",
- "# Run this cell to create variable \"b\"\n",
- "b = 5"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "# You can also add comments by prefixing a line with a hashtag, like this.\n",
- "a = b + 3"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "You will get an error saying that \"name 'b' is not defined\".\n",
- "\n",
- "This is normal, because the code is expecting that variable \"b\" exists somewhere in its memory, but it hasn't been created yet! So, let's now create variable \"b\" by running the cell that we skipped (Note that we are presenting the cells in this order because otherwise errors would break our quality testing checks!)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Now that variable \"b\" has been created, try and re-run the cell that gave an error previously. It should work, because now \"b\" exists! So you can see how ordering cells is important. It is also possible to use this to create small tests within a notebook, by changing some variable at key points between larger blocks of code."
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Managing files\n",
- "\n",
- "JupyterLab allows loading and saving files in the file explorer. Let's explore this capability.\n",
- "\n",
- "First we will create a random array of numbers and save them to a file. We will then read that variable back into memory and compare results."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "# We will do this with the numpy package:\n",
- "import numpy as np\n",
- "\n",
- "c = np.random.rand(100) # Create 100 random values and store them in variable \"c\"\n",
- "np.savetxt(\"array_c.txt\", c) # Write the array to a file named \"array_c.txt\""
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "If you look in your workspace, you will see a new file named \"array_c.txt\". All files you generate will be written to the folder in which your notebook is running from.\n",
- "\n",
- "Now let's read it back in and verify that the values are the same. We can do this by taking the sum of the absolute differences between each element. If the sum is 0, that means we have succeeded:"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "d = np.loadtxt(\"array_c.txt\")\n",
- "print(sum(abs(c - d)))"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "As you can see, files can be accessed easily by simply refering to them by their name if they are in the same folder as the notebook. If they aren't you also need to specify the folder path. Example \"writable-workspace/array_c.txt\". This is also true for all files, even those you upload yourself. You can also access data that can be found online on an accessible server using the URL, but we will get to that in a later notebook."
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## IMPORTANT: Multiple noteooks running concurrently\n",
- "\n",
- "Notebooks are independent instances and do not communicate with one another. This means that if you load a package or a variable in memory in one notebook, the information will not be available in your other notebooks. This means you would need to import the data in the different notebooks. This will have the drawback of consuming more memory on the server, which can slow down computations for everyone. Therefore, we ask that you kindly close and shut down the notebooks once you are done with them. This can be done by right-clicking the notebook in the file explorer and selecting \"Shut Down Kernel\". This will close the instance and free all memory the notebook was taking up. Thanks!"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Important closing remarks\n",
- "\n",
- "JupyerLab environments make using codes easy and repeatable, without having to worry too much about packages, data access and other such elements that can be difficult to work with. However, there are some drawbacks:\n",
- "\n",
- "- You are running codes on a remote server, so it might be slower than on a high-performance local computer;\n",
- "- You might require more resources than are available on the remote server;\n",
- "- You might want to implement major changes that are not compatible with the Python packages available in the PAVICS-Hydro environment.\n",
- "\n",
- "To add packages, you can simply add a cell and \"! pip install **package**\" as required, which will add it to your local server. It will need to be re-added every time you close and re-spawn your server. You can also use the Jupyter conda plugin to install via conda (Settings --> Conda Packages Manager).\n",
- " \n",
- "Otherwise, you can always install the PAVICS-Hydro environment on your local computer following the instructions found [here] (https://pavics-sdi.readthedocs.io/projects/raven/en/latest/index.html). Note that these instructions are for more advanced python users / developers.\n",
- " \n",
- "In the next notebooks, we will start using your JupyterLab instance to start doing hydrological and hydroclimatological science!"
- ]
- }
- ],
- "metadata": {
- "kernelspec": {
- "display_name": "Python 3 (ipykernel)",
- "language": "python",
- "name": "python3"
- },
- "language_info": {
- "codemirror_mode": {
- "name": "ipython",
- "version": 3
- },
- "file_extension": ".py",
- "mimetype": "text/x-python",
- "name": "python",
- "nbconvert_exporter": "python",
- "pygments_lexer": "ipython3",
- "version": "3.10.9"
- }
- },
- "nbformat": 4,
- "nbformat_minor": 4
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# 00 - Introduction to JupyterLab\n",
+ "\n",
+ "## Before going any further: \n",
+ "\n",
+ "These notebooks are best visualized by copying them to your writable-workspace on your PAVICS account, as files will be created and written on your writable-workspace that has write access. Please copy the tutorial notebooks (00-12) to that folder before continuing. \n",
+ "\n",
+ "Please see the PAVICS-Hydro documentation on the [PAVICS website](https://pavics.ouranos.ca) for more details."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## JupyterLab\n",
+ "\n",
+ "Welcome to this PAVICS-Hydro tutorial, where we will explore the various hydrological modelling and forecasting possibilities offered by PAVICS-Hydro. The platform uses the [Raven hydrological modelling framework](http://raven.uwaterloo.ca/) to emulate different hydrological models, and relies on various scientific Python libraries to analyze the results. This tutorial starts by exploring the JupyterLab environment that this notebook is currently running on.\n",
+ "\n",
+ "\n",
+ "## The file explorer\n",
+ "\n",
+ "The file explorer to the left of your screen works in much the same way as any file explorer on Windows, Mac or Linux. Here, we have files and folders that contain notebooks and data that we will want to use in our research or operations. You can:\n",
+ "\n",
+ "- Upload files here by using drag-and-drop OR using the button to that effect above the file explorer to send files from computer to the server (e.g. watershed boundaries, model files, input data, streamflow data, etc.) as required;\n",
+ "- Cut, Copy, Paste files from one folder to another in the JupyterLab server;\n",
+ "- Download files by right-clicking the file and saving to your computer locally;\n",
+ "- Open notebook files (*.ipynb*) in the editor to modify and run the codes within;\n",
+ "- Shutting down a running notebook by right-clicking and selecting \"Shut Down Kernel\".\n",
+ "\n",
+ "The file explorer allows users to manage the files and codes. To modify the codes and run them, we need to double-click on a notebook to open it in the file editor.\n",
+ "\n",
+ "## The file editor\n",
+ "\n",
+ "The file editor is what is being used right now to read the contents of this notebook! It is what is on the right side of your screen. If you open multiple notebooks, there will be as many tabs open on the top of the file editor. This is where the magic happens! Once a notebook has been opened, you can see that there are some \"Text\" cells and some \"Code\" cells. \n",
+ "\n",
+ "The **text cells** give context to what is happening and can be seen as meta-comments on top of the regular code comments, to ensure everything is clear to the users. The cell you are currently reading, for example, is a code cell. If you double-click it, you can modify its contents. To make it appear as text again, press the \"play\" or \"run\" button in the button list at the top of the file editor. These texts cells follow the Markdown templating.\n",
+ "\n",
+ "The **code cells** will actually perform the work on the PAVICS-Hydro server. For example, here is a simple code cell that will import a python package in our notebook. These code cells are in Python."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import xarray as xr"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "The above cell does not do anything unless we tell the notebook that it needs to be run. To run a cell, you need to select it (click on it) and press the \"play\"/\"run\" button. This will tell the PAVICS-Hydro server that it needs to run this piece of code. To see if a code is running, the small brackets to the left of **code cells** will briefly turn to an asterisk, and will display a number once the code has finished running. If there is an error, there will be a red box with clear error messages under the executed cell.\n",
+ "\n",
+ "We can then see if importing the xarray package has worked by using a quick test. Run the below code. If it displays an error, then the importing has failed and should be run again. Also, there will be an empty space between the brackets. If it has worked, you should see a version in the brackets and the xarray version displayed under the cell!"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "print(xr.__version__)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Order of operations and variables in memory\n",
+ "\n",
+ "Jupyter Notebooks function in the same way as scripts in most programming languages. That is to say:\n",
+ "\n",
+ "- Cells will execute the first line within that cell before the second one, etc.;\n",
+ "- If a cell tries to use a variable that has not been created yet, it will cause an error;\n",
+ "- If a cell creates a variable, then that variable will be available to all other cells from that point on;\n",
+ "- If a cell deletes a variable, then that variable is no longer available to any cell.\n",
+ "\n",
+ "To test this, you can try **skipping the next cell and running the following one, first**, which will return an error:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# SKIP THIS CELL FOR NOW!\n",
+ "\n",
+ "# Run this cell to create variable \"b\"\n",
+ "b = 5"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# You can also add comments by prefixing a line with a hashtag, like this.\n",
+ "a = b + 3"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "You will get an error saying that \"name 'b' is not defined\".\n",
+ "\n",
+ "This is normal, because the code is expecting that variable \"b\" exists somewhere in its memory, but it hasn't been created yet! So, let's now create variable \"b\" by running the cell that we skipped (Note that we are presenting the cells in this order because otherwise errors would break our quality testing checks!)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Now that variable \"b\" has been created, try and re-run the cell that gave an error previously. It should work, because now \"b\" exists! So you can see how ordering cells is important. It is also possible to use this to create small tests within a notebook, by changing some variable at key points between larger blocks of code."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Managing files\n",
+ "\n",
+ "JupyterLab allows loading and saving files in the file explorer. Let's explore this capability.\n",
+ "\n",
+ "First we will create a random array of numbers and save them to a file. We will then read that variable back into memory and compare results."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# We will do this with the numpy package:\n",
+ "import numpy as np\n",
+ "\n",
+ "c = np.random.rand(100) # Create 100 random values and store them in variable \"c\"\n",
+ "np.savetxt(\"array_c.txt\", c) # Write the array to a file named \"array_c.txt\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "If you look in your workspace, you will see a new file named \"array_c.txt\". All files you generate will be written to the folder in which your notebook is running from.\n",
+ "\n",
+ "Now let's read it back in and verify that the values are the same. We can do this by taking the sum of the absolute differences between each element. If the sum is 0, that means we have succeeded:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "d = np.loadtxt(\"array_c.txt\")\n",
+ "print(sum(abs(c - d)))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "As you can see, files can be accessed easily by simply refering to them by their name if they are in the same folder as the notebook. If they aren't you also need to specify the folder path. Example \"writable-workspace/array_c.txt\". This is also true for all files, even those you upload yourself. You can also access data that can be found online on an accessible server using the URL, but we will get to that in a later notebook."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## IMPORTANT: Multiple noteooks running concurrently\n",
+ "\n",
+ "Notebooks are independent instances and do not communicate with one another. This means that if you load a package or a variable in memory in one notebook, the information will not be available in your other notebooks. This means you would need to import the data in the different notebooks. This will have the drawback of consuming more memory on the server, which can slow down computations for everyone. Therefore, we ask that you kindly close and shut down the notebooks once you are done with them. This can be done by right-clicking the notebook in the file explorer and selecting \"Shut Down Kernel\". This will close the instance and free all memory the notebook was taking up. Thanks!"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Important closing remarks\n",
+ "\n",
+ "JupyerLab environments make using codes easy and repeatable, without having to worry too much about packages, data access and other such elements that can be difficult to work with. However, there are some drawbacks:\n",
+ "\n",
+ "- You are running codes on a remote server, so it might be slower than on a high-performance local computer;\n",
+ "- You might require more resources than are available on the remote server;\n",
+ "- You might want to implement major changes that are not compatible with the Python packages available in the PAVICS-Hydro environment.\n",
+ "\n",
+ "To add packages, you can simply add a cell and \"! pip install **package**\" as required, which will add it to your local server. It will need to be re-added every time you close and re-spawn your server. You can also use the Jupyter conda plugin to install via conda (Settings --> Conda Packages Manager).\n",
+ " \n",
+ "Otherwise, you can always install the PAVICS-Hydro environment on your local computer following the instructions found [here] (https://pavics-sdi.readthedocs.io/projects/raven/en/latest/index.html). Note that these instructions are for more advanced python users / developers.\n",
+ " \n",
+ "In the next notebooks, we will start using your JupyterLab instance to start doing hydrological and hydroclimatological science!"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3 (ipykernel)",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.10.9"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
}
diff --git a/docs/notebooks/01_Getting_watershed_boundaries.ipynb b/docs/notebooks/01_Getting_watershed_boundaries.ipynb
index 96eb76ff..81fdd2d7 100644
--- a/docs/notebooks/01_Getting_watershed_boundaries.ipynb
+++ b/docs/notebooks/01_Getting_watershed_boundaries.ipynb
@@ -1,303 +1,303 @@
{
- "cells": [
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "# 01 - Getting watershed boundaries"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Region Selection and Map Preview with Ipyleaflet\n",
- "In this notebook, you will extract a selected watershed from the HydroSHEDS database (see the reference manual for more information on HydroSHEDS). A GeoJSON with the watershed boundaries will be available for download and usable for other tasks such as extracting meteorological data covered in the next notebooks."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "# Import the necessary libraries to format, send, and parse our returned results\n",
- "import os\n",
- "\n",
- "import birdy\n",
- "import geopandas as gpd\n",
- "import ipyleaflet\n",
- "import ipywidgets"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "If you are running this locally (and not on the PAVICS-Hydro server), and your `notebook` is version prior to `5.3`, you might need to run this command `jupyter nbextension enable --py --sys-prefix ipyleaflet`. For more information see https://ipyleaflet.readthedocs.io/en/latest/installation.html.\n",
- "\n",
- "This next box is all boilerplate, you do not need to understand it or play with it. Simply run it! Many such code snippets are provided throughout the notebooks to make your life easier. You can then modify some options to taylor the code to your needs."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "scrolled": true
- },
- "outputs": [],
- "source": [
- "# Create WPS instances# Set environment variable WPS_URL to \"http://localhost:9099\" to run on the default local server\n",
- "pavics_url = \"https://pavics.ouranos.ca\"\n",
- "raven_url = os.environ.get(\"WPS_URL\", f\"{pavics_url}/twitcher/ows/proxy/raven/wps\")\n",
- "\n",
- "raven = birdy.WPSClient(raven_url)\n",
- "\n",
- "# Build an interactive map with ipyleaflet\n",
- "initial_lat_lon = (48.63, -74.71)\n",
- "\n",
- "leaflet_map = ipyleaflet.Map(\n",
- " center=initial_lat_lon,\n",
- " basemap=ipyleaflet.basemaps.OpenTopoMap,\n",
- ")\n",
- "\n",
- "# Add a custom zoom slider\n",
- "zoom_slider = ipywidgets.IntSlider(description=\"Zoom level:\", min=1, max=10, value=6)\n",
- "ipywidgets.jslink((zoom_slider, \"value\"), (leaflet_map, \"zoom\"))\n",
- "widget_control1 = ipyleaflet.WidgetControl(widget=zoom_slider, position=\"topright\")\n",
- "leaflet_map.add_control(widget_control1)\n",
- "\n",
- "# Add a marker to the map\n",
- "marker = ipyleaflet.Marker(location=initial_lat_lon, draggable=True)\n",
- "leaflet_map.add_layer(marker)\n",
- "\n",
- "# Add an overlay widget\n",
- "html = ipywidgets.HTML(\"\"\"Hover over a feature!\"\"\")\n",
- "html.layout.margin = \"0px 10px 10px 10px\"\n",
- "\n",
- "control = ipyleaflet.WidgetControl(widget=html, position=\"bottomleft\")\n",
- "leaflet_map.add_control(control)\n",
- "\n",
- "\n",
- "def update_html(feature, **kwargs):\n",
- " html.value = \"\"\"\n",
- "
USGS HydroBASINS
\n",
- "
ID: {}
\n",
- "
Upstream Area: {} sq. km.
\n",
- "
Sub-basin Area: {} sq. km.
\n",
- " \"\"\".format(\n",
- " feature[\"properties\"][\"id\"],\n",
- " feature[\"properties\"][\"UP_AREA\"], #\n",
- " feature[\"properties\"][\"SUB_AREA\"],\n",
- " )"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Using the map to select the outlet of the watershed\n",
- "When using the \"leaflet_map\" command, an interative map will be displayed.\n",
- "\n",
- "Note that a blue marker will be displayed in the middle of the map, which can be dragged by interacting directly with it. Try dragging and placing the marker at the mouth of a river, over a large lake such as Lac Saint-Jean (next to Alma, east of the initial marker position), or anywhere else within North America. This coordinate will be used to find and extract the closest watershed outlet from the Hydrosheds database (see the reference manual for more info on Hydrosheds). The watershed ID and area will be displayed at the bottom left corner of the map.\n",
- "\n",
- "The user can zoom in and out on the map either by:\n",
- "* Using the Zoom level on the top right corner;\n",
- "* Using the + / - icons on the top left corner;\n",
- "* Double-clicking on the map on the area to zoom in."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "# Load the map in the notebook\n",
- "leaflet_map"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "# Display the lat/lon coordinates of the marker location.\n",
- "user_lonlat = list(reversed(marker.location))\n",
- "print(user_lonlat)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "# Get the shape of the watershed contributing to flow at the selected location.\n",
- "resp = raven.hydrobasins_select(location=str(user_lonlat), aggregate_upstream=True)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "**Before continuing, wait for the process above to finish**\n",
- "\n",
- "This can be monitored when the \"[*]:\" on the left of the cell is replaced with a number."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "# Extract the URL of the resulting GeoJSON feature\n",
- "feat = resp.get(asobj=False).feature\n",
- "print(\n",
- " \"This is the geoJSON file that can be used as the watershed contour in other toolboxes:\"\n",
- ")\n",
- "print(\"\")\n",
- "print(feat)\n",
- "print(\"\")"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## BEFORE CONTINUING:\n",
- "\n",
- "- If you are working in the writable-workspace, you will want to download the .geojson file at the link above and deposit it into your workspace on the left of your screen.\n",
- "- If you are running this in the default workspace after logging in, the workspace is read-only so we will provide files for you, and you can ignore this file for the time being."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "# Print the properties from the extracted watershed\n",
- "gdf = gpd.read_file(feat)\n",
- "gdf"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Now we will add the extracted watershed to the map above!\n",
- "\n",
- "Scroll back up after executing the next cell to see the watershed displayed in blue on the map. You may reextract another watershed by moving restarting the kernel or running all the cells from the beginning to reload the map."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "# Adding the GeoJSON to the map above.\n",
- "user_geojson = ipyleaflet.GeoData(\n",
- " geo_dataframe=gdf,\n",
- " style={\n",
- " \"color\": \"blue\",\n",
- " \"opacity\": 1,\n",
- " \"weight\": 1.9,\n",
- " \"fillOpacity\": 0.5,\n",
- " },\n",
- " hover_style={\"fillColor\": \"#b08a3e\", \"fillOpacity\": 0.9},\n",
- ")\n",
- "\n",
- "leaflet_map.add_layer(user_geojson)\n",
- "user_geojson.on_hover(update_html)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Congratulations!\n",
- "\n",
- "You have successfully created a watershed boundary file that can be used in the following notebooks. If you already have the boundaries of your watershed of interest, then you can upload them to your workspace instead of using this notebook to generate them. a geojson file is accepted, as is a shapefile. For shapefiles, provide a zip containing all the shape data (.shp, .shx, .dbf, .prj, etc.).\n"
- ]
- }
- ],
- "metadata": {
- "kernelspec": {
- "display_name": "Python 3 (ipykernel)",
- "language": "python",
- "name": "python3"
- },
- "language_info": {
- "codemirror_mode": {
- "name": "ipython",
- "version": 3
- },
- "file_extension": ".py",
- "mimetype": "text/x-python",
- "name": "python",
- "nbconvert_exporter": "python",
- "pygments_lexer": "ipython3",
- "version": "3.10.9"
- },
- "nbdime-conflicts": {
- "local_diff": [
+ "cells": [
{
- "diff": [
- {
- "diff": [
- {
- "key": 0,
- "op": "addrange",
- "valuelist": [
- "3.6.7"
- ]
- },
- {
- "key": 0,
- "length": 1,
- "op": "removerange"
- }
- ],
- "key": "version",
- "op": "patch"
- }
- ],
- "key": "language_info",
- "op": "patch"
- }
- ],
- "remote_diff": [
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# 01 - Getting watershed boundaries"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Region Selection and Map Preview with Ipyleaflet\n",
+ "In this notebook, you will extract a selected watershed from the HydroSHEDS database (see the reference manual for more information on HydroSHEDS). A GeoJSON with the watershed boundaries will be available for download and usable for other tasks such as extracting meteorological data covered in the next notebooks."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Import the necessary libraries to format, send, and parse our returned results\n",
+ "import os\n",
+ "\n",
+ "import birdy\n",
+ "import geopandas as gpd\n",
+ "import ipyleaflet\n",
+ "import ipywidgets"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "If you are running this locally (and not on the PAVICS-Hydro server), and your `notebook` is version prior to `5.3`, you might need to run this command `jupyter nbextension enable --py --sys-prefix ipyleaflet`. For more information see https://ipyleaflet.readthedocs.io/en/latest/installation.html.\n",
+ "\n",
+ "This next box is all boilerplate, you do not need to understand it or play with it. Simply run it! Many such code snippets are provided throughout the notebooks to make your life easier. You can then modify some options to taylor the code to your needs."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "scrolled": true
+ },
+ "outputs": [],
+ "source": [
+ "# Create WPS instances# Set environment variable WPS_URL to \"http://localhost:9099\" to run on the default local server\n",
+ "pavics_url = \"https://pavics.ouranos.ca\"\n",
+ "raven_url = os.environ.get(\"WPS_URL\", f\"{pavics_url}/twitcher/ows/proxy/raven/wps\")\n",
+ "\n",
+ "raven = birdy.WPSClient(raven_url)\n",
+ "\n",
+ "# Build an interactive map with ipyleaflet\n",
+ "initial_lat_lon = (48.63, -74.71)\n",
+ "\n",
+ "leaflet_map = ipyleaflet.Map(\n",
+ " center=initial_lat_lon,\n",
+ " basemap=ipyleaflet.basemaps.OpenTopoMap,\n",
+ ")\n",
+ "\n",
+ "# Add a custom zoom slider\n",
+ "zoom_slider = ipywidgets.IntSlider(description=\"Zoom level:\", min=1, max=10, value=6)\n",
+ "ipywidgets.jslink((zoom_slider, \"value\"), (leaflet_map, \"zoom\"))\n",
+ "widget_control1 = ipyleaflet.WidgetControl(widget=zoom_slider, position=\"topright\")\n",
+ "leaflet_map.add_control(widget_control1)\n",
+ "\n",
+ "# Add a marker to the map\n",
+ "marker = ipyleaflet.Marker(location=initial_lat_lon, draggable=True)\n",
+ "leaflet_map.add_layer(marker)\n",
+ "\n",
+ "# Add an overlay widget\n",
+ "html = ipywidgets.HTML(\"\"\"Hover over a feature!\"\"\")\n",
+ "html.layout.margin = \"0px 10px 10px 10px\"\n",
+ "\n",
+ "control = ipyleaflet.WidgetControl(widget=html, position=\"bottomleft\")\n",
+ "leaflet_map.add_control(control)\n",
+ "\n",
+ "\n",
+ "def update_html(feature, **kwargs):\n",
+ " html.value = \"\"\"\n",
+ "
USGS HydroBASINS
\n",
+ "
ID: {}
\n",
+ "
Upstream Area: {} sq. km.
\n",
+ "
Sub-basin Area: {} sq. km.
\n",
+ " \"\"\".format(\n",
+ " feature[\"properties\"][\"id\"],\n",
+ " feature[\"properties\"][\"UP_AREA\"], #\n",
+ " feature[\"properties\"][\"SUB_AREA\"],\n",
+ " )"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Using the map to select the outlet of the watershed\n",
+ "When using the \"leaflet_map\" command, an interative map will be displayed.\n",
+ "\n",
+ "Note that a blue marker will be displayed in the middle of the map, which can be dragged by interacting directly with it. Try dragging and placing the marker at the mouth of a river, over a large lake such as Lac Saint-Jean (next to Alma, east of the initial marker position), or anywhere else within North America. This coordinate will be used to find and extract the closest watershed outlet from the Hydrosheds database (see the reference manual for more info on Hydrosheds). The watershed ID and area will be displayed at the bottom left corner of the map.\n",
+ "\n",
+ "The user can zoom in and out on the map either by:\n",
+ "* Using the Zoom level on the top right corner;\n",
+ "* Using the + / - icons on the top left corner;\n",
+ "* Double-clicking on the map on the area to zoom in."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Load the map in the notebook\n",
+ "leaflet_map"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Display the lat/lon coordinates of the marker location.\n",
+ "user_lonlat = list(reversed(marker.location))\n",
+ "print(user_lonlat)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Get the shape of the watershed contributing to flow at the selected location.\n",
+ "resp = raven.hydrobasins_select(location=str(user_lonlat), aggregate_upstream=True)"
+ ]
+ },
{
- "diff": [
- {
- "diff": [
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "**Before continuing, wait for the process above to finish**\n",
+ "\n",
+ "This can be monitored when the \"[*]:\" on the left of the cell is replaced with a number."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Extract the URL of the resulting GeoJSON feature\n",
+ "feat = resp.get(asobj=False).feature\n",
+ "print(\n",
+ " \"This is the geoJSON file that can be used as the watershed contour in other toolboxes:\"\n",
+ ")\n",
+ "print(\"\")\n",
+ "print(feat)\n",
+ "print(\"\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## BEFORE CONTINUING:\n",
+ "\n",
+ "- If you are working in the writable-workspace, you will want to download the .geojson file at the link above and deposit it into your workspace on the left of your screen.\n",
+ "- If you are running this in the default workspace after logging in, the workspace is read-only so we will provide files for you, and you can ignore this file for the time being."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Print the properties from the extracted watershed\n",
+ "gdf = gpd.read_file(feat)\n",
+ "gdf"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Now we will add the extracted watershed to the map above!\n",
+ "\n",
+ "Scroll back up after executing the next cell to see the watershed displayed in blue on the map. You may reextract another watershed by moving restarting the kernel or running all the cells from the beginning to reload the map."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Adding the GeoJSON to the map above.\n",
+ "user_geojson = ipyleaflet.GeoData(\n",
+ " geo_dataframe=gdf,\n",
+ " style={\n",
+ " \"color\": \"blue\",\n",
+ " \"opacity\": 1,\n",
+ " \"weight\": 1.9,\n",
+ " \"fillOpacity\": 0.5,\n",
+ " },\n",
+ " hover_style={\"fillColor\": \"#b08a3e\", \"fillOpacity\": 0.9},\n",
+ ")\n",
+ "\n",
+ "leaflet_map.add_layer(user_geojson)\n",
+ "user_geojson.on_hover(update_html)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Congratulations!\n",
+ "\n",
+ "You have successfully created a watershed boundary file that can be used in the following notebooks. If you already have the boundaries of your watershed of interest, then you can upload them to your workspace instead of using this notebook to generate them. a geojson file is accepted, as is a shapefile. For shapefiles, provide a zip containing all the shape data (.shp, .shx, .dbf, .prj, etc.).\n"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3 (ipykernel)",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.10.9"
+ },
+ "nbdime-conflicts": {
+ "local_diff": [
{
- "key": 0,
- "op": "addrange",
- "valuelist": [
- "3.6.10"
- ]
- },
+ "diff": [
+ {
+ "diff": [
+ {
+ "key": 0,
+ "op": "addrange",
+ "valuelist": [
+ "3.6.7"
+ ]
+ },
+ {
+ "key": 0,
+ "length": 1,
+ "op": "removerange"
+ }
+ ],
+ "key": "version",
+ "op": "patch"
+ }
+ ],
+ "key": "language_info",
+ "op": "patch"
+ }
+ ],
+ "remote_diff": [
{
- "key": 0,
- "length": 1,
- "op": "removerange"
+ "diff": [
+ {
+ "diff": [
+ {
+ "key": 0,
+ "op": "addrange",
+ "valuelist": [
+ "3.6.10"
+ ]
+ },
+ {
+ "key": 0,
+ "length": 1,
+ "op": "removerange"
+ }
+ ],
+ "key": "version",
+ "op": "patch"
+ }
+ ],
+ "key": "language_info",
+ "op": "patch"
}
- ],
- "key": "version",
- "op": "patch"
- }
- ],
- "key": "language_info",
- "op": "patch"
+ ]
}
- ]
- }
- },
- "nbformat": 4,
- "nbformat_minor": 4
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
}
diff --git a/docs/notebooks/02_Extract_geographical_watershed_properties.ipynb b/docs/notebooks/02_Extract_geographical_watershed_properties.ipynb
index 3fde2888..4f7858bd 100644
--- a/docs/notebooks/02_Extract_geographical_watershed_properties.ipynb
+++ b/docs/notebooks/02_Extract_geographical_watershed_properties.ipynb
@@ -1,777 +1,777 @@
{
- "cells": [
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "# 02 - Extract geographical watershed properties"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Extract geographical watershed properties automatically using PAVICS-Hydro's geospatial toolbox\n",
- "\n",
- "Hydrological models typically need geographical information about watersheds being simulated: latitude and longitude, area, mean altitude, land-use, etc. Raven is no exception. This notebook shows how to obtain this information using remote services that are made available for users in PAVICS-Hydro. These services connect to a digital elevation model (DEM) and a land-use data set to extract relevant information.\n",
- "\n",
- "The DEM used in the following is the [EarthEnv-DEM90](https://www.earthenv.org/DEM), while the land-use dataset is the [North American Land Change Monitoring System](http://www.cec.org/north-american-environmental-atlas/land-cover-30m-2015-landsat-and-rapideye/). Other data sources could be used, given their availability through the Web Coverage Service (WCS) protocol.\n",
- "\n",
- "Since these computations happen on a specific Geoserver hosted on PAVICS, we need to establish a connection to that service. While the steps are a bit more complex, the good news is that you only need to change a few items in this notebook to tailor results to your needs. For example, this first code snippet is boilerplate and should not be changed.\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 1,
- "metadata": {
- "tags": []
- },
- "outputs": [],
- "source": [
- "# We need to import a few packages required to do the work\n",
- "import os\n",
- "\n",
- "os.environ[\"USE_PYGEOS\"] = \"0\"\n",
- "import geopandas as gpd\n",
- "import matplotlib as mpl\n",
- "import matplotlib.pyplot as plt\n",
- "import numpy as np\n",
- "import rasterio\n",
- "import rioxarray as rio\n",
- "from birdy import WPSClient\n",
- "\n",
- "from ravenpy.utilities.testdata import get_file\n",
- "\n",
- "# This is the URL of the Geoserver that will perform the computations for us.\n",
- "url = os.environ.get(\n",
- " \"WPS_URL\", \"https://pavics.ouranos.ca/twitcher/ows/proxy/raven/wps\"\n",
- ")\n",
- "\n",
- "# Connect to the PAVICS-Hydro Raven WPS server\n",
- "wps = WPSClient(url)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "In the previous notebook, we extracted the boundaries of a watershed, which were saved in the \"input.geojson\" file. We also downloaded the file and re-uploaded it to the workspace, so it should be available now to this workbook, too!\n",
- "\n",
- "We can now plot the outline of the watershed by loading it into `GeoPandas`."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 2,
- "metadata": {
- "tags": []
- },
- "outputs": [
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# 02 - Extract geographical watershed properties"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Extract geographical watershed properties automatically using PAVICS-Hydro's geospatial toolbox\n",
+ "\n",
+ "Hydrological models typically need geographical information about watersheds being simulated: latitude and longitude, area, mean altitude, land-use, etc. Raven is no exception. This notebook shows how to obtain this information using remote services that are made available for users in PAVICS-Hydro. These services connect to a digital elevation model (DEM) and a land-use data set to extract relevant information.\n",
+ "\n",
+ "The DEM used in the following is the [EarthEnv-DEM90](https://www.earthenv.org/DEM), while the land-use dataset is the [North American Land Change Monitoring System](http://www.cec.org/north-american-environmental-atlas/land-cover-30m-2015-landsat-and-rapideye/). Other data sources could be used, given their availability through the Web Coverage Service (WCS) protocol.\n",
+ "\n",
+ "Since these computations happen on a specific Geoserver hosted on PAVICS, we need to establish a connection to that service. While the steps are a bit more complex, the good news is that you only need to change a few items in this notebook to tailor results to your needs. For example, this first code snippet is boilerplate and should not be changed.\n"
+ ]
+ },
{
- "data": {
- "text/html": [
- "
\n",
- "\n",
- "
\n",
- " \n",
- "
\n",
- "
\n",
- "
COAST
\n",
- "
DIST_MAIN
\n",
- "
DIST_SINK
\n",
- "
ENDO
\n",
- "
HYBAS_ID
\n",
- "
LAKE
\n",
- "
NEXT_DOWN
\n",
- "
NEXT_SINK
\n",
- "
ORDER
\n",
- "
PFAF_ID
\n",
- "
SIDE
\n",
- "
SORT
\n",
- "
SUB_AREA
\n",
- "
UP_AREA
\n",
- "
id
\n",
- "
geometry
\n",
- "
\n",
- " \n",
- " \n",
- "
\n",
- "
0
\n",
- "
0
\n",
- "
141.3
\n",
- "
141.3
\n",
- "
0
\n",
- "
7120319552
\n",
- "
0
\n",
- "
7120319551
\n",
- "
7120034330
\n",
- "
1
\n",
- "
724083033100
\n",
- "
R
\n",
- "
96044
\n",
- "
56.2
\n",
- "
73072.4
\n",
- "
USGS_HydroBASINS_lake_na_lev12.96044
\n",
- "
POLYGON ((-71.40830 48.44170, -71.42300 48.442...
\n",
- "
\n",
- " \n",
- "
\n",
- "
"
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "# We need to import a few packages required to do the work\n",
+ "import os\n",
+ "\n",
+ "os.environ[\"USE_PYGEOS\"] = \"0\"\n",
+ "import geopandas as gpd\n",
+ "import matplotlib as mpl\n",
+ "import matplotlib.pyplot as plt\n",
+ "import numpy as np\n",
+ "import rasterio\n",
+ "import rioxarray as rio\n",
+ "from birdy import WPSClient\n",
+ "\n",
+ "from ravenpy.utilities.testdata import get_file\n",
+ "\n",
+ "# This is the URL of the Geoserver that will perform the computations for us.\n",
+ "url = os.environ.get(\n",
+ " \"WPS_URL\", \"https://pavics.ouranos.ca/twitcher/ows/proxy/raven/wps\"\n",
+ ")\n",
+ "\n",
+ "# Connect to the PAVICS-Hydro Raven WPS server\n",
+ "wps = WPSClient(url)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "In the previous notebook, we extracted the boundaries of a watershed, which were saved in the \"input.geojson\" file. We also downloaded the file and re-uploaded it to the workspace, so it should be available now to this workbook, too!\n",
+ "\n",
+ "We can now plot the outline of the watershed by loading it into `GeoPandas`."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "
"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
],
- "text/plain": [
- " COAST DIST_MAIN DIST_SINK ENDO HYBAS_ID LAKE NEXT_DOWN \\\n",
- "0 0 141.3 141.3 0 7120319552 0 7120319551 \n",
- "\n",
- " NEXT_SINK ORDER PFAF_ID SIDE SORT SUB_AREA UP_AREA \\\n",
- "0 7120034330 1 724083033100 R 96044 56.2 73072.4 \n",
- "\n",
- " id \\\n",
- "0 USGS_HydroBASINS_lake_na_lev12.96044 \n",
- "\n",
- " geometry \n",
- "0 POLYGON ((-71.40830 48.44170, -71.42300 48.442... "
+ "source": [
+ "# The contour can be generated using notebook \"01_Delineating watersheds, where it would be placed\n",
+ "# in the same folder as the notebooks and available in your workspace. The contour could then be accessed\n",
+ "# easily by defining it as follows:\n",
+ "\"\"\"\n",
+ "feature_url = \"input.geojson\"\n",
+ "\"\"\"\n",
+ "# However, to keep things tidy, we have also prepared a version that can be accessed easily for\n",
+ "# demonstration purposes:\n",
+ "feature_url = get_file(\"notebook_inputs/input.geojson\")\n",
+ "df = gpd.read_file(feature_url)\n",
+ "display(df)\n",
+ "df.plot()"
]
- },
- "metadata": {},
- "output_type": "display_data"
},
{
- "data": {
- "text/plain": [
- ""
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Generic watershed properties\n",
+ "\n",
+ "Now that we have delineated a watershed, lets find the zonal statistics and other properties using the `shape_properties` process. This process requires a `shape` argument defining the watershed contour, the exterior polygon. The polygon can be given either as a link to a geometry file (e.g. a geojson file such as `feature_url`), or as data embeded in a string. For example, if variable `feature` is a `GeoPandas` geometry, `json.dumps(feature)` can be used to convert it to a string and pass it as the `shape` argument.\n",
+ "\n",
+ "Typically, we expect users will simply upload a shapefile and use this code to perform the extraction on the region of interest."
]
- },
- "execution_count": 2,
- "metadata": {},
- "output_type": "execute_result"
},
{
- "data": {
- "image/png": "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",
- "text/plain": [
- "
"
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "shape_resp = wps.shape_properties(shape=feature_url)"
]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "# The contour can be generated using notebook \"01_Delineating watersheds, where it would be placed\n",
- "# in the same folder as the notebooks and available in your workspace. The contour could then be accessed\n",
- "# easily by defining it as follows:\n",
- "\"\"\"\n",
- "feature_url = \"input.geojson\"\n",
- "\"\"\"\n",
- "# However, to keep things tidy, we have also prepared a version that can be accessed easily for\n",
- "# demonstration purposes:\n",
- "feature_url = get_file(\"notebook_inputs/input.geojson\")\n",
- "df = gpd.read_file(feature_url)\n",
- "display(df)\n",
- "df.plot()"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Generic watershed properties\n",
- "\n",
- "Now that we have delineated a watershed, lets find the zonal statistics and other properties using the `shape_properties` process. This process requires a `shape` argument defining the watershed contour, the exterior polygon. The polygon can be given either as a link to a geometry file (e.g. a geojson file such as `feature_url`), or as data embeded in a string. For example, if variable `feature` is a `GeoPandas` geometry, `json.dumps(feature)` can be used to convert it to a string and pass it as the `shape` argument.\n",
- "\n",
- "Typically, we expect users will simply upload a shapefile and use this code to perform the extraction on the region of interest."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 3,
- "metadata": {
- "tags": []
- },
- "outputs": [],
- "source": [
- "shape_resp = wps.shape_properties(shape=feature_url)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Once the process has completed, we extract the data from the response, as follows. Note that you do not need to change anything here. The code will work and return the desired results."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 4,
- "metadata": {
- "tags": []
- },
- "outputs": [
+ },
{
- "data": {
- "text/plain": [
- "{'id': 'USGS_HydroBASINS_lake_na_lev12.96044',\n",
- " 'COAST': 0,\n",
- " 'DIST_MAIN': 141.3,\n",
- " 'DIST_SINK': 141.3,\n",
- " 'ENDO': 0,\n",
- " 'HYBAS_ID': 7120319552,\n",
- " 'LAKE': 0,\n",
- " 'NEXT_DOWN': 7120319551,\n",
- " 'NEXT_SINK': 7120034330,\n",
- " 'ORDER': 1,\n",
- " 'PFAF_ID': 724083033100,\n",
- " 'SIDE': 'R',\n",
- " 'SORT': 96044,\n",
- " 'SUB_AREA': 56.2,\n",
- " 'UP_AREA': 73072.4,\n",
- " 'area': 55919453.46888515,\n",
- " 'centroid': [-71.41715786806483, 48.47239495054429],\n",
- " 'perimeter': 45133.04400352313,\n",
- " 'gravelius': 1.7025827715870572}"
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Once the process has completed, we extract the data from the response, as follows. Note that you do not need to change anything here. The code will work and return the desired results."
]
- },
- "metadata": {},
- "output_type": "display_data"
},
{
- "data": {
- "text/plain": [
- "{'area': 55.91945346888515,\n",
- " 'longitude': -71.41715786806483,\n",
- " 'latitude': 48.47239495054429,\n",
- " 'gravelius': 1.7025827715870572,\n",
- " 'perimeter': 45133.04400352313}"
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "{'id': 'USGS_HydroBASINS_lake_na_lev12.96044',\n",
+ " 'COAST': 0,\n",
+ " 'DIST_MAIN': 141.3,\n",
+ " 'DIST_SINK': 141.3,\n",
+ " 'ENDO': 0,\n",
+ " 'HYBAS_ID': 7120319552,\n",
+ " 'LAKE': 0,\n",
+ " 'NEXT_DOWN': 7120319551,\n",
+ " 'NEXT_SINK': 7120034330,\n",
+ " 'ORDER': 1,\n",
+ " 'PFAF_ID': 724083033100,\n",
+ " 'SIDE': 'R',\n",
+ " 'SORT': 96044,\n",
+ " 'SUB_AREA': 56.2,\n",
+ " 'UP_AREA': 73072.4,\n",
+ " 'area': 55919453.46888515,\n",
+ " 'centroid': [-71.41715786806483, 48.47239495054429],\n",
+ " 'perimeter': 45133.04400352313,\n",
+ " 'gravelius': 1.7025827715870572}"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/plain": [
+ "{'area': 55.91945346888515,\n",
+ " 'longitude': -71.41715786806483,\n",
+ " 'latitude': 48.47239495054429,\n",
+ " 'gravelius': 1.7025827715870572,\n",
+ " 'perimeter': 45133.04400352313}"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "(properties,) = shape_resp.get(asobj=True)\n",
+ "prop = properties[0]\n",
+ "display(prop)\n",
+ "\n",
+ "area = prop[\"area\"] / 1000000.0\n",
+ "longitude = prop[\"centroid\"][0]\n",
+ "latitude = prop[\"centroid\"][1]\n",
+ "gravelius = prop[\"gravelius\"]\n",
+ "perimeter = prop[\"perimeter\"]\n",
+ "\n",
+ "shape_info = {\n",
+ " \"area\": area,\n",
+ " \"longitude\": longitude,\n",
+ " \"latitude\": latitude,\n",
+ " \"gravelius\": gravelius,\n",
+ " \"perimeter\": perimeter,\n",
+ "}\n",
+ "display(shape_info)"
]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "(properties,) = shape_resp.get(asobj=True)\n",
- "prop = properties[0]\n",
- "display(prop)\n",
- "\n",
- "area = prop[\"area\"] / 1000000.0\n",
- "longitude = prop[\"centroid\"][0]\n",
- "latitude = prop[\"centroid\"][1]\n",
- "gravelius = prop[\"gravelius\"]\n",
- "perimeter = prop[\"perimeter\"]\n",
- "\n",
- "shape_info = {\n",
- " \"area\": area,\n",
- " \"longitude\": longitude,\n",
- " \"latitude\": latitude,\n",
- " \"gravelius\": gravelius,\n",
- " \"perimeter\": perimeter,\n",
- "}\n",
- "display(shape_info)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Note that these properties are a mix of the properties of the original file where the shape is stored, and properties computed by the process (area, centroid, perimeter and gravelius). Note also that the computed area is in m², while the \"SUB_AREA\" property is in km², and that there are slight differences between the two values due to the precision of HydroSHEDS and the delineation algorithm.\n",
- "\n",
- "## Land-use information\n",
- "\n",
- "Now we extract the land-use properties of the watershed using the `nalcms_zonal_stats` process. As mentioned, it uses a dataset from the [North American Land Change Monitoring System](http://www.cec.org/north-american-environmental-atlas), and retrieve properties over the given region. \n",
- "\n",
- "With the `nalcms_zonal_stats_raster` process, we also return the raster grid itself. Note that this is a high-resolution dataset, and to avoid taxing the system's resource, requests are limited to areas under 100,000km². "
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 5,
- "metadata": {
- "tags": []
- },
- "outputs": [],
- "source": [
- "stats_resp = wps.nalcms_zonal_stats_raster(\n",
- " shape=feature_url, select_all_touching=True, band=1, simple_categories=True\n",
- ")"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Here we will get the raster data and show it as a grid. Here the `birdy` client automatically transforms the returned `geotiff` file to a `DataArray` using either `gdal`, `rasterio`, or `rioxarray`, depending on what libraries are available in our runtime environment. Note that `pymetalink` needs to be installed for this to work. "
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 6,
- "metadata": {
- "tags": []
- },
- "outputs": [
+ },
{
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Downloading to /tmp/tmp8gyvvqhc/subset_1.tiff.\n"
- ]
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Note that these properties are a mix of the properties of the original file where the shape is stored, and properties computed by the process (area, centroid, perimeter and gravelius). Note also that the computed area is in m², while the \"SUB_AREA\" property is in km², and that there are slight differences between the two values due to the precision of HydroSHEDS and the delineation algorithm.\n",
+ "\n",
+ "## Land-use information\n",
+ "\n",
+ "Now we extract the land-use properties of the watershed using the `nalcms_zonal_stats` process. As mentioned, it uses a dataset from the [North American Land Change Monitoring System](http://www.cec.org/north-american-environmental-atlas), and retrieve properties over the given region. \n",
+ "\n",
+ "With the `nalcms_zonal_stats_raster` process, we also return the raster grid itself. Note that this is a high-resolution dataset, and to avoid taxing the system's resource, requests are limited to areas under 100,000km². "
+ ]
},
{
- "data": {
- "text/plain": [
- ""
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "stats_resp = wps.nalcms_zonal_stats_raster(\n",
+ " shape=feature_url, select_all_touching=True, band=1, simple_categories=True\n",
+ ")"
]
- },
- "execution_count": 6,
- "metadata": {},
- "output_type": "execute_result"
},
{
- "data": {
- "image/png": "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bce6325+Tkl4cGnMAZIk4Re/+AVefvllvPnmm+jdu7flOcOHD8emTZtU+yoqKjBkyBC0a9cOl19+OT788EPs27dP2SZPnozRo0dj3759yM/PBwB8++23uOQS9dvl9Xptu+VGou9G7ezbtw/du3cHAKSmpmLw4MFB9WzatAkjRoyI236H2nY89P26664LeqaGDBmCW2+9Ffv27bP15RrL+z5y5Mgg9+Wqqir07NnTsg+x7nu8fk5HjhyJTz/9VNWPqqoqdO/eHampqWF/TmPZ91DbjnW/3ficEpeIpCX2xca///u/Sz6fT9qyZYvKffbbb79Vytx///1SWVmZ8lp2s7zrrrukjz/+WHr66acN3edl9LzGZsyYIfXo0UNxy3355Zelrl27Svfdd19M+75gwQJp48aN0meffSa9//770k9+8hMpJSVF2r17t1JGdst9+umnpY8//liaN2+e1LFjR+nw4cNx3W87bcdr37U49UaJZd/feecdKSUlRXrkkUekTz75RFq9erXUoUMHadWqVXHf93j9nB49elTKyMiQfvGLX0gHDx6UXnvtNSk7O1v6/e9/r5QJ53Ma676H81mNZb+10GssNnAg5AAAutvKlSuVMjNmzJCKi4tV523ZskUaNGiQlJqaKvXq1Ut68sknTdvRGwjV19dLd955p3TppZdK6enpUp8+faQHH3xQamxsjGnf582bJ1166aVSamqq1K1bN6mkpETauXNnUPv/9V//JfXs2VNKTU2VfvCDH9h2a41lv+20Ha991+L0CzbWfX/11VeloqIiKS0tTbr88sulP//5zwnR93j9nEqSJO3cuVMaOnSolJaWJvXp00d65JFHpAsXLqjKhPo5jXXfw/msxvqei3AgFBs8ktRq4UUIIYQQkmTQRogQQgghSQsHQoQQQghJWjgQIoQQQkjSwoEQIYQQQpIWDoQIIYQQkrRwIEQIIYSQpIUDIUIIIYQkLRwIEUIIISGybds2TJo0CXl5efB4PFi3bp3jOiRJwuLFi9GvXz+kpaUhPz9fSTpMIg+TrhJCCCEh8s033+CKK67AT37yE/y///f/QqpDzkK/ePFiDBgwAHV1dfjqq69c7ikxgpGlCSGEEBfweDxYu3YtbrzxRmVfU1MTHnroIaxevRpnzpxBUVER/vCHP+Daa68FAFRWVmLgwIE4cOAACgoKYtPxJIdLY4SQmHDy5Enk5uaqlgB2796N1NRUVFRUxLBnhLjHT37yE+zYsQNr1qzBBx98gKlTp2LcuHH45JNPAACvvvoq+vTpg9deew29e/dGr1698G//9m/4+uuvY9zz5IGKECEkZmzYsAE33ngjdu7cicsvvxyDBg3ChAkTsHTp0lh3jRDHaBWhzz77DH379sUXX3yBvLw8pdz111+Pq6++GgsXLsTPf/5zPPPMM7jyyivxxz/+EX6/H3fddRc6deqEN998M0ZXklzQRogQEjNKS0sxa9Ys3HrrrbjqqquQnp6ORx99NNbdIsQV3nvvPUiShH79+qn2NzY2okuXLgCAQCCAxsZG/OUvf1HKPf300xg8eDAOHjzI5bIowIEQISSmLF68GEVFRfjrX/+Kd999F+np6bHuEiGuEAgE4PV6sXfvXni9XtWxjIwMAED37t2RkpKiGiwVFhYCAI4ePcqBUBTgQIgQElM+//xz1NTUIBAI4MiRIxg4cGCsu0SIKwwaNAh+vx8nTpzAD3/4Q90yI0eOxIULF/DZZ5/hsssuAwBUVVUBAHr27Bm1viYztBEihMSMpqYmXH311bjyyitx+eWXY8mSJfjwww+Rk5MT664RYouGhgZ8+umnAFoGPkuWLMHo0aPRuXNnXHrppbjtttuwY8cOPP744xg0aBC++uorvPnmmxgwYABKS0sRCARw1VVXISMjA0uXLkUgEMCcOXOQlZVFp4EowYEQISRm3HvvvXjxxRexf/9+ZGRkYPTo0cjMzMRrr70W664RYostW7Zg9OjRQftnzJiBZ555Bs3Nzfj973+Pv/zlLzh27Bi6dOmC4cOH43e/+x0GDBgAAKipqcEdd9yBiooKdOzYEePHj8fjjz+Ozp07R/tykhIOhAghMWHLli0YM2YM3nrrLYwaNQpAi03EwIEDsWjRIvz7v/97jHtICEkGOBAihBBCSNLCgIqEEEIISVo4ECKEEEJI0sKBECGEEEKSFg6ECCGEEJK0cCBECCGEkKSFAyFCCCGEJC0cCBFCCCEkaeFAiBBCCCFJCwdChBBCCElaOBAihBBCSNLCgRAhhBBCkhYOhAghhBCStPz/8q6TKPAI8bcAAAAASUVORK5CYII=",
- "text/plain": [
- "
"
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Here we will get the raster data and show it as a grid. Here the `birdy` client automatically transforms the returned `geotiff` file to a `DataArray` using either `gdal`, `rasterio`, or `rioxarray`, depending on what libraries are available in our runtime environment. Note that `pymetalink` needs to be installed for this to work. "
]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "features, statistics, raster = stats_resp.get(asobj=True)\n",
- "grid = raster[0]\n",
- "grid.plot()"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "From there, it's easy to calculate the ratio and percentages of each land-use component. This code should also be left as-is unless you really know what you are doing."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 7,
- "metadata": {
- "tags": []
- },
- "outputs": [
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Downloading to /tmp/tmp8gyvvqhc/subset_1.tiff.\n"
+ ]
+ },
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 6,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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bce6325+Tkl4cGnMAZIk4Re/+AVefvllvPnmm+jdu7flOcOHD8emTZtU+yoqKjBkyBC0a9cOl19+OT788EPs27dP2SZPnozRo0dj3759yM/PBwB8++23uOQS9dvl9Xptu+VGou9G7ezbtw/du3cHAKSmpmLw4MFB9WzatAkjRoyI236H2nY89P26664LeqaGDBmCW2+9Ffv27bP15RrL+z5y5Mgg9+Wqqir07NnTsg+x7nu8fk5HjhyJTz/9VNWPqqoqdO/eHampqWF/TmPZ91DbjnW/3ficEpeIpCX2xca///u/Sz6fT9qyZYvKffbbb79Vytx///1SWVmZ8lp2s7zrrrukjz/+WHr66acN3edl9LzGZsyYIfXo0UNxy3355Zelrl27Svfdd19M+75gwQJp48aN0meffSa9//770k9+8hMpJSVF2r17t1JGdst9+umnpY8//liaN2+e1LFjR+nw4cNx3W87bcdr37U49UaJZd/feecdKSUlRXrkkUekTz75RFq9erXUoUMHadWqVXHf93j9nB49elTKyMiQfvGLX0gHDx6UXnvtNSk7O1v6/e9/r5QJ53Ma676H81mNZb+10GssNnAg5AAAutvKlSuVMjNmzJCKi4tV523ZskUaNGiQlJqaKvXq1Ut68sknTdvRGwjV19dLd955p3TppZdK6enpUp8+faQHH3xQamxsjGnf582bJ1166aVSamqq1K1bN6mkpETauXNnUPv/9V//JfXs2VNKTU2VfvCDH9h2a41lv+20Ha991+L0CzbWfX/11VeloqIiKS0tTbr88sulP//5zwnR93j9nEqSJO3cuVMaOnSolJaWJvXp00d65JFHpAsXLqjKhPo5jXXfw/msxvqei3AgFBs8ktRq4UUIIYQQkmTQRogQQgghSQsHQoQQQghJWjgQIoQQQkjSwoEQIYQQQpIWDoQIIYQQkrRwIEQIIYSQpIUDIUIIIYQkLRwIEUIIISGybds2TJo0CXl5efB4PFi3bp3jOiRJwuLFi9GvXz+kpaUhPz9fSTpMIg+TrhJCCCEh8s033+CKK67AT37yE/y///f/QqpDzkK/ePFiDBgwAHV1dfjqq69c7ikxgpGlCSGEEBfweDxYu3YtbrzxRmVfU1MTHnroIaxevRpnzpxBUVER/vCHP+Daa68FAFRWVmLgwIE4cOAACgoKYtPxJIdLY4SQmHDy5Enk5uaqlgB2796N1NRUVFRUxLBnhLjHT37yE+zYsQNr1qzBBx98gKlTp2LcuHH45JNPAACvvvoq+vTpg9deew29e/dGr1698G//9m/4+uuvY9zz5IGKECEkZmzYsAE33ngjdu7cicsvvxyDBg3ChAkTsHTp0lh3jRDHaBWhzz77DH379sUXX3yBvLw8pdz111+Pq6++GgsXLsTPf/5zPPPMM7jyyivxxz/+EX6/H3fddRc6deqEN998M0ZXklzQRogQEjNKS0sxa9Ys3HrrrbjqqquQnp6ORx99NNbdIsQV3nvvPUiShH79+qn2NzY2okuXLgCAQCCAxsZG/OUvf1HKPf300xg8eDAOHjzI5bIowIEQISSmLF68GEVFRfjrX/+Kd999F+np6bHuEiGuEAgE4PV6sXfvXni9XtWxjIwMAED37t2RkpKiGiwVFhYCAI4ePcqBUBTgQIgQElM+//xz1NTUIBAI4MiRIxg4cGCsu0SIKwwaNAh+vx8nTpzAD3/4Q90yI0eOxIULF/DZZ5/hsssuAwBUVVUBAHr27Bm1viYztBEihMSMpqYmXH311bjyyitx+eWXY8mSJfjwww+Rk5MT664RYouGhgZ8+umnAFoGPkuWLMHo0aPRuXNnXHrppbjtttuwY8cOPP744xg0aBC++uorvPnmmxgwYABKS0sRCARw1VVXISMjA0uXLkUgEMCcOXOQlZVFp4EowYEQISRm3HvvvXjxxRexf/9+ZGRkYPTo0cjMzMRrr70W664RYostW7Zg9OjRQftnzJiBZ555Bs3Nzfj973+Pv/zlLzh27Bi6dOmC4cOH43e/+x0GDBgAAKipqcEdd9yBiooKdOzYEePHj8fjjz+Ozp07R/tykhIOhAghMWHLli0YM2YM3nrrLYwaNQpAi03EwIEDsWjRIvz7v/97jHtICEkGOBAihBBCSNLCgIqEEEIISVo4ECKEEEJI0sKBECGEEEKSFg6ECCGEEJK0cCBECCGEkKSFAyFCCCGEJC0cCBFCCCEkaeFAiBBCCCFJCwdChBBCCElaOBAihBBCSNLCgRAhhBBCkhYOhAghhBCStPz/8q6TKPAI8bcAAAAASUVORK5CYII=",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "features, statistics, raster = stats_resp.get(asobj=True)\n",
+ "grid = raster[0]\n",
+ "grid.plot()"
+ ]
+ },
{
- "data": {
- "text/plain": [
- "'Land use ratios'"
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "From there, it's easy to calculate the ratio and percentages of each land-use component. This code should also be left as-is unless you really know what you are doing."
]
- },
- "metadata": {},
- "output_type": "display_data"
},
{
- "data": {
- "text/plain": [
- "{'Ocean': 0.0,\n",
- " 'Forest': 0.9095753879046077,\n",
- " 'Shrubs': 0.004920532612284039,\n",
- " 'Grass': 0.005753721840562167,\n",
- " 'Wetland': 0.0009589536400936945,\n",
- " 'Crops': 0.045605319834619795,\n",
- " 'Urban': 0.02361226831837261,\n",
- " 'Water': 0.009573815849459998,\n",
- " 'SnowIce': 0.0}"
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "'Land use ratios'"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/plain": [
+ "{'Ocean': 0.0,\n",
+ " 'Forest': 0.9095753879046077,\n",
+ " 'Shrubs': 0.004920532612284039,\n",
+ " 'Grass': 0.005753721840562167,\n",
+ " 'Wetland': 0.0009589536400936945,\n",
+ " 'Crops': 0.045605319834619795,\n",
+ " 'Urban': 0.02361226831837261,\n",
+ " 'Water': 0.009573815849459998,\n",
+ " 'SnowIce': 0.0}"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/plain": [
+ "'Land use percentages'"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/plain": [
+ "{'Ocean': '0.0 %',\n",
+ " 'Forest': '90.96 %',\n",
+ " 'Shrubs': '0.49 %',\n",
+ " 'Grass': '0.58 %',\n",
+ " 'Wetland': '0.1 %',\n",
+ " 'Crops': '4.56 %',\n",
+ " 'Urban': '2.36 %',\n",
+ " 'Water': '0.96 %',\n",
+ " 'SnowIce': '0.0 %'}"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "lu = statistics[0]\n",
+ "total = sum(lu.values())\n",
+ "\n",
+ "land_use = {k: (v / total) for (k, v) in lu.items()}\n",
+ "display(\"Land use ratios\", land_use)\n",
+ "\n",
+ "land_use_pct = {k: f\"{np.round(v/total*100, 2)} %\" for (k, v) in lu.items()}\n",
+ "display(\"Land use percentages\", land_use_pct)"
]
- },
- "metadata": {},
- "output_type": "display_data"
},
{
- "data": {
- "text/plain": [
- "'Land use percentages'"
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Display the land-use statistics\n",
+ "Here we can display the land-use statistics according to the land cover map, as a function of land cover raster pixels over the catchment. Again, this does not need to be modified at all. It can also be simply deleted if the visualization tools are not required for your use-case."
]
- },
- "metadata": {},
- "output_type": "display_data"
},
{
- "data": {
- "text/plain": [
- "{'Ocean': '0.0 %',\n",
- " 'Forest': '90.96 %',\n",
- " 'Shrubs': '0.49 %',\n",
- " 'Grass': '0.58 %',\n",
- " 'Wetland': '0.1 %',\n",
- " 'Crops': '4.56 %',\n",
- " 'Urban': '2.36 %',\n",
- " 'Water': '0.96 %',\n",
- " 'SnowIce': '0.0 %'}"
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The land-use categories available are: [ 1 5 6 8 10 14 15 16 17 18 127]\n",
+ "The number of occurrences of each land-use category is: [18949 9163 29747 313 72 61 2901 294 1502 609 51649]\n"
+ ]
+ },
+ {
+ "data": {
+ "image/png": "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lHJzc1VcXFxmBeoyT09P1a5d2+EBAACqpgoNTYZhaPz48dqwYYM+/vhjNW7c+Fdfc/bsWWVmZiooKEiS1L59e7m7uyspKclek5WVpYMHD6pz586SpMjISNlsNu3evdtes2vXLtlsNoeagwcPKisry16TmJgoT09PtW/f3iXHCwAAbl0Venpu3Lhxevvtt/W///1PPj4+9pUeq9UqLy8v5efna/bs2br//vsVFBSkY8eO6amnnpKfn5/uu+8+e+3IkSM1depU1atXT76+vpo2bZoiIiLs76Zr0aKF+vTpo1GjRmnlypWSpNGjR6t///4KCwuTJEVFRally5aKjY3VwoULde7cOU2bNk2jRo1iBQkAAFTsStOKFStks9nUrVs3BQUF2R/vvPOOJMnNzU0HDhzQoEGD1Lx5cw0fPlzNmzfXjh075OPjYx9n6dKlGjx4sKKjo9WlSxfVrFlT7733ntzc3Ow169atU0REhKKiohQVFaXWrVtr7dq19v1ubm7avHmzatSooS5duig6OlqDBw/WokWLbt43BAAAVFoWwzCMip5EVZGXlyer1SqbzcbqFFxm5bGFLh3v8UbTXToeANzqzP79rhQXggMAAFR2hCYAAAATCE0AAAAmEJoAAABMIDQBAACYQGgCAAAwgdAEAABgAqEJAADABEITAACACYQmAAAAEwhNAAAAJhCaAAAATCA0AQAAmEBoAgAAMIHQBAAAYAKhCQAAwARCEwAAgAmEJgAAABMITQAAACYQmgAAAEwgNAEAAJhAaAIAADCB0AQAAGACoQkAAMAEQhMAAIAJhCYAAAATCE0AAAAmEJoAAABMIDQBAACYQGgCAAAwgdAEAABgAqEJAADABEITAACACYQmAAAAEwhNAAAAJhCaAAAATCA0AQAAmEBoAgAAMIHQBAAAYAKhCQAAwARCEwAAgAmEJgAAABMITQAAACYQmgAAAEwgNAEAAJhAaAIAADCB0AQAAGCC06Hp4sWL+vHHH+3Pjx8/rhdeeEGJiYkunRgAAEBl4nRoGjRokN58801J0vnz59WxY0ctXrxYgwYN0ooVK5waa968ebrrrrvk4+Mjf39/DR48WIcPH3aoMQxDs2fPVnBwsLy8vNStWzcdOnTIoaawsFATJkyQn5+fvL29NXDgQJ08edKhJjc3V7GxsbJarbJarYqNjdX58+cdak6c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tNCKFSuc6lHeCE1VQEFBgdq0aaPly5eXW4/k5GSNGzdOO3fuVFJSki5duqSoqCgVFLj2A1gbNGig+fPna+/evdq7d6+6d++uQYMGOf1Hxqw9e/bolVdeUevWrV0+dqtWrZSVlWV/HDhwwOU9cnNz1aVLF7m7u+vDDz/UV199pcWLF7v0zvR79uxxOI7LN4B94AHXfWjt888/r5dfflnLly9Xenq6FixYoIULF+rFF190WQ9Jeuyxx5SUlKS1a9fqwIEDioqKUs+ePXXq1KkbHvPXfv4WLFigJUuWaPny5dqzZ48CAwPVq1cvXbhg/oNMf61HQUGBunTpovnz59/QMZjp8+OPP2rfvn165plntG/fPm3YsEHffPONBg4c6LIektS8eXMtX75cBw4cUEpKiho1aqSoqCh9//33Lutx2bvvvqtdu3b96kdn/JY+ffr0cfj5+eCDD1za49tvv9Xdd9+tO+64Q9u2bdOXX36pZ555RjVq1HBZj1/OPysrS6+99posFovuv/9+lx7L5MmTlZCQoLfeekvp6emaPHmyJkyYoP/9739O9SlXrviwW1QekoyNGzeWe5+cnBxDkpGcnFzuverWrWu8+uqrLh/3woULRrNmzYykpCSja9euxqRJk1w29qxZs4w2bdq4bLxreeKJJ4y777673Pv80qRJk4wmTZoYpaWlLhuzX79+xqOPPuqwbciQIcZf/vIXl/X48ccfDTc3N+P999932N6mTRvj6aefdkmPK3/+SktLjcDAQGP+/Pn2bT/99JNhtVqNl19+2SU9fikjI8OQZHzxxRc3NLbZPpft3r3bkGQcP3683HrYbDZDkrF161aX9jh58qRx2223GQcPHjRCQ0ONpUuX3tD41+szfPhwY9CgQb9p3F/rMXToUJf+nJj5Nxk0aJDRvXt3l/dp1aqV8dxzzzlsa9eunfHXv/71N/VyJVaacENsNpskydfXt9x6lJSUKD4+XgUFBYqMjHT5+OPGjVO/fv3Us2dPl48tSUeOHFFwcLAaN26sBx98UN99953Le2zatEkdOnTQAw88IH9/f7Vt21arVq1yeZ/LioqK9NZbb+nRRx916YdS33333froo4/0zTffSJK+/PJLpaSk6E9/+pPLely6dEklJSVl/g/cy8tLKSkpLuvzSxkZGcrOzlZUVJR9m6enp7p27art27eXS8+b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M/b9s2fP1p133qnXXntNt99+uzw9PWUYRpnTc0VFRZoxY4Zuu+02eXt7q2PHjtq2bZt9//HjxzVgwADVrVtX3t7eatWqlT744IPrft+AqobQBMBp1apV07Jly3Tw4EG98cYb+vjjjzVjxgyHmh9//FGLFi3S2rVr9emnn+rEiROaNm2aff/ixYv12muvafXq1UpJSdG5c+e0cePG3zy3ZcuWadOmTfr3v/+tw4cP66233lKjRo0kSYZhqF+/fsrOztYHH3yg1NRUtWvXTj169NC5c+euOl5+fr66du2q06dPa9OmTfryyy81Y8YMlZaW2vf/6U9/0tatW/XFF1+od+/eGjBggE6cOCHp59NgDRo00HPPPaesrCx7cDxw4IB69+6tIUOGaP/+/XrnnXeUkpKi8ePH23sPGzZMp0+f1rZt27R+/Xq98sorysnJse83DEODBw/WuXPnlJycrKSkJH377bcaOnSowzEcPXpU//73v7V+/XqlpaVd9TgfeeQRff7554qPj9f+/fv1wAMPqE+fPjpy5Igkady4cSosLNSnn36qAwcO6Pnnn1etWrWc/wcCbmUGAFxh+PDhxqBBg0zX//vf/zbq1atnf/76668bkoyjR4/at/3zn/80AgIC7M+DgoKM+fPn258XFxcbDRo0+NW+koyNGzc6bLNarcbrr79uGIZhTJgwwejevbtRWlpa5rUfffSRUbt2beOnn35y2N6kSRNj5cqVV+23cuVKw8fHxzh79ux15/VLLVu2NF588UX789DQUGPp0qUONbGxscbo0aMdtn322WdGtWrVjIsXLxrp6emGJGPPnj32/UeOHDEk2cdKTEw03NzcjBMnTthrDh06ZEgydu/ebRiGYcyaNctwd3c3cnJyHHp17drVmDRpkmEYhnH06FHDYrEYp06dcqjp0aOHMXPmTMMwDCMiIsKYPXu26e8BUBWx0gTAaZ988ol69eql2267TT4+Pho2bJjOnj3rcGqpZs2aatKkif15UFCQfZXEZrMpKytLkZGR9v3Vq1dXhw4d7M/XrVunWrVq2R+fffaZqbmNGDFCaWlpCgsL08SJE5WYmGjfl5qaqvz8fNWrV89h7IyMDH377bdXHS8tLU1t27a95jVABQUFmjFjhlq2bKk6deqoVq1a+vrrr+0rTdeSmpqqNWvWOMyjd+/eKi0tVUZGhg4f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",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "unique, counts = np.unique(grid, return_counts=True)\n",
+ "print(\"The land-use categories available are: \" + str(unique))\n",
+ "print(\"The number of occurrences of each land-use category is: \" + str(counts))\n",
+ "\n",
+ "# Pixels values at '127' are NaN and can be ignored.\n",
+ "from matplotlib.colors import Normalize\n",
+ "\n",
+ "norm = Normalize()\n",
+ "norm.autoscale(unique[:-1])\n",
+ "cm = mpl.colormaps[\"tab20\"]\n",
+ "plt.bar(unique[:-1], counts[:-1], color=cm(norm(unique[:-1])))\n",
+ "\n",
+ "\n",
+ "# plt.bar(unique[:-1], counts[:-1])\n",
+ "plt.xticks(np.arange(min(unique[:-1]), max(unique[:-1]) + 1, 1.0))\n",
+ "plt.xlabel(\"Land-use categories\")\n",
+ "plt.ylabel(\"Number of pixels\")\n",
+ "plt.show()\n",
+ "\n",
+ "grid.where(grid != 127).sel(band=1).plot.imshow(cmap=\"tab20\")\n",
+ "grid.name = \"Land-use categories\"\n",
+ "plt.show()"
]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "lu = statistics[0]\n",
- "total = sum(lu.values())\n",
- "\n",
- "land_use = {k: (v / total) for (k, v) in lu.items()}\n",
- "display(\"Land use ratios\", land_use)\n",
- "\n",
- "land_use_pct = {k: f\"{np.round(v/total*100, 2)} %\" for (k, v) in lu.items()}\n",
- "display(\"Land use percentages\", land_use_pct)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "### Display the land-use statistics\n",
- "Here we can display the land-use statistics according to the land cover map, as a function of land cover raster pixels over the catchment. Again, this does not need to be modified at all. It can also be simply deleted if the visualization tools are not required for your use-case."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 8,
- "metadata": {
- "tags": []
- },
- "outputs": [
+ },
{
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "The land-use categories available are: [ 1 5 6 8 10 14 15 16 17 18 127]\n",
- "The number of occurrences of each land-use category is: [18949 9163 29747 313 72 61 2901 294 1502 609 51649]\n"
- ]
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "These values are not very helpful on their own, so the following relationship will be helpful to map the grid to specific land-uses. We can see from this example that we have mostly \"Temperate or sub-polar needleaf forest\" with some \"Sub-polar taiga needleleaf forest\" and a bit of \"Temperate or sub-polar boardleaf deciduous forest\". Exact percentages can be computed from the array of values as extracted and displayed above.\n",
+ "\n",
+ "- 0: Ocean\n",
+ "- 1: Temperate or sub-polar needleleaf forest\n",
+ "- 2: Sub-polar taiga needleleaf forest\n",
+ "- 3: Tropical or sub-tropical broadleaf evergreen forest\n",
+ "- 4: Tropical or sub-tropical broadleaf deciduous forest\n",
+ "- 5: Temperate or sub-polar broadleaf deciduous forest\n",
+ "- 6: Mixed forest\n",
+ "- 7: Tropical or sub-tropical shrubland\n",
+ "- 8: Temperate or sub-polar shrubland\n",
+ "- 9: Tropical or sub-tropical grassland\n",
+ "- 10: Temperate or sub-polar grassland\n",
+ "- 11: Sub-polar or polar shrubland-lichen-moss\n",
+ "- 12: Sub-polar or polar grassland-lichen-moss\n",
+ "- 13: Sub-polar or polar barren-lichen-moss\n",
+ "- 14: Wetland\n",
+ "- 15: Cropland\n",
+ "- 16: Barren lands\n",
+ "- 17: Urban\n",
+ "- 18: Water\n",
+ "- 19: Snow and Ice\n"
+ ]
},
{
- "data": {
- "image/png": "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lHJzc1VcXFxmBeoyT09P1a5d2+EBAACqpgoNTYZhaPz48dqwYYM+/vhjNW7c+Fdfc/bsWWVmZiooKEiS1L59e7m7uyspKclek5WVpYMHD6pz586SpMjISNlsNu3evdtes2vXLtlsNoeagwcPKisry16TmJgoT09PtW/f3iXHCwAAbl0Venpu3Lhxevvtt/W///1PPj4+9pUeq9UqLy8v5efna/bs2br//vsVFBSkY8eO6amnnpKfn5/uu+8+e+3IkSM1depU1atXT76+vpo2bZoiIiLs76Zr0aKF+vTpo1GjRmnlypWSpNGjR6t///4KCwuTJEVFRally5aKjY3VwoULde7cOU2bNk2jRo1iBQkAAFTsStOKFStks9nUrVs3BQUF2R/vvPOOJMnNzU0HDhzQoEGD1Lx5cw0fPlzNmzfXjh075OPjYx9n6dKlGjx4sKKjo9WlSxfVrFlT7733ntzc3Ow169atU0REhKKiohQVFaXWrVtr7dq19v1ubm7avHmzatSooS5duig6OlqDBw/WokWLbt43BAAAVFoWwzCMip5EVZGXlyer1SqbzcbqFFxm5bGFLh3v8UbTXToeANzqzP79rhQXggMAAFR2hCYAAAATCE0AAAAmEJoAAABMIDQBAACYQGgCAAAwgdAEAABgAqEJAADABEITAACACYQmAAAAEwhNAAAAJhCaAAAATCA0AQAAmEBoAgAAMIHQBAAAYAKhCQAAwARCEwAAgAmEJgAAABMITQAAACYQmgAAAEwgNAEAAJhAaAIAADCB0AQAAGACoQkAAMAEQhMAAIAJhCYAAAATCE0AAAAmEJoAAABMIDQBAACYQGgCAAAwgdAEAABgAqEJAADABEITAACACYQmAAAAEwhNAAAAJhCaAAAATCA0AQAAmEBoAgAAMIHQBAAAYAKhCQAAwARCEwAAgAmEJgAAABMITQAAACYQmgAAAEwgNAEAAJhAaAIAADCB0AQAAGCC06Hp4sWL+vHHH+3Pjx8/rhdeeEGJiYkunRgAAEBl4nRoGjRokN58801J0vnz59WxY0ctXrxYgwYN0ooVK5waa968ebrrrrvk4+Mjf39/DR48WIcPH3aoMQxDs2fPVnBwsLy8vNStWzcdOnTIoaawsFATJkyQn5+fvL29NXDgQJ08edKhJjc3V7GxsbJarbJarYqNjdX58+cdak6c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tNCKFSuc6lHeCE1VQEFBgdq0aaPly5eXW4/k5GSNGzdOO3fuVFJSki5duqSoqCgVFLj2A1gbNGig+fPna+/evdq7d6+6d++uQYMGOf1Hxqw9e/bolVdeUevWrV0+dqtWrZSVlWV/HDhwwOU9cnNz1aVLF7m7u+vDDz/UV199pcWLF7v0zvR79uxxOI7LN4B94AHXfWjt888/r5dfflnLly9Xenq6FixYoIULF+rFF190WQ9Jeuyxx5SUlKS1a9fqwIEDioqKUs+ePXXq1KkbHvPXfv4WLFigJUuWaPny5dqzZ48CAwPVq1cvXbhg/oNMf61HQUGBunTpovnz59/QMZjp8+OPP2rfvn165plntG/fPm3YsEHffPONBg4c6LIektS8eXMtX75cBw4cUEpKiho1aqSoqCh9//33Lutx2bvvvqtdu3b96kdn/JY+ffr0cfj5+eCDD1za49tvv9Xdd9+tO+64Q9u2bdOXX36pZ555RjVq1HBZj1/OPysrS6+99posFovuv/9+lx7L5MmTlZCQoLfeekvp6emaPHmyJkyYoP/9739O9SlXrviwW1QekoyNGzeWe5+cnBxDkpGcnFzuverWrWu8+uqrLh/3woULRrNmzYykpCSja9euxqRJk1w29qxZs4w2bdq4bLxreeKJJ4y777673Pv80qRJk4wmTZoYpaWlLhuzX79+xqOPPuqwbciQIcZf/vIXl/X48ccfDTc3N+P999932N6mTRvj6aefdkmPK3/+SktLjcDAQGP+/Pn2bT/99JNhtVqNl19+2SU9fikjI8OQZHzxxRc3NLbZPpft3r3bkGQcP3683HrYbDZDkrF161aX9jh58qRx2223GQcPHjRCQ0ONpUuX3tD41+szfPhwY9CgQb9p3F/rMXToUJf+nJj5Nxk0aJDRvXt3l/dp1aqV8dxzzzlsa9eunfHXv/71N/VyJVaacENsNpskydfXt9x6lJSUKD4+XgUFBYqMjHT5+OPGjVO/fv3Us2dPl48tSUeOHFFwcLAaN26sBx98UN99953Le2zatEkdOnTQAw88IH9/f7Vt21arVq1yeZ/LioqK9NZbb+nRRx916YdS33333froo4/0zTffSJK+/PJLpaSk6E9/+pPLely6dEklJSVl/g/cy8tLKSkpLuvzSxkZGcrOzlZUVJR9m6enp7p27art27eXS8+b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M/b9s2fP1p133qnXXntNt99+uzw9PWUYRpnTc0VFRZoxY4Zuu+02eXt7q2PHjtq2bZt9//HjxzVgwADVrVtX3t7eatWqlT744IPrft+AqobQBMBp1apV07Jly3Tw4EG98cYb+vjjjzVjxgyHmh9//FGLFi3S2rVr9emnn+rEiROaNm2aff/ixYv12muvafXq1UpJSdG5c+e0cePG3zy3ZcuWadOmTfr3v/+tw4cP66233lKjRo0kSYZhqF+/fsrOztYHH3yg1NRUtWvXTj169NC5c+euOl5+fr66du2q06dPa9OmTfryyy81Y8YMlZaW2vf/6U9/0tatW/XFF1+od+/eGjBggE6cOCHp59NgDRo00HPPPaesrCx7cDxw4IB69+6tIUOGaP/+/XrnnXeUkpKi8ePH23sPGzZMp0+f1rZt27R+/Xq98sorysnJse83DEODBw/WuXPnlJycrKSkJH377bcaOnSowzEcPXpU//73v7V+/XqlpaVd9TgfeeQRff7554qPj9f+/fv1wAMPqE+fPjpy5Igkady4cSosLNSnn36qAwcO6Pnnn1etWrWc/wcCbmUGAFxh+PDhxqBBg0zX//vf/zbq1atnf/76668bkoyjR4/at/3zn/80AgIC7M+DgoKM+fPn258XFxcbDRo0+NW+koyNGzc6bLNarcbrr79uGIZhTJgwwejevbtRWlpa5rUfffSRUbt2beOnn35y2N6kSRNj5cqVV+23cuVKw8fHxzh79ux15/VLLVu2NF588UX789DQUGPp0qUONbGxscbo0aMdtn322WdGtWrVjIsXLxrp6emGJGPPnj32/UeOHDEk2cdKTEw03NzcjBMnTthrDh06ZEgydu/ebRiGYcyaNctwd3c3cnJyHHp17drVmDRpkmEYhnH06FHDYrEYp06dcqjp0aOHMXPmTMMwDCMiIsKYPXu26e8BUBWx0gTAaZ988ol69eql2267TT4+Pho2bJjOnj3rcGqpZs2aatKkif15UFCQfZXEZrMpKytLkZGR9v3Vq1dXhw4d7M/XrVunWrVq2R+fffaZqbmNGDFCaWlpCgsL08SJE5WYmGjfl5qaqvz8fNWrV89h7IyMDH377bdXHS8tLU1t27a95jVABQUFmjFjhlq2bKk6deqoVq1a+vrrr+0rTdeSmpqqNWvWOMyjd+/eKi0tVUZGhg4f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",
- "text/plain": [
- "
"
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Since the GeoTiff object was opened as an `xarray.Dataset` with the `.open_rasterio()` method, this makes it very easy to spatially reproject it with the `cartopy` library. Here we provide a sample projection, but this would need to be adapted to your needs."
]
- },
- "metadata": {},
- "output_type": "display_data"
},
{
- "data": {
- "image/png": "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y23dbjcee+wxrFq1Chs3btQVC5wgLAydI0eOYMOGDXj77bcN27Vp0wbt27fHl19+CQA4dOgQ5s+fj7179+KHP/whAOD222/Hxx9/jD/84Q8oLi5GUlISvv32W6++Tp48qSgySUlJ2LFjh8frp06dwqVLlzzaCHVHIJbR1GqQjBUnLEJI5KCOnhKqjZVQdfW+ogBofFoB9uTuYUFPEjFMnDgRb775Jv72t78hPj5e+X11uVxo0qSJo8cKCx+dRYsWITExEdnZxtVmv/vuO1RVVaFNmzYAgPPnG6zHG27wPI1GjRqhvr4eANC3b19UV1fj008/VV7fsWMHqqurcddddylt9u7di2+++UZpU1paitjYWPTq1Utps3nzZo+Q89LSUiQnJ3staRFCCCFEn9deew3V1dW4++670aZNG+WxYsUKx48VckOnvr4eixYtQm5uLqKjrwpMZ8+exZNPPolt27ahoqICGzduxLBhw9CqVSuMGDECANClSxfccsstmDBhAj799FMcOnQIL7/8MtavX4/hw4cDANLS0jBo0CCMHz8e27dvx/bt2zF+/HgMHToUnTt3BgBkZmaia9euyMnJwe7du/HBBx/gySefxPjx45V1xtGjRyM2NhZ5eXnYu3cvVq1ahRdffBHTpk0zXLoihFy7TEid7pOK4mtklFBzCou7KmpORVE2/XJIxOF2uzUfsp+uU4Tc0NmwYQMqKysxbtw4j+2NGjXCnj17cP/99+O2225Dbm4ubrvtNmzbtg3x8fEAgMaNG+P9999H69atMWzYMHTv3h1LlizBG2+8gSFDhih9lZSUoFu3bsjMzERmZia6d++OpUuXehxrzZo1iIuLQ79+/TBq1CgMHz4cc+bMUdq4XC6sX78eR48eRe/evfHoo49i2rRpHv43hJDIxJ8lIyvVybWWqyqKslFRZKxyE0LMCbmPTmZmpmYemiZNmmDdunWm+996661YuXKlYZsWLVpg2bJlhm3atWuH9957z7BNt27dsHnzZtMxEUIIISQ8CLmiQwgh1wJWVB3hTCwUGjs1qiZljMWE1OlUcghxGBo6hBBCCIlYaOgQQohFzFQdPV8cI1VHKDkMHSckMNDQIYQQQkjEQkOHEEJsYFV9kf109GASQEICDw0dQgghhEQsNHQIIcQH/FFi6JNDSPCgoUMIIYSQiCXkCQMJIeRaRagyr1fM1m0jIq6o4BASGmjoEEJIAGGdKkJCC5euCCGEEBKxUNEhhBA/4bIUIeELDZ0gIwqY1tTUhHgkhBBCwhnxO6FV+Npp6mvPh0UfgYCGTpA5c+YMACAlJSXEIyGEEHItcObMGbhcroD0HRMTg6SkJHz9Wp4j/SUlJSEmJsaRvpwiyh0MU5Eo1NfXY//+/ejatSuqqqqQkJAQ6iHZoqamBikpKdfc2K/VcQMce6jg2IPPtTpuIDBjd7vdOHPmDJKTk3HDDYFzqb148SLq6uoc6SsmJgZxcXGO9OUUVHSCzA033IC2bdsCABISEq65D7PgWh37tTpugGMPFRx78LlWxw04P/ZAKTkycXFxYWecOAmjrgghhBASsdDQIYQQQkjEQkMnBMTGxmLmzJmIjY0N9VBsc62O/VodN8CxhwqOPfhcq+MGru2xRzp0RiaEEEJIxEJFhxBCCCERCw0dQgghhEQsNHQIIYQQErHQ0CGEEEJIxEJDxwaFhYW44447EB8fj8TERAwfPhz79+833W/Tpk3o1asX4uLi0LFjRxQXF+u2Xb58OaKiojB8+HCP7ZcvX8bTTz+NDh06oEmTJujYsSOee+451NfXh3TsixcvRlRUlNfj4sWLHu3++7//Gx06dEBcXBx69eqFjz/+OOzH7euxw2Hs6nFERUVh6tSp18zYv/76azz00ENo2bIlmjZtih49emDXrl1hP/Zw/ZwCwOnTpzFx4kS0adMGcXFxSEtLw/vvv+/RxtfPaajH7s9nNdTXXB6H3c8psYibWCYrK8u9aNEi9969e91lZWXu7Oxsd7t27dxnz57V3eerr75yN23a1D1lyhT3vn373AsWLHA3btzY/dZbb3m1raiocLdt29b9k5/8xH3//fd7vPb888+7W7Zs6X7vvffchw8fdv/1r391N2/e3D1v3ryQjn3RokXuhIQE9zfffOPxkFm+fLm7cePG7gULFrj37dvnnjJlirtZs2buI0eOhPW4fTl2uIxd8Omnn7pTU1Pd3bt3d0+ZMsXSuEM99u+//97dvn17d15ennvHjh3uw4cPuzds2OA+ePBg2I89XD+ntbW17t69e7uHDBni3rJli7uiosL98ccfu8vKypQ2/nxOQz12fz6roRy3wNfPKbEGDR0/OHHihBuAe9OmTbpt/uu//svdpUsXj20TJkxw9+nTx2Pb5cuX3f369XP/6U9/cufm5noZOtnZ2e5x48Z5bHvggQfcDz30UEjHvmjRIrfL5TI81o9//GN3fn6+x7YuXbq4CwoKwnrcvhzb3/2dHPuZM2fct956q3v9+vXujIwMv75Agzn2X/7yl+7+/fv7PFY1wRx7uH5OX3vtNXfHjh3ddXV1uv04+TkN9th9OXa4jNvJzynRhktXflBdXQ0AaNGihW6bbdu2ITMz02NbVlYWPvvsM1y6dEnZ9txzz6F169Z45JFHNPvp378/PvjgAxw4cAAA8MUXX2DLli0YMmRIyMd+9uxZtG/fHj/4wQ8wdOhQ7N69W3mtrq4Ou3bt8uonMzMTW7duDdtx+3rscBr7xIkTkZ2djXvvvden8YZq7O+88w569+6NkSNHIjExET179sSCBQuuibGH6+f0nXfeQd++fTFx4kTcfPPNSE9Px4svvogrV64AcP5zGsyx+3rscBm3k59Tog0NHR9xu92YNm0a+vfvj/T0dN12x48fx8033+yx7eabb8bly5fxz3/+EwDwySefYOHChYZf5r/85S/xs5/9DF26dEHjxo3Rs2dPTJ06FT/72c9COvYuXbpg8eLFeOedd/DnP/8ZcXFx6NevH7788ksAwD//+U9cuXJFs5/jx4+H7bh9PXa4jH358uX4/PPPUVhYaHusoR77V199hddeew233nor1q1bh/z8fEyePBlLliwJ+7GH6+f0q6++wltvvYUrV67g/fffx9NPP42XX34ZL7zwAgBnP6fBHruvxw6HcTv5OSX6sHq5j0yaNAn/93//hy1btpi2jYqK8nju/lcy6qioKJw5cwYPPfQQFixYgFatWun2sWLFCixbtgxvvvkmfvjDH6KsrAxTp05FcnIycnNzQzJ2AOjTpw/69OmjvN6vXz/86Ec/wquvvorf//73hv2ot4XjuH05dqjHXlVVhSlTpqC0tNSRisTBvu719fXo3bs3XnzxRQBAz5498fe//x2vvfYaxo4dG9ZjD9fPaX19PRITE/HHP/4RjRo1Qq9evXDs2DHMnj0bv/71rw37sfs5DdXYfTl2KMft9OeU6ENDxwcee+wxvPPOO9i8eTN+8IMfGLZNSkrymhGdOHEC0dHRaNmyJf7+97+joqICw4YNU14XERrR0dHYv38/OnXqhOnTp6OgoAD/8R//AQDo1q0bjhw5gsLCQltfoE6OXYsbbrgBd9xxhzLLbdWqFRo1aqTZj3pGFE7j9vXY4TD2Xbt24cSJE+jVq5fS5sqVK9i8eTPmz5+P2tpaNGrUKCzHDgBt2rRB165dPdqlpaVh5cqVlsYcyrGH6+e0TZs2aNy4scf7npaWhuPHj6Ours6xz2koxh4TE+PTsUM9bic/p8QYLl3ZwO12Y9KkSXj77bfx4YcfokOHDqb79O3bF+vXr/fYVlpait69e6Nx48bo0qUL9uzZg7KyMuVx3333YcCAASgrK0NKSgoA4Pz587jhBs+3q1GjRpbDVgMxdr3jlJWVoU2bNgCAmJgY9OrVy6uf9evX46677grbcft67HAY+7/927953VO9e/fGmDFjUFZWZunLM5TXvV+/fl7hvQcOHED79u1NxxDqsYfr57Rfv344ePCgxzgOHDiANm3aICYmxu/PaSjH7uuxQz1uJz6nxCKB9HSONP7zP//T7XK53Bs3bvQILz1//rzSpqCgwJ2Tk6M8F2GIjz/+uHvfvn3uhQsX6oaXC7SirnJzc91t27ZVwlbffvttd6tWrdz/9V//FdKxP/vss+61a9e6Dx065N69e7f74YcfdkdHR7t37NihtBFhqwsXLnTv27fPPXXqVHezZs3cFRUVYT1uK8cO17GrsRvNEcqxf/rpp+7o6Gj3Cy+84P7yyy/dJSUl7qZNm7qXLVsW9mMP189pZWWlu3nz5u5Jkya59+/f737vvffciYmJ7ueff15p48/nNNRj9+ezGspxq2HUVWCgoWMDAJqPRYsWKW1yc3PdGRkZHvtt3LjR3bNnT3dMTIw7NTXV/dprrxkeR8vQqampcU+ZMsXdrl07d1xcnLtjx47up556yl1bWxvSsU+dOtXdrl07d0xMjLt169buzMxM99atW72O/4c//MHdvn17d0xMjPtHP/qR5bDPUI7byrHDdexq7H6Bhnrs7777rjs9Pd0dGxvr7tKli/uPf/zjNTH2cP2cut1u99atW9133nmnOzY21t2xY0f3Cy+84L58+bJHG18/p6Eeuz+f1VBfcxkaOoEhyu3+lwcVIYQQQkiEQR8dQgghhEQsNHQIIYQQErHQ0CGEEEJIxEJDhxBCCCERCw0dQgghhEQsNHQIIYQQErHQ0CGEEEJIxEJDhxBCCPGRzZs3Y9iwYUhOTkZUVBRWr15tuw+32405c+bgtttuQ2xsLFJSUpSitsR/WNSTEEII8ZFz587h9ttvx8MPP4yf/vSnPvUhqpjPmTMH3bp1Q3V1Nf75z386PNLrF2ZGJoQQQhwgKioKq1atwvDhw5VtdXV1ePrpp1FSUoLTp08jPT0dv/3tb3H33XcDAMrLy9G9e3fs3bsXnTt3Ds3AIxwuXRFCQsLJkyeRlJTkIdHv2LEDMTExKC0tDeHICHGOhx9+GJ988gmWL1+O//u//8PIkSMxaNAgfPnllwCAd999Fx07dsR7772HDh06IDU1FT//+c/x/fffh3jkkQMVHUJIyHj//fcxfPhwbN26FV26dEHPnj2RnZ2NefPmhXpohNhGregcOnQIt956K44ePYrk5GSl3b333osf//jHePHFF5Gfn4/FixejR48emD17Nq5cuYLHH38cN910Ez788MMQnUlkQR8dQkjIGDJkCMaPH48xY8bgjjvuQFxcHIqKikI9LEIc4fPPP4fb7cZtt93msb22thYtW7YEANTX16O2thZLlixR2i1cuBC9evXC/v37uZzlADR0CCEhZc6cOUhPT8df/vIXfPbZZ4iLiwv1kAhxhPr6ejRq1Ai7du1Co0aNPF5r3rw5AKBNmzaIjo72MIbS0tIAAJWVlTR0HICGDiEkpHz11Vc4duwY6uvrceTIEXTv3j3UQyLEEXr27IkrV67gxIkT+MlPfqLZpl+/frh8+TIOHTqETp06AQAOHDgAAGjfvn3QxhrJ0EeHEBIy6urq8OMf/xg9evRAly5dMHfuXOzZswc333xzqIdGiCXOnj2LgwcPAmgwbObOnYsBAwagRYsWaNeuHR566CF88sknePnll9GzZ0/885//xIcffohu3bphyJAhqK+vxx133IHmzZtj3rx5qK+vx8SJE5GQkECnfIegoUMICRnTp0/HW2+9hS+++ALNmzfHgAEDEB8fj/feey/UQyPEEhs3bsSAAQO8tufm5mLx4sW4dOkSnn/+eSxZsgRff/01WrZsib59+2LWrFno1q0bAODYsWN47LHHUFpaimbNmmHw4MF4+eWX0aJFi2CfTkRCQ4cQEhI2btyIgQMH4qOPPkL//v0BNPgkdO/eHYWFhfjP//zPEI+QEBIJ0NAhhBBCSMTChIGEEEIIiVho6BBCCCEkYqGhQwghhJCIhYYOIYQQQiIWGjqEEEIIiVho6BBCCCEkYqGhQwghhJCIhYYOIYQQQiIWGjqEEEIIiVho6BBCCCEkYqGhQwghhJCIhYYOIYQQQiKW/w/S9N2caBQiUwAAAABJRU5ErkJggg==",
- "text/plain": [
- "
"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "import cartopy.crs as ccrs\n",
+ "\n",
+ "# Set a CRS transformation:\n",
+ "crs = ccrs.LambertConformal(\n",
+ " central_latitude=49, central_longitude=-95, standard_parallels=(49, 77)\n",
+ ")\n",
+ "\n",
+ "ax = plt.subplot(projection=crs)\n",
+ "grid.name = \"Land-use categories\"\n",
+ "grid.where(grid != 127).sel(band=1).plot.imshow(ax=ax, transform=crs, cmap=\"tab20\")\n",
+ "plt.show()"
]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "unique, counts = np.unique(grid, return_counts=True)\n",
- "print(\"The land-use categories available are: \" + str(unique))\n",
- "print(\"The number of occurrences of each land-use category is: \" + str(counts))\n",
- "\n",
- "# Pixels values at '127' are NaN and can be ignored.\n",
- "from matplotlib.colors import Normalize\n",
- "\n",
- "norm = Normalize()\n",
- "norm.autoscale(unique[:-1])\n",
- "cm = mpl.colormaps[\"tab20\"]\n",
- "plt.bar(unique[:-1], counts[:-1], color=cm(norm(unique[:-1])))\n",
- "\n",
- "\n",
- "# plt.bar(unique[:-1], counts[:-1])\n",
- "plt.xticks(np.arange(min(unique[:-1]), max(unique[:-1]) + 1, 1.0))\n",
- "plt.xlabel(\"Land-use categories\")\n",
- "plt.ylabel(\"Number of pixels\")\n",
- "plt.show()\n",
- "\n",
- "grid.where(grid != 127).sel(band=1).plot.imshow(cmap=\"tab20\")\n",
- "grid.name = \"Land-use categories\"\n",
- "plt.show()"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "These values are not very helpful on their own, so the following relationship will be helpful to map the grid to specific land-uses. We can see from this example that we have mostly \"Temperate or sub-polar needleaf forest\" with some \"Sub-polar taiga needleleaf forest\" and a bit of \"Temperate or sub-polar boardleaf deciduous forest\". Exact percentages can be computed from the array of values as extracted and displayed above.\n",
- "\n",
- "- 0: Ocean\n",
- "- 1: Temperate or sub-polar needleleaf forest\n",
- "- 2: Sub-polar taiga needleleaf forest\n",
- "- 3: Tropical or sub-tropical broadleaf evergreen forest\n",
- "- 4: Tropical or sub-tropical broadleaf deciduous forest\n",
- "- 5: Temperate or sub-polar broadleaf deciduous forest\n",
- "- 6: Mixed forest\n",
- "- 7: Tropical or sub-tropical shrubland\n",
- "- 8: Temperate or sub-polar shrubland\n",
- "- 9: Tropical or sub-tropical grassland\n",
- "- 10: Temperate or sub-polar grassland\n",
- "- 11: Sub-polar or polar shrubland-lichen-moss\n",
- "- 12: Sub-polar or polar grassland-lichen-moss\n",
- "- 13: Sub-polar or polar barren-lichen-moss\n",
- "- 14: Wetland\n",
- "- 15: Cropland\n",
- "- 16: Barren lands\n",
- "- 17: Urban\n",
- "- 18: Water\n",
- "- 19: Snow and Ice\n"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Since the GeoTiff object was opened as an `xarray.Dataset` with the `.open_rasterio()` method, this makes it very easy to spatially reproject it with the `cartopy` library. Here we provide a sample projection, but this would need to be adapted to your needs."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 9,
- "metadata": {
- "tags": []
- },
- "outputs": [
+ },
{
- "data": {
- "image/png": "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",
- "text/plain": [
- "
"
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Terrain information from the DEM\n",
+ "\n",
+ "Here we collect terrain data, such as elevation, slope and aspect, from the DEM. We will do this using the `terrain_analysis` WPS service, which by default uses DEM data from [EarthEnv-DEM90](https://www.earthenv.org/DEM).\n",
+ "\n",
+ "Note here that while the feature outline is defined above in terms of geographic coordinates (latitude, longitude), the DEM is projected onto a 2D cartesian coordinate system (here NAD83, the Canada Atlas Lambert projection). This is necessary to perform slope calculations. For more information on this, see: https://en.wikipedia.org/wiki/Map_projection\n",
+ "\n",
+ "The DEM data returned in the process response here shows `rioxarray`-like access but using the URLs we can open the files however we like."
]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "import cartopy.crs as ccrs\n",
- "\n",
- "# Set a CRS transformation:\n",
- "crs = ccrs.LambertConformal(\n",
- " central_latitude=49, central_longitude=-95, standard_parallels=(49, 77)\n",
- ")\n",
- "\n",
- "ax = plt.subplot(projection=crs)\n",
- "grid.name = \"Land-use categories\"\n",
- "grid.where(grid != 127).sel(band=1).plot.imshow(ax=ax, transform=crs, cmap=\"tab20\")\n",
- "plt.show()"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Terrain information from the DEM\n",
- "\n",
- "Here we collect terrain data, such as elevation, slope and aspect, from the DEM. We will do this using the `terrain_analysis` WPS service, which by default uses DEM data from [EarthEnv-DEM90](https://www.earthenv.org/DEM).\n",
- "\n",
- "Note here that while the feature outline is defined above in terms of geographic coordinates (latitude, longitude), the DEM is projected onto a 2D cartesian coordinate system (here NAD83, the Canada Atlas Lambert projection). This is necessary to perform slope calculations. For more information on this, see: https://en.wikipedia.org/wiki/Map_projection\n",
- "\n",
- "The DEM data returned in the process response here shows `rioxarray`-like access but using the URLs we can open the files however we like."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 10,
- "metadata": {
- "tags": []
- },
- "outputs": [],
- "source": [
- "terrain_resp = wps.terrain_analysis(\n",
- " shape=feature_url, select_all_touching=True, projected_crs=3978\n",
- ")"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 11,
- "metadata": {
- "tags": []
- },
- "outputs": [
+ },
{
- "data": {
- "text/plain": [
- "{'elevation': 165.37033101757254,\n",
- " 'slope': 3.8477161303214786,\n",
- " 'aspect': 5.4659402646877995}"
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "terrain_resp = wps.terrain_analysis(\n",
+ " shape=feature_url, select_all_touching=True, projected_crs=3978\n",
+ ")"
]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "properties, dem = terrain_resp.get(asobj=True)\n",
- "\n",
- "elevation = properties[0][\"elevation\"]\n",
- "slope = properties[0][\"slope\"]\n",
- "aspect = properties[0][\"aspect\"]\n",
- "\n",
- "terrain = {\"elevation\": elevation, \"slope\": slope, \"aspect\": aspect}\n",
- "display(terrain)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 12,
- "metadata": {
- "tags": []
- },
- "outputs": [
+ },
{
- "data": {
- "image/png": "iVBORw0KGgoAAAANSUhEUgAAAgMAAAGFCAYAAABg2vAPAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAACUbklEQVR4nO39eZhcZZn/j7+fs9XSazpN0gkJIUAQMeygAioJq4AwyKrAAIPDuCAzjDhuM0j8jcDIfBQduEYdvwgoIDgjqzgiDAEGUWQZwBCBAAESSQgJSXe6u6rO9vz+eNZTdTrppbIUfb+uq6+qPnX2OnXO/dzL+2accw6CIAiCICYtzrbeAYIgCIIgti1kDBAEQRDEJIeMAYIgCIKY5JAxQBAEQRCTHDIGCIIgCGKSQ8YAQRAEQUxyyBggCIIgiEmOt613gCAIgiDGQ7VaRRiGE15PEAQoFotN2KPWhYwBgiAIouWoVquYO7eE1asnvq6+vj4sX758UhsEZAwQBEEQLUcYhli9GlixAujsHP96BgaA2bNXIwxDMgYIgiAIohXpaBN/44UnzduXVoaMAYIgCKJ1SeTfRJYnqJqAIAiCICY75BkgCIIgWhaeTMzVT2ECARkDBEEQROtCYYKmQGECgiAIgpjkkGeAIAiCaFkoTNAcyBggCIIgWhcKEzQFChMQBEEQxCSHPAMEQRBEy8I5wNOJLU+QMUAQBEG0MhQmaApkDBAEQRAtCyUQNgfKGSAIgiCISQ55BgiCIIjWhcIETYGMAYIgCKJloTBBc6AwAUEQBEFMcsgzQBAEQbQuqfybyPIEGQMEQRBE68LTCYYJyBgAQGECgiAIgpj0kGeAIAiCaF2omqApkDFAEARBtCw8naAcMYUJAFCYgCAIgiAmPeQZIAiCIFoXChM0BTIGCIIgiJaFRIeaAxkDBEEQROtCOgNNgXIGCIIgCGKSQ54BgiAIomWhMEFzIGOAIAiCaF04Jubq583akdaGwgQEQRAEMckhzwBBEATRslCYoDmQMUAQBEG0LlRN0BQoTEAQBEEQkxzyDBAEQRAtC4UJmgMZAwRBEETrQmGCpkDGAEEQBNGykGegOVDOAEEQBEFMcsgzQBAEQbQuFCZoCmQMEARBEC0LTycYJiBjAACFCQiCIAhi0kOeAYIgCKJ1oTBBUyBjgCAIgmhZeDoxVz+FCQQUJiAIgiCISQ55BgiCIIjWJZF/E1meIM8AQRAE0bqoMMFE/sbClVdeiYMOOggdHR2YNm0aTjrpJLz44ov68yiK8OUvfxl77bUX2traMHPmTJxzzjl48803M+tZsGABGGOZv0984hPNOCXjgowBgiAIghglDz/8MC688EL8/ve/x/333484jnH00UdjaGgIADA8PIynn34al156KZ5++mncfvvteOmll3DiiSc2rOuCCy7AqlWr9N8Pf/jDrX04GgoTEARBEC3L1k4g/PWvf535//rrr8e0adPw1FNP4SMf+Qi6urpw//33Z+a55ppr8P73vx9vvPEGdtppJz29XC6jr69v3PveTMgzQBAEQbQuSRP+AAwMDGT+arXaqDbf398PAOjp6dnkPIwxdHd3Z6bffPPN6O3txfve9z588YtfxMaNG0e1zS0BeQYIgiCIlqVZnoHZs2dnpl922WVYtGjRppflHF/4whfwoQ99CPPnz8+dp1qt4itf+QrOPPNMdHZ26ulnnXUW5s6di76+PixZsgRf/epX8eyzzzZ4FbYWZAwQBEEQk54VK1ZkHtaFQmGzy3z+85/Hc889h0cffTT38yiK8IlPfAJpmuLf//3fM59dcMEF+v38+fMxb948HHjggXj66aex//77j/Moxg8ZAwRBEETr0iQFws7OzowxsDkuuugi3H333XjkkUcwa9ashs+jKMLpp5+O5cuX48EHH9zsuvfff3/4vo9ly5aRMUAQBEEQY4JPUEWQj3F2znHRRRfhjjvuwEMPPYS5c+c2zKMMgWXLlmHx4sWYOnXqZtf7/PPPI4oizJgxY2w71CTIGCAIgiCIUXLhhRfilltuwV133YWOjg6sXr0aANDV1YVSqYQ4jnHqqafi6aefxi9/+UskSaLn6enpQRAEeOWVV3DzzTfjuOOOQ29vL5YuXYpLLrkE++23Hw499NBtclyMcz5Gu4ggCIIgti0DAwPo6urC8n8HOkrjX8/GCjD3cyLjfzRhAsZY7vTrr78e5513Hl577bVcbwEALF68GAsWLMCKFStw9tlnY8mSJRgcHMTs2bNx/PHH47LLLttkVcKWhDwDBEEQRMuytXUGNjd+3nnnnTc7z+zZs/Hwww+PbcNbGNIZIAiCIIhJDnkGCIIgiNalSdUEkx0yBgiCIIiWZWuHCd6tUJiAIAiCICY55BkgCIIgWhcKEzQFMgYIgiCIloXCBM2BjAGCIAiidSHPQFOgnAGCIAiCmOSQZ4AgCIJoWXgK8GRiyxNkDBAEQRAtDOUMNAcKExAEQRDEJIc8AwRBEETrQgmETYGMAYIgCKJloTBBc6AwAUEQBEFMcsgzQBAEQbQuFCZoCmQMEARBEC0LhQmaA4UJCIIgCGKSQ54BgiAIonWhMEFTIGOAIAiCaFk4F38TWZ4gY4AgCIJoZcgz0BQoZ4AgCIIgJjnkGSAIgiBaFs4nWE1AYQIAZAwQBEEQLQyVFjYHChMQBEEQxCSHPAMEQRBE60IJhE2BjAGCIAiiZaEwQXOgMAFBEARBTHLIM0AQBEG0LhQmaApkDBAEQRAtCykQNgcKExAEQRDEJIc8AwRBEETrQmGCpkDGAEEQBNGyUDVBcyBjgCAIgmhZyBhoDpQzQBAEQRCTHPIMEARBEK0Ll38TWZ4gY4AgCIJoXahrYXOgMAFBEARBTHLIM0AQBEG0LlRa2BTIGCAIgiBaFqomaA4UJiAIgiCIUXLllVfioIMOQkdHB6ZNm4aTTjoJL774YmYezjkWLVqEmTNnolQqYcGCBXj++ecz89RqNVx00UXo7e1FW1sbTjzxRKxcuXJrHkoGMgaIlmHRokVgjGHt2rXbelc0r732GhhjuOGGG7bqdr/73e/i5JNPxty5c8EYw4IFC7bq9gliu4E34W8MPPzww7jwwgvx+9//Hvfffz/iOMbRRx+NoaEhPc9VV12F73znO7j22mvxxBNPoK+vD0cddRQ2btyo57n44otxxx134NZbb8Wjjz6KwcFBfOxjH0OSJOM9ExOCwgQE0YL84Ac/QFtbGw4//HDcc88923p3CGKbsbXDBL/+9a8z/19//fWYNm0annrqKXzkIx8B5xzf/e538Y//+I84+eSTAQA33ngjpk+fjltuuQWf/vSn0d/fj+uuuw4//elPceSRRwIAbrrpJsyePRsPPPAAjjnmmPEf0DghzwBBtCBLly7FU089heuuuw7Tpk3b1rtDEC3PwMBA5q9Wq41quf7+fgBAT08PAGD58uVYvXo1jj76aD1PoVDAYYcdhsceewwA8NRTTyGKosw8M2fOxPz58/U8WxsyBoiWY8WKFTj55JPR2dmJrq4unH322Xj77bcz89x22204+uijMWPGDJRKJbz3ve/FV77ylYwrDwDOO+88tLe34+WXX8Zxxx2H9vZ2zJ49G5dccknDzeDNN9/E6aefjo6ODnR1deGMM87A6tWrt/jx5uE49NMlCAAAN22Mx/OnwgSzZ89GV1eX/rvyyis3v2nO8YUvfAEf+tCHMH/+fADQ94Tp06dn5p0+fbr+bPXq1QiCAFOmTBlxnq0NhQmIluPjH/84Tj/9dHzmM5/B888/j0svvRRLly7F448/Dt/3AQDLli3Dcccdh4svvhhtbW144YUX8K1vfQt/+MMf8OCDD2bWF0URTjzxRHzqU5/CJZdcgkceeQT//M//jK6uLnz9618HAFQqFRx55JF48803ceWVV2L33XfHvffeizPOOGPU+x3H8ajmc10XjLFRr5cgJjVNKi1csWIFOjs79eRCobDZRT//+c/jueeew6OPPtrwWf1vmHO+2d/1aObZUpAxQLQcJ598Mq666ioAwNFHH43p06fjrLPOws9//nOcddZZAIB/+qd/0vNzznHooYfive99Lw477DA899xz2HvvvfXnYRjiG9/4Bk477TQAwBFHHIEnn3wSt9xyizYGbrzxRvzpT3/CXXfdhRNPPFFvu1Kp4Ec/+tFm9/m1117D3LlzR3V8ixcvpoRAghglzcoZ6OzszBgDm+Oiiy7C3XffjUceeQSzZs3S0/v6+gCI0f+MGTP09DVr1mhvQV9fH8IwxPr16zPegTVr1uCQQw4Z/8FMAPI1Ei2HeuArTj/9dHieh8WLF+tpr776Ks4880z09fXBdV34vo/DDjsMAPCnP/0pszxjDCeccEJm2t57743XX39d/7948WJ0dHRoQ0Bx5plnjmqfZ86ciSeeeGJUfwcccMCo1kkQxNaHc47Pf/7zuP322/Hggw82GPlz585FX18f7r//fj0tDEM8/PDD+kF/wAEHwPf9zDyrVq3CkiVLtpkxQJ4BouVQlrfC8zxMnToV69atAwAMDg7iwx/+MIrFIr75zW9i9913R7lc1rkGlUols3y5XEaxWMxMKxQKqFar+v9169Y1xADz9mUkgiDAvvvuO6p5Xdcd1XwEQWCrNyq68MILccstt+Cuu+5CR0eHjvF3dXWhVCqBMYaLL74YV1xxBebNm4d58+bhiiuuQLlc1oOHrq4uHZacOnUqenp68MUvfhF77bWXri7Y2pAxQLQcq1evxo477qj/j+MY69atw9SpUwEADz74IN5880089NBD2hsAABs2bBj3NqdOnYo//OEPufsyGihMQBBbhq1dWvj9738fABp+o9dffz3OO+88AMCXvvQlVCoVfO5zn8P69evxgQ98AL/5zW/Q0dGh57/66qvheR5OP/10VCoVHHHEEbjhhhu22WCAjAGi5bj55pszrvSf//zniONY/zhVAk59AtAPf/jDcW9z4cKF+PnPf4677747Eyq45ZZbRrW8ChOMhve85z3j2keCILY8fBRtDhljWLRoERYtWjTiPMViEddccw2uueaaJu7d+CFjgGg5br/9dnieh6OOOkpXE+yzzz44/fTTAQCHHHIIpkyZgs985jO47LLL4Ps+br75Zjz77LPj3uY555yDq6++Gueccw4uv/xyzJs3D7/61a9w3333jWr5IAhw4IEHjnv79Tz55JN47bXXAIj6aM45/uu//gsAcNBBB2HOnDlN2xZBbM/oEsEJLE9QAiHRgtx+++144YUXcPLJJ+PrX/86TjjhBPzmN79BEAQAhEv/3nvvRblcxtlnn43zzz8f7e3tuO2228a9zXK5jAcffBBHHnkkvvKVr+DUU0/FypUrceuttzbrsMbEtddei9NOOw2nnXYaVqxYgaVLl+r/7URKgnjXw2HKC8fzR8YAAIDx0fg8CIIgCGI7YmBgAF1dXXjidKDdH/96BiPgoJ8LJcGxlBa+26AwAUEQBNGyUJigOZAxQBAEQbQuTVIgnOxQzgBBEARBTHLIM0AQBEG0LBQmaA5kDBAEQRAty9YWHXq3QsYAQRAE0bpsZTnidyujNgaq1SrCMNyS+0IQBEG8SwiCoKHnB7H9MipjoFqtYu7cuaPWYScIgiAmN319fVi+fPkWNwgoTNAcRmUMhGGI1atX4x/9F9Afd2Il/28AwFu4D1MgJFYd+ChBNI+Z6xwtpjGgkkYAgNX8d/DQBgBYiZ9jGCsBAA/0j07bnSAI4t3A2V0/1e/f554NABhOaxjgbwAAKliFWc6HAQAumJ53iA8CAGIe4S08CABYjz/gzxBtcAO063kL6AEA7IbPIcJGsTxexSCWAQCm4xgsweUAgBqG9HJL+l9qyjEODAxg9uzZCMNwy3sHKEzQFMaUM1BEB0I2BT18XwCAjzJCrAUAzGIfRxvbAQBQYEIOymVAtydCCx3px/DnRDRqmc8uxSAXveL/pus3AIAhvILd2GcAAP38RbyJOwAAb+I+zMPnAQDr8CgAYCUexFqsAgDMw0ewXl7gL/PXxnI4BEEQTecj7C8BAPuybyOFGAylSFDj4l55qP/XAIAYHmIuqrsTVsMsRzTfSpCCSSOgw4nhsli8T2cAAN5O1qOXfwCAqg0X99h38Axm4hgAQFEOzHyUASQAgL2dr2KIrwEArOOP4/34N7E+CPnqAfwJR3SdAgB4gt/frNNBtAiUQEgQBEG0LFRa2BzGZAz87dp2fHdqASlEi9V2PgdcWp0pInhMrM6Rnq0Ci+Aw8XmPtxYuOwgAsDZ5U6+zh70fADANH9HTdvUPwPRkfwDAHH4u1vLHAAD7sasBADvyR7U1ux7PYiHuBQAcz76JdfgdACCR1vI0HIYahDUcYj12wEL5+TBWQ4Q7VuP/sBOOAAA8wo0LjyAIop6vumKkHqGG9emLAIB1EPeouewvsS/7tp73vaUBAIDLhpBwESYNEzGtx38WCe+W06ZjMBEjf5+FiLhoupXCAbi4r3rSQ7CDOwUb0w4AQDufhR7pJdiIP2EDngIAdEPcP8tsFkpsit6fKc5OYn/SAOv5M5nj2sG6B7cSlDPQHMbsGahZZtQUtwc+E2cy4Y7+TE1zWQxHXsAA0FcQF2pPMh0bE3EBr0+q+vMSK4vlEKHddcW8bCfsBnEBV9ISAGC2ezCGk2MBACFnqPIaAGB37wtYHQvj461UGAXr8Qf0yos8wkDmWNTFX8R07c47hf0YADCEZXoaALyXfRUA8L106qjOE0EQ7w4+wf4LZXkPKrI+lJm4B8z0a+hJ9wYATEvEa5UPoc8T8fqik73fTCneDACIEtFeOkzmougtAQC4bIOer5ZORbsrwqAxb0OUCiOCy9CBw1IEMhQb8operovNR5HPFNvAejEvTCtrHwW4MrDQ48xEGxdh3U6+JwBgPX8Kgcw1ICYfFCYgCIIgWhdKIGwKYzYGLo8d/KMnRugJB3wZEig7Q3B5KTNv2XsdDsSo3WFVcLk51xlEkYsM1pJ0d1X4sF4XA0fAano97Z7IcFW5spVkJ/3ZLu03wnVEYk4YvwfzdvgSAKB/8AsAgD8PfwUr4hUAgE62I95OnxHzYgNi6SmYgoP0+hyYzNdu7AsAaGOz9LRv+imGpQfkreRZAMDruAEP8H8b6ZQRBNEiMMZwME4CAEyBSOjrwB7oYLsCANqcbrQ76ulRQ8CEZ7PDFfeNIu9EJD8uAgicP4vlgofAmLjnFYM/AADceC1imRQYuMvhu6LCKkpmIUxFAmC79yRq8VwA5r5XTTtRYGIjMWtDij4xHW+jnQlPQApzz1J4zIUn77EJB1wmvK++DF+UsRNiDI7thG0HUM5AcxiXZyBg4oryWApX5gxwOCg77wAAXPkDSXkJqjKmPXgAadoFQLjHFF18NgDAT9sQyy+l5CR6HR4zZS9dxf8S6+LdiC2DoLvjmwAAx+lHFO0BANih528AAMXgt+ga/BoA4I0aMMcTD/53kncwzIVuQg1voZvNBwAwiB9IGbN09m8b60HREdMdlqAsXW3zfLHMHP49XOKK8p1Opx3LYxGieAGX4/f83lGcUYIgtib7soOxCsJFvx8+r0udP4Dj9DxTIPKZVMm0IubiXpDwIphseaemMQAuM0Fohwk3PmNDcJz1cqq/yX3znHe0YcAQoaftLrG9RDzgh8IFGIz2AQAUnDYUUuHar6VdqMpBls8KDeuNeaINAJdB3299JgZxRfTpHDBi8kFhAoIgCKJ1oRbGTWFcxsBlkRjuXxEY/wqzzmh78CQAwGH9cNiwnu67Qlsg5V3aDaYosFB7HACgzTPiFw6TYhupSI7pavs2GBPVApwHSBOR0BMU+hEUXhALyV3raL8Rvb03AgB2GurCmvWiWqA3fg/WRiJxZiDdCZFMxGl3puh9TNg0a/8ieZwcLlPeELG/7e56tLniVA5ahvWB7D90QqKqfqBqBYLYunyUfRVVvAUAOin4MPZLrOW/ByD0Sw52rgMADPG3McBFhUAI4en02DwkEJ7KSjoIztrkukrw5I3Gka8pmNYOGEymgIeHAQCq8XvQHjwMAPC9ZXrfUi68pZx72osAAJ4jEggL/lNIuRETAoCi/4y+f8ZxG4ry3pQyH5DCbglE4nbZKSDNcYNzQCcTBpDhXdY4XytAYYLmQJ4BgiAIomXhmKAx0LQ9aW0mZAx8LTSLX13s13H+MBF5AG3BK6ZkhoWArJ21ceQIP+E+OrzXAABuXUlOW/AQACDwn9PTCsWVcr3Z9flyE+ricH1TR9re2Q/XPREA0D9wMTD8WQDATPcNvFMT8p8VLlbY5a1HmHaKfYOs9wXQ4a1EJKerhMiUB5hSECP/9nQH+FI74c34LRxaOAkAsCH+KwDABex5rMBNAIBd2Gfx76nJfWg1FrDzM/8/xH+8jfaEIASfYCKvqIrVSKTM7oe8yxHK33UsPZhD6QbsF4hR+2B6nJZNB4AdHVFyvJELb0KCEL2u8ErWj7IdmR+gy/44kMj3HEAtFeXSRccsE8XzAACMRXCZTH5O5yLhIpnaZRsRJbvK7XWh4IuEw0B6XMEDeDIxsRwdjMFI3G8Qz0SVq3wEV2/Ps+6R3HpN6x6DHgqIZcL3F90h/L+kDcTkoWmegb+v7oAfdTwAADr5pR6VTVvwnhPJhYCuNvDYVMTSHTal8BO4rvwhJtO1MAek4eC6q5BKd7zjAn5Brd9sy5O/CeYYYyCOgDbxHEeh+F2UBn4NAHi7/xrs2P4dAMBwdDAAYCh6n15Xb+FRJKnYh5h3o7sg3H1xasQ8FFPbr0CPNHp2ig7AUChEjvacJdYb1mZhYOhzAIC3hrtxy9R/AgAsG/hnLIuFBOhN/Ojc87c9cDT7IgCgjJ0xn/0zACPw9FlnOXzppiyyTtRkMlOEIbTLkMtVCXUxI5rDBex5AEAq7yEJqljQtjMAIEw+gEi64OM0wrwpQtI8SaaLV96NSiT6qvT5v0OYiMTjWjwXg7H4XbdzkaVfSx1tBMwoPItY3o9qSS9CLqsIHHGtV9M2gJsbUSpDBtW0D4FMnA7c5WIf0l4wK4zK5brANmaOsxoeKpbzlgIAPHeF/sx3X0FZ3kvjtA2JTCbkch9SsEwIQ8Fg+h44MqkwAYOLsjw/LZRISDkDTYHCBARBEETLQjkDzaGpxsAFG48EAD3arQ8NcFnPqhIBAcCTGgGBuyKTQFMu/aeYN9o9U0YIAJ5fAZNuN8cxX6bjADKPz3zuGY+BVwDSWK0DcD2RbFgqHYWhIWF9T+0WZYhRNAuV2kcBAP2Vs9DT9l0AQBjP1y48RVfpBp3kCAAdHb8Qr/gFeuvOUd8uK7FDJLYxo/9reGv1PwIA9trhw+he/3MAYoQNAM/zr+vltofEw7PZbzAHItxRYN16epmJo2Rw4MqyKY4UkXTTFtCl5/2c8wYGuDjvr+L7AIDH+B1bfN+J1mVnJu4XH8S/oQPvBZC9/j7cJcKHSToVkazbB4DdeveT02cgisVy3V2iU18czUIpEp9Xw4NR8h8BIJKe1cg/jEW4s9dfCddprL/vCn6vE/mSVHg1u4sPo1+O5CtpFxLpGYjSIjaEhwAAyp5YpuS9gOFINRyqgUm11jjdQW/D4yV4jiiB3lj7C7Gc/6QOE9gE7lok0ktQ5WKEn8KEMGw4jGx8Yj0MW8ojQDQVxvnm7aKBgQF0dXWhv78fnZ2do175Lb1fQprjSufw9QM+To38pcoNcN2VKJfuBCC0A5JY1NcyR7jPfL8fUq0YjouMYeBJ28OxzBxlDDgedNAsrgGJNAziCIiEp1sbC0ERSKX7KImBWnUXAEC57VUMD4n3USxCCUnag2Lwv3J/1sF1+/X+BNLzV5AJu0E7UJCnMK4CQ2+L92+vPlTfsJat/yEA4E/xf2MFbgUA7ICFCCFmnoKDUJI3yN18cR43JEWsTp4BALSzOVjJRW3yL3g2rj9admM7AwBm4XB4Uu6pC/uiJMVMZjpGxzyVtckhH9I6DQC0McCR6PBBiggbuHDvrpTH9hp+jQ1YJ46DG7EpYvKirr/34rNwVegJfVjYJq6/ovdHOI74nXH54JvafSF4aoTPOMTNICj06wef/k0nZhCRpl2IIqEZMlw9Hv21kwAAsdRFYUjQU7pJrtNHkgrjN0pmoa0guq4mqQiDhfF7tDHAkCCWA6CEe7r7oKq8Cpz12sgYjudoTZXAWQ9ParaEaV9mkAQAvvMWomSmPA8v6s83hgcjkaEGtd1aWtT5EmL/IffBvFe5AxxcGwMOTJLDlcnYx4zjfWaMZxsPLQDaJzCsHYyBBQ9hi+5rK0BhAoIgCKJ1ITniprBFjYEz116l398y9Z+QcpOdqhJnAjmKVpLCgEiUYTIpzWEAvJXmPURCYGp5vpQNyxlMYqEVLnCsTF7mms+VZwAAApmEmKpkXA4Uy2Yd5eRVAEBtGCi3y/cVUQucJMY16br9OlRhb1ftj2sVVLgB0CbjCEH5txhc/1uxD9LlWBr8BnrDDwIA+vmLKDMRhkkwjG4mvBOpHN7s0fkd7C5HMk8PmOYkn3WWYx1/HAAwACGfvAv7rHbVr8VibIBws/bhWFQh3I+74FQAotZ6VyYSHovYAT4zCYCuvHyinNF8hCEkGJb7mKCCVfoz5WmYBpEoORUfwircI46D7Y4X+EsgJg/KCzAfX9QJbHtDNAaLsAHvdT4DAOjxQkBeqz1d/6A9A8rzxzngumYUzZzsiFpMFC+OI7wDAMDTjkwtf9F9WWybid+1wwa1bHBb4Zd63iA1OiQd5ev0usrSM7Cx9hdwZTJglM5ATY7mVTXScDIdLJkmt5Ho6qUUBTjSo+o5Q6gmO8rjk8mIbEcUZehgfW0hfFl9xSz1wJAX5LryxQPynn8MTCsUcs5RctycuYh3K+QZIAiCIFoWamHcHLaaMXDmum/ill7RRCixLGqlSui6K+HKOBkA+IGw6h3H1PaqeL4zwl4zli0vBLI5BTb2CN1xjZdAxfhTK6aIVCQfAuI1CdW8Yh/DyqsIQ7M+T+0fy3oHAADcXHz2RRgOA1FOuHyKK3IqCun+GORrAAAdbDa6XNmKtPCQnre7/V8AAIcEv8VbG0XZ31vRjtivJM7xQPgxAMA7SUmX08xxjsTGVHhlNvAlmIpD5G6q+KaHiIuRx1x/Fx33DLmPQZl5VHZEfXSVO4i5ORE+ZBMqqf6mKMkRlyvjmxvwDHbCWQCAaVityxcH8Cd0Y+/Msr/mVzaeJKKl2Jvtj11gclneC6H3EWED5rK/zMyboIZhLjwAvcxH0fujmDeaD98XvQWCwOToqHtFEgNJJPIH/KCiPQLqd845MvkFidRGiZJdMwl8ABC4r+myPgD6PuU678Cx7lmAyFPwvVcAAKX0SYTxe8R77//MtuR1z7ivk/vUSB4AkAIOEzeRMO6EIxVPE+6pjaCWCs+ggxTVuE8vylh2zD+W51zAmN6f+vvodg2FCZrCVvUMqLDBbdMuQJJsAAAdOnAB/cPy/Je0C88LTBhA9fdIY2TEhuyHvXrI513M9nw8FUaAQhkYKpnWK+SXnDBmtpFWzfRATeMmVOFbv+9YPugd1+y7vT+FDnOj6k6/K/YFPryhi8X+xH2ANKJSJCg4wgWvNB2K/u/1usqlOzFDVjd0h4ejGgvZ5V2nHg4A6Bn6Kt6pHgUAWJ9A91/3k4OwITVSqQAw1dlThwNq3EVf8LTYH+dtVJPdAAAbI1Fd0eNwDCViXTHvQSRPZgebjn7+pjwm48qc7Yls7j6+L15JbgcAzGDH67rxQf4K1uFRAMCOOA0A8HfOOnhMnOwKX48umUj5Dn8ZP0z3ALF9cST7W90JbxcId/88fF6HkABgDju7Ybl2R7jMY57AU7E9bNRSvq6zSifqbo4oLOnwgTLOa9VdkKZCxpw5GxF4IoQWxu/RGihKBChKZoFByZFHus5fSaID0OsCgCQVWgYu24CCt0RO69UCbCpRMGUBYllt5SJBIpNv7ez/BC4S2QTJyXm0J1bCbgIGxo3gkUInT3Jz2+QwHWfzdIjbnCEtCPe9UhV/V5nZMA/x7oLCBARBEETLQjoDzWGbGANnrPkRftb79wCMHLFNEPRrBUHAWPNaT8Azo+9CyUxnzIQS/BGE7rTHwE7us+tsrO2qdWUMZ27WoRIFvQCI5WGU262SJatkV4UZnLrupWobiXUalJci8F5ASTZsSngRRUeMIobSNmxU666eDACoRPuivSAUINuKd+p1dZRuwBRfrMOTI6kpuBJthV8BAEqD/4D+WLgcC6yMTtm33bHcFh1y8NHhvZ7Z95LUaVAqksPJLuhwTSKoSojakLiY4syS87KGcUibk2JXiOPYmK6FEoadxj6ELuwlDlO2m05QhSdLxrrYTD1qnOG8B191xclUMrLD/M9g8hJfjV/hXv5PILY8+7KD8T6Ic70r+xwKEN4i1SSol+2ty1EBIOHie+v12q1p6p0LV14wQ0kH1g2LZNZy8R79O7Nv5vr3lHTpBmauuwq1UHiNbD0QRaX60dzjYDJU5jpGEVCURYuQguOsB5cje9tL4LD1atfBZDKw46zXCY9F/xkAwHD4IYSpcPGHaQ/apGe0lvQi4eZGkacTYPaRI7FuZpt6rrkjrKbN3dgwjXMHJfcNsZyzAcD26xkgY6A5bDPPwCfXXg0A+K8Z8ofIA52lG4Zd8AvZTGGboM6FXxTevMzDV8Gc/JwBxqANAjt2z+xpdsWCWodtOFj6Bcp44RxolyHHNBa5AACQRGYZL8dQ4Tx/PwuucIsmaTeGYuGW73DXI5U3IZVhDIg+54Comy4X7tPThyvCxV4IHtXTKjLjuew/A98VLvwgPBCDTPZjUAYWgKo8P8W0E76s+kh5CR4TNy9H9qRo95YilhKwYdILzxFGQol3oCa/sG7PurHKfQ95Eb78oousE64VPy0xkVXtoDGzOUINjuy45oIhlW5UX1YrdDAjDjULp+J0JnQN3sFj6MefAABtEDf2DfJ/AHiG/65hW8Tm+RQTIaQ9cImeNt15j36vwkYJYrQ7omrAA8/EubtlvF1Jkw8l0xBKN3nZGYInXe3D1RPghkKwR8XzXXcVXFl5lCQztOs+it+npcy5fDjb1QOOM4hIGsRKs8DGd60eK3J++UnjvN7zSJTwUQKk8losF+9BLHsSVEKj0TGl+DMAQJjsgSEpgtQZPKl1BGppL0JVXSQNbYeFiFMp4MbbtLs/5AUtcqTOaP0tRT34laEj5hWPgTbvJSSq4otbvQ2c9Q3HuV1BOQNNgcIEBEEQBLGdc/fdd495maOOOgqlUmnzM2I7MAZOXSWaBd0x8/1wHKFC57r9eiTtuCbRz7X2tmgJRdkj6rzRtRr5530GZKsT1Lx5XgYxQ+Mk5pjRvmclDRZ7zDZDky+FRCUT+iZs4BXMPCrhpyjd/oBQYhTuOqCW7IyC+5pYl2ygFFoVGg4bRFIVAga++woCT/Rn3zj8KXEIdaMf3SDFossVSU5h3WdqRMHhIayTibbVJF1WhSt7wLe7MdrkpcYQ65FIyROJWEHajpocxfmsgGoqTmLME92XvccRI6Uqr+kGSD4rgssvpJbm503bCYtFiHPUg0PQjt0BABsgRrO74DxE2ABAJL2txRMAgG68V+siFOTyFG5o5Cx2L9qlJ6YL87VewDAfRpmJ9zr0xD1EVmyvJMMHgdWttCxH+w4LUUuMqHcKcW2E8Z4oBWsy+1ALPwA3ERobjrMOqbweE+u6VGEC13lHT1e6HgDgOW9qDZRU6nYkaS+CQCQCuu5qLbHuOO9oD4Mnq6IYC9HWLvRC7JK3JCmhWBRhNZlPCc/5s66s6m77NvzqSQCgGyiJ8/AqWGx0QwChg8DlzbCW7Iyq1CpwkeiQgq0v4DGlKpj9jUwt/iLzf5z2oU3eK5K0V98nUl7Cjd0/AgCcu+ECbHdMMEzQKp6Bk046aUzzM8awbNky7LLLLqOaf5sbA4qPv/kH3D1buGwZTImQ/fxWrnjbze76lhyxa9zxLCcEAGQvGjsEoe9Njlnv5mS6VejAfg55RSM3nCaA32beA1YeAoBoGBl55M3RURASw350MCLr4Q8AnmMyq5O0W7v2krQX1VDKqjJxcgr+H5AkIoaf8G5989tx6uEYGPwCAGB95Ry5spk6r8MWNQGAVBoKqWVcpFAx1ATccjUWXSFm5MpMarFtcXLa/GfAowMAAGEyHVM8ue+8qEuuavIcd7k+hqUgS2p9ud1ugooKncgvJOJAwDrkvBFidOv5O6QxoIyCClZiKkQb62G8AU9K4FbxFnoh3LqBjH2fxx7TGfIdbB7W86cAiLyEydbG+SOyFHAHLITPxfdSYD3aCHPhN2jgM8bgWA+rWN2G0k448hr15bSuwq8QyRh9NdlN9wAYCg9BKkNS6lp23begLtGUt+vqpCTtQSF4PLPfcTwPpcL/6HlrMuSQJLNQCkSfgjCW1SlWfxXfXaZlju0KgkIg82esO2rJ2BiIo4ouHQ58UWZYKDxiJJXTEkpFYUSE4S4IVd+E6INw2b5iuuyDkPJ2bdQU3ZcRSAGiarITKtJwShsCBEDB6UdZhmECmQ8AAG3Fe/R5CuP5Zn5ftEyOk53BeWNIZHthMukMrF69GtOmTdv8jAA6OjrGtO4RxsoEQRAEQWwvnHvuuaN2+QPA2WefPaZeC9uNZwDIyvoGjkgEst31qg7f45Y7nmUz8esZKTSwOVGNjLVYV02gsD0CyksQWeEAv814BhSVddn9VetwfCBws/tcbKugVBVWu7thte5rXi7cj+Ga0AngenReQFkKsojdFJZ8Kfitzm5WGc9J2oPO9u8AkB0g5fFFYQmzdhJd3YpvPQQAWLvxmxiMhPCPwyKd/VxwX9NhCyazwZPUXHgOM0IvLgZ1QpLrbNBNWBwmRkVx2ocu2fDFCw9BLTVu4R0KogFUNRYu6I3JTExxxUlOuK+TFOO0gKm+cNUGsrFVNS2gxsVIs8ymIlES17ygtQxKEKOtAnrhSBd0GTvpKoYa3kIIsb9tTPSjZ3DhwbinZjnHAgCm8ANwFrsXADAE0XlyByzERpmcGGFg3I2jtjcOYuL6i2Cy81UTq5gPooOJZLkYNdTS7I+QscaKEoUnR7y+s6bhMwc1JLBkg32R6Om7Qh485aYpmu8ug+sKCWzXWaWT+tTo2/df0A3QHDaI3h1uBACEFejKA1eOuMN4H6hkwSiZB18m9SrRI5vCCFVMucfq9uvGauAVxNKr6Qevau+DqFzYV8zP8nUVPEc0MPPSHriym6MvxcFUpQ8gQiwqlOe7q7Rmg6qIKASP62TMJO3TegnF4DHdRA3YPsMEWzOB8JFHHsG//uu/4qmnnsKqVatwxx13ZFz4bISHy1VXXYV/+Id/AAAsWLAADz/8cObzM844A7feeuuI273++uvHtJ/f//73xzQ/eQYIgiCIlkWVFk7kbywMDQ1hn332wbXXXpv7+apVqzJ/P/7xj8EYwymnnJKZ74ILLsjM98Mf/nC8p6ApbFeegY+/+QcAwC/n1JX35BladtmfHFHr8r1RwHnWO2A3OwFE7M+WDc7kINRfPNw0QHKt0Fr1HZMgmFr7NkKum06KVOsIh4Ci9Cz4hSeQxCKprTIEuFIFbWD402KGxCTwTWn7N73OJJ2uR0ylQCRrMmejHnn07lSBq5o0RRUMiRxOdHSKEdRw9XeZJEVV2sV5EYxZEowAwBI4aGwO47Ih3asdADwZr1SJja67Qpd8dbd/S9d9h/GeOi7c3iZ0EbqTnTEcvR8AMBjtoRu2uN6AjqO2++I6CpOdsC4UyVgbkhQdUgY5Qk2PaGtcHM8U5z0IVWIiOhBxUYLVyd6ja+LtZMQ2ZpLSIjn6amPTdKvmdghPRsoTTGMfkfMN4fOyD32ZTcV0P5TziJ9hJS3h69H2qwOrZKIH8Qo+xP4LADAsG1DV+DuZPIqQm3K0GOLCLsr8DRcuYpnM5nEHsRyTMOaikmTr2duCx7SKn+usQxqJ2H7eKNlh6zP1/krS3OOvIk1fzczr+UBQEN5H1zO/eyFHLuL/1epB1hKR3IbxhDCEWtlQ3R+SGGg3l4b2ZtoaKKr8MU66gLBfbzdQqRMJkCbCy1UMfotK9BE5vV3vg2pbzFgMrmSKWQLH+p0p2n2prmgl/LpsLQKpE+J5RnVUSzw7T2jPSZzMQbn0nwCAO2aKdal79WTk2GOPxbHHHjvi5319fZn/77rrLixcuLAhka9cLjfMO1qq1SquueYaLF68GGvWrEFa91B5+umnx7zO7coYUNha4oB5UKuHPrNKztMo37IbqYJgpPBA3jrU9riTXZ82OizRExUe4AXA8szpkECeAWAnP9pGhHoflLOJhcV2s71h+cxVrvaC149AdlsDgPb2e/R242hWZrvldiPqFA4DylPZORcoy9yUylp1Dr4G/21xIx2qHYdQCa7YNyTdx6CxdlnhK5ctW4t6fHcZnEBYIUkyA20l8aDx4/dpzfhEJg367jIUZcIi555OXvSdVXBlNYpdLdETPCPOT7w7BhPxMCowByFXHeJkJznO0StP/MbUQyR7LES8pqVxE/kA49bFUnBcOFK+tsaNIdQlO/ElLEIkp7exaQhk18c2B4AMWwQy3BI4G/Cdovg8StvQFfxRHnsnqjI8szYSxzaeHvPj4Xj2TQDAQd4/4hDvXwEAIU9RScVDce+SOBf90fvRn4jzM8D/jG5HhAkinmMcZtIHjW3NwcBY9odSifZFwetqWEct2RFOTXS97CzdJtbrvIVIhpM4D+C44npwnP7G3731e/cDIzGehMDGAREmiOXDM03b4ciE3DTt0VVPNr5cvmCNYxzfGAN2uFP1RGAIM/cnJVxWfy8qek/J+UW4LuUllHyTEKkk3dXvERA6HwAQOOv19LL/DGqJeCBV4v0gi30wpeP/J9ZviSu5LuBJo8VPVgrDBUCh+ETDsW9zmhQmGBgYyEwuFAooFAo5C4yet956C/feey9uvPHGhs9uvvlm3HTTTZg+fTqOPfZYXHbZZaNO+jv//PNx//3349RTT8X73//+EUMTY2G7NAYIgiAIYjRwTFCBUL7OltVsissuuwyLFi0a/4oB3Hjjjejo6MDJJ5+cmX7WWWdh7ty56Ovrw5IlS/DVr34Vzz77LO6///5Rrffee+/Fr371Kxx66KET2j+b7dIYOGYZx/17CEvHsUblsZV4p0bnmRJA1ugJOGixuUqeWGisp/qmRfWehBE9CJaFn1pWv930SI0C7I6FRTm4SSPzuZ2kmERmHao8KYlMGaVvravUCfRAKgzKQcpg5RNgsmyvVLpHz1soGbekYx1Tz87iNegCpMoxeAp4Mizh5OQqBe4L2iWZ8hI86aLnOrlqlq67Lriv6ulJ2oEkFRZvMXjKHLMc7Ufx++BBuCpVvTYABN7zcGSZVxSJkqc42QmxLLEqeMsRpyZpTHkEVBjCYf1iBATAZ/3okHLFoVVXvoMsCUt5CUOx8BL0eIMYkl6EFAVdEtfjmpGXajATchfdrhhiVdIyatJLoMoe25wCEnlOIp4gkBdYwkXSIwA4MgnSYZFuYlPyTelX4L6Bkv+8ODYm3OSXuB2oSFf86/wnWAHR6GkAq/GabAo1XvZgotxyT1yCOewceZyp3vedS/+LQOpcqHPeVbgTNVmWNhB+EP2JOsftGE7F8SXS1Z7AlZ4RgHOG2C4zlOckhPhei+4wKrLEz2VDuomQmFeMfquhCBv53jLdUCiK94AXyXBUwYxmK1Vx8wz8p1Eoie9zeND6rXJTJjhcPQGAaE6kOhVyHqAWfkhs352Dorw+40h6yarGy+D7QM1S+rXvEQrlMYxCc8+JokZPCGBK/exSx7bSz3QZYmIl3nqODHm5b+rfacq7dJiD86Iuawzj98l5l2lvSpJU4Kr7kQsEXr8+P+9WVqxYkcm+n6hXAAB+/OMf46yzzkKxmM0sveACk4g5f/58zJs3DwceeCCefvpp7L///ptd74477jjm0sHNsV0aAwBw1Aviqrt/D9bwI0oT4EOPjf2qPGgxNwZBndteGQE6tm8ZFszJ1xxQD+1CR35FQ9t08z5TZSBdiUktaxjE9TkPdQZJvQEjXlUc0WyA1RlFQcFMB0Q3xVCGPt0S4KtchTZAFgagnNj7+P8BAN5ac4V2T8bpzIba47bgIYSykyHnZXSWRPZrFO8KrmROARRl22UlCgMrzhsnc7RB4PkrkSYl+V70V+AIEHAZQ2Yb9PZS3mUZH716H3xnlXzvoeS8qLeT8G45rzj4dv8P8B3hQh2Kd9fzdVrSz4re0n8hkTXmQ9G+WjCpy1uFqtTDj+S5SQC0OaGeZkd0XVlTz7XUcgQmBWJi3g1HtYN2gDASLuuClI7erehhvTSQetN/xMzk4wCA1filrv3fGX8FQFRBMLmN6e5sDEgX/7r0jxiACEV0Yi8twDQLRqtfdYVsdzjaZKhHnVtAiFrVU3T/jEQ+tAfTNrQ7BXmcAiWLAwAFpwqkMjTCHf0dKqGhSjpFd+gsun9GJL8vhgRcam2EteMBAEG0Bp6Uy/bdlagOCe2KUviIdvP7ngilDVVOB8edYrmCsXzfWf/XGREiQPUVkJoFiYnxJslsxFLkyE1e0NNr8rdVf0+I5P/MEYYDT0umj0lqaZ0ghKNyEbBEhyWqodDBKAb/qx/aPO3QugUpn4LB8DDUo84ps+4RgfuGllh2mWnDrPo5MITgKgzoWoMleQ/5710Yjn11+7AMmtWboLOzc0yleJvjf//3f/Hiiy/itttu2+y8+++/P3zfx7Jly0ZlDHz729/Gl7/8ZfzgBz/AnDlzNjv/aNhujQGCIAiC2CzbaW+C6667DgcccAD22Wefzc77/PPPI4oizJgxY7PzAsCBBx6IarWKXXbZBeVyGb6fHZi98847Iyw5Mtu9MaA8BM1ChQ3+cJjxOETVrEtfoS17Zj53fNP9y64w6JY9cZKqCR/wBCjJgUTJMZ/LBGI4HhBLz7NdCaG8EPXhh00pZXnuaygExh2qEgTzjssrZrsnRipvJqepU23Q7ENvz9cwPHyo3N7relSkRkspn6L1ApLUjKB87xWd0JgkQByJEbiSba0OZ3vLKxigs7XjJNDb1TKziUmMdFi/dhGrkRCHr93KShMBEKNGj0u3r5W52VW8GQBQTuahI95T7Fu8KzqkLHSs5W2n6mTF2VNOQUU2iBqqHY3O4B25nPAuhOk07S0oOFV4XMkym+tahQaUV0Ch1ByTZDpcOUqrSGlal1X1iLmadqBXNgTyeBlT+EGZ9fQ4cxBYca82Jka+U7wPYmMqqi2G+Ntoh1j3AH9Rbj9Gvww5dKEPQ1L2tppMRbvsYJnKyo7AWZ3JtOeyQiBgCWKpMdHmGPVJez5PZsAn3NchA/syjKTngPPZWg0z5m1g8gfhWzLGw/J7C9JeFDyh9bCx9hdwmbiu1PfmOmsxtOEvxPLuK3ClroHrrMeg9DSoxDvlZgeg5YMBIE2nwHXekvOKY3fClVprYHDDSPLo4pp03EquIiqzwlGOW0GaimO2VRSDQCoX8v5MWEF7CLna326E2BkA0F74FTzpKYtT89BR+iW+94r2gKTpVHAIb5zD+02I0VJ73V7Y2l0LBwcH8fLLJll7+fLleOaZZ9DT04OddhIevIGBAfznf/4nvv3tbzcs/8orr+Dmm2/Gcccdh97eXixduhSXXHIJ9ttvv1HnAHzyk5/En//8Z1xxxRWYPn06JRBOhPc/bK6A3x3MdNa+qlSwz62d9W/TIb0zjg8k8vfbNse8T+vd/nL9KkafxpuXwlSGheOafXMcU3LYGQt98YH+U/RDOUm6kMbiZuGVGssmowrgy9BrNAi4VilUJA2VqpUwrQwKvwCUUvEAj6JZaGsT72OVO5F2IY7EQ7BcvkfHHMHMcbZ3AXEkqhNUWMTzX4UrhWOiqEsbBn6wUodKAtl+OU364fsyyzl8Hm54OACgFu2nKyuUMYAUSNAhl38tYyyUZQtnfYxsULem7SjdAF/eIEv+jjqrXGWtp2k7fN90OSwFD8nDjFCNDs6st+i+oYV0amkvAkfkF6SZFrWunPcVXZGR8nYt9+y5axv6QCS8qOctOCkiaUfs4OyMDt44uuj2VsnjNB3vhpKp6JCxLpf3YSBdnVmmzzkUHY5Kj4+wgwzvDMd76q6C5uHcBcgyUHBXV0iwtBNBXudR6bbncPW6WMrh1BlECfcwvXSn3O5eqCY76s/MtsXySVKEK8tdq8mOptLEfRPV+D1yGfGwFOJXYh8GasdrmWyHDVrfgcr/6NIyva6zBpHsPshYhGqY/b7jZA5qFRPmCqumdXJ9FUIczdLTOEz4wGFWJVPOg8rzTZlktbqHzmFQQmTqmAHRcdAO5RQDIdSUpNORJFYcEyKc57nK6H5Di8DxtANQeUcqXDBpnxzAk08+iYULF+r/v/AFIeF+7rnn4oYbbgAA3HrrreCc45Of/GTD8kEQ4H/+53/wve99D4ODg5g9ezaOP/54XHbZZXDd0VlZjz32GH73u9+NyuswWibxV0oQBEG0OlvbM7BgwYJMeXEef/M3f4O/+Zu/yf1s9uzZDeqDY2WPPfZApdJYtjsRyBgAcPDvOH57kBi+2E2PbG+AqgZwC9CuMum9Q3EGtHCPjdcFxNLrzXO8BLZXINNsI6eBUppmqwFU/XJiZ6Sp7br9GTeeV7dv9v9uYMIWSSg8Cfa+uV7WJdjeLV6jcKXedqBCIEk/XNeEKpT3grHsD64gt6FCGXEE08Sl0A/wHEEZx7zasq3Ki5Cm7RkXrj5WnQVeRiCzsd2c/uzl8i8yHhSVgR5HuzQ0pnGcdWK0BCngJN977goUZKKkqbCYAVe6sX0EmWTEQPantwV0bO9DlIgRaC3eHe2BuHkMRjKTPe1CIt3vJacfBSbla3kAyIz8Du1ururRc6f3B6h8xaLbi2FZd+6kZQQyWbBDytAO835Adh+cUb4RYTLXnC8lW6sSMXkbfOkyT9JupFaVh+3GB7INr+qbXyl2bL9Cv6/For5+p96DsX5ATO+vHaeTCbvluQmT2YjU9YB2HWapxLs3bCdOulFLdjYT5LlMWJv2EqgEO4f16w6G6hXIJuQpfYNC8I6W9w2lrDEgPT2ywoJJfQnGQl0lA0DLJzv+SiTW7urQmVx+cOivtehY4D2PQvComF49US+jhMIK7jJ4UuiqGPxWf14oPKKTBYet5fTyvAceTMhOHbfjmmv1f/YUP5gjlm7jRMLtNGdgS/Iv//IvuOSSS3D55Zdjr732asgZGE8iJBkDBEEQBNFCfPSjouLniCOOyEznnIMxhiTJN7I3BRkDkkOfEObh7w4xw+9AVhjZHoLCVMBTlUfWdL/XzOvIBKLIGuAmNfO5r5ZPzag7qlhqhSpPwDGtnJMQ0Kqjjon5myKoXyAKjdylaoDi5nzDXtEsDwitAUV9noOtgOgXjMcgKJrRvK3/YBuoagRfLGdVI9UIXOXuuZ5RcIvCbGtordymZKJdwFHnJDYjeI4AtVAkzikdAtcxaocqXwAAisGDmbirmcfsX2qNFlRymOuLkVuSzNCjOKWrAIhe9+r/ooxne87OugWvyzboz1NeRCobIyl1Rof1I4rFd9jV8S09cguj/TBcOwYAMEWWaw7VjkZFxsFj3qZj8C4vwpelfErmuOy9nmkdrRLjXGcDPFlmWENZX86+/LLKsBLTnH5M7/grfczDFaGzXi6JnJVK9aOZfIk2mTMQpdN17N2X30dilZkCQJxICWdvNcr+M5nPZu54uR4lDw+a/ZnWvkgnvsUyWXWHzq+gWhOldcPRwXrkX/Je0u9TGM+MOg+2doGN+a66dFMkx1mvE1fjdKYu61MjdYZQSyJ3dr+KqjztUWQ0OPS1Y7VAthNumbMRrhyB16oHIeEqYdbMo0bzVXaYyZEBtOy38moAQKkoZMh9/wX920uSLr0f5eLdYh/j9+nmRC4GdYIwYPQ/tBcMK3PP2bZga4cJtgcWL17c9HWSMVDHwY+ZagP1YPRKJmEm2gj4MuGuIPNv3A4grZj3irRqwgSx9CiOlPTpeI11yWliDAPAfG4nE9qomxCzXOm2MaBFTYaMMEpgyae6JRP6UGGPYhdQ2SCn+dBPzCQ0hox6qDue2V+/kJ9xzKzkKC3O5GWTHNV0O5dGTUvTbKWEkXn9rXa/hjKjPEmnZYwAVWseJfP0uVLJiMwWt0psV7D5UtT6XXeVvimKZcWXzK2buw5F8EAnsqXJLLQF4kccpzN03wWF56wy+xjN1zrxZf8XaG8TD13VUa+t+AsMVcUDeah2tE4w9HOkclMUMlLRNsp97iCFih+oahmHuZkKgFJZJpF5QLEoultWZYJcd+d3MTQsEtWGqiegJkMcbf7j+jiVlHXRfRkJl6JOvF1XUzhsWCe7dbSLJjBJDHTLdgVTnH70Dl4IABhYC3iekHitSVldW3Z7h6lfQ7UiDKu3+q/T/SoiGUrivCiSHiEqIZR8NkOs36tugLZRCQCuK3sauG/paW0lIQJWKJvrM4mBDnmvCKsrtfGsjJtS+0pENbGuyvBB2iBgiQk9Oc46JLGs1pGhF1uzI0z20IJetgR44IpKimKQ7SGgbj+u2681PNQ17nnL4KSymoC3Z8SNdIjMVaJFm09+3lpMRmPgsMMa9SQmCnUtJAiCIIjtnOeee66hIdGmeP755xHH+YOAPMgzMALvf5jj/441w3g1kvbaGuct7gowlQy3BnCs0baynhPpGai+nW1aopsvOUZ6WHkkYhg3fZpmNQPUdDuBUMkOu152VK3RdczWMkXxZ+8rYMIa9r5GVcCX87qBUWBUpWNpnG3MYo/21Znk3OyHLbus8HwgtTrAFcvmvXpVv4esZ8CgerLHiSkXBKxacKsePpShFddS1xP7PxX16JJHfyVSKeXqpKXMqEl5D2y3byBHXoG3VI/u2ou3a5eskmVO0yn68yjeDa6sCXecfu2tUO5aVfYFCN0EO/yg6uvViNEOZdh4znqUZOdIDhdMHnMiPQQRd3XjoIHa8Sj1C+ndGbPvQfsUdZ6E8l5YAQploSURrd5Vb4PDR1vhLrGfsjwvlOENM4+5IH25P0oVsGw5T5gLFOShdAIY3iDed+u80ZWIquI3UB0CuntFKKhYXoiNAyfIlUjvUXggIukGD5O58OVon/Oy0ang5vZoRuPrtTRxkk5H4D2LesomdxJVmTtZKBmPgbpmk8R47oLCE4gik3CoOxtG2U539jHofbNu4yo8kPBeuY9TjEqiuwrMSgDUpYxK0zwFuCzFddggUhWE5IEOUahrEjD3i/t2ZzjmpW04vJ4kCYT77bcfVq9ejR122GFU8x988MF45plnGroljgQZA5tgv/8WV8mSUyyjoAR40kPsW88LTynrukD4ZzNdhRfsB206grGmHsC220pl/ocV4/p3UvOgtV3qYSjdsTVTTeDYhofalySbB+GoFsY1IYpkk0YjuAO5tQ65v34ZYMqIsDQU7DBApvW0ffVZ7VvVMac57aLbpopOi4B41WGQKgCYCgAACJx1cF2py5726CxvAOYGad3cdF01Av1Qd9x11ntTyqMkntOkgiRRN+5Z2rWvohOcB/qm6nuv6Bgz5wGU574YPCgWid+HUOrwJ8ksDFVEjbIbrtSCM7XwA3oflFAOsKd2aefhsMHMA0PFlTn3GrpLAoArQwdKEwEAOgv3oly+p2HegkxadlxgaIOct+O7CGsif8M2ikpSvCnwXtS5EVFiDIcwmY6BytnZDfAb0a7OU5f57sFNtYqi2GlyYTzf/F7aOgFA7PvGjcfo+X2rda8yAOyQgC237Xuqh0U7EiWjDSCMRZ03r4prizm/1QZAsRMoy3tENAxI9Wn9+2exMXwdBwhkT4QognbhB8GrWnrYbHMP+O4yvY8xjPWhqmdUfw4xkxKvmqH7ETBmKgRUSML+fYxkQKoKF45AG6ZpTmfKrclkCRNwznHppZeiXC5vfmYAYZijkb8JyBggCIIgiO2cj3zkI3jxxRc3P6Pk4IMPRqmUnxybBxkDo0Sr9w2Ihj4AEKr8IdeECZwyUJBeGW8qIIXA4MkR1NBLQL9RssxIFyt0Bj+vkym2sujrrdk0Ma5t13IF2u56m0jmhTmeCRt47SYMorwUflmEB9Q+qn1zXKO9oKSNM2GGOm0BHRpw6zwCch+0roFrzkVQV4Wg9qEkB0KOA1SsEnZPVVuwV+Wxl+AH5r1y5yfJDJ30l0hZ1jSdqqfZGeE87QDkdEe6Vf3AhCrKHeZ9WFmJWlWO6FSnvFp2lKUSFsXIVeybClV43jI96kySWbpPfRLP1+EDlWA4XDvOnBP4erTvu6/oER9zxMWT8pL+3IaxGK6sJQ+cNUik4qF6DZz1aLOy+1XIptBhEkzztDFsSqV7tKdGjSrt43BSc626rAJXnWsrlFOzBp5aRtu6vlT4LInMtR60A54aiadC+VIcg0j0qwzeh8qw8F747quIpN5Cmk7RCY+qLt/el8BbqhUpU25G5MqNHtZm6aTAIrJdC+up/x2r34XLAcAcdLHYL1+FdyMM70GtpmTBV8CNhDcjTPbQlRGqWRdDpMNRPAr0b8B1VplmR9zoaHCr2kLDwoavl6cdSJla17atLJgsnoGHHnpoi66fjAGCIAiidZkkOQNbGjIGRsH8X3C8eK6wjT07XKNi5klWYTCWoVyemHi8Io1MTDyqZOP4DclwLNviWE9mVs6AnO75QJJYSXDWBa6TH+V2M+qEZZNACAA1WREXyhFNzQyKwJhZl9XfB+VpZh9rG+RyA2aEbyfApjk5DIxlGycxa9Sp5vGsfYylp6LQZdbNORDK6Sp5kqGiT4MfVJAmqoxwo84PUNrwKi9A70OmYVJd7I0ZXQTOzci0cxoQSYnQijxvQeEJVCui4Ust/KAuDXTcFxBID15Qkn0ZaiaRcXDorwCrhKy+5wFg6uNdZ10m1q0SKPVIPO3N1KLnkaLQkD9Q9F7RLavBQryzTsTbeXofumQqQCDzZ9wACKW3KYkBhyn9B6Dcpjwg4rVWOxSI3ysXfB2VeD+9TcdSYwREkp3a81oFcCzP1Oaa5eQll6ppjJnvHslOCPznAABR9F44ED8C5Y0pFB/PqAYqOFZbTbqE96dSOwLhWpGnMjx4n/ZIhBVRbjvS/tQ3FNMJt/a8yhPCTK5LkvRpL4vHV2mPQGYbqs25u96aZrwAdslsqvtEhPpzW3EzjySehbtni0TdE1esGHG+LcVk8QxsacgYGCWRvLnzFNoI0C7JHYBIGgDpsHFtV181dfvxBrMu9bkb1LnW5bwqNGDfzEaqKLET8zxfPIiSxNRe+4FJ9NPGgG8e6tFGExpgSVaACBCJT7G1bbWOoN1IF+vP2owBkIQmFOH6+UmIm7uZZ6oerH1XBllqyScXBoxLtqIkoC3RotQSePLQb7L+pVHAWJgxAPQ+INRZ13a4RVc0uFlDRc2jJJdtF7fvLssmg1lCSoBIhozkd18u3o2qbMIUxu/R0reJktu1hXLSqegs/39iG/4S3SyqIBMqa+FBWogpTnbKLKvq/QHohkoJrAOSuM6arOtenipmuejt4/KC7P+ALT+9ChF20x8XZJOqGnZBVVYcKINmuHIM0kRUMRSKFTDLCNOrl99FGtclxlpdSfMMA6M18bxOKC0Vf52Rms5DGRFJOkMnqDLd0dIkF8bRLti4fpXe9yG5Om2sOkZi3O5Q6nlAqqZzc03oxoEe4CRiH7zUJAq6znpUpBAT52bU4jiDcnuWZQ/kGjh6Xe4qHT7gCHRirPotcLuKxlmXH14gWgoyBgiCIIiWhTwDzYGMgVEy/xfiinnhL1nGpQ0A1RXCOwAAtTdgPAcOdLvi2BpkqJGtExjPQeIAvqrRt1UHR6kZsSktinpJ4mKPcb/bxxIPGQ9IzfLW2iN45b0IB02oQOkiOAHgq1IzH6iKKifhIbDliJ26VytpsB6vcZCql3OLQDpkfyCny2OLQzPNlnYGslKwDeu3wgLMqVgSrnLZihn58tR8R55vzpU9zQ1V++WpurQrTYB6z73jAr4vZWiTqXDYerk/jV2uCt5L+r3nvqbft3f2I6wKj8DQkOmNbq/DLi10mbwwHcCBpT0NIEpmohKJUsYSC+Ek4uJY/84JKFezZYa1Sl0ynNVuWzfbUuqW7ipTq58Y1cDAXQGXZdX+xPwVdRBmmmcl3Nkqm/LasD1RdsIqt7wUKmyUciHVK5YrwQ0qerqapq4XzoOM+9wk5AkPgWeVKwLmOqsMG+0ARRwZL4HrmlbgjmOpdFq/f6U1wSypUiVVrAhckZ2smjslaS+cRPxIfO9PuhzQbrDFdIJsPzxLrtiTichZL0xJnr8K0lSev6SUSVre6lDOQFMgY2CM7PFTjte+KH4xgYyVp1Ugkt5f5gFcPTD7zXtF2uiR09RbqJxnhXv0OvJc7g6QqF7jTPyY1U64KmQgvcPxMBDIh7ZbRKYfQUU+wFXVQOam6hsDwO58yLmZ13bt54YGPGOAqHXZ0qZJLbtcqGLv9jrkctEg9APCDlmonALUufWN2IuZWbntG3MGGkMD5rM64SNVTWA9S1UMOKyZhxXDq3rbqVPRoRz1ueeb98Xyq3Bqct9YaPQHtJxuGSWpT1AsPoBiyboZK6NIxpU9d4VezmH9OlvezhEouMuQOmJ6NRZhBt99U+v3Z09AqDvyDW4QD1G/AAwNzJLHvg5+oaKPSaHyLBynAo5H5D6u1vK+tej9prZfuajTdlNtEbya22uDWW53Pc1+bxmaOqRQd23q/eSVhpCC61bAZdUFrxOjUudYGQi2eJXj9GcenmFN9jSIZKyehUhTWdWS9GvDIIxMZYzjQvdbVNVCqgJGoYS1OG9DnM7MfOa7r+vzmz2mfqTymlf77vkmbOF6/cag9cxvnHnmelChsDSuYBx9cYgJ8tJLL+Ghhx7CmjVrGpQJv/71r495fWQMEARBEC3LZHQM/OhHP8JnP/tZ9Pb2oq+vD8watTDGyBjYWuz8/8Tl8/YPzRdQkvlQ8XogkZ7Xwk6ATCRHbY1ZXnkH0iTrHlcj9JFiWJnpyvWaM9JJ7ZGv3XFRegOKvUAgS6R5Yo3KQ6ErYBNZA0OeZpMQ648nYVbC5ChEyfSIjlnqi2ld5YScR43209iM1pkLDCmtB54fUtHHb527JDG11VxrM6zKJEepER1zK6ab4Sg6eeiERXtf1KjKAZil1mbrRqj5bPdwXga36k3vuSZrmyE0VSceUCiq9TZ2ZqxFB8B3hCs7SadlEs3Kwa8AAAVPZNbX4r0bmvTofZf7ppoBhaFJjOQIkMoLIHUaQyf135MKGXjOm1oi2DQDWp3pMGn/BnRIIDH/Zzw5St3Pg/aWqGuLW0+QODLflxdY34GVmKhc5jGyUtD16oCA0QUQ4QlxHqIa0Na5Ur8X2y2ZjH4m/hfHYa6RyHJYKa9Dks5AaiUsqgTBMN4xo5oIAGGyG9qkeqLnvg5P6lw4jqi2AQBuaRoUVHJuYr6n2NJv0OEfywPoFwBn9BL4TWcy5gx885vfxOWXX44vf/nLTVsnGQMTYIdPi6uo+jxDKJN62z4AxFIZtvY6dDtjVWLoWg//2jsmC5unJj6ufoQ8zbr+9UVrx2ath13K7OnihuQHQLFOWZQ5RiaZOUAi7wW1Daak0L5ha1EiKzTglQC/zewnIMsj7V4JKqcgNvtsfx7ZcsXqxu0boyiJGo85HKzLL5DHrKRw67GNJduVmefW1at0Nm3JMGa5mxPkVkWkOd8VYyZGnKaW61Utk1deKlFdEFWZWLH4QO58SQwkdTe3JJ1h2uc6a3SZYSl4JFeCVj2Ifd6mQwpxsjN8N6ftsyXOZBtYqneD3VNDvwYA12JDLyGpqfK8Nvgypm2Oe1XDgwiQ4SYr5ySPjAT4Jgxtx0UmpOTV5XKknonnB14/YtmbPIlnaaNIiUkB2eus2/LaK8NaiTeF1QriUBoLEXRoJY6MtLjr9uuQn22E6H1Lp+gQEAD93arqE8+S2/b9lQhU/5PEVAnZYT5lqPgFkxfj1EybcrsUMtNXhYoJtirr16/Haaed1tR1UtdCgiAIonXhTfhrMU477TT85je/aeo6yTPQBIrv4yjsIYYW4Wsjj1QAMUKxmwGpTOe4YskQq3nTkasEcqfL0Y0fmISeasW4/pQrvvq2kFUGsl0Yi1OMO14nEHIra9s39f42qmIiDQFuubztY9QVB3Zmt3UMOumPZ0fHdg05IEYjarHqQFZERp8TtW3WOCoVVOCksi+7HNm5/sqsC3oEed1NfZ7XWGmkdTKYkVVu5jsHfMgRur9SixWpevg42h3tHU9kty1f6xM3PWu0nVp18OKzN+TmAjDpGTAd6tZoAR7lmQCgm+TUo7wEdn2+55vEQUVUs0b5CeDIMIHrrNEub1W/zxEgkgmEDK9mrg0mo2Eq6Y1ZlQuOa0Y6UWMxhp4HqPNeuI2fA+ZGGcfGc8DYygZPQ7HNJIH6VlJr0G48f9Gwmd4uNYLimhH4KrcDYVV4H6IQ4Fy8DwLxGoZdWkuCuwF8/09ierR3g+iQw4Yy+gKx5SFRyazKE5amMNU3diIwz7/faM9WvfT4VmYyhgl22203XHrppfj973+PvfbaC76fdWf97d/+7ZjXScYAQRAEQbQQ//Ef/4H29nY8/PDDePjhhzOfMcbIGNiWMNFdBMHODLEcbQ8/b0Zpujbekv91S6LMz6xEvsra+QhmNJk36hyJTAtkW+ZX7kOaZMr+UVXtzK14vk5Is8r+wiErPyA1SYSelX9gKyIqD4nDLaW60DoObk2z0OWU1rTEilnm6jDkjNTtGneeNvaTz2yzbruZUY+aSY2OLC9DZsRk70POd1U/AlH5A+rLSOu+N9XeNo5M6WMh+D0Ao0cAiHitOqbYGgWrEXWSztCjfcZC+N7zchetIXvaAZeJEbrjSSXCpE8340nSKYBsfJSkM7S3Qanx2etyXVMmZ5NJPlN5IckMRFKa2JZMVsfZUL+uck9GyK3IeF8s5c20LiDquObaYU5djgzLvjquVf4ZmHkLRaP06Vl30lK3eHUDo/QJNEpru745jkK7ybGpbYSO7TuuucZU3L7c3o84FF6hMHwJtfCDAICe7n/F8LDQlqiFqoX0NCSy9HBw6BSdaxIE/SYHQXvXQiQy+zmO+nWbbtczUt92Sa1rXZ+HL9l2w2v79zre5VuN5cuXN32dZAw0GeZy1F40dySlP5DUGuf1O43bnTHjKlcPUb9oOgYC1oONG7em/TDS0qaOeV6lsZHnVTc3v2we6rG1/jTKPmj1MeW4UHkK/XDk1jLKuGnoqjjabGNmSQ8n2QRLtV77PGgjI84mNCmUAZDE2QeI1qW30G7jBLnGRR4j3YQy7mxlCFo3duaah7/ax4YEHvUw8gAfsn+BesA7/Zmae/3dRGio+U55u3YV2yED338BSSxq31PHhEy0TK0zCCSmM5/S6re7MNpGgFqOc/MwyxyOuv4yGhUv6Pe18ENQVoJyg7vuE+ZB7FkJbJuRsh4J9UBOoqyhnDGg68Ia3Er29IuAJ/chsn/TluCV+k3ZMtyZa1Il8cUAs8JqtpEQDjfOr9Yb1oDuPjWtH2FVdGKsVYDe6aLT4mC/eK1WD9XGluuu1uc1Tcz1bwtweaqbZwyEVrhNzytDC7UEcCLTxXNbMhnDBDZcHgDbXGxzM1ACIUEQBEG0GD/5yU+w1157oVQqoVQqYe+998ZPf/rTca+PPANNpvYSQ2J5Nn1pdPO3zTTtro+MF8AtWQqBykNgJcDZoxNg0/LDqBvlOJY7DxAquErZj9WVCGlXpuqsWDVuUSdGZpQwJLUT1MjFLj2Mq/l1+TxnxGzv84jJlxlJVPFq10IDVqmZlVCmP7PWGxSBKLSSptR6VfKZlw2H1FcJ8hQZ7QF1XvOOt75sTZFXijVSIlYcQese5NW11x+bUhVOUzGvm041krNsUMviMgaUyiv1NqJIeAmU+9hzX9fhhQw80GWEJioU6tI4e6RY7GhMaOSWVgRPsyNT3xNyurbnxslx16eJSXJVNzHmQA9veFIXMrASFgHpvudm+frfCGAtbzUUAkx4zImz4QFAeA7sxEG9TF1Cntpf+5rJJJKqcl7Lw9ImJc9LkfGQeEWgXX5FaWzuHR1yWrjxtxhYK7wEw4O7wA+Eh4nBXM+16lS5P0aiGFZ4Jo2zISwxb0V7CVR5JLH1+M53voNLL70Un//853HooYeCc47f/va3+MxnPoO1a9fi7//+78e8TjIGmsTAf6s7lpkWvgUk2UZh2YehnbnsA0X5Y1e9Cyprzc2gttGq9bU68OXGTpmJ52Umy12Ma+bBXdtoYpWu1eHQrmywM/HzWhArwsH8h7ktbMSc7INWTVMkNfO/baioGu36HgZ57mId1nDyH65p0viAGumhDWuyNga4VbBgGxN1RoJetwoTeEDgmXmVu1w9gNLE7G8c1ocapDwyGmWSR3o/UttZHZZwzEGJFtgy/m93q5MPZ8QmTBDFu+p1uanI+nfdVYikfHKxXEFRbtrxrA6Zw2YfbYMt5b+V+2O0/o1MdBZ1zuxclpHQnRR54+/EcczKHde45R3XyhVQ3xU3YS4eN7YEB8z67bCeVzTbYI4R9NICW9b+1B+LMih42mhkeqXsb0QtW+g027ArFtq65T6mr2rjuWRpj/i+yD+oVrsQFBp7DDAHCHTlRUUfbyqvSccFfr2bONCPvrwNfO4TDBO0YtLANddcg+9///s455xz9LS/+Iu/wPve9z4sWrSIjAGCIAhicjEZcwZWrVqFQw45pGH6IYccglWrGoXURgMZA03gndsYQjFAAg+h1f0AINqQndf+LM1JKgRM578kBCqqAdJIuSEqu5pb7lRmqYe5jcmGaQxUa2a9agSV5MiO2m5TnlghDktVMLFGP5uT7LV7zuvRmj0CZtnkqXqrvV4a1U4m1N3x6tan0NnsnqhwaFj/OG4K9ToC9ep1Np4v3MhiZqO9EKjRXMXIOcP6DpPYfHdqe3byYBIDBVnBkoTGTc9lV7mwZkb7tgaAH5j1Jtb3rEblPO1ACjlSZ4O5GUa2O9/zjbu4LD3/zDOqlhqr0gSRUeQL4he0JkAcqcTGfj3NdlX7BTNCt5NTdTdOS9WSj5AQqpNPo7rvcTPJiep7Y66lc5GTZGtPt/U5lOcvCeuqbHLwSo2eNHs79r6miTl+pQ7KHGBYfkV+kH99Biqswfr19VBuN+ckia1KBunxCWvmvKdpNimU2PLstttu+PnPf46vfe1rmem33XYb5s2bN651kjEwAd65RaUQA55QDEXcD0RSzj2pQN9AQ9kN0PGtkjvfEiBi1g1F/mCDzpwbqaLuwRUUrDis9Vmxo+6mCOHKzMxrueu1tn5OLD2ORIY/IEue6jXmg6zrX7tZHcvNmpoHj204qDAAY9A37qjS6N6197Heoq8vCasnt4uiMkzqjAI7XqxRy9fF9u14sl16BciM8joBJvWqZOTV+Sh2As6QOQbbpVsvB5ty4+rNhAa4Wc7+DpW+v2PloQAm6z/xAEe2Cq5VxWsCwOXWKEOJEbmrG6oxCkUjwFO0ohOOax7aunLFivc3dghU71bq49FhmjoRLnVNjeb7dnIMGfW5nfUfVY2rX4dTrHbJ3Arl5HUgdbysQaBDCpZrXwtw+aYSx/Gs4xnBqK5v/a2PQxkkOUaM6wNFeW9izJx35mS7hgLCKLCrd8qmkMTcA1SeRtEY7Um8jUfXE1URbEHPwDe+8Q2cccYZeOSRR3DooYeCMYZHH30U//M//4Of//zn41onGQMEQRBEy8LhgI+2Fjh3eWtE1CKccsopePzxx3H11VfjzjvvBOcce+65J/7whz9gv/32G9c6yRgYB+t+Ii485fLnNZiae2u0kEZAXJdACAA1qezqBkaAKB60xIjkq98FlOQohScA3yDnDc2lqxIFbcu8rSfr+tcjAzu5UVr1rpdv1XvWqCFvJJ7EaOgtn0TZ0UvG9cmz89VP0/tVyXft63BFmp8wl7dMfSxRh0mS7Gg+bx83hS1QZOP51sjf+l6UG1xtW6GSvXTGOBeytYBIMrO/QyVbq763uGpGs37bpnUcsq58893a399IyXh51QsA0Nb+gly33J/IhCciS1rbLTRmxvPUbDuOYGVjNo7g7URBnprjjMPGigzHzV7j2iOWJ9jF8kffQP53q6e5yOhq1IcFktAk/7l+tntnSfYTUhLgSc14DpKqSSy0f0e5+zfCZ5lrQGmOJNDHXu+xUAmQma6lSuK57retrks7CbIgPUC1jVm9EmLrcMABB+Cmm25q2vrIGCAIgiBaFs4DcD4BzwDnALZ/a2ZgYACdnZ36/aZQ840FMgZGSfia9Ab4QOm9cppoLY9kAEhkrNfWA3ALQCJHciq+aI8UkpoZPTuu9V5el46V7BMO5ceC1QiLMSs5DaYmOQkbR33lXsCX+1UbNLFDwIxGdXJbW3aaGtnao0odh7RHHpZcMbi1jrhxuYYR/AhSs+o487BLwvQ+WHoBdjMa7sIkXqoYP0zewEjxT7ucs94DIBbMlhHaywDivNvokb0qI+PZ8xNY5V9q1FiScdxwMJt7oUaYds6ATvB0KpnzEFseG1tjQn+3ep9N+1zXXaUbESmdAgAoS69TWMmuV5FpWS1/I3GtTr1PwRvr2V0XRq7ZyhmIQnOcOlnW8nowBp3vwaycFVs0wh5hZ9ptS0Yqk7XR508ltVq/Jcc327D1Ajx5n2ZDpmEYkE0yrE9MzOxDCqOnUOcR0hol9rEplVPXHFNcM78/fd+wcn58y5tlY6skRta9zNuWCYS8AEzAGECLGANTpkzBqlWrMG3aNHR3d+cqDnLOwRhDUi9DOgrIGBgljvwBc+sH4MqbdbzBmq8IMBkayNTqK5dmXf14INebRsZgiOTybmBuPsVus74E2UxfACiUzA/V/iGXp5mbsLoR8gQIrCQvez8Lyk1tJRKpH3pqJxjG5sai9pEnQFpXow2I+dR91XHNDUvdSG2pYG4l7+U94O3PgTq38CbuBw3JZ3UdDusfQpvCPrY0zfZmqDckHC/rji32NK5PGV6FTiAcsNaVmnW4dcmGgFkvY9nvRYdDciR2693a4SbugQyAJ8VnxKpUlUFJ/xDUw7PYbhLvkhiobhDvq/1mP3UvC5iwjwMgsRIz9ddpfZcq252ndQbxJr5v+6FsZ+3XP8zVeu0EV7svBYBMIw/m1kmL1/ersAy6NLakh3O0LdyS+e4Bk0zMPGt1dvKp2zjNXqf9ftTy3xb2A52nIxsEgDgPylh1PKNr8PiHGD7waAtm5LUADz74IHp6xA1k8eLFTV8/GQMEQRBEy8K5D87Hr6zPN6detZ1w2GGH6fdz587F7NmzG7wDnHOsWLFiXOsnY2CMOF1m9Dws28kXZpmGREpvABB6AfVaAp7l+nV84w1o21mWIsIkHSYVY+Er+WBFfeJcEmfLfnSdsQu0iaZlel+SmtmuW7AU0RIzwlQjqzSqq0G3k854dl5wZEZrxW61kGlgpL0Um2AkRb2Gz+q8AvWjcnsUaGsSqP8By0uzifvBpjwOTt0+5CkiqhGUZ8nUuoHlhlYjMA4UZSghGjDniqeAI0dtapTslcznaWRGkkGb5WLOSP7K7dpd8KzvNbW++/Giy0ot7Qo3EN6BzHw53wMAwL7+LG0MtZ/Fsqlnj2rGS6CPYxja08OYuVYznScVLDuS1p4wnv99q2up/hxpL4K96pznklfKhgEAwG3LehlUQnJSMdIbLGeQzaz9sUtfG5J2UeeNqNPEyMMbIYGwwQszQlnvtoAjAJ9Amx3eYpUEgDAGVMjA5p133sHcuXMpTLAl8XqslGdJaX/xGi4HXBnLDWYCkdTsj9cCJancGsneBNU3TZywsIMIKyjKdVoRA/9nhQysevXcB1+97kC33G/LIFEPFOabXIZ4KHuTUjcnu4Oia4v8WDoCtpEgJmZd4spVHHQY48TxASa1E3QLWUtH3u5EmHeDqX+o5x2/bvs8lt+DJdY+Uo+AXLc0t0IOrNGVa7te1TloWK3KMyhm3cYNN2SYY3MDM69tsOUds+tlW1bbuRP1D1973xvr9JUUbQm1qnxqMDEtiKwKgZpZbxKbddstg+1qCy26VAW0d9vKgM/TCCi0m5h1FJr1K4PYcc35i3JCIY6zCSO3TuAJiTHcPA/6OrDzcZycHBFg0w/JxDKMuZX1n9lPOySlvttNeOH170+FEa0QSWp19rS/e50rUrC+8xEM28y+qN+LYw0eJmhQjgeRQPju9wzYqNyAegYHB1Es5rQMHQVkDBAEQRBEC/CFL3wBAMAYw6WXXopy2SR2JEmCxx9/HPvuu++41k3GwDiIZCggzavuSAFXfT+9QCJHwSU56vc6gZqSLo4BXyaUOfYIUlYC9CwEyq+L9wPPAa5M4h58y7hGbQleNVJyfaDylngf1Iy8sU74S/PrynkyQoLVCNa+SmrTo19m3JSulUkNADXpKk5jM4/6PCibEUVUtUYXdka0daXq0Y/VtXCkaoRMslWO90CPfqxM9pFcxQqH1SXn2Rnsah6579Gw2d+kahJJM93q5P6qUApgtCb0fqfZedM43wMSVazwTc75s3UjgJxwCRo/U8vprpBo7FJnJzE61qjTHplqr4ZjvAFuYOYNypaOgqVQaH/3KuQS10y4jlueptCqUNFeAl9UzQCWNoEPPcK3EwhTy0s10jVQsPZBJc6p7yWB8aTVu+x1t0N5PXjt5neY1jUt09eqVTmgvs5MxYMdNnPNfmQ8CjlyzVn5afNZxhuQp75pLaM9Cpbeg1un/bBV4IFwdYx7+W3gzhgn//d//wdAeAb++Mc/IgjMCQ+CAPvssw+++MUvjmvd4/etEARBEMQ2RuQMTOxvLDzyyCM44YQTMHPmTDDGcOedd2Y+P++888AYy/x98IMfzMxTq9Vw0UUXobe3F21tbTjxxBOxcuVKbI7Fixdj8eLFOPfcc/Hf//3f+v/Fixfjvvvuww9/+EPqTbD14OBVYY6rcsPKUjP6caxyHMcHWHd2abcbKKr4ml162CZKjRq2Jq16t67MJ1cBT+UEOFljV/dFUKNS14xSuDVSh2PyB7QWuRVvtdupOmgcTQbtZl22nkJcN5BUIxV75GrX2tsx3voyL3vkUh9PTXO8HZlchJzeDXpddsMXez0j6Rqwxs9tRbz6WLLaR6fuc2B09ewKldNhL2OPbB3X1PurY7JVJl0v65lRnhU/AFTOUWyVlSpVwTg2++z5xjOS196a8+w53NRIuzjFSpLdaK5h5Q1IrOuzYOWeFLvM9grqd7jeeACi0OQS2C2TVSmll9Tlc1glgA25MNa+29+nY/2O0pxlMop/JUthNCd3pP43m8lhUOdV/fYC6JF6fQkhq7ujO5Yqpp0gzFzkqgbqvin116R2SzQuY8+/LXIGtjZDQ0PYZ5998Fd/9Vc45ZRTcuf56Ec/iuuvv17/b4/gAeDiiy/GPffcg1tvvRVTp07FJZdcgo997GN46qmn4Lqb93LY624WZAyMg8pzjdMSeROyM7+Bxsxit2R+sE7NPOx5zWrWY8moqgRDHgGFbrmtGlDZIKfX10Sr/VHd3yyZY5WMyFi2DlvfWHKSmNJo5G3UH5sTAAUZ9khDIOw3+6gMAp42JsYxSxo2KJvwgy209OFn8rOmHj2Q6W3Uk0k2rKsfz5t/pDBBrnRx3f4D4tgCdaO3dCBqG83n6qFhi9Co78cJRjASEvO16ETBSvbhoaWLrYeDfrD62f2xhYYUPLXFhrLHAAClNiMUlKbm2aDWYXeTrH8gKMOgoHIOWdaYsRv0oG5Zr5ANEyhj1Q3Md6i0GQqW2702hEynRzvxVaENW/s6Zo0NfOz3qdVkyfWzgl0AMo24HM+c03jYVIrkGaVplB+6s8k1Zq3E15EXlC9uNtRQL7SUMdptzQf7/DiNb23Nkbzqhy2NSCAcf5iAjzFMcOyxx+LYY4/d5DyFQgF9fX25n/X39+O6667DT3/6Uxx55JEAgJtuugmzZ8/GAw88gGOOOWZU+/HEE0/gP//zP/HGG28gDLMxqdtvv31U67ChMAFBEATRsgidgWACf8IqGhgYyPzVaiP0mB8FDz30EKZNm4bdd98dF1xwAdasWaM/e+qppxBFEY4++mg9bebMmZg/fz4ee+yxUa3/1ltvxaGHHoqlS5fijjvuQBRFWLp0KR588EF0dXWNa5/JMzAOuk4U5q9qYczjRvccIEr4uJKMVe73uutLjwasRKHBpdDrtd2PFVmemKeoZqv1pZFJbAIAt861HFetUijfcnXWhQTq3zO3buRqjTjqYZ7p2x4NZd2prK50y3ZlpjFw4IOjH1586Ekz70N7S8loy8RVyX2p1Xq2vuESYFzk9nGNBtczI9eMJKs6N/WNd1RTmFpj3TlghW8cowVhu3fVaM6uKXdSk7iVJsbDYYdbVBgmtbwMrnXeE1ve15bUtUoAVY2/7VlRIQU/MG55ICvHXO9y9qzmRdGw1aynZiUb5jUc4qalt12uqlQd44o5p37J6BuEOff0TZXN1WMfr308eS2S0zqtDXXeA+v+rH7TbskKAxatduYedI1l5ndo/yzywnX2542V0Bkcz1zzOoxQn1ico+5pe9rsEIW6D+19V+uqD86ePTvz/2WXXYZFixaNeT3HHnssTjvtNMyZMwfLly/HpZdeisMPPxxPPfUUCoUCVq9ejSAIMGXKlMxy06dPx+rVq0dYa5YrrrgCV199NS688EJ0dHTge9/7HubOnYtPf/rTmDFjxpj3GSBjYEL0nCku/P67malNTkwuAHOMEaDdaGXLvTYMQLruw7dM7b9i48tWLXBdbFA/FEbx4KoPP9g32jTKGhy2Ox/IyqgmOS5+m6RiPrez4b2yEVQSOyBf5X1j//uacwNZ8JxYz2MfNCclzwNo39zt3g5pXrhkM+fXdsszx8rMtoyQelcyAPiWHLRtTNX3vNfHYWW7KzLxa2t+Hd+u65MAyP2zzr+a1+5BoYwMr4jMebBDHHkd79qni/cDq7IPFfVAtB9WOnYdZb8jbRjk9DmwtQMylQ45D0PHtWS002weBCByB3yVA1Gw+ms4+Uau/s1wc55suV5tTFr1+fb3bmuKuNa5U3lC9eJkanDBeNZQ1eSFFOyQQd1vTM9iufO14WkZ+7qqIrLCSfZ5UEaBtc5tn4wfYGKPMvHlrlixItPgp1AYX8OFM844Q7+fP38+DjzwQMyZMwf33nsvTj755BGXG0k7II9XXnkFxx9/vN7PoaEhMMbw93//9zj88MPxjW98Y8z7TWECgiAIomWZWIhA/AGi05/9N15joJ4ZM2Zgzpw5WLZsGQCgr68PYRhi/fr1mfnWrFmD6dOnj2qdPT092LhRuMl23HFHLFmyBACwYcMGDA8Pb2rRESHPQJPwporXZL01WqoIFy4AOCp5yjWhA55mXfOVFWY5QI4g5IhheJ2V6MSgLX9bCth2I+o67bgxIapgjF89j/1qk4TWtqyRgz0KttGeBTu5rQLsdefWcx8e8nuxrcc/xEw+Wt3opd7t6ReynfTSHJe57TnIU8VTn9nzAlmPjK0G15b1SmakaT3XuI15aoWhEjMtb7s2uua7TnrXTiC090edEy9HwMypCxGVpBaGPo8JUJOJfDu8F6hKee7IlgjO0blIInM92t0F1T7Elay6YqC+D6fxHOR16LT3sR5bo6K+Xl/tj5gh2xTK9qzZypqACMHZHTrVuqJ+4zmxUaGgQh/gqUqIDea7d3zjkcl0KLSvv7yR+Sh+bvWewowegZ/dRn1TMjjQ9wW3MDmqCMbLunXrsGLFCu2+P+CAA+D7Pu6//36cfvrpAIBVq1ZhyZIluOqqq0a1zg9/+MO4//77sddee+H000/H3/3d3+HBBx/E/fffjyOOOGJc+0nGQBPoOpFj+CnxywhmA7G6Ef7ZPNiVG9AtiVwCQHQ71D0N3jbrG1oll4mzZU6p5Yqsxy9ZGc+R5SK11qFcrHZs1XHNzcB21z/+YeUrtUIGPBsv1cqlah8LRi9//n9t+9jhBx7leGKhySNIrYeKelDm6cjHYdZYUOV16vxGITLuWLuaoJ6GeLl0LRescCGT63eRNQhU9UcaoaFVbSaMwIyITxJa8Xxb997OnLdkZLUBUAASq4oFaGxtrebN62ZX7AMK0iCurQeK8r1dwmaXW+a1/PXKyEgs6323vgs7FyatCxm4genhwRwrPGF9R3bXwzyDzXWs0FFO1YXf1liFYVNvJKvvu2gllvtq4DBkjLzU+t6YZ8JsPAE8aXDocxOahzKzcoXs3JJcY8CukPGsclSr66aNPX1z1/a2/L2LBMKcWNyolx9bY4XBwUG8/PLL+v/ly5fjmWeeQU9PD3p6erBo0SKccsopmDFjBl577TV87WtfQ29vLz7+8Y8DALq6uvCpT30Kl1xyCaZOnYqenh588YtfxF577aWrCzbHtddei2pV/LC++tWvwvd9PProozj55JNx6aWXjul4FGQMEARBEC2LEA6agDGwucSgOp588kksXLhQ/68kgs8991x8//vfxx//+Ef85Cc/wYYNGzBjxgwsXLgQt912Gzo6TKLQ1VdfDc/zcPrpp6NSqeCII47ADTfcMCqNAQC6lTEAOI6DL33pS/jSl740puOoh4yBJlE+QFjG4WtMj/ydstEfUOGA+B0jOuKUjPRwWjXdCgPpNh1anR3dKRyrWYo9emuTDaxqA1lBkbykv9hKKtz/N41W/Qf+10zTCXlWeMLmgAe2vRdgJA5aLPbtqSNZJnRS30iIp9CjKdszkBcK8fysi9n2GNQnJvpFKxs+BWobGtenJKlZAERvWfsjsTs9Zqbbo+ScaggdDqhzgdsjwEzHyToCK8kxGgJCJRk9bNz4Wvti2KyrOC2bEOfWdaxMImTr1W3NgbrESce3QlMjXH/Km2J70eKa1YkwJ0QCZD0DOmwRA0x1/7RCxnZNvh0aUPvLco6Hp8CwrCjz2sz3nD1AOa+dmV+nNaE9Kn7jvA3rynPX2x6BTQhceUUrVMCRK2OsvSXWcrlNvbYmPAAm4BnAGD0DCxYsAN/EQd93332bXUexWMQ111yDa665ZkzbVixcuBBnn302Tj311HGXEtZDCYQEQRAE0ULstdde+Kd/+if09fXhlFNOwZ133tkgPDRWyDPQZIKdjcW47idMtylV1jzzhHocALDUvAeyNeibQ1n4avQSdBirvX2WiTdHg1kvgL2d+vcjoRLyWpkDHuB45ngxArCbJdnkGft2wpgaPyQxRkxK0x4BK65ul5LZI8h4yEwHZLxZ5g9U1uQndCrS2OxQEllJoHaTJkuy1i4PU/tWX1euRr92HN+uQbfRMXjbA2XJbKc559fWVdCJlpHxODg1k8uR59my9yGJAIdnP/es/ATbYxYNW9e+irU70Gp5GanqtDEJ1K1r3W2jFURzlCMdv867IM+702Ze07rfJgDwMHsP0Iqmdvmy0qBI60oE7fJYAOD53gDA0vawPQdKr8IqOXb8bI5CPWPR5dgScPhj7i+QXb71+Ld/+zd897vfxQMPPIBbbrkF5557LlzXxamnnoqzzjoLhx122JjXScbAFmTqORzrfmKEiQCRNKQuvqKlDeG2Qftphlflr0+7+60fX1EmogVTzE0hqQJ+e+PyiVVLrR4eYxH4aXX2vVcc69PHMO3mtrsAqgeIXVmQ535nVi25bRgwZgn3qBr2uu9BP6Ssh0doVRilOe7ieiMCkP+P4avLPOzkNoIOs440Ng9Su8uguuaKU4B0rVmH0q5Qr17R7K/XBlOB4pmQgkru89uMgVovXNOgl28dY0ZMqtgY/krjrHgVs0R17N4N6hhs+eRMJY5K1FPGgGeMFHs+z9ZNGMFwU3oSfrc1UbnXY2T1AtR7q8rDfsDnambUJ/fJ5ebfJnZuyaks000S1neb191Sr8Y3203tiiJ5/bqB2cf33Lht7yF2eeD4lm/izmxFHMfB0UcfjaOPPho/+MEPcM899+Dyyy/HddddhyRXnGLTkDFAEARBEC3K6tWrceutt+Kmm27Cc889h4MOOmhc6yFjYAsz9Rxhdq79sTCtS7tnQwOqyyGrGBdd+07yMx+oviPeJ2FWklZZ5aq2GwBKM+XnZaNlYMugatd4i1rCzcIrWp37lNuzvvtbzmgpL+EMsFQHncZ+7mmcLWPUnoZaY202j7OjlJH0CcwMcrkk34ORh1ewSu6ATEe7hgZS1v92WCVN8t3GqgTOKWT3XY2OVXmdSpQFRDMr7SXI6fxnY8tWiwl1n9eVy+n12QmU6r2THWnnNg+yNB30coWsSuem5JOZA0RKPrkCxPK36ljn39YcUQqFjnWueWySMVNr3oa6fwB7/LTxh22X/C09g2XVFesSAOuvm03dJvK8VduKyegZGBgYwC9+8QvccssteOihh7DLLrvgzDPPxK233orddtttXOskY2ArUdpTvCb9QGEX8T4dBlLrxqjjkrZ8rHJ7Jsh0zwuk+1llfAfd2e3ZAi8N64qzceHJxt53cSw9Q5xM5ZZOrIczcwHXqixI626Wdi15fRa5rlG3JZ8toaZMbHgTOQH2OjLxaLvm3W55rY4jbpyXW5nh4bCJ3QcF6AeqWzLXjC1JqyssKpZBwMR6ANP617HCIXyEDnylWeI16geqMhTmt1nbQPZc5R2zfmAxZNzqCnVdZyoonKwIFyDOiW24qesgtfIo8kIHTtWc93CjWYedba9zGIpZWW5VOZTXp4SHWQEye9/V/UCty87TAAPec93onmZ73mYZBp/MtxhHejDWV6ZsL4aAwAMmUFqYr+28fTN9+nRMmTIFp59+Oq644opxewNsyBggCIIgiBbirrvuwpFHHglnJCnUcUDGwFai7YPC5I7fYUilu9DtBCLVpGod4El9ATVCaHeBypvifWWtWRdPTTJgICVtPauXO0+N+zCpNGZ2N6sxUCtju4AVKhmu3n2vwgPqd2ePqXyrNtvuda+yyOOqpWVgrTfNabqT57oFxHx5I+28jnb1crl6mgpl2HX2VsJdZnRt3xVUIyNr5F8btNzxcrkkNGqbXlt+slso1Tb9KUBZDuSGXjXbsLdrqxXqXRlBm8CGWyP/7AeN82YaSNmqjXXnL7UqDMKK+AOyDaAyzZ3U/rKsZ6Am5cbb9pLL1FVd5HkkRmLejyb2G97zZ2b5JaeaKzpzXlUy4i+27/vFxMME2/fx5XH00UcjjmM8+OCDeOWVV3DmmWeio6MDb775Jjo7O9HenpNBvhnIGCAIgiBaFlFaOBEFwtYLE7z++uv46Ec/ijfeeAO1Wg1HHXUUOjo6cNVVV6FareIHP/jBmNdJxsBWxuvhSFxhiSfrTc5AWjFqhTaOVfut+6Bbtcu1dea9qmNmDnQIjXnbv2W/LVCJVY9/SHwXkRWH3VxVjlOnP6/LzlI0JGE5I9Soj9ToKU/hLVOfr0pUw7r+CkoFsZqvOGnnMtgeBZ2QmBNCzngOLPJG/W7BJMCOpF1h58JEG+RyVt5DNGTpF+SoBwJmgM9yEikd18p7CEeIayvlzrr2xHYOiNqm6veQJlZ7Z6uUNA7z582rxXd8wJWDNZUQqHIIAJEvYV8nWiYgtEqG5ecT9QrUsz30ESHGxt/93d/hwAMPxLPPPoupU6fq6R//+Mfx13/91+NaJxkD2xBWBAJZORCtM+EBO6vabhpjJ5QpFydzs6+AcJXucg39wEeD7ipXy7ra8zyHmUx/1RzHkoZmfv6D0k7W3KzIU073PMBk6uvkMZY1DlV4wn54q0Q3O2zEE7NcOJg1ZPIe/OFGsy/qOIJ2oCanKyOqsi7bfClzSOoBLeeN7MqEML+KIC950v6fWw9dreER54su2fuuZZLrKgzU5z4aRYf8kjlPiSXG4xfN8eta/rprwP4OVbWACgcClgBRxTqO0LzfXIUFIT0DEwkTtKBn4NFHH8Vvf/tbBEH2uOfMmYM///nP41onGQMEQRBEC+NjYtUErdd/OU3TXGGhlStXZhoijQUyBrYBbpdMJlzLdGMaAPB7xWu8XLzyxNRoxxXj6nVcKwFOvtbWAe+9hbwBY+X9D4tztnivkYvzbYXBhs/c7ChWKxtaCXDcGmFqVzlvrNXPjCgtjwNgRojKQ+CWTL1+NGzc3G59LT6A0hSrtM5uDWwpUTLHJMHp0bh1Odmll3ZDIDsJMpKJsX5n9piSupI5ty07areT7HSXbiUVbJf6WbXtthyx/b1o/QirjDOuWt/HCCWLNlo3Iuf54vrm8zQ2pZV26aLd/Mr+ndZrEhR3BTxLB8SR8tTMg07ei1OrDTp5CfLhwYTkiEelyb6dcdRRR+G73/0u/uM//gMAwBjD4OAgLrvsMhx33HHjWicZA9uYWMb843eA6J3sZ1F/440UkG5PebOws4KJ8WN3H/R86yZuZ/XbceYcw2CkHIA897sTWDf3vK+QQxsDXlt+HFoZBrZBYnc41Jr13MhWJzXzwEzj/AeiFjiKLO2FuiqFhtyIulBIxj2uJGyt/ADdryEyORr257YGg62PYYsKaSMhZ9/t0IjrWzkIlma/LeCkjzk1vy39jMgRN1LL1Pe4SKw+EG5gqn6iIcCv6zlihzoc31S72xLE9vZ3+wH91gnB1VdfjYULF2LPPfdEtVrFmWeeiWXLlqG3txc/+9nPxrVOMgYIgiCIlmXi1QStFyaYOXMmnnnmGfzsZz/D008/jTRN8alPfQpnnXUWSqXS5leQAxkD25DCrhzRSjHEqi43CVa6oZBrRqb2qJPCAc3n8CUc/7u/7GqYAoFy/1qjY/Wa0Raw3MJBTqjOdnOnMIPMjGMyJ2nQ8Ux2PtDosuapqVFPwvxGObYSniJvNFz/f6aPve0Nka9eQSS/AiaBLhwESr3W/uXIFduNjGzvg8Lu1Oepyhirg99Ibv08tUKemh2u785odqjuwCC8CLwuBDdS5YdjhQzUuY6r5vxVNpgqAwCobRCv5Z3NtFQqOSaVrDdEfbdpBC1ZTOTDuTcxY2BzUqDbKaVSCeeffz7OP//8pqyPjIFtzPBS816JsiQ5VQW2lCixZWiTD7Ooku2e58uHve3uL8gHf5pkHxTqgaj065NaNuatnkmui4ZyPuaaB5BTNsaAXe6WeSCqMrnAalPtQj/k7ByAvFBFPfXbsHMYHN+qbHHNtVmS4Qe37l5sS+fWx8qZZeh47UBiVcTUb9stmvfRUGM77vr93pQLf0TqflrKeLIrE+w2yhmJbz/7OXOA0ArV6FyC1BgGa38rXrsHgPIe4r1bApINZjlVhsh5S4a0iS3A3XffPep5TzzxxDGvn4wBgiAIomWZeJigNTwDJ5100qjmY4xRC+NWZNpnxbDk9S81ZqTldSEjthz7/0ac76VnMO3qjatArV+8V7XmnhWSiytAQdaN2yN71S0y7Ddubp42NrYBrBp1D7m/SHvErJeJTJZ5PFy/gHyxlskbJW8uTGCLHdn7nudpaJ8rRvmAqOVX+zZSQ6x6iWxAusQ3cQ9zA6v+Phk5bKDIyBvLn5IOgYzw07L1PHyrKiDjfVCJmTl6Aq5vzlNcbQwxAUChW7yG7wCelCO3qwqQZkMGu3yP7gObhE+wtLBFwgRpumVdRNtV7ymCIAiCILY+5BnYTphzFVn/2xMqgQ2srqUvgKDTlNZ5VkzbCUysXKv1dZmRe1Ix6yr0mJG0GpjEQ1lFSUeNzFPzXqsOwoy+63HrZIFHijnX96TPm081KEpj411wfVMG6Fv9UEq7mv2NZP5LuM7yYCjp7Qjwu81ySnvBsWWXVb6DrSiYWPNiBJXINOf9KH5aKufB8Rs9Dr6VBGifB+Y2nmPHt9o6W62TOTdtn/tfF69JDai9Ld6XdwICqSrL6K48JjgmmECI1snQPO644/Czn/0MXV3ClXT55ZfjwgsvRHd3NwBg3bp1+PCHP4ylS5duYi350GVHEHXseRvHi+eKp33QZR6uSpoXsNzChexDST288gRi3FK+PoHtIlbJo0Fv1sUey21rnfrIGB48MS59uxZf72vdA9/OuM/LxNf7W8i+z3PhF6ZnXwGR/a4eaG4p32ixwwjaS5s2buM9N2af5H88SZxA5pr8y7xKCltDYTRiPbacsE4GtL4rXdmRI3Bkk9l/ZtZlCzWp6yUcNBUo1VVAIhMPvS5jbLWIB3ubIqoJxv8o47x1HoP33XcfajVTdvOtb30Ln/zkJ7UxEMcxXnzxxXGtm8IEBEEQBNEC1Ldbbmb75dYxiQhiK6JGpC99ygwFtcrfoOU6duoS1VSimbUulXCYRla5oNU8R70yz3SetHHL1rb7zXbsWn47VKHr661kOx06SLLJbCOV6OltF82+qf20VQ6VaiYPAV+6ub1OcxzRO2aUaw+adcMgu4NitPmOfHvdKT5fcor1vajjrVvU9hhsKnGQudny0L3v2vQ+LD1DbNDxjHegQcoZ2evCcQE3zc4bVYDqevG+PM3MW1kBBD1yOcs7Q+Qz8WqCifQ1ePdAxgBBbILdr+N44S+zvv0ktHoBWJUFeZnztkaALSLktQNMPaBV9n6bcRXzEGDWutW8niVsZLvf8+R/taaBB/0QdEsAU9K8sXmAjpRXYBsvidxPfwR55FDGv6P1JkzAmDm+vOx/ngI7/7+xj27sttzaMEigfZ2OZ6o4bONHJWQ7DvCBR8c3qrI1P545vjHuk3tOmaXFoHQgImBInrNwozivgMjTqKwV7/e9l3KJNsdkMgYYY2B1scb6/8cLGQMEQRBE68JdTOhRxnMs2+0UzjnOO+88FArCZVStVvGZz3wGbW3CkrTzCcYKGQMEsRnq9R6eOZ4hskfl0iXOHStxri77H5DJaXZDH+VaVv9bI8mRqkte/4oYBSR12gJ5oUN7W/bgQYcMXOM+T8Ic7wA3Wf1+t+VxsKsB8jwKqUl4ZE62GY94Y2ad8y8TH/naXoLn/sIKH8jtHvSbLTe6ViP3p4/e/OhMe4hUR0erWVKamPCLnRBKEDbnnntu5v+zzz67YZ5zzjlnXOsmY4AgxojturVj1zZ2i16FbRjwBNj138f+kFKdCpOhESoWAqsXgt1jwDIM1HL1uQP1DyuvXNdpUL73uhqz3Nvnm2m1VUBRCjHV3jI9N9T6d96CZbSbi/dvKfa3DI6njhTXBGcQNaAQ51obW6ostSD1cuTn6loJhwDUC0kRIyJKCydQTdBCj8Hrr79+i627dc4CQRAEQdTB+QRzBnjr5AxsScgYIIgJMP8XXGeXI0ewptk96He8VKzv1YtYJjSgM+pTk/Tn1CUoArIqwFqfnQWv6/KtygSVzW57FvwuwCmaeRRFKTrk9QC1FWb6eBIEW5kDHjChg9RKnsxL0vRtaWsr3HvwY5PrnBHbHjIGCIIgiJZlMoUJtiR0FghigmyL9tLRgHnvBlZuQk4Kw0jytjyp8xpYZXlAtgGSVzbriQfMjcNedzps1lPaXbyfftHkHeHm5REAjbkZgEgYVN8htSweG2QMNAc6CwTRgrznRo6ln5SVBaHVDTHYxELIPmhGEh9SxoDj1VU/KB1+6/meDDZuw+sGaq9tej8mGyp0AACPf0h+b3VdD9V3oLpgEsTWhIwBgiAIomXh3AHH+LUCOCdVfoCMAYJoWfb8mZRMPp9lShjr1QHzGgwBwpugPnLtEkglc5zUqRzKe2bcb8oF7dJDFXJIhsy8r3+JUUfOOkZSPlRqhqQ6OFY8TOxRRo9BgM4CQbQ8IxkCmfa/dT0A6j8HTB8C15rPCRrnzWwvpy9DOmiJItGga9SQEUBsS8gYIAiCIFqWydTCeEtCZ4EgWpx5P+JYdoFUvUusLohKNyDKb6Lk+CYMkEbGY6A8BN4IyYi2l8CTyW5u2XgGktCst16pkCCaDYc7sZyBCSz7boKMAYIgCKJlodLC5kBngSDeZeTVqXvt4pU5VmvfmkkAZG5jDkFeWSEgvQj9Zn2AaLGs2iszx/RQqK0d/3EQBLH1oPQegngXMO9HHPN+xMFT4/JXf/UhArdk/hTMlfLD1l89PDEGQxqKv3hQ/NmEbwvZ5B0v5djle5QUR2xZOHfAuTuBv7E9Bh955BGccMIJmDlzJhhjuPPOO/VnURThy1/+Mvbaay+0tbVh5syZOOecc/Dmm29m1rFgwQIwxjJ/n/jEJ5pxOsYNGQMEQRBEy6JyBibyNxaGhoawzz774Nprr234bHh4GE8//TQuvfRSPP3007j99tvx0ksv4cQTT2yY94ILLsCqVav03w9/+MNxn4NmQGECgngXsft1HC+dL6Vv5YtTyLrzVVOjtGa8BtzJb4mcJ5HLUzM9HhKv42nHTBDbEwMDA5n/C4UCCoVCw3zHHnssjj322Nx1dHV14f77789Mu+aaa/D+978fb7zxBnbaaSc9vVwuo6+vrwl73hzIGCCIdxm7/zj7YF7+90w/6FmalR62DQBtGKTmNS//YPfr6MFPbE9MrJpAKWvMnj07M/Wyyy7DokWLJrBeQX9/Pxhj6O7uzky/+eabcdNNN2H69Ok49thjcdlll6Gjo2PC2xsvZAwQBEEQrQt3gYkYA1wsu2LFCnR2msYQeV6BsVKtVvGVr3wFZ555ZmbdZ511FubOnYu+vj4sWbIEX/3qV/Hss882eBW2JmQMEMS7nLlXm5H8sgtYg1wxINz9OtFQhRd8YLcfkBeAmBx0dnZmHtgTJYoifOITn0Capvj3f//3zGcXXHCBfj9//nzMmzcPBx54IJ5++mnsv//+TduHsUDGAEFMIub9yDzcXzqfZcoJ68MLBNEKcDjgE8iFn8iyIxFFEU4//XQsX74cDz744GaNjP333x++72PZsmWtYQzUJ1gQBNG6DIamVJCn9PsmmsfWvJa2NwVCZQgsW7YMixcvxtSpUze7zPPPP48oijBjxoym7stYGJUxoGIn9QkWBEG8i/h517beA+JdRF9fH4JgBE3rFmZwcBAvv/yy/n/58uV45pln0NPTg5kzZ+LUU0/F008/jV/+8pdIkgSrV68GAPT09CAIArzyyiu4+eabcdxxx6G3txdLly7FJZdcgv322w+HHnrotjosMM75qHyDtVoNtVptS+8PQRAE8S4gCAIUi8Uttv6BgQF0dXXhisJyFNn4Y/1VPoCv1eaiv79/VDkDDz30EBYuXNgw/dxzz8WiRYswd+7c3OUWL16MBQsWYMWKFTj77LOxZMkSDA4OYvbs2Tj++ONx2WWXoaenZ9zHMVFGHSYYqeaSIAiCILYVnE8wZ2CMCoQLFizApsbQmxtfz549Gw8//PCYtrk1oARCgiAIomXZ3nIGWhWSIyYIgiCISQ55BgiCIIiWhYOBK3GMcS5PkDFAEARBtDBbO2fg3QqdBYIgCIKY5JBngCAIgmhZtkcFwlaEjAGCIAiiZaGcgeZAJhFBEARBTHLIM0AQBEG0LBQmaA5kDBAEQRAtDAMm5OqnMAFAxgBBEATRwnA+wZwBTsYAQDkDBEEQBDHpIc8AQRAE0bJQNUFzIGOAIAiCaFnIGGgOFCYgCIIgiEkOeQYIgiCIloXLv4ksT5AxQBAEQbQwVE3QHChMQBAEQRCTHPIMEARBEC0LhQmaAxkDBEEQRMtCxkBzoDABQRAEQUxyyDNAEARBtDQ0up84ZAwQBEEQLQuFCZoDGQMEQRBEy8I5B5/AI51zMgcAyhkgCIIgiEkPeQYIgiCIloXCBM2BjAGCIAiiZeGYYJiAzAEAFCYgCIIgiEkPeQYIgiCIloU8A82BjAGCIAiiZSFjoDlQmIAgCIIgJjnkGSAIgiBalhQc6QRG9xNZ9t0EGQMEQRBEy0JhguZAYQKCIAiCmOSQZ4AgCIJoWUiOuDmQMUAQBEG0LFxmDUxkeYKMAYIgCKKFIWOgOVDOAEEQBEFMcsgzQBAEQbQsVE3QHMgzQBAEQbQsXCsNjP9vLDzyyCM44YQTMHPmTDDGcOedd2b3h3MsWrQIM2fORKlUwoIFC/D8889n5qnVarjooovQ29uLtrY2nHjiiVi5cuVET8WEIGOAIAiCIEbJ0NAQ9tlnH1x77bW5n1911VX4zne+g2uvvRZPPPEE+vr6cNRRR2Hjxo16nosvvhh33HEHbr31Vjz66KMYHBzExz72MSRJsrUOowHGqa6CIAiCaDEGBgbQ1dWFz7LXUGCd415PjQ/g+3xn9Pf3o7NzbOthjOGOO+7ASSedBEB4BWbOnImLL74YX/7yl8X6azVMnz4d3/rWt/DpT38a/f392GGHHfDTn/4UZ5xxBgDgzTffxOzZs/GrX/0KxxxzzLiPZSKQZ4AgCIJoWUTGwETCBGI8PDAwkPmr1Wpj3pfly5dj9erVOProo/W0QqGAww47DI899hgA4KmnnkIURZl5Zs6cifnz5+t5tgVkDBAEQRCTntmzZ6Orq0v/XXnllWNex+rVqwEA06dPz0yfPn26/mz16tUIggBTpkwZcZ5tAVUTEARBEC0LR4q0CToDK1asyIQJCoXCuNfJGMtug/OGaQ37MYp5tiTkGSAIgiBaFs6TCf8BQGdnZ+ZvPMZAX18fADSM8NesWaO9BX19fQjDEOvXrx9xnm0BGQMEQRAE0QTmzp2Lvr4+3H///XpaGIZ4+OGHccghhwAADjjgAPi+n5ln1apVWLJkiZ5nW0BhAoIgCKJl4UjAMf6SvLEuOzg4iJdffln/v3z5cjzzzDPo6enBTjvthIsvvhhXXHEF5s2bh3nz5uGKK65AuVzGmWeeCQDo6urCpz71KVxyySWYOnUqenp68MUvfhF77bUXjjzyyHEfx0QhY4AgCIJoWba2MfDkk09i4cKF+v8vfOELAIBzzz0XN9xwA770pS+hUqngc5/7HNavX48PfOAD+M1vfoOOjg69zNVXXw3P83D66aejUqngiCOOwA033ADXdcd9HBOFdAYIgiCIlkPpDHwKzyJgHZtfYARCvhHXYZ9x6Qy8m6CcAYIgCIKY5FCYgCAIgmhZUiRIJxAmmMiy7ybIGCAIgiBaFqEiOJGcgfFrFLyboDABQRAEQUxyyDNAEARBtCxbu5rg3QoZAwRBEETLwhGDI57Q8gSFCQiCIAhi0kOeAYIgCKJlSREjncDofiLLvpsgY4AgCIJoWShnoDlQmIAgCIIgJjnkGSAIgiBaFuEZmEgCIXkGADIGCIIgiBaGcgaaAxkDBEEQRMtCpYXNgXIGCIIgCGKSQ54BgiAIomXhiMARTWh5gowBgiAIooXhSCYU96cEQgGFCQiCIAhikkOeAYIgCKJl4YjAOYUJJgoZAwRBEETLQqWFzYHCBARBEAQxySHPAEEQBNGyUDVBcyBjgCAIgmhZRJhg/A90ChMIKExAEARBEJMc8gwQBEEQLYsIE4z/UUZhAgEZAwRBEETLkiJCOoFH2URCDO8myBggCIIgWhbyDDQHyhkgCIIgiEkOeQYIgiCIloWqCZoDGQMEQRBEyyLCBO6ElicoTEAQBEEQkx7yDBAEQRAti6gmGL9ngKoJBGQMEARBEC2LMAbG7+QmY0BAYQKCIAiCmOSQZ4AgCIJoWfgEPQOUQCggY4AgCIJoWThCcLAJLU9QmIAgCIIgJj3kGSAIgiBaFpFAOH7PACUQCsgYIAiCIFoWMgaaAxkDBEEQRMuSIkQ6weUJyhkgCIIgiFGz8847gzHW8HfhhRcCAM4777yGzz74wQ9u473ePOQZIAiCIFqWre0ZeOKJJ5Akif5/yZIlOOqoo3DaaafpaR/96Edx/fXX6/+DIJjAHm4dyBggCIIgWhaRMzCx5cfCDjvskPn/X/7lX7DrrrvisMMO09MKhQL6+vomsFdbHwoTEARBEJOegYGBzF+tVtvsMmEY4qabbsL5558PxkwS40MPPYRp06Zh9913xwUXXIA1a9ZsyV1vCmQMEARBEC2LCBNM7A8AZs+eja6uLv135ZVXbnbbd955JzZs2IDzzjtPTzv22GNx880348EHH8S3v/1tPPHEEzj88MNHZVxsSxjnnG/rnSAIgiCIsTAwMICuri4cgKPgwR/3emJEeAr3Y8WKFejs7NTTC4UCCoXCJpc95phjEAQB7rnnnhHnWbVqFebMmYNbb70VJ5988rj3c0tDOQMEQRDEpKezszNjDGyO119/HQ888ABuv/32Tc43Y8YMzJkzB8uWLZvoLm5RyBggCIIgWhbRqGj8Dm6OeFzLXX/99Zg2bRqOP/74Tc63bt06rFixAjNmzBjXdrYWZAwQBEEQLUuCEJhAPUEyDmMgTVNcf/31OPfcc+F55jE6ODiIRYsW4ZRTTsGMGTPw2muv4Wtf+xp6e3vx8Y9/fNz7uDUgY4AgCIIgxsADDzyAN954A+eff35muuu6+OMf/4if/OQn2LBhA2bMmIGFCxfitttuQ0dHxzba29FBCYQEQRBEy6ESCPfCgXAnMK5NEOOPeBL9/f1jyhl4t0GeAYIgCKJlSRBhYmGCZPMzTQLIGCAIgiBaFpEz4E5geTIGABIdIgiCIIhJD3kGCIIgiJaFPAPNgYwBgiAIomURcsLjd3KnE2pz9O6BwgQEQRAEMckhzwBBEATRssQI4ZBnYMKQMUAQBEG0LGQMNAcKExAEQRDEJIc8AwRBEETLEiGCAzbu5SfS5OjdBBkDBEEQRMsSogY2AWOAkzEAgMIEBEEQBDHpIc8AQRAE0bL0I9rWu/CugDwDBEEQRMsRBAH6+vqasq6+vj4EQdCUdbUq1MKYIAiCaEmq1SrCMJzweoIgQLFYbMIetS5kDBAEQRDEJIfCBARBEAQxySFjgCAIgiAmOWQMEARBEMQkh4wBgiAIgpjkkDFAEARBEJMcMgYIgiAIYpJDxgBBEARBTHL+/8ne2cHxmN8DAAAAAElFTkSuQmCC",
- "text/plain": [
- "
"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "crs = ccrs.LambertConformal(\n",
+ " central_latitude=49, central_longitude=-95, standard_parallels=(49, 77)\n",
+ ")\n",
+ "\n",
+ "dem.name = \"Elevation\"\n",
+ "dem.attrs[\"units\"] = \"m\"\n",
+ "ax = plt.subplot(projection=crs)\n",
+ "dem.where(dem != -32768).sel(band=1).plot.imshow(ax=ax, transform=crs, cmap=\"gnuplot\")\n",
+ "plt.show()"
]
- },
- "metadata": {},
- "output_type": "display_data"
},
{
- "data": {
- "text/plain": [
- "'https://pavics.ouranos.ca/wpsoutputs/raven/274bbfe2-feed-11ed-8c70-0242ac130010/clipped_vftry25z.tiff'"
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "'https://pavics.ouranos.ca/wpsoutputs/raven/274bbfe2-feed-11ed-8c70-0242ac130010/input.json'"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/plain": [
+ "'https://pavics.ouranos.ca/wpsoutputs/raven/274bbfe2-feed-11ed-8c70-0242ac130010/clipped_vftry25z.tiff'"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/plain": [
+ "array([[-32768, -32768, 86, ..., -32768, -32768, -32768],\n",
+ " [ 120, 103, 86, ..., -32768, -32768, -32768],\n",
+ " [ 120, 104, 93, ..., -32768, -32768, -32768],\n",
+ " ...,\n",
+ " [-32768, -32768, -32768, ..., -32768, -32768, -32768],\n",
+ " [-32768, -32768, -32768, ..., -32768, -32768, -32768],\n",
+ " [-32768, -32768, -32768, ..., -32768, -32768, -32768]], dtype=int16)"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "# We can also access the files directly via their URLs:\n",
+ "properties, dem = terrain_resp.get(asobj=False)\n",
+ "display(properties, dem)\n",
+ "\n",
+ "# Let's read the data from band=1 as numpy array\n",
+ "display(rasterio.open(dem).read(1))"
]
- },
- "metadata": {},
- "output_type": "display_data"
},
{
- "data": {
- "text/plain": [
- "array([[-32768, -32768, 86, ..., -32768, -32768, -32768],\n",
- " [ 120, 103, 86, ..., -32768, -32768, -32768],\n",
- " [ 120, 104, 93, ..., -32768, -32768, -32768],\n",
- " ...,\n",
- " [-32768, -32768, -32768, ..., -32768, -32768, -32768],\n",
- " [-32768, -32768, -32768, ..., -32768, -32768, -32768],\n",
- " [-32768, -32768, -32768, ..., -32768, -32768, -32768]], dtype=int16)"
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Overview\n",
+ "\n",
+ "A synthesis of all watershed properties can be created by merging the various dictionaries created. This allows users to easily access any of these values, and to provide them to Raven as needed."
]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "# We can also access the files directly via their URLs:\n",
- "properties, dem = terrain_resp.get(asobj=False)\n",
- "display(properties, dem)\n",
- "\n",
- "# Let's read the data from band=1 as numpy array\n",
- "display(rasterio.open(dem).read(1))"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Overview\n",
- "\n",
- "A synthesis of all watershed properties can be created by merging the various dictionaries created. This allows users to easily access any of these values, and to provide them to Raven as needed."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 14,
- "metadata": {
- "tags": []
- },
- "outputs": [
+ },
{
- "data": {
- "text/plain": [
- "{'area': 55.91945346888515,\n",
- " 'longitude': -71.41715786806483,\n",
- " 'latitude': 48.47239495054429,\n",
- " 'gravelius': 1.7025827715870572,\n",
- " 'perimeter': 45133.04400352313,\n",
- " 'Ocean': 0.0,\n",
- " 'Forest': 0.9095753879046077,\n",
- " 'Shrubs': 0.004920532612284039,\n",
- " 'Grass': 0.005753721840562167,\n",
- " 'Wetland': 0.0009589536400936945,\n",
- " 'Crops': 0.045605319834619795,\n",
- " 'Urban': 0.02361226831837261,\n",
- " 'Water': 0.009573815849459998,\n",
- " 'SnowIce': 0.0,\n",
- " 'elevation': 165.37033101757254,\n",
- " 'slope': 3.8477161303214786,\n",
- " 'aspect': 5.4659402646877995}"
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "{'area': 55.91945346888515,\n",
+ " 'longitude': -71.41715786806483,\n",
+ " 'latitude': 48.47239495054429,\n",
+ " 'gravelius': 1.7025827715870572,\n",
+ " 'perimeter': 45133.04400352313,\n",
+ " 'Ocean': 0.0,\n",
+ " 'Forest': 0.9095753879046077,\n",
+ " 'Shrubs': 0.004920532612284039,\n",
+ " 'Grass': 0.005753721840562167,\n",
+ " 'Wetland': 0.0009589536400936945,\n",
+ " 'Crops': 0.045605319834619795,\n",
+ " 'Urban': 0.02361226831837261,\n",
+ " 'Water': 0.009573815849459998,\n",
+ " 'SnowIce': 0.0,\n",
+ " 'elevation': 165.37033101757254,\n",
+ " 'slope': 3.8477161303214786,\n",
+ " 'aspect': 5.4659402646877995}"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "all_properties = {**shape_info, **land_use, **terrain}\n",
+ "display(all_properties)"
]
- },
- "metadata": {},
- "output_type": "display_data"
}
- ],
- "source": [
- "all_properties = {**shape_info, **land_use, **terrain}\n",
- "display(all_properties)"
- ]
- }
- ],
- "metadata": {
- "kernelspec": {
- "display_name": "Python 3 (ipykernel)",
- "language": "python",
- "name": "python3"
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3 (ipykernel)",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.9.16"
+ }
},
- "language_info": {
- "codemirror_mode": {
- "name": "ipython",
- "version": 3
- },
- "file_extension": ".py",
- "mimetype": "text/x-python",
- "name": "python",
- "nbconvert_exporter": "python",
- "pygments_lexer": "ipython3",
- "version": "3.9.16"
- }
- },
- "nbformat": 4,
- "nbformat_minor": 4
+ "nbformat": 4,
+ "nbformat_minor": 4
}
diff --git a/docs/notebooks/03_Extracting_forcing_data.ipynb b/docs/notebooks/03_Extracting_forcing_data.ipynb
index fd940633..40895807 100644
--- a/docs/notebooks/03_Extracting_forcing_data.ipynb
+++ b/docs/notebooks/03_Extracting_forcing_data.ipynb
@@ -1,871 +1,871 @@
{
- "cells": [
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "# 03 - Extracting forcing data\n",
- "\n",
- "## Extracting meteorological data for a selected watershed\n",
- "Using a GeoJSON file extracted from the HydroSHEDS database or given by the user, meteorological datasets can be extracted inside the watershed's boundaries using the PAVICS-Hydro ERA5 database."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 1,
- "metadata": {
- "pycharm": {
- "is_executing": true
- }
- },
- "outputs": [],
- "source": [
- "import datetime as dt\n",
- "import tempfile\n",
- "from pathlib import Path\n",
- "\n",
- "import fsspec # noqa\n",
- "import intake\n",
- "import s3fs # noqa\n",
- "import xarray as xr\n",
- "from clisops.core import subset\n",
- "\n",
- "from ravenpy.utilities.testdata import get_file"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "If we want to extract data for our watershed, we need to know:\n",
- "\n",
- "- The spatial extent (as defined by the watershed boundaries);\n",
- "- The temporal extent (as defined by the start and end days of the period of interest).\n",
- "\n",
- "Let's define those now:"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 2,
- "metadata": {},
- "outputs": [],
- "source": [
- "# This will be our input section, where we control what we want to extract.\n",
- "# We know which watershed interests us, it is the input.geojson file that we previously generated!\n",
- "\n",
- "# The contour can be generated using notebook \"01_Delineating watersheds, where it would be placed\n",
- "# in the same folder as the notebooks and available in your workspace. The contour could then be accessed\n",
- "# easily by defining it as follows:\n",
- "\"\"\"\n",
- "basin_contour = \"input.geojson\"\n",
- "\"\"\"\n",
- "# However, to keep things tidy, we have also prepared a version that can be accessed easily for\n",
- "# demonstration purposes:\n",
- "basin_contour = get_file(\"notebook_inputs/input.geojson\")\n",
- "\n",
- "# Also, we can specify which timeframe we want to extract. Here let's focus on a 10-year period\n",
- "reference_start_day = dt.datetime(1985, 12, 31)\n",
- "reference_stop_day = dt.datetime(1987, 1, 1)\n",
- "# Notice we are using one day before and one day after the desired period of 1986-01-01 to 1986-12-31.\n",
- "# This is to account for any UTC shifts that might require getting data in a previous or later time."
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "We now provide a means to get some data to run our model. Typically, models will require precipitation and temperature data, so let's get that data. We will use a generally reliable dataset that is available everywhere to minimize missing values: the ERA5 Reanalysis.\n",
- "\n",
- "The code block below gathers the required data automatically. If you need other data or want to use another source, this cell will need to be replaced for your customized needs."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 3,
- "metadata": {},
- "outputs": [],
- "source": [
- "# Get the ERA5 data from the Wasabi/Amazon S3 server.\n",
- "catalog_name = \"https://raw.githubusercontent.com/hydrocloudservices/catalogs/main/catalogs/atmosphere.yaml\"\n",
- "cat = intake.open_catalog(catalog_name)\n",
- "ds = cat.era5_reanalysis_single_levels.to_dask()"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Get the ERA5 data. We will rechunk it to a single chunk to make it compatible with other codes on the platform, especially bias-correction.\n",
- "We are also taking the daily min and max temperatures as well as the daily total precipitation."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 4,
- "metadata": {
- "collapsed": false,
- "jupyter": {
- "outputs_hidden": false
- }
- },
- "outputs": [
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# 03 - Extracting forcing data\n",
+ "\n",
+ "## Extracting meteorological data for a selected watershed\n",
+ "Using a GeoJSON file extracted from the HydroSHEDS database or given by the user, meteorological datasets can be extracted inside the watershed's boundaries using the PAVICS-Hydro ERA5 database."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "pycharm": {
+ "is_executing": true
+ }
+ },
+ "outputs": [],
+ "source": [
+ "import datetime as dt\n",
+ "import tempfile\n",
+ "from pathlib import Path\n",
+ "\n",
+ "import fsspec # noqa\n",
+ "import intake\n",
+ "import s3fs # noqa\n",
+ "import xarray as xr\n",
+ "from clisops.core import subset\n",
+ "\n",
+ "from ravenpy.utilities.testdata import get_file"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "If we want to extract data for our watershed, we need to know:\n",
+ "\n",
+ "- The spatial extent (as defined by the watershed boundaries);\n",
+ "- The temporal extent (as defined by the start and end days of the period of interest).\n",
+ "\n",
+ "Let's define those now:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# This will be our input section, where we control what we want to extract.\n",
+ "# We know which watershed interests us, it is the input.geojson file that we previously generated!\n",
+ "\n",
+ "# The contour can be generated using notebook \"01_Delineating watersheds, where it would be placed\n",
+ "# in the same folder as the notebooks and available in your workspace. The contour could then be accessed\n",
+ "# easily by defining it as follows:\n",
+ "\"\"\"\n",
+ "basin_contour = \"input.geojson\"\n",
+ "\"\"\"\n",
+ "# However, to keep things tidy, we have also prepared a version that can be accessed easily for\n",
+ "# demonstration purposes:\n",
+ "basin_contour = get_file(\"notebook_inputs/input.geojson\")\n",
+ "\n",
+ "# Also, we can specify which timeframe we want to extract. Here let's focus on a 10-year period\n",
+ "reference_start_day = dt.datetime(1985, 12, 31)\n",
+ "reference_stop_day = dt.datetime(1987, 1, 1)\n",
+ "# Notice we are using one day before and one day after the desired period of 1986-01-01 to 1986-12-31.\n",
+ "# This is to account for any UTC shifts that might require getting data in a previous or later time."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "We now provide a means to get some data to run our model. Typically, models will require precipitation and temperature data, so let's get that data. We will use a generally reliable dataset that is available everywhere to minimize missing values: the ERA5 Reanalysis.\n",
+ "\n",
+ "The code block below gathers the required data automatically. If you need other data or want to use another source, this cell will need to be replaced for your customized needs."
+ ]
+ },
{
- "data": {
- "text/html": [
- "
"
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Get the ERA5 data from the Wasabi/Amazon S3 server.\n",
+ "catalog_name = \"https://raw.githubusercontent.com/hydrocloudservices/catalogs/main/catalogs/atmosphere.yaml\"\n",
+ "cat = intake.open_catalog(catalog_name)\n",
+ "ds = cat.era5_reanalysis_single_levels.to_dask()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Get the ERA5 data. We will rechunk it to a single chunk to make it compatible with other codes on the platform, especially bias-correction.\n",
+ "We are also taking the daily min and max temperatures as well as the daily total precipitation."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false,
+ "jupyter": {
+ "outputs_hidden": false
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "
"
+ ],
+ "text/plain": [
+ "\n",
+ "dask.array\n",
+ "Coordinates:\n",
+ " * latitude (latitude) float64 48.5\n",
+ " * longitude (longitude) float64 -71.5\n",
+ " * time (time) datetime64[ns] 1985-12-31 1986-01-01 ... 1987-01-01\n",
+ "Attributes:\n",
+ " long_name: Total precipitation\n",
+ " units: m\n",
+ " grid_mapping: crs"
+ ]
+ },
+ "execution_count": 4,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
],
- "text/plain": [
- "\n",
- "dask.array\n",
- "Coordinates:\n",
- " * latitude (latitude) float64 48.5\n",
- " * longitude (longitude) float64 -71.5\n",
- " * time (time) datetime64[ns] 1985-12-31 1986-01-01 ... 1987-01-01\n",
- "Attributes:\n",
- " long_name: Total precipitation\n",
- " units: m\n",
- " grid_mapping: crs"
+ "source": [
+ "# We will add a wrapper to ensure that the following operations will preserve the original data attributes, such as units and variable names.\n",
+ "with xr.set_options(keep_attrs=True):\n",
+ " ERA5_reference = subset.subset_shape(\n",
+ " ds.sel(time=slice(reference_start_day, reference_stop_day)), basin_contour\n",
+ " )\n",
+ " ERA5_tas = ERA5_reference[\"t2m\"].resample(time=\"1D\")\n",
+ " ERA5_tmin = ERA5_tas.min().chunk(-1, -1, -1)\n",
+ " ERA5_tmax = ERA5_tas.max().chunk(-1, -1, -1)\n",
+ " ERA5_pr = ERA5_reference[\"tp\"].resample(time=\"1D\").sum().chunk(-1, -1, -1)\n",
+ "\n",
+ "ERA5_pr"
]
- },
- "execution_count": 4,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "# We will add a wrapper to ensure that the following operations will preserve the original data attributes, such as units and variable names.\n",
- "with xr.set_options(keep_attrs=True):\n",
- " ERA5_reference = subset.subset_shape(\n",
- " ds.sel(time=slice(reference_start_day, reference_stop_day)), basin_contour\n",
- " )\n",
- " ERA5_tas = ERA5_reference[\"t2m\"].resample(time=\"1D\")\n",
- " ERA5_tmin = ERA5_tas.min().chunk(-1, -1, -1)\n",
- " ERA5_tmax = ERA5_tas.max().chunk(-1, -1, -1)\n",
- " ERA5_pr = ERA5_reference[\"tp\"].resample(time=\"1D\").sum().chunk(-1, -1, -1)\n",
- "\n",
- "ERA5_pr"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "We can now convert these variables to the desired format and save them to disk in netcdf files to use at a later time (in a future notebook!)\n",
- "\n",
- "First, we will want to make sure that the units we are working with are compatible with the Raven modelling framework. We will want precipitation to be in mm (per time period, here we are working daily so it will be in mm/day), and temperatures will be in °C. Let's check out the current units:"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 5,
- "metadata": {},
- "outputs": [
+ },
{
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Tmin units: K\n",
- "Tmax units: K\n",
- "Precipitation units: m\n"
- ]
- }
- ],
- "source": [
- "print(f\"Tmin units: {ERA5_tmin.units}\")\n",
- "print(f\"Tmax units: {ERA5_tmax.units}\")\n",
- "print(f\"Precipitation units: {ERA5_pr.units}\")"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "We can see that the units are in Kelvin for temperatures and in meters for precipitation. We will want to do some conversions!\n",
- "\n",
- "Let's start by applying offsets for temperatures and a conversion factor for precipitation:\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 6,
- "metadata": {},
- "outputs": [],
- "source": [
- "with xr.set_options(keep_attrs=True):\n",
- " ERA5_tmin = ERA5_tmin - 273.15 # K to °C\n",
- " ERA5_tmin.attrs[\"units\"] = \"degC\"\n",
- "\n",
- " ERA5_tmax = ERA5_tmax - 273.15 # K to °C\n",
- " ERA5_tmax.attrs[\"units\"] = \"degC\"\n",
- "\n",
- " ERA5_pr = ERA5_pr * 1000 # m to mm\n",
- " ERA5_pr.attrs[\"units\"] = \"mm\""
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "We can see the changes now by re-inspecting the datasets:"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 7,
- "metadata": {},
- "outputs": [
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "We can now convert these variables to the desired format and save them to disk in netcdf files to use at a later time (in a future notebook!)\n",
+ "\n",
+ "First, we will want to make sure that the units we are working with are compatible with the Raven modelling framework. We will want precipitation to be in mm (per time period, here we are working daily so it will be in mm/day), and temperatures will be in °C. Let's check out the current units:"
+ ]
+ },
{
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Tmin units: degC\n",
- "Tmax units: degC\n",
- "Precipitation units: mm\n"
- ]
- }
- ],
- "source": [
- "print(f\"Tmin units: {ERA5_tmin.units}\")\n",
- "print(f\"Tmax units: {ERA5_tmax.units}\")\n",
- "print(f\"Precipitation units: {ERA5_pr.units}\")"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "So let's write them to disk for now. We will use the netcdf format as this is what Raven uses for inputs. It is possible you will get some warnings, this is OK and should not cause any problems. Since our model will run in lumped mode, we will average the spatial dimensions of each variable over the domain."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 8,
- "metadata": {},
- "outputs": [],
- "source": [
- "with xr.set_options(keep_attrs=True):\n",
- " # Average the variables\n",
- " ERA5_tmin = ERA5_tmin.mean({\"latitude\", \"longitude\"})\n",
- " ERA5_tmax = ERA5_tmax.mean({\"latitude\", \"longitude\"})\n",
- " ERA5_pr = ERA5_pr.mean({\"latitude\", \"longitude\"})\n",
- "\n",
- " # Ensure that the precipitation is non-negative, which can happen with some reanalysis models.\n",
- " ERA5_pr[ERA5_pr < 0] = 0\n",
- "\n",
- " # Transform them to a dataset such that they can be written with attributes to netcdf\n",
- " ERA5_tmin = ERA5_tmin.to_dataset(name=\"tmin\", promote_attrs=True)\n",
- " ERA5_tmax = ERA5_tmax.to_dataset(name=\"tmax\", promote_attrs=True)\n",
- " ERA5_pr = ERA5_pr.to_dataset(name=\"pr\", promote_attrs=True)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 9,
- "metadata": {},
- "outputs": [
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Tmin units: K\n",
+ "Tmax units: K\n",
+ "Precipitation units: m\n"
+ ]
+ }
+ ],
+ "source": [
+ "print(f\"Tmin units: {ERA5_tmin.units}\")\n",
+ "print(f\"Tmax units: {ERA5_tmax.units}\")\n",
+ "print(f\"Precipitation units: {ERA5_pr.units}\")"
+ ]
+ },
{
- "data": {
- "text/plain": [
- "[]"
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "We can see that the units are in Kelvin for temperatures and in meters for precipitation. We will want to do some conversions!\n",
+ "\n",
+ "Let's start by applying offsets for temperatures and a conversion factor for precipitation:\n"
]
- },
- "execution_count": 9,
- "metadata": {},
- "output_type": "execute_result"
},
{
- "data": {
- "image/png": "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oVAIoVDIVTvylUL0mYnSgJM20hmazfdkzEKbec2M1xE9+ULcAdhrs1B6HICz4jNDOawKGsfCzLnnngsA+PTTT/Gtb30L5eXl2ne8avb555/v6uDXXXcdnnrqKfz73/9GRUWFpoGprKxEr1694PP5cPPNN+Puu+/G6NGjMXr0aNx9990oLS3FRRdd5OpYhUg2VLXpRjunAjmfXCK9mhn+39yURUnz0oMxNDu9+/eKbITP09BS2DgWZn75y18CAEaMGIELLrgAJSWph7Y98sgjAIDp06dLny9YsABXXHEFAGDWrFlob2/Htddei71792LKlCl47bXXUFFRkfLx8x15dVMYjyglzUsffNXu98X7OV0OnWafZzYxmvnrQsSQINBjbW26tL9Z8ZkxOTZROLgOzb788ss9O7iTAc7n82HOnDmYM2eOZ8ctGApw0I5RNFPa4JNGwO9DLMo8vWesJops+8wUisbSCvH0mCHPjMf7T313+r6ysBAjn5nCxpEw069fP6xbtw4DBgxA3759LSOJAGjlDYj0U4g+MxTNlD543/p9PgDM03vGygGYT69ZS5pX4HeSmlPHcwdgYebP92gm8pkpbBwJM7/73e80s87999+fzvYQLijEFSjPM8OYfQg+0Q0EzQyQmdDsbPjM9KTaTGq0kdcLHNVl3CuyYSLn+WUKZeFHyDgSZkTTkpdmJiI1CtFnRvV3IFnGO/ggHkh0alrKGajHjGV+NSyn4C+M58IaWXDz2l8oXTl7shFxZqU9JAoD1z4zQDwU+4UXXsCXX34Jn8+HQw45BOecc44Urk2kH6/t47lATw2rzQR8MvJzzYyn+zafKDSfGQ+PlYyemjQvxrzv50KqzaQHF2TkcESGcS19fP755zjnnHNQW1uLgw46CACwbt06DBw4EC+99BLGjx/veSMJcwoxA3BUOacASDXjFdx/JKiZmbz0meH/VcNE5n1mCrHMhxXyxMzkMcGDWTtd/kfZqJqdjWzUROZwnQH46quvxqGHHopt27bh448/xscff4yamhpMmDAB11xzTTraSFhQiD4zPSlHSKbhPgP+NPjMWEWKaD4zGayHk426P9ki7Q7AadLMxDwWupygmUJpXClIXGtmVq9ejZUrV6Jv377aZ3379sVdd92FI4880tPGEfaIE0ShDNrRNEVPEDq6z4yHO9XMSfJOs12bqdDv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ee655zB8+HB88MEHuPzyy9HV1YWHHnoI//3vf7PdtJzjr3/9K/r06YMPP/wQH3zwAebPn5/tJuU0v//971FZWYnVq1dj3bp1mDZtGjZs2AAgXjCWkFm3bh0OP/xwfPjhh7j00ktRX1+Pn/70p/jZz36W7ablHDSuOydf+4qEGYGOjg68+OKLOPLII/Gb3/wGmzdvxosvvgggPyTTdLNp0yY8//zzuPbaa/Hee+/hsssuw+OPP46ampqkFU17Gps2bcKsWbNw9NFHY+XKlZgyZQo2btyInTt3orW1NdvNyzl+85vf4MEHH8TDDz+MDz/8EKNGjcKECROwatUqdHV10f1lwiuvvIIBAwZg6dKluOiii/Dvf/8bZ555JubPn4933nmHxqwENK47J5/7quCrZjuFMYaSkhJccsklKC0txbhx47Bq1SosXrwYxx57LI488kgwxnL+gqaT/v374+abb8aoUaO0fmhoaMDYsWPRt29fdHR0oKSkJMutzA2GDRuGn/3sZ7jnnnuwdu1a/OY3v8F7770Hv9+Pvn374pZbbsH3vve9bDczZ7jkkktwyy23IBAIaJ+VlZUhFouhqakJ/fr169HPnkgsFkMkEsHq1atRVlaGUCiEWCyG4uJirWrxbbfdho8++ijLLc0ufLymcd0Z+T4H9ujlzpNPPonnn38e27Zt0y7QkUceiXHjxgEArr32WtTV1eHFF1/UfEJyXdXmJWL/APES75MnT0a/fv0AALNmzcKECRNQW1uL73znOzj33HPx2muvAeh5ZgG1r4qKinDRRRdhv/32w/jx4xGNRvH73/8e8+bNQ3V1NX7xi19g8eLFAHpeXwHG/qqqqoLf7wdjTOuPU045BR9//DEA9LhnT0XsL7/fj+LiYhQVFSESiWD58uWa5mr16tWYNWsW1q5di3/+858Act884DVr1qwxfHbUUUfRuG5CQc2BrAfyxhtvsKFDh7Jx48axYcOGsfHjx7MHHnhA+z4Wi2mvb7vtNnbcccex//73v9loalYw65/777/fsN3FF1/M/v3vf7OWlha2fPlydvnll7OJEydmvsFZxKyvfve73zHGGItEIuzVV19lc+fOZfX19dpvvvnmG3beeeex8847L0utzh7Jnj2RDz/8kI0YMYI999xzGW5l7mDWX7/97W8ZY4ytWbOGTZkyhY0YMYL94Ac/YH36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Mtxyyy0F3x8a2ZKi3LJgwQJWVVXFxo8fzyoqKti1116rOSnNnz+fBQIBNnr0aEmduGDBAnbooYeyl156KVvNzhjUP86hvnIH9Zc7qL+cQ33lHLWvrrvuOrZjxw7TbSdOnMhuuOEGxpieR6bQyQth5tFHH2WjRo1iTz/9NNu9ezf7xz/+wcrLy9mnn37KGGNs1apVbNKkSWzEiBGGRFFDhw7VVI355JntBuof51BfuYP6yx3UX86hvnJOsr7icHPTDTfcwKZMmZKNpmaNnI5mYowhGo3irbfewtSpU3HhhRdiwIABuOiiizB06FDNK33MmDG46KKLUFNTg/fee0/7/e7du9G/f3+UlZUByDPPbAdQ/ziH+sod1F/uoP5yDvWVc5L1lQo30YVCIQQCAezduzfTTc4aOS3M+Hw+BAIBfPHFFwiFQti1axcA4MYbb4TP58O///1vfPDBBygpKcH111+Pb3/727jtttswZ84cfPrpp5g9ezaCwSBOOumkLJ9JeqD+cQ71lTuov9xB/eUc6ivnJOurF198EcuXL0d7ezsAIBwOAwBOPPFEQwLKgicr+iALnn32WXb11Vez+++/n3322Wfa5wsXLmTDhw9np512Guvfvz87+OCD2Z133slOPPFENmHCBHb33XczxuIJlm688UZ2xBFHsIMOOohNmzaNrV+/Plun4znUP86hvnIH9Zc7qL+cQ33lnO701cSJE9ldd90l7Wfx4sWsf//+eR+h5IacEGb27NnDvvOd77Cqqir24x//mB133HFs6NChbMGCBdo2dXV17Ne//jWbNm0aa2pq0j7/4Q9/yM477zy2a9cu7bOWlpaCutmpf5xDfeUO6i93UH85h/rKOV701Z49e7TPtm3bxj766KNMnkLWyYmCJ0uWLMHWrVuxcuVK7LfffgCAc889F3feeScqKytx3nnnoW/fvli1ahVOPfVUVFRUIBwOo7i4GBUVFXjrrbekwldlZWU48MADs3U6nkP94xzqK3dQf7mD+ss51FfO8aKvevXqpe1vv/320/bTU8gJn5mnnnoKw4YNw3777YeWlhYAwHnnnYfNmzfjD3/4A+rq6hAMBlFfX68V7isuLsauXbuwbt06XHjhhSgtLc3mKaQV6h/nUF+5g/rLHdRfzqG+cg71VepkXJh5++23sXjxYqmC6ejRo7F27VoA0CTxr776CieddBI6Ojrw4osvAgBmz56Nl19+GcceeyyuvfZaTJ48GU1NTbjmmmsyfRppg/rHOdRX7qD+cgf1l3Oor5xDfZUmMmXP2r17N7vsssuYz+djEydOZJs2bdK+27BhAxs4cCCbNm0au/fee9nUqVPZyJEj2ZtvvskmTpzI/vd//1fb9oUXXmA//elP2UUXXcSeffbZTDU/7VD/OIf6yh3UX+6g/nIO9ZVzqK/SS0aEma6uLvbwww+zb33rW2zhwoWstLSUzZs3j3V0dGjbvPvuu+yHP/whO/zww9n111/Pdu/ezRhj7NJLL2Xnn39+JpqZNah/nEN95Q7qL3dQfzmH+so51FfpJ2OameXLl7P//Oc/jDHG5s6dywYOHMg++eQTw3adnZ3a6127drFx48ax//f//h9jjEnFtAoN6h/nUF+5g/rLHdRfzqG+cg71VXrJmDCjppweOnQou+aaa7QQM/H79vZ2Fg6H2cMPP8wmTZokxdsXKtQ/zqG+cgf1lzuov5xDfeUc6qv0kvE8M1zqfPbZZ1kwGGSvvfaa9P22bdvYww8/zCZPnsz69evHnnrqqUw3MatQ/ziH+sod1F/uoP5yDvWVc6iv0oOPsUQhjCxwzDHHoKysDP/4xz8waNAg7N69GwMHDsTTTz+NHTt24LbbbstW03IC6h/nUF+5g/rLHdRfzqG+cg71lXdkRZiJRCIIBoNYu3YtJk6ciPnz52PDhg1499138fjjj2PcuHGZblJOQf3jHOord1B/uYP6yznUV86hvkoD2VUMMXbkkUcyn8/Hhg8fzhYtWpTt5uQc1D/Oob5yB/WXO6i/nEN95RzqK2/ImjCzfv16Nm7cOFZaWsoeffTRbDUjZ6H+cQ71lTuov9xB/eUc6ivnUF95S9bKGQQCAZx//vnYs2cPfvCDH2SrGTkL9Y9zqK/cQf3lDuov51BfOYf6yluy6gBMEARBEASRKjlRaJIgCIIgCKK7kDBDEARBEEReQ8IMQRAEQRB5DQkzBEEQBEHkNSTMEARBEASR15AwQxAEQRBEXkPCDEEQBEEQeQ0JMwRB5CRLly6Fz+fDvn37st0UgiByHEqaRxBETjB9+nQcdthhuP/++wEA4XAYDQ0NGDx4MHw+X3YbRxBEThPMdgMIgiDMKC4uRlVVVbabQRBEHkBmJoIgss4VV1yBZcuW4YEHHoDP54PP58Pf/vY3ycz0t7/9DX369MF///tfHHTQQSgtLcV3vvMdtLa24vHHH8eIESPQt29f3HDDDYhGo9q+w+EwZs2ahf322w9lZWWYMmUKli5dmp0TJQgiLZBmhiCIrPPAAw9g3bp1GDduHO68804AwNq1aw3btbW14cEHH8TChQvR3NyMmTNnYubMmejTpw9eeeUVbNy4Eeeffz6OO+44XHDBBQCAK6+8Eps3b8bChQsxdOhQvPDCCzj99NOxZs0ajB49OqPnSRBEeiBhhiCIrFNZWYni4mKUlpZqpqWvvvrKsF1XVxceeeQRHHjggQCA73znO/j73/+OXbt2oby8HGPHjsWJJ56IJUuW4IILLsCGDRvw9NNPY9u2bRg6dCgA4Pbbb8eiRYuwYMEC3H333Zk7SYIg0gYJMwRB5A2lpaWaIAMAgwcPxogRI1BeXi59VldXBwD4+OOPwRjDmDFjpP10dnaif//+mWk0QRBph4QZgiDyhqKiIum9z+cz/SwWiwEAYrEYAoEAVq1ahUAgIG0nCkAEQeQ3JMwQBJETFBcXS467XjBp0iREo1HU1dXh+OOP93TfBEHkDhTNRBBETjBixAh8+OGH2Lx5M/bs2aNpV1JhzJgxuPjii3HZZZfh+eefx6ZNm7BixQrce++9eOWVVzxoNUEQuQAJMwRB5AS33347AoEAxo4di4EDB2Lr1q2e7HfBggW47LLLcNttt+Gggw7C2WefjQ8//BDV1dWe7J8giOxDGYAJgiAIgshrSDNDEARBEEReQ8IMQRAEQRB5DQkzBEEQBEHkNSTMEARBEASR15AwQxAEQRBEXkPCDEEQBEEQeQ0JMwRBEARB5DUkzBAEQRAEkdeQMEMQBEEQRF5DwgxBEARBEHkNCTMEQRAEQeQ1JMwQBEEQBJHX/H9hZa8TIMlh9gAAAABJRU5ErkJggg==",
- "text/plain": [
- "
"
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "with xr.set_options(keep_attrs=True):\n",
+ " ERA5_tmin = ERA5_tmin - 273.15 # K to °C\n",
+ " ERA5_tmin.attrs[\"units\"] = \"degC\"\n",
+ "\n",
+ " ERA5_tmax = ERA5_tmax - 273.15 # K to °C\n",
+ " ERA5_tmax.attrs[\"units\"] = \"degC\"\n",
+ "\n",
+ " ERA5_pr = ERA5_pr * 1000 # m to mm\n",
+ " ERA5_pr.attrs[\"units\"] = \"mm\""
]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "# Check and see if the precipitation makes sense:\n",
- "ERA5_pr.pr.plot()"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "### Here we will write the files to disk in a temporary folder since the root folder containing these notebooks is read-only.\n",
- "You can change the path here to your own preferred path in your writable workspace. Alternatively, if you copy this notebook to your writable-workspace as shown in the introduction documentation, you can save just the filename (no absolute path) and the file will appear \"beside\" the notebooks, ready to be read by the next series of notebooks."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 10,
- "metadata": {},
- "outputs": [],
- "source": [
- "with xr.set_options(keep_attrs=True):\n",
- " # Write to disk.\n",
- " tmp = Path(tempfile.mkdtemp())\n",
- " ERA5_tmin.to_netcdf(tmp / \"ERA5_tmin.nc\")\n",
- " ERA5_tmax.to_netcdf(tmp / \"ERA5_tmax.nc\")\n",
- " ERA5_pr.to_netcdf(tmp / \"ERA5_pr.nc\")"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 11,
- "metadata": {},
- "outputs": [],
- "source": [
- "# We can also prepare a single file that merges all three variables into one netcdf file:\n",
- "with xr.set_options(keep_attrs=True):\n",
- " xr.merge([ERA5_tmin, ERA5_tmax, ERA5_pr]).to_netcdf(tmp / \"ERA5_weather_data.nc\")"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "We now have daily precipitation and minimum/maximum temperatures to drive our Raven Model, which we will do in the next notebook!\n",
- "\n",
- "Note that our dataset generated here is very short (1 year) but the same dataset for the period 1980-12-31 to 1991-01-01 has been pre-generated and stored on the server for efficiency.\n"
- ]
- }
- ],
- "metadata": {
- "kernelspec": {
- "display_name": "Python 3 (ipykernel)",
- "language": "python",
- "name": "python3"
- },
- "language_info": {
- "codemirror_mode": {
- "name": "ipython",
- "version": 3
- },
- "file_extension": ".py",
- "mimetype": "text/x-python",
- "name": "python",
- "nbconvert_exporter": "python",
- "pygments_lexer": "ipython3",
- "version": "3.9.16"
- },
- "nbdime-conflicts": {
- "local_diff": [
+ },
{
- "diff": [
- {
- "diff": [
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "We can see the changes now by re-inspecting the datasets:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {},
+ "outputs": [
{
- "key": 0,
- "op": "addrange",
- "valuelist": [
- "3.6.7"
- ]
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Tmin units: degC\n",
+ "Tmax units: degC\n",
+ "Precipitation units: mm\n"
+ ]
+ }
+ ],
+ "source": [
+ "print(f\"Tmin units: {ERA5_tmin.units}\")\n",
+ "print(f\"Tmax units: {ERA5_tmax.units}\")\n",
+ "print(f\"Precipitation units: {ERA5_pr.units}\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "So let's write them to disk for now. We will use the netcdf format as this is what Raven uses for inputs. It is possible you will get some warnings, this is OK and should not cause any problems. Since our model will run in lumped mode, we will average the spatial dimensions of each variable over the domain."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "with xr.set_options(keep_attrs=True):\n",
+ " # Average the variables\n",
+ " ERA5_tmin = ERA5_tmin.mean({\"latitude\", \"longitude\"})\n",
+ " ERA5_tmax = ERA5_tmax.mean({\"latitude\", \"longitude\"})\n",
+ " ERA5_pr = ERA5_pr.mean({\"latitude\", \"longitude\"})\n",
+ "\n",
+ " # Ensure that the precipitation is non-negative, which can happen with some reanalysis models.\n",
+ " ERA5_pr[ERA5_pr < 0] = 0\n",
+ "\n",
+ " # Transform them to a dataset such that they can be written with attributes to netcdf\n",
+ " ERA5_tmin = ERA5_tmin.to_dataset(name=\"tmin\", promote_attrs=True)\n",
+ " ERA5_tmax = ERA5_tmax.to_dataset(name=\"tmax\", promote_attrs=True)\n",
+ " ERA5_pr = ERA5_pr.to_dataset(name=\"pr\", promote_attrs=True)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[]"
+ ]
+ },
+ "execution_count": 9,
+ "metadata": {},
+ "output_type": "execute_result"
},
{
- "key": 0,
- "length": 1,
- "op": "removerange"
+ "data": {
+ "image/png": "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oVAIoVDIVTvylUL0mYnSgJM20hmazfdkzEKbec2M1xE9+ULcAdhrs1B6HICz4jNDOawKGsfCzLnnngsA+PTTT/Gtb30L5eXl2ne8avb555/v6uDXXXcdnnrqKfz73/9GRUWFpoGprKxEr1694PP5cPPNN+Puu+/G6NGjMXr0aNx9990oLS3FRRdd5OpYhUg2VLXpRjunAjmfXCK9mhn+39yURUnz0oMxNDu9+/eKbITP09BS2DgWZn75y18CAEaMGIELLrgAJSWph7Y98sgjAIDp06dLny9YsABXXHEFAGDWrFlob2/Htddei71792LKlCl47bXXUFFRkfLx8x15dVMYjyglzUsffNXu98X7OV0OnWafZzYxmvnrQsSQINBjbW26tL9Z8ZkxOTZROLgOzb788ss9O7iTAc7n82HOnDmYM2eOZ8ctGApw0I5RNFPa4JNGwO9DLMo8vWesJops+8wUisbSCvH0mCHPjMf7T313+r6ysBAjn5nCxpEw069fP6xbtw4DBgxA3759LSOJAGjlDYj0U4g+MxTNlD543/p9PgDM03vGygGYT69ZS5pX4HeSmlPHcwdgYebP92gm8pkpbBwJM7/73e80s87999+fzvYQLijEFSjPM8OYfQg+0Q0EzQyQmdDsbPjM9KTaTGq0kdcLHNVl3CuyYSLn+WUKZeFHyDgSZkTTkpdmJiI1CtFnRvV3IFnGO/ggHkh0alrKGajHjGV+NSyn4C+M58IaWXDz2l8oXTl7shFxZqU9JAoD1z4zQDwU+4UXXsCXX34Jn8+HQw45BOecc44Urk2kH6/t47lATw2rzQR8MvJzzYyn+zafKDSfGQ+PlYyemjQvxrzv50KqzaQHF2TkcESGcS19fP755zjnnHNQW1uLgw46CACwbt06DBw4EC+99BLGjx/veSMJcwoxA3BUOacASDXjFdx/JKiZmbz0meH/VcNE5n1mCrHMhxXyxMzkMcGDWTtd/kfZqJqdjWzUROZwnQH46quvxqGHHopt27bh448/xscff4yamhpMmDAB11xzTTraSFhQiD4zPSlHSKbhPgP+NPjMWEWKaD4zGayHk426P9ki7Q7AadLMxDwWupygmUJpXClIXGtmVq9ejZUrV6Jv377aZ3379sVdd92FI4880tPGEfaIE0ShDNrRNEVPEDq6z4yHO9XMSfJOs12bqdDv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ee655zB8+HB88MEHuPzyy9HV1YWHHnoI//3vf7PdtJzjr3/9K/r06YMPP/wQH3zwAebPn5/tJuU0v//971FZWYnVq1dj3bp1mDZtGjZs2AAgXjCWkFm3bh0OP/xwfPjhh7j00ktRX1+Pn/70p/jZz36W7ablHDSuOydf+4qEGYGOjg68+OKLOPLII/Gb3/wGmzdvxosvvgggPyTTdLNp0yY8//zzuPbaa/Hee+/hsssuw+OPP46ampqkFU17Gps2bcKsWbNw9NFHY+XKlZgyZQo2btyInTt3orW1NdvNyzl+85vf4MEHH8TDDz+MDz/8EKNGjcKECROwatUqdHV10f1lwiuvvIIBAwZg6dKluOiii/Dvf/8bZ555JubPn4933nmHxqwENK47J5/7quCrZjuFMYaSkhJccsklKC0txbhx47Bq1SosXrwYxx57LI488kgwxnL+gqaT/v374+abb8aoUaO0fmhoaMDYsWPRt29fdHR0oKSkJMutzA2GDRuGn/3sZ7jnnnuwdu1a/OY3v8F7770Hv9+Pvn374pZbbsH3vve9bDczZ7jkkktwyy23IBAIaJ+VlZUhFouhqakJ/fr169HPnkgsFkMkEsHq1atRVlaGUCiEWCyG4uJirWrxbbfdho8++ijLLc0ufLymcd0Z+T4H9ujlzpNPPonnn38e27Zt0y7QkUceiXHjxgEArr32WtTV1eHFF1/UfEJyXdXmJWL/APES75MnT0a/fv0AALNmzcKECRNQW1uL73znOzj33HPx2muvAeh5ZgG1r4qKinDRRRdhv/32w/jx4xGNRvH73/8e8+bNQ3V1NX7xi19g8eLFAHpeXwHG/qqqqoLf7wdjTOuPU045BR9//DEA9LhnT0XsL7/fj+LiYhQVFSESiWD58uWa5mr16tWYNWsW1q5di3/+858Act884DVr1qwxfHbUUUfRuG5CQc2BrAfyxhtvsKFDh7Jx48axYcOGsfHjx7MHHnhA+z4Wi2mvb7vtNnbcccex//73v9loalYw65/777/fsN3FF1/M/v3vf7OWlha2fPlydvnll7OJEydmvsFZxKyvfve73zHGGItEIuzVV19lc+fOZfX19dpvvvnmG3beeeex8847L0utzh7Jnj2RDz/8kI0YMYI999xzGW5l7mDWX7/97W8ZY4ytWbOGTZkyhY0YMYL94Ac/YH36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Mtxyyy0F3x8a2ZKi3LJgwQJWVVXFxo8fzyoqKti1116rOSnNnz+fBQIBNnr0aEmduGDBAnbooYeyl156KVvNzhjUP86hvnIH9Zc7qL+cQ33lHLWvrrvuOrZjxw7TbSdOnMhuuOEGxpieR6bQyQth5tFHH2WjRo1iTz/9NNu9ezf7xz/+wcrLy9mnn37KGGNs1apVbNKkSWzEiBGGRFFDhw7VVI355JntBuof51BfuYP6yx3UX86hvnJOsr7icHPTDTfcwKZMmZKNpmaNnI5mYowhGo3irbfewtSpU3HhhRdiwIABuOiiizB06FDNK33MmDG46KKLUFNTg/fee0/7/e7du9G/f3+UlZUByDPPbAdQ/ziH+sod1F/uoP5yDvWVc5L1lQo30YVCIQQCAezduzfTTc4aOS3M+Hw+BAIBfPHFFwiFQti1axcA4MYbb4TP58O///1vfPDBBygpKcH111+Pb3/727jtttswZ84cfPrpp5g9ezaCwSBOOumkLJ9JeqD+cQ71lTuov9xB/eUc6ivnJOurF198EcuXL0d7ezsAIBwOAwBOPPFEQwLKgicr+iALnn32WXb11Vez+++/n3322Wfa5wsXLmTDhw9np512Guvfvz87+OCD2Z133slOPPFENmHCBHb33XczxuIJlm688UZ2xBFHsIMOOohNmzaNrV+/Plun4znUP86hvnIH9Zc7qL+cQ33lnO701cSJE9ldd90l7Wfx4sWsf//+eR+h5IacEGb27NnDvvOd77Cqqir24x//mB133HFs6NChbMGCBdo2dXV17Ne//jWbNm0aa2pq0j7/4Q9/yM477zy2a9cu7bOWlpaCutmpf5xDfeUO6i93UH85h/rKOV701Z49e7TPtm3bxj766KNMnkLWyYmCJ0uWLMHWrVuxcuVK7LfffgCAc889F3feeScqKytx3nnnoW/fvli1ahVOPfVUVFRUIBwOo7i4GBUVFXjrrbekwldlZWU48MADs3U6nkP94xzqK3dQf7mD+ss51FfO8aKvevXqpe1vv/320/bTU8gJn5mnnnoKw4YNw3777YeWlhYAwHnnnYfNmzfjD3/4A+rq6hAMBlFfX68V7isuLsauXbuwbt06XHjhhSgtLc3mKaQV6h/nUF+5g/rLHdRfzqG+cg71VepkXJh5++23sXjxYqmC6ejRo7F27VoA0CTxr776CieddBI6Ojrw4osvAgBmz56Nl19+GcceeyyuvfZaTJ48GU1NTbjmmmsyfRppg/rHOdRX7qD+cgf1l3Oor5xDfZUmMmXP2r17N7vsssuYz+djEydOZJs2bdK+27BhAxs4cCCbNm0au/fee9nUqVPZyJEj2ZtvvskmTpzI/vd//1fb9oUXXmA//elP2UUXXcSeffbZTDU/7VD/OIf6yh3UX+6g/nIO9ZVzqK/SS0aEma6uLvbwww+zb33rW2zhwoWstLSUzZs3j3V0dGjbvPvuu+yHP/whO/zww9n111/Pdu/ezRhj7NJLL2Xnn39+JpqZNah/nEN95Q7qL3dQfzmH+so51FfpJ2OameXLl7P//Oc/jDHG5s6dywYOHMg++eQTw3adnZ3a6127drFx48ax//f//h9jjEnFtAoN6h/nUF+5g/rLHdRfzqG+cg71VXrJmDCjppweOnQou+aaa7QQM/H79vZ2Fg6H2cMPP8wmTZokxdsXKtQ/zqG+cgf1lzuov5xDfeUc6qv0kvE8M1zqfPbZZ1kwGGSvvfaa9P22bdvYww8/zCZPnsz69evHnnrqqUw3MatQ/ziH+sod1F/uoP5yDvWVc6iv0oOPsUQhjCxwzDHHoKysDP/4xz8waNAg7N69GwMHDsTTTz+NHTt24LbbbstW03IC6h/nUF+5g/rLHdRfzqG+cg71lXdkRZiJRCIIBoNYu3YtJk6ciPnz52PDhg1499138fjjj2PcuHGZblJOQf3jHOord1B/uYP6yznUV86hvkoD2VUMMXbkkUcyn8/Hhg8fzhYtWpTt5uQc1D/Oob5yB/WXO6i/nEN95RzqK2/ImjCzfv16Nm7cOFZaWsoeffTRbDUjZ6H+cQ71lTuov9xB/eUc6ivnUF95S9bKGQQCAZx//vnYs2cPfvCDH2SrGTkL9Y9zqK/cQf3lDuov51BfOYf6yluy6gBMEARBEASRKjlRaJIgCIIgCKK7kDBDEARBEEReQ8IMQRAEQRB5DQkzBEEQBEHkNSTMEARBEASR15AwQxAEQRBEXkPCDEEQBEEQeQ0JMwRB5CRLly6Fz+fDvn37st0UgiByHEqaRxBETjB9+nQcdthhuP/++wEA4XAYDQ0NGDx4MHw+X3YbRxBEThPMdgMIgiDMKC4uRlVVVbabQRBEHkBmJoIgss4VV1yBZcuW4YEHHoDP54PP58Pf/vY3ycz0t7/9DX369MF///tfHHTQQSgtLcV3vvMdtLa24vHHH8eIESPQt29f3HDDDYhGo9q+w+EwZs2ahf322w9lZWWYMmUKli5dmp0TJQgiLZBmhiCIrPPAAw9g3bp1GDduHO68804AwNq1aw3btbW14cEHH8TChQvR3NyMmTNnYubMmejTpw9eeeUVbNy4Eeeffz6OO+44XHDBBQCAK6+8Eps3b8bChQsxdOhQvPDCCzj99NOxZs0ajB49OqPnSRBEeiBhhiCIrFNZWYni4mKUlpZqpqWvvvrKsF1XVxceeeQRHHjggQCA73znO/j73/+OXbt2oby8HGPHjsWJJ56IJUuW4IILLsCGDRvw9NNPY9u2bRg6dCgA4Pbbb8eiRYuwYMEC3H333Zk7SYIg0gYJMwRB5A2lpaWaIAMAgwcPxogRI1BeXi59VldXBwD4+OOPwRjDmDFjpP10dnaif//+mWk0QRBph4QZgiDyhqKiIum9z+cz/SwWiwEAYrEYAoEAVq1ahUAgIG0nCkAEQeQ3JMwQBJETFBcXS467XjBp0iREo1HU1dXh+OOP93TfBEHkDhTNRBBETjBixAh8+OGH2Lx5M/bs2aNpV1JhzJgxuPjii3HZZZfh+eefx6ZNm7BixQrce++9eOWVVzxoNUEQuQAJMwRB5AS33347AoEAxo4di4EDB2Lr1q2e7HfBggW47LLLcNttt+Gggw7C2WefjQ8//BDV1dWe7J8giOxDGYAJgiAIgshrSDNDEARBEEReQ8IMQRAEQRB5DQkzBEEQBEHkNSTMEARBEASR15AwQxAEQRBEXkPCDEEQBEEQeQ0JMwRBEARB5DUkzBAEQRAEkdeQMEMQBEEQRF5DwgxBEARBEHkNCTMEQRAEQeQ1JMwQBEEQBJHX/H9hZa8TIMlh9gAAAABJRU5ErkJggg==",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
}
- ],
- "key": "version",
- "op": "patch"
- }
- ],
- "key": "language_info",
- "op": "patch"
- }
- ],
- "remote_diff": [
+ ],
+ "source": [
+ "# Check and see if the precipitation makes sense:\n",
+ "ERA5_pr.pr.plot()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Here we will write the files to disk in a temporary folder since the root folder containing these notebooks is read-only.\n",
+ "You can change the path here to your own preferred path in your writable workspace. Alternatively, if you copy this notebook to your writable-workspace as shown in the introduction documentation, you can save just the filename (no absolute path) and the file will appear \"beside\" the notebooks, ready to be read by the next series of notebooks."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "with xr.set_options(keep_attrs=True):\n",
+ " # Write to disk.\n",
+ " tmp = Path(tempfile.mkdtemp())\n",
+ " ERA5_tmin.to_netcdf(tmp / \"ERA5_tmin.nc\")\n",
+ " ERA5_tmax.to_netcdf(tmp / \"ERA5_tmax.nc\")\n",
+ " ERA5_pr.to_netcdf(tmp / \"ERA5_pr.nc\")"
+ ]
+ },
{
- "diff": [
- {
- "diff": [
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# We can also prepare a single file that merges all three variables into one netcdf file:\n",
+ "with xr.set_options(keep_attrs=True):\n",
+ " xr.merge([ERA5_tmin, ERA5_tmax, ERA5_pr]).to_netcdf(tmp / \"ERA5_weather_data.nc\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "We now have daily precipitation and minimum/maximum temperatures to drive our Raven Model, which we will do in the next notebook!\n",
+ "\n",
+ "Note that our dataset generated here is very short (1 year) but the same dataset for the period 1980-12-31 to 1991-01-01 has been pre-generated and stored on the server for efficiency.\n"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3 (ipykernel)",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.9.16"
+ },
+ "nbdime-conflicts": {
+ "local_diff": [
{
- "key": 0,
- "op": "addrange",
- "valuelist": [
- "3.6.10"
- ]
- },
+ "diff": [
+ {
+ "diff": [
+ {
+ "key": 0,
+ "op": "addrange",
+ "valuelist": [
+ "3.6.7"
+ ]
+ },
+ {
+ "key": 0,
+ "length": 1,
+ "op": "removerange"
+ }
+ ],
+ "key": "version",
+ "op": "patch"
+ }
+ ],
+ "key": "language_info",
+ "op": "patch"
+ }
+ ],
+ "remote_diff": [
{
- "key": 0,
- "length": 1,
- "op": "removerange"
+ "diff": [
+ {
+ "diff": [
+ {
+ "key": 0,
+ "op": "addrange",
+ "valuelist": [
+ "3.6.10"
+ ]
+ },
+ {
+ "key": 0,
+ "length": 1,
+ "op": "removerange"
+ }
+ ],
+ "key": "version",
+ "op": "patch"
+ }
+ ],
+ "key": "language_info",
+ "op": "patch"
}
- ],
- "key": "version",
- "op": "patch"
- }
- ],
- "key": "language_info",
- "op": "patch"
+ ]
}
- ]
- }
- },
- "nbformat": 4,
- "nbformat_minor": 4
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
}
diff --git a/docs/notebooks/04_Emulating_hydrological_models.ipynb b/docs/notebooks/04_Emulating_hydrological_models.ipynb
index 8602101e..39987866 100644
--- a/docs/notebooks/04_Emulating_hydrological_models.ipynb
+++ b/docs/notebooks/04_Emulating_hydrological_models.ipynb
@@ -1,827 +1,827 @@
{
- "cells": [
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "# 04 - Emulating hydrological models\n",
- "\n",
- "## Using Ravenpy to emulate an existing hydrological model\n",
- "\n",
- "In this notebook, we will demonstrate the versatility of the Raven modelling framework to emulate one of eight hydrological models that are currently supported. We will walk through the different configuration parameters required to build the model and simulate streamflow on a catchments. We will also show how to import files from a pre-configured Raven configuration that users can inport into Ravenpy instead of using one of the default emulators.\n",
- "\n",
- "## A note on datasets\n",
- "\n",
- "There are numerous ways to run a Raven model and to pass its required input data. For this introduction to RavenPy, we will use our ERA5 data we generated in the previous notebook and we will configure the Raven model instance on the fly! In the next tutorials, we will see how users can import and use their own datasets to make the entire process flexible and tailored to the user needs.\n",
- "\n",
- "## Using templated model emulators\n",
- "The first thing we need to run the raven model is... a Raven model! Raven is not a model per se, but a modelling framework that can be used to build hydrological models from their underlying components. For now, PAVICS-Hydro allows building a set of pre-determined models. The Python wrapper offers at present eight model emulators: GR4J-CN, HMETS, MOHYSE, HBV-EC, Canadian Shield, HYPR, Sacramento and Blended. For each of these, templated configuration files are available to facilitate launching the model with options passed by Python at run-time.\n",
- "\n",
- "In the next cell, we are going to import the possible models, and later, we will configure and run the GR4J-CN model. Please see the documentation for more details on the mandatory vs optional parameters, and what they represent. A small glimpse is provided here."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "# Import the list of possible model templates.\n",
- "from ravenpy.config.emulators import (\n",
- " GR4JCN,\n",
- " HBVEC,\n",
- " HMETS,\n",
- " HYPR,\n",
- " SACSMA,\n",
- " Blended,\n",
- " CanadianShield,\n",
- " Mohyse,\n",
- ")"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "import datetime as dt\n",
- "\n",
- "# Import other required packages:\n",
- "import tempfile\n",
- "from pathlib import Path\n",
- "\n",
- "from ravenpy.config import commands as rc\n",
- "from ravenpy.utilities.testdata import get_file"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "In this next step, we will define the hydrological response unit (HRU). For lumped models, there is only one unit so the following structure should be good. However, for distributed modelling, there will be more than one HRU, so we would use another tool to help us build the HRUs in that case. The HRU provides information on the area, elevation, and location of the catchment.\n",
- "\n",
- "For now, let's provide the basin properties such that Raven can run. These are the minimal values that must always be provided, but some models might require other inputs. Please see the Raven documentation for more information."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "# Define the hydrological response unit. We can use the information from the tutorial notebook #02! Here we are using\n",
- "# arbitrary data for a test catchment.\n",
- "hru = dict(\n",
- " area=4250.6,\n",
- " elevation=843.0,\n",
- " latitude=54.4848,\n",
- " longitude=-123.3659,\n",
- " hru_type=\"land\",\n",
- ")"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "The next required inputs are the start and end dates for the simulation. The `start_date` and `end_date` arguments indicate when a simulation should start and end. As long as the forcing data covers the simulation period, it should work. If these parameters are not defined, then start and end dates default to the start and end of the driving data.\n",
- "\n",
- "To keep things simple, we will use a short 5-year period. Note that the dates are python datetime.datetime objects."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "start_date = dt.datetime(1985, 1, 1)\n",
- "end_date = dt.datetime(1990, 1, 1)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "We are now ready to build our first Raven-based hydrological model. the model will be the GR4JCN model. The following code block will show and describe every step. However, more control options are available for users. Please see the documentation for a more detailed explanation on model options."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "scrolled": false
- },
- "outputs": [],
- "source": [
- "# Import required packages. We already imported the GR4JCN emulator in the first cell, but let's keep it here for\n",
- "# completeness.\n",
- "from ravenpy.config.emulators import GR4JCN\n",
- "\n",
- "# Alternative variable names are useful for allowing Raven to read variables from NetCDF files even if the variable\n",
- "# names are not those that are expected by Raven. For example, our ERA5-dernived temperature variables are named\n",
- "# \"tmax\" and \"tmin\", whereas Raven expects \"TEMP_MAX\" and \"TEMP_MIN\". Therefore, instead of forcing users to rename\n",
- "# their variables, we provide a mechanism to tell Raven which variables in the NetCDF files correspond to which\n",
- "# meteorological variable.\n",
- "alt_names = {\n",
- " \"TEMP_MIN\": \"tmin\",\n",
- " \"TEMP_MAX\": \"tmax\",\n",
- " \"PRECIP\": \"pr\",\n",
- "}\n",
- "\n",
- "# Here is where we build the raven configuration. We will first configure the model in memory based on the user\n",
- "# preferences, and then we will write the Raven configuration files to disk such that Raven can read them and\n",
- "# execute a simulation. In this case, we are building a GR4JCN model, but you could change this to any of the\n",
- "# eight models that are preconfigured for direct emulation in Ravenpy.\n",
- "\n",
- "data_kwds = {\n",
- " \"ALL\": {\n",
- " \"elevation\": hru[\"elevation\"],\n",
- " \"latitude\": hru[\"latitude\"],\n",
- " \"longitude\": hru[\"longitude\"],\n",
- " }\n",
- "}\n",
- "\n",
- "run_name = \"test_NB_04\"\n",
- "\n",
- "# Get the weather data. It can either be to a data file that was already in the same folder/workspace as this\n",
- "# notebook, as we generated in the previous notebook, or it could be a path to a file stored elsewhere.\n",
- "\n",
- "# Example for using the data we just generated in Notebook 03:\n",
- "\"\"\"\n",
- "ERA5_tmax = \"ERA5_tmax.nc\"\n",
- "ERA5_tmin = \"ERA5_tmin.nc\"\n",
- "ERA5_pr = \"ERA5_pr.nc\"\n",
- "\"\"\"\n",
- "\n",
- "# In our case, we will prefer to link to existing, pre-computed and locally stored files to keep things tidy:\n",
- "ERA5_tmax = get_file(\"notebook_inputs/ERA5_tmax.nc\")\n",
- "ERA5_tmin = get_file(\"notebook_inputs/ERA5_tmin.nc\")\n",
- "ERA5_pr = get_file(\"notebook_inputs/ERA5_pr.nc\")\n",
- "\n",
- "default_emulator_config = dict(\n",
- " # The HRU as defined earlier must be provided. This is the physical representation of the catchment that Raven\n",
- " # needs for certain models and processes.\n",
- " HRUs=[hru],\n",
- " # Model simulation start and end dates.\n",
- " StartDate=start_date,\n",
- " EndDate=end_date,\n",
- " # Name of the simulation. Raven will prefix all .rvX files and model outputs with the runName.\n",
- " RunName=run_name,\n",
- " # Custom outputs allow pre-processing of certain statistics and variables after the model runs. Please see the\n",
- " # documentation for more details on possible options.\n",
- " CustomOutput=[\n",
- " rc.CustomOutput(\n",
- " time_per=\"YEARLY\",\n",
- " stat=\"AVERAGE\",\n",
- " variable=\"PRECIP\",\n",
- " space_agg=\"ENTIRE_WATERSHED\",\n",
- " )\n",
- " ],\n",
- " # Here we will prepare the weather gauge data to be fed to the model. The data could also come from other\n",
- " # sources such as the ERA5 reanalysis product. There are 2 ways to do this. We will show one way here, and\n",
- " # then show the alternative method in the following cell.\n",
- " #\n",
- " # METHOD 1: If you have one netcdf file of data per meteorological variable (such as what is generated in the\n",
- " # 03_Extracting_forcing_data.ipynb notebook), you can add them successively as follows. Note that we are\n",
- " # creating a gauge for each variable. Raven will use the data from the three sources to provide forcing\n",
- " # data to the simulation.\n",
- " #\n",
- " # You can add the files you need! As long as there are timestamps associated with each value in the netcdf\n",
- " # files, and the other required information (data_type, alt_names, other required information), the code\n",
- " # will accept them and use what it needs. As per the Raven model itself, the gauge station elevation, latitude\n",
- " # and longitude are required to let the model run. For lumped models such as the ones we are currently\n",
- " # emulating, there is only one \"station\" that corresponds to the basin-averaged weahter. In this case, we\n",
- " # set the station elevation to that of the mean catchment elevation to remove any adiabatic gradient\n",
- " # modifications to the data. We also provide the catchment centroid latitude and longitude which we take\n",
- " # from the only HRU defining the entire catchment. For multi-gauge basins and semi-distributed models, the\n",
- " # latitude and longitude must be correctly identified for each station.\n",
- " Gauge=[\n",
- " rc.Gauge.from_nc(\n",
- " ERA5_tmax, # This is a path to the file of ERA5-derived maximum daily temperature.\n",
- " data_type=[\n",
- " \"TEMP_MAX\"\n",
- " ], # Raven expects maximum temperature to be identified as \"TEMP_MAX\", so we indicate that this variable is maximum temperature.\n",
- " alt_names=alt_names, # However, the variable name in the file is different to the one Raven expects: use alt-names.\n",
- " data_kwds=data_kwds,\n",
- " ),\n",
- " rc.Gauge.from_nc(\n",
- " ERA5_tmin,\n",
- " data_type=[\"TEMP_MIN\"],\n",
- " alt_names=alt_names,\n",
- " data_kwds=data_kwds,\n",
- " ),\n",
- " rc.Gauge.from_nc(\n",
- " ERA5_pr, data_type=[\"PRECIP\"], alt_names=alt_names, data_kwds=data_kwds\n",
- " ),\n",
- " ],\n",
- ")\n",
- "\n",
- "\n",
- "m = GR4JCN(\n",
- " # Raven requires parameters for the GR4JCN model. For now, we provide default values, but in a later notebook\n",
- " # we will show how to calibrate and find new parameters for our model.\n",
- " params=[0.529, -3.396, 407.29, 1.072, 16.9, 0.947],\n",
- " # GR4JCN needs an extra constant parameter for the catchment, corresponding to the G50 parameter in the CEMANEIGE\n",
- " # description. Here is how we provide it.\n",
- " GlobalParameter={\"AVG_ANNUAL_RUNOFF\": 208.480},\n",
- " **default_emulator_config,\n",
- ")\n",
- "\n",
- "# We are now ready to write this newly-configured model to disk through the use of .rvX files that Raven will read.\n",
- "\n",
- "# In the following code snippet, there is a \"workdir\" path that must be provided. This indicates the path\n",
- "# where the data used to run the model (RAVEN .RV files) will be made available from the PAVICS Jupyter environment.\n",
- "# The default \"workdir\" setting puts model outputs in the temporary directory (\"/tmp\"),\n",
- "# which is not visible from the Jupyter file explorer. Therefore, You can change the last subfolder,\n",
- "# but '/notebook_dir/writable-workspace/' must be the beginning of the path when running on the PAVICS platform.\n",
- "\n",
- "workdir = Path(tempfile.mkdtemp(prefix=\"NB4\"))\n",
- "m.write_rv(workdir=workdir)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "# 2- Alternatively, we could already have (or we could create) a single netcdf file containing all the required\n",
- "# forcing data. Since we computed such a merged file in Notebook 03, let's reuse it here\n",
- "\n",
- "# Example for using the data we just generated in Notebook 03:\n",
- "\"\"\"\n",
- "ERA5_full = ERA5_weather_data.nc\n",
- "\"\"\"\n",
- "\n",
- "# In our case, we will prefer to link to existing, pre-computed and locally stored files to keep things tidy:\n",
- "ERA5_full = get_file(\"notebook_inputs/ERA5_weather_data.nc\")\n",
- "\n",
- "# Since our meteorological gauge data is all included in a single file, we need to tell the model which variables\n",
- "# we are providing. We will generate the list now and pass it later to Ravenpy as an argument to the model.\n",
- "data_type = [\"TEMP_MAX\", \"TEMP_MIN\", \"PRECIP\"]\n",
- "\n",
- "# Set up the gauge using the second method, i.e., using a single file that contains all meteorological inputs. As\n",
- "# you can see, a single gauge is added, but it contains all the information we need.\n",
- "default_emulator_config[\"Gauge\"] = [\n",
- " rc.Gauge.from_nc(\n",
- " ERA5_full, # Path to the ERA5 file containing all three meteorological variables\n",
- " data_type=data_type, # Note that this is the list of all the variables\n",
- " alt_names=alt_names, # Note that all variables here are mapped to their names in the netcdf file.\n",
- " data_kwds=data_kwds,\n",
- " )\n",
- "]\n",
- "\n",
- "# Now that we have the single file containing tmax, tmin and pr, we can setup a single gauge that contains all three.\n",
- "m = GR4JCN(\n",
- " params=[0.529, -3.396, 407.29, 1.072, 16.9, 0.947],\n",
- " GlobalParameter={\"AVG_ANNUAL_RUNOFF\": 208.480},\n",
- " **default_emulator_config,\n",
- ")\n",
- "\n",
- "# Now we will write the files to disk to prepare them for Raven. This step is not strictly necessary since the\n",
- "# next step will also write files to disk automatically. We will leave it here so we can see the intermediate step\n",
- "# and inspect the files if necessary.\n",
- "\n",
- "workdir = Path(tempfile.mkdtemp(prefix=\"NB4\"))\n",
- "m.write_rv(workdir=workdir)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "It can be seen that both methods generated .rvX files in the indicated path. This makes the Ravenpy platform more flexible for various use-cases, where some data can be stored in independent files or databases (perhaps temperatures come from one source and precipitation from another source).\n",
- "\n",
- "The above code only created the .rvX files. The model did not actually run yet. To do so, we must ask it to, as follows. Don't worry about the warnings: Raven is informing us that it has generated some internal parameters to build the model configuration based on some of the parameters we provided."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "# If we want to import our own raven configuration files and forcing data, we can do so by importing them\n",
- "# using the ravenpy.run method. This will run the model exactly as the users will have designed it.\n",
- "from ravenpy import OutputReader\n",
- "from ravenpy.ravenpy import run\n",
- "\n",
- "# This is used to specify the raven configuration files prefixes. In this case, we will retake the previously created files\n",
- "run_name = run_name\n",
- "\n",
- "# This is the path where the files were uploaded by the user. Model outputs will also be placed there in a\n",
- "# subfolder called \"outputs\"\n",
- "configdir = workdir\n",
- "\n",
- "# Run the model and get the path to the outputs folder that can be used in the output reader.\n",
- "outputs_path = run(modelname=run_name, configdir=configdir)\n",
- "\n",
- "# Get the outputs using the Output Reader object.\n",
- "outputs = OutputReader(run_name=run_name, path=outputs_path)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "# If we already have a model configuration that we built in-memory (such as the \"m\" GR4JCN model we built above),\n",
- "# then we can use the Emulator object to simply emulate the model we were working on and get outputs directly\n",
- "from ravenpy import Emulator\n",
- "\n",
- "# Prepare the emulator by writing files on disk\n",
- "e = Emulator(config=m)\n",
- "\n",
- "# Run the model and get the outputs.\n",
- "outputs = e.run()"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "However, the above demonstration shows how to use one of the eight emulators to run a Raven simulation. Ravenpy also contains other powerful tools to run other user-defined raven models by reading existing configuration files and running the model in Ravenpy. This means that users that already have Raven models of their systems can upload the configuration and hydrometeorological data netcdf files to their private account on the PAVICS-Hydro server and run their model there. Here is an example of how this could be done."
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "At this stage, no matter the method we used, we have the outputs of the model simulations in the \"outputs\" object. Let's explore it:"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "# Show the files available in the outputs. Each of these can be accessed to get information about the simulation.\n",
- "outputs.files"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "The outputs are as follow:\n",
- "\n",
- "- hydrograph: The actual simulated hydrograph (q_sim), in netcdf format. It also contains the observed discharge (q_obs) if observed streamflow was provided as a forcing file.\n",
- "- storage: The state variables of the simulation duration, in netcdf format\n",
- "- solution: The state variables at the end of the simulation, which are saved as a \".rvc\" file that can be used to hot-start a model (for forecasting, for example)\n",
- "- messages: A list of messages returned by Raven when executing the run.\n",
- "\n",
- "You can explore the outputs using othe following syntax. This loads the data into memory to be used directly in another cell for processing or analysis.\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "# The model outputs are actually already loaded as Python objects in memory, thus we can access the data directly.\n",
- "print(\"----------------HYDROGRAPH----------------\")\n",
- "display(outputs.hydrograph)\n",
- "print(\"\")\n",
- "print(\"-----------------STORAGE------------------\")\n",
- "display(outputs.storage)\n",
- "print(\"\")\n",
- "print(\"-----------------SOLUTION-----------------\")\n",
- "display(outputs.solution)\n",
- "print(\"\")"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "We can see in the \"hydrograph\" section that the model has generated a simulation using the forcing data we provided, but it only used the period between the start_date and end_date we asked it for. We can see that the dates of the ERA5 data we requested in the previous notebook cover the period 1980-01-01 to 1991-01-01. In our simulation, we only ask to run over the period from 1985-01-01 to 1990-01-01. Raven takes care of subsetting the data for the required period. We can look at the simulated streamflow from Raven to confirm this:"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "# Import the graphing utility built to handle Raven model outputs\n",
- "from ravenpy.utilities.nb_graphs import hydrographs\n",
- "\n",
- "hydrograph_objects = outputs.hydrograph\n",
- "hydrographs(hydrograph_objects)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "As you can see, the simulated flow covers only the period we asked for. The results probably don't look good, but that's OK! We will soon calibrate our model to get reasonable parameters.\n",
- "\n",
- "We could also simply do basic plots using:"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "outputs.hydrograph.q_sim.plot()"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Finally, we can inspect and work with other state variables in the model outputs. For example, say we want to investigate the snow water equivalent timeseries. We can first get the list of available state variables:"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "print(list(outputs.storage.keys()))"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "And then plot the variable of interest:\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "# Plot the \"Snow\" variable\n",
- "outputs.storage[\"Snow\"].plot()"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "As you can see, PAVICS-Hydro makes it easy to build a hydrological model, run it with forcing data, and then interact with the results! In the next notebooks, we will see how to adjust configuration files (the .rvX files) to setup and run a model, and also how to calibrate its parameters.\n",
- "\n",
- "\n",
- "\n",
- "## Supplementary information on Hydrological response unit definition\n",
- "Raven requires a description of the watershed streamflow is simulated in. Different models require different parameters, but minimally, area, elevation, latitude and longitude are required. These data need to be provided for a few reasons:\n",
- "* Area is required since the size of the watershed will directly influence the simulated streamflow. Units are in square kilometers (km²).\n",
- "* Elevation (average elevation of the watershed) is required, although in many models the value is not actually used and therefore can be set to an arbitrary number. We strongly recommend using the real elevation as that will ensure that the value is present if you decide to switch to another model that requires elevation. Elevation is expressed in meters above mean sea level.\n",
- "* Latitude and longitude refer to the catchment centroid, and are used, among others, for evapotranspiration computations. They are expressed in decimal degrees (°), with longitudes within [-180, 180].\n",
- "\n",
- "These values should be either precomputed externally, or they can be computed using the PAVICS-Hydro geophysical extraction toolbox that we used in the second tutorial notebook.\n",
- "\n",
- "## Supplementary information on model parameters\n",
- "\n",
- "Each model requires a set of tuning parameters to represent and compensate for unknown quantities in certain hydrological processes. Some models have more parameters than others, for example:\n",
- "\n",
- "* GR4JCN = 6 parameters\n",
- "* HMETS = 21 parameters\n",
- "* MOHYSE = 10 parameters\n",
- "* HBVEC = 21 parameters\n",
- "\n",
- "These parameters are found through calibration by tuning their values until the simulated streamflow matches the observations as much as possible. PAVICS-Hydro provides an integrated calibration toolbox that will be explored in the the 6th step of this tutorial. For now, we simply provided a set of parameters but it is not yet fully calibrated. This explains the poor quality of the simulated hydrograph."
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Explore!\n",
- "With this information in mind, you can now explore running different models and parameters and on different periods, and display the simulated hydrographs. You can change the start and end dates, the area, latitude, and even add other options that you might find in the documentation or in later tutorials.\n",
- "\n",
- "If you want to run other models than GR4JCN, you can use these preset models:\n",
- "\n",
- "### HMETS:"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "m = HMETS(\n",
- " params=(\n",
- " 9.5019,\n",
- " 0.2774,\n",
- " 6.3942,\n",
- " 0.6884,\n",
- " 1.2875,\n",
- " 5.4134,\n",
- " 2.3641,\n",
- " 0.0973,\n",
- " 0.0464,\n",
- " 0.1998,\n",
- " 0.0222,\n",
- " -1.0919,\n",
- " 2.6851,\n",
- " 0.3740,\n",
- " 1.0000,\n",
- " 0.4739,\n",
- " 0.0114,\n",
- " 0.0243,\n",
- " 0.0069,\n",
- " 310.7211,\n",
- " 916.1947,\n",
- " ),\n",
- " **default_emulator_config,\n",
- ")"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "### Mohyse:"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "m = Mohyse(\n",
- " params=(1.0, 0.0468, 4.2952, 2.658, 0.4038, 0.0621, 0.0273, 0.0453, 0.9039, 5.6167),\n",
- " **default_emulator_config,\n",
- ")"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "### HBVEC:"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "m = HBVEC(\n",
- " params=(\n",
- " 0.059845,\n",
- " 4.07223,\n",
- " 2.00157,\n",
- " 0.034737,\n",
- " 0.09985,\n",
- " 0.506,\n",
- " 3.4385,\n",
- " 38.32455,\n",
- " 0.46066,\n",
- " 0.06304,\n",
- " 2.2778,\n",
- " 4.8737,\n",
- " 0.5718813,\n",
- " 0.04505643,\n",
- " 0.877607,\n",
- " 18.94145,\n",
- " 2.036937,\n",
- " 0.4452843,\n",
- " 0.6771759,\n",
- " 1.141608,\n",
- " 1.024278,\n",
- " ),\n",
- " **default_emulator_config,\n",
- ")"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "### CanadianShield:"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "# The CanadianShield model needs atleast 2 HRUs. We have to modify the default config before executing it.\n",
- "default_emulator_config[\"HRUs\"] = [hru, hru]\n",
- "\n",
- "m = CanadianShield(\n",
- " params=(\n",
- " 4.72304300e-01,\n",
- " 8.16392200e-01,\n",
- " 9.86197600e-02,\n",
- " 3.92699900e-03,\n",
- " 4.69073600e-02,\n",
- " 4.95528400e-01,\n",
- " 6.803492000e00,\n",
- " 4.33050200e-03,\n",
- " 1.01425900e-05,\n",
- " 1.823470000e00,\n",
- " 5.12215400e-01,\n",
- " 9.017555000e00,\n",
- " 3.077103000e01,\n",
- " 5.094095000e01,\n",
- " 1.69422700e-01,\n",
- " 8.23412200e-02,\n",
- " 2.34595300e-01,\n",
- " 7.30904000e-02,\n",
- " 1.284052000e00,\n",
- " 3.653415000e00,\n",
- " 2.306515000e01,\n",
- " 2.402183000e00,\n",
- " 2.522095000e00,\n",
- " 5.80344900e-01,\n",
- " 1.614157000e00,\n",
- " 6.031781000e00,\n",
- " 3.11129800e-01,\n",
- " 6.71695100e-02,\n",
- " 5.83759500e-05,\n",
- " 9.824723000e00,\n",
- " 9.00747600e-01,\n",
- " 8.04057300e-01,\n",
- " 1.179003000e00,\n",
- " 7.98001300e-01,\n",
- " ),\n",
- " **default_emulator_config,\n",
- ")"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "### HYPR:"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "m = HYPR(\n",
- " params=(\n",
- " -1.856410e-01,\n",
- " 2.92301100e00,\n",
- " 3.1194200e-02,\n",
- " 4.3982810e-01,\n",
- " 4.6509760e-01,\n",
- " 1.1770040e-01,\n",
- " 1.31236800e01,\n",
- " 4.0417950e-01,\n",
- " 1.21225800e00,\n",
- " 5.91273900e01,\n",
- " 1.6612030e-01,\n",
- " 4.10501500e00,\n",
- " 8.2296110e-01,\n",
- " 4.15635200e01,\n",
- " 5.85111700e00,\n",
- " 6.9090140e-01,\n",
- " 9.2459950e-01,\n",
- " 1.64358800e00,\n",
- " 1.59920500e00,\n",
- " 2.51938100e00,\n",
- " 1.14820100e00,\n",
- " ),\n",
- " **default_emulator_config,\n",
- ")"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "### SACSMA:"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "m = SACSMA(\n",
- " params=(\n",
- " 0.0100000,\n",
- " 0.0500000,\n",
- " 0.3000000,\n",
- " 0.0500000,\n",
- " 0.0500000,\n",
- " 0.1300000,\n",
- " 0.0250000,\n",
- " 0.0600000,\n",
- " 0.0600000,\n",
- " 1.0000000,\n",
- " 40.000000,\n",
- " 0.0000000,\n",
- " 0.0000000,\n",
- " 0.1000000,\n",
- " 0.0000000,\n",
- " 0.0100000,\n",
- " 1.5000000,\n",
- " 0.4827523,\n",
- " 4.0998200,\n",
- " 1.0000000,\n",
- " 1.0000000,\n",
- " ),\n",
- " **default_emulator_config,\n",
- ")"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "### Blended:"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "m = Blended(\n",
- " params=(\n",
- " 2.930702e-02,\n",
- " 2.211166e00,\n",
- " 2.166229e00,\n",
- " 0.0002254976,\n",
- " 2.173976e01,\n",
- " 1.565091e00,\n",
- " 6.211146e00,\n",
- " 9.313578e-01,\n",
- " 3.486263e-02,\n",
- " 0.251835,\n",
- " 0.0002279250,\n",
- " 1.214339e00,\n",
- " 4.736668e-02,\n",
- " 0.2070342,\n",
- " 7.806324e-02,\n",
- " -1.336429e00,\n",
- " 2.189741e-01,\n",
- " 3.845617e00,\n",
- " 2.950022e-01,\n",
- " 4.827523e-01,\n",
- " 4.099820e00,\n",
- " 1.283144e01,\n",
- " 5.937894e-01,\n",
- " 1.651588e00,\n",
- " 1.705806,\n",
- " 3.719308e-01,\n",
- " 7.121015e-02,\n",
- " 1.906440e-02,\n",
- " 4.080660e-01,\n",
- " 9.415693e-01,\n",
- " -1.856108e00,\n",
- " 2.356995e00,\n",
- " 1.0e00,\n",
- " 1.0e00,\n",
- " 7.510967e-03,\n",
- " 5.321608e-01,\n",
- " 2.891977e-02,\n",
- " 9.605330e-01,\n",
- " 6.128669e-01,\n",
- " 9.558293e-01,\n",
- " 1.008196e-01,\n",
- " 9.275730e-02,\n",
- " 7.469583e-01,\n",
- " ),\n",
- " **default_emulator_config,\n",
- ")"
- ]
- }
- ],
- "metadata": {
- "kernelspec": {
- "display_name": "Python 3 (ipykernel)",
- "language": "python",
- "name": "python3"
- },
- "language_info": {
- "codemirror_mode": {
- "name": "ipython",
- "version": 3
- },
- "file_extension": ".py",
- "mimetype": "text/x-python",
- "name": "python",
- "nbconvert_exporter": "python",
- "pygments_lexer": "ipython3",
- "version": "3.10.9"
- }
- },
- "nbformat": 4,
- "nbformat_minor": 4
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# 04 - Emulating hydrological models\n",
+ "\n",
+ "## Using Ravenpy to emulate an existing hydrological model\n",
+ "\n",
+ "In this notebook, we will demonstrate the versatility of the Raven modelling framework to emulate one of eight hydrological models that are currently supported. We will walk through the different configuration parameters required to build the model and simulate streamflow on a catchments. We will also show how to import files from a pre-configured Raven configuration that users can inport into Ravenpy instead of using one of the default emulators.\n",
+ "\n",
+ "## A note on datasets\n",
+ "\n",
+ "There are numerous ways to run a Raven model and to pass its required input data. For this introduction to RavenPy, we will use our ERA5 data we generated in the previous notebook and we will configure the Raven model instance on the fly! In the next tutorials, we will see how users can import and use their own datasets to make the entire process flexible and tailored to the user needs.\n",
+ "\n",
+ "## Using templated model emulators\n",
+ "The first thing we need to run the raven model is... a Raven model! Raven is not a model per se, but a modelling framework that can be used to build hydrological models from their underlying components. For now, PAVICS-Hydro allows building a set of pre-determined models. The Python wrapper offers at present eight model emulators: GR4J-CN, HMETS, MOHYSE, HBV-EC, Canadian Shield, HYPR, Sacramento and Blended. For each of these, templated configuration files are available to facilitate launching the model with options passed by Python at run-time.\n",
+ "\n",
+ "In the next cell, we are going to import the possible models, and later, we will configure and run the GR4J-CN model. Please see the documentation for more details on the mandatory vs optional parameters, and what they represent. A small glimpse is provided here."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Import the list of possible model templates.\n",
+ "from ravenpy.config.emulators import (\n",
+ " GR4JCN,\n",
+ " HBVEC,\n",
+ " HMETS,\n",
+ " HYPR,\n",
+ " SACSMA,\n",
+ " Blended,\n",
+ " CanadianShield,\n",
+ " Mohyse,\n",
+ ")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import datetime as dt\n",
+ "\n",
+ "# Import other required packages:\n",
+ "import tempfile\n",
+ "from pathlib import Path\n",
+ "\n",
+ "from ravenpy.config import commands as rc\n",
+ "from ravenpy.utilities.testdata import get_file"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "In this next step, we will define the hydrological response unit (HRU). For lumped models, there is only one unit so the following structure should be good. However, for distributed modelling, there will be more than one HRU, so we would use another tool to help us build the HRUs in that case. The HRU provides information on the area, elevation, and location of the catchment.\n",
+ "\n",
+ "For now, let's provide the basin properties such that Raven can run. These are the minimal values that must always be provided, but some models might require other inputs. Please see the Raven documentation for more information."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Define the hydrological response unit. We can use the information from the tutorial notebook #02! Here we are using\n",
+ "# arbitrary data for a test catchment.\n",
+ "hru = dict(\n",
+ " area=4250.6,\n",
+ " elevation=843.0,\n",
+ " latitude=54.4848,\n",
+ " longitude=-123.3659,\n",
+ " hru_type=\"land\",\n",
+ ")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "The next required inputs are the start and end dates for the simulation. The `start_date` and `end_date` arguments indicate when a simulation should start and end. As long as the forcing data covers the simulation period, it should work. If these parameters are not defined, then start and end dates default to the start and end of the driving data.\n",
+ "\n",
+ "To keep things simple, we will use a short 5-year period. Note that the dates are python datetime.datetime objects."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "start_date = dt.datetime(1985, 1, 1)\n",
+ "end_date = dt.datetime(1990, 1, 1)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "We are now ready to build our first Raven-based hydrological model. the model will be the GR4JCN model. The following code block will show and describe every step. However, more control options are available for users. Please see the documentation for a more detailed explanation on model options."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "scrolled": false
+ },
+ "outputs": [],
+ "source": [
+ "# Import required packages. We already imported the GR4JCN emulator in the first cell, but let's keep it here for\n",
+ "# completeness.\n",
+ "from ravenpy.config.emulators import GR4JCN\n",
+ "\n",
+ "# Alternative variable names are useful for allowing Raven to read variables from NetCDF files even if the variable\n",
+ "# names are not those that are expected by Raven. For example, our ERA5-dernived temperature variables are named\n",
+ "# \"tmax\" and \"tmin\", whereas Raven expects \"TEMP_MAX\" and \"TEMP_MIN\". Therefore, instead of forcing users to rename\n",
+ "# their variables, we provide a mechanism to tell Raven which variables in the NetCDF files correspond to which\n",
+ "# meteorological variable.\n",
+ "alt_names = {\n",
+ " \"TEMP_MIN\": \"tmin\",\n",
+ " \"TEMP_MAX\": \"tmax\",\n",
+ " \"PRECIP\": \"pr\",\n",
+ "}\n",
+ "\n",
+ "# Here is where we build the raven configuration. We will first configure the model in memory based on the user\n",
+ "# preferences, and then we will write the Raven configuration files to disk such that Raven can read them and\n",
+ "# execute a simulation. In this case, we are building a GR4JCN model, but you could change this to any of the\n",
+ "# eight models that are preconfigured for direct emulation in Ravenpy.\n",
+ "\n",
+ "data_kwds = {\n",
+ " \"ALL\": {\n",
+ " \"elevation\": hru[\"elevation\"],\n",
+ " \"latitude\": hru[\"latitude\"],\n",
+ " \"longitude\": hru[\"longitude\"],\n",
+ " }\n",
+ "}\n",
+ "\n",
+ "run_name = \"test_NB_04\"\n",
+ "\n",
+ "# Get the weather data. It can either be to a data file that was already in the same folder/workspace as this\n",
+ "# notebook, as we generated in the previous notebook, or it could be a path to a file stored elsewhere.\n",
+ "\n",
+ "# Example for using the data we just generated in Notebook 03:\n",
+ "\"\"\"\n",
+ "ERA5_tmax = \"ERA5_tmax.nc\"\n",
+ "ERA5_tmin = \"ERA5_tmin.nc\"\n",
+ "ERA5_pr = \"ERA5_pr.nc\"\n",
+ "\"\"\"\n",
+ "\n",
+ "# In our case, we will prefer to link to existing, pre-computed and locally stored files to keep things tidy:\n",
+ "ERA5_tmax = get_file(\"notebook_inputs/ERA5_tmax.nc\")\n",
+ "ERA5_tmin = get_file(\"notebook_inputs/ERA5_tmin.nc\")\n",
+ "ERA5_pr = get_file(\"notebook_inputs/ERA5_pr.nc\")\n",
+ "\n",
+ "default_emulator_config = dict(\n",
+ " # The HRU as defined earlier must be provided. This is the physical representation of the catchment that Raven\n",
+ " # needs for certain models and processes.\n",
+ " HRUs=[hru],\n",
+ " # Model simulation start and end dates.\n",
+ " StartDate=start_date,\n",
+ " EndDate=end_date,\n",
+ " # Name of the simulation. Raven will prefix all .rvX files and model outputs with the runName.\n",
+ " RunName=run_name,\n",
+ " # Custom outputs allow pre-processing of certain statistics and variables after the model runs. Please see the\n",
+ " # documentation for more details on possible options.\n",
+ " CustomOutput=[\n",
+ " rc.CustomOutput(\n",
+ " time_per=\"YEARLY\",\n",
+ " stat=\"AVERAGE\",\n",
+ " variable=\"PRECIP\",\n",
+ " space_agg=\"ENTIRE_WATERSHED\",\n",
+ " )\n",
+ " ],\n",
+ " # Here we will prepare the weather gauge data to be fed to the model. The data could also come from other\n",
+ " # sources such as the ERA5 reanalysis product. There are 2 ways to do this. We will show one way here, and\n",
+ " # then show the alternative method in the following cell.\n",
+ " #\n",
+ " # METHOD 1: If you have one netcdf file of data per meteorological variable (such as what is generated in the\n",
+ " # 03_Extracting_forcing_data.ipynb notebook), you can add them successively as follows. Note that we are\n",
+ " # creating a gauge for each variable. Raven will use the data from the three sources to provide forcing\n",
+ " # data to the simulation.\n",
+ " #\n",
+ " # You can add the files you need! As long as there are timestamps associated with each value in the netcdf\n",
+ " # files, and the other required information (data_type, alt_names, other required information), the code\n",
+ " # will accept them and use what it needs. As per the Raven model itself, the gauge station elevation, latitude\n",
+ " # and longitude are required to let the model run. For lumped models such as the ones we are currently\n",
+ " # emulating, there is only one \"station\" that corresponds to the basin-averaged weahter. In this case, we\n",
+ " # set the station elevation to that of the mean catchment elevation to remove any adiabatic gradient\n",
+ " # modifications to the data. We also provide the catchment centroid latitude and longitude which we take\n",
+ " # from the only HRU defining the entire catchment. For multi-gauge basins and semi-distributed models, the\n",
+ " # latitude and longitude must be correctly identified for each station.\n",
+ " Gauge=[\n",
+ " rc.Gauge.from_nc(\n",
+ " ERA5_tmax, # This is a path to the file of ERA5-derived maximum daily temperature.\n",
+ " data_type=[\n",
+ " \"TEMP_MAX\"\n",
+ " ], # Raven expects maximum temperature to be identified as \"TEMP_MAX\", so we indicate that this variable is maximum temperature.\n",
+ " alt_names=alt_names, # However, the variable name in the file is different to the one Raven expects: use alt-names.\n",
+ " data_kwds=data_kwds,\n",
+ " ),\n",
+ " rc.Gauge.from_nc(\n",
+ " ERA5_tmin,\n",
+ " data_type=[\"TEMP_MIN\"],\n",
+ " alt_names=alt_names,\n",
+ " data_kwds=data_kwds,\n",
+ " ),\n",
+ " rc.Gauge.from_nc(\n",
+ " ERA5_pr, data_type=[\"PRECIP\"], alt_names=alt_names, data_kwds=data_kwds\n",
+ " ),\n",
+ " ],\n",
+ ")\n",
+ "\n",
+ "\n",
+ "m = GR4JCN(\n",
+ " # Raven requires parameters for the GR4JCN model. For now, we provide default values, but in a later notebook\n",
+ " # we will show how to calibrate and find new parameters for our model.\n",
+ " params=[0.529, -3.396, 407.29, 1.072, 16.9, 0.947],\n",
+ " # GR4JCN needs an extra constant parameter for the catchment, corresponding to the G50 parameter in the CEMANEIGE\n",
+ " # description. Here is how we provide it.\n",
+ " GlobalParameter={\"AVG_ANNUAL_RUNOFF\": 208.480},\n",
+ " **default_emulator_config,\n",
+ ")\n",
+ "\n",
+ "# We are now ready to write this newly-configured model to disk through the use of .rvX files that Raven will read.\n",
+ "\n",
+ "# In the following code snippet, there is a \"workdir\" path that must be provided. This indicates the path\n",
+ "# where the data used to run the model (RAVEN .RV files) will be made available from the PAVICS Jupyter environment.\n",
+ "# The default \"workdir\" setting puts model outputs in the temporary directory (\"/tmp\"),\n",
+ "# which is not visible from the Jupyter file explorer. Therefore, You can change the last subfolder,\n",
+ "# but '/notebook_dir/writable-workspace/' must be the beginning of the path when running on the PAVICS platform.\n",
+ "\n",
+ "workdir = Path(tempfile.mkdtemp(prefix=\"NB4\"))\n",
+ "m.write_rv(workdir=workdir)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# 2- Alternatively, we could already have (or we could create) a single netcdf file containing all the required\n",
+ "# forcing data. Since we computed such a merged file in Notebook 03, let's reuse it here\n",
+ "\n",
+ "# Example for using the data we just generated in Notebook 03:\n",
+ "\"\"\"\n",
+ "ERA5_full = ERA5_weather_data.nc\n",
+ "\"\"\"\n",
+ "\n",
+ "# In our case, we will prefer to link to existing, pre-computed and locally stored files to keep things tidy:\n",
+ "ERA5_full = get_file(\"notebook_inputs/ERA5_weather_data.nc\")\n",
+ "\n",
+ "# Since our meteorological gauge data is all included in a single file, we need to tell the model which variables\n",
+ "# we are providing. We will generate the list now and pass it later to Ravenpy as an argument to the model.\n",
+ "data_type = [\"TEMP_MAX\", \"TEMP_MIN\", \"PRECIP\"]\n",
+ "\n",
+ "# Set up the gauge using the second method, i.e., using a single file that contains all meteorological inputs. As\n",
+ "# you can see, a single gauge is added, but it contains all the information we need.\n",
+ "default_emulator_config[\"Gauge\"] = [\n",
+ " rc.Gauge.from_nc(\n",
+ " ERA5_full, # Path to the ERA5 file containing all three meteorological variables\n",
+ " data_type=data_type, # Note that this is the list of all the variables\n",
+ " alt_names=alt_names, # Note that all variables here are mapped to their names in the netcdf file.\n",
+ " data_kwds=data_kwds,\n",
+ " )\n",
+ "]\n",
+ "\n",
+ "# Now that we have the single file containing tmax, tmin and pr, we can setup a single gauge that contains all three.\n",
+ "m = GR4JCN(\n",
+ " params=[0.529, -3.396, 407.29, 1.072, 16.9, 0.947],\n",
+ " GlobalParameter={\"AVG_ANNUAL_RUNOFF\": 208.480},\n",
+ " **default_emulator_config,\n",
+ ")\n",
+ "\n",
+ "# Now we will write the files to disk to prepare them for Raven. This step is not strictly necessary since the\n",
+ "# next step will also write files to disk automatically. We will leave it here so we can see the intermediate step\n",
+ "# and inspect the files if necessary.\n",
+ "\n",
+ "workdir = Path(tempfile.mkdtemp(prefix=\"NB4\"))\n",
+ "m.write_rv(workdir=workdir)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "It can be seen that both methods generated .rvX files in the indicated path. This makes the Ravenpy platform more flexible for various use-cases, where some data can be stored in independent files or databases (perhaps temperatures come from one source and precipitation from another source).\n",
+ "\n",
+ "The above code only created the .rvX files. The model did not actually run yet. To do so, we must ask it to, as follows. Don't worry about the warnings: Raven is informing us that it has generated some internal parameters to build the model configuration based on some of the parameters we provided."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# If we want to import our own raven configuration files and forcing data, we can do so by importing them\n",
+ "# using the ravenpy.run method. This will run the model exactly as the users will have designed it.\n",
+ "from ravenpy import OutputReader\n",
+ "from ravenpy.ravenpy import run\n",
+ "\n",
+ "# This is used to specify the raven configuration files prefixes. In this case, we will retake the previously created files\n",
+ "run_name = run_name\n",
+ "\n",
+ "# This is the path where the files were uploaded by the user. Model outputs will also be placed there in a\n",
+ "# subfolder called \"outputs\"\n",
+ "configdir = workdir\n",
+ "\n",
+ "# Run the model and get the path to the outputs folder that can be used in the output reader.\n",
+ "outputs_path = run(modelname=run_name, configdir=configdir)\n",
+ "\n",
+ "# Get the outputs using the Output Reader object.\n",
+ "outputs = OutputReader(run_name=run_name, path=outputs_path)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# If we already have a model configuration that we built in-memory (such as the \"m\" GR4JCN model we built above),\n",
+ "# then we can use the Emulator object to simply emulate the model we were working on and get outputs directly\n",
+ "from ravenpy import Emulator\n",
+ "\n",
+ "# Prepare the emulator by writing files on disk\n",
+ "e = Emulator(config=m)\n",
+ "\n",
+ "# Run the model and get the outputs.\n",
+ "outputs = e.run()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "However, the above demonstration shows how to use one of the eight emulators to run a Raven simulation. Ravenpy also contains other powerful tools to run other user-defined raven models by reading existing configuration files and running the model in Ravenpy. This means that users that already have Raven models of their systems can upload the configuration and hydrometeorological data netcdf files to their private account on the PAVICS-Hydro server and run their model there. Here is an example of how this could be done."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "At this stage, no matter the method we used, we have the outputs of the model simulations in the \"outputs\" object. Let's explore it:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Show the files available in the outputs. Each of these can be accessed to get information about the simulation.\n",
+ "outputs.files"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "The outputs are as follow:\n",
+ "\n",
+ "- hydrograph: The actual simulated hydrograph (q_sim), in netcdf format. It also contains the observed discharge (q_obs) if observed streamflow was provided as a forcing file.\n",
+ "- storage: The state variables of the simulation duration, in netcdf format\n",
+ "- solution: The state variables at the end of the simulation, which are saved as a \".rvc\" file that can be used to hot-start a model (for forecasting, for example)\n",
+ "- messages: A list of messages returned by Raven when executing the run.\n",
+ "\n",
+ "You can explore the outputs using othe following syntax. This loads the data into memory to be used directly in another cell for processing or analysis.\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# The model outputs are actually already loaded as Python objects in memory, thus we can access the data directly.\n",
+ "print(\"----------------HYDROGRAPH----------------\")\n",
+ "display(outputs.hydrograph)\n",
+ "print(\"\")\n",
+ "print(\"-----------------STORAGE------------------\")\n",
+ "display(outputs.storage)\n",
+ "print(\"\")\n",
+ "print(\"-----------------SOLUTION-----------------\")\n",
+ "display(outputs.solution)\n",
+ "print(\"\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "We can see in the \"hydrograph\" section that the model has generated a simulation using the forcing data we provided, but it only used the period between the start_date and end_date we asked it for. We can see that the dates of the ERA5 data we requested in the previous notebook cover the period 1980-01-01 to 1991-01-01. In our simulation, we only ask to run over the period from 1985-01-01 to 1990-01-01. Raven takes care of subsetting the data for the required period. We can look at the simulated streamflow from Raven to confirm this:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Import the graphing utility built to handle Raven model outputs\n",
+ "from ravenpy.utilities.nb_graphs import hydrographs\n",
+ "\n",
+ "hydrograph_objects = outputs.hydrograph\n",
+ "hydrographs(hydrograph_objects)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "As you can see, the simulated flow covers only the period we asked for. The results probably don't look good, but that's OK! We will soon calibrate our model to get reasonable parameters.\n",
+ "\n",
+ "We could also simply do basic plots using:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "outputs.hydrograph.q_sim.plot()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Finally, we can inspect and work with other state variables in the model outputs. For example, say we want to investigate the snow water equivalent timeseries. We can first get the list of available state variables:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "print(list(outputs.storage.keys()))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "And then plot the variable of interest:\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Plot the \"Snow\" variable\n",
+ "outputs.storage[\"Snow\"].plot()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "As you can see, PAVICS-Hydro makes it easy to build a hydrological model, run it with forcing data, and then interact with the results! In the next notebooks, we will see how to adjust configuration files (the .rvX files) to setup and run a model, and also how to calibrate its parameters.\n",
+ "\n",
+ "\n",
+ "\n",
+ "## Supplementary information on Hydrological response unit definition\n",
+ "Raven requires a description of the watershed streamflow is simulated in. Different models require different parameters, but minimally, area, elevation, latitude and longitude are required. These data need to be provided for a few reasons:\n",
+ "* Area is required since the size of the watershed will directly influence the simulated streamflow. Units are in square kilometers (km²).\n",
+ "* Elevation (average elevation of the watershed) is required, although in many models the value is not actually used and therefore can be set to an arbitrary number. We strongly recommend using the real elevation as that will ensure that the value is present if you decide to switch to another model that requires elevation. Elevation is expressed in meters above mean sea level.\n",
+ "* Latitude and longitude refer to the catchment centroid, and are used, among others, for evapotranspiration computations. They are expressed in decimal degrees (°), with longitudes within [-180, 180].\n",
+ "\n",
+ "These values should be either precomputed externally, or they can be computed using the PAVICS-Hydro geophysical extraction toolbox that we used in the second tutorial notebook.\n",
+ "\n",
+ "## Supplementary information on model parameters\n",
+ "\n",
+ "Each model requires a set of tuning parameters to represent and compensate for unknown quantities in certain hydrological processes. Some models have more parameters than others, for example:\n",
+ "\n",
+ "* GR4JCN = 6 parameters\n",
+ "* HMETS = 21 parameters\n",
+ "* MOHYSE = 10 parameters\n",
+ "* HBVEC = 21 parameters\n",
+ "\n",
+ "These parameters are found through calibration by tuning their values until the simulated streamflow matches the observations as much as possible. PAVICS-Hydro provides an integrated calibration toolbox that will be explored in the the 6th step of this tutorial. For now, we simply provided a set of parameters but it is not yet fully calibrated. This explains the poor quality of the simulated hydrograph."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Explore!\n",
+ "With this information in mind, you can now explore running different models and parameters and on different periods, and display the simulated hydrographs. You can change the start and end dates, the area, latitude, and even add other options that you might find in the documentation or in later tutorials.\n",
+ "\n",
+ "If you want to run other models than GR4JCN, you can use these preset models:\n",
+ "\n",
+ "### HMETS:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "m = HMETS(\n",
+ " params=(\n",
+ " 9.5019,\n",
+ " 0.2774,\n",
+ " 6.3942,\n",
+ " 0.6884,\n",
+ " 1.2875,\n",
+ " 5.4134,\n",
+ " 2.3641,\n",
+ " 0.0973,\n",
+ " 0.0464,\n",
+ " 0.1998,\n",
+ " 0.0222,\n",
+ " -1.0919,\n",
+ " 2.6851,\n",
+ " 0.3740,\n",
+ " 1.0000,\n",
+ " 0.4739,\n",
+ " 0.0114,\n",
+ " 0.0243,\n",
+ " 0.0069,\n",
+ " 310.7211,\n",
+ " 916.1947,\n",
+ " ),\n",
+ " **default_emulator_config,\n",
+ ")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Mohyse:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "m = Mohyse(\n",
+ " params=(1.0, 0.0468, 4.2952, 2.658, 0.4038, 0.0621, 0.0273, 0.0453, 0.9039, 5.6167),\n",
+ " **default_emulator_config,\n",
+ ")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### HBVEC:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "m = HBVEC(\n",
+ " params=(\n",
+ " 0.059845,\n",
+ " 4.07223,\n",
+ " 2.00157,\n",
+ " 0.034737,\n",
+ " 0.09985,\n",
+ " 0.506,\n",
+ " 3.4385,\n",
+ " 38.32455,\n",
+ " 0.46066,\n",
+ " 0.06304,\n",
+ " 2.2778,\n",
+ " 4.8737,\n",
+ " 0.5718813,\n",
+ " 0.04505643,\n",
+ " 0.877607,\n",
+ " 18.94145,\n",
+ " 2.036937,\n",
+ " 0.4452843,\n",
+ " 0.6771759,\n",
+ " 1.141608,\n",
+ " 1.024278,\n",
+ " ),\n",
+ " **default_emulator_config,\n",
+ ")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### CanadianShield:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# The CanadianShield model needs atleast 2 HRUs. We have to modify the default config before executing it.\n",
+ "default_emulator_config[\"HRUs\"] = [hru, hru]\n",
+ "\n",
+ "m = CanadianShield(\n",
+ " params=(\n",
+ " 4.72304300e-01,\n",
+ " 8.16392200e-01,\n",
+ " 9.86197600e-02,\n",
+ " 3.92699900e-03,\n",
+ " 4.69073600e-02,\n",
+ " 4.95528400e-01,\n",
+ " 6.803492000e00,\n",
+ " 4.33050200e-03,\n",
+ " 1.01425900e-05,\n",
+ " 1.823470000e00,\n",
+ " 5.12215400e-01,\n",
+ " 9.017555000e00,\n",
+ " 3.077103000e01,\n",
+ " 5.094095000e01,\n",
+ " 1.69422700e-01,\n",
+ " 8.23412200e-02,\n",
+ " 2.34595300e-01,\n",
+ " 7.30904000e-02,\n",
+ " 1.284052000e00,\n",
+ " 3.653415000e00,\n",
+ " 2.306515000e01,\n",
+ " 2.402183000e00,\n",
+ " 2.522095000e00,\n",
+ " 5.80344900e-01,\n",
+ " 1.614157000e00,\n",
+ " 6.031781000e00,\n",
+ " 3.11129800e-01,\n",
+ " 6.71695100e-02,\n",
+ " 5.83759500e-05,\n",
+ " 9.824723000e00,\n",
+ " 9.00747600e-01,\n",
+ " 8.04057300e-01,\n",
+ " 1.179003000e00,\n",
+ " 7.98001300e-01,\n",
+ " ),\n",
+ " **default_emulator_config,\n",
+ ")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### HYPR:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "m = HYPR(\n",
+ " params=(\n",
+ " -1.856410e-01,\n",
+ " 2.92301100e00,\n",
+ " 3.1194200e-02,\n",
+ " 4.3982810e-01,\n",
+ " 4.6509760e-01,\n",
+ " 1.1770040e-01,\n",
+ " 1.31236800e01,\n",
+ " 4.0417950e-01,\n",
+ " 1.21225800e00,\n",
+ " 5.91273900e01,\n",
+ " 1.6612030e-01,\n",
+ " 4.10501500e00,\n",
+ " 8.2296110e-01,\n",
+ " 4.15635200e01,\n",
+ " 5.85111700e00,\n",
+ " 6.9090140e-01,\n",
+ " 9.2459950e-01,\n",
+ " 1.64358800e00,\n",
+ " 1.59920500e00,\n",
+ " 2.51938100e00,\n",
+ " 1.14820100e00,\n",
+ " ),\n",
+ " **default_emulator_config,\n",
+ ")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### SACSMA:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "m = SACSMA(\n",
+ " params=(\n",
+ " 0.0100000,\n",
+ " 0.0500000,\n",
+ " 0.3000000,\n",
+ " 0.0500000,\n",
+ " 0.0500000,\n",
+ " 0.1300000,\n",
+ " 0.0250000,\n",
+ " 0.0600000,\n",
+ " 0.0600000,\n",
+ " 1.0000000,\n",
+ " 40.000000,\n",
+ " 0.0000000,\n",
+ " 0.0000000,\n",
+ " 0.1000000,\n",
+ " 0.0000000,\n",
+ " 0.0100000,\n",
+ " 1.5000000,\n",
+ " 0.4827523,\n",
+ " 4.0998200,\n",
+ " 1.0000000,\n",
+ " 1.0000000,\n",
+ " ),\n",
+ " **default_emulator_config,\n",
+ ")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Blended:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "m = Blended(\n",
+ " params=(\n",
+ " 2.930702e-02,\n",
+ " 2.211166e00,\n",
+ " 2.166229e00,\n",
+ " 0.0002254976,\n",
+ " 2.173976e01,\n",
+ " 1.565091e00,\n",
+ " 6.211146e00,\n",
+ " 9.313578e-01,\n",
+ " 3.486263e-02,\n",
+ " 0.251835,\n",
+ " 0.0002279250,\n",
+ " 1.214339e00,\n",
+ " 4.736668e-02,\n",
+ " 0.2070342,\n",
+ " 7.806324e-02,\n",
+ " -1.336429e00,\n",
+ " 2.189741e-01,\n",
+ " 3.845617e00,\n",
+ " 2.950022e-01,\n",
+ " 4.827523e-01,\n",
+ " 4.099820e00,\n",
+ " 1.283144e01,\n",
+ " 5.937894e-01,\n",
+ " 1.651588e00,\n",
+ " 1.705806,\n",
+ " 3.719308e-01,\n",
+ " 7.121015e-02,\n",
+ " 1.906440e-02,\n",
+ " 4.080660e-01,\n",
+ " 9.415693e-01,\n",
+ " -1.856108e00,\n",
+ " 2.356995e00,\n",
+ " 1.0e00,\n",
+ " 1.0e00,\n",
+ " 7.510967e-03,\n",
+ " 5.321608e-01,\n",
+ " 2.891977e-02,\n",
+ " 9.605330e-01,\n",
+ " 6.128669e-01,\n",
+ " 9.558293e-01,\n",
+ " 1.008196e-01,\n",
+ " 9.275730e-02,\n",
+ " 7.469583e-01,\n",
+ " ),\n",
+ " **default_emulator_config,\n",
+ ")"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3 (ipykernel)",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.10.9"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
}
diff --git a/docs/notebooks/05_Advanced_RavenPy_configuration.ipynb b/docs/notebooks/05_Advanced_RavenPy_configuration.ipynb
index 1523359e..38df9700 100644
--- a/docs/notebooks/05_Advanced_RavenPy_configuration.ipynb
+++ b/docs/notebooks/05_Advanced_RavenPy_configuration.ipynb
@@ -1,587 +1,587 @@
{
- "cells": [
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "# 05 - Advanced RavenPy configuration"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "In this notebook, we will explore alternative ways to setup a Raven model and how to parameterize and customize a raven-based hydrological model\n",
- "\n",
- "## Running Raven using pre-existing configuration files\n",
- "\n",
- "To run Raven, we need configuration (`.rvX`) files defining hydrological processes, watersheds and meteorological data. If you already have those configuration files ready, or want to see how to import an existing Raven model into PAVICS-Hydro, this tutorial is for you. It shows how to run Raven from a Python programming environment using [RavenPy](https://ravenpy.readthedocs.io/en/latest/).\n",
- "\n",
- "Let's start by importing some utilities that will make our life easier to get data on the servers. If you already have raven model setups, you could simply upload the files here and create your own \"config\" list:"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "# Utility that simplifies getting data hosted on the remote PAVICS-Hydro data server.\n",
- "from ravenpy.utilities.testdata import get_file"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## A note on datasets\n",
- "\n",
- "For this part of the tutorial, we will use pre-existing datasets that are hosted on the PAVICS-Hydro servers to setup the Raven model. This means that the .rv files are all built and the forcing file already exists. We could apply all of the same logic to a RavenPy model we would have built at the previous step, but this way lets us show that we can also work on an imported model. Let's import the configuration files:"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "# Get the .rv files. It could also be the .rv files returned from the previous notebook, but here we are using a new basin that contains observed streamflow\n",
- "# to make the calibration possible in the next notebook. Note that these configuration files also include links to the\n",
- "# required hydrometeorological database (NetCDF file).\n",
- "config = [\n",
- " get_file(f\"raven-gr4j-cemaneige/raven-gr4j-salmon.{ext}\")\n",
- " for ext in [\"rvt\", \"rvc\", \"rvi\", \"rvh\", \"rvp\"]\n",
- "]\n",
- "config"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "So \"config\" is just a set of paths to the various .rvX files (.rvt, .rvc, .rvi. .rvh and .rvp). Therefore, if you have your own .rv files that describe your model, you can upload them and replace \"config\" with your own files!"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Building a hydrological model on-the-fly using existing configuration files.\n",
- "\n",
- "Here we create a Raven model instance, configuring it using the pre-defined configuration files and running it by providing the full path to the NetCDF driving datasets. The configuration we provide is for a GR4J-CN model emulator that Raven will run for us. We provide the configuration files for GR4J-CN as well as the forcing data (precipitation, temperature, observed streamflow, etc.) that will be used to run the model."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "from ravenpy import OutputReader\n",
- "from ravenpy.ravenpy import run\n",
- "\n",
- "run_name = \"raven-gr4j-salmon\" # As can be seen in the config above, this is the name of the .rvX files.\n",
- "configdir = config[\n",
- " 0\n",
- "].parent # We can get the path to the folder containing the .rvX files this way\n",
- "\n",
- "# Run the model and get the path to outputs\n",
- "outputs_path = run(modelname=run_name, configdir=configdir, overwrite=True)\n",
- "\n",
- "# Note. The modelname parameter can be confusing. You need to give the FILES extension name (run_name in our case),\n",
- "# not the name of the model.\n",
- "\n",
- "outputs_path"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "# Read the output files at the output_path\n",
- "\n",
- "outputs = OutputReader(run_name=None, path=outputs_path) # Get the outputs\n",
- "# Note. We set up the run_name to None, because we didn't rename the output files. If you gave a different name to your file\n",
- "# compared to the one above, you should change the run_name value to this new name. It's important though that you keep the end\n",
- "# of the filename the same\n",
- "\n",
- "# Show the list of files that were retrived by the OutputReader\n",
- "outputs.files"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "The model should have run! But you also might have seen some warnings that Raven is giving us, depending on the input files used:\n",
- "\n",
- "- Some might be saying that we are providing rain and snow independently, but in the configuration files, we are asking the model to recompute the separation using an algorithm based on total precipitation and air temperature. This is OK, and we can live with this (alternatively, we could reconfigure the model to remove this but that will be for another notebook!).\n",
- "\n",
- "- Others could be saying that we supply PET data, but the model is configured to compute PET from the available temperature and latitude/longitude data. This is also acceptable to us for now, so these warnings can be disregarded.\n",
- "\n",
- "- And others might simply explain that our configuration provided some parameters but others were computed internally based on our parameter set rather than being explicitly set in our configuration, which is OK.\n"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Evaluating the model response\n",
- "\n",
- "That's it! The code above has launched the GR4J-CN model using weather data and the configuration we provided. There are many other options we could provide, but for now we left everything to the default options to keep things simple. We will explore those in a future tutorial as well.\n",
- "\n",
- "Now, let's look at the modeled hydrographs. Note that there is a \"q_obs\" hydrograph, representing the observations we provided ourselves. This is to facilitate the comparison between observations and simulations, and it is not required per se to run the model. The \"q_sim\" variable is the simulated streamflow and is the one we are interested in.\n",
- "\n",
- "Note that RavenPy assumes that model outputs are always saved in netCDF format, and relies on [xarray](http://xarray.pydata.org/en/stable/) to access data.\n",
- "\n",
- "To see results, we must first tell the model to read them from the files Raven has written in the output folder:"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "We can visualize the simulated streamflow using xarray's built-in plotting tool, as follows:"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "outputs.hydrograph.q_sim.plot()"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "We also now have access to diagnostics! This is because along with the simulated discharge, the model has access to observed discharge to compute error metrics such as RMSE and NSE. Let's see where the file has been generated:"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "print(\"-----------------DIAGNOSTICS-----------------\")\n",
- "print(outputs.diagnostics)\n",
- "print(\"\")\n",
- "\n",
- "print(\"-----------------NASH_SUTCLIFFE-----------------\")\n",
- "print(outputs.diagnostics[\"DIAG_NASH_SUTCLIFFE\"])\n",
- "print(\"\")\n",
- "\n",
- "print(\"-----------------RMSE-----------------\")\n",
- "print(outputs.diagnostics[\"DIAG_RMSE\"])"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "We can see that the Nash-Sutcliffe value is quite poor. This is due to the short simulation period in the configuration (see the hydrograph above!) and the lack of a spin-up period, combined to a poor parameter set choice. We will improve upon all of these shortcomings in the next notebooks!"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Advanced RavenPy configuration options\n",
- "\n",
- "Raven can perform many operations and has multiple configuration options. Here we provide a list of configuration options to explore which you can eventually use to taylor the codes to your own specifications. These can only be run on RavenPy-built hydrological models, and will not operate on Raven models imported by users since those configuration files are not modifiable for the time being.\n",
- "\n",
- "We will give an overview of the various configuration keywords after this code block, but users should read the Raven documentation for more options for each of these processes.\n",
- "\n",
- "Let's first define some variables we will need for all of our tests:"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "# Get required packages\n",
- "import datetime as dt\n",
- "\n",
- "import matplotlib.pyplot as plt\n",
- "\n",
- "from ravenpy import Emulator\n",
- "from ravenpy.config import commands as rc\n",
- "from ravenpy.config.emulators import GR4JCN\n",
- "\n",
- "# Observed weather data for the Salmon river. We extracted this using Tutorial Notebook 03 and the\n",
- "# salmon_river.geojson file as the contour.\n",
- "ts = get_file(\"notebook_inputs/ERA5_weather_data_Salmon.nc\")\n",
- "\n",
- "# Set alternate variable names in the timeseries data file\n",
- "alt_names = {\n",
- " \"TEMP_MIN\": \"tmin\",\n",
- " \"TEMP_MAX\": \"tmax\",\n",
- " \"PRECIP\": \"pr\",\n",
- "}\n",
- "\n",
- "# Provide the type of data made available to Raven\n",
- "data_type = [\"TEMP_MAX\", \"TEMP_MIN\", \"PRECIP\"]\n",
- "\n",
- "# Prepare the catchment properties\n",
- "hru = dict(\n",
- " area=4250.6,\n",
- " elevation=843.0,\n",
- " latitude=54.4848,\n",
- " longitude=-123.3659,\n",
- " hru_type=\"land\",\n",
- ")\n",
- "\n",
- "# Add some information regarding station data\n",
- "data_kwds = {\n",
- " \"ALL\": {\n",
- " \"elevation\": hru[\"elevation\"],\n",
- " \"latitude\": hru[\"latitude\"],\n",
- " \"longitude\": hru[\"longitude\"],\n",
- " }\n",
- "}\n",
- "\n",
- "# Start and end dates of the simulation\n",
- "start_date = dt.datetime(1985, 1, 1)\n",
- "end_date = dt.datetime(1990, 1, 1)\n",
- "\n",
- "# Set parameters\n",
- "parameters = [0.529, -3.396, 407.29, 1.072, 16.9, 0.947]"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "We can now perform a \"basic\" run, with no modifications."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "# Run the model (See Notebook 04 for more details on implementation)\n",
- "m = GR4JCN(\n",
- " params=parameters,\n",
- " Gauge=[\n",
- " rc.Gauge.from_nc(\n",
- " ts,\n",
- " data_type=data_type, # Note that this is the list of all the variables\n",
- " alt_names=alt_names, # Note that all variables here are mapped to their names in the netcdf file.\n",
- " data_kwds=data_kwds,\n",
- " )\n",
- " ],\n",
- " HRUs=[hru],\n",
- " StartDate=start_date,\n",
- " EndDate=end_date,\n",
- " RunName=\"NB05_test1\",\n",
- " # GlobalParameter={\"AVG_ANNUAL_RUNOFF\": 208.480},\n",
- ")\n",
- "\n",
- "# Run the model and get the outputs.\n",
- "outputs1 = Emulator(m).run()\n",
- "\n",
- "# Plot the generated hydrograph\n",
- "outputs1.hydrograph.q_sim.plot.line(x=\"time\", label=\"Base case\")\n",
- "plt.legend(loc=\"upper left\")\n",
- "plt.show()"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "We can now run another model by adding some other properties. To start, we can add some Global Parameters to the model to make Raven adjust the simulations based on the information we provide. Some options of Global Parameters are indicated here, but more can be found in the official Raven documentation.\n",
- "\n",
- "Examples of GlobalParameter options (Note that some are only available for certain models and others can be mutually exclusive. Please refer to the documentation for this type of adjustment):\n",
- "\n",
- "### Temperature interval of transformation between rain and snow. Set the midpoint of the range and the width of the range, in degrees C:\n",
- "\"RAINSNOW_TEMP\": midpoint_temp // Ex: \"RAINSNOW_TEMP\": -1.0\n",
- "\n",
- "\"RAINSNOW_DELTA\": delta_temp // Ex: \"RAINSNOW_DELTA\": 3.0\n",
- "\n",
- "### Maximum liquid water content of snow, as a percentage of SWE (0-1). Usually ~0.05.\n",
- "\"SNOW_SWI\": saturation // Ex: \"SNOW_SWI\": 0.1\n",
- "\n",
- "### Average annual snow for the entire watershed in mm of SWE. Used in CemaNeige.\n",
- "\"AVG_ANNUAL_SNOW\": average_snow_per_year // Ex: \"AVG_ANNUAL_SNOW\": 400.0\n",
- "\n",
- "There are many others, but this should clarify the implementation. Let's try some of them out!"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "# Run the model (See Notebook 04 for more details on implementation)\n",
- "m = GR4JCN(\n",
- " params=parameters,\n",
- " Gauge=[\n",
- " rc.Gauge.from_nc(\n",
- " ts,\n",
- " data_type=data_type, # Note that this is the list of all the variables\n",
- " alt_names=alt_names, # Note that all variables here are mapped to their names in the netcdf file.\n",
- " data_kwds=data_kwds,\n",
- " )\n",
- " ],\n",
- " HRUs=[hru],\n",
- " StartDate=start_date,\n",
- " EndDate=end_date,\n",
- " RunName=\"NB05_test2\",\n",
- " GlobalParameter={\"AVG_ANNUAL_SNOW\": 350.0},\n",
- ")\n",
- "\n",
- "# Run the model and get the outputs.\n",
- "outputs2 = Emulator(m).run()\n",
- "\n",
- "# Plot the generated hydrograph\n",
- "outputs1.hydrograph.q_sim.plot.line(x=\"time\", label=\"Base case\")\n",
- "outputs2.hydrograph.q_sim.plot.line(x=\"time\", label=\"With AVG_ANNUAL_SNOW\")\n",
- "\n",
- "plt.legend(loc=\"upper left\")\n",
- "plt.show()"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "We can also adjust the time series data to play with the scaling of units.\n",
- "\n",
- "By default, RavenPy and Raven will detect units from the forcing data netcdf files. However, in some instances, units might be lacking, or their format might require some tinkering. One such case is for precipitation data that is cumulative in the netcdf file. In these cases, Raven can decumulate the precipitation, but the scaling might lead to undesirable results. For this reason, it is highly recommended to pass the scaling and offsetting variables directly. To do so, add some context in the data_kwds:"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "# Add some information regarding station data\n",
- "data_kwds = {\n",
- " \"ALL\": {\n",
- " \"elevation\": hru[\"elevation\"],\n",
- " \"Latitude\": hru[\"latitude\"],\n",
- " \"Longitude\": hru[\"longitude\"],\n",
- " },\n",
- " # HOW TO PROCESS THE PRECIPITATION DATA: For the Precip variable, we tell Raven we want to Deaccumulate\n",
- " # values, shift them in time by 6 hours (for UTC time zone management), and then apply a linear transform\n",
- " # to the values to get new scaled values. The linear transform can take two inputs:\n",
- " # \"scale\" is the \"a\" variable in the linear relationship y = ax + b. Usually used to multiply precipitation.\n",
- " # \"offset\" is the \"b\" variable in the linear relationship y = ax + b. Usually used to convert temperatures(K to °C)\n",
- " \"PRECIP\": {\n",
- " \"Deaccumulate\": True,\n",
- " \"TimeShift\": -0.25,\n",
- " \"LinearTransform\": {\n",
- " \"scale\": 1000.0 # # Converting meters to mm (multiply by 1000).\n",
- " },\n",
- " },\n",
- " \"TEMP_AVE\": {\n",
- " \"TimeShift\": -0.25,\n",
- " },\n",
- "}"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "In our example, our precipitation is not actually accumulated and the timestep is daily, so we don't need the \"Deaccumulate\" or the \"TimeShift\" parameters. So let's generate a new data_kwds that is applicable in our case. More complex cases that require \"Deaccumulate\" and \"TimeShift\" will be presented in later notebooks that use accumulated precipitation in forecasting applications, in Notebook 12."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "# Add some information regarding station data\n",
- "data_kwds = {\n",
- " \"ALL\": {\n",
- " \"elevation\": hru[\"elevation\"],\n",
- " \"Latitude\": hru[\"latitude\"],\n",
- " \"Longitude\": hru[\"longitude\"],\n",
- " },\n",
- " # Let's simulate a very rough estimation of the impacts of climate change where precipitation is expected\n",
- " # to increase by 10% and temperatures to increase by 3°C. This will be applied to all data on the entire\n",
- " # period and is thus not realistic. We will explore more realistic methods in Notebook 08.\n",
- " \"PRECIP\": {\"LinearTransform\": {\"scale\": 1.1}},\n",
- " \"TEMP_AVE\": {\"LinearTransform\": {\"offset\": 3.0}},\n",
- "}"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Now we can use this new setup to generate another series of streamflow"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "# Run the model (See Notebook 04 for more details on implementation)\n",
- "m = GR4JCN(\n",
- " params=parameters,\n",
- " Gauge=[\n",
- " rc.Gauge.from_nc(\n",
- " ts,\n",
- " data_type=data_type, # Note that this is the list of all the variables\n",
- " alt_names=alt_names, # Note that all variables here are mapped to their names in the netcdf file.\n",
- " data_kwds=data_kwds,\n",
- " )\n",
- " ],\n",
- " HRUs=[hru],\n",
- " StartDate=start_date,\n",
- " EndDate=end_date,\n",
- " RunName=\"NB05_test3\",\n",
- " GlobalParameter={\"AVG_ANNUAL_SNOW\": 350.0},\n",
- ")\n",
- "\n",
- "# Run the model and get the outputs.\n",
- "outputs3 = Emulator(m).run()\n",
- "\n",
- "# Plot the generated hydrograph\n",
- "outputs1.hydrograph.q_sim.plot.line(x=\"time\", label=\"Base case\")\n",
- "outputs2.hydrograph.q_sim.plot.line(x=\"time\", label=\"With AVG_ANNUAL_SNOW\")\n",
- "outputs3.hydrograph.q_sim.plot.line(x=\"time\", label=\"With AVG_ANNUAL_SNOW and Scaling\")\n",
- "\n",
- "plt.legend(loc=\"upper left\")\n",
- "plt.show()"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "We can see that the scaling increased the flows almost everywhere except in the first year which is the warm-up period.\n",
- "\n",
- "Other options that can be implemented are indicated here, although more exist and are documented in the official Raven manual.\n",
- "\n",
- "\n",
- "\n",
- "### RainSnowFraction:\n",
- "Algorithm to use to separate the total precipitation into rainfall and snowfall.\n",
- "\n",
- "Ex: RainSnowFraction='RAINSNOW_DINGMAN'\n",
- "\n",
- "### Evaporation\n",
- "Evaporation: Formula to use to compute the evapotranspiration from the land HRUs.\n",
- "\n",
- "Ex: Evaporation=\"PET_OUDIN\"\n",
- "\n",
- "### Suppress model outputs / files\n",
- "Boolean that indicates if you wish for Raven to provide information after the model evaluation by writing to file. For a single run this can be left to **False**, but for calibration and other intensive tasks, it is faster to leave it to **True**.\n",
- "\n",
- "Ex: SuppressOutputs=True"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Finally, let's see how to implement these commands:"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "# Run the model (See Notebook 04 for more details on implementation)\n",
- "m = GR4JCN(\n",
- " params=parameters,\n",
- " Gauge=[\n",
- " rc.Gauge.from_nc(\n",
- " ts,\n",
- " data_type=data_type, # Note that this is the list of all the variables\n",
- " alt_names=alt_names, # Note that all variables here are mapped to their names in the netcdf file.\n",
- " data_kwds=data_kwds,\n",
- " )\n",
- " ],\n",
- " HRUs=[hru],\n",
- " StartDate=start_date,\n",
- " EndDate=end_date,\n",
- " RunName=\"NB05_test3\",\n",
- " GlobalParameter={\"AVG_ANNUAL_SNOW\": 350.0},\n",
- " RainSnowFraction=\"RAINSNOW_DINGMAN\",\n",
- " Evaporation=\"PET_HARGREAVES_1985\",\n",
- " SuppressOutput=False, # We can't read the hydrographs if they are not written to disk, so set to False here.\n",
- ")\n",
- "\n",
- "# Run the model and get the outputs.\n",
- "outputs4 = Emulator(m).run()\n",
- "\n",
- "# Plot the generated hydrograph\n",
- "outputs1.hydrograph.q_sim.plot.line(x=\"time\", label=\"Base case\")\n",
- "outputs2.hydrograph.q_sim.plot.line(x=\"time\", label=\"With AVG_ANNUAL_SNOW\")\n",
- "outputs3.hydrograph.q_sim.plot.line(x=\"time\", label=\"With AVG_ANNUAL_SNOW and Scaling\")\n",
- "outputs4.hydrograph.q_sim.plot.line(\n",
- " x=\"time\", label=\"With AVG_ANNUAL_SNOW, Scaling and Options\"\n",
- ")\n",
- "\n",
- "plt.legend(loc=\"upper left\")\n",
- "plt.show()"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "### A note on the above results\n",
- "\n",
- "We can see that the results change significantly according to the options we have passed, namely the evaporation algorithm modified the hydrograph quite significantly. However, this is caused by the fact that the parameter set we have used has not been calibrated using this PET method, and thereore the model cannot be expected to perform as well. This means that when using these model options, it is important to recalibrate the model parameters such that they represent the actual model being used!"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "\n",
- "\n",
- "Finally, we can also ask Raven to supply custom outputs using this line in the model configuration:\n",
- "\n",
- "CustomOutput=rc.CustomOutput() and by providing a list of desired pre-processed variables. Here we ask for the yearly average of precipitation over the entire watershed:\n",
- "\n",
- "CustomOutput=rc.CustomOutput(\"YEARLY\", \"AVERAGE\", \"PRECIP\", \"ENTIRE_WATERSHED\")\n",
- "\n",
- "Please see the documentation for more details on using custom outputs.\n"
- ]
- }
- ],
- "metadata": {
- "kernelspec": {
- "display_name": "Python 3 (ipykernel)",
- "language": "python",
- "name": "python3"
- },
- "language_info": {
- "codemirror_mode": {
- "name": "ipython",
- "version": 3
- },
- "file_extension": ".py",
- "mimetype": "text/x-python",
- "name": "python",
- "nbconvert_exporter": "python",
- "pygments_lexer": "ipython3",
- "version": "3.10.9"
- }
- },
- "nbformat": 4,
- "nbformat_minor": 4
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# 05 - Advanced RavenPy configuration"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "In this notebook, we will explore alternative ways to setup a Raven model and how to parameterize and customize a raven-based hydrological model\n",
+ "\n",
+ "## Running Raven using pre-existing configuration files\n",
+ "\n",
+ "To run Raven, we need configuration (`.rvX`) files defining hydrological processes, watersheds and meteorological data. If you already have those configuration files ready, or want to see how to import an existing Raven model into PAVICS-Hydro, this tutorial is for you. It shows how to run Raven from a Python programming environment using [RavenPy](https://ravenpy.readthedocs.io/en/latest/).\n",
+ "\n",
+ "Let's start by importing some utilities that will make our life easier to get data on the servers. If you already have raven model setups, you could simply upload the files here and create your own \"config\" list:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Utility that simplifies getting data hosted on the remote PAVICS-Hydro data server.\n",
+ "from ravenpy.utilities.testdata import get_file"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## A note on datasets\n",
+ "\n",
+ "For this part of the tutorial, we will use pre-existing datasets that are hosted on the PAVICS-Hydro servers to setup the Raven model. This means that the .rv files are all built and the forcing file already exists. We could apply all of the same logic to a RavenPy model we would have built at the previous step, but this way lets us show that we can also work on an imported model. Let's import the configuration files:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Get the .rv files. It could also be the .rv files returned from the previous notebook, but here we are using a new basin that contains observed streamflow\n",
+ "# to make the calibration possible in the next notebook. Note that these configuration files also include links to the\n",
+ "# required hydrometeorological database (NetCDF file).\n",
+ "config = [\n",
+ " get_file(f\"raven-gr4j-cemaneige/raven-gr4j-salmon.{ext}\")\n",
+ " for ext in [\"rvt\", \"rvc\", \"rvi\", \"rvh\", \"rvp\"]\n",
+ "]\n",
+ "config"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "So \"config\" is just a set of paths to the various .rvX files (.rvt, .rvc, .rvi. .rvh and .rvp). Therefore, if you have your own .rv files that describe your model, you can upload them and replace \"config\" with your own files!"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Building a hydrological model on-the-fly using existing configuration files.\n",
+ "\n",
+ "Here we create a Raven model instance, configuring it using the pre-defined configuration files and running it by providing the full path to the NetCDF driving datasets. The configuration we provide is for a GR4J-CN model emulator that Raven will run for us. We provide the configuration files for GR4J-CN as well as the forcing data (precipitation, temperature, observed streamflow, etc.) that will be used to run the model."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from ravenpy import OutputReader\n",
+ "from ravenpy.ravenpy import run\n",
+ "\n",
+ "run_name = \"raven-gr4j-salmon\" # As can be seen in the config above, this is the name of the .rvX files.\n",
+ "configdir = config[\n",
+ " 0\n",
+ "].parent # We can get the path to the folder containing the .rvX files this way\n",
+ "\n",
+ "# Run the model and get the path to outputs\n",
+ "outputs_path = run(modelname=run_name, configdir=configdir, overwrite=True)\n",
+ "\n",
+ "# Note. The modelname parameter can be confusing. You need to give the FILES extension name (run_name in our case),\n",
+ "# not the name of the model.\n",
+ "\n",
+ "outputs_path"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Read the output files at the output_path\n",
+ "\n",
+ "outputs = OutputReader(run_name=None, path=outputs_path) # Get the outputs\n",
+ "# Note. We set up the run_name to None, because we didn't rename the output files. If you gave a different name to your file\n",
+ "# compared to the one above, you should change the run_name value to this new name. It's important though that you keep the end\n",
+ "# of the filename the same\n",
+ "\n",
+ "# Show the list of files that were retrived by the OutputReader\n",
+ "outputs.files"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "The model should have run! But you also might have seen some warnings that Raven is giving us, depending on the input files used:\n",
+ "\n",
+ "- Some might be saying that we are providing rain and snow independently, but in the configuration files, we are asking the model to recompute the separation using an algorithm based on total precipitation and air temperature. This is OK, and we can live with this (alternatively, we could reconfigure the model to remove this but that will be for another notebook!).\n",
+ "\n",
+ "- Others could be saying that we supply PET data, but the model is configured to compute PET from the available temperature and latitude/longitude data. This is also acceptable to us for now, so these warnings can be disregarded.\n",
+ "\n",
+ "- And others might simply explain that our configuration provided some parameters but others were computed internally based on our parameter set rather than being explicitly set in our configuration, which is OK.\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Evaluating the model response\n",
+ "\n",
+ "That's it! The code above has launched the GR4J-CN model using weather data and the configuration we provided. There are many other options we could provide, but for now we left everything to the default options to keep things simple. We will explore those in a future tutorial as well.\n",
+ "\n",
+ "Now, let's look at the modeled hydrographs. Note that there is a \"q_obs\" hydrograph, representing the observations we provided ourselves. This is to facilitate the comparison between observations and simulations, and it is not required per se to run the model. The \"q_sim\" variable is the simulated streamflow and is the one we are interested in.\n",
+ "\n",
+ "Note that RavenPy assumes that model outputs are always saved in netCDF format, and relies on [xarray](http://xarray.pydata.org/en/stable/) to access data.\n",
+ "\n",
+ "To see results, we must first tell the model to read them from the files Raven has written in the output folder:"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "We can visualize the simulated streamflow using xarray's built-in plotting tool, as follows:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "outputs.hydrograph.q_sim.plot()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "We also now have access to diagnostics! This is because along with the simulated discharge, the model has access to observed discharge to compute error metrics such as RMSE and NSE. Let's see where the file has been generated:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "print(\"-----------------DIAGNOSTICS-----------------\")\n",
+ "print(outputs.diagnostics)\n",
+ "print(\"\")\n",
+ "\n",
+ "print(\"-----------------NASH_SUTCLIFFE-----------------\")\n",
+ "print(outputs.diagnostics[\"DIAG_NASH_SUTCLIFFE\"])\n",
+ "print(\"\")\n",
+ "\n",
+ "print(\"-----------------RMSE-----------------\")\n",
+ "print(outputs.diagnostics[\"DIAG_RMSE\"])"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "We can see that the Nash-Sutcliffe value is quite poor. This is due to the short simulation period in the configuration (see the hydrograph above!) and the lack of a spin-up period, combined to a poor parameter set choice. We will improve upon all of these shortcomings in the next notebooks!"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Advanced RavenPy configuration options\n",
+ "\n",
+ "Raven can perform many operations and has multiple configuration options. Here we provide a list of configuration options to explore which you can eventually use to taylor the codes to your own specifications. These can only be run on RavenPy-built hydrological models, and will not operate on Raven models imported by users since those configuration files are not modifiable for the time being.\n",
+ "\n",
+ "We will give an overview of the various configuration keywords after this code block, but users should read the Raven documentation for more options for each of these processes.\n",
+ "\n",
+ "Let's first define some variables we will need for all of our tests:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Get required packages\n",
+ "import datetime as dt\n",
+ "\n",
+ "import matplotlib.pyplot as plt\n",
+ "\n",
+ "from ravenpy import Emulator\n",
+ "from ravenpy.config import commands as rc\n",
+ "from ravenpy.config.emulators import GR4JCN\n",
+ "\n",
+ "# Observed weather data for the Salmon river. We extracted this using Tutorial Notebook 03 and the\n",
+ "# salmon_river.geojson file as the contour.\n",
+ "ts = get_file(\"notebook_inputs/ERA5_weather_data_Salmon.nc\")\n",
+ "\n",
+ "# Set alternate variable names in the timeseries data file\n",
+ "alt_names = {\n",
+ " \"TEMP_MIN\": \"tmin\",\n",
+ " \"TEMP_MAX\": \"tmax\",\n",
+ " \"PRECIP\": \"pr\",\n",
+ "}\n",
+ "\n",
+ "# Provide the type of data made available to Raven\n",
+ "data_type = [\"TEMP_MAX\", \"TEMP_MIN\", \"PRECIP\"]\n",
+ "\n",
+ "# Prepare the catchment properties\n",
+ "hru = dict(\n",
+ " area=4250.6,\n",
+ " elevation=843.0,\n",
+ " latitude=54.4848,\n",
+ " longitude=-123.3659,\n",
+ " hru_type=\"land\",\n",
+ ")\n",
+ "\n",
+ "# Add some information regarding station data\n",
+ "data_kwds = {\n",
+ " \"ALL\": {\n",
+ " \"elevation\": hru[\"elevation\"],\n",
+ " \"latitude\": hru[\"latitude\"],\n",
+ " \"longitude\": hru[\"longitude\"],\n",
+ " }\n",
+ "}\n",
+ "\n",
+ "# Start and end dates of the simulation\n",
+ "start_date = dt.datetime(1985, 1, 1)\n",
+ "end_date = dt.datetime(1990, 1, 1)\n",
+ "\n",
+ "# Set parameters\n",
+ "parameters = [0.529, -3.396, 407.29, 1.072, 16.9, 0.947]"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "We can now perform a \"basic\" run, with no modifications."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Run the model (See Notebook 04 for more details on implementation)\n",
+ "m = GR4JCN(\n",
+ " params=parameters,\n",
+ " Gauge=[\n",
+ " rc.Gauge.from_nc(\n",
+ " ts,\n",
+ " data_type=data_type, # Note that this is the list of all the variables\n",
+ " alt_names=alt_names, # Note that all variables here are mapped to their names in the netcdf file.\n",
+ " data_kwds=data_kwds,\n",
+ " )\n",
+ " ],\n",
+ " HRUs=[hru],\n",
+ " StartDate=start_date,\n",
+ " EndDate=end_date,\n",
+ " RunName=\"NB05_test1\",\n",
+ " # GlobalParameter={\"AVG_ANNUAL_RUNOFF\": 208.480},\n",
+ ")\n",
+ "\n",
+ "# Run the model and get the outputs.\n",
+ "outputs1 = Emulator(m).run()\n",
+ "\n",
+ "# Plot the generated hydrograph\n",
+ "outputs1.hydrograph.q_sim.plot.line(x=\"time\", label=\"Base case\")\n",
+ "plt.legend(loc=\"upper left\")\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "We can now run another model by adding some other properties. To start, we can add some Global Parameters to the model to make Raven adjust the simulations based on the information we provide. Some options of Global Parameters are indicated here, but more can be found in the official Raven documentation.\n",
+ "\n",
+ "Examples of GlobalParameter options (Note that some are only available for certain models and others can be mutually exclusive. Please refer to the documentation for this type of adjustment):\n",
+ "\n",
+ "### Temperature interval of transformation between rain and snow. Set the midpoint of the range and the width of the range, in degrees C:\n",
+ "\"RAINSNOW_TEMP\": midpoint_temp // Ex: \"RAINSNOW_TEMP\": -1.0\n",
+ "\n",
+ "\"RAINSNOW_DELTA\": delta_temp // Ex: \"RAINSNOW_DELTA\": 3.0\n",
+ "\n",
+ "### Maximum liquid water content of snow, as a percentage of SWE (0-1). Usually ~0.05.\n",
+ "\"SNOW_SWI\": saturation // Ex: \"SNOW_SWI\": 0.1\n",
+ "\n",
+ "### Average annual snow for the entire watershed in mm of SWE. Used in CemaNeige.\n",
+ "\"AVG_ANNUAL_SNOW\": average_snow_per_year // Ex: \"AVG_ANNUAL_SNOW\": 400.0\n",
+ "\n",
+ "There are many others, but this should clarify the implementation. Let's try some of them out!"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Run the model (See Notebook 04 for more details on implementation)\n",
+ "m = GR4JCN(\n",
+ " params=parameters,\n",
+ " Gauge=[\n",
+ " rc.Gauge.from_nc(\n",
+ " ts,\n",
+ " data_type=data_type, # Note that this is the list of all the variables\n",
+ " alt_names=alt_names, # Note that all variables here are mapped to their names in the netcdf file.\n",
+ " data_kwds=data_kwds,\n",
+ " )\n",
+ " ],\n",
+ " HRUs=[hru],\n",
+ " StartDate=start_date,\n",
+ " EndDate=end_date,\n",
+ " RunName=\"NB05_test2\",\n",
+ " GlobalParameter={\"AVG_ANNUAL_SNOW\": 350.0},\n",
+ ")\n",
+ "\n",
+ "# Run the model and get the outputs.\n",
+ "outputs2 = Emulator(m).run()\n",
+ "\n",
+ "# Plot the generated hydrograph\n",
+ "outputs1.hydrograph.q_sim.plot.line(x=\"time\", label=\"Base case\")\n",
+ "outputs2.hydrograph.q_sim.plot.line(x=\"time\", label=\"With AVG_ANNUAL_SNOW\")\n",
+ "\n",
+ "plt.legend(loc=\"upper left\")\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "We can also adjust the time series data to play with the scaling of units.\n",
+ "\n",
+ "By default, RavenPy and Raven will detect units from the forcing data netcdf files. However, in some instances, units might be lacking, or their format might require some tinkering. One such case is for precipitation data that is cumulative in the netcdf file. In these cases, Raven can decumulate the precipitation, but the scaling might lead to undesirable results. For this reason, it is highly recommended to pass the scaling and offsetting variables directly. To do so, add some context in the data_kwds:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Add some information regarding station data\n",
+ "data_kwds = {\n",
+ " \"ALL\": {\n",
+ " \"elevation\": hru[\"elevation\"],\n",
+ " \"Latitude\": hru[\"latitude\"],\n",
+ " \"Longitude\": hru[\"longitude\"],\n",
+ " },\n",
+ " # HOW TO PROCESS THE PRECIPITATION DATA: For the Precip variable, we tell Raven we want to Deaccumulate\n",
+ " # values, shift them in time by 6 hours (for UTC time zone management), and then apply a linear transform\n",
+ " # to the values to get new scaled values. The linear transform can take two inputs:\n",
+ " # \"scale\" is the \"a\" variable in the linear relationship y = ax + b. Usually used to multiply precipitation.\n",
+ " # \"offset\" is the \"b\" variable in the linear relationship y = ax + b. Usually used to convert temperatures(K to °C)\n",
+ " \"PRECIP\": {\n",
+ " \"Deaccumulate\": True,\n",
+ " \"TimeShift\": -0.25,\n",
+ " \"LinearTransform\": {\n",
+ " \"scale\": 1000.0 # # Converting meters to mm (multiply by 1000).\n",
+ " },\n",
+ " },\n",
+ " \"TEMP_AVE\": {\n",
+ " \"TimeShift\": -0.25,\n",
+ " },\n",
+ "}"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "In our example, our precipitation is not actually accumulated and the timestep is daily, so we don't need the \"Deaccumulate\" or the \"TimeShift\" parameters. So let's generate a new data_kwds that is applicable in our case. More complex cases that require \"Deaccumulate\" and \"TimeShift\" will be presented in later notebooks that use accumulated precipitation in forecasting applications, in Notebook 12."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Add some information regarding station data\n",
+ "data_kwds = {\n",
+ " \"ALL\": {\n",
+ " \"elevation\": hru[\"elevation\"],\n",
+ " \"Latitude\": hru[\"latitude\"],\n",
+ " \"Longitude\": hru[\"longitude\"],\n",
+ " },\n",
+ " # Let's simulate a very rough estimation of the impacts of climate change where precipitation is expected\n",
+ " # to increase by 10% and temperatures to increase by 3°C. This will be applied to all data on the entire\n",
+ " # period and is thus not realistic. We will explore more realistic methods in Notebook 08.\n",
+ " \"PRECIP\": {\"LinearTransform\": {\"scale\": 1.1}},\n",
+ " \"TEMP_AVE\": {\"LinearTransform\": {\"offset\": 3.0}},\n",
+ "}"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Now we can use this new setup to generate another series of streamflow"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Run the model (See Notebook 04 for more details on implementation)\n",
+ "m = GR4JCN(\n",
+ " params=parameters,\n",
+ " Gauge=[\n",
+ " rc.Gauge.from_nc(\n",
+ " ts,\n",
+ " data_type=data_type, # Note that this is the list of all the variables\n",
+ " alt_names=alt_names, # Note that all variables here are mapped to their names in the netcdf file.\n",
+ " data_kwds=data_kwds,\n",
+ " )\n",
+ " ],\n",
+ " HRUs=[hru],\n",
+ " StartDate=start_date,\n",
+ " EndDate=end_date,\n",
+ " RunName=\"NB05_test3\",\n",
+ " GlobalParameter={\"AVG_ANNUAL_SNOW\": 350.0},\n",
+ ")\n",
+ "\n",
+ "# Run the model and get the outputs.\n",
+ "outputs3 = Emulator(m).run()\n",
+ "\n",
+ "# Plot the generated hydrograph\n",
+ "outputs1.hydrograph.q_sim.plot.line(x=\"time\", label=\"Base case\")\n",
+ "outputs2.hydrograph.q_sim.plot.line(x=\"time\", label=\"With AVG_ANNUAL_SNOW\")\n",
+ "outputs3.hydrograph.q_sim.plot.line(x=\"time\", label=\"With AVG_ANNUAL_SNOW and Scaling\")\n",
+ "\n",
+ "plt.legend(loc=\"upper left\")\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "We can see that the scaling increased the flows almost everywhere except in the first year which is the warm-up period.\n",
+ "\n",
+ "Other options that can be implemented are indicated here, although more exist and are documented in the official Raven manual.\n",
+ "\n",
+ "\n",
+ "\n",
+ "### RainSnowFraction:\n",
+ "Algorithm to use to separate the total precipitation into rainfall and snowfall.\n",
+ "\n",
+ "Ex: RainSnowFraction='RAINSNOW_DINGMAN'\n",
+ "\n",
+ "### Evaporation\n",
+ "Evaporation: Formula to use to compute the evapotranspiration from the land HRUs.\n",
+ "\n",
+ "Ex: Evaporation=\"PET_OUDIN\"\n",
+ "\n",
+ "### Suppress model outputs / files\n",
+ "Boolean that indicates if you wish for Raven to provide information after the model evaluation by writing to file. For a single run this can be left to **False**, but for calibration and other intensive tasks, it is faster to leave it to **True**.\n",
+ "\n",
+ "Ex: SuppressOutputs=True"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Finally, let's see how to implement these commands:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Run the model (See Notebook 04 for more details on implementation)\n",
+ "m = GR4JCN(\n",
+ " params=parameters,\n",
+ " Gauge=[\n",
+ " rc.Gauge.from_nc(\n",
+ " ts,\n",
+ " data_type=data_type, # Note that this is the list of all the variables\n",
+ " alt_names=alt_names, # Note that all variables here are mapped to their names in the netcdf file.\n",
+ " data_kwds=data_kwds,\n",
+ " )\n",
+ " ],\n",
+ " HRUs=[hru],\n",
+ " StartDate=start_date,\n",
+ " EndDate=end_date,\n",
+ " RunName=\"NB05_test3\",\n",
+ " GlobalParameter={\"AVG_ANNUAL_SNOW\": 350.0},\n",
+ " RainSnowFraction=\"RAINSNOW_DINGMAN\",\n",
+ " Evaporation=\"PET_HARGREAVES_1985\",\n",
+ " SuppressOutput=False, # We can't read the hydrographs if they are not written to disk, so set to False here.\n",
+ ")\n",
+ "\n",
+ "# Run the model and get the outputs.\n",
+ "outputs4 = Emulator(m).run()\n",
+ "\n",
+ "# Plot the generated hydrograph\n",
+ "outputs1.hydrograph.q_sim.plot.line(x=\"time\", label=\"Base case\")\n",
+ "outputs2.hydrograph.q_sim.plot.line(x=\"time\", label=\"With AVG_ANNUAL_SNOW\")\n",
+ "outputs3.hydrograph.q_sim.plot.line(x=\"time\", label=\"With AVG_ANNUAL_SNOW and Scaling\")\n",
+ "outputs4.hydrograph.q_sim.plot.line(\n",
+ " x=\"time\", label=\"With AVG_ANNUAL_SNOW, Scaling and Options\"\n",
+ ")\n",
+ "\n",
+ "plt.legend(loc=\"upper left\")\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### A note on the above results\n",
+ "\n",
+ "We can see that the results change significantly according to the options we have passed, namely the evaporation algorithm modified the hydrograph quite significantly. However, this is caused by the fact that the parameter set we have used has not been calibrated using this PET method, and thereore the model cannot be expected to perform as well. This means that when using these model options, it is important to recalibrate the model parameters such that they represent the actual model being used!"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "\n",
+ "\n",
+ "Finally, we can also ask Raven to supply custom outputs using this line in the model configuration:\n",
+ "\n",
+ "CustomOutput=rc.CustomOutput() and by providing a list of desired pre-processed variables. Here we ask for the yearly average of precipitation over the entire watershed:\n",
+ "\n",
+ "CustomOutput=rc.CustomOutput(\"YEARLY\", \"AVERAGE\", \"PRECIP\", \"ENTIRE_WATERSHED\")\n",
+ "\n",
+ "Please see the documentation for more details on using custom outputs.\n"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3 (ipykernel)",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.10.9"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
}
diff --git a/docs/notebooks/06_Raven_calibration.ipynb b/docs/notebooks/06_Raven_calibration.ipynb
index be86b701..11d59fac 100644
--- a/docs/notebooks/06_Raven_calibration.ipynb
+++ b/docs/notebooks/06_Raven_calibration.ipynb
@@ -1,356 +1,356 @@
{
- "cells": [
- {
- "cell_type": "markdown",
- "id": "4a5f03fb",
- "metadata": {},
- "source": [
- "# 06 - Calibration of a Raven hydrological model"
- ]
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "id": "4a5f03fb",
+ "metadata": {},
+ "source": [
+ "# 06 - Calibration of a Raven hydrological model"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "d1ce69fb",
+ "metadata": {},
+ "source": [
+ "## Calibration of a Raven model\n",
+ "\n",
+ "In this notebook, we show how to calibrate a Raven model using the GR4J-CN predefined structure. Users can refer to the documentation for the parameterization of other hydrological model structures.\n",
+ "\n",
+ "Let's start by importing the packages that will do the work."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "565a7b6c",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import datetime as dt\n",
+ "\n",
+ "import spotpy\n",
+ "\n",
+ "from ravenpy.config import commands as rc\n",
+ "from ravenpy.config.emulators import GR4JCN\n",
+ "from ravenpy.utilities.calibration import SpotSetup"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "cbfe7818",
+ "metadata": {},
+ "source": [
+ "## Preparing the model to be calibrated on a given watershed\n",
+ "Our test watershed from the last notebook is selected for this test. It can be replaced with any desired watershed."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "bf6a2500",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from ravenpy.utilities.testdata import get_file\n",
+ "\n",
+ "# We get the netCDF for testing on a server. You can replace the getfile method by a string containing the path to your own netCDF\n",
+ "nc_file = get_file(\n",
+ " \"raven-gr4j-cemaneige/Salmon-River-Near-Prince-George_meteo_daily.nc\"\n",
+ ")\n",
+ "\n",
+ "# Display the dataset that we will be using\n",
+ "print(nc_file)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "e5611922",
+ "metadata": {},
+ "source": [
+ "The process is very similar to setting up a hydrological model. We first need to create the model with its configuration. We must provide the same information as before, except for the model parameters since those need to be calibrated."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "2105f6ea",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Here, we need to give the name of your different dataset in order to match with Raven models.\n",
+ "alt_names = {\n",
+ " \"RAINFALL\": \"rain\",\n",
+ " \"SNOWFALL\": \"snow\",\n",
+ " \"TEMP_MIN\": \"tmin\",\n",
+ " \"TEMP_MAX\": \"tmax\",\n",
+ " \"PET\": \"pet\",\n",
+ " \"HYDROGRAPH\": \"qobs\",\n",
+ "}\n",
+ "\n",
+ "# The HRU of your watershed\n",
+ "hru = dict(area=4250.6, elevation=843.0, latitude=54.4848, longitude=-123.3659)\n",
+ "\n",
+ "# You can decide the evaluation metrics that will be used to calibrate the parameters of your model. You need atleast\n",
+ "# 1 evaluation metric, but you can do any combinaison of evaluations from this list :\n",
+ "#\n",
+ "# NASH_SUTCLIFFE,\n",
+ "# LOG_NASH,\n",
+ "# RMSE,\n",
+ "# PCT_BIAS,\n",
+ "# ABSERR,\n",
+ "# ABSMAX,\n",
+ "# PDIFF,\n",
+ "# TMVOL,\n",
+ "# RCOEFF,\n",
+ "# NSC,\n",
+ "# KLING_GUPTA\n",
+ "eval_metrics = (\"NASH_SUTCLIFFE\",)\n",
+ "\n",
+ "\n",
+ "# We need to create the desired model with its parameters the same way as in the Notebook 04_Emulating_hydrological_models.\n",
+ "model_config = GR4JCN(\n",
+ " ObservationData=[rc.ObservationData.from_nc(nc_file, alt_names=\"qobs\")],\n",
+ " Gauge=[\n",
+ " rc.Gauge.from_nc(\n",
+ " nc_file,\n",
+ " alt_names=alt_names,\n",
+ " data_kwds={\"ALL\": {\"elevation\": hru[\"elevation\"]}},\n",
+ " )\n",
+ " ],\n",
+ " HRUs=[hru],\n",
+ " StartDate=dt.datetime(1990, 1, 1),\n",
+ " EndDate=dt.datetime(1999, 12, 31),\n",
+ " RunName=\"test\",\n",
+ " EvaluationMetrics=eval_metrics, # We add this code to tell Raven which objective function we want to pass.\n",
+ " SuppressOutput=True,\n",
+ ")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "40c8371c",
+ "metadata": {},
+ "source": [
+ "## Spotpy Calibration\n",
+ "\n",
+ "Once you've created your model, you need to create a SpotSetup, which will be used to calibrate your model."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "0c089720",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# In order to calibrate your model, you need to give the lower and higher bounds of the model. In this case, we are passing\n",
+ "# the boundaries for a GR4JCN, but it's important to change them, if you are using another model. Note that the list of these\n",
+ "# boundaries for each model is at the end of this notebook.\n",
+ "low_params = (0.01, -15.0, 10.0, 0.0, 1.0, 0.0)\n",
+ "high_params = (2.5, 10.0, 700.0, 7.0, 30.0, 1.0)\n",
+ "\n",
+ "\n",
+ "spot_setup = SpotSetup(\n",
+ " config=model_config,\n",
+ " low=low_params,\n",
+ " high=high_params,\n",
+ ")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "2b6351b2",
+ "metadata": {},
+ "source": [
+ "Now that the model is setup and configured and that `SpotSetup` object exists, we need to create a sampler from `spotpy` module which will optimize the hydrological model paramaters. You can see that we are using the DDS algorithm to optimize the parameters:\n",
+ "\n",
+ "[Tolson, B.A. and Shoemaker, C.A., 2007. Dynamically dimensioned search algorithm for computationally efficient watershed model calibration. Water Resources Research, 43(1)].\n",
+ "\n",
+ "If you want to use another algorithm, please refer to the Spotpy documentation here : https://spotpy.readthedocs.io/\n",
+ "\n",
+ "Finally, we run the sampler by the amount of desired repetitions."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "77d168a1",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Number of total model evaluations in the calibration. This value should be over 500 for real optimisation,\n",
+ "# and upwards of 10000 evaluations for models with many parameters. This will take a LONG period of time so\n",
+ "# be sure of all the configuration above before executing with a high number of model evaluations.\n",
+ "model_evaluations = 10\n",
+ "\n",
+ "# Set up the spotpy sampler with the method, the setup configuration, a run name and other options. Please refer to\n",
+ "# the spotpy documentation for more options. We recommend sticking to this format for efficiency of most applications.\n",
+ "sampler = spotpy.algorithms.dds(\n",
+ " spot_setup, dbname=\"RAVEN_model_run\", dbformat=\"ram\", save_sim=False\n",
+ ")\n",
+ "\n",
+ "# Launch the actual optimization. Multiple trials can be launched, where the entire process is repeated and\n",
+ "# the best overall value from all trials is returned.\n",
+ "sampler.sample(model_evaluations, trials=1)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "f789c674",
+ "metadata": {},
+ "source": [
+ "## Analysing the calibration results\n",
+ "The best parameters as well as the objective functions can be analyzed."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "ae1fc2c4",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Get all the values of each iteration\n",
+ "results = sampler.getdata()\n",
+ "\n",
+ "print(\"The best Nash-Sutcliffe value is : \")\n",
+ "\n",
+ "# Get the raw resutlts directly in an array\n",
+ "bestindex, bestobjfun = spotpy.analyser.get_maxlikeindex(\n",
+ " results\n",
+ ") # Want to get the MAX NSE (change for min for RMSE)\n",
+ "best_model_run = list(\n",
+ " results[bestindex][0]\n",
+ ") # Get the parameter set returning the best NSE\n",
+ "optimized_parameters = best_model_run[\n",
+ " 1:-1\n",
+ "] # Remove the NSE value (position 0) and the ID at the last position to get the actual parameter set.\n",
+ "\n",
+ "print(\"\\nThe best parameters are : \")\n",
+ "# Display the parameter set ready to use in a future run:\n",
+ "print(optimized_parameters)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "d22ea8c6-173d-44e9-82c2-cf87a0227180",
+ "metadata": {},
+ "source": [
+ "## Next steps\n",
+ "\n",
+ "In the next notebooks, we will apply the model to specific use-cases, including making and using hotstart files for forecasting, performing hindcasting and forecasting, applying data assimilation and evaluating the impacts of climate change on the hydrology of a watershed. In the meantime, you can explore calibration with any of the emulated models below with the provided low and high bounds. You can also provide your own for specific cases."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "c4655f07",
+ "metadata": {},
+ "source": [
+ "## List of Model-Boundaries\n",
+ "\n",
+ "GR4J-CN :\n",
+ "\n",
+ "
\n"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3 (ipykernel)",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.10.9"
+ }
},
- {
- "cell_type": "markdown",
- "id": "d1ce69fb",
- "metadata": {},
- "source": [
- "## Calibration of a Raven model\n",
- "\n",
- "In this notebook, we show how to calibrate a Raven model using the GR4J-CN predefined structure. Users can refer to the documentation for the parameterization of other hydrological model structures.\n",
- "\n",
- "Let's start by importing the packages that will do the work."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "id": "565a7b6c",
- "metadata": {},
- "outputs": [],
- "source": [
- "import datetime as dt\n",
- "\n",
- "import spotpy\n",
- "\n",
- "from ravenpy.config import commands as rc\n",
- "from ravenpy.config.emulators import GR4JCN\n",
- "from ravenpy.utilities.calibration import SpotSetup"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "cbfe7818",
- "metadata": {},
- "source": [
- "## Preparing the model to be calibrated on a given watershed\n",
- "Our test watershed from the last notebook is selected for this test. It can be replaced with any desired watershed."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "id": "bf6a2500",
- "metadata": {},
- "outputs": [],
- "source": [
- "from ravenpy.utilities.testdata import get_file\n",
- "\n",
- "# We get the netCDF for testing on a server. You can replace the getfile method by a string containing the path to your own netCDF\n",
- "nc_file = get_file(\n",
- " \"raven-gr4j-cemaneige/Salmon-River-Near-Prince-George_meteo_daily.nc\"\n",
- ")\n",
- "\n",
- "# Display the dataset that we will be using\n",
- "print(nc_file)"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "e5611922",
- "metadata": {},
- "source": [
- "The process is very similar to setting up a hydrological model. We first need to create the model with its configuration. We must provide the same information as before, except for the model parameters since those need to be calibrated."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "id": "2105f6ea",
- "metadata": {},
- "outputs": [],
- "source": [
- "# Here, we need to give the name of your different dataset in order to match with Raven models.\n",
- "alt_names = {\n",
- " \"RAINFALL\": \"rain\",\n",
- " \"SNOWFALL\": \"snow\",\n",
- " \"TEMP_MIN\": \"tmin\",\n",
- " \"TEMP_MAX\": \"tmax\",\n",
- " \"PET\": \"pet\",\n",
- " \"HYDROGRAPH\": \"qobs\",\n",
- "}\n",
- "\n",
- "# The HRU of your watershed\n",
- "hru = dict(area=4250.6, elevation=843.0, latitude=54.4848, longitude=-123.3659)\n",
- "\n",
- "# You can decide the evaluation metrics that will be used to calibrate the parameters of your model. You need atleast\n",
- "# 1 evaluation metric, but you can do any combinaison of evaluations from this list :\n",
- "#\n",
- "# NASH_SUTCLIFFE,\n",
- "# LOG_NASH,\n",
- "# RMSE,\n",
- "# PCT_BIAS,\n",
- "# ABSERR,\n",
- "# ABSMAX,\n",
- "# PDIFF,\n",
- "# TMVOL,\n",
- "# RCOEFF,\n",
- "# NSC,\n",
- "# KLING_GUPTA\n",
- "eval_metrics = (\"NASH_SUTCLIFFE\",)\n",
- "\n",
- "\n",
- "# We need to create the desired model with its parameters the same way as in the Notebook 04_Emulating_hydrological_models.\n",
- "model_config = GR4JCN(\n",
- " ObservationData=[rc.ObservationData.from_nc(nc_file, alt_names=\"qobs\")],\n",
- " Gauge=[\n",
- " rc.Gauge.from_nc(\n",
- " nc_file,\n",
- " alt_names=alt_names,\n",
- " data_kwds={\"ALL\": {\"elevation\": hru[\"elevation\"]}},\n",
- " )\n",
- " ],\n",
- " HRUs=[hru],\n",
- " StartDate=dt.datetime(1990, 1, 1),\n",
- " EndDate=dt.datetime(1999, 12, 31),\n",
- " RunName=\"test\",\n",
- " EvaluationMetrics=eval_metrics, # We add this code to tell Raven which objective function we want to pass.\n",
- " SuppressOutput=True,\n",
- ")"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "40c8371c",
- "metadata": {},
- "source": [
- "## Spotpy Calibration\n",
- "\n",
- "Once you've created your model, you need to create a SpotSetup, which will be used to calibrate your model."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "id": "0c089720",
- "metadata": {},
- "outputs": [],
- "source": [
- "# In order to calibrate your model, you need to give the lower and higher bounds of the model. In this case, we are passing\n",
- "# the boundaries for a GR4JCN, but it's important to change them, if you are using another model. Note that the list of these\n",
- "# boundaries for each model is at the end of this notebook.\n",
- "low_params = (0.01, -15.0, 10.0, 0.0, 1.0, 0.0)\n",
- "high_params = (2.5, 10.0, 700.0, 7.0, 30.0, 1.0)\n",
- "\n",
- "\n",
- "spot_setup = SpotSetup(\n",
- " config=model_config,\n",
- " low=low_params,\n",
- " high=high_params,\n",
- ")"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "2b6351b2",
- "metadata": {},
- "source": [
- "Now that the model is setup and configured and that `SpotSetup` object exists, we need to create a sampler from `spotpy` module which will optimize the hydrological model paramaters. You can see that we are using the DDS algorithm to optimize the parameters:\n",
- "\n",
- "[Tolson, B.A. and Shoemaker, C.A., 2007. Dynamically dimensioned search algorithm for computationally efficient watershed model calibration. Water Resources Research, 43(1)].\n",
- "\n",
- "If you want to use another algorithm, please refer to the Spotpy documentation here : https://spotpy.readthedocs.io/\n",
- "\n",
- "Finally, we run the sampler by the amount of desired repetitions."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "id": "77d168a1",
- "metadata": {},
- "outputs": [],
- "source": [
- "# Number of total model evaluations in the calibration. This value should be over 500 for real optimisation,\n",
- "# and upwards of 10000 evaluations for models with many parameters. This will take a LONG period of time so\n",
- "# be sure of all the configuration above before executing with a high number of model evaluations.\n",
- "model_evaluations = 10\n",
- "\n",
- "# Set up the spotpy sampler with the method, the setup configuration, a run name and other options. Please refer to\n",
- "# the spotpy documentation for more options. We recommend sticking to this format for efficiency of most applications.\n",
- "sampler = spotpy.algorithms.dds(\n",
- " spot_setup, dbname=\"RAVEN_model_run\", dbformat=\"ram\", save_sim=False\n",
- ")\n",
- "\n",
- "# Launch the actual optimization. Multiple trials can be launched, where the entire process is repeated and\n",
- "# the best overall value from all trials is returned.\n",
- "sampler.sample(model_evaluations, trials=1)"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "f789c674",
- "metadata": {},
- "source": [
- "## Analysing the calibration results\n",
- "The best parameters as well as the objective functions can be analyzed."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "id": "ae1fc2c4",
- "metadata": {},
- "outputs": [],
- "source": [
- "# Get all the values of each iteration\n",
- "results = sampler.getdata()\n",
- "\n",
- "print(\"The best Nash-Sutcliffe value is : \")\n",
- "\n",
- "# Get the raw resutlts directly in an array\n",
- "bestindex, bestobjfun = spotpy.analyser.get_maxlikeindex(\n",
- " results\n",
- ") # Want to get the MAX NSE (change for min for RMSE)\n",
- "best_model_run = list(\n",
- " results[bestindex][0]\n",
- ") # Get the parameter set returning the best NSE\n",
- "optimized_parameters = best_model_run[\n",
- " 1:-1\n",
- "] # Remove the NSE value (position 0) and the ID at the last position to get the actual parameter set.\n",
- "\n",
- "print(\"\\nThe best parameters are : \")\n",
- "# Display the parameter set ready to use in a future run:\n",
- "print(optimized_parameters)"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "d22ea8c6-173d-44e9-82c2-cf87a0227180",
- "metadata": {},
- "source": [
- "## Next steps\n",
- "\n",
- "In the next notebooks, we will apply the model to specific use-cases, including making and using hotstart files for forecasting, performing hindcasting and forecasting, applying data assimilation and evaluating the impacts of climate change on the hydrology of a watershed. In the meantime, you can explore calibration with any of the emulated models below with the provided low and high bounds. You can also provide your own for specific cases."
- ]
- },
- {
- "cell_type": "markdown",
- "id": "c4655f07",
- "metadata": {},
- "source": [
- "## List of Model-Boundaries\n",
- "\n",
- "GR4J-CN :\n",
- "\n",
- "
\n"
- ]
- }
- ],
- "metadata": {
- "kernelspec": {
- "display_name": "Python 3 (ipykernel)",
- "language": "python",
- "name": "python3"
- },
- "language_info": {
- "codemirror_mode": {
- "name": "ipython",
- "version": 3
- },
- "file_extension": ".py",
- "mimetype": "text/x-python",
- "name": "python",
- "nbconvert_exporter": "python",
- "pygments_lexer": "ipython3",
- "version": "3.10.9"
- }
- },
- "nbformat": 4,
- "nbformat_minor": 5
+ "nbformat": 4,
+ "nbformat_minor": 5
}
diff --git a/docs/notebooks/07_Making_and_using_hotstart_files.ipynb b/docs/notebooks/07_Making_and_using_hotstart_files.ipynb
index e5091917..f992a396 100644
--- a/docs/notebooks/07_Making_and_using_hotstart_files.ipynb
+++ b/docs/notebooks/07_Making_and_using_hotstart_files.ipynb
@@ -1,232 +1,232 @@
{
- "cells": [
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "# 07 - Making and using hostart files"
- ]
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# 07 - Making and using hostart files"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Create a hotstart file to resume a simulation from given hydrological conditions\n",
+ "\n",
+ "Hydrological models have state variables that describe the snow pack, soil moisture, underground reservoirs, etc. Typically, those cannot be measured empirically, so one way to estimate those values is to run the model for a period before the period we are actually interested in, and save the state variables at the end of this *warm-up* simulation.\n",
+ "\n",
+ "This notebook shows how to save those state variables and use them to configure another Raven simulation. These *states* are configured by the `:HRUStateVariableTable` and `:BasinStateVariables` commands, but `ravenpy` has a convenience function `set_solution` to update those directly from the `solution.rvc` simulation output.\n",
+ "\n",
+ "In the following, we run the model on two years then save the final states. Next, we use those final states to configure the initial state of a second simulation over the next two years. If everything is done correctly, these two series should be identical to a simulation over the full four years.\n",
+ "\n",
+ "## Model configuration\n",
+ "\n",
+ "At this point the following blocks of code should be quite familiar! If not, please go back to notebook \"04 - Emulating hydrological models\" to understand what is happening.\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Import packages\n",
+ "import datetime as dt\n",
+ "import warnings\n",
+ "\n",
+ "from matplotlib import pyplot as plt\n",
+ "\n",
+ "from ravenpy import Emulator, RavenWarning\n",
+ "from ravenpy.config import commands as rc\n",
+ "\n",
+ "# Import the GR4JCN model\n",
+ "from ravenpy.config.emulators import GR4JCN\n",
+ "from ravenpy.utilities.testdata import get_file"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Start and end date for full simulation\n",
+ "# Make sure the end date is before the end of the hydrometeorological data NetCDF file.\n",
+ "start_date = dt.datetime(1986, 1, 1)\n",
+ "end_date = dt.datetime(1988, 1, 1)\n",
+ "\n",
+ "# Define HRU\n",
+ "hru = dict(\n",
+ " area=4250.6,\n",
+ " elevation=843.0,\n",
+ " latitude=54.4848,\n",
+ " longitude=-123.3659,\n",
+ " hru_type=\"land\",\n",
+ ")\n",
+ "\n",
+ "# Get dataset:\n",
+ "ERA5_full = get_file(\"notebook_inputs/ERA5_weather_data.nc\")\n",
+ "\n",
+ "# Set alternative names for netCDF variables\n",
+ "alt_names = {\n",
+ " \"TEMP_MIN\": \"tmin\",\n",
+ " \"TEMP_MAX\": \"tmax\",\n",
+ " \"PRECIP\": \"pr\",\n",
+ "}\n",
+ "\n",
+ "# Data types to extract from netCDF\n",
+ "data_type = [\"TEMP_MAX\", \"TEMP_MIN\", \"PRECIP\"]\n",
+ "data_kwds = {\n",
+ " \"ALL\": {\n",
+ " \"elevation\": hru[\"elevation\"],\n",
+ " \"latitude\": hru[\"latitude\"],\n",
+ " \"longitude\": hru[\"longitude\"],\n",
+ " }\n",
+ "}\n",
+ "\n",
+ "# Model configuration\n",
+ "config = GR4JCN(\n",
+ " params=[0.529, -3.396, 407.29, 1.072, 16.9, 0.947],\n",
+ " Gauge=[\n",
+ " rc.Gauge.from_nc(\n",
+ " ERA5_full,\n",
+ " data_type=data_type,\n",
+ " alt_names=alt_names,\n",
+ " data_kwds=data_kwds,\n",
+ " )\n",
+ " ],\n",
+ " HRUs=[hru],\n",
+ " StartDate=start_date,\n",
+ " EndDate=end_date,\n",
+ " RunName=\"full\",\n",
+ ")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Silence the Raven warnings\n",
+ "warnings.simplefilter(\"ignore\", category=RavenWarning)\n",
+ "\n",
+ "# Run the model and get the outputs.\n",
+ "out1 = Emulator(config=config).run()\n",
+ "\n",
+ "# Plot the model output\n",
+ "out1.hydrograph.q_sim.plot(label=\"Part 1\")\n",
+ "plt.legend()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Now let's run the model for the next two years, setting the initial conditions to the final states of the first simulation.\n",
+ "\n",
+ "The path to the `solution.rvc` file can be found in `out1.files[\"solution\"]`.\n",
+ "The content itself can be displayed with `out1.solution`"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# The path to the solution (final model states)\n",
+ "hotstart = out1.files[\"solution\"]\n",
+ "\n",
+ "# Configure and run the model, this time with the next two years first 3 years (1988-1990).\n",
+ "conf2 = config.set_solution(hotstart)\n",
+ "conf2.start_date = dt.datetime(1988, 1, 1)\n",
+ "conf2.end_date = dt.datetime(1990, 1, 1)\n",
+ "conf2.run_name = \"part_2\"\n",
+ "\n",
+ "out2 = Emulator(config=conf2).run()\n",
+ "\n",
+ "# Plot the model output\n",
+ "out2.hydrograph.q_sim.plot(label=\"Part 2\")\n",
+ "plt.legend()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Compare with simulation over entire period\n",
+ "\n",
+ "Now in theory, those two simulations should be identical to one simulation over the whole period of four years, let's confirm this."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "full = config.copy()\n",
+ "full.end_date = dt.datetime(1990, 1, 1)\n",
+ "full.run_name = \"full\"\n",
+ "\n",
+ "out = Emulator(config=full).run(overwrite=True)\n",
+ "\n",
+ "out.hydrograph.q_sim.plot(label=\"Full\", color=\"gray\", lw=4)\n",
+ "out1.hydrograph.q_sim.plot(\n",
+ " label=\"Part 1\",\n",
+ " color=\"blue\",\n",
+ " lw=0.5,\n",
+ ")\n",
+ "out2.hydrograph.q_sim.plot(label=\"Part 2\", color=\"orange\", lw=0.5)\n",
+ "plt.legend()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "And now if we look at the difference between both hydrographs, we can see that there are differences in the second part at machine precision levels, due to rounding in the hotstart file (note that the y-axis is 1e-6, which is essentially 0!). But the rest is perfect!\n",
+ "\n",
+ "Therefore, we can provide forecasting abilities by saving simulation final states and using those to initialize model states for the forecasting runs. This will be used in other notebooks such as notebook #12 on hindcasting."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import numpy as np\n",
+ "\n",
+ "delta1 = np.abs(out1.hydrograph.q_sim - out.hydrograph.q_sim)\n",
+ "delta2 = np.abs(out2.hydrograph.q_sim - out.hydrograph.q_sim)\n",
+ "\n",
+ "delta1.plot(label=\"Part 1\")\n",
+ "delta2.plot(label=\"Part 2\")\n",
+ "plt.title(\"Difference between two parts and full simulation\")"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3 (ipykernel)",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.10.9"
+ }
},
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Create a hotstart file to resume a simulation from given hydrological conditions\n",
- "\n",
- "Hydrological models have state variables that describe the snow pack, soil moisture, underground reservoirs, etc. Typically, those cannot be measured empirically, so one way to estimate those values is to run the model for a period before the period we are actually interested in, and save the state variables at the end of this *warm-up* simulation.\n",
- "\n",
- "This notebook shows how to save those state variables and use them to configure another Raven simulation. These *states* are configured by the `:HRUStateVariableTable` and `:BasinStateVariables` commands, but `ravenpy` has a convenience function `set_solution` to update those directly from the `solution.rvc` simulation output.\n",
- "\n",
- "In the following, we run the model on two years then save the final states. Next, we use those final states to configure the initial state of a second simulation over the next two years. If everything is done correctly, these two series should be identical to a simulation over the full four years.\n",
- "\n",
- "## Model configuration\n",
- "\n",
- "At this point the following blocks of code should be quite familiar! If not, please go back to notebook \"04 - Emulating hydrological models\" to understand what is happening.\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "# Import packages\n",
- "import datetime as dt\n",
- "import warnings\n",
- "\n",
- "from matplotlib import pyplot as plt\n",
- "\n",
- "from ravenpy import Emulator, RavenWarning\n",
- "from ravenpy.config import commands as rc\n",
- "\n",
- "# Import the GR4JCN model\n",
- "from ravenpy.config.emulators import GR4JCN\n",
- "from ravenpy.utilities.testdata import get_file"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "# Start and end date for full simulation\n",
- "# Make sure the end date is before the end of the hydrometeorological data NetCDF file.\n",
- "start_date = dt.datetime(1986, 1, 1)\n",
- "end_date = dt.datetime(1988, 1, 1)\n",
- "\n",
- "# Define HRU\n",
- "hru = dict(\n",
- " area=4250.6,\n",
- " elevation=843.0,\n",
- " latitude=54.4848,\n",
- " longitude=-123.3659,\n",
- " hru_type=\"land\",\n",
- ")\n",
- "\n",
- "# Get dataset:\n",
- "ERA5_full = get_file(\"notebook_inputs/ERA5_weather_data.nc\")\n",
- "\n",
- "# Set alternative names for netCDF variables\n",
- "alt_names = {\n",
- " \"TEMP_MIN\": \"tmin\",\n",
- " \"TEMP_MAX\": \"tmax\",\n",
- " \"PRECIP\": \"pr\",\n",
- "}\n",
- "\n",
- "# Data types to extract from netCDF\n",
- "data_type = [\"TEMP_MAX\", \"TEMP_MIN\", \"PRECIP\"]\n",
- "data_kwds = {\n",
- " \"ALL\": {\n",
- " \"elevation\": hru[\"elevation\"],\n",
- " \"latitude\": hru[\"latitude\"],\n",
- " \"longitude\": hru[\"longitude\"],\n",
- " }\n",
- "}\n",
- "\n",
- "# Model configuration\n",
- "config = GR4JCN(\n",
- " params=[0.529, -3.396, 407.29, 1.072, 16.9, 0.947],\n",
- " Gauge=[\n",
- " rc.Gauge.from_nc(\n",
- " ERA5_full,\n",
- " data_type=data_type,\n",
- " alt_names=alt_names,\n",
- " data_kwds=data_kwds,\n",
- " )\n",
- " ],\n",
- " HRUs=[hru],\n",
- " StartDate=start_date,\n",
- " EndDate=end_date,\n",
- " RunName=\"full\",\n",
- ")"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "# Silence the Raven warnings\n",
- "warnings.simplefilter(\"ignore\", category=RavenWarning)\n",
- "\n",
- "# Run the model and get the outputs.\n",
- "out1 = Emulator(config=config).run()\n",
- "\n",
- "# Plot the model output\n",
- "out1.hydrograph.q_sim.plot(label=\"Part 1\")\n",
- "plt.legend()"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "### Now let's run the model for the next two years, setting the initial conditions to the final states of the first simulation.\n",
- "\n",
- "The path to the `solution.rvc` file can be found in `out1.files[\"solution\"]`.\n",
- "The content itself can be displayed with `out1.solution`"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "# The path to the solution (final model states)\n",
- "hotstart = out1.files[\"solution\"]\n",
- "\n",
- "# Configure and run the model, this time with the next two years first 3 years (1988-1990).\n",
- "conf2 = config.set_solution(hotstart)\n",
- "conf2.start_date = dt.datetime(1988, 1, 1)\n",
- "conf2.end_date = dt.datetime(1990, 1, 1)\n",
- "conf2.run_name = \"part_2\"\n",
- "\n",
- "out2 = Emulator(config=conf2).run()\n",
- "\n",
- "# Plot the model output\n",
- "out2.hydrograph.q_sim.plot(label=\"Part 2\")\n",
- "plt.legend()"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Compare with simulation over entire period\n",
- "\n",
- "Now in theory, those two simulations should be identical to one simulation over the whole period of four years, let's confirm this."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "full = config.copy()\n",
- "full.end_date = dt.datetime(1990, 1, 1)\n",
- "full.run_name = \"full\"\n",
- "\n",
- "out = Emulator(config=full).run(overwrite=True)\n",
- "\n",
- "out.hydrograph.q_sim.plot(label=\"Full\", color=\"gray\", lw=4)\n",
- "out1.hydrograph.q_sim.plot(\n",
- " label=\"Part 1\",\n",
- " color=\"blue\",\n",
- " lw=0.5,\n",
- ")\n",
- "out2.hydrograph.q_sim.plot(label=\"Part 2\", color=\"orange\", lw=0.5)\n",
- "plt.legend()"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "And now if we look at the difference between both hydrographs, we can see that there are differences in the second part at machine precision levels, due to rounding in the hotstart file (note that the y-axis is 1e-6, which is essentially 0!). But the rest is perfect!\n",
- "\n",
- "Therefore, we can provide forecasting abilities by saving simulation final states and using those to initialize model states for the forecasting runs. This will be used in other notebooks such as notebook #12 on hindcasting."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "import numpy as np\n",
- "\n",
- "delta1 = np.abs(out1.hydrograph.q_sim - out.hydrograph.q_sim)\n",
- "delta2 = np.abs(out2.hydrograph.q_sim - out.hydrograph.q_sim)\n",
- "\n",
- "delta1.plot(label=\"Part 1\")\n",
- "delta2.plot(label=\"Part 2\")\n",
- "plt.title(\"Difference between two parts and full simulation\")"
- ]
- }
- ],
- "metadata": {
- "kernelspec": {
- "display_name": "Python 3 (ipykernel)",
- "language": "python",
- "name": "python3"
- },
- "language_info": {
- "codemirror_mode": {
- "name": "ipython",
- "version": 3
- },
- "file_extension": ".py",
- "mimetype": "text/x-python",
- "name": "python",
- "nbconvert_exporter": "python",
- "pygments_lexer": "ipython3",
- "version": "3.10.9"
- }
- },
- "nbformat": 4,
- "nbformat_minor": 4
+ "nbformat": 4,
+ "nbformat_minor": 4
}
diff --git a/docs/notebooks/08_Getting_and_bias_correcting_CMIP6_data.ipynb b/docs/notebooks/08_Getting_and_bias_correcting_CMIP6_data.ipynb
index aa8e7332..eb5e303a 100644
--- a/docs/notebooks/08_Getting_and_bias_correcting_CMIP6_data.ipynb
+++ b/docs/notebooks/08_Getting_and_bias_correcting_CMIP6_data.ipynb
@@ -1,2418 +1,2418 @@
{
- "cells": [
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "# 08 - Getting and bias-correcting CMIP6 climate data"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Applying bias correction on climate model data to perform climate change impact studies on hydrology\n",
- "\n",
- "This notebook will guide you on how to conduct bias correction of climate model outputs that will be fed as inputs to the hydrological model `Raven` to perform climate change impact studies on hydrology.\n",
- "\n",
- "## Geographic data\n",
- "In this tutorial, we will be using the shapefile or GeoJSON file for watershed contours as generated in previous notebooks. The file can be uploaded to your workspace here and used directly in the cells below. In this notebook, we present a quick demonstration of the bias-correction approach on a small and predetermined dataset, but you can use your own basin according to your needs."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 1,
- "metadata": {
- "tags": []
- },
- "outputs": [],
- "source": [
- "import warnings\n",
- "\n",
- "from numba.core.errors import NumbaDeprecationWarning\n",
- "\n",
- "warnings.simplefilter(\"ignore\", category=NumbaDeprecationWarning)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 2,
- "metadata": {
- "tags": []
- },
- "outputs": [],
- "source": [
- "import datetime as dt\n",
- "import tempfile\n",
- "from pathlib import Path\n",
- "\n",
- "import gcsfs\n",
- "import intake\n",
- "import numpy as np\n",
- "import xarray as xr\n",
- "import xclim\n",
- "import xclim.sdba as sdba\n",
- "from clisops.core import average, subset\n",
- "\n",
- "from ravenpy.utilities.testdata import get_file\n",
- "\n",
- "tmp = Path(tempfile.mkdtemp())"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Application to a real catchment and test-case.\n",
- "In this notebook, we will perform bias-correction on a real catchment using real data! You can change the input file for the contours, the catchment properties and other such parameters. The previous notebooks show how to extract basin area, latitude, and longitude, so use those to generate the required information if it is not readily available for your catchment.\n",
- "\n",
- "Let's first start by providing some basic information:\n",
- "\n",
- "- basin_contour: The shapefile or geojson of the watershed boundaries (if it is a shapefile, it has to be a zip-file containing the .shp, .shx and .prj files)\n",
- "- reference_start_day: The start day of the reference period\n",
- "- reference_end_day: The end day of the reference period\n",
- "- future_start_day: The start day of the future period\n",
- "- future_end_day: The end day of the future period\n",
- "- climate_model: The name of the climate model. Must be selected from the available list for this notebook. However, if you want to use other data, the bias-correction step will still be applicable if you follow the same logic and formats as shown here.\n",
- "\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 3,
- "metadata": {
- "tags": []
- },
- "outputs": [],
- "source": [
- "# We get the basin contour for testing on a server. You can replace the getfile method by a string containing the path\n",
- "# to your own geojson\n",
- "\n",
- "# Get basin contour\n",
- "basin_contour = get_file(\"notebook_inputs/input.geojson\")\n",
- "\n",
- "reference_start_day = dt.datetime(1980, 12, 31)\n",
- "reference_end_day = dt.datetime(1991, 1, 1)\n",
- "# Notice we are using one day before and one day after the desired period of 1981-01-01 to 1990-12-31.\n",
- "# This is to account for any UTC shifts that might require getting data in a previous or later time.\n",
- "\n",
- "future_start_day = dt.datetime(2080, 12, 31)\n",
- "future_end_day = dt.datetime(2091, 1, 1)\n",
- "# Notice we are using one day before and one day after the desired period of 1981-01-01 to 1990-12-31.\n",
- "# This is to account for any UTC shifts that might require getting data in a previous or later time.\n",
- "\n",
- "\"\"\"\n",
- "Choose a climate model from the list below, which have the daily data required for Raven. Depending on the period required, it is possible that some\n",
- "models will cause errors that need to be adressed specifically using date conversions. In those cases, please select another model or adjust the datetime\n",
- "data to your needs.\n",
- "\n",
- "ACCESS-CM2\n",
- "ACCESS-ESM1-5\n",
- "AWI-CM-1-1-MR\n",
- "BCC-CSM2-MR\n",
- "CESM2-WACCM\n",
- "CMCC-CM2-SR5\n",
- "CMCC-ESM2\n",
- "CanESM5\n",
- "EC-Earth3\n",
- "EC-Earth3-CC\n",
- "EC-Earth3-Veg\n",
- "EC-Earth3-Veg-LR\n",
- "FGOALS-g3\n",
- "GFDL-CM4\n",
- "GFDL-ESM4\n",
- "INM-CM4-8\n",
- "INM-CM5-0\n",
- "IPSL-CM6A-LR\n",
- "KACE-1-0-G\n",
- "KIOST-ESM\n",
- "MIROC6\n",
- "MPI-ESM1-2-HR\n",
- "MPI-ESM1-2-LR\n",
- "MRI-ESM2-0\n",
- "NESM3\n",
- "NorESM2-LM\n",
- "NorESM2-MM\n",
- "\"\"\"\n",
- "\n",
- "climate_model = \"MIROC6\""
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Get CMIP6 data from the cloud\n",
- "\n",
- "Accessing and downloading climate data can be a painful and time-consuming endeavour. PAVICS-Hydro provides a method to gather data quickly and efficiently, with as little user-input as possible. We use the PanGEO catalog for cloud climate data, and with a few simple keywords, we can automatically extract the required data from the climate model simulations. Furthermore, we can also automatically subset it to our precise location as defined by the watershed boundaries, and also extract only the time period of interest.\n",
- "\n",
- "Let's start by opening the catalog of available data:\n",
- "\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 4,
- "metadata": {
- "tags": []
- },
- "outputs": [
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# 08 - Getting and bias-correcting CMIP6 climate data"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Applying bias correction on climate model data to perform climate change impact studies on hydrology\n",
+ "\n",
+ "This notebook will guide you on how to conduct bias correction of climate model outputs that will be fed as inputs to the hydrological model `Raven` to perform climate change impact studies on hydrology.\n",
+ "\n",
+ "## Geographic data\n",
+ "In this tutorial, we will be using the shapefile or GeoJSON file for watershed contours as generated in previous notebooks. The file can be uploaded to your workspace here and used directly in the cells below. In this notebook, we present a quick demonstration of the bias-correction approach on a small and predetermined dataset, but you can use your own basin according to your needs."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "import warnings\n",
+ "\n",
+ "from numba.core.errors import NumbaDeprecationWarning\n",
+ "\n",
+ "warnings.simplefilter(\"ignore\", category=NumbaDeprecationWarning)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "import datetime as dt\n",
+ "import tempfile\n",
+ "from pathlib import Path\n",
+ "\n",
+ "import gcsfs\n",
+ "import intake\n",
+ "import numpy as np\n",
+ "import xarray as xr\n",
+ "import xclim\n",
+ "import xclim.sdba as sdba\n",
+ "from clisops.core import average, subset\n",
+ "\n",
+ "from ravenpy.utilities.testdata import get_file\n",
+ "\n",
+ "tmp = Path(tempfile.mkdtemp())"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Application to a real catchment and test-case.\n",
+ "In this notebook, we will perform bias-correction on a real catchment using real data! You can change the input file for the contours, the catchment properties and other such parameters. The previous notebooks show how to extract basin area, latitude, and longitude, so use those to generate the required information if it is not readily available for your catchment.\n",
+ "\n",
+ "Let's first start by providing some basic information:\n",
+ "\n",
+ "- basin_contour: The shapefile or geojson of the watershed boundaries (if it is a shapefile, it has to be a zip-file containing the .shp, .shx and .prj files)\n",
+ "- reference_start_day: The start day of the reference period\n",
+ "- reference_end_day: The end day of the reference period\n",
+ "- future_start_day: The start day of the future period\n",
+ "- future_end_day: The end day of the future period\n",
+ "- climate_model: The name of the climate model. Must be selected from the available list for this notebook. However, if you want to use other data, the bias-correction step will still be applicable if you follow the same logic and formats as shown here.\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "# We get the basin contour for testing on a server. You can replace the getfile method by a string containing the path\n",
+ "# to your own geojson\n",
+ "\n",
+ "# Get basin contour\n",
+ "basin_contour = get_file(\"notebook_inputs/input.geojson\")\n",
+ "\n",
+ "reference_start_day = dt.datetime(1980, 12, 31)\n",
+ "reference_end_day = dt.datetime(1991, 1, 1)\n",
+ "# Notice we are using one day before and one day after the desired period of 1981-01-01 to 1990-12-31.\n",
+ "# This is to account for any UTC shifts that might require getting data in a previous or later time.\n",
+ "\n",
+ "future_start_day = dt.datetime(2080, 12, 31)\n",
+ "future_end_day = dt.datetime(2091, 1, 1)\n",
+ "# Notice we are using one day before and one day after the desired period of 1981-01-01 to 1990-12-31.\n",
+ "# This is to account for any UTC shifts that might require getting data in a previous or later time.\n",
+ "\n",
+ "\"\"\"\n",
+ "Choose a climate model from the list below, which have the daily data required for Raven. Depending on the period required, it is possible that some\n",
+ "models will cause errors that need to be adressed specifically using date conversions. In those cases, please select another model or adjust the datetime\n",
+ "data to your needs.\n",
+ "\n",
+ "ACCESS-CM2\n",
+ "ACCESS-ESM1-5\n",
+ "AWI-CM-1-1-MR\n",
+ "BCC-CSM2-MR\n",
+ "CESM2-WACCM\n",
+ "CMCC-CM2-SR5\n",
+ "CMCC-ESM2\n",
+ "CanESM5\n",
+ "EC-Earth3\n",
+ "EC-Earth3-CC\n",
+ "EC-Earth3-Veg\n",
+ "EC-Earth3-Veg-LR\n",
+ "FGOALS-g3\n",
+ "GFDL-CM4\n",
+ "GFDL-ESM4\n",
+ "INM-CM4-8\n",
+ "INM-CM5-0\n",
+ "IPSL-CM6A-LR\n",
+ "KACE-1-0-G\n",
+ "KIOST-ESM\n",
+ "MIROC6\n",
+ "MPI-ESM1-2-HR\n",
+ "MPI-ESM1-2-LR\n",
+ "MRI-ESM2-0\n",
+ "NESM3\n",
+ "NorESM2-LM\n",
+ "NorESM2-MM\n",
+ "\"\"\"\n",
+ "\n",
+ "climate_model = \"MIROC6\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Get CMIP6 data from the cloud\n",
+ "\n",
+ "Accessing and downloading climate data can be a painful and time-consuming endeavour. PAVICS-Hydro provides a method to gather data quickly and efficiently, with as little user-input as possible. We use the PanGEO catalog for cloud climate data, and with a few simple keywords, we can automatically extract the required data from the climate model simulations. Furthermore, we can also automatically subset it to our precise location as defined by the watershed boundaries, and also extract only the time period of interest.\n",
+ "\n",
+ "Let's start by opening the catalog of available data:\n",
+ "\n"
+ ]
+ },
{
- "data": {
- "text/html": [
- "
pangeo-cmip6 catalog with 7674 dataset(s) from 514818 asset(s):
pangeo-cmip6 catalog with 7674 dataset(s) from 514818 asset(s):
\n",
+ "\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
unique
\n",
+ "
\n",
+ " \n",
+ " \n",
+ "
\n",
+ "
activity_id
\n",
+ "
18
\n",
+ "
\n",
+ "
\n",
+ "
institution_id
\n",
+ "
36
\n",
+ "
\n",
+ "
\n",
+ "
source_id
\n",
+ "
88
\n",
+ "
\n",
+ "
\n",
+ "
experiment_id
\n",
+ "
170
\n",
+ "
\n",
+ "
\n",
+ "
member_id
\n",
+ "
657
\n",
+ "
\n",
+ "
\n",
+ "
table_id
\n",
+ "
37
\n",
+ "
\n",
+ "
\n",
+ "
variable_id
\n",
+ "
700
\n",
+ "
\n",
+ "
\n",
+ "
grid_label
\n",
+ "
10
\n",
+ "
\n",
+ "
\n",
+ "
zstore
\n",
+ "
514818
\n",
+ "
\n",
+ "
\n",
+ "
dcpp_init_year
\n",
+ "
60
\n",
+ "
\n",
+ "
\n",
+ "
version
\n",
+ "
736
\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
],
- "text/plain": [
- ""
+ "source": [
+ "# Prepare the filesystem that allows reading data. Data is read on the Google Cloud Services, which host a copy of the CMIP6 (and other) data.\n",
+ "fsCMIP = gcsfs.GCSFileSystem(token=\"anon\", access=\"read_only\")\n",
+ "\n",
+ "# Get the catalog info from the pangeo dataset, which basically is a list of links to the various products.\n",
+ "col = intake.open_esm_datastore(\n",
+ " \"https://storage.googleapis.com/cmip6/pangeo-cmip6.json\"\n",
+ ")\n",
+ "\n",
+ "# Print the contents of the catalog, so we can see the classification system\n",
+ "display(col)"
]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "# Prepare the filesystem that allows reading data. Data is read on the Google Cloud Services, which host a copy of the CMIP6 (and other) data.\n",
- "fsCMIP = gcsfs.GCSFileSystem(token=\"anon\", access=\"read_only\")\n",
- "\n",
- "# Get the catalog info from the pangeo dataset, which basically is a list of links to the various products.\n",
- "col = intake.open_esm_datastore(\n",
- " \"https://storage.googleapis.com/cmip6/pangeo-cmip6.json\"\n",
- ")\n",
- "\n",
- "# Print the contents of the catalog, so we can see the classification system\n",
- "display(col)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "We can see that there are a lot of climate models (source_id), experiments, members, and other classifications. Let's see the list of available models, for example (source_id):"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 5,
- "metadata": {
- "tags": []
- },
- "outputs": [
+ },
{
- "data": {
- "text/plain": [
- "['CMCC-CM2-HR4',\n",
- " 'EC-Earth3P-HR',\n",
- " 'HadGEM3-GC31-MM',\n",
- " 'HadGEM3-GC31-HM',\n",
- " 'HadGEM3-GC31-LM',\n",
- " 'EC-Earth3P',\n",
- " 'ECMWF-IFS-HR',\n",
- " 'ECMWF-IFS-LR',\n",
- " 'HadGEM3-GC31-LL',\n",
- " 'CMCC-CM2-VHR4',\n",
- " 'GFDL-CM4',\n",
- " 'GFDL-AM4',\n",
- " 'IPSL-CM6A-LR',\n",
- " 'E3SM-1-0',\n",
- " 'CNRM-CM6-1',\n",
- " 'GFDL-ESM4',\n",
- " 'GFDL-ESM2M',\n",
- " 'GFDL-CM4C192',\n",
- " 'GFDL-OM4p5B',\n",
- " 'GISS-E2-1-G',\n",
- " 'GISS-E2-1-H',\n",
- " 'CNRM-ESM2-1',\n",
- " 'BCC-CSM2-MR',\n",
- " 'BCC-ESM1',\n",
- " 'MIROC6',\n",
- " 'AWI-CM-1-1-MR',\n",
- " 'EC-Earth3-LR',\n",
- " 'IPSL-CM6A-ATM-HR',\n",
- " 'CESM2',\n",
- " 'CESM2-WACCM',\n",
- " 'CNRM-CM6-1-HR',\n",
- " 'MRI-ESM2-0',\n",
- " 'SAM0-UNICON',\n",
- " 'GISS-E2-1-G-CC',\n",
- " 'UKESM1-0-LL',\n",
- " 'EC-Earth3',\n",
- " 'EC-Earth3-Veg',\n",
- " 'FGOALS-f3-L',\n",
- " 'CanESM5',\n",
- " 'CanESM5-CanOE',\n",
- " 'INM-CM4-8',\n",
- " 'INM-CM5-0',\n",
- " 'NESM3',\n",
- " 'MPI-ESM-1-2-HAM',\n",
- " 'CAMS-CSM1-0',\n",
- " 'MPI-ESM1-2-LR',\n",
- " 'MPI-ESM1-2-HR',\n",
- " 'MRI-AGCM3-2-H',\n",
- " 'MRI-AGCM3-2-S',\n",
- " 'MCM-UA-1-0',\n",
- " 'INM-CM5-H',\n",
- " 'KACE-1-0-G',\n",
- " 'NorESM2-LM',\n",
- " 'FGOALS-f3-H',\n",
- " 'FGOALS-g3',\n",
- " 'MIROC-ES2L',\n",
- " 'FIO-ESM-2-0',\n",
- " 'NorCPM1',\n",
- " 'NorESM1-F',\n",
- " 'MPI-ESM1-2-XR',\n",
- " 'CESM1-1-CAM5-CMIP5',\n",
- " 'E3SM-1-1',\n",
- " 'KIOST-ESM',\n",
- " 'ACCESS-CM2',\n",
- " 'NorESM2-MM',\n",
- " 'ACCESS-ESM1-5',\n",
- " 'IITM-ESM',\n",
- " 'GISS-E2-2-G',\n",
- " 'CESM2-FV2',\n",
- " 'GISS-E2-2-H',\n",
- " 'CESM2-WACCM-FV2',\n",
- " 'CIESM',\n",
- " 'E3SM-1-1-ECA',\n",
- " 'TaiESM1',\n",
- " 'AWI-ESM-1-1-LR',\n",
- " 'EC-Earth3-Veg-LR',\n",
- " 'CMCC-ESM2',\n",
- " 'CMCC-CM2-SR5',\n",
- " 'EC-Earth3-AerChem',\n",
- " 'IPSL-CM6A-LR-INCA',\n",
- " 'IPSL-CM5A2-INCA',\n",
- " 'BCC-CSM2-HR',\n",
- " 'EC-Earth3P-VHR',\n",
- " 'CESM1-WACCM-SC',\n",
- " 'CAS-ESM2-0',\n",
- " 'EC-Earth3-CC',\n",
- " 'MIROC-ES2H',\n",
- " 'ICON-ESM-LR']"
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "We can see that there are a lot of climate models (source_id), experiments, members, and other classifications. Let's see the list of available models, for example (source_id):"
]
- },
- "execution_count": 5,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "# Get the list of models. Replace \"source_id\" with any of the catalog categories (table_id, activity_id, variable_id, etc.)\n",
- "list(col.df.source_id.unique())"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "For this notebook, we will work with MIROC6, but you can use any other model from the list established previously.\n",
- "\n",
- "Now, we can be more selective about what we want to get from the CMIP6 project data:\n",
- "\n",
- "- source_id: The climate model, in this case 'MIROC6'\n",
- "- experiment_id: The forcing scenario. Here we will use 'historical' (for the historical period) and for future data we could use any of the SSP simulations, such as 'ssp585' or 'ssp245'.\n",
- "- table_id: The timestep of the model simulation. Here we will use 'day' for daily data, but some models have monthly and 3-hourly data, for example.\n",
- "- variable_id: The codename for the variable of interest. Here we will want 'tasmin', 'tasmax', and 'pr' for minimum temperature, maximum temperature and total precipitation, respectively.\n",
- "- member_id: The code identifying the model member. Some models are run multiple times with varying initial conditions to represent natural variability. Here we will only focus on the first member 'r1i1p1f1'.\n",
- "\n",
- "You can find more information about available data on the CMIP6 project webpage and [data nodes] (https://esgf-node.llnl.gov/projects/cmip6/).\n",
- "\n",
- "Let's now see what the PanGEO catalog returns when we ask to filter according to all of these criteria:\n",
- "\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 6,
- "metadata": {
- "tags": []
- },
- "outputs": [
+ },
{
- "data": {
- "text/html": [
- "
\n",
- "\n",
- "
\n",
- " \n",
- "
\n",
- "
\n",
- "
activity_id
\n",
- "
institution_id
\n",
- "
source_id
\n",
- "
experiment_id
\n",
- "
member_id
\n",
- "
table_id
\n",
- "
variable_id
\n",
- "
grid_label
\n",
- "
zstore
\n",
- "
dcpp_init_year
\n",
- "
version
\n",
- "
\n",
- " \n",
- " \n",
- "
\n",
- "
0
\n",
- "
CMIP
\n",
- "
MIROC
\n",
- "
MIROC6
\n",
- "
historical
\n",
- "
r1i1p1f1
\n",
- "
day
\n",
- "
tasmin
\n",
- "
gn
\n",
- "
gs://cmip6/CMIP6/CMIP/MIROC/MIROC6/historical/...
\n",
- "
NaN
\n",
- "
20191016
\n",
- "
\n",
- " \n",
- "
\n",
- "
"
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "['CMCC-CM2-HR4',\n",
+ " 'EC-Earth3P-HR',\n",
+ " 'HadGEM3-GC31-MM',\n",
+ " 'HadGEM3-GC31-HM',\n",
+ " 'HadGEM3-GC31-LM',\n",
+ " 'EC-Earth3P',\n",
+ " 'ECMWF-IFS-HR',\n",
+ " 'ECMWF-IFS-LR',\n",
+ " 'HadGEM3-GC31-LL',\n",
+ " 'CMCC-CM2-VHR4',\n",
+ " 'GFDL-CM4',\n",
+ " 'GFDL-AM4',\n",
+ " 'IPSL-CM6A-LR',\n",
+ " 'E3SM-1-0',\n",
+ " 'CNRM-CM6-1',\n",
+ " 'GFDL-ESM4',\n",
+ " 'GFDL-ESM2M',\n",
+ " 'GFDL-CM4C192',\n",
+ " 'GFDL-OM4p5B',\n",
+ " 'GISS-E2-1-G',\n",
+ " 'GISS-E2-1-H',\n",
+ " 'CNRM-ESM2-1',\n",
+ " 'BCC-CSM2-MR',\n",
+ " 'BCC-ESM1',\n",
+ " 'MIROC6',\n",
+ " 'AWI-CM-1-1-MR',\n",
+ " 'EC-Earth3-LR',\n",
+ " 'IPSL-CM6A-ATM-HR',\n",
+ " 'CESM2',\n",
+ " 'CESM2-WACCM',\n",
+ " 'CNRM-CM6-1-HR',\n",
+ " 'MRI-ESM2-0',\n",
+ " 'SAM0-UNICON',\n",
+ " 'GISS-E2-1-G-CC',\n",
+ " 'UKESM1-0-LL',\n",
+ " 'EC-Earth3',\n",
+ " 'EC-Earth3-Veg',\n",
+ " 'FGOALS-f3-L',\n",
+ " 'CanESM5',\n",
+ " 'CanESM5-CanOE',\n",
+ " 'INM-CM4-8',\n",
+ " 'INM-CM5-0',\n",
+ " 'NESM3',\n",
+ " 'MPI-ESM-1-2-HAM',\n",
+ " 'CAMS-CSM1-0',\n",
+ " 'MPI-ESM1-2-LR',\n",
+ " 'MPI-ESM1-2-HR',\n",
+ " 'MRI-AGCM3-2-H',\n",
+ " 'MRI-AGCM3-2-S',\n",
+ " 'MCM-UA-1-0',\n",
+ " 'INM-CM5-H',\n",
+ " 'KACE-1-0-G',\n",
+ " 'NorESM2-LM',\n",
+ " 'FGOALS-f3-H',\n",
+ " 'FGOALS-g3',\n",
+ " 'MIROC-ES2L',\n",
+ " 'FIO-ESM-2-0',\n",
+ " 'NorCPM1',\n",
+ " 'NorESM1-F',\n",
+ " 'MPI-ESM1-2-XR',\n",
+ " 'CESM1-1-CAM5-CMIP5',\n",
+ " 'E3SM-1-1',\n",
+ " 'KIOST-ESM',\n",
+ " 'ACCESS-CM2',\n",
+ " 'NorESM2-MM',\n",
+ " 'ACCESS-ESM1-5',\n",
+ " 'IITM-ESM',\n",
+ " 'GISS-E2-2-G',\n",
+ " 'CESM2-FV2',\n",
+ " 'GISS-E2-2-H',\n",
+ " 'CESM2-WACCM-FV2',\n",
+ " 'CIESM',\n",
+ " 'E3SM-1-1-ECA',\n",
+ " 'TaiESM1',\n",
+ " 'AWI-ESM-1-1-LR',\n",
+ " 'EC-Earth3-Veg-LR',\n",
+ " 'CMCC-ESM2',\n",
+ " 'CMCC-CM2-SR5',\n",
+ " 'EC-Earth3-AerChem',\n",
+ " 'IPSL-CM6A-LR-INCA',\n",
+ " 'IPSL-CM5A2-INCA',\n",
+ " 'BCC-CSM2-HR',\n",
+ " 'EC-Earth3P-VHR',\n",
+ " 'CESM1-WACCM-SC',\n",
+ " 'CAS-ESM2-0',\n",
+ " 'EC-Earth3-CC',\n",
+ " 'MIROC-ES2H',\n",
+ " 'ICON-ESM-LR']"
+ ]
+ },
+ "execution_count": 5,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
],
- "text/plain": [
- " activity_id institution_id source_id experiment_id member_id table_id \\\n",
- "0 CMIP MIROC MIROC6 historical r1i1p1f1 day \n",
- "\n",
- " variable_id grid_label zstore \\\n",
- "0 tasmin gn gs://cmip6/CMIP6/CMIP/MIROC/MIROC6/historical/... \n",
- "\n",
- " dcpp_init_year version \n",
- "0 NaN 20191016 "
+ "source": [
+ "# Get the list of models. Replace \"source_id\" with any of the catalog categories (table_id, activity_id, variable_id, etc.)\n",
+ "list(col.df.source_id.unique())"
]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "# Build a query dictionary for all of our requests, for tasmin.\n",
- "query = dict(\n",
- " experiment_id=\"historical\",\n",
- " table_id=\"day\",\n",
- " variable_id=\"tasmin\",\n",
- " member_id=\"r1i1p1f1\",\n",
- " source_id=climate_model,\n",
- ")\n",
- "col_subset = col.search(\n",
- " require_all_on=[\"source_id\"], **query\n",
- ") # Command that will return the filtered list\n",
- "\n",
- "# Show the filtered list:\n",
- "display(col_subset.df)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "We can see that the list contains only one item: The daily tasmin variable, for the historical period of member r1i1p1f1 from the MIROC6 model, as requested! We can also see the path where that file resides on the \"zstore\", which is where it is stored on the Google Cloud service. We can now get the data:\n",
- "\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 7,
- "metadata": {
- "tags": []
- },
- "outputs": [],
- "source": [
- "# Get the object locator object\n",
- "mapper = fsCMIP.get_mapper(col_subset.df.zstore[0])"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "The final step is to open the dataset with xarray by using the 'open_zarr()' function. The following block performs multiple operations to get the data that we want:\n",
- "\n",
- "- It opens the data using xarray\n",
- "- It extracts only the times that we need for the reference/historical period\n",
- "- It then subsets it spatially by getting only the points within the catchment boundaries. If your catchments is too small and this fails, try with a larger basin or apply a buffer around your boundaries.\n",
- "- Since we are running a lumped model, it take the spatial average.\n",
- "- It will then remove unnecessary coordinates that could cause problems later ('height', in this case)\n",
- "- It will then rechunk the data into a format that makes it much faster to read and process\n",
- "\n",
- "Finally, we will display the output of this entire process.\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 8,
- "metadata": {
- "tags": []
- },
- "outputs": [
+ },
{
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "hwloc/linux: Ignoring PCI device with non-16bit domain.\n",
- "Pass --enable-32bits-pci-domain to configure to support such devices\n",
- "(warning: it would break the library ABI, don't enable unless really needed).\n"
- ]
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "For this notebook, we will work with MIROC6, but you can use any other model from the list established previously.\n",
+ "\n",
+ "Now, we can be more selective about what we want to get from the CMIP6 project data:\n",
+ "\n",
+ "- source_id: The climate model, in this case 'MIROC6'\n",
+ "- experiment_id: The forcing scenario. Here we will use 'historical' (for the historical period) and for future data we could use any of the SSP simulations, such as 'ssp585' or 'ssp245'.\n",
+ "- table_id: The timestep of the model simulation. Here we will use 'day' for daily data, but some models have monthly and 3-hourly data, for example.\n",
+ "- variable_id: The codename for the variable of interest. Here we will want 'tasmin', 'tasmax', and 'pr' for minimum temperature, maximum temperature and total precipitation, respectively.\n",
+ "- member_id: The code identifying the model member. Some models are run multiple times with varying initial conditions to represent natural variability. Here we will only focus on the first member 'r1i1p1f1'.\n",
+ "\n",
+ "You can find more information about available data on the CMIP6 project webpage and [data nodes] (https://esgf-node.llnl.gov/projects/cmip6/).\n",
+ "\n",
+ "Let's now see what the PanGEO catalog returns when we ask to filter according to all of these criteria:\n",
+ "\n"
+ ]
},
{
- "data": {
- "text/html": [
- "
"
+ ],
+ "text/plain": [
+ " activity_id institution_id source_id experiment_id member_id table_id \\\n",
+ "0 CMIP MIROC MIROC6 historical r1i1p1f1 day \n",
+ "\n",
+ " variable_id grid_label zstore \\\n",
+ "0 tasmin gn gs://cmip6/CMIP6/CMIP/MIROC/MIROC6/historical/... \n",
+ "\n",
+ " dcpp_init_year version \n",
+ "0 NaN 20191016 "
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
],
- "text/plain": [
- "\n",
- "dask.array\n",
- "Coordinates: (12/19)\n",
- " * time (time) datetime64[ns] 1980-12-31T12:00:00 ... 1990-12-31T12:00:00\n",
- " lon (geom) float64 dask.array\n",
- " lat (geom) float64 dask.array\n",
- " * geom (geom) int64 0\n",
- " COAST (geom) int64 dask.array\n",
- " DIST_MAIN (geom) float64 dask.array\n",
- " ... ...\n",
- " PFAF_ID (geom) int64 dask.array\n",
- " SIDE (geom) object dask.array\n",
- " SORT (geom) int64 dask.array\n",
- " SUB_AREA (geom) float64 dask.array\n",
- " UP_AREA (geom) float64 dask.array\n",
- " id (geom) object dask.array\n",
- "Attributes:\n",
- " cell_measures: area: areacella\n",
- " cell_methods: area: mean time: minimum\n",
- " comment: minimum near-surface (usually, 2 meter) air temperature (...\n",
- " long_name: Daily Minimum Near-Surface Air Temperature\n",
- " original_name: T2\n",
- " standard_name: air_temperature\n",
- " units: K"
+ "source": [
+ "# Build a query dictionary for all of our requests, for tasmin.\n",
+ "query = dict(\n",
+ " experiment_id=\"historical\",\n",
+ " table_id=\"day\",\n",
+ " variable_id=\"tasmin\",\n",
+ " member_id=\"r1i1p1f1\",\n",
+ " source_id=climate_model,\n",
+ ")\n",
+ "col_subset = col.search(\n",
+ " require_all_on=[\"source_id\"], **query\n",
+ ") # Command that will return the filtered list\n",
+ "\n",
+ "# Show the filtered list:\n",
+ "display(col_subset.df)"
]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "# Get the CMIP6 data from Google Cloud and read it in memory using xarray. This is done via \"lazy loading\" and is not actually reading the data in memory\n",
- "# yet, but is keeping track of what it will need to get, eventually.\n",
- "ds = xr.open_zarr(mapper, consolidated=True)\n",
- "\n",
- "# Convert to numpy.datetime64 object to be compatbile\n",
- "if type(ds.time[0].values) is not type(np.datetime64(\"1980-01-01\")):\n",
- " ds = ds.convert_calendar(\"standard\")\n",
- "\n",
- "# Extract only the dates that we really want. Again, this is done via lazy loading, and is not actually using memory at this point.\n",
- "ds = ds.sel(time=slice(reference_start_day, reference_end_day))\n",
- "\n",
- "# Use the clisops subsetting tools to extract the data for the watershed boundaries and take the spatial average\n",
- "ds = average.average_shape(ds, basin_contour)\n",
- "\n",
- "# Correct the coordinates that are unnecessary for our variable\n",
- "ds = ds.reset_coords(\"height\", drop=True)\n",
- "\n",
- "# Rechunk the data so it is much faster to read (single chunk rather than 1 chunk per day)\n",
- "historical_tasmin = ds[\"tasmin\"].chunk(-1)\n",
- "\n",
- "# Show the end result!\n",
- "display(historical_tasmin)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "We can see that we have a single chunk of 10 years of tasmin data, as expected! However, you might also have noticed that there is no metadata, such as units and variable properties left in the data array. We can fix that by wrapping the code in a block that forces xarray to keep the metadata.\n",
- "\n",
- "Also, since we will need to use this block of code for each variable, it might become tedious. Therefore, to simplify the code, we can combine everything into a function."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 9,
- "metadata": {
- "tags": []
- },
- "outputs": [],
- "source": [
- "def extract_and_average(mapper, start, end, geometry):\n",
- " with xr.set_options(keep_attrs=True):\n",
- " ds = xr.open_zarr(mapper, consolidated=True)\n",
- "\n",
- " # Convert to numpy.datetime64 object to be compatbile\n",
- " if type(ds.time[0].values) is not type(np.datetime64(\"1980-01-01\")):\n",
- " ds = ds.convert_calendar(\"standard\")\n",
- "\n",
- " # Compute average over region\n",
- " out = average.average_shape(ds.sel(time=slice(start, end)), geometry)\n",
- "\n",
- " # Convert geometry variables into attributes\n",
- " attrs = {\n",
- " key: out[key].values.item()\n",
- " for key in out.coords\n",
- " if key not in [\"time\", \"time_bnds\", \"lon\", \"lat\"]\n",
- " }\n",
- " out = out.isel(geom=0).reset_coords(attrs.keys(), drop=True)\n",
- " out.attrs.update(attrs)\n",
- "\n",
- " return out.chunk(-1)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Much better! we have all the information we need. Let's repeat the process for the 3 variables and for the reference and future periods using ssp585. You probably don't have to change anything in this following block of code, but you can taylor it to your needs knowing how everything is built now."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 10,
- "metadata": {
- "tags": []
- },
- "outputs": [
+ },
{
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "historical tasmin\n",
- "historical tasmax\n",
- "historical pr\n",
- "ssp585 tasmin\n",
- "ssp585 tasmax\n",
- "ssp585 pr\n"
- ]
- }
- ],
- "source": [
- "# We will add a wrapper to ensure that the following operations will preserve the original data attributes, such as units and variable names.\n",
- "with xr.set_options(keep_attrs=True):\n",
- " # Load the files from the PanGEO catalogs, for reference and future variables of temperature and precipitation.\n",
- " out = {}\n",
- " for exp in [\"historical\", \"ssp585\"]:\n",
- " if exp == \"historical\":\n",
- " period_start = reference_start_day\n",
- " period_end = reference_end_day\n",
- " else:\n",
- " period_start = future_start_day\n",
- " period_end = future_end_day\n",
- "\n",
- " out[exp] = {}\n",
- " for variable in [\"tasmin\", \"tasmax\", \"pr\"]:\n",
- " print(exp, variable)\n",
- " query = dict(\n",
- " experiment_id=exp,\n",
- " table_id=\"day\",\n",
- " variable_id=variable,\n",
- " member_id=\"r1i1p1f1\",\n",
- " source_id=climate_model,\n",
- " )\n",
- " col_subset = col.search(require_all_on=[\"source_id\"], **query)\n",
- " mapper = fsCMIP.get_mapper(col_subset.df.zstore[0])\n",
- " ds = xr.open_zarr(mapper, consolidated=True)\n",
- "\n",
- " out[exp][variable] = extract_and_average(\n",
- " mapper, period_start, period_end, basin_contour\n",
- " )[variable]\n",
- "\n",
- "# We can now extract the variables that we will need later:\n",
- "historical_tasmax = out[\"historical\"][\"tasmax\"]\n",
- "historical_tasmin = out[\"historical\"][\"tasmin\"]\n",
- "historical_pr = out[\"historical\"][\"pr\"]\n",
- "future_tasmax = out[\"ssp585\"][\"tasmax\"]\n",
- "future_tasmin = out[\"ssp585\"][\"tasmin\"]\n",
- "future_pr = out[\"ssp585\"][\"pr\"]"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {
- "tags": []
- },
- "source": [
- "### Reference data to prepare bias correction\n",
- "We have extracted the historical period and future period data from the GCM. Now we need the reference data to use as the baseline for bias-correction. Here we will use ERA5 and we will gather it again, since we can't be sure that the dates we selected in the 3rd notebook are still valid.\n",
- "\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 11,
- "metadata": {
- "tags": []
- },
- "outputs": [],
- "source": [
- "# Regenerate the ERA5 data to be sure. In an operational context, you could combine everything onto one notebook and ensure that the\n",
- "# dates and locations are constant!\n",
- "\n",
- "# Get the ERA5 data from the Wasabi/Amazon S3 server.\n",
- "catalog_name = \"https://raw.githubusercontent.com/hydrocloudservices/catalogs/main/catalogs/atmosphere.yaml\"\n",
- "cat = intake.open_catalog(catalog_name)\n",
- "ds = cat.era5_reanalysis_single_levels.to_dask()\n",
- "\n",
- "\"\"\"\n",
- "Get the ERA5 data. We will rechunk it to a single chunck to make it compatible with other codes on the platform, especially bias-correction.\n",
- "We are also taking the daily min and max temperatures as well as the daily total precipitation.\n",
- "\"\"\"\n",
- "# We will add a wrapper to ensure that the following operations will preserve the original data attributes, such as units and variable names.\n",
- "with xr.set_options(keep_attrs=True):\n",
- " ERA5_reference = subset.subset_shape(\n",
- " ds.sel(time=slice(reference_start_day, reference_end_day)), basin_contour\n",
- " ).mean({\"latitude\", \"longitude\"})\n",
- " ERA5_tmin = ERA5_reference[\"t2m\"].resample(time=\"1D\").min().chunk(-1, -1, -1)\n",
- " ERA5_tmax = ERA5_reference[\"t2m\"].resample(time=\"1D\").max().chunk(-1, -1, -1)\n",
- " ERA5_pr = ERA5_reference[\"tp\"].resample(time=\"1D\").sum().chunk(-1, -1, -1)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 12,
- "metadata": {
- "tags": []
- },
- "outputs": [
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "We can see that the list contains only one item: The daily tasmin variable, for the historical period of member r1i1p1f1 from the MIROC6 model, as requested! We can also see the path where that file resides on the \"zstore\", which is where it is stored on the Google Cloud service. We can now get the data:\n",
+ "\n"
+ ]
+ },
{
- "data": {
- "text/plain": [
- "[]"
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "# Get the object locator object\n",
+ "mapper = fsCMIP.get_mapper(col_subset.df.zstore[0])"
]
- },
- "execution_count": 12,
- "metadata": {},
- "output_type": "execute_result"
},
{
- "data": {
- "image/png": "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SE9PR58+ffDAAw8gKyvL7fKZmZl48MEH0adPH6Snp+PNN9/EqFGjsGzZMpflGjdujJycHJefiIgINXaJiIiIDCBEy41PmzYNw4YNw/DhwwEACQkJWLVqFWbNmoVJkybVWH727Nlo06YNEhISAACdO3dGamoqpk6dikGDBjmXM5lMaNmypSr7QERERMajWQuQ2WxGWloa+vXr5/J6v379sG3bNrfvSUlJqbF8//79kZqaCovF4nyttLQUbdu2xTXXXIO//e1vSE9PrzOWiooKFBcXu/wQERGR/9IsASooKIDNZkNUVJTL61FRUcjNzXX7ntzcXLfLW61WFBQUAACuv/56LFiwAL/88gsWL16MiIgI3HHHHTh69GitsUyaNAmRkZHOn5iYGB/3joiIiPRM807QJpNrx11BEGq85mn5qq/ffvvt+Oc//4kbb7wRffr0wffff49OnTrhv//9b63rHDduHIqKipw/2dnZ3u4OERERGYBmfYCaN2+O4ODgGq09eXl5NVp5HFq2bOl2+ZCQEDRr1szte4KCgnDLLbfU2QIUHh6O8PBwiXtARERERqVZC1BYWBji4uKwZs0al9fXrFmD3r17u31Pr169aiy/evVq9OzZE6GhoW7fIwgCdu/ejVatWskTOBERERmeprfAxowZgzlz5mDevHnIyMjA6NGjkZWVhfj4eACVt6aeeeYZ5/Lx8fE4deoUxowZg4yMDMybNw9z587Fq6++6lxm/PjxWLVqFU6cOIHdu3dj2LBh2L17t3OdRERERJo+Bj948GCcP38eEyZMQE5ODrp164akpCS0bdsWAJCTk+MyJlBsbCySkpIwevRozJw5E9HR0Zg+fbrLI/CFhYUYMWIEcnNzERkZiZtuugmbNm3Crbfeqvr+ERERkT6ZBEcvYnIqLi5GZGQkioqK0LhxY63D8ajdGysAAPd3bYnZQ+I0joaIiEgbUq7fmj8FRkRERKQ2JkBEREQUcJgAERERUcBhAkREREQBhwmQH6ljAG0iIiKqggkQERERBRwmQH6EAxoQERGJwwSIiIiIAg4TICIiIgo4TICIiIgo4DABIiIiooDDBIiIiIgCDhMgP8JxgIiIiMRhAkREREQBhwkQERERBRwmQERERBRwmAD5EY4ETUREJA4TICIiIgo4TICIiIgo4DABIiIiooDDBMiPcBwgIiIicZgA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9asUv2O9VeNzlGH1/asaV1hIzeOqevLjWN6xbpPJdZ+rn4uO0KuXmbt9CgoyucTnOEaAusu1av1cPcmvfsxUPTaq1mtX6sMgl3ir/92h6n464oysX/W8qFkHA6YaiUZtdanaNLsFFhYWhri4OKxZs8bl9TVr1qB3795u39OrV68ay69evRo9e/ZEaGhoncvUtk4iIiIKPJq1AAHAmDFjMGTIEPTs2RO9evXCl19+iaysLMTHxwMAxo0bhzNnzmDhwoUAKp/4mjFjBsaMGYPnn38eKSkpmDt3rsvTXS+//DL+8pe/YPLkyXjkkUfw888/Y+3atdiyZYsm+0hERET6o2kCNHjwYJw/fx4TJkxATk4OunXrhqSkJLRt2xYAkJOT4zImUGxsLJKSkjB69GjMnDkT0dHRmD59OgYNGuRcpnfv3liyZAnefvttvPPOO7j22muxdOlS3HbbbarvHxEREemTpuMA6ZVS4wARERGRcgwxDhARERGRVpgAERERUcBhAkREREQBhwkQERERBRwmQERERBRwmAARERFRwGECRERERAGHCRAREREFHCZAREREFHA0nQpDrxyDYxcXF2scCREREYnluG6LmeSCCZAbJSUlAICYmBiNIyEiIiKpSkpKEBkZWecynAvMDbvdjrNnz6JRo0YwmUxah6O54uJixMTEIDs7m3OjKYjlrA6WszpYzuphWV8hCAJKSkoQHR2NoKC6e/mwBciNoKAgXHPNNVqHoTuNGzcO+JNLDSxndbCc1cFyVg/LupKnlh8HdoImIiKigMMEiIiIiAIOEyDyKDw8HO+99x7Cw8O1DsWvsZzVwXJWB8tZPSxr77ATNBEREQUctgARERFRwGECRERERAGHCRAREREFHCZAREREFHCYABEREVHAYQJEREREAYcJEJEKysvLtQ4hYJw+fRo5OTkAxM0ITd6xWq3O31nO6mA5y4sJUICyWCyYP38+fvzxRxw6dEjrcPySIAgQBAEvvfQSHnroIVy4cEHrkPyaxWLB//3f/6F379745ptvAICTGSvAbDbjjTfewMiRI/Hee+/h0qVLLGcFmM1mTJ48GTNmzEBycjIAHs9yYwIUgL744gtERUVh3rx5eOWVVzBo0CB8//33AAC73a5xdP7DZDKhsLAQP/zwAzZs2OAsY5JfdnY27rjjDuzbtw//+9//8OSTTzoT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",
- "text/plain": [
- "
"
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "The final step is to open the dataset with xarray by using the 'open_zarr()' function. The following block performs multiple operations to get the data that we want:\n",
+ "\n",
+ "- It opens the data using xarray\n",
+ "- It extracts only the times that we need for the reference/historical period\n",
+ "- It then subsets it spatially by getting only the points within the catchment boundaries. If your catchments is too small and this fails, try with a larger basin or apply a buffer around your boundaries.\n",
+ "- Since we are running a lumped model, it take the spatial average.\n",
+ "- It will then remove unnecessary coordinates that could cause problems later ('height', in this case)\n",
+ "- It will then rechunk the data into a format that makes it much faster to read and process\n",
+ "\n",
+ "Finally, we will display the output of this entire process.\n"
]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "ERA5_pr.plot()"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 13,
- "metadata": {
- "tags": []
- },
- "outputs": [],
- "source": [
- "# Here we need to make sure that our units are all in the correct format. You can play around with the tools we've seen thus far to explore the units\n",
- "# and make sure everything is consistent.\n",
- "\n",
- "# Let's start with precipitation:\n",
- "ERA5_pr = xclim.core.units.convert_units_to(ERA5_pr, \"mm\", context=\"hydro\")\n",
- "# The CMIP data is a rate rather than an absolute value, so let's get the absolute values:\n",
- "historical_pr = xclim.core.units.rate2amount(historical_pr)\n",
- "future_pr = xclim.core.units.rate2amount(future_pr)\n",
- "\n",
- "# Now we can actually convert units in absolute terms.\n",
- "historical_pr = xclim.core.units.convert_units_to(historical_pr, \"mm\", context=\"hydro\")\n",
- "future_pr = xclim.core.units.convert_units_to(future_pr, \"mm\", context=\"hydro\")\n",
- "\n",
- "# Now let's do temperature:\n",
- "ERA5_tmin = xclim.core.units.convert_units_to(ERA5_tmin, \"degC\")\n",
- "ERA5_tmax = xclim.core.units.convert_units_to(ERA5_tmax, \"degC\")\n",
- "historical_tasmin = xclim.core.units.convert_units_to(historical_tasmin, \"degC\")\n",
- "historical_tasmax = xclim.core.units.convert_units_to(historical_tasmax, \"degC\")\n",
- "future_tasmin = xclim.core.units.convert_units_to(future_tasmin, \"degC\")\n",
- "future_tasmax = xclim.core.units.convert_units_to(future_tasmax, \"degC\")"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "The model is now going to be trained to find correction factors between the reference dataset (observations) and historical dataset (climate model outputs for the same time period). The correction factors obtained are then applied to both reference and future climate outputs to correct them. This step is called the bias correction. In this test-case, we apply a method named `detrended quantile mapping`.\n",
- "\n",
- "Here we use the `xclim` utilities to bias-correct CMIP6 GCM data using ERA5 reanalysis data as the reference. See `xclim` documentation for more options! (https://xclim.readthedocs.io/en/stable/notebooks/sdba.html)\n",
- "\n",
- "> **Warning**\n",
- "> This following block of code will take a while to run, and some warning messages will appear during the process (related to longitude wrapping and other information on calendar types). Unless an error message appears, the code should run just fine!"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 14,
- "metadata": {
- "tags": []
- },
- "outputs": [
+ },
{
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "/opt/conda/envs/birdy/lib/python3.9/site-packages/xclim/sdba/adjustment.py:117: UserWarning: Strange results could be returned when using dayofyear grouping on data defined in the proleptic_gregorian calendar \n",
- " warn(\n",
- "/opt/conda/envs/birdy/lib/python3.9/site-packages/xclim/sdba/adjustment.py:117: UserWarning: Strange results could be returned when using dayofyear grouping on data defined in the proleptic_gregorian calendar \n",
- " warn(\n",
- "/opt/conda/envs/birdy/lib/python3.9/site-packages/xclim/sdba/adjustment.py:117: UserWarning: Strange results could be returned when using dayofyear grouping on data defined in the proleptic_gregorian calendar \n",
- " warn(\n",
- "/opt/conda/envs/birdy/lib/python3.9/site-packages/xclim/sdba/adjustment.py:117: UserWarning: Strange results could be returned when using dayofyear grouping on data defined in the proleptic_gregorian calendar \n",
- " warn(\n",
- "/opt/conda/envs/birdy/lib/python3.9/site-packages/xclim/sdba/adjustment.py:117: UserWarning: Strange results could be returned when using dayofyear grouping on data defined in the proleptic_gregorian calendar \n",
- " warn(\n"
- ]
- }
- ],
- "source": [
- "# Use xclim utilities (sbda) to give information on the type of window used for the bias correction.\n",
- "group_month_window = sdba.utils.Grouper(\"time.dayofyear\", window=15)\n",
- "\n",
- "# This is an adjusting function. It builds the tool that will perform the corrections.\n",
- "Adjustment = sdba.DetrendedQuantileMapping.train(\n",
- " ref=ERA5_pr, hist=historical_pr, nquantiles=50, kind=\"+\", group=group_month_window\n",
- ")\n",
- "\n",
- "# Apply the correction factors on the reference period\n",
- "corrected_ref_precip = Adjustment.adjust(historical_pr, interp=\"linear\")\n",
- "\n",
- "# Apply the correction factors on the future period\n",
- "corrected_fut_precip = Adjustment.adjust(future_pr, interp=\"linear\")\n",
- "\n",
- "# Ensure that the precipitation is non-negative, which can happen with some climate models\n",
- "corrected_ref_precip = corrected_ref_precip.where(corrected_ref_precip > 0, 0)\n",
- "corrected_fut_precip = corrected_fut_precip.where(corrected_fut_precip > 0, 0)\n",
- "\n",
- "# Train the model to find the correction factors for the maximum temperature (tasmax) data\n",
- "Adjustment = sdba.DetrendedQuantileMapping.train(\n",
- " ref=ERA5_tmax,\n",
- " hist=historical_tasmax,\n",
- " nquantiles=50,\n",
- " kind=\"+\",\n",
- " group=group_month_window,\n",
- ")\n",
- "\n",
- "# Apply the correction factors on the reference period\n",
- "corrected_ref_tasmax = Adjustment.adjust(historical_tasmax, interp=\"linear\")\n",
- "\n",
- "# Apply the correction factors on the future period\n",
- "corrected_fut_tasmax = Adjustment.adjust(future_tasmax, interp=\"linear\")\n",
- "\n",
- "# Train the model to find the correction factors for the minimum temperature (tasmin) data\n",
- "Adjustment = sdba.DetrendedQuantileMapping.train(\n",
- " ref=ERA5_tmin,\n",
- " hist=historical_tasmin,\n",
- " nquantiles=50,\n",
- " kind=\"+\",\n",
- " group=group_month_window,\n",
- ")\n",
- "\n",
- "# Apply the correction factors on the reference period\n",
- "corrected_ref_tasmin = Adjustment.adjust(historical_tasmin, interp=\"linear\")\n",
- "\n",
- "# Apply the correction factors on the future period\n",
- "corrected_fut_tasmin = Adjustment.adjust(future_tasmin, interp=\"linear\")"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "The corrected reference and future data are then converted to netCDF files. This will take a while to run (perhaps a minute or two), since it will need to write the datasets to disk after having processed everything via lazy loading."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 15,
- "metadata": {
- "tags": []
- },
- "outputs": [],
- "source": [
- "# Convert the reference corrected data into netCDF file. We will then apply a special code to remove a dimension in the dataset to make it applicable to the RAVEN models.\n",
- "ref_dataset = xr.merge(\n",
- " [\n",
- " corrected_ref_precip.to_dataset(name=\"pr\"),\n",
- " corrected_ref_tasmax.to_dataset(name=\"tasmax\"),\n",
- " corrected_ref_tasmin.to_dataset(name=\"tasmin\"),\n",
- " ]\n",
- ")\n",
- "\n",
- "# Write to temporary folder\n",
- "fn_ref = tmp / \"reference_dataset.nc\"\n",
- "ref_dataset.to_netcdf(fn_ref)\n",
- "\n",
- "# Convert the future corrected data into netCDF file\n",
- "fut_dataset = xr.merge(\n",
- " [\n",
- " corrected_fut_precip.to_dataset(name=\"pr\"),\n",
- " corrected_fut_tasmax.to_dataset(name=\"tasmax\"),\n",
- " corrected_fut_tasmin.to_dataset(name=\"tasmin\"),\n",
- " ]\n",
- ")\n",
- "\n",
- "fn_fut = tmp / \"future_dataset.nc\"\n",
- "fut_dataset.to_netcdf(fn_fut)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 16,
- "metadata": {
- "tags": []
- },
- "outputs": [
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "hwloc/linux: Ignoring PCI device with non-16bit domain.\n",
+ "Pass --enable-32bits-pci-domain to configure to support such devices\n",
+ "(warning: it would break the library ABI, don't enable unless really needed).\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "
minimum near-surface (usually, 2 meter) air temperature (add cell_method attribute 'time: min')
long_name :
Daily Minimum Near-Surface Air Temperature
original_name :
T2
standard_name :
air_temperature
units :
K
"
+ ],
+ "text/plain": [
+ "\n",
+ "dask.array\n",
+ "Coordinates: (12/19)\n",
+ " * time (time) datetime64[ns] 1980-12-31T12:00:00 ... 1990-12-31T12:00:00\n",
+ " lon (geom) float64 dask.array\n",
+ " lat (geom) float64 dask.array\n",
+ " * geom (geom) int64 0\n",
+ " COAST (geom) int64 dask.array\n",
+ " DIST_MAIN (geom) float64 dask.array\n",
+ " ... ...\n",
+ " PFAF_ID (geom) int64 dask.array\n",
+ " SIDE (geom) object dask.array\n",
+ " SORT (geom) int64 dask.array\n",
+ " SUB_AREA (geom) float64 dask.array\n",
+ " UP_AREA (geom) float64 dask.array\n",
+ " id (geom) object dask.array\n",
+ "Attributes:\n",
+ " cell_measures: area: areacella\n",
+ " cell_methods: area: mean time: minimum\n",
+ " comment: minimum near-surface (usually, 2 meter) air temperature (...\n",
+ " long_name: Daily Minimum Near-Surface Air Temperature\n",
+ " original_name: T2\n",
+ " standard_name: air_temperature\n",
+ " units: K"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "# Get the CMIP6 data from Google Cloud and read it in memory using xarray. This is done via \"lazy loading\" and is not actually reading the data in memory\n",
+ "# yet, but is keeping track of what it will need to get, eventually.\n",
+ "ds = xr.open_zarr(mapper, consolidated=True)\n",
+ "\n",
+ "# Convert to numpy.datetime64 object to be compatbile\n",
+ "if type(ds.time[0].values) is not type(np.datetime64(\"1980-01-01\")):\n",
+ " ds = ds.convert_calendar(\"standard\")\n",
+ "\n",
+ "# Extract only the dates that we really want. Again, this is done via lazy loading, and is not actually using memory at this point.\n",
+ "ds = ds.sel(time=slice(reference_start_day, reference_end_day))\n",
+ "\n",
+ "# Use the clisops subsetting tools to extract the data for the watershed boundaries and take the spatial average\n",
+ "ds = average.average_shape(ds, basin_contour)\n",
+ "\n",
+ "# Correct the coordinates that are unnecessary for our variable\n",
+ "ds = ds.reset_coords(\"height\", drop=True)\n",
+ "\n",
+ "# Rechunk the data so it is much faster to read (single chunk rather than 1 chunk per day)\n",
+ "historical_tasmin = ds[\"tasmin\"].chunk(-1)\n",
+ "\n",
+ "# Show the end result!\n",
+ "display(historical_tasmin)"
+ ]
+ },
{
- "data": {
- "text/plain": [
- "[]"
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "We can see that we have a single chunk of 10 years of tasmin data, as expected! However, you might also have noticed that there is no metadata, such as units and variable properties left in the data array. We can fix that by wrapping the code in a block that forces xarray to keep the metadata.\n",
+ "\n",
+ "Also, since we will need to use this block of code for each variable, it might become tedious. Therefore, to simplify the code, we can combine everything into a function."
]
- },
- "execution_count": 16,
- "metadata": {},
- "output_type": "execute_result"
},
{
- "data": {
- "image/png": "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mCIiIvDKK6/giSeeQJ06ddCzZ0/s27dPztiIiCRhT99EJDdJCdOaNWvQpUsX+Pr6YsSIEfjkk0/g4+ODzp07Y+3atXLHSERERORQktowzZgxA3PnzsXo0aO100aOHIn58+fjyy+/RN++fWULkIiIiMjRJNUwXb16Fa+88kqp6T179kRsbKzVQREREREpiaSEKTg4GLt37y41fffu3QgODrY6KCIiIiIlkfRIbuzYsRgxYgSioqLQvn17qFQq7N+/HytXrsSiRYvkjpGIiIjIoSQlTB999BGqVq2KefPm4bfffgMAPPnkk1i/fj1effVVWQMkIiIicjRJCRMAvP7663j99dfljIWIiIhIkdhxJREREZEJZtcwVaxYERcvXsRjjz2GChUqQGWkZ7j79+/LEhwRERGREpidMC1YsAD+/v7a/zaWMBERERG5ErMTpgEDBmj/e+DAgbaIhYiIiEiRJLVhcnd3R1JSUqnp9+7dg7u7u9VBERERESmJpIRJCKF3em5uLry8vKwKiIiIiEhpLOpW4OuvvwYAqFQqLFu2DH5+ftrP1Go19u7di/r168sbIREREZGDWZQwLViwAEBhDdOSJUt0Hr95eXkhJCQES5YskTdCIiIiIgezKGEqGli3U6dO2LhxIypUqGCToIiIiIiURFJP3+Hh4XLHQURERKRYkodGuXHjBjZv3ozr168jLy9P57P58+dbHRgRERGRUkhKmHbv3o2ePXuiZs2auHDhAho1aoS4uDgIIdCiRQu5YyQiIiJyKEndCkycOBFjx47F2bNnUaZMGfzxxx+Ij49Hhw4d0Lt3b7ljJCIiInIoSQlTTEyMtudvDw8PZGdnw8/PD1988QXmzJkja4BEREREjiYpYSpbtixyc3MBAEFBQbhy5Yr2s7t378oTGREREZFCSGrD1LZtWxw4cAANGjTAyy+/jLFjx+LMmTPYuHEj2rZtK3eMRERERA4lKWGaP38+MjIyAAChoaHIyMjA+vXr8cQTT2g7tyQiIiJyFZISplq1amn/29fXF99//71sAREREREpjaQ2TLVq1cK9e/dKTU9JSdFJpoiIiIhcgaSEKS4uDmq1utT03Nxc3Lx50+qgiIiIiJTEokdymzdv1v73zp07ERAQoP23Wq3G7t27ERISIltwRERSqKBydAhE5GIsSphee+01AIBKpdL2w1TE09MT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",
- "text/plain": [
- "
"
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "def extract_and_average(mapper, start, end, geometry):\n",
+ " with xr.set_options(keep_attrs=True):\n",
+ " ds = xr.open_zarr(mapper, consolidated=True)\n",
+ "\n",
+ " # Convert to numpy.datetime64 object to be compatbile\n",
+ " if type(ds.time[0].values) is not type(np.datetime64(\"1980-01-01\")):\n",
+ " ds = ds.convert_calendar(\"standard\")\n",
+ "\n",
+ " # Compute average over region\n",
+ " out = average.average_shape(ds.sel(time=slice(start, end)), geometry)\n",
+ "\n",
+ " # Convert geometry variables into attributes\n",
+ " attrs = {\n",
+ " key: out[key].values.item()\n",
+ " for key in out.coords\n",
+ " if key not in [\"time\", \"time_bnds\", \"lon\", \"lat\"]\n",
+ " }\n",
+ " out = out.isel(geom=0).reset_coords(attrs.keys(), drop=True)\n",
+ " out.attrs.update(attrs)\n",
+ "\n",
+ " return out.chunk(-1)"
]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "# Show the corrected future precipitation.\n",
- "corrected_fut_precip.plot()"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 17,
- "metadata": {
- "tags": []
- },
- "outputs": [
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Much better! we have all the information we need. Let's repeat the process for the 3 variables and for the reference and future periods using ssp585. You probably don't have to change anything in this following block of code, but you can taylor it to your needs knowing how everything is built now."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "historical tasmin\n",
+ "historical tasmax\n",
+ "historical pr\n",
+ "ssp585 tasmin\n",
+ "ssp585 tasmax\n",
+ "ssp585 pr\n"
+ ]
+ }
+ ],
+ "source": [
+ "# We will add a wrapper to ensure that the following operations will preserve the original data attributes, such as units and variable names.\n",
+ "with xr.set_options(keep_attrs=True):\n",
+ " # Load the files from the PanGEO catalogs, for reference and future variables of temperature and precipitation.\n",
+ " out = {}\n",
+ " for exp in [\"historical\", \"ssp585\"]:\n",
+ " if exp == \"historical\":\n",
+ " period_start = reference_start_day\n",
+ " period_end = reference_end_day\n",
+ " else:\n",
+ " period_start = future_start_day\n",
+ " period_end = future_end_day\n",
+ "\n",
+ " out[exp] = {}\n",
+ " for variable in [\"tasmin\", \"tasmax\", \"pr\"]:\n",
+ " print(exp, variable)\n",
+ " query = dict(\n",
+ " experiment_id=exp,\n",
+ " table_id=\"day\",\n",
+ " variable_id=variable,\n",
+ " member_id=\"r1i1p1f1\",\n",
+ " source_id=climate_model,\n",
+ " )\n",
+ " col_subset = col.search(require_all_on=[\"source_id\"], **query)\n",
+ " mapper = fsCMIP.get_mapper(col_subset.df.zstore[0])\n",
+ " ds = xr.open_zarr(mapper, consolidated=True)\n",
+ "\n",
+ " out[exp][variable] = extract_and_average(\n",
+ " mapper, period_start, period_end, basin_contour\n",
+ " )[variable]\n",
+ "\n",
+ "# We can now extract the variables that we will need later:\n",
+ "historical_tasmax = out[\"historical\"][\"tasmax\"]\n",
+ "historical_tasmin = out[\"historical\"][\"tasmin\"]\n",
+ "historical_pr = out[\"historical\"][\"pr\"]\n",
+ "future_tasmax = out[\"ssp585\"][\"tasmax\"]\n",
+ "future_tasmin = out[\"ssp585\"][\"tasmin\"]\n",
+ "future_pr = out[\"ssp585\"][\"pr\"]"
+ ]
+ },
{
- "data": {
- "text/plain": [
- "[]"
+ "cell_type": "markdown",
+ "metadata": {
+ "tags": []
+ },
+ "source": [
+ "### Reference data to prepare bias correction\n",
+ "We have extracted the historical period and future period data from the GCM. Now we need the reference data to use as the baseline for bias-correction. Here we will use ERA5 and we will gather it again, since we can't be sure that the dates we selected in the 3rd notebook are still valid.\n",
+ "\n"
]
- },
- "execution_count": 17,
- "metadata": {},
- "output_type": "execute_result"
},
{
- "data": {
- "image/png": "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",
- "text/plain": [
- "
"
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "# Regenerate the ERA5 data to be sure. In an operational context, you could combine everything onto one notebook and ensure that the\n",
+ "# dates and locations are constant!\n",
+ "\n",
+ "# Get the ERA5 data from the Wasabi/Amazon S3 server.\n",
+ "catalog_name = \"https://raw.githubusercontent.com/hydrocloudservices/catalogs/main/catalogs/atmosphere.yaml\"\n",
+ "cat = intake.open_catalog(catalog_name)\n",
+ "ds = cat.era5_reanalysis_single_levels.to_dask()\n",
+ "\n",
+ "\"\"\"\n",
+ "Get the ERA5 data. We will rechunk it to a single chunck to make it compatible with other codes on the platform, especially bias-correction.\n",
+ "We are also taking the daily min and max temperatures as well as the daily total precipitation.\n",
+ "\"\"\"\n",
+ "# We will add a wrapper to ensure that the following operations will preserve the original data attributes, such as units and variable names.\n",
+ "with xr.set_options(keep_attrs=True):\n",
+ " ERA5_reference = subset.subset_shape(\n",
+ " ds.sel(time=slice(reference_start_day, reference_end_day)), basin_contour\n",
+ " ).mean({\"latitude\", \"longitude\"})\n",
+ " ERA5_tmin = ERA5_reference[\"t2m\"].resample(time=\"1D\").min().chunk(-1, -1, -1)\n",
+ " ERA5_tmax = ERA5_reference[\"t2m\"].resample(time=\"1D\").max().chunk(-1, -1, -1)\n",
+ " ERA5_pr = ERA5_reference[\"tp\"].resample(time=\"1D\").sum().chunk(-1, -1, -1)"
]
- },
- "metadata": {},
- "output_type": "display_data"
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[]"
+ ]
+ },
+ "execution_count": 12,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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SE9PR58+ffDAAw8gKyvL7fKZmZl48MEH0adPH6Snp+PNN9/EqFGjsGzZMpflGjdujJycHJefiIgINXaJiIiIDCBEy41PmzYNw4YNw/DhwwEACQkJWLVqFWbNmoVJkybVWH727Nlo06YNEhISAACdO3dGamoqpk6dikGDBjmXM5lMaNmypSr7QERERMajWQuQ2WxGWloa+vXr5/J6v379sG3bNrfvSUlJqbF8//79kZqaCovF4nyttLQUbdu2xTXXXIO//e1vSE9PrzOWiooKFBcXu/wQERGR/9IsASooKIDNZkNUVJTL61FRUcjNzXX7ntzcXLfLW61WFBQUAACuv/56LFiwAL/88gsWL16MiIgI3HHHHTh69GitsUyaNAmRkZHOn5iYGB/3joiIiPRM807QJpNrx11BEGq85mn5qq/ffvvt+Oc//4kbb7wRffr0wffff49OnTrhv//9b63rHDduHIqKipw/2dnZ3u4OERERGYBmfYCaN2+O4ODgGq09eXl5NVp5HFq2bOl2+ZCQEDRr1szte4KCgnDLLbfU2QIUHh6O8PBwiXtARERERqVZC1BYWBji4uKwZs0al9fXrFmD3r17u31Pr169aiy/evVq9OzZE6GhoW7fIwgCdu/ejVatWskTOBERERmeprfAxowZgzlz5mDevHnIyMjA6NGjkZWVhfj4eACVt6aeeeYZ5/Lx8fE4deoUxowZg4yMDMybNw9z587Fq6++6lxm/PjxWLVqFU6cOIHdu3dj2LBh2L17t3OdRERERJo+Bj948GCcP38eEyZMQE5ODrp164akpCS0bdsWAJCTk+MyJlBsbCySkpIwevRozJw5E9HR0Zg+fbrLI/CFhYUYMWIEcnNzERkZiZtuugmbNm3Crbfeqvr+ERERkT6ZBEcvYnIqLi5GZGQkioqK0LhxY63D8ajdGysAAPd3bYnZQ+I0joaIiEgbUq7fmj8FRkRERKQ2JkBEREQUcJgAERERUcBhAkREREQBhwmQH6ljAG0iIiKqggkQERERBRwmQH6EAxoQERGJwwSIiIiIAg4TICIiIgo4TICIiIgo4DABIiIiooDDBIiIiIgCDhMgP8JxgIiIiMRhAkREREQBhwkQERERBRwmQERERBRwmAD5EY4ETUREJA4TICIiIgo4TICIiIgo4DABIiIiooDDBMiPcBwgIiIicZgA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9asUv2O9VeNzlGH1/asaV1hIzeOqevLjWN6xbpPJdZ+rn4uO0KuXmbt9CgoyucTnOEaAusu1av1cPcmvfsxUPTaq1mtX6sMgl3ir/92h6n464oysX/W8qFkHA6YaiUZtdanaNLsFFhYWhri4OKxZs8bl9TVr1qB3795u39OrV68ay69evRo9e/ZEaGhoncvUtk4iIiIKPJq1AAHAmDFjMGTIEPTs2RO9evXCl19+iaysLMTHxwMAxo0bhzNnzmDhwoUAKp/4mjFjBsaMGYPnn38eKSkpmDt3rsvTXS+//DL+8pe/YPLkyXjkkUfw888/Y+3atdiyZYsm+0hERET6o2kCNHjwYJw/fx4TJkxATk4OunXrhqSkJLRt2xYAkJOT4zImUGxsLJKSkjB69GjMnDkT0dHRmD59OgYNGuRcpnfv3liyZAnefvttvPPOO7j22muxdOlS3HbbbarvHxEREemTpuMA6ZVS4wARERGRcgwxDhARERGRVpgAERERUcBhAkREREQBhwkQERERBRwmQERERBRwmAARERFRwGECRERERAGHCRAREREFHCZAREREFHA0nQpDrxyDYxcXF2scCREREYnluG6LmeSCCZAbJSUlAICYmBiNIyEiIiKpSkpKEBkZWecynAvMDbvdjrNnz6JRo0YwmUxah6O54uJixMTEIDs7m3OjKYjlrA6WszpYzuphWV8hCAJKSkoQHR2NoKC6e/mwBciNoKAgXHPNNVqHoTuNGzcO+JNLDSxndbCc1cFyVg/LupKnlh8HdoImIiKigMMEiIiIiAIOEyDyKDw8HO+99x7Cw8O1DsWvsZzVwXJWB8tZPSxr77ATNBEREQUctgARERFRwGECRERERAGHCRAREREFHCZAREREFHCYABEREVHAYQJEREREAYcJEJEKysvLtQ4hYJw+fRo5OTkAxM0ITd6xWq3O31nO6mA5y4sJUICyWCyYP38+fvzxRxw6dEjrcPySIAgQBAEvvfQSHnroIVy4cEHrkPyaxWLB//3f/6F379745ptvAICTGSvAbDbjjTfewMiRI/Hee+/h0qVLLGcFmM1mTJ48GTNmzEBycjIAHs9yYwIUgL744gtERUVh3rx5eOWVVzBo0CB8//33AAC73a5xdP7DZDKhsLAQP/zwAzZs2OAsY5JfdnY27rjjDuzbtw//+9//8OSTTzoT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",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "ERA5_pr.plot()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "# Here we need to make sure that our units are all in the correct format. You can play around with the tools we've seen thus far to explore the units\n",
+ "# and make sure everything is consistent.\n",
+ "\n",
+ "# Let's start with precipitation:\n",
+ "ERA5_pr = xclim.core.units.convert_units_to(ERA5_pr, \"mm\", context=\"hydro\")\n",
+ "# The CMIP data is a rate rather than an absolute value, so let's get the absolute values:\n",
+ "historical_pr = xclim.core.units.rate2amount(historical_pr)\n",
+ "future_pr = xclim.core.units.rate2amount(future_pr)\n",
+ "\n",
+ "# Now we can actually convert units in absolute terms.\n",
+ "historical_pr = xclim.core.units.convert_units_to(historical_pr, \"mm\", context=\"hydro\")\n",
+ "future_pr = xclim.core.units.convert_units_to(future_pr, \"mm\", context=\"hydro\")\n",
+ "\n",
+ "# Now let's do temperature:\n",
+ "ERA5_tmin = xclim.core.units.convert_units_to(ERA5_tmin, \"degC\")\n",
+ "ERA5_tmax = xclim.core.units.convert_units_to(ERA5_tmax, \"degC\")\n",
+ "historical_tasmin = xclim.core.units.convert_units_to(historical_tasmin, \"degC\")\n",
+ "historical_tasmax = xclim.core.units.convert_units_to(historical_tasmax, \"degC\")\n",
+ "future_tasmin = xclim.core.units.convert_units_to(future_tasmin, \"degC\")\n",
+ "future_tasmax = xclim.core.units.convert_units_to(future_tasmax, \"degC\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "The model is now going to be trained to find correction factors between the reference dataset (observations) and historical dataset (climate model outputs for the same time period). The correction factors obtained are then applied to both reference and future climate outputs to correct them. This step is called the bias correction. In this test-case, we apply a method named `detrended quantile mapping`.\n",
+ "\n",
+ "Here we use the `xclim` utilities to bias-correct CMIP6 GCM data using ERA5 reanalysis data as the reference. See `xclim` documentation for more options! (https://xclim.readthedocs.io/en/stable/notebooks/sdba.html)\n",
+ "\n",
+ "> **Warning**\n",
+ "> This following block of code will take a while to run, and some warning messages will appear during the process (related to longitude wrapping and other information on calendar types). Unless an error message appears, the code should run just fine!"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/opt/conda/envs/birdy/lib/python3.9/site-packages/xclim/sdba/adjustment.py:117: UserWarning: Strange results could be returned when using dayofyear grouping on data defined in the proleptic_gregorian calendar \n",
+ " warn(\n",
+ "/opt/conda/envs/birdy/lib/python3.9/site-packages/xclim/sdba/adjustment.py:117: UserWarning: Strange results could be returned when using dayofyear grouping on data defined in the proleptic_gregorian calendar \n",
+ " warn(\n",
+ "/opt/conda/envs/birdy/lib/python3.9/site-packages/xclim/sdba/adjustment.py:117: UserWarning: Strange results could be returned when using dayofyear grouping on data defined in the proleptic_gregorian calendar \n",
+ " warn(\n",
+ "/opt/conda/envs/birdy/lib/python3.9/site-packages/xclim/sdba/adjustment.py:117: UserWarning: Strange results could be returned when using dayofyear grouping on data defined in the proleptic_gregorian calendar \n",
+ " warn(\n",
+ "/opt/conda/envs/birdy/lib/python3.9/site-packages/xclim/sdba/adjustment.py:117: UserWarning: Strange results could be returned when using dayofyear grouping on data defined in the proleptic_gregorian calendar \n",
+ " warn(\n"
+ ]
+ }
+ ],
+ "source": [
+ "# Use xclim utilities (sbda) to give information on the type of window used for the bias correction.\n",
+ "group_month_window = sdba.utils.Grouper(\"time.dayofyear\", window=15)\n",
+ "\n",
+ "# This is an adjusting function. It builds the tool that will perform the corrections.\n",
+ "Adjustment = sdba.DetrendedQuantileMapping.train(\n",
+ " ref=ERA5_pr, hist=historical_pr, nquantiles=50, kind=\"+\", group=group_month_window\n",
+ ")\n",
+ "\n",
+ "# Apply the correction factors on the reference period\n",
+ "corrected_ref_precip = Adjustment.adjust(historical_pr, interp=\"linear\")\n",
+ "\n",
+ "# Apply the correction factors on the future period\n",
+ "corrected_fut_precip = Adjustment.adjust(future_pr, interp=\"linear\")\n",
+ "\n",
+ "# Ensure that the precipitation is non-negative, which can happen with some climate models\n",
+ "corrected_ref_precip = corrected_ref_precip.where(corrected_ref_precip > 0, 0)\n",
+ "corrected_fut_precip = corrected_fut_precip.where(corrected_fut_precip > 0, 0)\n",
+ "\n",
+ "# Train the model to find the correction factors for the maximum temperature (tasmax) data\n",
+ "Adjustment = sdba.DetrendedQuantileMapping.train(\n",
+ " ref=ERA5_tmax,\n",
+ " hist=historical_tasmax,\n",
+ " nquantiles=50,\n",
+ " kind=\"+\",\n",
+ " group=group_month_window,\n",
+ ")\n",
+ "\n",
+ "# Apply the correction factors on the reference period\n",
+ "corrected_ref_tasmax = Adjustment.adjust(historical_tasmax, interp=\"linear\")\n",
+ "\n",
+ "# Apply the correction factors on the future period\n",
+ "corrected_fut_tasmax = Adjustment.adjust(future_tasmax, interp=\"linear\")\n",
+ "\n",
+ "# Train the model to find the correction factors for the minimum temperature (tasmin) data\n",
+ "Adjustment = sdba.DetrendedQuantileMapping.train(\n",
+ " ref=ERA5_tmin,\n",
+ " hist=historical_tasmin,\n",
+ " nquantiles=50,\n",
+ " kind=\"+\",\n",
+ " group=group_month_window,\n",
+ ")\n",
+ "\n",
+ "# Apply the correction factors on the reference period\n",
+ "corrected_ref_tasmin = Adjustment.adjust(historical_tasmin, interp=\"linear\")\n",
+ "\n",
+ "# Apply the correction factors on the future period\n",
+ "corrected_fut_tasmin = Adjustment.adjust(future_tasmin, interp=\"linear\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "The corrected reference and future data are then converted to netCDF files. This will take a while to run (perhaps a minute or two), since it will need to write the datasets to disk after having processed everything via lazy loading."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "# Convert the reference corrected data into netCDF file. We will then apply a special code to remove a dimension in the dataset to make it applicable to the RAVEN models.\n",
+ "ref_dataset = xr.merge(\n",
+ " [\n",
+ " corrected_ref_precip.to_dataset(name=\"pr\"),\n",
+ " corrected_ref_tasmax.to_dataset(name=\"tasmax\"),\n",
+ " corrected_ref_tasmin.to_dataset(name=\"tasmin\"),\n",
+ " ]\n",
+ ")\n",
+ "\n",
+ "# Write to temporary folder\n",
+ "fn_ref = tmp / \"reference_dataset.nc\"\n",
+ "ref_dataset.to_netcdf(fn_ref)\n",
+ "\n",
+ "# Convert the future corrected data into netCDF file\n",
+ "fut_dataset = xr.merge(\n",
+ " [\n",
+ " corrected_fut_precip.to_dataset(name=\"pr\"),\n",
+ " corrected_fut_tasmax.to_dataset(name=\"tasmax\"),\n",
+ " corrected_fut_tasmin.to_dataset(name=\"tasmin\"),\n",
+ " ]\n",
+ ")\n",
+ "\n",
+ "fn_fut = tmp / \"future_dataset.nc\"\n",
+ "fut_dataset.to_netcdf(fn_fut)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[]"
+ ]
+ },
+ "execution_count": 16,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkwAAAHVCAYAAAAD5aTVAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB76UlEQVR4nO3dd3gU1f4G8HdTSUgIRQiGGwggRXqVYgGkWRAVRRR+0iygSEeQi0BQ+pVmAxEEBBEUQZEeMYTeE0oIPYFACKGk9+ye3x8hSzbZOju7O7u8n+fJvTI75Ttnp3z3zJlzVEIIASIiIiIyyM3RARAREREpHRMmIiIiIhOYMBERERGZwISJiIiIyAQmTEREREQmMGEiIiIiMoEJExEREZEJTJiIiIiITGDCRERERGQCEyYihVi5ciVUKhXi4uIcHYpNdOzYESqVyuBfYmKidt4tW7agf//+aNy4MTw9PaFSqSRv9/bt26hUqRJUKhU2bNig89m///6LwYMHo379+ihbtiyqVauGV199FSdOnJC8vbi4OKhUKqxcudLiZRMSEhAaGoqoqCjJ25fLuXPn4O3tDZVKhePHj5f6PDw8HF27dkWVKlXg5+eHJk2a4Ouvv4ZarbZ4W//3f/8HlUqFHj166Ezfs2eP0WNm6NChkvePyFIejg6AiB4N33//PdLS0nSmZWVl4YUXXkDLli1RtWpV7fRNmzbh8OHDaN68Oby9va1KYIYNG4YyZcro/Wzx4sW4d+8eRo4ciQYNGuDOnTuYN28e2rZti507d+L555+XvF0pEhISMG3aNISEhKBZs2Z23XZxarUagwcPxmOPPYaEhIRSn//zzz/o3r07nnvuOfz4448oW7YsNm/ejJEjR+LKlStYtGiR2dvaunUr/vzzT5QrV67UZy1atMChQ4dKTV+8eDF+/vlnvP7665btGJE1BBEpwooVKwQAERsb6+hQ7GblypUCgFi2bJnOdLVarf3vYcOGCamXqg0bNgg/Pz+xatUqAUD8/vvvOp/fvn271DLp6ekiMDBQdO7cWdI2Y2NjBQCxYsUKi5c9duyY5GXl9L///U9Uq1ZNLFq0SAAQx44d0/m8X79+wtvbW2RkZOhM79atmyhXrpzZ20lJSRHVqlUT8+fPFzVq1BAvv/yyyWU0Go2oVauWqFGjhs5xQmRrfCRHpHA//fQTmjZtijJlyqBixYp4/fXXERMTozPPwIED4efnh8uXL+Oll16Cn58fgoODMXbsWOTm5jooctOWL18OPz8/9OnTR2e6m5v1l6b79+9j2LBhmDFjBqpXr653nipVqpSa5ufnhwYNGiA+Pt7qGIpcvnwZgwYNQp06deDr64tq1arhlVdewZkzZ7Tz7NmzB61btwYADBo0SPvYKTQ0VLY4zHHp0iVMmTIF33//vd5aHwDw9PSEl5cXfHx8dKaXL1/eYG2ePmPHjsXjjz+OESNGmL1MeHg4rl69ikGDBslynBCZi0cbkYLNmjUL7733Hho2bIiNGzdi0aJFOH36NNq1a4dLly7pzJufn4+ePXuic+fO+OuvvzB48GAsWLAAc+bMMbkdjUaDgoICk39S2qcYcunSJezbtw9vv/02/Pz8ZFtvkREjRqBmzZr45JNPLFouNTUVJ0+eRMOGDWWLJSEhAZUqVcLs2bOxY8cOfPfdd/Dw8ECbNm1w4cIFAIWPn1asWAEA+Pzzz3Ho0CEcOnQI77//vtF1m/O9FRQUQAhhMk4hBN5//3306NEDPXv2NDjf0KFDkZeXhxEjRiAhIQEpKSlYvXo1Nm3ahPHjx5tVJv/88w9+/vlnLFu2DO7u7mYtAxQm2W5ubhg0aJDZyxDJwtFVXERUqOQjueTkZOHj4yNeeuklnfmuX78uvL29Rd++fbXTBgwYIACI3377TWfel156SdSrV8/ktouWN/XXoUMHq/ezyIQJEwQAcejQIaPzSXkkt2XLFuHp6SnOnDkjhBAiPDxc7yM5ffr16yc8PDzE8ePHLdpmEXMeyRUUFIi8vDxRp04dMXr0aO10Sx/JFW3LnL/w8HCT6/vmm29EhQoVRGJiohDi4TFZ8pGcEEIcOHBABAUFadfv7u4u5s6da1bc6enpIiQkREycOFE7zZxHcsnJyaJMmTKie/fuZm2HSE5s9E2kUIcOHUJ2djYGDhyoMz04OBjPP/88du/erTNdpVLhlVde0ZnWpEkT/Pvvvya3FRoaalZNjL+/v9HPhRClaqE8PEpfZgoKCrBq1So0bNgQbdu2NbldS6SmpmLIkCGYMGECGjVqZNGykydPxi+//IJvvvkGLVu2lC2mgoICzJ07F2vWrMHly5eRn5+v/azk41VLBAUF4dixY2bNW69ePaOfX7t2DRMnTsTChQsRGBhodN4TJ07g9ddfR5s2bfDDDz+gbNmy+Pfff/H5558jJycHkydPNrr8Z599Bk9PT0yZMsWs2Iv88ssvyMnJMVnrRmQLTJiIFOrevXsAgMcff7zUZ0FBQQgLC9OZ5uvrW6r9iLe3N3Jyckxuq3r16vjPf/5jcj5Tr/evWrWq1KMSoedR0LZt25CYmIgJEyaY3KalJk2aBE9PT3zyySdISUkBAGRkZAAofCsvJSUFAQEBpfZl2rRpmD59OmbMmGHxYzxTxowZg++++w4TJkxAhw4dUKFCBbi5ueH9999Hdna25PV6eXmZ/Tadqcdew4YNQ6NGjfDGG29oyy0rKwtAYfmlpqYiICBAO29gYCA2bdqkXW+nTp3g5uaG0NBQ9OvXD7Vq1dK7naNHj+L777/Hxo0bkZOToz0+ix4Lp6SkwMfHB97e3qWWXb58OSpXroxXX33VrH0mkhMTJiKFqlSpEgDg1q1bpT5LSEjAY489Jtu2Bg8ejFWrVpmcr0OHDtizZ4/Bz1955RWzajyWL18OLy8vvPvuu5aEaZazZ88iLi5Op5uCIgMGDAAAJCcno3z58trp06ZNQ2hoKEJDQ/Hf//5X9pjWrFmD/v37Y+bMmTrT7969qxOHpeLi4lCzZk2z5g0PD0fHjh0Nfn727Flcu3YNFSpUKPVZp06dEBAQoE2koqKi8M4775RKwlq3bg2NRoOYmBiDCdO5c+cghNDbJUB8fDwqVKiABQsWYNSoUTqfRUZGIjIyEmPHjoWnp6fxnSWyASZMRArVrl07+Pj4YM2aNejdu7d2+o0bN/Dvv//izTfflG1bcj2Sq1SpkjbRMyQxMRHbtm1Dr169TM4rxcKFC7U39iJRUVEYPXo0QkND0aFDB51G5l9++SVCQ0Px+eefY+rUqbLHAxTWzJWsMdm6dStu3ryJJ554QjutaB5za53kfCS3bt26UrWRO3bswJw5c7BkyRKdRvBBQUE4fvw41Gq1TtJU1GeSsdrKF154AeHh4aWmv/3226hZsyZmzZqlUyZFli9fDgB47733jO4Hka0wYSJSqPLly2Py5Mn473//i/79++Odd97BvXv3MG3aNJQpU0bWm3tISAhCQkJkW58xq1atQkFBgdF2KNeuXdMmAleuXAEAbS/dISEhaNWqlXa+2rVrY8CAAdobqrFHVA0bNtSpZZk3bx6mTJmCF154AS+//DIOHz6sM3/x9lUrV67EoEGDsGLFilLtykzp0aMHVq5cifr166NJkyY4ceIE/ve//5VKLGrXrg0fHx/88ssvePLJJ+Hn54egoCAEBQXpXa+Xl5e2LKylry1ZUa/zLVu21NnO6NGjMWLECLzyyisYMmQIfH19sXv3bsybNw9dunRB06ZNtfN27twZERERKCgoAABUrVpVb+1fmTJlUKlSJb21YDk5OVi7di3at2+PJ5980so9JZKGCRORgk2cOBFVqlTB119/jfXr18PHxwcdO3bEzJkzUadOHUeHJ8lPP/2EkJAQdOnSxeA84eHhpdpCFdWyDRgwQDvsSFEjc6ndHfz9998ACmtSduzYUerz4u2vitpB6WtTZsqiRYvg6emJWbNmISMjAy1atMDGjRvx+eef68zn6+uLn376CdOmTUO3bt2Qn5+PqVOn2r0vJlOGDx+OatWqYcGCBdp2WCEhIZg6dSpGjx6tM68130+RjRs3Ijk5mY29yaFUQl+LTCIi0vHWW28hNjbW7EdgRORaWMNERGSCEAJ79uzBmjVrHB0KETkIa5iIiIiITODQKEREREQmMGEiIiIiMoEJExEREZEJTJiIiIiITOBbcjLQaDRISEiAv7+/ybG2iIiISBmEEEhPT0dQUBDc3IzXITFhkkFCQgKCg4MdHQYRERFJEB8fb3IAciZMMigaXys+Ph7lypVzcDRERERkjrS0NAQHB5scJxNgwiSLosdw5cqVY8JERETkZMxpTsNG30REREQmMGEiIiIiMoEJExEREZEJTJiIiIiITGDCRERERGQCEyYiIiIiE5w+Ydq7dy9eeeUVBAUFQaVS4c8//9R+lp+fjwkTJqBx48YoW7YsgoKC0L9/fyQkJOisIzc3F8OHD8djjz2GsmXLomfPnrhx44ad94SIiIiUyukTpszMTDRt2hTffvttqc+ysrJw8uRJTJ48GSdPnsTGjRtx8eJF9OzZU2e+UaNGYdOmTVi3bh3279+PjIwM9OjRA2q12l67QURERAqmEkIIRwchF5VKhU2bNuG1114zOM+xY8fw1FNP4dq1a6hevTpSU1NRuXJlrF69Gn369AHwcKiTbdu2oXv37ia3m5aWhoCAAKSmprLjSiIiIidhyf3b6WuYLJWamgqVSoXy5csDAE6cOIH8/Hx069ZNO09QUBAaNWqEgwcP6l1Hbm4u0tLSdP6IiIjIdT1SCVNOTg4+++wz9O3bV5tJJiYmwsvLCxUqVNCZNzAwEImJiXrXM2vWLAQEBGj/OPAuERGRa3tkEqb8/Hy8/fbb0Gg0+P77703OL4QwOLbMxIkTkZqaqv2Lj4+XO1wiIiJSkEciYcrPz8dbb72F2NhYhIWF6TynrFq1KvLy8pCcnKyzTFJSEgIDA/Wuz9vbWzvQLgfcJSIicn0unzAVJUuXLl3CP//8g0qVKul83rJlS3h6eiIsLEw77datWzh79izat29v73CJSAY5+Wq8sHAvJm064+hQiMhFeDg6AGtlZGTg8uXL2n/HxsYiKioKFStWRFBQEN58802cPHkSW7ZsgVqt1rZLqlixIry8vBAQEID33nsPY8eORaVKlVCxYkWMGzcOjRs3RpcuXRy1W0RkhR1nE3E+MR3nE9Mx4/XGjg6HiFyA0ydMx48fR6dOnbT/HjNmDABgwIABCA0NxebNmwEAzZo101kuPDwcHTt2BAAsWLAAHh4eeOutt5CdnY3OnTtj5cqVcHd3t8s+EJG8NK7TWwoRKYTTJ0wdO3aEsa6kzOlmqkyZMvjmm2/wzTffyBkaERERuQiXb8NEREREZC0mTEREREQmMGEiIiIiMoEJExEREZEJTJiIiIiITGDCRERERGQCEyYiIiIiE5gwEREREZnAhImIiIjIBCZMRERERCYwYSIiIiIygQkTERERkQlMmIiIiIhMYMJEREREZAITJiIiIiITmDARERERmcCEiYhcjkrl6AiIyNUwYSIilyOEoyMgIlfDhImIiIjIBCZMRERERCYwYSIiIiIygQkTERERkQlMmIiIiIhMYMJEREREZAITJiIiIiITmDARkcthx5VEJDcmTEREREQmMGEiIiIiMoEJExG5HA6NQkRyY8JEREREZAITJiIiIiITmDARERERmcCEiYiIiMgEJkxEREREJjBhIiIiIjKBCRMRuRz29E1EcmPCRERERGQCEyYiIiIiE5gwEZHLYU/fRCQ3JkxEREREJjBhIiIiIjKBCRMRERGRCUyYiIiIiExgwkRERERkAhMmInI57LiSiOTm9AnT3r178corryAoKAgqlQp//vmnzudCCISGhiIoKAg+Pj7o2LEjoqOjdebJzc3F8OHD8dhjj6Fs2bLo2bMnbty4Yce9ICIiIiVz+oQpMzMTTZs2xbfffqv387lz52L+/Pn49ttvcezYMVStWhVdu3ZFenq6dp5Ro0Zh06ZNWLduHfbv34+MjAz06NEDarXaXrtBRERECubh6ACs9eKLL+LFF1/U+5kQAgsXLsSkSZPQq1cvAMCqVasQGBiItWvXYsiQIUhNTcXy5cuxevVqdOnSBQCwZs0aBAcH459//kH37t3tti9ERESkTE5fw2RMbGwsEhMT0a1bN+00b29vdOjQAQcPHgQAnDhxAvn5+TrzBAUFoVGjRtp5iIiI6NHm9DVMxiQmJgIAAgMDdaYHBgbi2rVr2nm8vLxQoUKFUvMULV9Sbm4ucnNztf9OS0uTM2wishKHRiEiubl0DVMRVYlXZoQQpaaVZGyeWbNmISAgQPsXHBwsW6xERESkPC6dMFWtWhUAStUUJSUlaWudqlatiry8PCQnJxucp6SJEyciNTVV+xcfH2+D6ImIiEgpXDphqlmzJqpWrYqwsDDttLy8PERERKB9+/YAgJYtW8LT01Nnnlu3buHs2bPaeUry9vZGuXLldP6IiIjIdTl9G6aMjAxcvnxZ++/Y2FhERUWhYsWKqF69OkaNGoWZM2eiTp06qFOnDmbOnAlfX1/07dsXABAQEID33nsPY8eORaVKlVCxYkWMGzcOjRs31r41R0TOhR1XEpHcnD5hOn78ODp16qT995gxYwAAAwYMwMqVKzF+/HhkZ2fj448/RnJyMtq0aYNdu3bB399fu8yCBQvg4eGBt956C9nZ2ejcuTNWrlwJd3d3u+8PERERKY9KCL5PYq20tDQEBAQgNTWVj+eIFGBT5A2MXn8KABA3+2UHR0NESmXJ/dul2zARERERyYEJExEREZEJTJiIiIiITGDCREQuhy0ziUhuTJiIiIiITGDCRERERGQCEyYicjnsuJKI5Ca548qUlBQcPXoUSUlJ0Gg0Op/179/f6sCIiIiIlEJSwvT333+jX79+yMzMhL+/P1TFfs6pVComTERERORSJD2SGzt2LAYPHoz09HSkpKQgOTlZ+3f//n25YyQiIiJyKEkJ082bNzFixAj4+vrKHQ8RERGR4khKmLp3747jx4/LHQsRERGRIklqw/Tyyy/j008/xblz59C4cWN4enrqfN6zZ09ZgiMiIiJSAkkJ0wcffAAA+OKLL0p9plKpoFarrYuKiIiISEEkJUwluxEgIlISDo1CRHJjx5VEREREJkhOmCIiIvDKK6/giSeeQJ06ddCzZ0/s27dPztiIiCRhT99EJDdJCdOaNWvQpUsX+Pr6YsSIEfjkk0/g4+ODzp07Y+3atXLHSERERORQktowzZgxA3PnzsXo0aO100aOHIn58+fjyy+/RN++fWULkIiIiMjRJNUwXb16Fa+88kqp6T179kRsbKzVQREREREpiaSEKTg4GLt37y41fffu3QgODrY6KCIiIiIlkfRIbuzYsRgxYgSioqLQvn17qFQq7N+/HytXrsSiRYvkjpGIiIjIoSQlTB999BGqVq2KefPm4bfffgMAPPnkk1i/fj1effVVWQMkIiIicjRJCRMAvP7663j99dfljIWIiIhIkdhxJREREZEJZtcwVaxYERcvXsRjjz2GChUqQGWkZ7j79+/LEhwRERGREpidMC1YsAD+/v7a/zaWMBERERG5ErMTpgEDBmj/e+DAgbaIhYiIiEiRJLVhcnd3R1JSUqnp9+7dg7u7u9VBERERESmJpIRJCKF3em5uLry8vKwKiIiIiEhpLOpW4OuvvwYAqFQqLFu2DH5+ftrP1Go19u7di/r168sbIREREZGDWZQwLViwAEBhDdOSJUt0Hr95eXkhJCQES5YskTdCIiIiIgezKGEqGli3U6dO2LhxIypUqGCToIiIiIiURFJP3+Hh4XLHQURERKRYkodGuXHjBjZv3ozr168jLy9P57P58+dbHRgRERGRUkhKmHbv3o2ePXuiZs2auHDhAho1aoS4uDgIIdCiRQu5YyQiIiJyKEndCkycOBFjx47F2bNnUaZMGfzxxx+Ij49Hhw4d0Lt3b7ljJCIiInIoSQlTTEyMtudvDw8PZGdnw8/PD1988QXmzJkja4BEREREjiYpYSpbtixyc3MBAEFBQbhy5Yr2s7t378oTGREREZFCSGrD1LZtWxw4cAANGjTAyy+/jLFjx+LMmTPYuHEj2rZtK3eMRERERA4lKWGaP38+MjIyAAChoaHIyMjA+vXr8cQTT2g7tyQiIiJyFZISplq1amn/29fXF99//71sAREREREpjaQ2TLVq1cK9e/dKTU9JSdFJpoiIiIhcgaSEKS4uDmq1utT03Nxc3Lx50+qgiIiIiJTEokdymzdv1v73zp07ERAQoP23Wq3G7t27ERISIltwRERSqKBydAhE5GIsSphee+01AIBKpdL2w1TE09MT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",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "# Compare it to the future precipitation without bias-correction.\n",
+ "future_pr.plot()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.9.16"
}
- ],
- "source": [
- "# Compare it to the future precipitation without bias-correction.\n",
- "future_pr.plot()"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": []
- }
- ],
- "metadata": {
-"kernelspec": {
- "display_name": "Python 3",
- "language": "python",
- "name": "python3"
},
- "language_info": {
- "codemirror_mode": {
- "name": "ipython",
- "version": 3
- },
- "file_extension": ".py",
- "mimetype": "text/x-python",
- "name": "python",
- "nbconvert_exporter": "python",
- "pygments_lexer": "ipython3",
- "version": "3.9.16"
- }
- },
- "nbformat": 4,
- "nbformat_minor": 4
+ "nbformat": 4,
+ "nbformat_minor": 4
}
diff --git a/docs/notebooks/09_Hydrological_impacts_of_climate_change.ipynb b/docs/notebooks/09_Hydrological_impacts_of_climate_change.ipynb
index 15fbd397..e465ebde 100644
--- a/docs/notebooks/09_Hydrological_impacts_of_climate_change.ipynb
+++ b/docs/notebooks/09_Hydrological_impacts_of_climate_change.ipynb
@@ -1,221 +1,221 @@
{
- "cells": [
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "# 09 - Hydrological impacts of climate change"
- ]
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# 09 - Hydrological impacts of climate change"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Performing bias correction on climate model data to perform climate change impact studies on hydrology\n",
+ "\n",
+ "This notebook will allow evaluating the impacts of climate change on the hydrology of a catchment. We will use the data we previously generated in notebook \"08 - Getting and bias-correcting CMIP6 data\", where we produced both reference and future forcing datasets.\n",
+ "\n",
+ "You can apply this notebook to other models, climate datasets, and generally pick and choose parts of various notebooks to build your own complete workflow."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "\"\"\"\n",
+ "Import the required packages\n",
+ "\"\"\"\n",
+ "import datetime as dt\n",
+ "import warnings\n",
+ "\n",
+ "from matplotlib import pyplot as plt\n",
+ "\n",
+ "from ravenpy import Emulator\n",
+ "from ravenpy.config import commands as rc\n",
+ "from ravenpy.config.emulators import GR4JCN\n",
+ "from ravenpy.utilities.testdata import get_file\n",
+ "\n",
+ "warnings.filterwarnings(\"ignore\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Simulate the flows on the reference period\n",
+ "\n",
+ "In this step, we will take the reference period climate data and run the GR4J-CN hydrological model with it. We will then plot a graph to see the streamflow representative of the reference period."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "scrolled": false
+ },
+ "outputs": [],
+ "source": [
+ "# Define the hydrological response unit. We can use the information from the tutorial notebook #02! Here we are using\n",
+ "# arbitrary data for a test catchment.\n",
+ "hru = dict(\n",
+ " area=4250.6,\n",
+ " elevation=843.0,\n",
+ " latitude=54.4848,\n",
+ " longitude=-123.3659,\n",
+ " hru_type=\"land\",\n",
+ ")\n",
+ "\n",
+ "# Define the start and end dates of the reference period:\n",
+ "start_date = dt.datetime(1981, 1, 1)\n",
+ "end_date = dt.datetime(1990, 12, 31)\n",
+ "\n",
+ "# We get the netCDF for testing on a server. You can replace the getfile method by a string containing the path\n",
+ "# to your own netCDF\n",
+ "\n",
+ "reference_ds = get_file(\"notebook_inputs/reference_dataset.nc\")\n",
+ "\n",
+ "# Alternate names for the data in the climate data NetCDF files\n",
+ "alt_names = {\n",
+ " \"TEMP_MIN\": \"tasmin\",\n",
+ " \"TEMP_MAX\": \"tasmax\",\n",
+ " \"PRECIP\": \"pr\",\n",
+ "}\n",
+ "\n",
+ "# Types of data required by the Raven GR4JCN instance\n",
+ "data_type = [\"TEMP_MAX\", \"TEMP_MIN\", \"PRECIP\"]\n",
+ "data_kwds = {\n",
+ " \"ALL\": {\n",
+ " \"elevation\": hru[\"elevation\"],\n",
+ " \"latitude\": hru[\"latitude\"],\n",
+ " \"longitude\": hru[\"longitude\"],\n",
+ " }\n",
+ "}\n",
+ "# Start a model instance, in this case a GR4JCN model emulator.\n",
+ "m = GR4JCN(\n",
+ " params=[0.529, -3.396, 407.29, 1.072, 16.9, 0.947],\n",
+ " Gauge=[\n",
+ " rc.Gauge.from_nc(\n",
+ " reference_ds, # path to the reference period dataset.\n",
+ " data_type=data_type,\n",
+ " alt_names=alt_names,\n",
+ " data_kwds=data_kwds,\n",
+ " )\n",
+ " ],\n",
+ " HRUs=[hru],\n",
+ " StartDate=start_date,\n",
+ " EndDate=end_date,\n",
+ " RunName=\"test\",\n",
+ ")\n",
+ "\n",
+ "# Prepare the emulator by writing files on disk\n",
+ "e = Emulator(config=m)\n",
+ "\n",
+ "# Run the model and get the outputs.\n",
+ "outputs_reference = e.run()\n",
+ "\n",
+ "outputs_reference.hydrograph.q_sim.plot(label=\"Reference\", color=\"blue\", lw=0.5)\n",
+ "plt.legend()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Now do the same but for the future period!\n",
+ "We will copy the block of code from above, changing only the file path (from reference dataset to future dataset) as well as the start and end dates."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Define the start and end dates of the reference period:\n",
+ "start_date = dt.datetime(2081, 1, 1)\n",
+ "end_date = dt.datetime(2090, 12, 31)\n",
+ "\n",
+ "# Get the future period dataset (path)\n",
+ "future_ds = get_file(\"notebook_inputs/future_dataset.nc\")\n",
+ "\n",
+ "# Start a new model instance, again in this case a GR4JCN model emulator.\n",
+ "m = GR4JCN(\n",
+ " params=[0.529, -3.396, 407.29, 1.072, 16.9, 0.947],\n",
+ " Gauge=[\n",
+ " rc.Gauge.from_nc(\n",
+ " # name of the future period dataset.\n",
+ " future_ds,\n",
+ " data_type=data_type,\n",
+ " alt_names=alt_names,\n",
+ " data_kwds=data_kwds,\n",
+ " )\n",
+ " ],\n",
+ " HRUs=[hru],\n",
+ " StartDate=start_date,\n",
+ " EndDate=end_date,\n",
+ " RunName=\"test\",\n",
+ ")\n",
+ "\n",
+ "# Prepare the emulator by writing files on disk\n",
+ "e = Emulator(config=m)\n",
+ "\n",
+ "# Run the model and get the outputs.\n",
+ "outputs_future = e.run()\n",
+ "\n",
+ "outputs_future.hydrograph.q_sim.plot(label=\"Future\", color=\"orange\", lw=0.5)\n",
+ "plt.legend()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## You have just generated streamflows for the reference and future periods!\n",
+ "We can analyze these hydrographs with many tools in PAVICS-Hydro, or export them to use elsewhere, or use them as inputs to another process!"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Get the path to the hydrograph file:\n",
+ "outputs_future.files[\"hydrograph\"]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Work with the hydrograph data directly:\n",
+ "outputs_future.hydrograph"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3 (ipykernel)",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.10.9"
+ }
},
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Performing bias correction on climate model data to perform climate change impact studies on hydrology\n",
- "\n",
- "This notebook will allow evaluating the impacts of climate change on the hydrology of a catchment. We will use the data we previously generated in notebook \"08 - Getting and bias-correcting CMIP6 data\", where we produced both reference and future forcing datasets.\n",
- "\n",
- "You can apply this notebook to other models, climate datasets, and generally pick and choose parts of various notebooks to build your own complete workflow."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "\"\"\"\n",
- "Import the required packages\n",
- "\"\"\"\n",
- "import datetime as dt\n",
- "import warnings\n",
- "\n",
- "from matplotlib import pyplot as plt\n",
- "\n",
- "from ravenpy import Emulator\n",
- "from ravenpy.config import commands as rc\n",
- "from ravenpy.config.emulators import GR4JCN\n",
- "from ravenpy.utilities.testdata import get_file\n",
- "\n",
- "warnings.filterwarnings(\"ignore\")"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Simulate the flows on the reference period\n",
- "\n",
- "In this step, we will take the reference period climate data and run the GR4J-CN hydrological model with it. We will then plot a graph to see the streamflow representative of the reference period."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "scrolled": false
- },
- "outputs": [],
- "source": [
- "# Define the hydrological response unit. We can use the information from the tutorial notebook #02! Here we are using\n",
- "# arbitrary data for a test catchment.\n",
- "hru = dict(\n",
- " area=4250.6,\n",
- " elevation=843.0,\n",
- " latitude=54.4848,\n",
- " longitude=-123.3659,\n",
- " hru_type=\"land\",\n",
- ")\n",
- "\n",
- "# Define the start and end dates of the reference period:\n",
- "start_date = dt.datetime(1981, 1, 1)\n",
- "end_date = dt.datetime(1990, 12, 31)\n",
- "\n",
- "# We get the netCDF for testing on a server. You can replace the getfile method by a string containing the path\n",
- "# to your own netCDF\n",
- "\n",
- "reference_ds = get_file(\"notebook_inputs/reference_dataset.nc\")\n",
- "\n",
- "# Alternate names for the data in the climate data NetCDF files\n",
- "alt_names = {\n",
- " \"TEMP_MIN\": \"tasmin\",\n",
- " \"TEMP_MAX\": \"tasmax\",\n",
- " \"PRECIP\": \"pr\",\n",
- "}\n",
- "\n",
- "# Types of data required by the Raven GR4JCN instance\n",
- "data_type = [\"TEMP_MAX\", \"TEMP_MIN\", \"PRECIP\"]\n",
- "data_kwds = {\n",
- " \"ALL\": {\n",
- " \"elevation\": hru[\"elevation\"],\n",
- " \"latitude\": hru[\"latitude\"],\n",
- " \"longitude\": hru[\"longitude\"],\n",
- " }\n",
- "}\n",
- "# Start a model instance, in this case a GR4JCN model emulator.\n",
- "m = GR4JCN(\n",
- " params=[0.529, -3.396, 407.29, 1.072, 16.9, 0.947],\n",
- " Gauge=[\n",
- " rc.Gauge.from_nc(\n",
- " reference_ds, # path to the reference period dataset.\n",
- " data_type=data_type,\n",
- " alt_names=alt_names,\n",
- " data_kwds=data_kwds,\n",
- " )\n",
- " ],\n",
- " HRUs=[hru],\n",
- " StartDate=start_date,\n",
- " EndDate=end_date,\n",
- " RunName=\"test\",\n",
- ")\n",
- "\n",
- "# Prepare the emulator by writing files on disk\n",
- "e = Emulator(config=m)\n",
- "\n",
- "# Run the model and get the outputs.\n",
- "outputs_reference = e.run()\n",
- "\n",
- "outputs_reference.hydrograph.q_sim.plot(label=\"Reference\", color=\"blue\", lw=0.5)\n",
- "plt.legend()"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Now do the same but for the future period!\n",
- "We will copy the block of code from above, changing only the file path (from reference dataset to future dataset) as well as the start and end dates."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "# Define the start and end dates of the reference period:\n",
- "start_date = dt.datetime(2081, 1, 1)\n",
- "end_date = dt.datetime(2090, 12, 31)\n",
- "\n",
- "# Get the future period dataset (path)\n",
- "future_ds = get_file(\"notebook_inputs/future_dataset.nc\")\n",
- "\n",
- "# Start a new model instance, again in this case a GR4JCN model emulator.\n",
- "m = GR4JCN(\n",
- " params=[0.529, -3.396, 407.29, 1.072, 16.9, 0.947],\n",
- " Gauge=[\n",
- " rc.Gauge.from_nc(\n",
- " # name of the future period dataset.\n",
- " future_ds,\n",
- " data_type=data_type,\n",
- " alt_names=alt_names,\n",
- " data_kwds=data_kwds,\n",
- " )\n",
- " ],\n",
- " HRUs=[hru],\n",
- " StartDate=start_date,\n",
- " EndDate=end_date,\n",
- " RunName=\"test\",\n",
- ")\n",
- "\n",
- "# Prepare the emulator by writing files on disk\n",
- "e = Emulator(config=m)\n",
- "\n",
- "# Run the model and get the outputs.\n",
- "outputs_future = e.run()\n",
- "\n",
- "outputs_future.hydrograph.q_sim.plot(label=\"Future\", color=\"orange\", lw=0.5)\n",
- "plt.legend()"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## You have just generated streamflows for the reference and future periods!\n",
- "We can analyze these hydrographs with many tools in PAVICS-Hydro, or export them to use elsewhere, or use them as inputs to another process!"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "# Get the path to the hydrograph file:\n",
- "outputs_future.files[\"hydrograph\"]"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "# Work with the hydrograph data directly:\n",
- "outputs_future.hydrograph"
- ]
- }
- ],
- "metadata": {
- "kernelspec": {
- "display_name": "Python 3 (ipykernel)",
- "language": "python",
- "name": "python3"
- },
- "language_info": {
- "codemirror_mode": {
- "name": "ipython",
- "version": 3
- },
- "file_extension": ".py",
- "mimetype": "text/x-python",
- "name": "python",
- "nbconvert_exporter": "python",
- "pygments_lexer": "ipython3",
- "version": "3.10.9"
- }
- },
- "nbformat": 4,
- "nbformat_minor": 4
+ "nbformat": 4,
+ "nbformat_minor": 4
}
diff --git a/docs/notebooks/10_Data_assimilation.ipynb b/docs/notebooks/10_Data_assimilation.ipynb
index ee839e3f..c8740cee 100644
--- a/docs/notebooks/10_Data_assimilation.ipynb
+++ b/docs/notebooks/10_Data_assimilation.ipynb
@@ -1,524 +1,524 @@
{
- "cells": [
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "# 10 - Data Assimilation"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Using ravenpy to perform data assimilation of streamflow to prepare the model states for a forecast.\n",
- "\n",
- "Here we apply the Ensemble Kalman Filter (EnKF) data assimilation method to the initial states of a `Raven` hydrological model, which will allow improving the estimation of the initial states to reduce the initial model bias. This also helps improve the forecast skill for shorter-term forecasts (up to a few days lead-time), and in some instances, can also improve longer-term forecasts.\n",
- "\n",
- "We will first start by importing important packages, gathering important datasets and configuration settings as we have seen previously."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 1,
- "metadata": {},
- "outputs": [],
- "source": [
- "import warnings\n",
- "\n",
- "from numba.core.errors import NumbaDeprecationWarning\n",
- "\n",
- "warnings.simplefilter(\"ignore\", category=NumbaDeprecationWarning)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 2,
- "metadata": {},
- "outputs": [],
- "source": [
- "# Import packages\n",
- "import datetime as dt\n",
- "import tempfile\n",
- "from pathlib import Path\n",
- "\n",
- "import matplotlib.pyplot as plt\n",
- "import xarray as xr\n",
- "\n",
- "from ravenpy import Emulator, EnsembleReader\n",
- "from ravenpy.config import commands as rc\n",
- "from ravenpy.config import options as o\n",
- "from ravenpy.config.emulators import GR4JCN\n",
- "from ravenpy.utilities.testdata import get_file\n",
- "\n",
- "# Import hydrometeorological data\n",
- "salmon_meteo = get_file(\n",
- " \"raven-gr4j-cemaneige/Salmon-River-Near-Prince-George_meteo_daily.nc\"\n",
- ")\n",
- "\n",
- "# Define HRU\n",
- "hru = dict(\n",
- " area=4250.6,\n",
- " elevation=843.0,\n",
- " latitude=54.4848,\n",
- " longitude=-123.3659,\n",
- " hru_type=\"land\",\n",
- ")\n",
- "\n",
- "# Alternative names for variables in meteo forcing file\n",
- "alt_names = {\n",
- " \"RAINFALL\": \"rain\",\n",
- " \"TEMP_MIN\": \"tmin\",\n",
- " \"TEMP_MAX\": \"tmax\",\n",
- " \"SNOWFALL\": \"snow\",\n",
- "}\n",
- "\n",
- "# The types of meteorological data available in the file\n",
- "data_type = [\"RAINFALL\", \"TEMP_MIN\", \"TEMP_MAX\", \"SNOWFALL\"]\n",
- "\n",
- "# Additional information about the weather station gauge required by Raven\n",
- "data_kwds = {\n",
- " \"ALL\": {\n",
- " \"elevation\": hru[\"elevation\"],\n",
- " \"latitude\": hru[\"latitude\"],\n",
- " \"longitude\": hru[\"longitude\"],\n",
- " }\n",
- "}\n",
- "\n",
- "# Force a test path.\n",
- "tmp_path = Path(tempfile.mkdtemp())\n",
- "\n",
- "# Generate the meteorological gauge data required by raven\n",
- "gauge = [\n",
- " rc.Gauge.from_nc(\n",
- " salmon_meteo,\n",
- " data_type=data_type,\n",
- " alt_names=alt_names,\n",
- " data_kwds=data_kwds,\n",
- " ),\n",
- "]"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "### We will now start the assimilation with a spinup period\n",
- "\n",
- "Data assimilation is best performed on a series of initial states that are already somewhat reasonable. Starting a model from empty states and applying assimilation will work but will take more time to converge, and might in some instances create numerical instability. In this example, we perform a 1-year simulation to generate reasonable model states, and at the last time step, Raven will apply the Ensemble Kalman Filter (EnKF) to assimilate the states for the next step (forecasting or closed-loop assimilation)."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 3,
- "metadata": {},
- "outputs": [],
- "source": [
- "# Spin up the model. This period will be used to do an initial spinup, at the end of which the model states\n",
- "# will be assimilated to better represent the observed streamflow and thus setting up parameters for the next\n",
- "# steps. We first need to specify the spinup dates:\n",
- "start_date = dt.datetime(1996, 9, 1)\n",
- "end_date = dt.datetime(1997, 8, 31)\n",
- "\n",
- "# Prepare the configuration for the spinup. Since we have added information about Ensemble Kalman Filter data\n",
- "# assimilation, a \".rve\" file will also be written to disk and Raven will use this to perform the assimilation.\n",
- "conf_spinup = GR4JCN(\n",
- " # Model parameters\n",
- " params=[0.14, -0.005, 576, 7.0, 1.1, 0.92],\n",
- " # Meteorological gauge data from the Salmon river\n",
- " Gauge=gauge,\n",
- " # Streamflow observations. Very important for data assimilation, or else there is no target to attain.\n",
- " ObservationData=[rc.ObservationData.from_nc(salmon_meteo, alt_names=\"qobs\")],\n",
- " # Sepcify the HRUs composing the watershed. Here we are using a lumped model, so there is a single HRU.\n",
- " HRUs=[hru],\n",
- " # Start and end dates of the simulation. EnKF will be applied at the last date (EndDate)\n",
- " StartDate=start_date,\n",
- " EndDate=end_date,\n",
- " # Specify which mode of EnKF we want to use. We want the spinup for now, but later we will use other\n",
- " # options. We are also using 25 members in the ensemble, but this can be changed according to your needs.\n",
- " EnsembleMode=rc.EnsembleMode(n=25),\n",
- " EnKFMode=o.EnKFMode.SPINUP,\n",
- " # Run name of the spinup period. This is important because it will be required in the next step.\n",
- " RunName=\"spinup\",\n",
- " # Let's specify some metrics to assess the model performance.\n",
- " EvaluationMetrics=(\"NASH_SUTCLIFFE\",),\n",
- " # The folder where the ensemble runs will be generated. By default, the runs are called ens_1... ens_N.\n",
- " OutputDirectoryFormat=\"./ens_*\",\n",
- " # We need to tell Raven which inputs to perturb. the perturbation is applied following a distribution\n",
- " # that should realistically represent the uncertainty of the observations of these variables. Here we\n",
- " # use precipitation, but we could also add temperature for example.\n",
- " ForcingPerturbation=[\n",
- " rc.ForcingPerturbation(\n",
- " forcing=\"PRECIP\",\n",
- " dist=\"DIST_NORMAL\",\n",
- " p1=1.0,\n",
- " p2=0.5,\n",
- " adj=\"MULTIPLICATIVE\",\n",
- " ),\n",
- " rc.ForcingPerturbation(\n",
- " forcing=\"TEMP_MAX\",\n",
- " dist=\"DIST_NORMAL\",\n",
- " p1=0.0,\n",
- " p2=2.0,\n",
- " adj=\"ADDITIVE\",\n",
- " ),\n",
- " rc.ForcingPerturbation(\n",
- " forcing=\"TEMP_MIN\",\n",
- " dist=\"DIST_NORMAL\",\n",
- " p1=0.0,\n",
- " p2=2.0,\n",
- " adj=\"ADDITIVE\",\n",
- " ),\n",
- " ],\n",
- " # Define the HRU Groups the assimilation will be applied on. Here we apply to all HRUs (single HRU)\n",
- " DefineHRUGroups=[\"All\"],\n",
- " HRUGroup=[{\"name\": \"All\", \"groups\": [\"1\"]}],\n",
- " # Define which variables we want to assimilate.\n",
- " # Here we only adjust the water content of the 2 first layers of soil (SOIL[0] and SOIL[1])\n",
- " AssimilatedState=[\n",
- " rc.AssimilatedState(state=\"SOIL[0]\", group=\"All\"),\n",
- " rc.AssimilatedState(state=\"SOIL[1]\", group=\"All\"),\n",
- " ],\n",
- " # Define which subbasin id the streamflow is associated with\n",
- " AssimilateStreamflow=[rc.AssimilateStreamflow(sb_id=1)],\n",
- " # Define the error model for the observed streamflow. We will have a STD equal to 7% of the streamflow\n",
- " # value for each day, following a normal distribution.\n",
- " ObservationErrorModel=[\n",
- " rc.ObservationErrorModel(\n",
- " state=\"STREAMFLOW\",\n",
- " dist=\"DIST_NORMAL\",\n",
- " p1=1,\n",
- " p2=0.07,\n",
- " adj=\"MULTIPLICATIVE\",\n",
- " )\n",
- " ],\n",
- " # Set to true for more details (verbosity)\n",
- " DebugMode=False,\n",
- " NoisyMode=False,\n",
- ")\n",
- "\n",
- "# Now that the configuration is completed, we can actually launch Raven to do the assimilation\n",
- "spinup = Emulator(config=conf_spinup, workdir=tmp_path, overwrite=True).run(\n",
- " overwrite=True\n",
- ")"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "We have now run the model and obtained an ensemble of simulations that each have perturbed meteorological data and new initial states. We can read-in the generated hydrographs and see what our spinup period flows look like."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 4,
- "metadata": {},
- "outputs": [
+ "cells": [
{
- "data": {
- "image/png": "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",
- "text/plain": [
- "
"
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# 10 - Data Assimilation"
]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "# Get the paths to all the ens_1...ens_N folders, one per member\n",
- "paths_spinup = list(tmp_path.glob(\"ens_*\"))\n",
- "\n",
- "# Read those into memory in an EnsembleReader object\n",
- "ens_spinup = EnsembleReader(run_name=conf_spinup.run_name, paths=paths_spinup)\n",
- "\n",
- "# We can now plot the results\n",
- "ens_spinup.hydrograph.q_sim[:, :, 0].plot.line(\"b\", x=\"time\", add_legend=False, lw=0.5)\n",
- "ens_spinup.hydrograph.q_sim[1, :, 0].plot.line(\"b\", x=\"time\", label=\"Forecasts\", lw=0.5)\n",
- "ens_spinup.hydrograph.q_obs[1, :, 0].plot.line(\n",
- " x=\"time\", color=\"black\", label=\"Observation\"\n",
- ")\n",
- "plt.legend(loc=\"upper left\")\n",
- "plt.ylabel(\"Streamlfow (m³/s)\")\n",
- "plt.title(\"Spinup period\")\n",
- "plt.show()"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "### Start converging model states by closed-loop assimilation\n",
- "We have completed the spinup period, which has left us with a set of 25 initial states that can be used to sample initial state uncertainty. However, we need to do a few more assimilation passes before the model starts to converge to appropriate values. From the assimilated states of the spinup period, let's now do a single 3-day simulation and see what happens:"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 5,
- "metadata": {},
- "outputs": [
+ },
{
- "data": {
- "image/png": "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",
- "text/plain": [
- "
"
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Using ravenpy to perform data assimilation of streamflow to prepare the model states for a forecast.\n",
+ "\n",
+ "Here we apply the Ensemble Kalman Filter (EnKF) data assimilation method to the initial states of a `Raven` hydrological model, which will allow improving the estimation of the initial states to reduce the initial model bias. This also helps improve the forecast skill for shorter-term forecasts (up to a few days lead-time), and in some instances, can also improve longer-term forecasts.\n",
+ "\n",
+ "We will first start by importing important packages, gathering important datasets and configuration settings as we have seen previously."
]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "# Set the start date equal to the assimilated date of the prior run, as we want to start from the assimilated\n",
- "# states. The end date is set 3 days later, after which assimilation will be automatically performed.\n",
- "start_date = end_date\n",
- "end_date = end_date + dt.timedelta(days=3)\n",
- "\n",
- "# Closed-Loop assimilation. From the previous configuration, we can make a copy and only change the required\n",
- "# parameters, such as the run name, start and end dates, and the type of EnKF (switch from spinup to closed-loop).\n",
- "conf_loop = conf_spinup.duplicate(\n",
- " EnKFMode=o.EnKFMode.CLOSED_LOOP,\n",
- " # This will be the name of the output files in the closed-loop run.\n",
- " RunName=\"loop\",\n",
- " # This is the name of the run we will start from, i.e. the assimilated spinup states from earlier!\n",
- " SolutionRunName=\"spinup\",\n",
- " # We need to tell the model not to set the default initial conditions (it will use the assimilated states)\n",
- " UniformInitialConditions=None,\n",
- " # Set the new dates\n",
- " StartDate=start_date,\n",
- " EndDate=end_date,\n",
- ")\n",
- "\n",
- "# Now that the configuration is ready, launch the assimilation run. Raven will run 25 times: Once for each member\n",
- "# With the same perturbed meteorological and hydrometric data and parameters as defined previously, but for this\n",
- "# new 3-day period.\n",
- "loop = Emulator(config=conf_loop, workdir=tmp_path, overwrite=True).run(overwrite=True)\n",
- "\n",
- "# Get the paths to all the ens_1...ens_N folders, one per member\n",
- "paths_loop = list(tmp_path.glob(\"ens_*\"))\n",
- "\n",
- "# Repeat the same process as the spinup to look at model results:\n",
- "ens_loop = EnsembleReader(run_name=conf_loop.run_name, paths=paths_loop)\n",
- "\n",
- "# We can now plot the results\n",
- "ens_loop.hydrograph.q_sim[:, :, 0].plot.line(\"b\", x=\"time\", add_legend=False, lw=0.5)\n",
- "ens_loop.hydrograph.q_sim[1, :, 0].plot.line(\"b\", x=\"time\", label=\"Forecasts\", lw=0.5)\n",
- "ens_loop.hydrograph.q_obs[1, :, 0].plot.line(\n",
- " x=\"time\", color=\"black\", label=\"Observation\"\n",
- ")\n",
- "plt.legend(loc=\"lower left\")\n",
- "plt.ylabel(\"Streamlfow (m³/s)\")\n",
- "plt.title(\"First closed-loop period\")\n",
- "plt.show()"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "We can see that the assimilation has not converged very well. This is expected, as there have only been 2 assimilation steps performed as of yet: One after the spinup period, and this one that happens 3 days later. We will iterate the assimilation loop to help the model converge after multiple assimilation steps. Here we will loop over 30 steps of 3 days each."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 6,
- "metadata": {},
- "outputs": [
+ },
{
- "data": {
- "image/png": "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",
- "text/plain": [
- "
"
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import warnings\n",
+ "\n",
+ "from numba.core.errors import NumbaDeprecationWarning\n",
+ "\n",
+ "warnings.simplefilter(\"ignore\", category=NumbaDeprecationWarning)"
]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "# Let's store the hydrograph from the previous 3-day run in a variable that we will append to at each time step.\n",
- "total_hydrograph = ens_loop.hydrograph\n",
- "\n",
- "# Here is where the assimilation loop is performed. We will apply the assimilation 30 successive times, advancing\n",
- "# in time by 3 days each iteration.\n",
- "for i in range(0, 30):\n",
- " # Set the new start_date and end_dates\n",
- " start_date = end_date\n",
- " end_date = end_date + dt.timedelta(days=3)\n",
- "\n",
- " # Again, copy the configuration object and change some elements\n",
- " conf_loop = conf_loop.duplicate(\n",
- " # Here we will set RunName and SolutionRunName to the same values such that the model will read the \"loop\"\n",
- " # run, perform the assimilation, and save the results to \"loop\" again, making them available for the\n",
- " # next run, effectively overwriting the results at each step. We could preserve each run's result by changing\n",
- " # these run names dynamically, but in our case it is not important nor required to do so.\n",
- " RunName=\"loop\",\n",
- " SolutionRunName=\"loop\",\n",
- " # Again, set the initial conditions to None to preserve the assimilated ones.\n",
- " UniformInitialConditions=None,\n",
- " # Set the start and end date of the simulation period, with the assimilation being performed on the final date.\n",
- " StartDate=start_date,\n",
- " EndDate=end_date,\n",
- " )\n",
- "\n",
- " # Perform the actual simulation and assimilation for this 3-day step.\n",
- " new_loop = Emulator(config=conf_loop, workdir=tmp_path, overwrite=True).run(\n",
- " overwrite=True\n",
- " )\n",
- "\n",
- " # Extract the results for this 3-day hydrograph and store it into our \"total_hydrograph\" which keeps track\n",
- " # of the flows for each of the 3-day periods.\n",
- " ens_loop = EnsembleReader(run_name=conf_loop.run_name, paths=paths_loop)\n",
- " total_hydrograph = xr.concat([total_hydrograph, ens_loop.hydrograph], dim=\"time\")\n",
- "\n",
- "\n",
- "# Once the loop is complete, plot the results:\n",
- "total_hydrograph.q_sim[:, :, 0].plot.line(\"b\", x=\"time\", add_legend=False, lw=0.5)\n",
- "total_hydrograph.q_sim[1, :, 0].plot.line(\"b\", x=\"time\", label=\"Forecasts\", lw=0.5)\n",
- "total_hydrograph.q_obs[1, :, 0].plot.line(x=\"time\", color=\"black\", label=\"Observation\")\n",
- "plt.legend(loc=\"upper left\")\n",
- "plt.ylabel(\"Streamlfow (m³/s)\")\n",
- "plt.title(\"All closed-loop periods\")\n",
- "plt.show()"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Before going any further, let's compare the assimilated results to those obtained using a simple non-assimilated run (open-loop):"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 7,
- "metadata": {},
- "outputs": [
+ },
{
- "data": {
- "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlAAAAHrCAYAAAAAB6NuAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAC+hElEQVR4nOzdd3hT1RvA8W9a6F5QRimj7L1lIzLLlCGyEYsDEQREEBVRwQEoCAKiIqCAyHAwfgiyZc+yV9lljzJboLSl7fn9cUjadLe0TQLv53nuk+Tem3tP0rR5e85732NQSimEEEIIIUSa2Vm6AUIIIYQQtkYCKCGEEEKIdJIASgghhBAinSSAEkIIIYRIJwmghBBCCCHSSQIoIYQQQoh0kgBKCCGEECKdJIASQgghhEgnCaCEEEIIIdJJAijxVDh06BCvvfYaxYoVw8nJCTc3N6pXr864ceO4ffu2ab9GjRrRqFEjyzU0FQaDgVGjRqW638aNGzEYDGzcuDHL22SLgoKC6N27N0WKFMHBwYE8efLQunVrVq5caemmpZm1f1bT4ty5cxgMBmbPnm2R8/fu3ZuiRYtm6Lnz589n0qRJSW5L6++peLrlsHQDhHhSM2bMoH///pQpU4Zhw4ZRvnx5Hj16xJ49e5g2bRo7duxgyZIllm6myCaLFy+mR48eFC9enE8//ZQyZcpw/fp1Zs2aRevWrRk2bBjjxo2zdDOfCQUKFGDHjh2UKFHC0k1Jt/nz53PkyBEGDx6caNuOHTsoVKhQ9jdKWBUJoIRN27FjB/369cPf35+lS5fi6Oho2ubv78/QoUNZtWqVBVsostOZM2fo1asXlSpVYuPGjbi6upq2de7cmX79+jF+/HiqV69Ot27dLNjSZ4OjoyN16tSxdDMy3dP4mkT6yRCesGljxozBYDAwffp0s+DJyMHBgXbt2qV4jNu3b9O/f38KFiyIg4MDxYsXZ8SIEURGRprt99dff1G7dm08PT1xcXGhePHivP7662b7hIWF8f7771OsWDEcHBwoWLAggwcP5sGDB4n269OnD97e3ri5udGyZUtOnjyZwXchzrJly6hbty4uLi64u7vj7+/Pjh07Eu23detWmjZtiru7Oy4uLtSrV48VK1aY7TN79mwMBgNr167ltddeI3fu3Li6utK2bVvOnj2bYjuWLl2KwWBg/fr1ibb99NNPGAwGDh06BMDZs2fp1q0bvr6+ODo6kj9/fpo2bcqBAwfS/fq/++47wsPD+f77782CJ6MJEybg5eXF6NGjM/w6161bR9OmTfHw8MDFxYX69esnep2jRo3CYDBw9OhRunfvjqenJ/nz5+f1118nNDQ03a/LKK2f1YiICIYPH272OXznnXe4e/eu2X5FixblxRdfZMmSJVSuXBknJyeKFy/OlClT0tSe1H4nkhrCM743hw4donPnznh6epI7d26GDBlCdHQ0J06coGXLlri7u1O0aNFEvYXGn9e5c+fM1qd1WPuHH37ghRdeIF++fLi6ulKpUiXGjRvHo0ePTPs0atSIFStWcP78eQwGg2kxSmoI78iRI7Rv355cuXLh5ORE1apVmTNnTpJtXLBgASNGjMDX1xcPDw+aNWvGiRMnzPbdv38/L774Ivny5cPR0RFfX1/atGnDpUuXUnx9IvtIACVsVkxMDP/99x/PPfcchQsXztAxIiIiaNy4Mb/99htDhgxhxYoVvPLKK4wbN46OHTua9tuxYwddu3alePHiLFy4kBUrVvDZZ58RHR1t2ic8PJyGDRsyZ84cBg0axMqVK/nwww+ZPXs27dq1QykFgFKKDh06MHfuXIYOHcqSJUuoU6cOrVq1eqL3Y/78+bRv3x4PDw8WLFjAL7/8wp07d2jUqBFbt2417bdp0yaaNGlCaGgov/zyCwsWLMDd3Z22bdvyxx9/JDruG2+8gZ2dnSknZPfu3TRq1CjRl3F8xj/8s2bNSrRt9uzZVK9encqVKwPQunVr9u7dy7hx41i7di0//fQT1apVS/H4yVm7di358+dPtofAxcWF5s2bc+TIEa5du5bu1/n777/TvHlzPDw8mDNnDn/++Se5c+emRYsWSQaLL7/8MqVLl2bRokV89NFHzJ8/n/feey/drwvS/lk1fr6+/fZbevXqxYoVKxgyZAhz5syhSZMmiYKtAwcOMHjwYN577z2WLFlCvXr1ePfdd/n2229TbE9afidS0qVLF6pUqcKiRYvo06cP3333He+99x4dOnSgTZs2LFmyhCZNmvDhhx+yePHi9L9hyThz5gw9evRg7ty5LF++nDfeeIPx48fTt29f0z4//vgj9evXx8fHhx07dpiW5Jw4cYJ69epx9OhRpkyZwuLFiylfvjy9e/dOcrj4448/5vz588ycOZPp06dz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j7y8PFy+fBkZGRmV7o/Yt29fvPbaaxg2bJjuS0MQEdUkTKB0xgSKHMFsNuPChQvl1lAJDg7GwIEDmTgREV0HWz+/OSyUqAZzcXGxzgAMDw/XuzhERHWGDZOgiYiIiKgsJlBEREREGjGBIiIiItKICRQRERGRRkygiIiIiDRiAkVERESkERMoIiIiIo2YQBERERFpxASKiIiISCMmUEREREQaMYEiIiIi0ogJFBEREZFGTKCIiIiINGICRURERKQREygiIiIijZhAEREREWnEBIqIiIhIIyZQRERERBoxgSIiIiLSiAkUERERkUZMoIiIiIg0YgJFREREpBETKCIiIiKNmEARERERacQEioiIiEgjJlBEREREGjGBIiIiItKICdRVLFq0CG3btoWXlxd69uyJn376Se8iERERkRNgAlWFL774Ak888QRefPFFHDp0CAMGDMDIkSORlJSkd9GIiIhIZwYREb0L4Yz69OmDHj164KOPPrKe69y5M0aPHo233377ms/Pzc1Fw4YNkZOTgwYNGtizqERERFRNbP38dnNgmWqMoqIiHDhwAM8991y588OHD8cvv/xS6XOMRiOMRqP1fk5ODgD1iyAiIqKawfK5fa32JSZQlcjMzITJZEKzZs3KnW/WrBnS0tIqfc7bb7+N1157rcL51q1b26WMREREZD8XLlxAw4YNq3ycCdRVGAyGcvdFpMI5i+effx4zZ8603s/OzkZwcDCSkpKu+gsgJTc3F61bt8bZs2fZ5VnNGFvtGDPHYry1Y8zsJycnB0FBQQgICLjqdUygKtG4cWO4urpWaG1KT0+v0Cpl4enpCU9PzwrnGzZsyMqtQYMGDRgvO2FstWPMHIvx1o4xsx8Xl6vPs+MsvEp4eHigZ8+e2LFjR7nzO3bsQL9+/XQqFRERETkLtkBVYebMmZg8eTJ69eqFW265BUuWLEFSUhKmT5+ud9GIiIhIZ0ygqjBhwgRcuHABs2fPRmpqKsLCwrB582YEBwfb9HxPT0+8+uqrlXbrUUWMl/0wttoxZo7FeGvHmNmPrbHlOlBEREREGnEMFBEREZFGTKCIiIiINGICRURERKQREygiIiIijZhAEREREWnEBIqIiIhIIyZQRERERBoxgdKoqKhI7yLUKOfOncPYsWOxZs0avYtSK7E+asP66Hiso9qwjtpPdddFJlAavPji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+/z58xIWFiZvvPGGiKhfZF3BeNkX46sN4+V4jLk2jJf9MLbVS3MCdeXGf4GBgTJt2jTJzc2t8HhBQYEUFRXJokWLJCIiQmJjY2+wuDUP42VfjK82jJfjMebaMF72w9hWr+uehWfJUNeuXStubm6yffv2co8nJyfLokWLpFevXhIQECCff/75jZW0hmO87Ivx1YbxcjzGXBvGy34Y2+phELnxYfP9+vWDj48PVq1ahaZNmyIjIwNNmjTB6tWrce7cOcyaNas6xrvXGoyXfTG+2jBejseYa8N42Q9je/1uKIEqKSmBm5sb4uPjcdNNN2HevHlITExETEwMVqxYgbCwsOosa43HeNkX46sN4+V4jLk2jJf9MLbVoLqasm6++WYxGAwSHBwsW7dura6XrbUYL/tifLVhvByPMdeG8bIfxvb63HACdeLECQkLCxNvb29ZunRpdZSpVmO87Ivx1YbxcjzGXBvGy34Y2xtz3SuRW7i6umLs2LHIzMzElClTqqNRrFZjvOyL8dWG8XI8xlwbxst+GNsbUy2DyImIiIjqkhtugSIiIiKqa5hAEREREWnEBIqIiIhIIyZQRERERBoxgSIiIiLSiAkUERERkUZMoIiIiIg0YgJFRFTGDz/8AIPBgOzsbL2LQkROjAtpElGdNnjwYHTv3h0ffPABAKCoqAhZWVlo1qwZDAaDvoUjIqflpncBiIiciYeHB5o3b653MYjIybELj4jqrAceeAC7d+/G/PnzYTAYYDAYsHz58nJdeMuXL4efnx++/fZbdOzYEd7e3hg3bhzy8vKwYsUKtGnTBv7+/njsscdgMpmsr11UVIRnnnkGLVu2hI+PD/r06YMffvhBnx+UiKodW6CIqM6aP38+jh8/jrCwMMyePRsAEB8fX+G6/Px8fPjhh1izZg0uXbqEMWPGYMyYMfDz88PmzZtx8uRJjB07Fv3798eECRMAAA8++CBOnz6NNWvWIDAwEBs2bMCIESMQFxeHDh06OPTnJKLqxwSKiOqshg0bwsPDA97e3tZuu2PHjlW4rri4GB999BFCQkIAAOPGjcPKlStx/vx5+Pr6okuXLhgyZAh27dqFCRMmIDExEatXr0ZycjICAwMBAE899RS2bt2KZcuW4a233nLcD0lEdsEEiojoGry9va3JEwA0a9YMbdq0ga+vb7lz6enpAICDBw9CRBAaGlrudYxGIxo1auSYQhORXTGBIiK6Bnd393L3DQZDpefMZjMAwGw2w9XVFQcOHICrq2u568omXURUczGBIqI6zcPDo9zg7+oQEREBk8mE9PR0DBgwoFpfm4icA2fhEVGd1qZNG+zZswenT59GZmamtRXpRoSGhmLSpEmIjo7G+vXrcerUKezbtw9z5szB5s2bq6HURKQ3JlBEVKc99dRTcHV1RZcuXdCkSRMkJSVVy+suW7YM0dHRmDVrFjp27Ii77roLe/bsQevWravl9YlIX1yJnIiIiEgjtkARERERacQEioiIiEgjJlBEREREGjGBIiIiItKICRQRERGRRkygiIiIiDRiAkVERESkERMoIiIiIo2YQBERERFpxASKiIiISCMmUEREREQa/X/rt2h9vcie1gAAAABJRU5ErkJggg==",
- "text/plain": [
- "
"
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Import packages\n",
+ "import datetime as dt\n",
+ "import tempfile\n",
+ "from pathlib import Path\n",
+ "\n",
+ "import matplotlib.pyplot as plt\n",
+ "import xarray as xr\n",
+ "\n",
+ "from ravenpy import Emulator, EnsembleReader\n",
+ "from ravenpy.config import commands as rc\n",
+ "from ravenpy.config import options as o\n",
+ "from ravenpy.config.emulators import GR4JCN\n",
+ "from ravenpy.utilities.testdata import get_file\n",
+ "\n",
+ "# Import hydrometeorological data\n",
+ "salmon_meteo = get_file(\n",
+ " \"raven-gr4j-cemaneige/Salmon-River-Near-Prince-George_meteo_daily.nc\"\n",
+ ")\n",
+ "\n",
+ "# Define HRU\n",
+ "hru = dict(\n",
+ " area=4250.6,\n",
+ " elevation=843.0,\n",
+ " latitude=54.4848,\n",
+ " longitude=-123.3659,\n",
+ " hru_type=\"land\",\n",
+ ")\n",
+ "\n",
+ "# Alternative names for variables in meteo forcing file\n",
+ "alt_names = {\n",
+ " \"RAINFALL\": \"rain\",\n",
+ " \"TEMP_MIN\": \"tmin\",\n",
+ " \"TEMP_MAX\": \"tmax\",\n",
+ " \"SNOWFALL\": \"snow\",\n",
+ "}\n",
+ "\n",
+ "# The types of meteorological data available in the file\n",
+ "data_type = [\"RAINFALL\", \"TEMP_MIN\", \"TEMP_MAX\", \"SNOWFALL\"]\n",
+ "\n",
+ "# Additional information about the weather station gauge required by Raven\n",
+ "data_kwds = {\n",
+ " \"ALL\": {\n",
+ " \"elevation\": hru[\"elevation\"],\n",
+ " \"latitude\": hru[\"latitude\"],\n",
+ " \"longitude\": hru[\"longitude\"],\n",
+ " }\n",
+ "}\n",
+ "\n",
+ "# Force a test path.\n",
+ "tmp_path = Path(tempfile.mkdtemp())\n",
+ "\n",
+ "# Generate the meteorological gauge data required by raven\n",
+ "gauge = [\n",
+ " rc.Gauge.from_nc(\n",
+ " salmon_meteo,\n",
+ " data_type=data_type,\n",
+ " alt_names=alt_names,\n",
+ " data_kwds=data_kwds,\n",
+ " ),\n",
+ "]"
]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "# Reset the start and end-dates to cover the entire period (spinup + 30 3-day steps)\n",
- "start_date = dt.datetime(1996, 9, 1)\n",
- "end_date = dt.datetime(1997, 8, 31) + dt.timedelta(days=30 * 3)\n",
- "\n",
- "# Setup a standard GR4JCN model\n",
- "conf_openloop = GR4JCN(\n",
- " params=[0.14, -0.005, 576, 7.0, 1.1, 0.92],\n",
- " Gauge=gauge,\n",
- " ObservationData=[rc.ObservationData.from_nc(salmon_meteo, alt_names=\"qobs\")],\n",
- " HRUs=[hru],\n",
- " StartDate=start_date,\n",
- " EndDate=end_date,\n",
- " RunName=\"OPEN_LOOP\",\n",
- " EvaluationMetrics=(\"NASH_SUTCLIFFE\",),\n",
- ")\n",
- "\n",
- "openloop = Emulator(config=conf_openloop, workdir=tmp_path, overwrite=True).run(\n",
- " overwrite=True\n",
- ")\n",
- "\n",
- "openloop.hydrograph.q_sim.plot.line(\"r\", x=\"time\", label=\"Open-loop simulation\")\n",
- "total_hydrograph.q_sim[:, :, 0].mean(dim=\"member\").plot.line(\n",
- " \"b\", x=\"time\", label=\"Closed-loop assimilation\"\n",
- ")\n",
- "openloop.hydrograph.q_obs.plot.line(x=\"time\", color=\"black\", label=\"Observations\")\n",
- "\n",
- "plt.xlim([dt.date(1997, 9, 1), dt.date(1997, 12, 1)])\n",
- "plt.ylim([0, 50])\n",
- "plt.legend(loc=\"upper left\")\n",
- "plt.ylabel(\"Streamlfow (m³/s)\")\n",
- "plt.title(\"Closed-loop vs. Open-loop simulations\")\n",
- "plt.show()"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "We can see that the data assimilation as vastly improved most of the hydrograph. Making the assimilation more frequent, changing other state variables, or adjusting the error model hyperparameters could also lead to better simulations.\n",
- "\n",
- "Once we are satisfied with the initial states, our model would now be ready for forecasting, using the ensemble initial states as initial conditions for generating the forecasts. This can be done using the EnKF forecating method:"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 8,
- "metadata": {
- "tags": []
- },
- "outputs": [
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### We will now start the assimilation with a spinup period\n",
+ "\n",
+ "Data assimilation is best performed on a series of initial states that are already somewhat reasonable. Starting a model from empty states and applying assimilation will work but will take more time to converge, and might in some instances create numerical instability. In this example, we perform a 1-year simulation to generate reasonable model states, and at the last time step, Raven will apply the Ensemble Kalman Filter (EnKF) to assimilate the states for the next step (forecasting or closed-loop assimilation)."
+ ]
+ },
{
- "data": {
- "image/png": "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",
- "text/plain": [
- "
"
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Spin up the model. This period will be used to do an initial spinup, at the end of which the model states\n",
+ "# will be assimilated to better represent the observed streamflow and thus setting up parameters for the next\n",
+ "# steps. We first need to specify the spinup dates:\n",
+ "start_date = dt.datetime(1996, 9, 1)\n",
+ "end_date = dt.datetime(1997, 8, 31)\n",
+ "\n",
+ "# Prepare the configuration for the spinup. Since we have added information about Ensemble Kalman Filter data\n",
+ "# assimilation, a \".rve\" file will also be written to disk and Raven will use this to perform the assimilation.\n",
+ "conf_spinup = GR4JCN(\n",
+ " # Model parameters\n",
+ " params=[0.14, -0.005, 576, 7.0, 1.1, 0.92],\n",
+ " # Meteorological gauge data from the Salmon river\n",
+ " Gauge=gauge,\n",
+ " # Streamflow observations. Very important for data assimilation, or else there is no target to attain.\n",
+ " ObservationData=[rc.ObservationData.from_nc(salmon_meteo, alt_names=\"qobs\")],\n",
+ " # Sepcify the HRUs composing the watershed. Here we are using a lumped model, so there is a single HRU.\n",
+ " HRUs=[hru],\n",
+ " # Start and end dates of the simulation. EnKF will be applied at the last date (EndDate)\n",
+ " StartDate=start_date,\n",
+ " EndDate=end_date,\n",
+ " # Specify which mode of EnKF we want to use. We want the spinup for now, but later we will use other\n",
+ " # options. We are also using 25 members in the ensemble, but this can be changed according to your needs.\n",
+ " EnsembleMode=rc.EnsembleMode(n=25),\n",
+ " EnKFMode=o.EnKFMode.SPINUP,\n",
+ " # Run name of the spinup period. This is important because it will be required in the next step.\n",
+ " RunName=\"spinup\",\n",
+ " # Let's specify some metrics to assess the model performance.\n",
+ " EvaluationMetrics=(\"NASH_SUTCLIFFE\",),\n",
+ " # The folder where the ensemble runs will be generated. By default, the runs are called ens_1... ens_N.\n",
+ " OutputDirectoryFormat=\"./ens_*\",\n",
+ " # We need to tell Raven which inputs to perturb. the perturbation is applied following a distribution\n",
+ " # that should realistically represent the uncertainty of the observations of these variables. Here we\n",
+ " # use precipitation, but we could also add temperature for example.\n",
+ " ForcingPerturbation=[\n",
+ " rc.ForcingPerturbation(\n",
+ " forcing=\"PRECIP\",\n",
+ " dist=\"DIST_NORMAL\",\n",
+ " p1=1.0,\n",
+ " p2=0.5,\n",
+ " adj=\"MULTIPLICATIVE\",\n",
+ " ),\n",
+ " rc.ForcingPerturbation(\n",
+ " forcing=\"TEMP_MAX\",\n",
+ " dist=\"DIST_NORMAL\",\n",
+ " p1=0.0,\n",
+ " p2=2.0,\n",
+ " adj=\"ADDITIVE\",\n",
+ " ),\n",
+ " rc.ForcingPerturbation(\n",
+ " forcing=\"TEMP_MIN\",\n",
+ " dist=\"DIST_NORMAL\",\n",
+ " p1=0.0,\n",
+ " p2=2.0,\n",
+ " adj=\"ADDITIVE\",\n",
+ " ),\n",
+ " ],\n",
+ " # Define the HRU Groups the assimilation will be applied on. Here we apply to all HRUs (single HRU)\n",
+ " DefineHRUGroups=[\"All\"],\n",
+ " HRUGroup=[{\"name\": \"All\", \"groups\": [\"1\"]}],\n",
+ " # Define which variables we want to assimilate.\n",
+ " # Here we only adjust the water content of the 2 first layers of soil (SOIL[0] and SOIL[1])\n",
+ " AssimilatedState=[\n",
+ " rc.AssimilatedState(state=\"SOIL[0]\", group=\"All\"),\n",
+ " rc.AssimilatedState(state=\"SOIL[1]\", group=\"All\"),\n",
+ " ],\n",
+ " # Define which subbasin id the streamflow is associated with\n",
+ " AssimilateStreamflow=[rc.AssimilateStreamflow(sb_id=1)],\n",
+ " # Define the error model for the observed streamflow. We will have a STD equal to 7% of the streamflow\n",
+ " # value for each day, following a normal distribution.\n",
+ " ObservationErrorModel=[\n",
+ " rc.ObservationErrorModel(\n",
+ " state=\"STREAMFLOW\",\n",
+ " dist=\"DIST_NORMAL\",\n",
+ " p1=1,\n",
+ " p2=0.07,\n",
+ " adj=\"MULTIPLICATIVE\",\n",
+ " )\n",
+ " ],\n",
+ " # Set to true for more details (verbosity)\n",
+ " DebugMode=False,\n",
+ " NoisyMode=False,\n",
+ ")\n",
+ "\n",
+ "# Now that the configuration is completed, we can actually launch Raven to do the assimilation\n",
+ "spinup = Emulator(config=conf_spinup, workdir=tmp_path, overwrite=True).run(\n",
+ " overwrite=True\n",
+ ")"
]
- },
- "metadata": {},
- "output_type": "display_data"
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "We have now run the model and obtained an ensemble of simulations that each have perturbed meteorological data and new initial states. We can read-in the generated hydrographs and see what our spinup period flows look like."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjsAAAHgCAYAAABDx6wqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAACqbUlEQVR4nOzdd3RUVdcG8OdOS+89kAQChJbQlU6Q3kGkg4Dy6atIDyKISkQFQSmKgooIIiCoFOlVivTekR4IISG9J5My9/tjc6ekkUwmff/WmpVk5s7MSUR4ss8+5wiiKIpgjDHGGKukZGU9AMYYY4yxksRhhzHGGGOVGocdxhhjjFVqHHYYY4wxVqlx2GGMMcZYpcZhhzHGGGOVGocdxhhjjFVqHHYYY4wxVqlx2GGMMcZYpcZhhzGGM2fO4NVXX4W3tzfMzMzg5uaG1q1bIygoyKjXCwkJgSAIWLNmjWkHWsF17NgRHTt2NOlrCoKA4OBgk74mY5WNoqwHwBgrW7t27UK/fv3QsWNHLFy4EB4eHggPD8f58+exceNGLFq0qMiv6eHhgVOnTqFWrVolMOKKa/ny5WU9BMaqJIHPxmKsagsMDERYWBj+++8/KBSGv/9oNBrIZFwALq7U1FRYWlqWyGsLgoA5c+ZwdYexAvDfYoxVcTExMXB2ds4VdADkCjo1atRAnz59sHXrVjRq1Ajm5ubw9fXFt99+a3BdXtNYwcHBEAQBN27cwPDhw2FnZwc3Nze8+eabSEhIKPC5kpxTNtJrXrp0CQMHDoStrS3s7OwwatQoREVFvfB7Hzt2LKytrXHjxg107twZVlZWcHFxwYQJE5CammpwrSiKWL58OZo0aQILCws4ODhg0KBBePDggcF1HTt2hL+/P44dO4Y2bdrA0tISb775pvaxnNNYsbGxGD9+PKpVqwaVSgVfX1/Mnj0barXa4LrExES89dZbcHJygrW1NXr06IE7d+688HtkjHHYYazKa926Nc6cOYNJkybhzJkzyMzMLPD6y5cvY8qUKZg6dSq2bt2KNm3aYPLkyfj6668L9X6vvfYa/Pz8sHnzZsycORMbNmzA1KlTi/U9vPrqq6hduzb++usvBAcHY9u2bejevfsLvxcAyMzMRK9evdC5c2ds27YNEyZMwI8//oihQ4caXPe///0PU6ZMQZcuXbBt2zYsX74cN27cQJs2bfDs2TODa8PDwzFq1CiMGDECu3fvxvjx4/N87/T0dLzyyitYu3Ytpk2bhl27dmHUqFFYuHAhBg4cqL1OFEUMGDAAv/32G4KCgrB161a0atUKPXv2NOKnxVgVJDLGqrTo6GixXbt2IgARgKhUKsU2bdqI8+fPF5OSkgyu9fHxEQVBEC9fvmxwf9euXUVbW1sxJSVFFEVRfPjwoQhAXL16tfaaOXPmiADEhQsXGjx3/Pjxorm5uajRaPJ9rgSAOGfOnFyvOXXqVIPr1q9fLwIQ161bV+D3PmbMGBGA+M033xjc/8UXX4gAxOPHj4uiKIqnTp0SAYiLFi0yuC40NFS0sLAQZ8yYob0vMDBQBCAeOnQo1/sFBgaKgYGB2q9/+OEHEYD4xx9/GFy3YMECEYC4f/9+URRFcc+ePQWOU/9nwhjLjSs7jFVxTk5O+Pfff3Hu3Dl8+eWX6N+/P+7cuYNZs2YhICAA0dHRBtc3bNgQjRs3NrhvxIgRSExMxMWLF1/4fv369TP4ulGjRkhPT0dkZKTR38PIkSMNvh4yZAgUCgUOHz5s1PNHjBgBANrn79y5E4IgYNSoUcjKytLe3N3d0bhxYxw5csTg+Q4ODujUqdML3/eff/6BlZUVBg0aZHD/2LFjAQCHDh0yGEd+42SMFYxXYzHGAAAtWrRAixYtANDUzgcffIAlS5Zg4cKFWLhwofY6d3f3XM+V7ouJiXnh+zg5ORl8bWZmBgBIS0szeuw5x6RQKODk5FSo8UjX5vV60vOfPXsGURTh5uaW52v4+voafO3h4VGoccfExMDd3R2CIBjc7+rqCoVCoX3/mJiYAsfJGCsYhx3GWC5KpRJz5szBkiVLcP36dYPHIiIicl0v3ZfzH2NjmJubA0CuBt2CgktERASqVaum/TorKwsxMTGFGk9e1+b8fpydnSEIAv79919tONOX876c4SU/Tk5OOHPmDERRNHhOZGQksrKy4OzsrL2uoHEyxgrG01iMVXHh4eF53n/r1i0AgKenp8H9N27cwJUrVwzu27BhA2xsbNCsWbNij8fNzQ3m5ua4evWqwf1///13vs9Zv369wdd//PEHsrKyCr2BX87nb9iwAQC0z+/Tpw9EUURYWJi2AqZ/CwgIKNT75NS5c2ckJydj27ZtBvevXbtW+zgAvPLKKwWOkzFWMK7sMFbFde/eHdWrV0ffvn1Rr149aDQaXL58GYsWLYK1tTUmT55scL2npyf69euH4OBgeHh4YN26dThw4AAWLFhgkr1kpN6YX375BbVq1ULjxo1x9uzZAv9h37JlCxQKBbp27YobN27g448/RuPGjTFkyJAXvp9KpcKiRYuQnJyMl156CSdPnsTnn3+Onj17ol27dgCAtm3b4u2338Ybb7yB8+fPo0OHDrCyskJ4eDiOHz+OgIAAvPvuu0X+XkePHo3vv/8eY8aMQUhICAICAnD8+HHMmzcPvXr1QpcuXQAA3bp1Q4cOHTBjxgykpKSgRYsWOHHiBH777bcivydjVRGHHcaquI8++gh///03lixZgvDwcKjVanh4eKBLly6YNWsW6tevb3B9kyZN8MYbb2DOnDm4e/cuPD09sXjx4mIvH9cn7dq8cOFCJCcno1OnTti5cydq1KiR5/VbtmxBcHAwVqxYAUEQ0LdvXyxduhQqleqF76VUKrFz505MmjQJn3/+OSwsLPDWW2/hq6++Mrjuxx9/RKtWrfDjjz9i+fLl0Gg08PT0RNu2bfHyyy8b9X2am5vj8OHDmD17Nr766itERUWhWrVqmD59OubMmaO9TiaTYfv27Zg2bRoWLlyIjIwMtG3bFrt370a9evWMem/GqhLeQZkxVmg1atSAv78/du7cWdZDAUCbCn766aeIiorS9rcUxdixY/HXX38hOTm5BEbHGCsvuGeHMcYYY5Uahx3GGGOMVWo8jcUYY4yxSo0rO4wxxhir1DjsMMYYY6xS47DDGGOMsUqN99kBoNFo8PTpU9jY2BR6m3fGGGOMlS1RFJGUlARPT0/IZPnXbzjsAHj69Cm8vLzKehiMMcYYM0JoaCiqV6+e7+McdgDY2NgAoB+Wra1tGY+GMcYYY4WRmJgILy8v7b/j+eGwA90Jxba2thx2GGOMsQrmRS0o3KDMGGOMsUqNww5jjDHGKjUOO4wxxhir1Lhnpwiys7ORmZlZ1sNg5YBKpSpwmSNjjLHyg8NOIYiiiIiICMTHx5f1UFg5IZPJULNmTahUqrIeCmOMsRfgsFMIUtBxdXWFpaUlbzxYxUmbUIaHh8Pb25v/PDDGWDnHYecFsrOztUHHycmprIfDygkXFxc8ffoUWVlZUCqVZT0cxhhjBeCmgxeQenQsLS3LeCSsPJGmr7Kzs8t4JIwxxl6Ew04h8VQF08d/HhhjrOLgsMMYY4yxSo3DDmOMMcYqNQ47ldjYsWMhCEKu271798p6aEZZs2YN7O3ty3oYjDHGKhgOO5Vcjx49EB4ebnCrWbNmkV8nIyOjBEbHGCtrV65cQVxcXFkPg7ESxWGnkjMzM4O7u7vBTS6X4+jRo3j55ZdhZmYGDw8PzJw5E1lZWdrndezYERMmTMC0adPg7OyMrl27AgBu3ryJXr16wdraGm5ubnj99dcRHR2tfZ5Go8GCBQtQu3ZtmJmZwdvbG1988YX28Q8++AB+fn6wtLSEr68vPv74Y4Ndqa9cuYJXXnkFNjY2sLW1RfPmzXH+/HkcOXIEb7zxBhISErQVquDgYADA8uXLUadOHZibm8PNzQ2DBg0q4Z8qY5XDpUuX0KRJE1SvXh2HDx8u6+EwVmI47FRBYWFh6NWrF1566SVcuXIFK1aswKpVq/D5558bXPfrr79CoVDgxIkT+PHHHxEeHo7AwEA0adIE58+fx969e/Hs2TMMGTJE+5xZs2ZhwYIF+Pjjj3Hz5k1s2LABbm5u2sdtbGywZs0a3Lx5E9988w1WrlyJJUuWaB8fOXIkqlevjnPnzuHChQuYOXMmlEol2rRpg6VLl8LW1lZboZo+fTrOnz+PSZMmYe7cubh9+zb27t2LDh06lPwPkbFK4P79+wCA1NRU9OnTB5GRkWU8IsZKiMjEhIQEEYCYkJCQ67G0tDTx5s2bYlpaWhmMrHjGjBkjyuVy0crKSnsbNGiQ+OGHH4p169YVNRqN9trvv/9etLa2FrOzs0VRFMXAwECxSZMmBq/38ccfi926dTO4LzQ0VAQg3r59W0xMTBTNzMzElStXFnqMCxcuFJs3b6792sbGRlyzZk2e165evVq0s7MzuG/z5s2ira2tmJiYWOj3NIWK/OeCMcmaNWtEANrbp59+WtZDYqxICvr3Wx/voGykd98FwsJK7/2qVQNWrCj681555RWs0HuilZUV3nvvPbRu3dpgr5i2bdsiOTkZT548gbe3NwCgRYsWBq914cIFHD58GNbW1rne5/79+4iPj4darUbnzp3zHc9ff/2FpUuX4t69e0hOTkZWVhZsbW21j0+bNg3/93//h99++w1dunTB4MGDUatWrXxfr2vXrvDx8YGvry969OiBHj164NVXX+VNIBkrhJSUFIOvFy9ejg8++ABmZmZlNCLGSkaZhp0VK1ZgxYoVCAkJAQA0bNgQn3zyCXr27AmAVhP9+uuvBs9p2bIlTp8+rf1arVZj+vTp+P3335GWlobOnTtj+fLlqF69egmPvURf3mSsrKxQu3Ztg/tEUcy1KZ4oigAMN8uzsrIyuEaj0aBv375YsGBBrvfx8PDAgwcPChzL6dOnMWzYMHz66afo3r077OzssHHjRixatEh7TXBwMEaMGIFdu3Zhz549mDNnDjZu3IhXX301z9e0sbHBxYsXceTIEezfvx+ffPIJgoODce7cOV65xdgLJCcnAwCGDx+OAweOITo6DHv37kX//v3LeGSMmVaZ9uxUr14dX375Jc6fP4/z58+jU6dO6N+/P27cuKG9Judqot27dxu8xpQpU7B161Zs3LgRx48fR3JyMvr06cPb+BegQYMGOHnypDbgAMDJkydhY2ODatWq5fu8Zs2a4caNG6hRowZq165tcLOyskKdOnVgYWGBQ4cO5fn8EydOwMfHB7Nnz0aLFi1Qp04dPHr0KNd1fn5+mDp1Kvbv34+BAwdi9erVAOiIhrz+uyoUCnTp0gULFy7E1atXERISgn/++aeoPxbGqhypsmNvb4/69fsBQL7//zJWkZVp2Onbty969eoFPz8/+Pn54YsvvoC1tbVB5SbnaiJHR0ftYwkJCVi1ahUWLVqELl26oGnTpli3bh2uXbuGgwcPlsW3VCGMHz8eoaGhmDhxIv777z/8/fffmDNnDqZNmwaZLP8/Eu+99x5iY2MxfPhwnD17Fg8ePMD+/fvx5ptvIjs7G+bm5vjggw8wY8YMrF27Fvfv38fp06exatUqAEDt2rXx+PFjbNy4Effv38e3336LrVu3al8/LS0NEyZMwJEjR/Do0SOcOHEC586dQ/369QEANWrUQHJyMg4dOoTo6GikpqZi586d+Pbbb3H58mU8evQIa9euhUajQd26dUv2h8hYJSCFHWtra7i4dAEA/ruTVUrlZjVWdnY2Nm7ciJSUFLRu3Vp7/5EjR+Dq6go/Pz+89dZbBqsFLly4gMzMTHTr1k17n6enJ/z9/XHy5Ml830utViMxMdHgVpVUq1YNu3fvxtmzZ9G4cWO88847GDduHD766KMCn+fp6YkTJ04gOzsb3bt3h7+/PyZPngw7OzttSPr4448RFBSETz75BPXr18fQoUO1/8369++PqVOnYsKECWjSpAlOnjyJjz/+WPv6crkcMTExGD16NPz8/DBkyBD07NkTn376KQCgTZs2eOeddzB06FC4uLhg4cKFsLe3x5YtW9CpUyfUr18fP/zwA37//Xc0bNiwhH56jFUe0jSWlZUVzMw6AhBw69YtPH36tEzHxZjJlUa3dEGuXr0qWllZiXK5XLSzsxN37dqlfWzjxo3izp07xWvXronbt28XGzduLDZs2FBMT08XRVEU169fL6pUqlyv2bVrV/Htt9/O9z3nzJljsAJBulW21Vis5PCfC1YZjBo1SgQgfvXVV2LPnqIoCC1EAOKvv/5a1kNjrFAKuxqrzCs7devWxeXLl3H69Gm8++67GDNmDG7evAkAGDp0KHr37g1/f3/07dsXe/bswZ07d7Br164CX1PMowFX36xZs5CQkKC9hYaGmvR7YoyxikCaxrKyskJMDCAInQAAx48fL8thMWZyZb70XKVSaVcLtWjRAufOncM333yDH3/8Mde1Hh4e8PHxwd27dwEA7u7uyMjIQFxcHBwcHLTXRUZGok2bNvm+p5mZGS+tZIxVefo9OwkJgEzWGhoNDPomGasMyryyk5MoilCr1Xk+FhMTg9DQUHh4eAAAmjdvDqVSiQMHDmivCQ8Px/Xr1wsMO4wxxgx7djIzAQuLlgCA69evV7leRla5lWll58MPP0TPnj3h5eWFpKQkbNy4EUeOHMHevXuRnJyM4OBgvPbaa/Dw8EBISAg+/PBDODs7a/dcsbOzw7hx4xAUFAQnJyc4Ojpi+vTpCAgIQJcuXcryW2OMsXJPfxorMxOwt/eAra0PwsIe4dy5cwVuEMpYRVKmYefZs2d4/fXXER4eDjs7OzRq1Ah79+5F165dkZaWhmvXrmHt2rWIj4+Hh4cHXnnlFWzatAk2Njba11iyZAkUCgWGDBmi3VRwzZo1kMvlZfidMcZY+SeFHUtLCjtuboCjY2uEhT3C6dOnOeywSqNMw460/0peLCwssG/fvhe+hrm5OZYtW4Zly5aZcmiMMVbpSWFHLreGXA7Y2wPVq7cCsJGblFmlUu56dhhjjJUOqWcnLc0KKhWFHXd3agH4559/kJCQUIajY8x0OOwwxlgVJIqitrKTmmoFMzPA0REQhAaoV68eMjIysGPHjjIeJWOmwWGHMcaqILVaDY1GAwBITqaw4+QExMQIGDx4MADgzz//LMshMmYyHHYYatSogaVLl5b1MEzmyJEjEAQB8fHxZT0UxsotqaoD0DSWQgG4ugIxMcCgQYMAAPv27UNqampZDZExk+GwU8mFhoZi3Lhx8PT0hEqlgo+PDyZPnoyYmJiyHppJdOzYEVOmTDG4r02bNtoVfoyxvEn9OmZmZkhNVcDamlZjxccDAQEBqFatGtRqNU6cOFG2A2XMBDjsVGIPHjxAixYtcOfOHfz++++4d+8efvjhBxw6dAitW7dGbGxsmYwrOztbWz4vCSqVCu7u7gUeGcJYVae/x058PGBjA3h4AAkJgCAI2r3KDh06VIajZMw0OOxUYu+99x5UKhX279+PwMBAeHt7o2fPnjh48CDCwsIwe/Zs7bVJSUkYMWIErK2t4enpmWspf3BwMLy9vWFmZgZPT09MmjRJ+1hGRgZmzJiBatWqwcrKCi1btsSRI0e0j69Zswb29vbYuXMnGjRoADMzM6xcuRLm5ua5ppomTZqEwMBAALRj9vDhw1G9enVYWloiICAAv//+u/basWPH4ujRo/jmm28gCAIEQUBISEie01ibN29Gw4YNYWZmhho1amDRokUG71ujRg3MmzcPb775JmxsbODt7Y2ffvrJ2B89Y+WefthJSADs7ABPT+B5wUe7x87BgwfLaoiMmQyHnSKSVjCUxU0UxUKPMzY2Fvv27cP48eNhYWFh8Ji7uztGjhyJTZs2aV/zq6++QqNGjXDx4kXMmjULU6dO1R7D8ddff2HJkiX48ccfcffuXWzbtg0BAQHa13vjjTdw4sQJbNy4EVevXsXgwYPRo0cP7RlmAJCamor58+fj559/xo0bNzBq1CjY29tj8+bN2muys7Pxxx9/YOTIkQCA9PR0NG/eHDt37sT169fx9ttv4/XXX8eZM2cAAN988w1at26Nt956C+Hh4QgPD4eXl1eun8WFCxcwZMgQDBs2DNeuXUNwcDA+/vhjrFmzxuC6RYsWoUWLFrh06RLGjx+Pd999F//991+hf+aMVST652IlJgKWlsCtW4B0Wo8Udi5evFhmVWDGTKbEz1+vAAo6Ij4tLU28efOmmJaWJoqiKCYnJ4sAyuSWnJxc6O/p9OnTIgBx69ateT6+ePFiEYD47Nkz0cfHR+zRo4fB40OHDhV79uwpiqIoLlq0SPTz8xMzMjJyvc69e/dEQRDEsLAwg/s7d+4szpo1SxRFUVy9erUIQLx8+bLBNZMmTRI7deqk/Xrfvn2iSqUSY2Nj8/2+evXqJQYFBWm/DgwMFCdPnmxwzeHDh0UAYlxcnCiKojhixAixa9euBte8//77YoMGDbRf+/j4iKNGjdJ+rdFoRFdXV3HFihV5jiPnnwvGKpodO3aIAMQWLVqII0aI4ltvieLw4aLo6am7pnbt2iIA8eDBg2U3UMYKUNC/3/q4slNFic8rOlJfS+vWrQ0eb926NW7dugUAGDx4MNLS0uDr64u33noLW7duRVZWFgD6rU8URfj5+cHa2lp7O3r0KO7fv699PZVKhUaNGhm8x8iRI3HkyBE8ffoUALB+/Xr06tVLe4J9dnY2vvjiCzRq1AhOTk6wtrbG/v378fjx4yJ9r7du3ULbtm0N7mvbti3u3r2L7Oxs7X364xMEAe7u7oiMjCzSezFWUehPY6WkAEolNSfr/S8BX19fAMCjR4/KYISMmU6ZHhdREVlaWmpXMZTFexdW7dq1IQgCbt68iQEDBuR6/L///oODgwOcnZ3zfQ0pCHl5eeH27ds4cOAADh48iPHjx+Orr77C0aNHodFoIJfLceHChVznkVlbW2s/t7CwyNUw/PLLL6NWrVrYuHEj3n33XWzduhWrV6/WPr5o0SIsWbIES5cuRUBAAKysrDBlyhRkZGQU+ucAULDL+d5iHlOCSqUy1/dfko3UjJUl/Wms9HRAowGiogyv8fHxAYAi/4LBWHnDYaeIBEGAlZVVWQ/jhZycnNC1a1csX74cU6dONejbiYiIwPr16zF69GhtCDh9+rTB80+fPo169eppv7awsEC/fv3Qr18/vPfee6hXrx6uXbuGpk2bIjs7G5GRkWjfvn2RxzlixAisX78e1atXh0wmQ+/evbWP/fvvv+jfvz9GjRoFANBoNLh79y7q16+vvUalUhlUZ/LSoEGDXOf8nDx5En5+fnxgLKuy9Cs7kZFU0YmONrxGCjtc2WEVHU9jVWLfffcd1Go1unfvjmPHjiE0NFR7qny1atXwxRdfaK89ceIEFi5ciDt37uD777/Hn3/+icmTJwOg1VSrVq3C9evX8eDBA/z222+wsLCAj48P/Pz8MHLkSIwePRpbtmzBw4cPce7cOSxYsAC7d+9+4RhHjhyJixcv4osvvsCgQYNgbm6ufax27do4cOAATp48iVu3buF///sfIiIiDJ5fo0YNnDlzBiEhIYiOjs6zEhMUFIRDhw7hs88+w507d/Drr7/iu+++w/Tp04390TJW4UkVaisrK6jVQGYmEBsL6BdBvb29AXDYYRUfh51KrE6dOjh//jxq1aqFoUOHolatWnj77bfxyiuv4NSpU3B0dNReGxQUhAsXLqBp06b47LPPsGjRInTv3h0AYG9vj5UrV6Jt27Zo1KgRDh06hB07dsDJyQkAsHr1aowePRpBQUGoW7cu+vXrhzNnzuS5MiqvMb700ku4evWqdhWW5OOPP0azZs3QvXt3dOzYEe7u7rmm5KZPnw65XI4GDRrAxcUlz3J7s2bN8Mcff2Djxo3w9/fHJ598grlz52Ls2LFF/IkyVnnoV3YyMijsODrSdJY0y8vTWKyyEMS8mheqmMTERNjZ2SEhIQG2trYGj6Wnp+Phw4eoWbOmQdWBVW3854JVdNOnT8eiRYvw/vvvY9++hfDzow0Fr14FQkIAc3Oq6NSoUQMqlQppaWmQyfj3Y1a+FPTvtz7+k8sYY1WQ1OivUqmQkUH76/j5UVUnLY2uqVatGmQyGTIyMnJNITNWkXDYYYyxKkg/7GRmUsCpXZsek87+VCgUqFatGgCeymIVG4cdxhirgvTDjtSn4+5ODcoJCbrreEUWqww47DDGWBUkhR0zMzNoNIBMBri4UNiJi9NdV6NGDQDAvXv3ymCUjJkGh51C4j5upo//PLCKLmdlRwo7gGFlp2nTpgCAc+fOlfYQGTMZDjsvIO2qmypNYjMG3T8UvCkhq6jUz0/81A870obq8fG661q1agWANhrlkM8qKt5B+QXkcjns7e21ZyRZWlrmOnqAVS0ajQZRUVGwtLSEQsH/C7GKSb+yk51NZ2M5O9M+O4mJuuuaNWsGpVKJZ8+eISQkBDVr1iyjETNmPP6buhDc3d0BgA+FZFoymQze3t4cfFmFlXMay8EBUKmowqMfdszNzdG0aVOcPXsWp0+f5rDDKiQOO4UgCAI8PDzg6uqKzMzMsh4OKwdUKhVvsMYqtJyVHXt7ul8uB5KSDK9t1aoVzp49i1OnTmH48OGlO1DGTIDDThHI5XLu0WCMVQr6q7FEkSo7AIWd58dmabVo0QIAcPXq1dIcImMmw7+aMsZYFZRzGkuq7CgUucNO7ee7DT58+LAUR8iY6XDYYYyxKkg/7OhXdhQK4PkZoVq+vr4AgNDQUO3zGKtIOOwwxlgVpL/0XBQBKyu6P6/KjqurKywtLSGKIu+kzCokDjuMMVYFSRUapZLCjpkZ3W9unjvsCIKgXYX14MGD0hwmYybBYYcxxqog3caYKgC6sGNtnXsaC9BNZXHfDquIOOwwxlgVJIUdQTCDINAeOwBgY6M79VyfFHa4ssMqIg47jDFWBenCjmFlx84OSEvLfT2HHVaRcdhhjLEqSLeqisJOfDzw0Ue0BP1577IBKexs3rwZe/bsKZUxMmYqHHYYY6yK0Wg02t3gRVEFQQDi4oAbNyjs5LVRfJ06dbSf9+rVi3t3WIXCYYcxxqoY/WNvNBqq7Jw4AZw7B9jaAtnZuZ9Tt25dLFy4UPv1vXv3SnycjJkKhx3GGKti9DcGzMigys7hw7QKy94+77ADAO+//z66dOkCAIiIiCiFkTJmGmUadlasWIFGjRrB1tYWtra2aN26tcFcsCiKCA4OhqenJywsLNCxY0fcuHHD4DXUajUmTpwIZ2dnWFlZoV+/fnjy5ElpfyuMMVZh6Ied9HTaZ0elAtLTqUFZo8n/ue7u7gA47LCKpUzDTvXq1fHll1/i/PnzOH/+PDp16oT+/ftrA83ChQuxePFifPfddzh37hzc3d3RtWtXJOkdyTtlyhRs3boVGzduxPHjx5GcnIw+ffogO79fTRhjrIrT7bEjR3q6HFlZQPXqgCDQPjscdlhlU6Zhp2/fvujVqxf8/Pzg5+eHL774AtbW1jh9+jREUcTSpUsxe/ZsDBw4EP7+/vj111+RmpqKDRs2AAASEhKwatUqLFq0CF26dEHTpk2xbt06XLt2DQcPHizLb40xxsot/XOxpA0EExMBUaTAI4r5P5fDDquIyk3PTnZ2NjZu3IiUlBS0bt0aDx8+REREBLp166a9xszMDIGBgTh58iQA4MKFC8jMzDS4xtPTE/7+/tpr8qJWq5GYmGhwY4yxqkL/XCxpA8GkJAo6mZkcdljlU+Zh59q1a7C2toaZmRneeecdbN26FQ0aNND+j+Tm5mZwvZubm/axiIgIqFQqOEjH9eZxTV7mz58POzs77c3Ly8vE3xVjjJVf+pUdKeykpVHQUas57LDKp8zDTt26dXH58mWcPn0a7777LsaMGYObN29qHxcEweB6URRz3ZfTi66ZNWsWEhIStLfQ0NDifROMMVaB5BV2MjJoFZa0e3JWVt7P9fDwAACEh4eX9DAZM5kyDzsqlQq1a9dGixYtMH/+fDRu3BjffPNNvr89REZGaqs97u7uyMjIQFxcXL7X5MXMzEy7Aky6McZYVZFX2MnKooqONKuf15ERgK6yExcXp50OY6y8K/Owk5MoilCr1ahZsybc3d1x4MAB7WMZGRk4evQo2rRpAwBo3rw5lEqlwTXh4eG4fv269hrGGGOGpLBjZmaGtDQKOVJukXbuyOswUABwcHCAUqkEADx79qykh8qYSSjK8s0//PBD9OzZE15eXkhKSsLGjRtx5MgR7N27F4IgYMqUKZg3bx7q1KmDOnXqYN68ebC0tMSIESMAAHZ2dhg3bhyCgoLg5OQER0dHTJ8+HQEBAdqNrxhjjBnSr+xIFRxpU+WQEPqYX2VHEAS4u7sjNDQUERER8Pb2LtnBMmYCZRp2nj17htdffx3h4eGws7NDo0aNsHfvXnTt2hUAMGPGDKSlpWH8+PGIi4tDy5YtsX//ftjY2GhfY8mSJVAoFBgyZAjS0tLQuXNnrFmzBnK5vKy+LcYYK9f0V2OlpxtWdqSwIy1Jz4t+2GGsIijTsLNq1aoCHxcEAcHBwQgODs73GnNzcyxbtgzLli0z8egYY6xyylnZ0Wh0DcnPngEyGZ2Cnh+pbycsLKyER8qYaZS7nh3GGGMlSz/sSBUdKewkJwNyecFhp169egCQ6/gexsorDjuMMVbF6Ied9HS6T9pbR61+cdhp0qQJAODSpUslN0jGTIjDDmOMVTH6q7Fyrh7PzKSwk5CQ//OlsHPlyhVoCjpIi7FygsMOY4xVMTmnsaSqjkxGGwvK5br9dvLi5+cHc3NzpKSk4P79+6UwYsaKh8MOY4xVMTmnsaSwo1LR5y8KOwqFAo0aNQLAU1msYuCwwxhjVYz+0vOMDFqNJQiAlRWFHaWy4J4dQDeVdfz48ZIdLGMmwGGHMcaqmLwalAUBcHCgsGNuXnDPDgB06NABALBs2TLMnTu3JIfLWLFx2GGMsSpGP+xkZlLAEQRAOlLQzOzFYWfYsGH44IMPAACff/454l9UCmKsDHHYYYyxKiav1VgyGeDlRZ8rlUBSUsGvIZfL8eWXX6JBgwbIzMzEjh07SnDEjBUPhx3GGKti9Cs7GRm6puTatelxuTz/g0BzGjx4MADgzz//LImhMmYSHHYYY6yK0Q870s7JSqUu7AhCwWdj6Rs0aBAAYN++fUgsaAkXY2WIww5jjFUx+quxsrPpPgsLwMdHd43UuPwiDRs2RN26dZGRkcFTWazc4rDDGGNVjH5lJzubprGsrXVhR6NBrp2V8yMIgnYq66+//iqJ4TJWbBx2GGOsiskZdgDA3h6oVo0+12iA55cUijSVtWfPHiS9qLOZsTLAYYcxxqoY/bAjHW1lb087KNPj0IagwmjUqBHq1KkDtVqNPXv2mHawjJkAhx3GGKti9JeeS0dFuLjoHs/MLFrYEQQBffr0AQAcOHDAVMNkzGQ47DDGWBWjX9nJS1oaUNTDzLt06QIAOHjwYLHGxlhJ4LDDGGNVjP5qLKmyc/my7vG0NN3hoIXVoUMHKBQKhISE4MGDB6YZKGMmwmGHMcaqmLzCTkQEEBZGe+yo1UUPO9bW1mjVqhUAru6w8ofDDmOMVTHJyckAABsbG22oeeUV4Jdf6NgIaVflouratSsA4I8//jDVUBkzCQ47jDFWxUg7HeuHnYAAICQEUCigPRy0qEaPHg2ZTIZDhw7h+vXrphswY8XEYYcxxqoYaS8c/bATF0eHf5qZUXOyKBa9SblGjRoYOHAgAGDp0qUmHDFjxcNhhzHGqhBRFLVhx8JCF3Y2baLAY2GhCzmFPTJC3+TJkwEAGzduRFpamimGzFixcdhhjLEqRK1WI+v56Z/m5rbasPN//wfcvw9YWVFVRxBoVVZRtW3bFl5eXkhJScG+fftMOHLGjMdhhzHGqhD9k8lVKmvt582aUWOyrS19LQjA8z7mIhEEQXt8xIYNG6Ap6lwYYyWAww5jjFUh0hSWlZUVMjN1/wT4+ABZWXRsBECrsmJjjXsP6WDQP//8E46Ojrhw4UJxhsxYsXHYYYyxKkS/OTkjQ9efIx0X4exMH+VyID7euPdo2bIlWrZsCQBISEjAmDFjtHv7MFYWOOwwxlgVIoUdW1tbpKfrlpjb2NBHDw/6KJMZH3ZkMhlOnTqFkJAQuLq64saNG1ixYkXxBs5YMXDYYYyxKkR/j53UVN39VlbUp1OtGn1dnLADUO+Oj4+PdnXW+fPnjX8xxoqJww5jjFUh+tNY+mHHzIw2FNSv7MTFFf/9atasCQB48uRJ8V+MMSNx2GGMsSpEP+wkJ+umsQSBwo6rK30tlwNRUcV/v+rVqwPgsMPKFocdxhirQvR7dvQrOwCFHf3VWDExxX8/Ly8vABR2RGPOoGDMBDjsMMZYFaLfs5OSQhUdiZmZbtdkU01jeXp6AqDNDGNMkZ4YMwKHHcYYq0L0p7HS0gwP/LSy0k1dyWRAQkLx30+lUsHNzQ0AT2WxssNhhzHGqpCcDcpSZeevv4CnT4HoaPpaEEwTdgBd305oaKhpXpCxIuKwwxhjVUjOyo5kyRIgNdWwTyclxTTvyU3KrKyVadiZP38+XnrpJdjY2MDV1RUDBgzA7du3Da4ZO3YsBEEwuLVq1crgGrVajYkTJ8LZ2RlWVlbo168f/0/FGGN50G9Q1p/GatWK+nWkIyI0GuRqYDYWhx1W1so07Bw9ehTvvfceTp8+jQMHDiArKwvdunVDSo5fJ3r06IHw8HDtbffu3QaPT5kyBVu3bsXGjRtx/PhxJCcno0+fPsjOzi7Nb4cxxso9/QZlqRkZALKzKfhITcnZ2cadep4XDjusrCnK8s337t1r8PXq1avh6uqKCxcuoEOHDtr7zczM4O7unudrJCQkYNWqVfjtt9/QpUsXAMC6devg5eWFgwcPonv37iX3DTDGWAWT3zRWdDSFHalPJyPDsHm5OKTl59yzw8pKuerZSXj+f5mjo6PB/UeOHIGrqyv8/Pzw1ltvITIyUvvYhQsXkJmZiW7dumnv8/T0hL+/P06ePJnn+6jVaiQmJhrcGGOsKshvB+Vnz2gjwcREWomVkUGnoJtC3bp1AdCREen65STGSkm5CTuiKGLatGlo164d/P39tff37NkT69evxz///INFixbh3Llz6NSpk/YE3YiICKhUKjg4OBi8npubGyIiIvJ8r/nz58POzk57k37rYIyxyi6/TQUzMynsJCXRx6wsmsoyhWbNmqF69epISkrC/v37TfOijBVBuQk7EyZMwNWrV/H7778b3D906FD07t0b/v7+6Nu3L/bs2YM7d+5g165dBb6eKIoQ9HfL0jNr1iwkJCRob1xaZYxVFXkdBCoIFHDMzWkaS6mksGOqaSyZTIbXXnsNAPDXX3+Z5kUZK4JyEXYmTpyI7du34/Dhw9pGtvx4eHjAx8cHd+/eBQC4u7sjIyMDcTm2+oyMjNRuZJWTmZkZbG1tDW6MMVbZZWVlaaeRcvbs2NoCNjZAcjKFHqlh2VQGDx4MAPj777+RZar5McYKqUzDjiiKmDBhArZs2YJ//vlHezpuQWJiYhAaGgqP50fzNm/eHEqlEgcOHNBeEx4ejuvXr6NNmzYlNnbGGKtopCkswDDsiCJw9iygVtPN2pruM2XYad26NZRKJRITExEeHm66F2asEMo07Lz33ntYt24dNmzYABsbG0RERCAiIgJpz/8PTE5OxvTp03Hq1CmEhITgyJEj6Nu3L5ydnfHqq68CAOzs7DBu3DgEBQXh0KFDuHTpEkaNGoWAgADt6izGGGO6sGNmZgaVSmWw9Py11yjcZGZSlcfUYUcmk6FatWoAeAk6K31lGnZWrFiBhIQEdOzYER4eHtrbpk2bAAByuRzXrl1D//794efnhzFjxsDPzw+nTp2CjY2N9nWWLFmCAQMGYMiQIWjbti0sLS2xY8cOyOXysvrWGGOs3NHv1wEM99EJD6e+ncxMQH9BbGam6d6fj41gZaXY++yo1WqYmZkZ9VzxBb82WFhYYN++fS98HXNzcyxbtgzLli0zahyMMVYV6C87B2jKShIdTb06Gg3g6kr3CQIdGWFvb5r3580FWVkpcmVn3759GDt2LGrVqgWlUglLS0vY2NggMDAQX3zxBZ4+fVoS42SMMVZMOcNORobusSdPdGFH2sNVJtMdH2EKHHZYWSl02Nm2bRvq1q2LMWPGQCaT4f3338eWLVuwb98+rFq1CoGBgTh48CB8fX3xzjvvICoqqiTHzRhjrIj099gBDMOORqMLO56edJ9cDpjyr3IOO6ysFHoaa968efj666/Ru3dvyGS5M9KQIUMAAGFhYfjmm2+wdu1aBAUFmW6kjDHGiiVnZUe/H6dFC+DhQ2pKft5HDEGg6S1T4bDDykqhw87Zs2cLdV21atWwcOFCowfEGGOsZORsUNbfIbljR+C//yjsSD07crlpw460Wz2HHVbaTLIaKzs7G5cvX861sR9jjLHyI2dlR6PRPdaiha5hWdpnVSYrmcrO06dPkW2qsygYKwSjws6UKVOwatUqABR0AgMD0axZM3h5eeHIkSOmHB9jjDETydmzox92qlenqo4g6EKPXA7onbtcbG5ubpDL5cjOzs737ELGSoJRYeevv/5C48aNAQA7duzAw4cP8d9//2HKlCmYPXu2SQfIGGPMNHJWdqTiiiAATk66z6WmZIXCtA3Kcrkcns+7n3kqi5Umo8JOdHQ03J+vTdy9ezcGDx4MPz8/jBs3DteuXTPpABljjJlGzp4d/a3OVCqatgJ0U1cyGWDq7gRuUmZlwaiw4+bmhps3byI7Oxt79+7VHsuQmprKuxYzxlg5lV/PjiDQR6WSPtc/uio+3rRj4LDDyoJROyi/8cYbGDJkCDw8PCAIArp27QoAOHPmDOrVq2fSATLGGDONgqaxAJq2kssB6TQHUQSeF4NMhsMOKwtGhZ3g4GD4+/sjNDQUgwcP1h4XIZfLMXPmTJMOkDHGmGnkbFCWprGk6SulkgKP1Dus0QDJyaYdAy8/Z2WhSGFnxIgRGDBgAHr06IFBgwblenzMmDEmGxhjjDHTytmzI01jKZ7/S6BU0k3q2cnKAlJTTTsGPgyUlYUi9ezUrVsXCxYsgKurK7p164bvv/+e/8AyxlgFkV/PjtRqaW5OnyckULUnI6Pkwg5XdlhpKlLYmTNnDi5cuIB79+5hwIAB2L59O+rUqYNmzZohODgYly5dKqlxMsYYK6acYUeiUtFHBweq8iQnU9jJzKTqjilJYScsLAwa/Y1+GCtBRq3Gql69OsaPH499+/YhKioKM2fOxN27d9G5c2f4+PhgwoQJuHHjhqnHyhhjzEiiKCL5eQNOzp4dpZI+OjlRyElPp/uysgyPlDAFd3d3yGQyZGVlIdKUOxYyVoBiHxdhY2ODIUOGYP369YiKisIvv/wCuVyOU6dOmWJ8jDHGTCAlJQXi83RjY2NjEGIUCuDKFV3YycgAzMwo6OjvxWMKSqVSu08bT2Wx0lKkBuX09HQ8efIE3t7e2Lt3Lzp16gRra2vt43K5HJ07d0bnzp1NPlDGGGPGk5qTZTIZLCwskJame0wUgfnzqaKjUFDIsbam3h1Thx2AZgeePn2KJ0+eoEWLFqZ/A8ZyKFJlZ+zYsWjYsCHmz5+Pr776Cm+++WZJjYsxxpgJ6ffrCIKAjAzdY1lZwJEjtORcCjsODhR0SqKtRlp+zgtcWGkpUtiJjY2Fr68vZs2ahWPHjuHOnTslNS7GGGMmlHOPnZxhx9KSPioUFHJcXHSP619rCtL5WE+fPjXtCzOWjyKFHZVKhcGDB0OlUkEQBNjb25fQsBhjjJlSQkICAF3YkU42Byjc1K5NFR1BoK+f5xEIgunPx3JwcDAYE2MlrcibCo4YMQIAoFarUbdu3RIZFGOMMdOKfr5ToLOzMwDDak1GBuDoSMdESEdH1KhBH+Vy4OlTwM3NdGOxs7MDwGGHlZ4iVXakoAMAZmZm+PHHH00+IMYYY6YXFRUFQBd29Cs7Gg1VdVJTddNYPj70mEJBYceUOOyw0mbU2VgArcy6evUqIiMjc20M1a9fv2IPjDHGmOlIlR2X5804+pUdjYYO/MzMpMqOIACurvSY/llZpsJhh5U2o8LO3r17MXr0aO3/PPoEQUC2qXehYowxViw5Kzv6S8+lAz9FUbeJ4PM8Armcww6r+IzaVHDChAkYPHgwwsPDodFoDG4cdBhjrPzJWdnJeZq5i4tu2TmgOxPLzIynsVjFZ1TYiYyMxLRp0+Bmyo41xhhjJSZnZUf/gE+ZDKhVi6avNBr6+vFjekylAkx9qgOHHVbajAo7gwYNwpEjR0w8FMYYYyUlZ2UnJUX3mCAADRpQ0JF6dh49oseUSuB5TjIZKewkJibyYaCsVBjVs/Pdd99h8ODB+PfffxEQEACldIrcc5MmTTLJ4BhjjJlGQZUdUaRl59IJ53I5IB1bJQhAfLxpxyKFHelwUmnvH8ZKilFhZ8OGDdi3bx8sLCxw5MgRCNLGDKAGZQ47jDFWfoiimKuy83xDZQA0bXXvHvXraDS6vXXouYbXmoK5uTmUSiUyMzORkJDAYYeVOKPCzkcffYS5c+di5syZkMmKfXA6Y4yxEpSQkICs52UbqbKjH2AEAbh6lUJPdjY1KsfE0GNZWYZTXqYgCALs7OwQHR2NhIQE7VlZjJUUo5JKRkYGhg4dykGHMcYqAKmqY21tDXNzcwCGYUeq3uiHHWnqSq023IDQVKSprHhTz5Exlgej0sqYMWOwadMmU4+FMcZYCcjZrwPkblC2sdF9LZPR4zIZ7ceTmWn6MfGKLFaajJrGys7OxsKFC7Fv3z40atQoV4Py4sWLTTI4xhhjxZezXwcw3GdHECjcZGdTlUcup6/lciA9ne4zNQ47rDQZFXauXbuGpk2bAgCuX79u8Jh+szJjjLGyl1dlR38HZbWaAk1mJi01Vyrpc5WKPpZExwKHHVaajAo7hw8fNvU4GGOMlZCcJ54DhkvPs7OpZycri1ZjmZnRRxsbIDZWdzioKX+X5bDDShN3GDPGWCUnVXb0p7H0e3ZEkcKPNI0lk9FHW1vdRoM5j5coLg47rDQVOuy88847CA0NLdS1mzZtwvr161943fz58/HSSy/BxsYGrq6uGDBgAG7fvm1wjSiKCA4OhqenJywsLNCxY0fcuHHD4Bq1Wo2JEyfC2dkZVlZW6NevH55IO2IxxlgVl1dlJz3d8BrpFHQp3Igi4O6u6+F5+NC0Y+Kww0pTocOOi4sL/P390bNnT6xYsQLnzp1DWFgYYmJicO/ePWzfvh0zZsyAt7c3li5dikaNGr3wNY8ePYr33nsPp0+fxoEDB5CVlYVu3bohRe9XjoULF2Lx4sX47rvvcO7cObi7u6Nr165I0ls3OWXKFGzduhUbN27E8ePHkZycjD59+vChpIwxhrwrO/o9OwAFnOxs3dJzjQaQtr9RKjnssApOLIJnz56J8+bNExs1aiTKZDKDm52dnfjaa6+J+/btK8pLGoiMjBQBiEePHhVFURQ1Go3o7u4ufvnll9pr0tPTRTs7O/GHH34QRVEU4+PjRaVSKW7cuFF7TVhYmCiTycS9e/cW6n0TEhJEAGJCQoLRY2eMsfKqZcuWIgBx69at2vvq1hVFqtvQTaUSRUEQRTs7UWzcWBRlMlGcPp0ec3UVxW++Me2YVq5cKQIQe/fubdoXZlVKYf/9LlKDsqurK2bNmoVZs2YhPj4ejx49QlpaGpydnVGrVq1ir8SSEr6joyMA4OHDh4iIiEC3bt2015iZmSEwMBAnT57E//73P1y4cAGZmZkG13h6esLf3x8nT55E9+7dc72PWq2GWm+XrMTExGKNmzHGyrO8KjvStBVAVR2FglZeiSJVcgDAyYk+KpW6s7JMhSs7rDQZtRoLAOzt7WFvb2+ygYiiiGnTpqFdu3bw9/cHAERERAAA3NzcDK51c3PDo+dH8kZEREClUsHBwSHXNdLzc5o/fz4+/fRTk42dMcbKsxf17AgCrcBKTaX+HKlv53kegbU1HRRqShx2WGkqN6uxJkyYgKtXr+L333/P9VjOipEoii+sIhV0zaxZs5CQkKC9FbbxmjHGKhq1Wq2tXutXdqQTzgGq3NSsqfs6O5vCjlxOX9va6g4GNRUOO6w0lYuwM3HiRGzfvh2HDx9G9erVtfe7u7sDQK4KTWRkpLba4+7ujoyMDMTFxeV7TU5mZmawtbU1uDHGWGUU8/xET7lcblCN1z8CQqUCunShzzUa3WPSX6s2NsDz4pDJcNhhpalMw44oipgwYQK2bNmCf/75BzX1f7UAULNmTbi7u+PAgQPa+zIyMnD06FG0adMGANC8eXMolUqDa8LDw3H9+nXtNYwxVlVJ/TpOTk4GhzfrV3ZsbID69elzjUZX2Xn2jO4zM9MFH1ORwk5iYiI0Go1pX5yxHIzu2TGF9957Dxs2bMDff/8NGxsbbQXHzs4OFhYWEAQBU6ZMwbx581CnTh3UqVMH8+bNg6WlJUaMGKG9dty4cQgKCoKTkxMcHR0xffp0BAQEoIv0qwpjjFVRefXrABRqJI6OgK8vfS6KFHYA4HlOQlaW4Y7LpiCFHVEUkZyczBV2VqKMCjsrV65Ex44dUadOnWK9+YoVKwAAHTt2NLh/9erVGDt2LABgxowZSEtLw/jx4xEXF4eWLVti//79sNE7onfJkiVQKBQYMmQI0tLS0LlzZ6xZswZyacKZMcaqqLxWYgGGlR0XF0Ba46Ff2ZE6CJKTdQHIVCwsLKBQKJCVlYWEhAQOO6xEGRV2Fi1ahHfeeQdubm4IDAxEx44dERgYiHr16hXpdcRCHKUrCAKCg4MRHByc7zXm5uZYtmwZli1bVqT3Z4yxyi6/yo5+eLG3p6ksaefkrCxqTo6MlF7D9CefC4IAOzs7xMTEICEhAV7SDoaMlQCjenb+++8/hIWFYdGiRbCzs8OSJUvQsGFDuLu7Y9iwYaYeI2OMMSPlV9nRn8ZSqSjsALppLJkMiI+n0BMfb3i9qXCTMistRvfsuLu7Y/jw4ejXrx+OHz+OjRs3Yt26dfjrr79MOT7GGGPFkF9lR79Sk5Ghq+xoNFTZUSjosFCFgvp19O83FQ47rLQYVdnZs2cPZs6ciVatWsHZ2RmzZ8+Gg4MDNm/erP0tgjHGWNnLr7KjLyuLqjtS2JHOx8rMBCwsKAwpFECOc5qLjcMOKy1GZfTevXvDxcUFQUFB2Ldvn/YPLGOMsfIlNjYWgO4YnoIolRRsNBoKP+nptFIrMZG+vn4daNjQdGPjsMNKi1GVncWLF6Nt27b46quvULduXQwdOhQrVqzArVu3TD0+xhhjxZCcnAwABa52kqa0zMwMe3Y0GsDTkz5aWAD//WfasXHYYaXFqLAzZcoUbNmyBVFRUThw4ADat2+PgwcPonHjxvDw8DD1GBljjBlJCjvW1tYvvNbamsKORkNVHo0GkHYYsbIC7t837dg47LDSUqxWs0uXLuHIkSM4fPgw/v33X2g0GoPjHhhjjJWtwoQd6RhB/RVZFhb0UdpRxM4OCAkx7dg47LDSYlRlp1+/fnB0dMRLL72E9evXw8/PD7/99htiY2Nx7tw5U4+RMcaYkYpS2dGf6bK0pLAjFet9fICwMNOOjcMOKy1GVXb8/Pzw9ttvo0OHDrzrJWOMlWN5hZ2cuyFbWtJHqYdZFHVhx8qK7qteHTh82LRj47DDSotRYefrr7829TgYY4yZWGZmJtRqNQDDsJORobtGEHTTV66uuvtVKvoonYllaWl4xIQpcNhhpcXoU8+PHj2Kvn37onbt2qhTpw769euHf//915RjY4wxVgxSVQcwDDvP8w8AWnUlhR1pykomoz12ACA8nD4mJJh+F2UOO6y0GBV21q1bhy5dusDS0hKTJk3ChAkTYGFhgc6dO2PDhg2mHiNjjDEjSGFHqVRCJZVqYFjZ0Q870vFUMhntngzows6TJzStZcrTzznssNJi1DTWF198gYULF2Lq1Kna+yZPnozFixfjs88+w4gRI0w2QMYYY8bJrzk5PV33uUKha0z29dXdn5JCU1zSYaCPH9O1168DL79smvFx2GGlxajKzoMHD9C3b99c9/fr1w8PHz4s9qAYY4wVX2HDjlTZ8fMzPDJCFOnEc5kMePqUrr12zXTjk8JOYmIiRFMfq86YHqPCjpeXFw4dOpTr/kOHDsFLqoMyxhgrU4UJOyoVcOcOsH+/bhpLFKkZWRCAqCjaWTkxkTYdvHzZdOOTwo5Go0GKNG/GWAkwahorKCgIkyZNwuXLl9GmTRsIgoDjx49jzZo1+Oabb0w9RsYYY0bIL+zo5wpzc9oZ+cIFoFs3uk+joQZluRyIjaUNBSMjAXt74MYN043P0tISMpkMGo0GiYmJhdoLiDFjGBV23n33Xbi7u2PRokX4448/AAD169fHpk2b0L9/f5MOkDHGmHHyCzuJibrPzc2p+Vhadi7tpiyddJ6aSr08ERG0187166YbnyAIsLW1RXx8PBITE+Hp6Wm6F2dMT6Gnsb799lukP699Pn78GAMGDMDx48cRExODmJgYHD9+nIMOY4yVI/mFHf1+YCsrmsp6+lR3n0ZD01hKJS1Tb96c7q9TB0hKMu0Y9ft2GCsphQ4706ZN0/5hrFmzJqKiokpsUIwxxopPCjs2Ugfyc3Fxus9VKsDNTXfyuSDkPgz0lVfoMScn+tqUvcTSLvwcdlhJKvQ0lqenJzZv3oxevXpBFEU8efJEW+nJydvb22QDZIwxZpz8Kjvx8brPNRqgUSPq2dFoaOWVtBpLCjuNG9O1lpY0tXXvnu409OLisMNKQ6HDzkcffYSJEydiwoQJEAQBL730Uq5rRFGEIAjIznnwCmOMsVJXmLCTkkLTVGFhwLNnFGYyMnTnY8XG6s7OEgSa9jp2jMMOq1gKHXbefvttDB8+HI8ePUKjRo1w8OBBODk5leTYGGOMFUNhenZSU6lyc/UqEBJCy8yl4ySkpz1+TB9jYmja69w5YNw404yRww4rDUVajWVjYwN/f3+sXr0abdu2hZmZWUmNizHGWDHlF3b0m4yzsgAXF6BGDQo7Vla6MCQ97f59+njqFN139arpxshhh5UGozYVHDNmDAcdxhgr5wqz9FyjoeXnUtjRv9TCgh5/+JCmsG7coCXqISGmGyOHHVYaCl3ZcXBwgCBtwPACsbGxRg+IMcaYaeQXdvQOQwdAQcbLCwgNpQ0EpfuklVlPntD0VkIChZ3MTGpglsuLP0YOO6w0FDrsLF26tASHwRhjzNQKM40lcXKiZmQHB/paLtedcP70KeDhATx6RBsMWlrS6i1THAjKYYeVhkKHnTFjxpTkOBhjjJlYYSs7AAWYlBTq3wGoqiPlj6gooF07ms5ycaHgs2OHacMOn3zOSpJRx0VIIiMjERkZCY1GY3B/o0aNijUoxhhjxZf0vISTM+ykpek+l7oTpI8eHrqv09PpY0wMMGwY8NtvNJ3l6gocP26aMfIOyqw0GBV2Lly4gDFjxuDWrVsQc2ylyfvsMMZY+ZBfZUc/7JibGz5Hf0/YzEz6mJQEtGkjvSY1LT94YJox8jQWKw1GhZ033ngDfn5+WLVqFdzc3ArduMwYY6z05Bd2pH10AFpqrs/XV/d5ejrtopyZSSeeA7T8HKD7YmKo16c4OOyw0mBU2Hn48CG2bNmC2rVrm3o8jDHGTCAzMxNpz0s4UqCQ6Icd/Rwkk9ESdIBWYWVk0CaCWVm6ay5dok0InZ2B/fuB4cOLN04OO6w0GLXPTufOnXHlyhVTj4UxxpiJ6IeHnGFHP7zoP2RnZ/h1Vhb16Gg0NJWlUNCREn5+QP36wJ9/Fn+c+mEnZ1sEY6ZiVGXn559/xpgxY3D9+nX4+/tDqVQaPN6vXz+TDI4xxphxpNVNlpaWuf6OltaUCIJuqTlAn2dk6JqVs7Mp/KSkAFeu0EqsqCiqBnl4APv2FX+cUtjJyspCeno6LCwsiv+ijOVgVNg5efIkjh8/jj179uR6jBuUGWOs7EmVnZxVHcAw7Dg66u53dATi4nSbCYoi3RcRQUdE9O0L/PQThZ/UVHr85k2gQQPjx2llZQVBECCKIhITEznssBJh1DTWpEmT8PrrryM8PBwajcbgxkGHMcbKnlTZkZZ265Nmi2QywwZjBwfaWBCgqo5GQ49rNMCtW8CMGfTYxYtAeDg1LRd3Kksmk8HGxgYA9+2wkmNU2ImJicHUqVPh5uZm6vEwxhgzgYLCjkQQdJsIArrKjkxGYUcUqY9HWmpeqxZdFx1NK7Xq1AEOHy7+WLlJmZU0o8LOwIEDcdgEf8KPHTuGvn37wtPTE4IgYNu2bQaPjx07FoIgGNxatWplcI1arcbEiRPh7OwMKysr9OvXD0+ePCn22BhjrCKTwk5e01gSmQzQ/51VquzIZBRwBIGWngN0Ppb0nKgoWnperx719Ny8WbyxOj6fS4uKiireCzGWD6N6dvz8/DBr1iwcP34cAQEBuZrfJk2aVKjXSUlJQePGjfHGG2/gtddey/OaHj16YPXq1dqvVSqVweNTpkzBjh07sHHjRjg5OSEoKAh9+vTBhQsXIDfFKXWMMVYBSVWSgio7Mhng7q772tGRenMUClqeLpPRiqzsbKrmAICnJwUfOzvao8fSkhqVi9O34+3tjatXr+LRo0fGvwhjBTB6NZa1tTWOHj2Ko0ePGjwmCEKhw07Pnj3Rs2fPAq8xMzODu/7/jXoSEhKwatUq/Pbbb+jSpQsAYN26dfDy8sLBgwfRvXv3Qo2DMcYqm8JMY4kihReJVNmxsNAdFSE1LGdk0DUjRwILFtCKrPBwOgn933+BqVONH6uPjw8A4PHjx8a/CGMFMHpTwdJy5MgRuLq6wt7eHoGBgfjiiy/g6uoKgI6tyMzMRLdu3bTXe3p6wt/fHydPnsw37KjVaqj1dtXieWLGWGVTmGksQchd2YmLoyAjTWeFh+t6eAAgOJjCjosLcOAALUHPyNBtQGgMKexwZYeVFKN6dkpLz549sX79evzzzz9YtGgRzp07h06dOmmDSkREBFQqFRz0N4oA4ObmhoiIiHxfd/78+bCzs9PevLy8SvT7YIyx0pbfNJb+vn0ymeEOylJlRzoaQqGgJeZyue5AUHNz6uM5ehQIDQUaNgRq1gROnzZ+rN7PD+TisMNKitGnnj958gTbt2/H48ePkSHVN59bvHhxsQcGAEOHDtV+7u/vjxYtWsDHxwe7du3CwIED832eKIoFntc1a9YsTJs2Tft1YmIiBx7GWKWS3zSW/lERcjkFHolSST060gothYKmsywt6bp//gEGDwYCA+lzd3damh4XBxw5AnToYNxYeRqLlTSjws6hQ4fQr18/1KxZE7dv34a/vz9CQkIgiiKaNWtm6jFqeXh4wMfHB3fv3gUAuLu7IyMjA3FxcQbVncjISLSRjujNg5mZGczMzEpsnIwxVtbym8ZKT9d9rsjnXwCpj0cQKBx5eACRkdSbM3gwMG8e8PLL9PiZM7QiKynJ+LFKYScsLAxZWVlQ5Dcwxoxk1DTWrFmzEBQUhOvXr8Pc3BybN29GaGgoAgMDMXjwYFOPUSsmJgahoaHw8PAAADRv3hxKpRIHDhzQXhMeHo7r168XGHYYY6yyy28aSz/syPL5F6BmTfooVXq8vOijdCRiixYUlLKzgRMn6Lys52eOGsXNzQ0qlQrZ2dkICwsz/oUYy4dRYefWrVsYM2YMAEChUCAtLQ3W1taYO3cuFixYUOjXSU5OxuXLl3H58mUA1Ph8+fJlPH78GMnJyZg+fTpOnTqFkJAQHDlyBH379oWzszNeffVVAPQ/8bhx4xAUFIRDhw7h0qVLGDVqFAICArSrsxhjrCrKbxqrMJUdPz/6KJdToHFzo313pFkmQQCaNKHl6Go19fI4OQFPnxo3VplMpm0l4L4dVhKMCjtWVlbaJmFPT0/cv39f+1i0tBlDIZw/fx5NmzZF06ZNAQDTpk1D06ZN8cknn0Aul+PatWvo378//Pz8MGbMGPj5+eHUqVParcUBYMmSJRgwYACGDBmCtm3bwtLSEjt27OA9dhhjVVphprFybJEGgAKQVNkBKOQ4OtImgqmpuvunTqUg5OoKhIXRNRcuGD9e7tthJcmoidFWrVrhxIkTaNCgAXr37o2goCBcu3YNW7ZsybXDcUE6duwIUX9pQA77CnGkrrm5OZYtW4Zly5YV+n0ZY6yyy28aS7+3Jq+l4o6OupPQs7Io7FhbU7CRyah3x9UV6NKFNhV8/JheJzkZOH+eDgs1Ro0aNQDA4JdnxkzFqLCzePFiJCcnAwCCg4ORnJyMTZs2oXbt2liyZIlJB8gYY6xopBPEgdxhR7/4bmWV+7kODrrl6Wo1hZ34eJq6UiiAc+eA3r0p8NSuDVy7Rg3NZ87QdJax/P39AQBXpMYgxkzIqLDj6+ur/dzS0hLLly832YAYY4wVT3JyMjQaDYDc01j6gUSvI0BL2lhQEKiyI5cDDx/SlJeFBbB9O4UdgKo7165RKIqNpUZmUaTnFlWTJk0AQNvDyZgpGb2pYHx8PH7++WfMmjULsbGxAICLFy9yJz1jjJUxqaojl8thaWlp8Njzv64B0PlWOekfBpqVRcElPJyCjkxGU1WSbt3o+rg42kHZzo76d4zRuHFjALRQJT4+3rgXYSwfRoWdq1evws/PDwsWLMDXX3+t/YO5detWzJo1y5TjY4wxVkT6K7FybrAaF6f7XNopWZ9U2ZHCDgCkpNBGg9KOys9fHu3a0RSWtK+sUmkYhorC0dFRu5MyT2UxUzMq7EybNg1jx47F3bt3YW5urr2/Z8+eOHbsmMkGxxhjrOikyo5NHvNU+tNYTk65nytVdpRKWoFlbk4Bp0ED6vHJyKDNBQGq9nh7U1+PUgncuWN82AGgXZnLU1nM1IwKO+fOncP//ve/XPdXq1atwDOpGGOMlbyUlBQAtE1ITlFRus/zCjtSZcfCgr6WNpuvW5dCTWoqsGeP7vr27XWruh49oh4eY0l9O5cuXTL+RRjLg1Fhx9zcPM+Twm/fvg0X6VAVxhhjZSL1+YY4eYUd/dVYef11LVV2pL5mOztqQLa3p1VZSiVw+bJuiqtrVzpOIj0dSEykjwXsKFIg6bih88UpDzGWB6PCTv/+/TF37lxkZmYCAARBwOPHjzFz5ky89tprJh0gY4yxoimosqPfs+Pmlvu5UmXHyYlCi7MzTV2p1dS7060bfTx6lK5v3JheJzOT9uKxtKQKjzFatmwJALh586a274gxUzAq7Hz99deIioqCq6sr0tLSEBgYiNq1a8PGxgZffPGFqcfIGGOsCAoKO/pFeXf33M+1taUGZE9PWollaUlVnMePaUpLOonn44+BJ0+ABQsoIAG0TD011fi+HTc3N9SsWROiKOLs2bPGvQhjeTAq7Nja2uL48ePYvHkzvvzyS0yYMAG7d+/G0aNH8/yfizHGWOkpKOzo76Cc19JzmYwqOnXr0sfsbLrdu0dTWWlpdJxEcjIQFAT4+gIhITS9JQjA3bvFOzaidevWAIDTp08b/yKM5VDkTQWzsrJgbm6Oy5cvo1OnTujUqVNJjIsxxpiRCgo7zx+CIOS9qaAkIIA+SuEoKQlo2BA4eJCmtT7/HLh1Cxg6lKa9goJoKismBrhxw/ixt2rVChs2bMCpU6eMfxHGcihyZUehUMDHxwfZ2dklMR7GGGPFVFDYeX6GM2SygsNOw4b0MTqaKjxqNdC8OXD7NlC/PlV3DhygaasxY2gKKyuLGpSTkoxvUpYqO2fOnCnw7ETGisKoaayPPvrIYOdkxhhj5UdBYUdaRfWisFO3Ln1MTaWl5ebm1M+TmUlB6NQpYMoU4IsvaJm6/gaFgkDTXsbw9/eHTCZDbGwsb2XCTMaos7G+/fZb3Lt3D56envDx8cn1P9TFixdNMjjGGGNFV1DYeX5kFuRy6rPJi5UV9ekAVKmxtaVeHf2dlU+cAH79FVi7loJNy5Z0VIRMBkREACdPAnXqFH3s5ubmqFWrFu7evYubN2/Cw8Oj6C/CWA5GhZ3+/fvn2oKcMcZY+VBQ2JHkF3QA2n8nOpqCS0YG4ONDK68uXKB9eM6eBZ49o6mqDz4Ali8Hhg2jQ0Kzs4HISOD4cZreMkaDBg20Yadz587GvQhjeowKO8HBwSYeBmOMMVMpTNiRdkjOi6srBRaFgqatatWiZuSEBNpX5/x5amC+f5/6eGbPptCjUFAFKDWVHjNWw4YN8ffff+NGcTqdGdNjVM+Or68vYvQPWHkuPj4evr6+xR4UY4wx4xW0g7JE71jDXKSwY2FBlRofHwox9vbUy+PgQGdiHTpE1w8dCuzbR88TRZoqy8oyPJqiKBo0aACANhdkzBSMCjshISF5rsZSq9V48uRJsQfFGGPMeIWp7Fha5v98Kew4OFBwMTenEOPqSpUeUaTHjxyh6wcMAHbtor4dqcMhLY36eowhhZ0bN27wiixmEkWaxtq+fbv283379sFOb0eq7OxsHDp0CDVr1jTd6BhjjBWZFHYsC0g00uGdeXF1Bf77j46BePyYGo5lMgoyJ07QMvRr12jaKjubQlFSEvXo/PUXBaSnT+l09AEDij7+unXrQhAExMbGIjIyEm55nWvBWBEUKewMeP6nVhAEjMnReaZUKlGjRg0sWrTIZINjjDFWdPlVdp4fZwig4GXnUmWnZk3g3Dnq13F01DUo161L4cbMDDhzBmjTBnj5ZVq1ZW5OPTvJycafgG5paYkGDRrgxo0b2Lp1K9555x3jXoix54o0jaXRaKDRaODt7Y3IyEjt1xqNBmq1Grdv30afPn1KaqyMMcYKIb+wI+2eDOR9VIRECjv+/vR1eDjQtCktLe/alXp3nJxoqurvv+mabt0o+Hh46DYhTEkxfM+iePvttwEAS5cuhUZaL68nISEBbdq0wdSpU417A1alGNWz8/DhQzg7O5t6LIwxxkygMGHHySn/59vY0IGhUthJSgJee42qNY0aUaXn3j2aqpK2VXv5ZVqS3qIFTXdpNFRJOnPGuO/hjTfegK2tLW7fvo1FixYhMTHRoH9nx44dOHXqFJYuXYq//vrLuDdhVUaRws6ZM2ewZ88eg/vWrl2LmjVrwtXVFW+//TbU0l7kjDHGSp0oivmGnfh43ecuLvm/hiBQdaZVKwotoki7Jmdm0lSWTEa9Om3aUKPz7dvUv2NjA3TqRBsWajRUCTp+3Ljvw8bGBtOmTQMAzJgxA3Z2dnj55Zdx9+5dAMAhaSkYgPfeew9paWnGvRGrEooUdoKDg3H16lXt19euXcO4cePQpUsXzJw5Ezt27MD8+fNNPkjGGGOFk5GRoV0tmzPsREfrPnd1ffFrOTtTsMnMpEZlGxvaOHDMGAo57u5U7ZHWrnTpQiHHxobCUFoaNSkb65NPPsGSJUu038f58+fRvHlz/Pnnnzh48KD2usjISPxbnDdilV6Rws7ly5cNdrPcuHEjWrZsiZUrV2LatGn49ttv8ccff5h8kIwxxgonRW+uKmfYiYzUfe7uXvDrSFNRcjkdGXHtGk1hhYXRVFVEBFVtbG3pQFCA+nbOn6e+HYAalePi6KMxBEHAlClTkJCQgEePHqF9+/ZISkrCkCFD8OTJE6hUKgwdOhQADMIPYzkVKezExcUZLAE8evQoevToof36pZdeQmhoqOlGxxhjrEiksKNUKqHMcSbE06e6z1/UdungQNNeFhYUdq5fB0aOpOCybRsQGAiEhNCGgrGxFKR8fKgCFBCgC0vp6cCxY8X7nuRyOby9vfHPP/9g5syZ2vvbtm2Lvn37AjCc1mIspyKFHTc3Nzx8+BAAlUovXryI1q1bax9PSkrK9T8XY4yx0lPQ7sn6h4gXtBoL0K3Iql6dprEiI4Fevej+ZcuAN9+kXZItLOj8rJ076Xn16lFjs1JJYScuDti/3zTfm0KhwPz587Fz5060b98eH3zwgXa24dKlS4jWn6djTE+Rwk6PHj0wc+ZM/Pvvv5g1axYsLS3Rvn177eNXr15FrVq1TD5IxhhjhVPQ7sn6G9zb2xf8OlLYadhQ13+jVFL1JjmZVmHZ2gJbtwLt2gHr1tHzunenao6zs+55xq7Iyk/v3r1x7NgxdO/eHe7u7vD394coijh8+LBp34hVGkUKO59//jnkcjkCAwOxcuVKrFy5Eiq9bTh/+eUXdOvWzeSDZIwxVjgFhZ2wMN3nL6rsuLvT/jpt2lBocXYGjh4FevcGRo0Cpk6l5egXLgD/938UpGJiaHrrxg1d305KClWGHj0y1XeYm1Td4akslp8ihR0XFxf8+++/iIuLQ1xcHF599VWDx//880/MmTPHpANkjDFWeAWFHf2DOV9U2alencJR27a6wz337AFefZWOkvD0pF6crCzdbsqbNwNWVhSOatbULUFPSNBNc5WELl26AOAmZZY/ozYVtLOzg1wuz3W/o6OjQaWHMcZY6Soo7MTF0UeZDLC2Lvh1qlenak2TJvR1RASFHCcnCjZBQbqvV68G+vYF1q6lawMDaRrMyYnCUGIiBaWSEhgYCLlcjvv37yMkJKTk3ohVWEaFHcYYY+VTQYeAJibSR6VSdzp5fqpVo7Ajk1GFJiaGqjV379I+O/fvU6BJTaWenGHDgGfPqHrUrx8Fq7p16bWSkuj+pCRTfqc6NjY2aNmyJQCeymJ547DDGGOVSEGVHWmDe3PzF7+OpSU1FwN0+nlqKtC8ObBkCdC5M3DwILB8OYWgtDQgNJSe88cfQJ06tIGhQkGhKiOD+nZKciqra9euAIBdu3aV3JuwCovDDmOMVSKJz8s3Nnkcay6dev6iKaycunWjvpubN6liExJCvTxhYcAbb9DqrJ9/poZlaVVW8+bU1GxlRVNZ0dFASR5hNWDAAADAnj17kJycXHJvxCokDjuMMVaJRDzfTMc9jy2SpXM08yj65Ek6A2vyZN3GgnPmABMm0GaCP/0EnDxJVZ8rVyjsREfT9Ff//jT9FRBA75uQQNNc+udzmVLjxo1Ru3ZtpKenc3WH5cJhhzHGKpHw8HAAgIe09jsPebTz5MndnQJKQAB97edHfTczZwJvvw1s2kTNynI5BZwrV2hJ+9q1dAp6VJSuipSeTlNaW7YU57vLnyAIGDRoEADwsUUslzINO8eOHUPfvn3h6ekJQRCwbds2g8dFUURwcDA8PT1hYWGBjh074saNGwbXqNVqTJw4Ec7OzrCyskK/fv3wRH/nLMYYq0IKquxIXnRUhERakQXQTsmPH1NlJyCATjpv2pSWlr/8Mk2RrVxJjcp//UXBxteXnmtmRhWikBBanl5Shg0bBgDYvn07wvQ3FWJVXpmGnZSUFDRu3Bjfffddno8vXLgQixcvxnfffYdz587B3d0dXbt2RZJeS/+UKVOwdetWbNy4EcePH0dycjL69OmjPfWXMcaqksKEHReXwr2Wfth5911g716gcWOgVi2a2jp2jMLOrFk05XXtGtCxIzVCX7pEU1nW1kCrVhR24uJoJdjdu8X8JvPRuHFjtG/fHllZWfj+++9L5k1YhVSmYadnz574/PPPMXDgwFyPiaKIpUuXYvbs2Rg4cCD8/f3x66+/IjU1FRs2bAAAJCQkYNWqVVi0aBG6dOmCpk2bYt26dbh27RpvLsUYq5IKM42ld55zgfTDzquv0hTVpk10hER4OIUWW1u638WFDgTdv1+3907nznSftze9RnY2BaHVq4vzHRZsypQpAIAff/wRamn5Gavyym3PzsOHDxEREWFw/ISZmRkCAwNx8uRJAMCFCxeQmZlpcI2npyf8/f211+RFrVYjMTHR4MYYYxVdamqq9u+znJUdjUb3eQFFHwNeXjR1BdCUVd26wODBwPHjdAL6mjVUuRk8GHjnHWpEXr8eGDGCqj5yOe3N8/Ah9QllZgLnztEtPd0E33Ae+vfvDzc3N8TGxuL48eMl8yaswim3YUcqxbrl+BXEzc1N+1hERARUKhUcHBzyvSYv8+fPh52dnfbm5eVl4tEzxljpe/bsGQDA3Nwctra2Bo/pb+hX2GksX1/gwQP63MKCKjihoXT2VZs2wKJFwKpVFJ5CQijcPH5Mh4VqNMC+fcDw4TR19eqruspO3brAxo0m+IbzIJfL0bNnTwC0DJ0xoByHHYmQY5tPURRz3ZfTi66ZNWsWEhIStLfQ0FCTjJUxxsqSNIXl7u6e6+/A2Fjd54VtUFapdHvzANSr8+67wKRJtMRcMno0cPUqhZyUFFqNVa8e8OOPQKdOtOmggwM1LYsiVX1+/123FN7UpLCze/fuknkDVuGU27AjlWBzVmgiIyO11R53d3dkZGQgTjrwJY9r8mJmZgZbW1uDG2OMVXTS35d59es8far7vLBhB6BdkKXA060bcP487aI8fLgu8IwcSZWc54eP48QJOhk9NJTO1HrpJXqeiwvtyfPgAdCgAU2HlYSuXbtCJpPh1q1bePjwYcm8CatQym3YqVmzJtzd3XHgwAHtfRkZGTh69CjatGkDAGjevDmUSqXBNeHh4bh+/br2GsYYqyoKWollbNjRn8rq3p2mpho1AhYvBoYMocNA7exo+fnNmzSVFRlJjc1yOS1HHzmSQtPYsVTNsbSkILR8eTG+2QI4ODigQ4cOAIAFCxaUzJuwCqVMw05ycjIuX76My5cvA6Cm5MuXL+Px48cQBAFTpkzBvHnzsHXrVly/fh1jx46FpaUlRowYAYBOXx83bhyCgoJw6NAhXLp0CaNGjUJAQAC6dOlSht8ZY4yVPv1prJykRmOgaGGnbl3aUwegaS1fXwo4AQF0NMTUqVTJmTpVt/IqM5N6eXr0AHbtApo1o5Dz9CktUU9KAo4cyT0uU5o7dy4AYOXKlbhy5UrJvAmrMMo07Jw/fx5NmzZF06ZNAQDTpk1D06ZN8cknnwAAZsyYgSlTpmD8+PFo0aIFwsLCsH//foMzX5YsWYIBAwZgyJAhaNu2LSwtLbFjxw7I5fIy+Z4YY6ysFFTZ0d/bxt6+8K+pH3YAOvH855/pc09POvjzk0/oNV1c6BBQQaDKjb8/VXR27QK6dKEm5sBAWollZgbY2JRcdad9+/YYNGgQNBoN77nDyjbsdOzYEaIo5rqtWbMGADUnBwcHIzw8HOnp6Th69Cj8/f0NXsPc3BzLli1DTEwMUlNTsWPHDl5dxRirkgoTdhQKqq4UVs6w07IlvZbUTmljAyxdCsyeDUybRlNeggAkJlIQcnSkM7T+7//o+k6d6GNyMnDgAHDxIvXxlIQ333wTALB3716IJdUNzSqEctuzwxhjrGiioqIAAK6urrkekzYHNDcv2mu6udEGgvpmzQLmz9d9HRBAq7CaNKGgU60aTVtduULHR8TG0gGg7u4UcJydaSorI4OmxdavL9qYCiswMBBmZmYIDQ3Ff//9VzJvwioEDjuMMVZJSGHHJY+NdGJi6GOObcleSBBoykm/+tKqFfXf6PfbTJ0KfPst8Oab1ICs0dB73r1Lr/H118D//kf3T5pEYUjaZPCPP0pmGbqlpSUCAwMBUHWHVV0cdhhjrJIoKOwkJ9NHO7uiv26bNsCpU4b3zZ4NfPGF7utWrWi6a+RIICGBNhJUq+lQ0H79aBdlX18gKwu4f58ej42l5eu1aukalk2tR48eAHjPnaqOww5jjFUC6enp2kOS8wo7GRn0MY8ZrhcKDASOHjW8r0kTqvbcuqW77913aUPB7t1p+kuhAKKiqNKjVAKff07L1W/fpn16srNpw8Fnz4Affij6uAqjd+/eAIAjR44gPj6+ZN6ElXscdhhjrBKQqjoKhQL2eSy3kqaJjFm/0bQpNRLn9NlnVOGR9OoFHD4MzJlDlSS1mgLR6tVAjRp06vnLL9O11avTx9hY4PJlapouif3//Pz8UL9+fWRlZXF1pwrjsMMYY5WA/hRWQcfl1KxZ9NdWKOhsrOdvoVWjBlC/PiAdQSUItDR9zx6639KSbs+e0S7KCgU1Nr/8MnDwINChA1V3EhNp1dZ33xV9bIXx6quvAgC2bdtWMm/Ayj0OO4wxVgkU1K+jz9vbuNefOBH46qvc98+cSc3H0pESQ4cCf/4JfPMNfZ2eTre1a6nRuVEjqurIZED//nRNYiIFpBs3dL1FpjRgwAAA1LcjnQrPqhYOO4wxVgkUtOxcnzE9OwBVYW7fzr3jsY0NnYP144/0tVIJDBgA3LlDB4NmZFCwefSIdlSOjKRmZFdXCkV16lB1Jy6OGpV/+8248RWkRYsWqFu3LlJSUrT7uKWmpuKzzz7DpEmTsHPnTt6Hp5LjsMMYY5VAZGQkgBdXdopyVEROixfT0vJffqEenj17qCk5Lg7YulV3svq4cXTN999T+FEoqGKzahXtrzN3Lu3dk50NTJhA/UTJycA//wCbN9PydFOSjh8CgG+++QYPHjxAy5Yt8cknn2DZsmXo27cvRo4cidSS2t2QlTkOO4wxVgkUdhqrOGGnVi3g779pOmrbNtpDZ+pU2ixQqQQ+/ZSus7QE2rWjAOPpSfvtmJlRtadbNzpu4ttvgbAw2mPH05MCTng4TXEdPGj8GPPz+uuvw8HBAQ8ePEC9evVw/fp1uLm54a233oJcLsfvv/+OiRMnmv6NWbnAYYcxxiqBgsKOtOwcAJycivc+Vla0l87cubQ5oJ8fMGIEBaHbt2nXZIAeW7IEWLiQgo5SSSuzfvmFqju2tlQlevgQmDKFwk5KClWMfvqpeGPMe9xW+OWXX2BpaYnMzEzUqVMH58+fx08//YTdu3dDEAT88ssv2L59u+nfnJU5DjuMMVYJFNSzI+2eDBi3qWBhBAdTqJo5k4KLvT1VcdRq6s+JiKCjKh48AHr3Bj7+mJau29pSv49U3Xn4kBqa79wx/RgHDBiACxcuYN68eTh27BiqP1//3q1bN0ybNg0AsGzZMtO/MStzHHYYY6wSKKiy8/Sp7vMCVqUXi4sLNTF7ewPPe4AxYQKwciWt4rK0pMpNSgp9Xbs2sH8/sGkT7aI8ZgyFnbQ02mFZf3dmU6pXrx5mzZqV67DU4cOHAwAuXLjAzcqVEIcdxhirBApqUA4Lo48lFXQkU6ZQ5WbDBqommZvTSq3ISNrfJyODQk9ICK3UWrgQaNAAeOUVYMUKOk5Co6FDS589A65dK9nx6vP394dSqURcXBwePXpUem/MSgWHHcYYq+BEUURERAQAwM3NLdfjt2/TR5WqZMdhbw907EjTV9LOyqNH00qtL7+kKbToaKrefPUV8Npr1Kj89de0aWGbNrQyKy2Nmp8/+6xkx6vPzMwM/v7+AICLeW0XzSo0DjuMMVbBxcbGIiUlBQDglcd5EJcu0cc8TpEwuUmTgAMH6MDPM2cAuZyambduBVq0oIpOVhZVe27fpj13ZDJg0CBa6dWyJS1JDw+nA0XPnMn7fTQaOprClHsENm/eHABNZbHKhcMOY4xVcCEhIQAAd3d3mJub53r8/n36WKNGyY/FxoYOAn3pJeDDD2nqqnVrmr4aNoxCirc3VW/WrqVwNHUqVXHs7Oj5ADU2X7pE52zlbKHJzKTq0Rdf0MowU7XYNGvWDABXdiojDjuMMVbBST0mNfJJM1LPjjGHgBpj4kRqPH7zTWDePLrvyy8p3Lz2Gm0y6OpKmxEGBQGtWgHbt9PU15kzwOuvUyhKTqbprI0bDV//ww+p6Xr4cKoOBQebZtxSZef8+fPcpFzJcNhhjLEKTgo7Pj4+eT4uTfXk87DJmZnRSqwHD4D//gOuXqVm5eXLaR8eCwugSRNadn71KlVm1q6lYyY8PICzZ+l6tZoC0eTJusC2ejWt9urUiZa5x8ZS38+BA8Ufd+PGjaFSqRAdHY0HDx4U/wVZucFhhzHGKjhpGiu/sCOdguDnV0oDAvDqq1SlmTkTmD6dprPq1KHqjZMTnbE1dChVeT76iALNzJl0NtbTp8D48VTdSUigHp/mzYGmTen5bdvS8xcvppBkYwMMHEgVod9/B9q3B5o1o2pRUZiZmWmnsk6dOlUCPxVWVjjsMMZYBfeiyk52Nn009sRzYwgC9eEsWQK8/TbwySd0f8eOdJ4WQGGoVy+q7Lz5JoWg2Fjqx1m/nvbtASgoxcXRrUULmgI7coReZ8YMusbSksLRokX0vDfeoFtCQtHG3apVKwDA6dOni/0zYOUHhx3GGKvgXtSzIynOuVjGaNqUpqXkcgoxhw7R/YMGUV9PRASFoho1gKgoCj0LF9J0V0YGTXfZ2ND93t60ISFAB5AqFBRmnjwBPv+cws7Fi8Dp09S4PHEi9fSMHFm0Mbdu3RoAV3YqGw47jDFWwb2osiMp7rlYxvj0UwovkyZRCImOpvvffZemui5coCZlpZKqQOPGUTPzihXAyZPABx/owpJCARw9ShWcNm1oVZZUKerVix7v00fXo/Ttt1Q9KsrRE1LYuXLlinY5P6v4OOwwxlgFlpiYiLi4OAAvDjulXdkBqFn555+pJyc4GPi//6MeHIBCkK0tsHQp8M03dN9779F0lbc30LMnbTg4aRKtJLOyoj154uOpKqRW0xRdy5a0a7OLCz322mvA5s107SefUIWnsLy8vFCtWjVkZ2fj/Pnzpv1hsDLDYYcxxiowqarj5OQEa2vrAq99wcMlRjoa4rPPgB49qFoDUBg5coSqPevW0bERCQk0bTV7NoWh6tWB774DHBxoaiori6a+evemFVsyGd2nUAD37lHzct++wI4dtGR9wgTawPDw4cKPV6rucN9O5cFhhzHGKrDCTmEBJX82VkGaN6fqzR9/0O7Ia9fS/S4u9Pn16xRUzM2BX38Fxo6loyYOH6bzsy5coP11xo4Ftm2jax48oCmrjAw6WPTZM7r+yBFg2jRaoh4VBSxbRhWlwm6dIzUpc99O5cFhhzHGKrAXLTsvTxo0oKBiZ0c7I0t74/TtS8Fm+XLqswGA//2Ppq8GDqRqUPXqFFZWr6Yq0YgRVNX58EPafNDODqhXj/bxadeOws5HH1GFaMAAanb+6afCjVO/SZk3F6wcOOwwxlgF9qLKTnn7t9rWlpqPly+n4yOks6++/Zb6cj79lKo36ek0bbV3LxAYSI3JycnA++9TT09yMnD5Mp2q7uxMq7D69wc8PWmarF49YMsWCkRnz9L+PcHBVAV6kWbNmkGpVCIyMhIPHz4swZ8GKy0cdhhjrAJ70bJzaZ+ZspzCykvPnrQBYO/etImgIADHjlHIuXoVqFmTjor4v/+jsOPiQsFlzhzq7fnpJ2DIEJr2unqVlrl//z01OMvldFzF5ctUFfr4Y6BxY6osSfvyFMTc3Fy7ueAhab08q9A47DDGWAX2osrO81kuODiU0oCKoFs3moZq1YoOBrW1BXbtopDz8su0d8769RRgpArVtWvAL79Q0LG3p6bk2rVpjx1RpMNDJ0+mkHfvHi1j79aNnvPbb/R6kZEvHtvAgQMBAAsXLoRarcb+/ftx7NixkvthsBLFYYcxxiqwF/Xs3LpFH2vVKqUBFdG0aXTOVYcOtH9Oy5ZUidm/nx4zM6MpLzc32j25Uyeq4Lz6KjUg16tHR0vUqUPL0LdsoccaNKC9eWJjqcLzxx9UBRo1iqbPXmT8+PFwdnbGvXv3YG5uju7duyMwMJCblisoDjuMMVZBpaWlIfJ5mSK/aawTJ+hjo0alNCgjrF5NS8dHjKCv33+fpq5++omqNDY2VKkJCwMaNqS9dyZPpu9JqaTl5QEB1PMjk1GD8nvv0WNxcRT4Xn6ZnvPVV7TJ4ObNBY/J2toas2fPznX/lClToNFoSuCnwEoShx3GGKugHj9+DACwsbGBvb19ntdcuUIfS/MQ0KISBOCff6iReO5cum/DBqrOrF9P1RtLS5qmCg+nHp927WhqzsuLgszatbRDdMeOFJxmzaIVXKmp9JwjR2hF1q+/An//Tau9YmMLHtfkyZNx9OhRXL58GY8ePYK1tTXOnj2L7UU9YZSVOQ47jDFWQen36wj5dCA/vwT16pXWqIxjYQH8+y9NWf36K329axf189ja0oaIMTHA/fsUfI4dA/76i6o2b71FoejECeDcOaBLF6romJnRtXFxFJCuX6emaAsLYOpUampWq3OP5e5d2gBx5UoB7dt3QOPGjeHt7Y13n59g+ttvv5XyT4cVF4cdxhiroO7evQug4ANAo6LoY/XqpTCgYqpWjaouH35IQcbSEvjzT2DoUKpMjR5NvTvPntFxET4+NMX1wQd02vlbb1GV6NAh3cGgTZroztaKiaEl69IePv37A76+FKoSEigYzp9PQeiVV2hn5w8/1DVHj3x+quiuXbsQHx9fZj8nVnQcdhhjrII683yTGmmZdF7S0+ljWZyLZYyWLWmn5fffp6ZiQaAQc+AA7ZPz++80TbVzJ/DOOzRFpVJRlebmTVqhVbMmBRRBoB2VGzWiQ0Ol4JeWRo3KixfTvj4ffAC8+SYFnSZNKHC1a0dBx9qargOARo0aoUGDBlCr1di6dWsZ/YSYMcp12AkODoYgCAY3d3d37eOiKCI4OBienp6wsLBAx44dcePGjTIcMWOMlZ6TJ08CANq0afPCaytK2AGAQYMo2HzyCTUaP3tGjcfR0dTTs3kzHQHh60vLy9PTqToTGAh07Qp4eFAQsrCg1ztzhq5NSaHrHRyoivP667SB4a+/0lRXnz60/49crhvLhx/SczZuBARBwIjnXdQbNmwo9Z8LM165DjsA0LBhQ4SHh2tv165d0z62cOFCLF68GN999x3OnTsHd3d3dO3aFUlJSWU4YsYYK3mRkZG4f/8+AKBly5YvvN7SsqRHZFpjxtBp6GfPUtWlTx8KJb/8QlNMW7YA+/bRMvWTJ2lZ+S+/0Gnp2dnUrzNgAFV9AOrtqVGDpqvOn6el6jdu0OvWrEmVohMn6IT0p0914xAEClZ//UW7OEth559//kF4eHhp/1iYkcp92FEoFHB3d9feXFxcAFBVZ+nSpZg9ezYGDhwIf39//Prrr0hNTeXEzRir9KQTuRs2bJjvSqyKrkcPOkvL0ZEqUz17Uo9OdjZVc777jiozs2ZReImLAz7/nKarFi2izQPr1aNKjUxGzc3161Pfzr59tFw9Kop2cT5wAJg3j87SGjeO9vLJzqZxKBQUtObNA1JTa6J169bQaDTYtGlTWf54WBGU+7Bz9+5deHp6ombNmhg2bBgePHgAAHj48CEiIiLQrVs37bVmZmYIDAzUlnbzo1arkZiYaHBjjLGKRNrcTjq0srKqVo12Pv7kE+rJmTiRDgd95x2asoqNpZVYe/bQaisbG+rPmT0bOHWKDgitUYMqNCoVXdOqFa3C+vtvuk+lov6gPn2A//6jKo5cDvTrRz1BAGBlReOYOBHo1ImqO7///nvZ/WBYkZTrsNOyZUusXbsW+/btw8qVKxEREYE2bdogJiYGERERAAA3NzeD57i5uWkfy8/8+fNhZ2envXl5eZXY98AYYyXh8OHDAIC2bduW8UhKh68vrZJat45Cyu+/09TT77/T5oOCQNNRt24B8fHAwYM03XXxIk1t+fpSCLKzA44fp8Bjbk6PX7gAhIZS1UfagPDzz2nfnhEjaCoNAFxd6f2OHXsNAHD27FmeyqogBLECnV+fkpKCWrVqYcaMGWjVqhXatm2Lp0+fwsPDQ3vNW2+9hdDQUOzduzff11Gr1VDrba6QmJgILy8vJCQkwNbWtkS/B8YYK664uDg4OztDo9HgyZMnqFatWr7XStvvVJy/6YtGo6G+nexsmmaSyWhZerNmdAsPB27fpirQgwfUp+PhATx5QlWjXr1oeXtSEr2WINDy9vr1KeS4udF01yuv0E7NMhltVFijxkuIijqPzz9fidmz/6+sfwxVVmJiIuzs7F7473e5ruzkZGVlhYCAANy9e1e7KitnFScyMjJXtScnMzMz2NraGtwYY6yiOHz4MDQaDerXr19g0JFONVAoSmlgZUAmA774gg4DHT2aennc3elIiFu36LR0Ly+a5vL0pKpNeDhVesLDgZ9/Bl56iZa8r19P52alpNBz3d2pSnT8OL1u//4UmCwtgQkT+gIAVq7cgb59dcdysPKpQoUdtVqNW7duwcPDAzVr1oS7uzsOHDigfTwjIwNHjx4t1DJMxhirqKS/97p27VrgddLp3p6eJT2isvd//0dLyQcOpCXq1tZU0UlIoKpWrVp0JIUgUOB5/JimpZo3pymv06fp+Vu3Un9OaipNbalUQGIi7cfzf/9HS9FHjQIEgcJORMQBvPGGGl99RZWlylpBq+jKddiZPn06jh49iocPH+LMmTMYNGgQEhMTMWbMGAiCgClTpmDevHnYunUrrl+/jrFjx8LS0lK7NJAxxiqbrKws7Ny5EwDQpUuXAq+9c4c+tmpV0qMqH7p3p40BhwyhyoxCQU3Kr75KU1sNGlB/TkQEhZzERGpYbtGCpqlsbYGsLHo8JYV6fCIiqPKTlQW89hpVgBYuBGrVagJra2eo1Wk4cuQqatem87l69aKgxMqXch12njx5guHDh6Nu3boYOHAgVCoVTp8+DR8fHwDAjBkzMGXKFIwfPx4tWrRAWFgY9u/fDxsbmzIeOWOMlYw///wTT548gYuLywvDztGj9LEqFbsbN6Ym5k8+oY0J09MpAP35J/Xp+PjQJoW3b9PnAQEUeO7eparNH38Ae/dScHJ1pSmrEyeoImRuDgQFUQWob18B7dq1AADUr38eX39N1aHERKB1a3ovVo6ITExISBABiAkJCWU9FMYYy5dGoxGbNm0qAhDnzp37wut79BBFQBQPHSqFwZUzGo0obt4sip06ieLBg3SfWi2KffqIor29KNrYiKKVlSh6eYlio0aiWKOGKCqVoti2rSg+e0bXX70qii+/LIpOTvRzVCjoGkAUzc1FsXnzj0QA4siRb2rfNzNTFEeNEsWaNUXx5Mky+MarmML++12uKzuMMcZ0Tp06hUuXLsHCwkJ7AndBpA3nCzgntNISBOrf2bqVjpJ4/XU6CHTHDmpEViqpUhMZSVNV6em0OuvBAzo01ceHjpQ4cwZYtYruk8tpasvVlfbpuXCBKjvr15+HnR3w44/0vr/9BowfT7sxz5xJz2Fli8MOY4xVEKtWrQIADBkyBM6FOOxKOvbgBQtUKzVbWzrIc/p0OnZi+XKaonr2jDYNVKkoxMTF0X3p6RSEwsPpuIlGjajn6dEjCi5SQKpXD6hTp8Xzd7mB1NRUvPMOrfKKjKT3W7+e9gJq0kQ3pcjKRoXaZ6ekFHadPmOMlZWkpCR4eHggJSUF//77L9q1a/fC51T2PXaKSqOhDQi3bQMWLKD+nsePqepz4wY1KUuHhYaH07ESAP0c+/alvh+1Ghg8GNi/HxAEEWZmnkhLi4CX10mYm7fG3bvUGL1rF9CtG5CRAXz7LYWstDTqn2rXjqpttWoBdevSOV7MOJVynx3GGKuq1q1bh5SUFNStW7fK7JpsajIZHTOxZg2wZAlVejIyqOpy8SLtqXPmDDUYP3pEAah2bQo727dTVee992hqLDQUaNNGQFpaUwBAVNQVpKRQeBFFqh4NHkxVounTaXrs3DnaBmDdOrqtXEkrvN59l469YCWHww5jjJVz2dnZWLRoEQDgvffegyCVbJhR3N0p8EyfTvvnDBtGS9J37AAePqSprTp1KIRs2ULXSrOGv/1G52/16QM0bAi0bx8AAMjMvIZnzygkOTvTPj9//UUB6dYtem716nSC+tmzFLri4miaLTCQgtHu3WXy46gSeBoLPI3FGCvftmzZgtdeew0ODg4IDQ2FlZVVoZ7H01iF8+wZTVHt20f9Oy+/TNNNp05ROHF1pVPQf/6ZAlFSElWEZDLAweE3xMSMhrl5B5iZHUVmJk11KRQUZKKj6efv5kbTZzn3PHrwgAKXTEbvLZcDX31Fz2UvxtNYjDFWCYiiiK+++goAMH78+EIHHVZ4bm507tWOHXTQZ/v2FHTOnaPztfz9aWXX+fPApEm0OaGXF01ZxcdTZScj4xpGjhRhb0+HjQoCrf6ysaGvnz2j6TFBoPA0cyZNXfn6Ar/+CkyZQtNocXFA79602zMzHa7sgCs7jLHy68SJE2jXrh1UKhUeP378wrP/JBqNrlKQlVXCg6zE1Go6ZX3DBmpYfvKEVltZWlLDsUqVjmfPrCGK2QDC4OjoiXr1aDrMwgIIC6PXMDOj58TH6yptgkD3jRwJfPMNTXn9+y/w2WcUepo1oyMonJzK8idQvnFlhzHGKoEFCxYAAEaPHl3ooAPodvCtXr0kRlV1mJnR8RPbttFKrtdeoxDSuzfQpQtgaWkOUawDALCzu6Y9oiIxkaa6fHyAsWPpQNLERJqukj3/l1cUafXXTz9Rj8/QoXSMxb59wJw51EfUsiUweTI3MBcXhx3GGCunjh8/jh07dkAmk2H69OlFeu6xY/SxT58SGFgV5etLJ6zv3UtnYGVnA02bAs2a+QMAsrLWIzo6BU5OFGjCwoD792n1ligC48bR9FXTphSCqlWjZmiAXuuPPyj09OtHy+DPnaMNDa9epf1+evSgE9h5PqboOOwwxlg5lJ2drQ0448aNQ926dYv0/C1b6GOPHqYeGVMogP79abXVqlVA69a9AQApKb+hbt1+qFFDRFoaTT85OFBFJyyMVnV9+y1V3RwcaNWWnR1dZ2lJry2KtBGhtTU1SteqBRw+TOdu1a1LJ67Xrg3Mnk17AbHC4bDDGGPl0Ny5c3HmzBlYWVnh008/LfLzT56kj40bm3hgzICdHbBs2Rhs2LABFhYWuHXrH6Sn/4XPP6dprpQU6t3x9aWenNRU6vm5do0OII2Lo/4qd3cKOPr95+fPUyO0lRXty7NkCa3eWrmSqj4tWtDuzN9/TyvEWP447DDGWBnLyspCUFAQatWqBScnJ9SqVQtz584FAPzwww/w8PAo8ms+e0YfPT1NOVKWF0EQMHz4cHzwwQcAgPj4aXB1fYqMDKqsvfkm9f5kZdFHOzsKNmZmgKMjVYpCQ6nh2doasLc33FU5NRWYNYuazR0cgEuXaCrtzh1g4kRg7VrAz4/6fZYvpwDFDPFqLPBqLMZY2dFoNHjzzTfx66+/Gtwvl8sxc+ZMfP7550a9Lu+xU/pSU1PRuHFj3Lt3Dw0aNMDOnTvh5FQTe/YAJ05QVSYxkaaxoqJolZYo0n8ruZz6fLKy6KZQUPBRKmmvnuzs3O9nbg6MGEEVH7kc2LSJmp0fP6YpssGDqU+oMgfewv77zWEHHHYYY2UjPT0dY8eOxaZNmyCXy7Fy5Uo0b94cz549Q/PmzeHo6Gj0a3PYKRsPHz5Eu3bt8PTpU9ja2uKHH37A8OHDDa4RRarixMfTsvbly4HbtynQSKu1srNpegugJmYbGwo0+QUfAKhfH/juO9q4cMcO6ie6fp2e37YtVZg6dKAAVVlw2CkCDjuMsZIUHR2NPXv24PLly7CwsECjRo2QmZmJTz/9FHfv3oVSqcS6deswZMgQk70nh52y8+jRI4wYMQInnzdOTZ48GUuWLHnhMR8hIbRaa9cumrqSKj4ZGbpr5HKa4rKwoGvS0vJ+LYWCNkf8/nt6/s8/0+GliYnUH9S3LzB6NDVAV+TTRzjsFAGHHcZYSbh37x6Cg4Pxxx9/IDMzM89rPDw8sHbtWnTp0sWk781hp2xlZWXh888/x9y5cyGKIiZMmID58+fD2tq6UM+/dQv48kvd8RQaDVV8RNGwsiOXU+VGoaDgk98GkioV0LUrbVh49y6wfj31/mRm0l5MvXvTfkL161es8MNhpwg47DDGTEkURfz000+YPHky1Go1AKBJkybo0KEDMjIycPToUWRnZ2PkyJGYMmWKyf/eSUigJldz8/x/82el46effsL//vc/AIClpSUaNmyI1157DW+//TYcHBxe+HxRpOCzYwetyHr0iP6bajQUSkRRN90F0H0KBQWjzEzDx/TJZEC9etTgbG5OewFdvUrVIhcXqgoNGgS0a2fYLF3ecNgpAg47jDFTuXDhAiZOnIhTp04BADp37owFCxagefPmpTaGP/+k39J79AD27Cm1t2X52Lp1K2bMmIF79+5p7/Py8sLvv/+Otm3bFum1srIo/Bw+TA3J//1HlZ/sbF0VL+e/6jIZhSCNpuBKn1JJAah9ezoa4+JFaqRWKukU+M6daX+hBg10u0CXNQ47RcBhhzFWXBqNBl9//TVmz56NrKwsWFhYYO7cuQgKCnphr4apdehAZyxt3069GazsZWdn486dOzhx4gQWLFiAe/fuQRAEvP3221i0aFGxDnhNTQVu3KBgu2ULcO8eVX/yCz9A4ac5ZTKa5qpXj1aPPX5MQcjCgvp9WremUO3vT8viSxuHnSLgsFM2srKyEB0dDVdXV8jKy68JjBkhMzMT/fr1w969ewEAr732GpYtW2bU/jimoFRSBSA6mg+RLI+SkpIwceJE7XYDDRo0wJo1a/DSSy+Z7D00Gmp4/vtv2un55k1d748p/tU3N6fjLlxcaF8faVNDa2vaR8jHh6pB1arRqfJ16pTMBpccdoqAw07pefbsGS5fvoxt27Zh8+bNiIqKgq2tLVatWoVBgwaV9fAYM8rXX3+N999/H5aWlvj222/x5ptvlno1Rx83J1cM//zzD0aNGoXw8HAIgoD27dujS5cuGDBgAAICAkrkPePj6XyttWvpwNLoaFqtlV9vT1HJZHT0hZkZ/fkTRbqvTh16P1PjsFMEHHZKx/fff4/JkycjO49NImxsbHDjxg14eXnlekwURYSHh+Phw4eoVq0avLy8IJfLS2PIjL3QlStX0LZtW6SkpOCXX37BG2+8UdZD4rBTgURGRmL69On47bfftPcJgoA5c+ZgxowZsLCwKPExZGXRbswXLwK7dwNnz9IO3KmppgtBQMn8eeSwUwQcdkreli1bMGjQIIiiiFq1aqFDhw4YNmwY2rdvj86dO+PUqVOoVasW3nrrLdSsWRNqtRrXrl3D5cuXcfnyZURFRWlfS6lUwtfXF7Vr18518/b2hko6RpixErZlyxYMGzYMmZmZaNOmDf79999yMSXLYafiefDgAQ4cOIDt27dj9+7dAABHR0eMGzcO7du3h6WlJczMzKBSqdC0aVMoS2lnwIQE6gE6doz26bl+HYiNBdLTix6EOOyUMQ47Jevff/9Ft27dkJ6ejnfeeQfLly83KPHfvn0b7du3Nwg0OcnlclSrVg0RERHI0N9hKw+2trZwcXFB48aNMWzYMAwaNKhMpxRY5ZSYmIg6deogMjISffr0wapVq+Dq6lrWw0JGBk0hKBS09JhVPOvWrcNHH32ER48e5fm4i4sLPvnkE0yYMKGUR2YoI4OOvrh9G/jnH+DCBeD+fQpDGRlUMZKmsqRNEE2Nw04RcNgpHlEUkZCQgJiYGERHRyMzMxMqlQpXrlzB2rVrcfz4cQBA3759sWXLFigUilyvkZiYiDVr1uDEiRN4+vQpFAoF6tevjyZNmqBp06bw9/eHhYUFsrOz8eTJE9y7dy/X7f79+0jLY1ORDh064P3330f79u1hZ2dX4j8PVvnFxsZi8uTJWLduHfz8/HDt2rVyU1HcvJn2R+nXj5pTWcWUnZ2N3bt3Y/Xq1QgLC0NqairS09MRGxuL2NhYAMA777yD4OBguLm5lfFo8yaK1LgcFkZL4/39Tf8eHHaKgMNO0WVkZGDnzp1YvXo19u/fX2C1RSaTYeDAgVizZk2xlle+iCiKiI2NRUxMDMLCwnDgwAEsWbIE6enp2mt8fX1Rt25d1KxZEzVq1ECNGjVQrVo1eHp6wsPDA2blefcsVubCwsLw/fff47vvvkPS8+UnO3fuRO/evct4ZDp+frRD7qVLQJMmZT0aZmpZWVlYtGgRZs6cCQAwNzfHjBkz8MEHH8DS0rKMR1f6OOwUQUUNO2fOnMG2bdtw69YtpKSkoFGjRujduzcCAwNLrIFXo9Hgzz//RFBQEMLCwgwes7KygrOzM5RKJdLS0lCzZk306tULo0ePRrVq1UpkPC/y+PFjLFmyBFu2bMHjx49feL2Liwtq1aqVZz+Qo6MjT4eVE5mZmbhy5QoePXqEhIQExMfHG3zMysqCo6MjXFxc0KpVK7Rp0yZX0BZFEdHR0Xjy5AnUajUePHiAO3fuIDY2FiqVCtWqVUP16tWRmZmJmJgYHD16FNu2bdM22Ddq1AifffYZ+vXrVxY/gnxJf0SzsugoAVY57dmzB8HBwTh79iwA2qTwq6++wpAhQ6rU31McdoqgooUdURSxdOlSBAUFIa//fJ6enhg2bBiGDx+OZs2aFblhUqPR4OTJk9izZw9iY2ORlJSEpKQkpKenIyQkBHfu3AFAZ/qMHj0ao0aNQu3atWFubm6S76+kxMbG4sqVK7h//z4ePnyIkJAQhISEIDw8HE+fPtVu658fe3t71K5dG25ubrC0tIS5uTmUSiUUCgXkcjkUCgUUCgWUSiWcnJzg6uqa61bef0Y5JSUlISoqCt7e3nlOP5aWCxcuYM+ePTh58iQuXryIqKgoaIrYHeno6Ijq1avD3t4eUVFRCA0NRXJycpHH0qFDB0ydOhX9+vUrF83IOXFzctUhiiI2b96M6dOna/t7PD09UaNGDbRs2RJt2rRB69aty+yXzdLAYacIKlLYycrKwuTJk7F8+XIAQOvWr0Kt7oJu3cywdu1JJCVtQVJSvPZ6Ozs79OnTBz179kTDhg0REBCQb9Xn7t27+PXXX7F+/XqEhITkOwZbW1sEBQVhxowZFe4f7/yIooi4uDg8evQI9+/fz9UPlLOKZSxbW1u4urrCw8PDYEWZVE0qzFk5xkpISMDly5dx7949pKWlwd3dHV5eXlCpVIiMjMSDBw8MbiEhIYiPjwdAQa979+5o3749vLy8tFUPFxcX7T/4oihqqyDPnj1DWloaHB0d4ejoCAcHh0KFJY1Go+3Junv3Lm7fvo0TJ05of3vV5+DggPr168Pe3l57s7Ozg729PeRyOWJiYvDkyRMcPHgQ4eHh+b6nm5sbVCoVfHx8ULduXbi5uSE9PR1PnjxBWFgYVCoVnJycUKNGDYwePbrE9j8xFQ47VU9aWhq+/vprzJ8/P8++RW9vb7Ru3RotW7ZEnTp1tFP4hT2UtDzjsFMEFSXsJCYmYtiwYdizZw8EQcCnn36NI0emYuFCAWfP0pklI0eqMXbsXuzevQG7du1CSkqKwWvY29ujQ4cO6NixI5o1a6bd4fXPP//EJ598ov1t2cbGBgMGDICvry9sbGxgY2MDCwsLmJubo3v37uX651QSUlNT8eDBA9y7dw+xsbHaZsGsrKxct4yMDERHRyMyMtLglt+p1/ocHR1Rq1YtuLu7w8nJCc7OznBycsrzczs7O8TFxSEiIgLh4eGIiIjA06dPcffuXdy5cwdPnjxBUlISVCoV5HI5IiIijPrelUplvmNXKpWwtLSEWq2GWq3Os9IosbOz04Yf6SaKIhITE5GYmIi4uDg8fPjQoMdK/3369euHwMBAtGzZEtWrV4e7u3uhKysJCQkIDQ1FWFgY4uPj4eTkBC8vL3h5eVWqPoe7d6lnJyCADnVkVUtcXBzu3LmDO3fu4NSpUzh16hSuXr2abxXU2dkZPj4+cHd3h6urK9zc3ODp6QkvLy9YW1vDysoKVlZWsLOzg4uLi8H/K9LCFKlh2szMDPb29nBycirV/6c47BRBeQo72dnZuH37Nu7cuYOwsDA8ffoUYWFhePLkCU6fPo2UlBRYWFhg/fr1+OuvV+HoSN3ur7wCrFkDfPQRsHgxsG0bIAhZOHfuHDZt2oRLly7h0qVL2qbK/HTt2hVvvvkm+vXrp/0De+0aPVbav9BevQrUrAnY2JTu+5YEURQRHx+vDT5PnjzB/fv3tVWk+/fvF1h9MBUfHx/Ur18fVlZWCA8PR2hoKLKzs+Hk5ARfX1/4+vqiZs2a8PX1RY0aNeDt7Q1LS0ucPXsWu3fvxrVr1xAWFoawsDBERETkGW5kMpn2L8bY2FgkJCQUaYwKhQK+vr6oU6cOateujSZNmqBbt27w9PQ01Y+h0goIoH1QbtygwxoZS05OxtmzZ3Hq1ClcvHgRISEhePjwIeLi4or8WhYWFnB2dtauCstrg1iAqq7e3t7w8vJC8+bN0b17d9SpUwdOTk4m7yfisFMEJRl2zp07h+DgYPj6+sLW1haZmZmIj4/HrVu3tEcl1K1bF46Ojrh8+TIuXrxYYB9BnTp1sH79ety//xJ+/BFo1w6wtaUlpnI57XcwaxbtdfDtt4bPzcrKwqVLl3DkyBEcO3YMN2/eRFRUFERRhJeXF4KCggy2uU9PB956i15fEIDISOC774CS3kokKQl4+206X+XhQ2DYMKAcbEpb4lJSUvDgwQPcv38fUVFRiI6ORkxMjHZJv/7HuLg4iKIImUwGV1dXuLu7w93dHR4eHqhduzb8/Pzg4+MDGxsbZGZmIiMjAz4+PnB2djbZeDMzMxEREYG0tDSYmZlpb7a2tgZTpVlZWYiPj0dMTIz2t0DpJggC7OzsYGtrCzs7O/j4+MDHx6dM+4MqMunfEY1G9zljeUlISEBISAgeP36MZ8+eITIyEs+ePdNO36akpGhv8fHx+a64tbS0hIODAzIyMhAfH19gBXvhwoV4//33Tfp9cNgpgpIMO7/88gvGjRtXpOdYWVmhQYMGuH+/OmJjqwHwhCBUg79/Q3Tq1Azt2gl4/306a+TMGTqJNiMDcHQEPvwQWLAA6NYN6NTJ+JCQlASMGEF7dRw9CqhUwJgxwNy5wCefAIGBxr3ui8THA8OHA1270m6dzZrR6b3Z2cD8+YCVFR0617MnbW2uUtEhdz16lMx4yqvs7GwkJibmChZVkVpNfw6q+j/u0hlE0ueMmYooikhKSkJ0dDSio6NhYWEBJycnODo6GvRtStPSoaGhCA0NRUhICPbv349z584hLCwMmzZtwpAhQ0w6Ng47RVCSYefevXv4559/tBveqVQqWFlZoV69evDw8EBMTAxu376N6OhoBAQE4KWXXkL9+vXRvr1ce2iaQkHLSAH6C136S03amTIne3sKPs7OVOUZMKBoYw4PB8aOpdNqnx/Kq33vgQPpkDd3dyA4mE6+1SeKwMaNwMKFFErc3anC9PLLL37fS5coXMXGUsDR/97s7Wk32NTUvL/n2rWpqlUOF8ewEnL3LtC2Lf15EQRgyBA63LCqZr+ff6ZK7Cuv0G62jJUnaWlpEATB5ItaOOwUQXnq2QGAFi1o222Ago4UcKTAkx/pOolMBri5AdOnA1Onvvg3X40G+P13YNUqOhQuvwVIMhnQuTNVW5o2BZo3p3B14gTwyy+AUkmhpVo1mgpbvhzw8QE++wzo0iV3ILl0iabjTLGV+PXrQMOGxX8dVr59+CFV+nJSKIDt26nyVxHFxwMrVtDp0H370hRuYXvWpP+/U1LoFxLGqoIqF3aWL1+Or776CuHh4WjYsCGWLl2K9u3bF+q55SXsiCJQqxb1qeQnZ6B50f0SlQoICqLAkfM336tXqUpz8iSQnEx/WUpkMrpeo6FbzveQy+m9pcekipPU/C8I1HvTtCl9X2o14OEBeHrSmSqXLxf0EzGOjw+FtXKyez8zodhYwNvb8M9oXhwcqEn3+WLDUieKwKNHFOCtranKmjOAaDT0C8zTp/RLxtKl1BenTxBoSvfnnwEvr/zfb9MmCkbSezNWVVSpsLNp0ya8/vrrWL58Odq2bYsff/wRP//8M27evAlvb+8XPr88hJ20NPpLUX+FoCDQP9gWFjSFI50yK/0Xk8noL1BXV5pOSk0FoqPpH4KK/F9VEChEqVRUJbK0pO8vOZm+R3NzqiQBwLNn1F+U3/fbsyf1AHl7U+iysKDXMzOj15beQ6nkno+SotFQ0L14kf58BgTQSiEHh8L/zOPi6HlF3e5IpQJ++IHOirK2Ltz7iSKQmEhN/teuAVeuUPXx1i36M6hQAC4ugK8vfR/e3rrv8fx54OZN+n+wqCdCF4afH/DBB1RZdXKiStCiRRSUAKpq9e1r+vdlrLyqUmGnZcuWaNasGVasWKG9r379+hgwYADm51XrzqEsw44o0l+WT57kfkwmo7+cpY8AfbSyol4Ye3tdP09ysq4qk51NFZTUVPq8OATB8AbQa5r6T42zM021TZmi+w04Pl53ii5AfT+NG+f9D9bt29Q4vWMHBUdWuclk9GdG2pogNZV6zaKi6P+DqsjcnP/ss6qnsP9+V/j1nRkZGbhw4YL2UDRJt27dcPLkyTyfI22AJklMTCyx8RW1WiCT0V/etWoBrVtTP0ydOkD16tQDo1QW7nWSkoBz54B//6XpqUePgIQEqg4JAoUkpZIqHObm9I9G48b0Xk5O1OsjVYxUKgo3ajU9X/qYnAzExFAVxtGRrjMzo48KBf0WfvYs/SOk/w+RVK3y9wcmT6Zpp7zY29NvsJ07v/j7rVuXSvmShw+BfftoSf5//9H3np1NN6k6Jv3mrf8beM6m7/yawJlxCmqsf9Hzxo6lFYHVq1Mglm5yOQV+tdrwFhlJ00ObNgFG7qeorTIqFPRRugH0ntJNo9H1oikU9P+NmRn9f1G9Ot0cHXVTvubmtKWDnR1dn55OgS05mf7fzcig+9LS6BeYlBSqij18SFWnnD+/r76iaWrGWN4qfGXn6dOnqFatGk6cOIE2bdpo7583bx5+/fVX3L59O9dzgoOD8emnn/5/e/ceFcV5hgH82QXBAga8cBHlQAzeyCpeQBTJSST2pLGnUZTUu2mbhFhbmygekrTHpHqaWDyGiKb0ZowYERQvpDHUW4wxGiEGE0u2sRSECKhcpARUEJZ9+4eHDRsUdhR2luH5/QWzs3veec4M8zLz7TftlnfHlZ2AgFt/zPr1u3Xy9vO7dfl7+PBbl8DHj7/1R5G3UIiIiJTpNVd2Wn1/VkYRueNMjS+//DJWrlxp+b2urg4BHY3+uwelpd3ysURERGSjHt/sDBo06LbP/amsrISvr+9t39M60ysRERFpX4+fgs3FxQUTJ07EkSNHrJYfOXLE6rYWERER9U49/soOAKxcuRKLFy9GWFgYpkyZgr/97W+4ePEili5dqnZpREREpDJNNDtz587F1atXsXbtWly+fBkGgwHZ2dkIvNPXfIiIiKjX6PHfxuoKjjCpIBERESlj6/m7x4/ZISIiIuoImx0iIiLSNDY7REREpGlsdoiIiEjT2OwQERGRprHZISIiIk1js0NERESaxmaHiIiINI3NDhEREWmaJh4Xca9aJ5Guq6tTuRIiIiKyVet5u7OHQbDZAVBfXw8ACAgIULkSIiIiUqq+vh6enp53fJ3PxgJgNptx6dIl9OvXDzqdrss+t66uDgEBASgtLeUzt2zAvJRhXp1jRrZjVsowL+W6IzMRQX19Pfz9/aHX33lkDq/sANDr9Rg6dGi3ff59993Hg0EB5qUM8+ocM7Ids1KGeSnX1Zl1dEWnFQcoExERkaax2SEiIiJNY7PTjVxdXfHqq6/C1dVV7VJ6BOalDPPqHDOyHbNShnkpp2ZmHKBMREREmsYrO0RERKRpbHaIiIhI09jsEBERkaax2SEiIiJNY7NDRD0Sv1tBRLZis3OXGhsb1S6hR+IJynbM6s5u3Lhh9Tuz6lhhYSHef/99tcvoMUpLSzFv3jxkZGQA4P7VmZ5wPmSzo5CI4IUXXkBMTAwWLVqEDz/8ECaTyfIaWRMRvPnmm5Y/Gl357DGtYVadExHEx8fjJz/5CWbNmoUdO3agubmZWd2BiOBXv/oVRowYgY8++kjtchyeiCAuLg6BgYHYvXs3ysvLAfBYvJOedD5ks6NAQUEBJkyYgNzcXCxevBhXr17Fiy++iJdeeknt0hzSsWPHMHHiRMTHx2Pv3r0oKSkB4HgHgSNgVp3bs2cPAgMDcfr0aTz11FNobm7GW2+9hQMHDqhdmkPaunUrvLy8kJubi9OnTyMpKUntkhza5s2b4enpiXPnzqGgoAAPP/wwioqKANx6WDRZ62nnQzY7CmRnZ2PQoEE4fvw4FixYgPfeew8//vGPkZSUhE8++YTdfxuNjY3IyspCeHg4NmzYgJKSEmRlZQHgf0nfx6w6V1xcjH379mHZsmU4deoUlixZgtTUVJSWlnb4pOPeqri4GAkJCZg8eTI+//xzRERE4MKFC7h8+TKuX7+udnkOZ8OGDdi0aRNSUlKQm5uL4OBgjB07Fnl5eWhubuY+dhs97XzIp57bwGw2w2Qy4dy5c3B3d4erqyvMZjNcXFwsT26Nj4/HZ599pnKl6hMR6HQ69O3bF4sWLYKbmxsMBgPy8vJw6NAhTJ06FeHh4Zb1ejsRYVY2GDhwIF544QUEBwdbsqipqUFISAj69++PxsZG9O3bV+UqHcfQoUPx0ksv4Y9//COMRiM2bNiAU6dOQa/Xo3///lixYgV++tOfql2mw1i0aBFWrFgBJycnyzJ3d3eYzWbU1dVhwIABvf4YbNVTz4dsV+9gx44d2LdvH8rKyqDX6+Hi4oI+ffrAZDIhJyfH0umfO3cOCQkJMBqNyMzMBNA7bz3k5+e3WzZp0iQYDAYAwLJly1BZWYmsrCzLGIvemBNgvW+1/gENDw9nVm20zQgA7rvvPoSFhWHAgAEAgISEBIwdOxZXrlxBbGwsZs2ahcOHDwPonbccvp9Xnz59sGDBAgwZMgRjxoxBS0sLNm/ejHXr1iEgIACrV6/GoUOHADAvAPDz84Ner4eIWPKYPn06zp49CwC98hhsSxPnQyErR48eFX9/fzEYDDJ06FAZM2aMvPHGGyIikp+fLxERERIUFCRPP/20eHl5yaRJk8RoNMqMGTPkF7/4hcrV298HH3wgQUFBEhoaKhcuXBARkZaWltuuGx8fL1FRUXLgwAF7lugwbrdvJScnW143m82Wn3trVrfLaOPGje3WW7hwobz33nty7do1ycnJkaeeekpCQ0PtX7DKbpfXm2++KSIiJpNJ/vnPf8qaNWvk6tWrlvf897//lZiYGImJiVGpavV0dgy2lZubK0FBQbJnzx47V+k4tHQ+ZLPThtlslpiYGHnuuedERMRoNMprr70mTk5OcvDgQREROXfunCQlJcmCBQtk586dlvdGR0dLQkKCKnWrZfv27RIaGiqPP/64TJ06VVavXn3b9Vqbn5KSEomMjJS4uDipqakREZGvv/7aah2t6mjfOnLkiGU9k8kkIr0zK1syam0I2zaGIiKJiYkSEhIixcXFdq1ZTR3ldfjwYRERuX79utTW1rZ77/z582XGjBnS0NBg15rVZOsx2LpvlZeXy8CBA2Xv3r1Wy3sLrZ0P2ey0UVBQIK6urnLixAnLspaWFlm4cKGMGjVKrly50u49ZrNZvvnmG3nwwQclJSXFnuWq7pNPPpH4+Hi5ePGiPP/88xIVFSWnTp0SkfYn5NY/FMnJyTJ58mR58cUXJTIyUkJCQqSxsdHutdtbR/vW6NGj5fLly1bLRXpfVrZmdLuTTlxcnCxYsMButToCJftUW9euXZNp06bJihUr7FWqQ7ibYzA8PFx++ctfikjva3a0dj7kmJ02BgwYgIEDB6K4uBgA0NLSAr1ejzfeeAPl5eXYuXOnZTkAVFRUoLKyEmvWrMEPfvADzJw5U7Xa1RAVFYXXXnsNAQEBmD9/PlxdXbF161YAsNz//r7p06cjPz8f69evR3BwMHJzc+Hq6mrv0u2uo32rrKwM6enpAG6Nn2gdx9PbsrI1o9Z8GhoacOXKFSxfvhzHjh3DokWLADjQGIFuZmterRoaGlBRUYGEhARcuXLFkldvoeQY1Ov1aGpqwsiRI1FZWYmGhoZeN0BZa+dDNjttNDc3Izw8HMePH8eNGzfg5OSElpYW+Pr6Yvny5UhOTgYAODk5oaKiAlu2bMGDDz4Io9GI7du3w9/fX+UtsD9XV1eICCIiIhAdHY2vvvoKu3fvbreeTqfDjh07YDAYMHHiRBiNRqSmpsLDw0OFqu3P1n1Lr9f32qxszQgA/vGPf+B3v/sdwsLCkJeXh/379+Pxxx8H0Hu+rq8kr/3792PVqlUYO3YsvvjiC+zZswcTJkxQsXr7U3IMtn67CAA8PT3Rp08fNUtXhdbOh72q2SkrK8Ply5cBWP/3JyIwmUzw8/OznFyys7MBfPeHc8aMGTCbzcjLywMADBo0CI888gh27tyJnJwcjB492s5b0/3ulBfwXTff9rX58+dj8ODBSE9PR21tLXQ6nWU2TQCYPHkytm/fjo8//lhzeRUWFlomt7vXfQvQZlZdkdHnn38OABg7diwCAgKwZcsWfPrpp5ZvsmlJV+c1ZMgQbN26FZ9++ilCQkLsvDXdr6uPQQD4+9//jrfffhvOztqbpaUr8+oR50O73zhTQVNTk8TFxUlAQIAkJiZavdbc3Gz1+//+9z+Jjo6W2NhYy7eLREQyMjLEx8dHSkpK7FKzmmzNq+24nNb72W+//bZMnjxZkpOTJT8/X2bOnNkuYy25efOmxMXFiU6nk8DAQKvXlO5b33zzjYhob2xAV2bUG44/5qVMdxyDWtZb9y/NX9kpLS3F1KlTkZ+fj8zMTMyfP9+qi23t2Ddt2oSwsDCYTCb85je/QXl5OeLi4nD+/HmUl5fjyJEjiIyMhI+Pj1qbYhdK8poyZQr+85//WL1/3rx5CAwMxG9/+1tMmDAB1dXVaGpq0uQ4iqSkJHh6euLrr7/G888/j/79+6OgoMDyutJ9y9vbG4C2bsN0dUZaP/6YlzLddQxqVa/ev1Rutrrdli1bZPr06Zb/lktLS6WpqcnyutFolODgYHnggQckLS1NRG79Z33ixAkZPny4DB8+XHx9fcVgMEh+fr4q22BPSvJKT0+3eu+1a9dk8+bN4uLiIpGRkXLmzBm71m4v1dXVMnr0aPHx8bHMwXH06FHp16+flJWVicitfchoNMqIESN65b7FjJRhXsowL2WYl0a/em42my0n66VLl0p8fLzU1NTIk08+KaNGjZJx48bJM888I99++61cunRJEhMTLXNRtL2FcPXqVTEajXLs2DFVtsNe7iWvtv7973/LkCFD5K9//au9N8Guamtr5eDBg1a38crKysTLy0t27dplWVZcXCzr16+Xb7/9VkR6177FjJRhXsowL2WYl8aancLCwnbjHaKiomTlypXyyiuvyJNPPilHjx6Vv/zlL+Ln5yfPPPNMh3N3aF1X5qX1/AoLC287mV/rsqKiIhk3bpwkJSWJiPbzuB1mpAzzUoZ5KcO8rGlizM7WrVsRGBiIuXPnYsqUKUhLS0NTUxMAYNasWUhOTkZ6ejoSEhLw6KOP4rnnnsO6detw+vRpnDlzBoC2xkl0pjvy0mp+bbOKjIxEWlqa5dk5ImJ5JsywYcMgIpY5KXrT84aYkTLMSxnmpQzzugO1uqyusnHjRgkODpb09HQ5efKkvPLKK6LX6+VPf/qTmEwm+eqrryQ0NFSCgoKkvLzc6r3+/v6WWy5a72pbMS/bdZRV6zgms9ls+U9p+fLlEhERoWbJdseMlGFeyjAvZZjXnfXoZuf69evywx/+UF599VUR+e4E/NBDD0lAQIDlIYrr168XJycn2b17t+W9lZWVMmbMGNmxY4fd61YL87JdR1kFBgZKVlaW1XIRkVWrVklkZKTlWVZax4yUYV7KMC9lmFfHevRtLGdnZ+Tl5WHkyJEAgJs3bwIAfHx80NLSgl27dqG2thbLli3DE088gfj4ePz+97/Hl19+iZdffhnOzs6Ijo5WcxPsinnZrqOsmpubsW/fPlRVVVlNnDht2rR2k5JpGTNShnkpw7yUYV4d6zHNTmZmJp599lkkJycjPz8fAODi4oLHHnsMa9euRXl5Ofr27Yu0tDTU1NRgxowZyMnJQUlJCdzd3bFr1y7ExMTgwIEDmDdvHgoLC5GZmYnBgwervGXdg3nZ7m6zKi8vB/Dd3BTOzs7w8PDAl19+qdamdBtmpAzzUoZ5KcO87oLal5Y6U11dLbGxseLn5ydLly6VqKgoGTx4sGzfvl1Ebj2ZddiwYTJs2DDx9/cXNzc32bt3r4iIODs7ywcffGD1edeuXZPCwkK7b4e9MC/bdVVWJpNJRG59lfOzzz5TZ2O6CTNShnkpw7yUYV53z+GbnczMTJk0aZJl4iMRkZkzZ0pQUJDs379fRG5NfHfo0CFJTU21DMKqrKyUYcOGSWZmphplq4Z52Y5ZdY4ZKcO8lGFeyjCvu+fwzU5MTIzMnj1bRETq6+tFRGTbtm2i0+nk0UcflcrKShGRdvMJ7Nq1S0aNGmWZF6a3YF62Y1adY0bKMC9lmJcyzOvuOdSYnRMnTuDQoUNWT8oePnw4jEYjAMDDwwMAcP78eURHR6OxsRFZWVkAAL1ej6qqKpw/fx5vvfUWVqxYgdmzZ2PQoEGafC4TwLyUYFadY0bKMC9lmJcyzKuLqdhoWVRVVcmSJUtEp9NJaGioFBcXW14rKioSb29vefjhhyUxMVGmTJki999/v3z44YcSGhoqq1evtqybl5cns2bNkvvvv1/effddFbbEPpiX7ZhV55iRMsxLGealDPPqHqo3O83NzZKSkiKPPfaYZGRkiJubm6xbt04aGxst65w8eVKeffZZmTBhgvz617+WqqoqERFZvHixzJkzx+rzzp49a9f67Y152Y5ZdY4ZKcO8lGFeyjCv7qN6syMikpOTI++//76IiKxZs0a8vb3liy++aLfezZs3LT9XVFSIwWCQP/zhDyJyayfpLZiX7ZhV55iRMsxLGealDPPqHg7R7Hz/0QP+/v4SFxcndXV17V5vaGiQpqYmSUlJkfHjx8u//vUvu9bqCJiX7ZhV55iRMsxLGealDPPqHg7R7LRq7VR3794tzs7OcvjwYavXy8rKJCUlRcLCwmTAgAGyc+dONcp0GMzLdsyqc8xIGealDPNShnl1LZ2IYw7NjoyMhLu7O9LS0uDj44Oqqip4e3sjPT0dly5dQnx8vNolOhTmZTtm1TlmpAzzUoZ5KcO87p3DNTsmkwnOzs4wGo0IDQ1FUlISioqKcPLkSaSmpsJgMKhdokNhXrZjVp1jRsowL2WYlzLMqwupe2GpY+Hh4aLT6SQwMFAOHjyodjkOj3nZjll1jhkpw7yUYV7KMK9745DNTmFhoRgMBnFzc5MtW7aoXY7DY162Y1adY0bKMC9lmJcyzKtrONQMyq2cnJwwZ84cVFdX4+mnn1a7HIfHvGzHrDrHjJRhXsowL2WYV9dwuDE7RERERF3JIa/sEBEREXUVNjtERESkaWx2iIiISNPY7BAREZGmsdkhIiIiTWOzQ0RERJrGZoeIiIg0jc0OEfVYx48fh06nQ21trdqlEJED46SCRNRjPPLIIxg3bhw2btwIAGhqakJNTQ18fX2h0+nULY6IHJaz2gUQEd0tFxcX+Pn5qV0GETk43sYioh7hZz/7GT7++GMkJydDp9NBp9Nh27ZtVrextm3bBi8vLxw4cAAjR46Em5sbYmNjcf36daSmpiIoKAj9+/fH8uXL0dLSYvnspqYmJCQkYMiQIXB3d0dERASOHz+uzoYSUZfjlR0i6hGSk5NRUFAAg8GAtWvXAgCMRmO79W7cuIFNmzYhIyMD9fX1mD17NmbPng0vLy9kZ2fjwoULmDNnDqKiojB37lwAwM9//nOUlJQgIyMD/v7+2L9/P370ox8hPz8fw4cPt+t2ElHXY7NDRD2Cp6cnXFxc4ObmZrl1df78+XbrNTc3489//jMeeOABAEBsbCzeffddVFRUwMPDAyEhIZg2bRo++ugjzJ07F0VFRUhPT0dZWRn8/f0BAKtWrcLBgwfxzjvv4PXXX7ffRhJRt2CzQ0Sa4ubmZml0AMDX1xdBQUHw8PCwWlZZWQkAOHv2LEQEI0aMsPqcmzdvYuDAgfYpmoi6FZsdItKUPn36WP2u0+luu8xsNgMAzGYznJyckJeXBycnJ6v12jZIRNRzsdkhoh7DxcXFamBxVxg/fjxaWlpQWVmJhx56qEs/m4gcA7+NRUQ9RlBQEHJzc1FSUoLq6mrL1Zl7MWLECCxcuBBLlizBvn37UFxcjDNnziAxMRHZ2dldUDURqY3NDhH1GKtWrYKTkxNCQkLg7e2NixcvdsnnvvPOO1iyZAni4+MxcuRIPPHEE8jNzUVAQECXfD4RqYszKBMREZGm8coOERERaRqbHSIiItI0NjtERESkaWx2iIiISNPY7BAREZGmsdkhIiIiTWOzQ0RERJrGZoeIiIg0jc0OERERaRqbHSIiItI0NjtERESkaWx2iIiISNP+D2+rIj0z+n7lAAAAAElFTkSuQmCC",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "# Get the paths to all the ens_1...ens_N folders, one per member\n",
+ "paths_spinup = list(tmp_path.glob(\"ens_*\"))\n",
+ "\n",
+ "# Read those into memory in an EnsembleReader object\n",
+ "ens_spinup = EnsembleReader(run_name=conf_spinup.run_name, paths=paths_spinup)\n",
+ "\n",
+ "# We can now plot the results\n",
+ "ens_spinup.hydrograph.q_sim[:, :, 0].plot.line(\"b\", x=\"time\", add_legend=False, lw=0.5)\n",
+ "ens_spinup.hydrograph.q_sim[1, :, 0].plot.line(\"b\", x=\"time\", label=\"Forecasts\", lw=0.5)\n",
+ "ens_spinup.hydrograph.q_obs[1, :, 0].plot.line(\n",
+ " x=\"time\", color=\"black\", label=\"Observation\"\n",
+ ")\n",
+ "plt.legend(loc=\"upper left\")\n",
+ "plt.ylabel(\"Streamlfow (m³/s)\")\n",
+ "plt.title(\"Spinup period\")\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Start converging model states by closed-loop assimilation\n",
+ "We have completed the spinup period, which has left us with a set of 25 initial states that can be used to sample initial state uncertainty. However, we need to do a few more assimilation passes before the model starts to converge to appropriate values. From the assimilated states of the spinup period, let's now do a single 3-day simulation and see what happens:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "# Set the start date equal to the assimilated date of the prior run, as we want to start from the assimilated\n",
+ "# states. The end date is set 3 days later, after which assimilation will be automatically performed.\n",
+ "start_date = end_date\n",
+ "end_date = end_date + dt.timedelta(days=3)\n",
+ "\n",
+ "# Closed-Loop assimilation. From the previous configuration, we can make a copy and only change the required\n",
+ "# parameters, such as the run name, start and end dates, and the type of EnKF (switch from spinup to closed-loop).\n",
+ "conf_loop = conf_spinup.duplicate(\n",
+ " EnKFMode=o.EnKFMode.CLOSED_LOOP,\n",
+ " # This will be the name of the output files in the closed-loop run.\n",
+ " RunName=\"loop\",\n",
+ " # This is the name of the run we will start from, i.e. the assimilated spinup states from earlier!\n",
+ " SolutionRunName=\"spinup\",\n",
+ " # We need to tell the model not to set the default initial conditions (it will use the assimilated states)\n",
+ " UniformInitialConditions=None,\n",
+ " # Set the new dates\n",
+ " StartDate=start_date,\n",
+ " EndDate=end_date,\n",
+ ")\n",
+ "\n",
+ "# Now that the configuration is ready, launch the assimilation run. Raven will run 25 times: Once for each member\n",
+ "# With the same perturbed meteorological and hydrometric data and parameters as defined previously, but for this\n",
+ "# new 3-day period.\n",
+ "loop = Emulator(config=conf_loop, workdir=tmp_path, overwrite=True).run(overwrite=True)\n",
+ "\n",
+ "# Get the paths to all the ens_1...ens_N folders, one per member\n",
+ "paths_loop = list(tmp_path.glob(\"ens_*\"))\n",
+ "\n",
+ "# Repeat the same process as the spinup to look at model results:\n",
+ "ens_loop = EnsembleReader(run_name=conf_loop.run_name, paths=paths_loop)\n",
+ "\n",
+ "# We can now plot the results\n",
+ "ens_loop.hydrograph.q_sim[:, :, 0].plot.line(\"b\", x=\"time\", add_legend=False, lw=0.5)\n",
+ "ens_loop.hydrograph.q_sim[1, :, 0].plot.line(\"b\", x=\"time\", label=\"Forecasts\", lw=0.5)\n",
+ "ens_loop.hydrograph.q_obs[1, :, 0].plot.line(\n",
+ " x=\"time\", color=\"black\", label=\"Observation\"\n",
+ ")\n",
+ "plt.legend(loc=\"lower left\")\n",
+ "plt.ylabel(\"Streamlfow (m³/s)\")\n",
+ "plt.title(\"First closed-loop period\")\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "We can see that the assimilation has not converged very well. This is expected, as there have only been 2 assimilation steps performed as of yet: One after the spinup period, and this one that happens 3 days later. We will iterate the assimilation loop to help the model converge after multiple assimilation steps. Here we will loop over 30 steps of 3 days each."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjUAAAHrCAYAAAA3yWxaAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAADxo0lEQVR4nOydd3zN9xfGn5u9I0aWETFixd7U3tRsUbSotooqirZUW6otLaX4abVGzRo1i9p77xV7hQgJSciOrPv5/fH45uYmsTJkOO/X675y73fdz73Sfp+c85xzdEopBUEQBEEQhFyOSXYvQBAEQRAEITMQUSMIgiAIQp5ARI0gCIIgCHkCETWCIAiCIOQJRNQIgiAIgpAnEFEjCIIgCEKeQESNIAiCIAh5AhE1giAIgiDkCUTUCIIgCIKQJxBRIwhZzIwZM6DT6eDt7f3UY3Q6HcaNG5f0es+ePdDpdNizZ0+G3//WrVvQ6XRYsGBBhq+VFSxYsAA6nQ63bt167rF9+/ZF8eLFs3xNuYmUvzsZJTN/9wThVWOW3QsQhLzOX3/9BQC4cOECjh49itq1a2fzioS8xOHDh1GkSJHsXoYg5AgkUiMIWciJEydw9uxZtGvXDgAwb968bF6RkBdQSiEmJgYAUKdOHRE1gvAEETWCkIVoIuann35CvXr1sHz5ckRHR2fqe9y9exf9+/dH0aJFYWFhAXd3d7z99tu4f//+M887cOAAmjVrBnt7e9jY2KBevXr477//jI6Jjo7GyJEj4enpCSsrK+TPnx81atTAsmXLjI47ceIEOnTogPz588PKygpVq1bFP//8k+o9jxw5gvr168PKygru7u4YPXo04uPjM/T5Hz9+jNGjR8PT0xMWFhYoXLgwPvnkE4SGhhodp9frMWnSJJQtWxaWlpZwdnZG79694e/vb3Rc48aN4e3tjf3796NOnTqwtrZG4cKF8c033yAxMfG56ylevDjefPNNrF27FpUqVYKVlRVKlCiBGTNmpDo2PDw86fvV1j5s2DBERUUZHafT6TB48GD88ccfKFeuHCwtLbFw4cKkfSnTT+fPn0fHjh3h5OQEKysrVKlSJen45Fy+fBmtW7eGjY0NChYsiAEDBiAiIiLVcadPn8abb74JZ2dnWFpawt3dHe3atUv13QlCtqMEQcgSoqOjlaOjo6pZs6ZSSqm5c+cqAGrBggWpjgWgxo4dm/R69+7dCoDavXv3M9/D399fubm5qYIFC6qpU6eqHTt2qBUrVqh+/fqpS5cuKaWU8vX1VQDU/Pnzk87bs2ePMjc3V9WrV1crVqxQ69atUy1btlQ6nU4tX7486biPP/5Y2djYqKlTp6rdu3erjRs3qp9++kn973//Szpm165dysLCQjVo0ECtWLFCbdmyRfXt2zfVe164cEHZ2Nio8uXLq2XLlql///1XtWrVShUrVkwBUL6+vs/9Tvv06aM8PDySXuv1etWqVStlZmamvvnmG7Vt2zb1yy+/KFtbW1W1alX1+PHjpGP79++vAKjBgwerLVu2qD/++EMVKlRIFS1aVAUFBSUd16hRI1WgQAHl7u6uZsyYobZu3aqGDBmiAKhPPvnkuWv08PBQhQsXVsWKFVN//fWX2rRpk+rVq5cCoCZPnpx0XFRUlKpSpYrRv9306dOVo6Ojatq0qdLr9UnHAlCFCxdWlSpVUkuXLlW7du1S58+fT9qX/Hfn8uXLyt7eXpUsWVItWrRI/ffff6pHjx4KgPr555+TjgsMDFTOzs6qcOHCav78+Unr1P49tN+9yMhIVaBAAVWjRg31zz//qL1796oVK1aoAQMGqIsXLz73+xCEV4mIGkHIIhYtWqQAqD/++EMppVRERISys7NTDRo0SHVsekVNv379lLm5+TNvLmmJmjp16ihnZ2cVERGRtC0hIUF5e3urIkWKJN1Qvb29VadOnZ65hrJly6qqVauq+Ph4o+1vvvmmcnNzU4mJiUoppbp3766sra1VYGCg0XuWLVs23aJmy5YtCoCaNGmS0XErVqxQANTs2bOVUkpdunRJAVCDBg0yOu7o0aMKgPrqq6+StjVq1EgBUP/++6/RsR999JEyMTFRt2/ffuYaPTw8lE6nU2fOnDHa3qJFC+Xg4KCioqKUUkpNnDhRmZiYqOPHjxsdt2rVKgVAbdq0KWkbAOXo6KgePnyY6v1S/u688847ytLSUvn5+Rkd16ZNG2VjY6NCQ0OVUkp9+eWXT11n8t+9EydOKABq3bp1z/zcgpATkPSTIGQR8+bNg7W1Nd555x0AgJ2dHbp27Yr9+/fj2rVrmfIemzdvRpMmTVCuXLkXPicqKgpHjx7F22+/DTs7u6TtpqameO+99+Dv748rV64AAGrVqoXNmzdj1KhR2LNnT5KPQ+P69eu4fPkyevXqBQBISEhIerRt2xYBAQFJ19q9ezeaNWsGFxcXo/fs3r270TX1er3RdZ6V8tm1axcAVkUlp2vXrrC1tcXOnTuT3jut42rVqoVy5colHadhb2+PDh06GG3r2bMn9Ho99u3b99T1aFSoUAGVK1dOdX54eDhOnToFANi4cSO8vb1RpUoVo8/bqlWrNKuPmjZtCicnp+e+965du9CsWTMULVrUaHvfvn0RHR2Nw4cPA+B38rR1JqdUqVJwcnLCl19+iT/++AMXL1587hoEIbsQUSMIWcD169exb98+tGvXDkophIaGIjQ0FG+//TYAQ0VURgkKCnppk+ijR4+glIKbm1uqfe7u7gCAkJAQACxH//LLL7Fu3To0adIE+fPnR6dOnZJEmebbGTlyJMzNzY0egwYNAgAEBwcnXdPV1TXVe6bcNn78eKPrlCxZ8qmfJSQkBGZmZihUqJDRdp1OB1dX16TPof182mfW9mskF14p15ny2LR41ufUzr9//z7OnTuX6nuzt7eHUirpe9NIa+1pERIS8kL/ti/67+Ho6Ii9e/eiSpUq+Oqrr1ChQgW4u7tj7NixGfZDCUJmIyXdgpAF/PXXX1BKYdWqVVi1alWq/QsXLsQPP/wAU1PTDL1PoUKFXtqs6eTkBBMTEwQEBKTad+/ePQBAwYIFAQC2trb47rvv8N133+H+/ftJUZv27dvj8uXLSceNHj0aXbp0SfP9ypQpAwAoUKAAAgMDU+1Pua1///548803k15bWlo+9bMUKFAACQkJCAoKMhI2SikEBgaiZs2aSccBQEBAQCoReO/evaTPoZGWyVpbp3atZ/Gsz6mdX7BgQVhbWz9V4KZck06ne+77atd/kX/bF/33AICKFSti+fLlUErh3LlzWLBgAcaPHw9ra2uMGjXqhdYlCK+E7Mx9CUJeJCEhQbm7u6uSJUuq3bt3p3qMGDFCAVAbNmxIOgcZ9NRcvnz5qcek5ampW7eucnV1VdHR0UnbEhMTVcWKFY08NWkxbNgwBSDJG1K6dGnVtm3bZ65Tqazx1GzdulUBUFOnTjU6buXKlQqAmjNnjlKK5lkAasiQIUbHHTt2TAFQY8aMSdqWlZ4ae3v7pO/thx9+UDY2NurmzZvP/dx4hkk55e9Ojx49lJWVlbp7967Rce3atUuXp+Zp5MuXT3Xt2vW5axeEV4mIGkHIZDZs2JCq0iQ5QUFBytLS0siAm15Ro1U/OTs7q2nTpqmdO3eq1atXq48++uiFqp9q166tVq5cmVSJlLL6qVatWmr8+PFq3bp1au/eveqPP/5QBQoUUHXr1k06ZteuXcrS0lK1bNlSLV26VO3du1etXbtWTZgwQb399ttJx/n4+Chra2tVvnx5tXz5crV+/XrVqlUrVbRo0QxXP5mbm6tx48ap7du3qylTpig7O7s0q590Op0aNmyY2rp1q/rzzz+Vs7OzKlq0qAoODk46Lnn10//+9z+1detWNXToUAVADRw48LlrTFn9tHnz5qTqp+S/E5GRkapq1aqqSJEiasqUKWr79u1q69atas6cOapr167qyJEjSce+jKjRqp+8vLzUkiVLjKqvkhuqAwICVKFChVJVP2n/Htrv3oYNG1SbNm3Un3/+qbZv3662bdumBgwYYGTEFoScgogaQchkOnXqpCwsLNSDBw+eesw777yjzMzMkqIW6RU1Sil1584d1a9fP+Xq6qrMzc2Vu7u76tatm7p//75SKm1Ro5RS+/fvV02bNlW2trbK2tpa1alTxyh6pJRSo0aNUjVq1FBOTk7K0tJSlShRQn322WdGIkAppc6ePau6deumnJ2dlbm5uXJ1dVVNmzZNqvzSOHjwoKpTp46ytLRUrq6u6vPPP1ezZ89Ot6hRSqmYmBj15ZdfKg8PD2Vubq7c3NzUwIED1aNHj4yOS0xMVD///LPy8vJS5ubmqmDBgurdd99Vd+7cMTquUaNGqkKFCmrPnj2qRo0aytLSUrm5uamvvvoqVYVXWnh4eKh27dqpVatWqQoVKigLCwtVvHjxVNEkpShsvv76a1WmTBllYWGhHB0dVcWKFdVnn31mFNF6GVGjFAVk+/btlaOjo7KwsFCVK1dO9e+vlFIXL15ULVq0UFZWVip//vzqgw8+UP/++6/R797ly5dVjx49VMmSJZW1tbVydHRUtWrVSrM1gSBkNzqllMryHJcgCEIuoXHjxggODsb58+fTdX7x4sXh7e2NjRs3ZvLKBEF4HlL9JAiCIAhCnkBEjSAIgiAIeQJJPwmCIAiCkCeQSI0gCIIgCHkCETWCIAiCIOQJRNQIgiAIgpAneK3GJOj1ety7dw/29vYv3HJcEARBEITsRSmFiIgIuLu7w8Tk6fGY10rU3Lt3L9XkWkEQBEEQcgd37tx55hDf10rU2NvbA+CX4uDgkM2rEQRBEAThRQgPD0fRokWT7uNP47USNVrKycHBQUSNIAiCIOQynmcdEaOwIAiCIAh5AhE1giAIgiDkCUTUCIIgCIKQJ3itPDXPQymFhIQEJCYmZvdShByAqakpzMzMpPxfEAQhlyCi5glxcXEICAhAdHR0di9FyEHY2NjAzc0NFhYW2b0UQRAE4TmIqAGb8vn6+sLU1BTu7u6wsLCQv85fc5RSiIuLQ1BQEHx9fVG6dOlnNnwSBEEQsh8RNWCURq/Xo2jRorCxscnu5Qg5BGtra5ibm+P27duIi4uDlZVVdi9JEARBeAbyp2cy5C9xISXyOyEIgpB7kP9jC4IgCIKQJxBRIwiCIAhCnkBEjSAIgiAIeQIRNbmcvn37QqfTpXpcv349u5eWLhYsWIB8+fJl9zIEQRCEXIhUP+UBWrdujfnz5xttK1So0EtfJy4uTvqxCIIgCLkWidTkASwtLeHq6mr0MDU1xd69e1GrVi1YWlrCzc0No0aNQkJCQtJ5jRs3xuDBgzF8+HAULFgQLVq0AABcvHgRbdu2hZ2dHVxcXPDee+8hODg46Ty9Xo+ff/4ZpUqVgqWlJYoVK4Yff/wxaf+XX34JLy8v2NjYoESJEvjmm28QHx+ftP/s2bNo0qQJ7O3t4eDggOrVq+PEiRPYs2cP3n//fYSFhSVFnMaNGwcA+P3331G6dGlYWVnBxcUFb7/9dhZ/q4IgvGoiI4HGjYF797J7JUJuRURNHuXu3bto27YtatasibNnz2LWrFmYN28efvjhB6PjFi5cCDMzMxw8eBB//vknAgIC0KhRI1SpUgUnTpzAli1bcP/+fXTr1i3pnNGjR+Pnn3/GN998g4sXL2Lp0qVwcXFJ2m9vb48FCxbg4sWLmD59OubMmYNff/01aX+vXr1QpEgRHD9+HCdPnsSoUaNgbm6OevXqYdq0aXBwcEBAQAACAgIwcuRInDhxAkOGDMH48eNx5coVbNmyBQ0bNsz6L1EQhFfK//4HtGsH9O0LSHN3IT3olFIquxfxqggPD4ejoyPCwsLg4OCQtP3x48fw9fWFp6dnqgZrAwcCd+++ujUWLgzMmvXix/ft2xdLliwxWnebNm3g5eWF1atX49KlS0ndkX///Xd8+eWXCAsLg4mJCRo3boywsDCcPn066dxvv/0WR48exdatW5O2+fv7o2jRorhy5Qrc3NxQqFAhzJw5Ex9++OELrXHy5MlYsWIFTpw4AQBwcHDA//73P/Tp0yfVsQsWLMCwYcMQGhqatG3NmjV4//334e/vD3t7+xf/cjKBZ/1uCIKQeYSGAt27A1u2ALt2AX/9BSxeDEirKAF4+v07JeKpeQ4vIzCyiyZNmmBWsoXa2trik08+Qd26dY3GPdSvXx+RkZHw9/dHsWLFAAA1atQwutbJkyexe/du2NnZpXqfGzduIDQ0FLGxsWjWrNlT17Nq1SpMmzYN169fR2RkJBISEox+CYcPH44PP/wQixcvRvPmzdG1a1eULFnyqddr0aIFPDw8UKJECbRu3RqtW7dG586dpfuzIOQhfv0VGD4c0OmAZs2Aa9eA8eOBJxloAEBsLODjAxw6BFSuDDRqlG3LFXIoooHzALa2tihVqlTSw83NDUqpVPOrtKBc8u22trZGx+j1erRv3x5nzpwxely7dg0NGzaEtbX1M9dy5MgRvPPOO2jTpg02btyI06dPY8yYMYiLi0s6Zty4cbhw4QLatWuHXbt2oXz58li7du1Tr2lvb49Tp05h2bJlcHNzw7fffovKlSsbRXMEQci9BAcDJ04ALVsatg0YADx6BEyeDHzyCdC2LSM5//4LPHwIzJiRfesVci4iavIo5cuXx6FDh5A8u3jo0CHY29ujcOHCTz2vWrVquHDhAooXL24klEqVKgVbW1uULl0a1tbW2LlzZ5rnHzx4EB4eHhgzZgxq1KiB0qVL4/bt26mO8/LywmeffYZt27ahS5cuSdVbFhYWSExMTHW8mZkZmjdvjkmTJuHcuXO4desWdu3a9bJfiyAIOZBJk4AvvmCURuP6dYqXmTMBLy+gdWvA0pLi5/x54MCB7FuvkHMRUZNHGTRoEO7cuYNPP/0Uly9fxr///ouxY8di+PDhz5xn9Mknn+Dhw4fo0aMHjh07hps3b2Lbtm3o168fEhMTYWVlhS+//BJffPEFFi1ahBs3buDIkSOYN28eAKBUqVLw8/PD8uXLcePGDcyYMcMoChMTE4PBgwdjz549uH37Ng4ePIjjx4+jXLlyAIDixYsjMjISO3fuRHBwMKKjo7Fx40bMmDEDZ86cwe3bt7Fo0SLo9XqUKVMma79EQRCynIAA4MoVQyrJ359Rmm+/Bb76Cjh7FggLA0qWBGbPBjZvBpYtMxZAgpCEeo0ICwtTAFRYWJjR9piYGHXx4kUVExOTTStLP3369FEdO3ZMc9+ePXtUzZo1lYWFhXJ1dVVffvmlio+PT9rfqFEjNXTo0FTnXb16VXXu3Fnly5dPWVtbq7Jly6phw4YpvV6vlFIqMTFR/fDDD8rDw0OZm5urYsWKqQkTJiSd//nnn6sCBQooOzs71b17d/Xrr78qR0dHpZRSsbGx6p133lFFixZVFhYWyt3dXQ0ePNjoux8wYIAqUKCAAqDGjh2r9u/frxo1aqScnJyUtbW1qlSpklqxYkXGv7wXIDf/bghCbuDTT5U6coTPExOVqldPqZMnn3+es7NST/6XJLwGPO3+nRKpfoJUuAhPR343BCHr8PMDRowAVq7k67NnGYX56afnn1ukCE3DTk5Zu0YhZ/Ci1U+SfhIEQRCyhZ9/BsaMMbzetQto0uTFznVyAi5cyJp1CbkXETWCIAhCtnDrFlCliuH1/v3AG2+82LlFiwKnTmXFqoTcjIgaQRAE4ZUTFQUk7yiRkMA+NCm6TDyVUqWAixezZm1C7kVEjSAIgvDK8fEBKlY0vD55EkjRC/SZeHuz7FsQkiOiRhAEQXjlnD0LVKpkeL17N9C06YufX706y78FITkiagRBEIRXzrlzHHWgcfgwUKfOi59fvjz71whCckTUCIIgCK+c27cBDw8+j40FlGLH4BfF2hrQ67NmbULuRUSNIAiC8ErRxIjWFfjo0ZeL0mjodEAaU1WE1xgRNYIgCMIr5fZtoHhxw+tdu17OT6NhawvcvJlpyxLyACJqXiOKFy+OadOmZfcyMo09e/ZAp9PJtG5ByGWcPWvspzlx4uUqnzTc3XmuIGiIqMkj3LlzBx988AHc3d1hYWEBDw8PDB06FCEhIdm9tEyhcePGGDZsmNG2evXqISAgAI6OjtmzKEEQ0kVyURMdDVhYAGZmL3+dEiVoOBYEDRE1eYCbN2+iRo0auHr1KpYtW4br16/jjz/+wM6dO1G3bl08fPgwW9aVmJgIfRY6+SwsLODq6gqdjOsVhFzF+fNAhQp8fvAgUL9++q5TtiwnfAuChoiap6CUQlRUVLY8XnbG6CeffAILCwts27YNjRo1QrFixdCmTRvs2LEDd+/exZhkw1UiIiLQs2dP2NnZwd3dHf/73/+MrjVu3DgUK1YMlpaWcHd3x5AhQ5L2xcXF4YsvvkDhwoVha2uL2rVrY8+ePUn7FyxYgHz58mHjxo0oX748LC0tMWfOHFhZWaVKEQ0ZMgSNGjUCAISEhKBHjx4oUqQIbGxsULFiRSxbtizp2L59+2Lv3r2YPn06dDoddDodbt26lWb6afXq1ahQoQIsLS1RvHhxTJkyxeh9ixcvjgkTJqBfv36wt7dHsWLFMHv27Jf6vgVByBgxMYbOwen10wCM9vj5Zd66hDzAK5gYnmN42ujymJgYdfHiRRUTE5O0LTIyUgHIlkdkZOQLf6aQkBCl0+nUhAkT0tz/0UcfKScnJ6XX65WHh4eyt7dXEydOVFeuXFEzZsxQpqamatu2bUoppVauXKkcHBzUpk2b1O3bt9XRo0fV7Nmzk67Vs2dPVa9ePbVv3z51/fp1NXnyZGVpaamuXr2qlFJq/vz5ytzcXNWrV08dPHhQXb58WUVGRioXFxc1d+7cpOskJCQoFxcX9eeffyqllPL391eTJ09Wp0+fVjdu3Eha15EjR5RSSoWGhqq6deuqjz76SAUEBKiAgACVkJCgdu/erQCoR48eKaWUOnHihDIxMVHjx49XV65cUfPnz1fW1tZq/vz5Se/t4eGh8ufPr3777Td17do1NXHiRGViYqIuXbqU5veX1u+GIAjpJzxcqW7dDK9bt1YqMTF913rwQKkiRTJnXULO5mn375SIqFG5W9QcOXJEAVBr165Nc//UqVMVAHX//n3l4eGhWrdubbS/e/fuqk2bNkoppaZMmaK8vLxUXFxcqutcv35d6XQ6dffuXaPtzZo1U6NHj1ZKUdQAUGfOnDE6ZsiQIapp06ZJr7du3aosLCzUw4cPn/q52rZtq0aMGJH0ulGjRmro0KFGx6QUNT179lQtWrQwOubzzz9X5cuXT3rt4eGh3n333aTXer1eOTs7q1mzZqW5DhE1gpC5HDyo1Pff83loqFJdu2bses7OGV+TkPN5UVGTDmvW64GNjQ0iIyOz7b0zC/UklaX5TurWrWu0v27dukkVUV27dsW0adNQokQJtG7dGm3btkX79u1hZmaGU6dOQSkFLy8vo/NjY2NRoECBpNcWFhaolLz3OYBevXqhbt26uHfvHtzd3fH333+jbdu2cHJyAkDvzU8//YQVK1bg7t27iI2NRWxsLGxfdLLdEy5duoSOHTsabatfvz6mTZuGxMREmJqaAoDR+nQ6HVxdXfHgwYOXei9BENJH8k7C+/YBT7LQgpApiKh5Cjqd7qVvqtlBqVKloNPpcPHiRXTq1CnV/suXL8PJyQkFCxZ86jU0wVO0aFFcuXIF27dvx44dOzBo0CBMnjwZe/fuhV6vh6mpKU6ePJkkDjTs7OySnltbW6cy7taqVQslS5bE8uXLMXDgQKxduxbz589P2j9lyhT8+uuvmDZtGipWrAhbW1sMGzYMcXFxL/VdKKVSvbdKw59kbm6e6vNnpaFZEAQDZ88Cbdvy+e7dwEcfZex65uZAaCiQL19GVybkBUTU5HIKFCiAFi1a4Pfff8dnn30Ga2vrpH2BgYH4+++/0bt376Sb/ZEjR4zOP3LkCMqWLZv02traGh06dECHDh3wySefoGzZsvDx8UHVqlWRmJiIBw8eoEGDBi+9zp49e+Lvv/9GkSJFYGJignbt2iXt279/Pzp27Ih3330XAKDX63Ht2jWUK1cu6RgLCwskPqd1aPny5XHgwAGjbYcOHYKXl1cqISYIQvbg5wcULcrnV66wgull0ev5MDMDChVir5rmzTN3nULuRKqf8gAzZ85EbGwsWrVqhX379uHOnTvYsmULWrRogcKFC+PHH39MOvbgwYOYNGkSrl69it9++w0rV67E0KFDAbB6ad68eTh//jxu3ryJxYsXw9raGh4eHvDy8kKvXr3Qu3dvrFmzBr6+vjh+/Dh+/vlnbNq06blr7NWrF06dOoUff/wRb7/9NqysrJL2lSpVCtu3b8ehQ4dw6dIlfPzxxwgMDDQ6v3jx4jh69Chu3bqF4ODgNCMrI0aMwM6dO/H999/j6tWrWLhwIWbOnImRI0em96sVBCET0es52kCn46wnwDAq4VmcPQvMmwd8+inw5ptArVpAjx7c5+EBnDmTZUsWchkiavIApUuXxokTJ1CyZEl0794dJUuWRP/+/dGkSRMcPnwY+fPnTzp2xIgROHnyJKpWrYrvv/8eU6ZMQatWrQAA+fLlw5w5c1C/fn1UqlQJO3fuxIYNG5I8M/Pnz0fv3r0xYsQIlClTBh06dMDRo0dRVPuz6zlrrFmzJs6dO4devXoZ7fvmm29QrVo1tGrVCo0bN4arq2uqVNrIkSNhamqK8uXLo1ChQvBLo46zWrVq+Oeff7B8+XJ4e3vj22+/xfjx49G3b9+X/EYFQcgKfH3ZMA8A7t8HXF2ff8733wP/+x/g5AQMHw5s2MDeNlrgtnRp4OLFrFuzkLvQqbRMB3mU8PBwODo6IiwsDA4ODknbHz9+DF9fX3h6ehpFEARBfjcEIfNYswZ4+BD48EP6aU6eBJ4WSFUK+O47wNQU+Oab1PvbtQP++w9YuBCYPx9I1jJLyIM87f6dEonUCIIgCK+E5JVPly8DyWxzRigFfPstxyekJWgAQwqrRg3g3r2sWa+Q+xBRIwiCILwSzp8HvL35/NKltE3CSgFffQXY2/Pn03B1BQIDKYzCwrJmvULuQ0SNIAiC8EqIiQG0Ak1fX6B48dTHjBkDFCwIfPHFs69VsiRw8yZgIncxIRny6yAIgiBkOeHhjL5o6PX0yyQnLIxl3iNGPP96JUoAN27wuU5nMA4LrzciapLxGnmmhRdEficEIXPw8QG0Zt4REcYCR2PXLqBlyxe7XsmSBlHj6CgVUAIRUQNDh9no6OhsXomQ09B+J1J2IRYE4eU4e9ZgEn5a070tW4AnHSaei5Z+AoDChdmATxCkozAAU1NT5MuXL2n+j42NTap2+8LrhVIK0dHRePDgAfLlyycdiQUhg5w+DWij2dIyCSsF3L6dts8mLZycgEeP+LxECUaCBEFEzRNcn3SBksGGQnLy5cuX9LshCEL6uXuXERWAoqZ7d+P9ly49vcT7eZQrJ31qBCKi5gk6nQ5ubm5wdnZGfHx8di9HyAGYm5tLhEYQMoGHDxlZ0bh6FfDyMj5myxagdeuXu66tLRAZCVSrBixenPF1CrmfHCFqxo0bh++++85om4uLS9L8H6UUvvvuO8yePRuPHj1C7dq18dtvv6FChQqZvhZTU1O5kQmCIGQihw4BdesaXj9+bCjt1ti7Fxg48OWuW6IEfTXVqgFBQRlfp5D7yTFG4QoVKiAgICDp4ZMsQTpp0iRMnToVM2fOxPHjx+Hq6ooWLVogIiIiG1csCIIgvAiHDgH16/N5fDynaycnKor9ZlIKneehmYUdHYGEhMxZq5C7yTGixszMDK6urkmPQoUKAWCUZtq0aRgzZgy6dOkCb29vLFy4ENHR0Vi6dOkzrxkbG4vw8HCjhyAIgvBq8fEBKlbk8xs3gFKljPfv2QM0afLy101e1g0YJn8Lry85RtRcu3YN7u7u8PT0xDvvvIObT2r1fH19ERgYiJbJmhdYWlqiUaNGOHTo0DOvOXHiRDg6OiY9XmSatCAIgpB5xMUxCqNFZ9KqfHqen8bfH9ixA/jjDw7AbNmSz5M34LO05NgE4fUmR4ia2rVrY9GiRdi6dSvmzJmDwMBA1KtXDyEhIUm+GhcXF6Nzkntunsbo0aMRFhaW9Lhz506WfQZBEAQhNadPA1WrGl6nNcjy6lWgdOm0zz9xAujdm3OjihThhO/lyznlu0gRCh4AcHHh1G/h9SZHGIXbtGmT9LxixYqoW7cuSpYsiYULF6JOnToAkKpvjFLqub1kLC0tYWlpmfkLFgRBEF6IgwcNfhqAkZr+/Q2vr19nGulp/zv/8UdWNmnl4BrR0RyzoNfztYcHBdSbb2bu+oXcRY6I1KTE1tYWFStWxLVr15J6hKSMyjx48CBV9EYQBEHIWRw5AtSubXj98CFQoIDh9bNST/v3M8WUUtAAhnlPpqb8WaoUBZLwepMjRU1sbCwuXboENzc3eHp6wtXVFdu3b0/aHxcXh71796JevXrZuEpBEAThWSjFOU8ODobXKSMyu3YBTZumfe5PPwGjRqV97eLF2YG4aFHgzh2mr7RUlPD6kiPSTyNHjkT79u1RrFgxPHjwAD/88APCw8PRp08f6HQ6DBs2DBMmTEDp0qVRunRpTJgwATY2NujZs2d2L10QBEF4Cr6+jLRo3L0LuLsbXj9+zFJsO7vU527bBlSvDjwphE1F2bKcIaWZhcuWBaQhvJAjRI2/vz969OiB4OBgFCpUCHXq1MGRI0fg4eEBAPjiiy8QExODQYMGJTXf27ZtG+zTGvMqCIIg5AhS+mlSmoQPHAAaNEh9nlLA1KnAP/88/dplygDnzhl61XTpAoSGZtrShVxKjhA1y5cvf+Z+nU6HcePGYdy4ca9mQYIgCEKGOXgQGD3a8DrlfKctW4A+fVKft3Yt+9Y4Oj792mXLUvS0aAEcPgzkz8/yceH1JkeIGkEQBCHvcfs2UKyY4fXly0CHDobXFy8C3t7G5yQmAr/9Bqxfz4jN7t3AmjUcgxAdTU9OaCjQvDlw7x7g6clIzXOKYYXXBBE1giAIQqYTGspIS3KxcecOjb0AEBvLhnkpxciyZayGWrIEWLmS6athw+jFsbbm8XFxwDvvUPTY2lLsAMYVUcLriYgaQRAEIdM5fNh4iCXAnjImT2puz54FKlVKfd7YsSzP7t0b2LQJsLBIfYyFBYVNvnzAo0fcphRgZcWuwmmVgAuvByJqBEEQhEzn4EGgUyfDay1yo3HiBFCzpvE5W7YwerN16/Ovb2PDyqcrV+inefSIPy9eFFHzOpMj+9QIgiAIuZuzZ4HKlQ2vU1Y+HT8O1KhhfM6kScD777/Y9cuVY+rpyhXDYEsXF74WXl9E1AiCIAiZSnw8f5qbG7alFDX37wNPGsYDAMLDgWvXgPfee7H3KF+ePW4uXzaImiJFaBoWXl9E1AiCIAiZSsooDcC0kDadOyqKUZbkLF7M8QnJhU5aKAUEBLCq6tEjCqESJShmihcH/Pwy7WMIuRDx1AiCIAiZypEjqU3CFy4YRM2pU8aTu5UCli4FnswvNiIyEvj6a3YnTkyk0VgpPjTDcMmSwLx5QKtWwH//Zd3nEnI+ImoEQRCETOX8eaBjR8PryEiWY2ul1ilNwvv3A05ObKSXkmHDgM6dKVjMntyx9HqakOPiuM3JiSMSypUDgoOz6lMJuQFJPwmCIAiZir8//S0aBw4Ab7xheH3ihLFJePZsRl0aNTK+zooVgLMz0K6dQdAAjNbo9RRKRYsCt25xe/HiTG0Jry8SqREEQRAyDS01lLyp3u7dQPL5w48eMboCsK9MXBwb6BUsaDjm1i1g/nxgw4a038fODvDwoNi5coWiyNyc5mHh9UVEjSAIgpBpPHjA0urk+PgAFSvyeWgom+ZpzJ3L1NL584ZtCQnAwIHA778zZTVjBg3A9+/z/PBwiphKlRiZuXyZ4xJu3+b5KUWV8PogokYQBEHINC5eBCpUMLwOC2NUReskfOIEUL06nyckAHv20DPTpInhnPHjgXffZVXTkSMchDlsGMWSoyNLxrV0Vng4oz3Vq7Os28yMHh57+1fxaYWchnhqBEEQhEzjwgX2kNE4cABo0MDwOrlJeONG4M03aRRu2JDb9u3jjKhevfh6wwY25CtThhEenY5RGisrCiZ/f0ZwPD2ZsrKxMURshNcPETWCIAhCpnHxorGo2b3bOApz6hRQrRqfDxvGZnthYRQsSgHjxjHdpJHSVKyhdQ/WGv0VKUKBU7Ag01HC64mIGkEQBCHT8PNjYzyNCxeM01GRkUxHRUWxV83duwa/zZkzFDBa6uj2bVY3maRxp6pUCQgKYgVUvnz86e8PuLkBV69m1acTcjoiagRBEIRMI7lJ99EjQ8oIoInY2ZnPd+8GmjY1juRs2AB06GC41oYNQPv2ab+PtzcrpkqXZiVVQADfr1gxQ4m38PohokYQBEHIFIKCDKIFoD9G88oAxkMsN20C2rShn0Yz/R46ZNyJeMcOoHnztN/L25tiqVAhVkhp0RlPT3pyhNcTqX4SBEEQMoWUJuHdu4EBAwyvT5wAWrdmNOfGDQqQ6Gimm+7eZcSlUSNWOJmb05+zZAng7g7ExAAREUxfPXpEcaSNTdDKugEaihcufLWfW8g5iKgRBEEQMoWU5dxXrlBkaJw9C3z5JbeXLUsPjTYDauNGipYff6SwWbqUx4WHAxMm0BCs0/Hx+DFLt0uUoMgJCgJCQjgQs1Ah9rIRXk9E1AiCIAiZwoULQNu2fB4cTJGh+WmUohixsmLqqW1bYz/N6tWAg4NhVMKWLTx/7lxO9C5WzFDOHRPD/jWNGrFpn9ZFuEgRPn/8+NV+biHnIKJGEARByBSSVz7t3Ws8y8nfn5VM2r5Bg4APPqAXJiqK4uTgQe4/eZLCp3JlpqSOH2d1k4ZS9NFUrQr8+y9QuDAjOS4ujNgkJr6azyvkPMQoLAiCIGQKer2h/Hr3bqBxY8O+48fZdC8ykoLE1BSoUoXN8iZPpvHX0xP46SemqAoXZkn36dPGggZgxMbUlEImIsLQmM/UlOJJp5MZUK8rImoEQRCEDBMUZDyQ8vp1oFQpw2ut8mnXLqBZM0ZjatSg+JgzB5g2Dbh2jSmswECagY8coWE4LRwdWS2VmMi0k7k501J37gCWliwfF14/RNQIgiAIGebSJYNJ+P59lnYnHyp59iyb7Gml3JqfZtYsIH9+Vk3NmsV+M/7+wIoVxiIpJRUrAufO8T3MzemjiYjguXZ2gK9v1n5eIWciokYQBEHIMMnLuffuNU49JR9q6etrGFS5fDkwbx7QqRNLu3fvZkqpQgXjfjVp0acPo0Nad+LgYIqp4GAKqitXsuqTCjkZETWCIAhChklezn3okKGhHmAQOdpcqNhYGnrXrWOqqWRJlnDHxvL1F188//06dWLqqWRJRmxMTIB797jP3Z3pL+H1Q0SNIAiCkGFu3QI8PPj82jWOL9DQOgNv3sxS7iNHKF6KFKHIWbMG+P57dh82MwNatHj+++XLx58lSzJKZGMDxMWxMsrDQyZ1v66IqBEEQRAyjFKMlsTG0uOS3E9z9SpFjjY2Yfp0Vj41bEgz8fDhwMOHjLjkz0+B8iJYWVFAhYezmV90NA3E7u7sUCy8foioEQRBEDJESAjFCEBDcOXKhn337nFydkQEG+clJFDcuLpS/HToAIweDYwZw+hNePiLv2+RIuxKHBNDn46pKfva5Msn1U+vK9J8TxAEQcgQyf00R48CtWsb9u3cyRJu7eeECYzOXL3K/jMffMA5UO+8wy7CpqZsxOftbXz94GD2uImMpPCpWZNzpObOZWRG632jlYBHR7+6zy/kHCRSIwiCIGQIzQAMAMeOAbVqGfZpYmbbNqBSJVY41a0LlCvH/Z99RmGzcycHW372GfDrr4bzT57ktmPH2LE4Pp6+m4kTga5dme6yt2cFlOapiYriduH1QyI1giAIQoa4cIFGYICpKK2/jFJMKbm50bg7Zw4jMDExFDX58gEzZwJr1wK9e1OwtG7NKdsBATzvt9/4SN7IDwD++Ye9ajRj8Pnz7GgcE8Nz9XruS+7tEfI+EqkRBEEQMsStW0Dx4sbeGsAwpTs8nILFyooGXl9fip2jR4GOHSk8wsOZPjIzAz79lGLnwQP2uEkpaAAOv9TpeLxORy+PjQ0ndPv7Mw31Mv4cIW8gokYQBEHIEHo9BcmxY6n9NM2bU7yEhAAjRjB6Urgwj923D/j5Zz4vU8Yw8LJBA6adfvsN6N8/7fesVo1zoRwcKJKCg/k8PJxiyNKSERvh9UJEjSAIgpBuHj1ixRHA/jPJRc2ePZzUffAgRcaNGzQHt2jB6E7t2kChQjQIu7mxzBtg5OW994C//6bht317oGVLCqQmTdjY7+5d4MQJ+nRu36aPxtOTxytFgXPz5iv+MoRsRzw1giAIQrpJPh7h7Fngq6/4PCGBQsPBwTCxe/duRmxCQtgNuF8/HnviBKuZKlVimXZCAr0xUVEUNw4OjAQBFCwxMRyQ+dZbFDz797M/jYMDzcKJiSwZv3qVzf6E1wcRNYIgCEK68fGh+VcpCgpLS24/dYpTuPV6poHatQO++46RmZkzmYJq355pIycniqN//2W66dtvGZW5eZOznb75hukpKytGegCag8PCWEml13N7QgJ74ZiY0Kx840b2fS9C9iDpJ0EQBCHdnDvHCEtaoxGaNWO5d2IiO/5GRLCfTUQE4OLC6qft25launSJk7a//ZbjFC5fBry8KFK6duV7eHnRd1O0KFNUpqbsUWNiwrLuwEAKHCsrCqU7d7LtaxGyCRE1giAIQrrx8wOKFUvddO/IEaBOHYobV1fg8GFGUvbuZYqpfXset3Ur5zddu8bnvr5MS3l782fTphyQCRhST8HBjOAEBPA8a2s25fP1ZbTIxMSwX3i9kPSTIAiCkC6U4k+djqJm+HC+jo6msLC0BNavZ9n2jh0UHPb23N+xI6MqgYEG8VK0KE3A5uZAt258lCjBfdo8KFNTXic+nmbjEycAZ2cgKIjXc3ExNOh79ChbvhYhG5FIjSAIgpAutCgNQP+LpyefHzxIcQIwktKtG7fFxhpSQ/nzM3UFsLfMF1+wxDsggA34NBPxhg1sznfrFo2/Z87QJGxmxvM07442PsHWlj+lq/DriURqBEEQhHTh48OuvjExFCta9949e4DOnRk9SUxkVZK/P4XKf/+xuR4ArFlDsdOsGcu5Bw2iOPnjD+6Pi6Oo2baNURwLC0Z/oqOZykpMpD+nUydg9WqKmOLFWYX16JGImtcRETWCIAhCuvDxYUTm9GmgalXD9nPnWOk0Zw6rlvbtoxDp3h1YtYoiBAB+/JEl4KdOMcJy8CDQsCFTVwDPj45mybatreH6SrG66fFjppw8PXmOUkxFJSSwAZ9OR2FkYfHKvhIhm5H0kyAIgpAutEhNcpNwXJxhfMGaNUCXLhQyjo7sU5MvHwXJlSsUIqNH0+i7bh3FyDvvGK4zbhywbJmxoAF4fVdXvse9exQ+Zk/+RNdmPsXGMqrz4MEr+jKEHIGIGkEQBCFdhIVRpBw/bpjMnTxq4+PDQZX797P53sqVBtHywQcUQlpJ+NSpLM9u0oT7+/Th/uQRoOS0bk1xc+cOe9zY29MgHBREM3F0NEWNlHW/XoioEQRBEF6a2FhWKQE07ObLx+eaSTgigq8TE+lv6d2bJde9ejEKc+oUMGYMRZCXF/flz88oztKlFCpTpz79/du0MQzCPH3akHa6d8/QVdjFhaXkwuuDiBpBEAThpbl8GShXjumdQoUM2w8fZn+aRYvYa2bLFooPc3OmkVxcgO+/p3m4YUMKksOHeS1vb+D8eWDhQvpkvLye/v41azLlpNdTQFWtSiFz8ybfy8yM/XAOHsz670LIOYioEQRBEF4azU+jNdkD6GWJjGQqaPVq+mkWL6b/Zf58RlcAYO5cGohtbTmYcs0aRncaNwaGDWMq62nTuTW0WU8ADcOVKlE83btnGJlQsCDLzoXXBxE1giAIwkujeWEOHADq1+e2GzeAUqX4/NIlVjudPMlGe7t2AUOHAps2sfy7Rg16YKKiKEauXWOUxcKCJeGtWz9/DaVL02wcEGAoJ4+LY4QmOpri6vFjvofweiAl3YIgCMJLc+UKoy3nz3OeE0CB88YbjL5oU7Wjozl0culSjkPo3Blo0YLH7d7N852dKWRu3mQa6fhx4P33gYEDmYIaNIi9cLQOxpGRNBF36cIRCvfuMQ1makqhVKIEe9WYmvJx+rShGaCQt5FIjSAIgvDSxMcbpmJrAubgQUZtVq5kFGXJEqaCjh+n8PH3B+7fZ/Tk4UNg5EhGUX77DXjvPcO4g9276bv591825cufH2jUiNeuVYvprr17gQYNGKmJimKkx9LSIHwSE3ktCwu+v/B6IJEaQRAE4aV4+JBC48QJQyk3QNFSpAiwcyfQvDl7zBQrxpTT4MH0y/Tsya7CdnasmCpXjqMPrKwYwTl8mGMUnJyADh0YgenWzWA2NjenmJo/n6kua2tWQEVEMN0UE8P1WVhwtIKzM/voCK8HOTJSM3HiROh0OgwbNixpm1IK48aNg7u7O6ytrdG4cWNcuHAh+xYpCILwmqKZhJP7aUJCgAIF+PzyZXpiLl+m+TcxkVGVXbsofPLnZ3Rm/35g/Hhe58IFVlE1bsxrxMcD334LTJ7M3jWNGxsiNfXq8b0OHza8p9YzR6ejmAEodqpU4XsKrwc5TtQcP34cs2fPRqVKlYy2T5o0CVOnTsXMmTNx/PhxuLq6okWLFojQmiEIgiAIrwRN1Bw/ztJqgN6WevX4PCKCkRi9nqkhW1uWeJuaMnIzcCCrpqytgZYtKT6srIBjxxjhAYAZM5iS0kRLSpo3Z3qrbl0Kmfv3eayJCVNRAP08lStTVD18mLXfiZAzyFGiJjIyEr169cKcOXPg5OSUtF0phWnTpmHMmDHo0qULvL29sXDhQkRHR2Pp0qXZuGJBEITXj3Pn2FPm8WPAxobbNJNwdDRFxrx5FDaXLrHnzIwZwLRpPKdBA45HKF2ahl4TE6BHD07hLl2aXYB372bDvqfRrx89PB06GESNtTX3BQTweVwczcwWFkyVCXmfHCVqPvnkE7Rr1w7NNan+BF9fXwQGBqJly5ZJ2ywtLdGoUSMcOnToqdeLjY1FeHi40UMQBEHIGHfvMt1Tvrxhm1YFdegQfSzr13PsQf78TBnFxrKb8M2b9L5cukTRsmsXoyiVKgFubhQon3/OtJNWpp0WlSqxCqpqVTbai42ln8bUlMIpf35GirSeNWIWfj3IMaJm+fLlOHXqFCZOnJhqX2BgIADAxcXFaLuLi0vSvrSYOHEiHB0dkx5FixbN3EULgiC8Zuj1/HnokKFM+vFjGnhNTYEdO5iaunePZl97ewqZAgU4LiFfPjbfi4sDPvwQ2LaNPWsOHGBKacMGln6XK/fsdeh0TGWdO8f3UIqixsSE6SYvL/pybtzg/tOns/RrEXIImSZqYmNj033unTt3MHToUCxZsgRWVlZPPU6XQrYrpVJtS87o0aMRFhaW9Lgjk80EQRAyxK1bTCclNwmfPElhAjDN4+JCkRMZSQPx1q3Am29SCNWpA2zezAiKtTVw+zZTSTt20BA8bRpnQr0IHToAf/8NaH+var1qdDpe28KC71m0KAWVkPdJd0n31q1bsWzZMuzfvx9+fn7Q6/WwsbFBtWrV0LJlS7z//vtwd3d/oWudPHkSDx48QPXq1ZO2JSYmYt++fZg5cyauXLkCgBEbNze3pGMePHiQKnqTHEtLS1haWqbzEwqCIAgp0UzC69YZZj5pQywBmnSdnCgoGjRgpMTPDxg1ihGa/PnptalTh2ZhpYDq1emJ8fWlUNJ8OgC3z59Pr058PB/R0exS3L8/z33/fZaFh4ezV42ZGSNFJiYcnNmqFddw9y5QuPCr/saEV8lLR2rWrVuHMmXKoE+fPjAxMcHnn3+ONWvWYOvWrZg3bx4aNWqEHTt2oESJEhgwYACCgoKee81mzZrBx8cHZ86cSXrUqFEDvXr1wpkzZ1CiRAm4urpi+/btSefExcVh7969qKfZ7QVBEIQs59w5el+S/8169KihX01MDIWEhQVQtixTRCYmTCmdO0cDsL8/hchff7E3zdWrPHbZMhqGAYqdxYtZAVWtGtCpE3vcfPQRe97MnMmZUvHxrLrS6Vh1paXBrl/nz6gompptbcVX8zrw0pGaCRMm4JdffkG7du1gYpJaE3Xr1g0AcPfuXUyfPh2LFi3CiBEjnnlNe3t7eHt7G22ztbVFgQIFkrYPGzYMEyZMQOnSpVG6dGlMmDABNjY26Nmz58t+BEEQBCGdnD9PoaJFZvR6QxVURASFRFAQIyJ37gAXL/J4bQZTpUoUF23bsqmejw8neTdpAvz+O700t28Dn33GaM6mTYy8pEV8PM3KWjfh2Fj+NDXlNfLnp4fHxIRi6/hxiiMh7/LSoubYsWMvdFzhwoUxadKkl17Q0/jiiy8QExODQYMG4dGjR6hduza2bdsGe3v7THsPQRAE4dlERNBD8+mnfK3NgAJo+nV2ZpSkRQtGbE6eBIYPp6CIiGB6aetWppoKFGBX4L17GYVp2hSYPZuVU1On0uz7NGrW5DXffpvjFBwdgcBARmxMTOjlKV2a7+njw3POn8/a70bIfnRKaZMyMk5iYiJ8fHzg4eFh1GcmpxAeHg5HR0eEhYXBQZtZLwiCILwQu3YdxKef7kHRoqOwebMpdDoae0uXBtq1Y1ro0CEKnUOHgK++Ysn2+fPsW3PgAIdN2tnR/5IvH8VLx440F7/xBoXQjBkUJgAQGgr88AOrpbS6kIQEiqHoaL5nmTJ87NtHE3NkJM9r3ZrRIWdnQ8n3pk3PLhUXciYvev/OUPXTsGHDMG/ePAAUNI0aNUK1atVQtGhR7NmzJyOXFgRBEHIYAwcOxcWLXyMyckuSMNi5E2jWjM9PnaJY0XrFAExLlShBY/HIkRQ2773HqM7XXzOSU6UKjbzLlgG//GIQNPHxQJ8+TEP16sVH7978uW0bOxA7OvL9tDVERfGnUhQz3t6s2CpfnsfeuPGKviwhW8jQQMtVq1bh3XffBQBs2LABvr6+uHz5MhYtWoQxY8bg4MGDmbJIQRAEIfu5c8cPAODgcAZAOzx6xNJprRPHnTuMkJQrx7lON28yhRQVxQZ71aszWgJQ7Dg7A3Pm8PzgYI490K6lFFNc1arRa1O6NPvPJCTwWqdPG5r6Va7M1BPAiI6pqeHh6spjChdmyffx44zyCHmTDIma4OBguLq6AgA2bdqErl27wsvLCx988AFmzJiRKQsUBEEQsp/4+HjExAQ/eU6TyqZNNPwChuZ38fFA584s1/b3Z3po61amlzZupLj48Ufgyd/DOHKEpdZvv82oisbUqZz4vWsXPTPJ7ZNKUeQUKcLze/RgGszEhCkpLXoTE8PUV3w8I0exsYzuaBVWQt4jQ+knFxcXXLx4EYmJidiyZUvSeIPo6GiYmppmygIFQRCE7OfEiSAAtGDevUtR899/9NIANP4CFBy9erG/jIkJzb+LFwNt2jC99OabFCKffUYBEhHBWU1DhrDEu3dvmoUvX6YoGTbMWNAA9MQUL879u3fzmgEBjPLEx/MYMzNO/g4LY/rr3Dmah69ezfKvSshGMiRq3n//fXTr1g3e3t7Q6XRo0aIFAODo0aMoW7ZspixQEARByH7WrjWMpLl27SrCw2MRHm5owLdrF9NDlpb01YSGMmJStiyrjzp1YkTGzg4oWJAN+nbu5L7ixVn9ZG7OLsFff83zbt7k67To1IlRmBMneC1ra8O4hIQE9sm5fZtTwL28eJxS9NdowkfIe2RI1IwbNw5z585F//79cfDgwaTuvaamphg1alSmLFAQBEHIfvbvN4iahIQELF16BY0bG/bv28fISYkSNAMHBNCc6+tLEaEZiNesYeO9xET2qTExYbXTxo1MC/32G7sDz5xJ383TJvA0b87Ii6kpIz6VK1NEAYzkaOmnLl0oph49ogArUoRpMSFvki5PTc+ePdGpUye0bt0ab7/9dqr9ffr0yfDCBEEQhJwBS6SNhwevXu2D336rlPT69GmKl7ffZnopLo5+m/Xr6aNZv56diK9dA/r2BQYNYmSmcWP2nAF4TOfO9NB88QXP69AB+PlnihFbW6aYdDqWcJuacq7ToUM8TxtamZjI9FNiIuDgQEFjZ0eRVLgwRY2n56v57oRXS7pETZkyZfDzzz+jd+/eaNiwITp27IgOHTrIFGxBEIQ8yKZNQFBQgNG269d9jJrjBQZSZDRsSO9MvnxAo0Y0CrdvD6xeDXh40DB89Srwzz+sbOra1XCNhQuBn35is77//mMUp0oVYMoURnqioxl9CQ9nRKhoURqAd+/mHCitjDw+nuknExMOz2zenMfcvMl1SaQm75Ku9NPYsWNx8uRJXL9+HZ06dcL69etRunRpVKtWDePGjcNpmfEuCIKQZxg3DqhWjZGaAgUKAABMTHyS9oeGUmjY2QEVKrB02sGB0ZSAAFYqmZkBly4x5dSlCzsO+/jQ5AvQGOzqykZ7kycbetUUKwZMn86hlitWMJqzezcHVrZvTwPwmTM8zsKCUZz4ePpqzM2BX39lFMfCgu8REiKiJi+TIU9NkSJFMGjQIGzduhVBQUEYNWoUrl27hmbNmsHDwwODBw/GhQsXMmutgiAIwitmzRpGRxwdKWqaPelyFxlpEDXnzlFIuLnRQ/P4MdM7x45RnFy8yG16Pec8tWhBE++77xomcs+aBbz1Fo9PMQowFTod00je3uxZY2nJFFmhQhQyiYl8mJjw5+3b7JUTGcl1iqjJu2RI1CTH3t4e3bp1w99//42goCD89ddfMDU1xeHDhzPrLQRBEIRXiL8/oyZdugCBT7rbaa07Hjy4g9DQUACsfAKAihXZ3E6vZ+rp338ZQdm/n6ImMZEpoPffp+dmyBCeFxXFlNSlS8bpqGfRsiW7EJuYMA114ACndZuZGSqgTE0pcqZMoXcnXz6uw88v874jIWeRLlHz+PFjXL9+HXFxcVi/fj0iIyON9puamqJZs2aYPn06Pvzww0xZqCAIgvDqUIpm3jp1aNbVRI2TU1nY2tI/ef7JhMh//qF4aN6ckRhra6BuXQ6qfOMNCo/wcKalVq8GFixgqqlkSb7X0qWG0QetWr3Y+po3p5gqXJhem927OSpBEzV6PUWNmxt9PEWKUNSEhLB3jZA3SZeo6du3LypUqICJEydi8uTJ6NevX2avSxAEQchGDhwAKlViBKVePYOo8fFxRdmyFZ88Zwrq1i0KmTp1mIqyt6eQiIlhRMbEhBVIHTvymocPs7oJoABZuRKoXZtjE550BnkuBQow9dSmDd/Tx4dVVMnHLFhaMt1UqBCFl40NEBRkMBQLeY90iZqHDx+iRIkSGD16NPbt24er0qJREAQhT/Hnn0wFOToCsbGRSRH5kyfd0KiRQdTExbGXjIMDIy+hoUD+/MDRo4yanD9PT0tiIq+5fj23az1ujhxhFdT69S+eetKoXp2RmOQl21qvGqXovbl4kUbi8uU58ykhgeuNi8uUr0nIYaRL1FhYWKBr166wsLCATqdDvnz5MnlZgiAIQnYRGMibvo8PIyFalMbGxhaWlnaoWpVOXh8fH6xebZiIfekSzytcGNiwgT91OlZAOThQdEyZwvJrbcr3H38AAwYAO3YwpfQytGrFKJFOx/TSvn18T4AiKi6Oaa+CBYF33qGfx8SE2wMCnnlpIZeSLlHTs2dPjB8/HgAQGxuLMmXKZOqiBEEQhOxj7lzgo4/Y46V1a4OoAVzxzTdAxYqGSM333yuYmjL1dPgwRUPZskxbubjQxBsVxUZ84eHAjRvAwIG8WlAQ9+n1FCUWFi+3zjp1GBFyc+MMqSNHaFDW6Si0IiPZ58bMDDh4kOmpuDhulwqovEm6RY2GpaUl/vzzz0xbkCAIgpB9JCQAe/YwPaSNFtBETdGirqhSBShbtixMTU0RFhaG69fvwsqKJt116+h1sbenSff+fUZvTEyATz9lZ+Datem/ATjA8oMP6Hfp1u3l12puTg9N48ZMc50/z+ubm1PUxMWxTPzECZqQP/+cawkLE1GTV0lXR+HkPH78GOfOncODBw+g1+uN9nV42iQyQRAEIUeyYQMb4p0+DdSowW3aMEtvb1cA/GO2TJkyuHjxIiwtfaDTFUHt2hQuhQuzwkjztJw6RZFRqxZLw3fu5DXj4w1CY9o0YOTI9K23aVNGe0JDWd1UtSqFTlwc16AUxZWXF9fh6srU0507GfqahBxKhkTNli1b0Lt3bwQHB6fap9PpkJiYmJHLC4IgCK+YBQv4mDWLHpdDh4BTpyhqXF1dk46rWLEiLl68CCcnH4SGtkGhQoyAlC7Nzr3W1oyabN3KLsPHjlFUaG6FlSsZRbl+nSMPzNJ5N2rZkj4dnY4RokePaFQOD6egWbeOjQCdnDh6oVo1bpNITd4kQ833Bg8ejK5duyIgIAB6vd7oIYJGEAQhd3HlCg2/Tk70pxQuDHzzDVCzJkWNm5tb0rGRkfTVREX5oGxZ4MIFemOsrIDgYIqMe/coVjp3Br7+moZggGJj4UIOtvznH6B79/SvuVQpGoCfTG/AsWNAuXKG/XfusKrq7FlOAm/ShOuUSE3eJEOi5sGDBxg+fDhcXFwyaz2CIAhCNjFrFk280dH0ngwaxDLskBCWCmmRGr0eOHKEoiY01AeVKrH5ndYXxsyM3pyNGxmd6dOHouLTT/k+e/YwimNjw27DDRpkbN0lSjAC4+dHUdOwIbcrRQNxvnyM4Dx8SCOxtl3Ie2RI1Lz99tvYs2dPJi1FEARByC6iohipqVaNlUL29iznLlXKYBTWRM3SpYClJUWNXn8J334bj7VrORLBxITVRfXrs7rJ3p7ixczMMOdp5kzgk0/YQ6ZMGZqKM0KrVrx+aChLvGvUYKRIixxt2sSScjs7Qwl4eHjG3lPImWTIUzNz5kx07doV+/fvR8WKFWFubm60f4g22EMQBEHI0SxbBmiFrdu3A9eusYcMYCxqEhOBCROAKlU8EBRkh/j4SERGXsOVK+XRoAHTOo8fU9zodEwF/fUXxRLANFWhQiz3/vXXjKWeNJo0oQ8oPp5RmAoVWB4eF0fT8smTrM66dInzqHQ6Rmri4xlJEvIOGRI1S5cuxdatW2FtbY09e/ZAp3VTAo3CImoEQRByB2PGsPMvwJlK7dsDtraAXq/H/fv3AVDUrFjBCEh8vAlMTb0RH38EZ874ICKiPBwcmHYCmHqysKBomT8fGDyY23/9lRVPej2FyIQJGV+7oyMFirU1U023bzNCFBzMNej1jCLdvs0mf2ZmjNQEBrKPjpB3yFD66euvv8b48eMRFhaGW7duwdfXN+lx8+bNzFqjIAiCkIVERdHXYmXFyMa9e4YJ2iEhIUhMTIROp4OjozOmTeOQSmdnICGBKag9ezgD6sYNigpHR5ZNW1mxOunGDZp1AwIoJsqUoa9m0CBGdDKDOnUoZGJj6aspUYLbHR3p9Tl6lALH3JypqPBwMQvnRTL06xQXF4fu3bvDJLN+KwVBEIRXzvHj7CMD0CxcsSIroABD6snRsSA6djRH/vyMbiQmAtbWFDX79/vA3p4emkePFJRajaioU8ifPxTm5hQTFhb00mhm4fnzgfffz7zP0Lgx16yZhVu35vbbt/nex48zNQWwA3F0tJR150UypEb69OmDFStWZNZaBEEQhGzg0CGgbl0+/+sv4LvvDPtu3mTlk07nismTGX05fZreGCcnzoDy9fVBxYqM+ISEBOH06bcRF1cdV644oVSp/IiKqo7Onbti+/ZdeOMNRoOiojI39VOtGqeCR0Sw0qlJE3pnEhMNc6bs7AB3d/p5EhNF1ORFMuSpSUxMxKRJk7B161ZUqlQplVF46tSpGVqcIAiCkPWcPAl89hlw7hy9KXXqcPvWrcDo0YzUeHq6YtQoYMYM4N13mX6ys6sIPz8gNtYXFSpEws/PDo8eRcDSsi7i4m5Cqft4/PgRHj9+hHXrTsHZ+SR0uptYsgR4773M/Qy2tkwzJSQwxeTpyaoqW1tWPBUpQvOzuzuPUUpETV4kQ5EaHx8fVK1aFSYmJjh//jxOnz6d9Dhz5kwmLVEQBEHIKpRihMPaGhg7lqXYAJvvzZ0L9OhBURMW5op//2W34KgonlOzZsGkMu/g4CsoWBBwcCgJC4tDKFMmEBcuRCJfPh+sWrUGOp0pHjzwxe3bfti4kaMYMpuiRSloHB0NXY09PLjWdu3YpC8igmkygKkqIW+RoUjN7t27M2sdgiAIQjZw7RpHG1y/zmqgzz5jtObrr4F584BWrShqOnd2hbU1t9WrxynclSsDdevuRJ8+RXD7tgN0Ovpa7t2jGdfKyhYODt5o1MgbTk7V8PDhcSxYsB/Vq/fKklLqWrXY5C8ykr4aT09GaRwd2VsHYAO+6Gg+f1LUJeQhxOErCILwGnP4MP00U6ZwZlLTphww2b078OGHQJEi2ogEV+j1nHhdty6FQqVKwLZt5ZE/vwNu3jRUN1lasmnfnDkUQJs3A7Vrs83vsmV78cEHWfNZatXiuvz86Pvp0oUpqDZtgAcPgOrVucaoKFZdBQRkzTqE7OOlRc2AAQNw5wXr4FasWIG///77pRclCIIgvBoOH6YY8PWleTYykqMLrl8Hhg8H9HrD3KdVq+ilOXuWvpQKFTgkslIlvg4L48PGhsMwN2+md2bzZqBXr0YAAH//fShdOms+S4UKbPwXEcGfX37JqNOhQxQx9+9T0AAUXiEhhr46Qt7gpUVNoUKF4O3tjTZt2mDWrFk4fvw47t69i5CQEFy/fh3r16/HF198gWLFimHatGmoVKlSVqxbEARByARu36bHxMMD8PYGRozg4Ek/P0Y4AgIMc5++/56+m+vXGQEJCqII6tOH/WnMzdnF19ycEZ+7d/kzPBxo2/YN6HQ6REVdSWrml9mYm2sNA5n+un+f5ekREUyxhYRQuOn1jOjExDDlJuQdXlrUfP/997h27RoaNmyIP/74A3Xq1EGxYsXg7OyMMmXKoHfv3rh58ybmzp2Lw4cPo2LFilmxbkEQBCGDhIfz5r9zJwWBpSV9Mr//DkyaxGO0PjXm5q64f5/ppPz52ehu0SL2gDl0iKXe2jWsrCh27O25r0EDwMnJCXZ2Wl+b/Vn2mcqVo+Cys2PDvc8+Y0m3rS1FjakphVe+fIziSAVU3iJdnhpnZ2eMHj0aZ8+eRUhICE6dOoWDBw/iypUrePToEVatWoWWLVtm9loFQRCETOTYMaaeDh8GDhzgIMsiRdjIrmhR4PHjxwgNDQUA/P67Kzp14jRuT09GQBYuZHfhgwcNKR87O3bznTePYkardPLxATw9mYLau3dvln2mWrUoYB4+NDThc3Vl5ZOlJY3MsbGG8QkiavIWGTYK58uXD5UrV0adOnVQqlQpo/lPgiAIQs7l0CGgalVGL+7d40ympUuBoUO5X0sTWVhYYNu2fJg4kXOhbGzYlTc4mMc+eMAJ2UpRKHTqBGzbRj/NhQtA+fKc8/TuuzQL79u374XXqDXS69DB8Gje3BBJSkmtWlzfnTss67azA0qW5D4XF14vMdHgrfH1ffnvTci5SPWTIAjCa8qpU7y5FyvGNNTmzcC4cYbJ1VrqycHBFUWK6FCgAMWCvz/nOSUmMqJjakrDbf78vF779hQ67u6c8wQwUvPeew2ePPfBw4cPX2iNGzdynML69YbH9u18JCamPr5kSaaVIiP5OiEBaNUKqF2b0Rut8V5MDPdLS7W8hYgaQRCE1xC9nt6SffsoVKpXZ/rojTcMx2iiJirKFd9+yxRO8eI0F2/cSMGyZo3heHt7/rxzh0bczZsNqaeKFQFXVxeULVsWSikcOHDghda5YQNFUnJ0OqBFC0aDUqLTAQUKULg4O1O4tWvHFFRcHBvyAUxB6XTA+fMv+IUJuQIRNYIgCK8hly8DZctScJw6BezdC0ycaHyMVvmUmOiGzp2BFSuAt99mlOPBA1Y9/fcfxYJSgJkZoz4LFwKNGnESd6NGjK507MhrNmz44imoyEheWxuumZx33wUWL077vKpVKVhKlgR+/ZVCLCCA/XViY3lMbCzLvKX6KW8hokYQBOE15PBhlnA7OFCktGgBFCpkfIwWqSlRwhU6HUWKpycFQXQ0/Svm5uxN4+zM1E7TpjQTd+xIb4ulJY3E9erxmi8jajZvBtq2TXufuzsjS48epd5Xsybf++JFVjmdPs2Bl0OHMkIFMHVlbk6Ds5B3yJComTNnDq5du5ZZaxEEQRBeEYcPU5yYmTES0qpV6mPu3qWoadPGFRcuMN104QKjG/nzA6tWGczBJUuyb81bb1FohIWx8ujuXRp0zZ4M5dFEzalTpxDxHEWxbp0hwpMWPXoAy5en3l6zJqubrl0DvvoK+PFHpsHOnWN0BqDvxsqKkaC0vDlC7iRDombKlCkoW7Ys3N3d0aNHD/z555+4fPlyZq1NEARByCLu3uV07osX6YVJ2YXj9m1gyxaKGi8vVyxbRhGxbx/FUIcOPP/+fYoaU1NGfCIiGB3ZupVRlvXreaxG0aJF4enpicTERBw6dOip63v8mMLIxeXpn6F9e14/JW5uTD9FRdFfU7gwtx8+bKiE0iI1ej0rv4S8QYZEzeXLl3H37l1MmTIFjo6O+PXXX1GhQgW4urrinXfeyaw1CoIgCJnIo0cUHjdv8sZvbc30EUAfy9dfs2nd/fsUNaamrjh6FKhTB9ixg6mnOnWYigoOZsQjNpbiaMUKmo5DQihItm5NLZheJAW1YwdTYs/Cyoo9cS5eTL3PzY1RpP37gdGjgcmTmV6rVo37tQgTwHlWQt4gw54aV1dX9OjRA1OmTMH06dPRu3dvhISEYNWqVZmxPkEQBCGTOXrUELHQ6dhsT69nL5mOHYH69YEffjDMfZo2zRVOTjzW35+pnf/+Y5+bR48MoqVyZUZDypShhyY8nOkeOzvj938RUbNmDdC58/M/S9++XHdKatWiWJszh5VPXl4UYR4ehmMeP+bPY8ee/z5C7iBDombz5s0YNWoU6tSpg4IFC2LMmDFwcnLC6tWrERQUlFlrFARBEDKRQ4do6o2IoFBp3ZpDKSMigC1bOPNpyhQFpVj9VLOmG3Q6Tu2Oi2PH3u3b2fclXz5WUT14QHEUGcntrVszStO6der3b9SInYWPHTuGGK1hTDLi41mtVKzY8z9LjRo0AqccTFmrFgWVlRVw6RLwxRcUXDduGI7RvDSnT7/AlybkCjIkatq1a4f58+ejS5cuCAwMxIkTJzB16lR06NABTmnV4AmCIAjZzqlTNPxqPVvi4xmh+fRT+kzi44Hdu0Oh18cBAO7cccHy5RQEMTEUL4MHMxLTtCkNuNHRTOnY2tKgW7Vq2j1mAKBEiRJwd3dHXFwcjh49mmr/vn0sBX8RdDqanFP2rKlenT6fMmWA6dOBggXZgG/3bsMxCQk8/9KlF3svIeeTIVEzdepU1K9fH5MnT0aZMmXQvXt3zJo1C5fkN0QQBCFHEhbG6IWvLz0mRYsCs2cDAwcajtmyxZB6srPLh8aNrZCYyOiJlRXFzL17TFmNG8drmplRLBUvzmP0evpt3NxSr0Gn0z0zBbV6NdCly4t/pl69gCVLjLc5OLAB4KFDjCIFBXECuYWFoWOyXk9R84LNjYVcQIZEzbBhw7BmzRoEBQVh+/btaNCgAXbs2IHKlSvDLa3fZEEQBCFb2b6d0Yu4OODWLc5R0uk4yFLjjz+AUqUoaszMXNGjB7BpE9M1JUrwmJUrKWCuX2eUJn9+Rn88Pemn2b+fAy2fhpaCSjncUq9nRMjL68U/k5sbjcopxYmbG1NYLVoAs2YxVVawoKHzsVJMUWnNA4XcT6Y03zt9+jR27NiBbdu2YdeuXdDr9SiS/L8QQRAEIUewaRMjLUWLst/MvXvAoEGG/UFBNAPXqEFRY2LiilKlgEWLWL5dowbHDjx6xIqilSvZ6K54ccNMJa2LcPJS7pS0bt0aU6ZMwS+//GK0/fBhdv59Wd55h5VXyWnVilVdZ85QZD1+zDSbrS33a0JGyrrzDhkSNR06dED+/PlRs2ZN/P333/Dy8sLixYvx8OFDHD9+PLPWKAiCIGQCej370+zeTTOwqSlw5Yqh2y8A/P03txcsSFFTrJgr/P2Zsnn8mCmonTvZKbhiRfpSoqO539SU+ytXZpl1+fJPX0vx4sUxfPhwVK1a1Wj7mjUvl3rSaNeOHYiT07Ur00/+/mwK+PffFDrJozJ6PR9nz778ewo5D7OMnOzl5YX+/fujYcOGcHBwyKw1CYIgCFnAmTNM65w/z4hMoUJsqKfTcb9SFBWVKgFBQRQ1NWq4Yf58+mQcHAyznd59F5gxgwLmyhVGcfLlo9i5dImCR7vuy3D+PM99WWxsWDr+4IGh546ZGdCtGwVLfDw7IG/aZCjlBgy+mkOHnj6SQcg9ZChS88svv+DNN98UQSMIgpAL2LSJzfbKl6e3JiGBaRuN06fpMenWDfD3Zzl3qVKu2LOH0RkLC+Djj+lf+e47DsPcto1zmKKiKJLq1eME77Sqnp7H7dtMY6VHDAGM8CSfGg5w6OalS0yHNWrEKFXK6+t00oAvr5BhT83evXvRvn17lCpVCqVLl0aHDh2wf//+zFibIAiCkIkcOkRvyVdfsZtw27aMwGjMn08zcLNmwKNHdnBwcMPDh4XRoAHTVj/9BAwYwEjIkiXsa/PLL/TXODoy6tGoEd8neUrrRdm798VLudOibVsKt+RYWXHuk50de9fMmsVZVxYWhmNMTIz71wi5lwyJmiVLlqB58+awsbHBkCFDMHjwYFhbW6NZs2ZYunTpC19n1qxZqFSpEhwcHODg4IC6detic7LkqFIK48aNg7u7O6ytrdG4cWNcuHAhI0sXBEF4rQgJ4Y08PJyzkOLjgU8+MeyPjWXkpWRJppBcXX/H+fP34OfXC7t2URS0a8d5T+PHUxx8+CHTUdHRFEMPHxrOTy4aXpQ9ezImapKnoJLz8ccsL1++nOKrRAmuUUMpIDTUMDZByL1kSNT8+OOPmDRpElasWIEhQ4Zg6NChWLFiBX766Sd8//33L3ydIkWK4KeffsKJEydw4sQJNG3aFB07dkwSLpMmTcLUqVMxc+ZMHD9+HK6urmjRosVzJ7wKgiAIZNs2ekmaNAGmTmW0JXmR6vr1TB+99RYFT2Aghcnt2yzV9vJiJEenA65e5bkffkiRo5VE29kBBw6wIV96CAgwDJ9ML507A2vXGm+zs2NZ95UrgLc302WaqFGKgkwrcRdyNxkSNTdv3kT7NBKnHTp0gK+v7wtfp3379mjbti28vLzg5eWFH3/8EXZ2djhy5AiUUpg2bRrGjBmDLl26wNvbGwsXLkR0dPRLRYMEQRCyir17Gb3Iyb1ONm9mJGbcODa3GzLEeP/YsYzitGhh6Og7eTIjOEoxIvPdd+xxM38+8O+/PG/HDhqETUw45HLrVlYYvSx37hiLrPSSVgoKYAfkuDiWbltbG0dllOK+8+cz/v5C9pIhUVO0aFHs3Lkz1fadO3eiaNGi6bpmYmIili9fjqioKNStWxe+vr4IDAxEy2RjXi0tLdGoUaNnjq0HgNjYWISHhxs9BEEQMptZsxixGDUqZwqbxETAz4/PnZ3ZAfjTTw37b91i2sjZmR6U1avpQ/nrL6acSpemuImPp/Dp2ZPN9gCKGzc3Vho1bsxmfNqwzJdh716en1FsbZmGSjl+MH9+CrU9e1iplTLVlJAgoiYvkCFRM2LECAwZMgQDBw7E4sWLsWTJEgwYMABDhw7FyJEjX+paPj4+sLOzg6WlJQYMGIC1a9eifPnyCAxkWaGLi4vR8S4uLkn7nsbEiRPh6OiY9Eiv0BIEQXgaSnHq9f37TO98/nnOEzYnTtDM26ED8NlnTL+YJWvoMXs2hUuXLoaOvsuXc1bSqlU0/e7axXSUiwvw9dc8b906fuYSJTjIMl8+Pk9P9VJG/TTJSSsFBQAjR1KUBQdTvJmkuAP6+GTO+wvZR4ZEzcCBA7F8+XL4+Phg2LBhGDp0KM6fP48VK1bg448/fqlrlSlTBmfOnMGRI0cwcOBA9OnTBxcvXkzar0vxX4lSKtW2lIwePRphYWFJjzt37rzUmgRBEJ7HlSsUAlu3suGclRUwfHjOEjb//cfqpWHDWG794YeGfXFxwPHj9Mm0bg0cOUIxs3AhMGYMTbfbtvG40qU5qNLFhb1fJk4E+venGHByYtl3elJPABvkZVYj+nbt+JlToo1TiIjgepMLO52OPiIhd/PSombGjBl4/KRzkZ+fHzp16oQDBw4gJCQEISEhOHDgADp27PjSC7GwsECpUqVQo0YNTJw4EZUrV8b06dPh6uoKAKmiMg8ePEgVvUmJpaVlUkWV9hAEQchMli4FypZlVc2CBWzz7+JCAZFThM22bWyct2MHBVi/foZ9a9fSPOzkRK/J6tXsDmxry/LvfPko3Fq2pB9l7FgKpM8+Axo2ZHQlPJyjDXbt4rVelswUNADXbm3NiExKevemsHFzM1Ro6XR8BAczxSbkXl5a1AwfPjzJm+Lp6YmglInLTEIphdjYWHh6esLV1RXbt29P2hcXF4e9e/eiXnoaIQiCIGQi//4L9O3L54ULA7/+Sn+IrS0rirKb+/cpGrp0oejKl4/pJ40lS3hD796dIuzcOQqdt95iXxozM6ZpKlakeHNw4Of98082tVOKx7zxBuc+OTq+/Boz2p8mLZ6WgmrfnuXbmicIMFRAPX4MXLuWuesQXi0vLWrc3d2xevVq3L59G0op+Pv7w8/PL83Hi/LVV19h//79uHXrFnx8fDBmzBjs2bMHvXr1gk6nw7BhwzBhwgSsXbsW58+fR9++fWFjY4OePXu+7PIFQRAyjago/nXfrp1hW6VKTD9duGCoEMpO1q+n2NDKmJNPzr50idv37WMk5swZRjhsbCh04uJ487ezY6feoUMpaMaO5UBMU1Ng5kz+jI9n9VN6yApR87QUVPXqFC8xMcbeH72e/57SAi1389Kzn77++mt8+umnGDx4MHQ6HWrWrJnqGM3vkpiY+ELXvH//Pt577z0EBATA0dERlSpVwpYtW9CiRQsAwBdffIGYmBgMGjQIjx49Qu3atbFt2zbYa/PjBUEQsoGtW5m28fenr6R7d25v0YLVUCtW8GaZ0pD6KvnjD/af2bSJfWB++MGw788/DSXQFhZMPQUEUNgsX85o0+3bQLlyvOH/8Qcner/xBlNTrq6M0sTF0U+TntEIACuzihXLnM+rYWdHf5M240rDwoLptYgI/tRQimbn8+c5CFPIneiUevmsb0REBG7fvo1KlSphx44dKFCgQJrHVa5cOcMLzEzCw8Ph6OiIsLAw8dcIgpBhOnTgDd/MjL6TUqWAH39k5MLXlymfOXOAGjWyZ30XLrBMukkTViUtW8aSa3NzdgF+6y16YRo14qNyZaBmTUZs/P0Zedm5k36X+/cZ0fH25rW//55iqG9fzozy8wM2bOBnfxnu3WM11V9/ZfKHB9e7bBlL7pNTt66hwWBAgKG828wM6NQJWLky89ciZIwXvX+n6+8He3t7eHt7Y/78+ahfvz4qV66c5kMQBCGvohQrgPr0AU6dYlSmbFkOiIyIADw9KR42bMi+NY4YwWhKQADFhoeHITqxYgUHV+7fz5TUxYss+759G6hQgSMPtNZelpb0qGiCBmBqp1kzmpCHDqVX52UFDZB5/WnSomFDCpVklkwAFDWxsUyzpRyXEBOTNWsRXg0ZCor26dMHlsl/IwRBEF4Trl3jTVBrZte6NdMWw4ZRAPj60r+xe3f2rO/RI5Zq29tTfGzeDPToYdivibDKlYHIyHB06jQAtWrdx6lTFCgFC3IwZWIixVHy0Qexsexl07EjUKAAzcXNm6dvnZnZnyYtJk4EJkwwCDSAjQXDwgydkDW0vIUIm9zLS4saJycn5M+f/4UegiAIeZVFi1gRtHs3b4Yff0xPTaVKwLx59NWUL09TakDAq1/fsGGGwZXvvMOb+ptvct/Jk0ybrV0L1Kt3BbVr18a1a39i//730LEjP5uLC6M69eqxd03yYtOJE5lSmz2bpd3bttFonB5u32YEKauws6Ox+YsvDNsaNKBHKK2/yXU64PLlrFuPkLW8tFF42rRpWbAMQRCE3MX69bxZbtlCQ+rbb7P3SbduNNkuWMBGdzodoyTJe8NkNXFxhgGVgwczxWNnx4olgGJk6FCgR49/8ccf7yEiIgKmpoUB/ID+/VnmfeEC0zR161IEFS9uuPbixYx+/PMPoz1376avz0xAAL+zrKZxY1ZvaeLL3Jxpqejo1N2PHz6kWbhq1axfl5D5vLSo6dOnT1asQxAEIdcQE8OqmtatgV9+MXhC6tfn0Mdu3SgMfviBfVs2bXq1omb0aEZarKzYPbhFC/pLAEaObt/WY9KkcTh37nsAQIECDRAfvxLe3i4YO5bnJSRQABQtShO0dvP/809WfJ05Q8F04QIjUukhZSl3VFQUTp06haJFi6K4pqIyiYkTGamqXZv/JkWKMI1mbc2qJ4ARt7t3paw7N5MphYYPHjzA+fPnce7cOaOHIAhCXmTLFnpO7t3jzT556qVWLTat69mTkZKKFXlcbOyrWVtsLCMpDx+yBDsykqMOOnTg/nXrYuDv3wELF1LQDBkyBImJO1G7tgvatwcOHGBaplgxICSEN/ratXluZCRTVoUKMXrTuDEwZUr6BduePcYm4X79+qFhw4ZYvnx5ej/+U7G15YRyLQ1VsyarnszNDQZnpdh36MqVTH974RWRIVFz8uRJeHt7w83NDZUqVUKVKlWSHlUldicIQh7lr79okt2+nUbalM3Nq1YFPvqIJl2lGA3Yv//VrG3SJEZaypRhSfbmzTTDak33fvppJi5c+A8mJlZYuHAhPvxwOuLizBESQvH1+DGrtyZPphn61i3D55s1i9EpnY6l3OfP89rJq6JelLAwmqmTB2S0vmfHjh3LyFfwVBo1YsrJzw9o04bPzcz4fWk8fiyjEnIzGRI177//Pry8vHDo0CHcvHkTvr6+SY+bN29m1hoFQRByFGfOAO+/z1lKzs5pG07btGEq49o1+lA2bsz6dcXEAHPnsvJp6VJuW7KEURdLS+Dhw0Rcu8amLV26TEfv3r3x1VdMMdna8tz8+XmTb9eOkYzTp4Fq1SgAtm2jSAsIYKXXd98B336bvrXOmAEMGWK8rVatWgCA48ePp/creC6tWjEa1aoVxZtOZ/zvp9fTf5S8WkrIPWRI1Pj6+mLSpEmoXbs2ihcvDg8PD6OHIAhCXsPXlz89PNig7mmlzPb2vGFaWDBVde5c1g+4/Oknio+GDSlUrl/n6zZtuP+77zYjOtoXFhb5MHHiuwA4hLJ5c3pwEhOZvvr4Y4P5Nz6eN/3Zs+nPWbeOnqGjR/ke6flffVgYhUXbtsbbq1WrBhMTE/j7++PevXsZ+zKeQv36fG8rK0aZTE0Nzfc0ChVi3x4h95EhUdOsWTOcPXs2s9YiCIKQ49m6FShdmj1gTE2fXcrctClv+gUKUNxcvZp167p4kX6X2FhGXADg999589ZKuZcv/w0AUKRIP5QqZYP9+ym0rlxh52CA6ZfvvgNOnOBcKK0sfcMG9t+5cQMYOJDVT2PGpG+t06ez+ipl5ZGdnR3KP3EdZ1W0pnhxptQARtmUMkzrBrimgACm1oTcx0tXPyVn7ty56NOnD86fPw9vb2+YJx+kAaCD5kwTBEHIIxw4QOPstm18rZU0P3iQugy4XTuOE3j4kK//+49el8wmMZEi4c4dRl3c3NiH5exZppOKFQMOHryOBw+2AAAGDhwIgHOcqldnNMbNjTf7atUohE6coGirV48eor59mdLy9KQ/qG5dRqBeltBQNvX75pu099eqVQvnz5/H8ePH0bFjx3R9H89Cp+Ok8dBQfta9e+mrSc716yJqcisZEjWHDh3CgQMHsHnz5lT7XmagpSAIQm7Bxwfo3ZupnrJleZMcMICVPLNnG3ftLVmS5lsLC0ZQ9uzhBO/MZvp0ekBsbICpU7lt6VKWXn/8MV+PGUMvTaFCbTBwYCmEhBi6Au/fz6jF48dsvAfwpp4vH1NO77/PCFX16uwuPH0601DpXWtaURqNWrVq4a+//soyszBgaCjYsiX/TZRiFVR8PJ/fvk0vUVyccRRHyPlkKP00ZMiQpOnaer3e6CGCRhCEvEhwMLvxRkSwEgigv2TuXJYMjx1r7NGoUoXHOzjwJvnoUeau59o19sG5cAH44AOmV5TiGISHDzkiITo6GgcPcmJkpUqfwNaWgzetrYFLlyiGLl9m/xYvL56fkMBePNu2Ab160RMUHc0IUOfONNO+LKGhwOHDhu8tLbQKqOPHjyMd85ZfCM1X06oVzdWJifwOAH726Ghg5Ejgvff4bybkHjIkakJCQvDZZ5/BxcUls9YjCIKQY0lM5M3+9Gm+btaMN3tbW45IGDmSN+1evQwN3d58kzfK2FiOLVi4MPPWo9dzTMHNmzT1fvUVtx84QKPy228zIjJ16lIkJITCyakERo1qjagodtgtWZKm3dKlub6vv+b5t28zclOgAKdcv/ceS8Xd3YHVq1munh6mTeP4hqdFaQCgYsWKsLS0RGhoKK5fv56+N3oOlSszNefszLUkJPD70khMZHqtVy9G5aTEO/eQIVHTpUsX7M6uaW2CIAivmOvXKWC2bmWUo2BB4OefgU6duP+jj9jUzc2N24KCmOq4eJE3zuBgGm5TVtuklz/+4M04PJxN8LR+K3/8QbHy3nuAUgq//UaDcIECA9G0qSnmzqWIiYykULl6lWsaNoznnzjBz2duztLt69d5o4+MZBl2elIyoaGMaLVq9ezjzM3NUa1aNQBZ16/GzIxiJj6eKTql+DM5Bw6wYeE774iwyU1kyFPj5eWF0aNH48CBA6hYsWIqo/CQlE0IBEEQcjG7dgElSgCnTgFNmnDb7t1A8nvvDz/QVNu4MUcKfP01b5iurrypt2zJpn3Pu7k/j6tXgX//ZWffatVoSgZoWg4OZidje3vgwIFDCAw8AwsLK3To0A96PWc26fVMhRUqxDL15s0NE6tPnGDq6vZtNtwbMIBRm6AgQ2fil2XmzGd7aZJTq1YtHD58GMeOHUOvXr3S94bPoWpVRty8vekpSkgw3r91K4Vpp04UPX36MMqW4jYn5DAyXP1kZ2eHvXv3Yu/evUb7dDqdiBpBEPIUBw/Sc3L8OEXJ9eusEEo+zFGno2G4ShV6VMaMYT+W69fp2yhcmP6bjIiaO3coNExNGTX580/DvtmzGYn45BO+/v57Rmk8PXuif//8WLuWYsfUlGIoJoYCR2vWBzCydO8e8NZbFEnR0bzJa2Xf6eHgQUN67Hkk99VkFW+8wWhM06ZcW3S0YZ9SFLAxMYxYde7M5+3aGarehJxJhpvvPe0hHYUFQchrnD/P1NLjx/RcTJ1qiNgkx9ISmDOH4kIzxl6+zBTGxo0UN1oTv5fl/n1GDd56i5VYPXuyzBqgqXXPHgodLy/g/v372LFjFQAgf/5PUKYMMH8+q54iIph6OnaM3pJChXgNpXgDf/CAxuPJkw3CrVy59K35wQNGekxe8I6jdRY+deoU4rMo71OnDiugmjQxpNa0tJpSLINv147fJ0DPVPJxCkLOJFMGWgqCILwOBAfzhu/kxBvg5s2cVJ0W2rykRYt4Q4+IACpVYpqjY0f6Xl6WR4+Ad9+lr2XuXN5kv//esH/lSq7tww/5eteu49DpzFC6dB307l0NR49SvISEMJJ0/Tpv5gsWGK5x8yZv8q6uFGEXLzLlkt5J3ADHSbRo8eLHlypVCvny5UNsbCx8fHzS/8bPwN6e/yZeXhRbjx8bfDVK0QO0bh2wahXL4iMisr4jtJBxMpR+AgB/f3+sX78efn5+iEtR+zZVa5ggCIKQy0lM5E3+zBkOh7xxg6+fZEpSYWICVKjACM3jxzynSBG+PnOGj8ePX/yv/8hIRmVGj+a8pbt3OdfJ2pr79Xo2ydPrDWMR/PzexN9/38WcOQHo1o1iKCGBwuy992guNjU1LrE+eZJemnHj2DU4MpKC5PHj9H1vAFM2Eye++PE6nQ41a9bE9u3bcfz48STjcGZTqhQ/q5MTP2fx4oyEARx6aWpKL9CBA0xByTyonE+GIjU7d+5EmTJl8Pvvv2PKlCnYvXs35s+fj7/++gtnzpzJpCUKgiBkP9eusfLJ3x+oVYs+lkqVnm187dyZUZr161naffIkK6Z27mRV0YoVL/be4eEsL/7yS5ZF+/vTM5N8RMP69Ux7vfEGBVV8PA3JDRo4oVCh8oiMpKA5fJg9c06cYKTmvfeM3+voUZqE27RhB+RffuGx2pTvl0UbgOnm9nLnaSmorGzCp/lqtGhNgQKGfaamhhL3N96gKfvWLUZshJxLhkTN6NGjMWLECJw/fx5WVlZYvXo17ty5g0aNGqFr166ZtUZBEIRsZ88e/iUfGclUzIYN9Jw8i6ZNefyKFTznwgX2ldHpDD1gnse+fazA+eIL+nFCQ7mOsWMNxyhF70tiomFq9urVQJcuwN9/M8IzcyYjR0FBwKefsr+OXm+YE6WxYwevP3Eib/ZNmrDSysvrRb8pY3x8KP5ellchaurXp0m4ZUv6n7QoDcBoVmAgRSBAIejkRJO2kHPJkKi5dOkS+vTpAwAwMzNDTEwM7OzsMH78ePz888+ZskBBEIScwMGDbFKnFA25sbHPr2CysKCHRa/nDbN8eUYAbGzotalY0bgcPDmxsRQyixfT23HrFv0t168zApOctWtZrZS85HjhQkaDtmzh1O5z5xghUoqG3/Pn6ZsxNTVcR69nOqZrV6a2/vyTkQk7uxcrxU6LrVvTV+mlVUBdvHgRkVonw0ymSBFGverX5/eQUrBYWDBaExvL19bWPF7IuWRI1Nja2iL2yb+2u7s7bty4kbQvODg4YysTBEHIQZw/z2ohOztg+XLDc4BjCgYMSLtBW8eOLONeupSmYm320Y0b7Pj7++/0q8TEsKw4OpppqnbteLOdM4fCZ+5c9sfZvNm4V4pez+v+8QdFCsCqnkqVGAn64AMKo3btKIoqVKBIioritZKzZQtv5CEh7Dbs6clIRd266f/e9u9n+uZlcXNzQ5EiRaDX63Hq1Kn0L+A5FCjA783Kimk+zaMUEcGUVLt27D0EMFqT7DYn5EAyZBSuU6cODh48iPLly6Ndu3YYMWIEfHx8sGbNGtSpUyez1igIgpDtBAVRfBQqxDTQkyA1AIqHN96gSFm0iP1pNFq3ZtTj2jUOs4yNZYTG1JSRkxIl2LEWYDREpzP0jXF2ppfjf/+jMfiTT9jiPzkDBrCBXPJoyP/+x/TUwIEUKq1bcxhleDgjD4MH8/2rVDG+1rRpTLEsW8YIC0BRkt5h2VFRfJ/0lkLXqlUL/v7+OHbsGBo2bJi+izyH+vXpGdKaC3p4MBpmYsJ/s+BgitezZ5mWu3QpS5YhZBIZEjVTp05NCguOGzcOkZGRWLFiBUqVKoVff/01UxYoCIKQ3WiVT+fOsWLm4EGgfXvui4ujsfbjjykS3nqLvWCKFuV+e3v6NUqVYsXTkCH0twwezOqjCxeentpZtowCxdKSN9uUzeu2baP4OHrUsM3Pjz+3bgX69WM0pmVLRnKsrHiTvnfPeJo4QO/P1auMRpiZUXgBXHNy/87LsG8f0KhR+s4FmIJas2ZNljbhq1+fviNvb1amVahgEDW3b/OYt98GPv+cEassXIqQCWQo/VSiRAlUeuIAs7Gxwe+//45z585hzZo18PDwyJQFCoIgZDda5dPdu/TDmJgwPQOw82zTpnxeuzY7+vbtaxh6CbCjcLFi9LnUrctUVocOjPykaMaexO+/A+PH83idjucm979cuUJTcLt2hrQTAPz2G9C/P3023bpRFJUsSeHVqhUFl1KMKCXn778pZu7eZcUTwKiSiQm3p4f0+mk0XoVZuEIF/ns0acLPqs3lio1lVOz6dc736t6dIicgIMuWImQCGW6+Fxoairlz52L06NF4+PAhAHaBvHv3boYXJwiCkBPYu5eiJDKSZtLkKaC1a1m6rVGiBJvgjR7NKAxAAXP2LF/Hx7M53pIlNOSOH2/8Xvfvc/9PP7EC6dYtPnd3Nxxz+jRTUc7OfB+NyEhGk3x8GKVZtYqpp2nTuL9fP+53cEhtEB4zhn4eS0tDn5tTp5i2Si+XLgFly6b//OrVq0On0+HWrVsICgpK/4WegTZqwtubP69eNezT61lV9uCBoX9P8nEKQs4jQ6Lm3Llz8PLyws8//4xffvkFoaGhAIC1a9didPL/0gRBEHIxBw8yfaTXc7xBs2bcnphI0VGihPHx+fPzZjhnDl8XKkTjadeurCjq2JG+nM8/ZySgVClGW1xc2Mxvzx4+Dh9mOfeTgAUAelxGjwa++YbnaGkugCbk3r2BNWtYzj1nDiMMly4x0rRvH4VP8i7EAAdcfvghU1NffGH8XuntT+Pnx7Wlt2oKABwdHVGmTBkAWTsHqm5d/vvY2xtXQJ08SZN2v340W0dG0tAt5FwyJGqGDx+Ovn374tq1a7BK5gRr06YN9u3bl+HFCYIg5AR8fBgpsbGh2VZrcHvkyNMrgypWZLVRYiJfN2tGEbJ+Pa/RpQt7wqxbx8edO4zS+PlR6Bw+TBGVvDnepk1MDa1cCUyaxK6/ydd47hwrl95/H5g3j2mwn3+moOncmeJFp6OvRyMhgeLn8WPuGzDAsO/oUabU0sO2bRmfRA4A5Z4MnLqtGVyygMaN2YTPxYUeKa0C6sED+pq+/prl/Bcv8t8kLCzLliJkkAyJmuPHj+Pjjz9Otb1w4cIIDAzMyKUFQRByDMHBTBvZ21MEaCmVlKmnlDRubBiI2KkTBc2YMYyU9O1Lf0vVqkx9JC/TPnGCqaOffjJsW7GCPph//mHjv8aNDSmpuDhWVk2ezChNu3Z8rw4dWH4eE0Pfz+3bTKMlZ+FCem9mzWL/Gu3vU72eQsfGJn3f2Y4dhohWRij0ZNJmVqWfAIpULdWm1zOyZm/PfY8eUSQuWcLv0dJSetXkZDIkaqysrBCexjCMK1euJP0iCoIg5GYSEigaLlxgpMXOjjc2pRgZeVa33B49WJoNsBzYz4+l3/fu8VGzJlNCAK93/DhHIfTqxTlOmu9l+nSKhCVLuJZ589jrRuP771l99e23rNSZNg0YMYIVVhUrssT8778pzGbONJz3+DG3ly7Nz/nll4Z9Z8+mrxOw9p2FhzMNl1EKFiwIIGt7n5mZUVRWr85olYsLy9Fbt6bIWbuWBmqdjmZircJMyHlkSNR07NgR48ePTxoNr9Pp4Ofnh1GjRuGtt97KlAUKgiBkJ9evM33j50fhoUVHzp2jYHiWZ8TTk9Uy2jDIVq3Yd+aHHwz9YiZMAEaOZNn1mjX0wFy+zH4xiYnAsGEUCLNn8+b7ww8UHxYWvOaxY4zAXLnCKqfOnVmGXaECq4+UAt55h/4YExPOoNL48096aSZM4E29UyfDvt27DVVdL8vx408f9PmyvApRAwB16vD7tbAwNN67e5f/3kox6qXTMTV1+XKWLkXIABkSNb/88guCgoLg7OyMmJgYNGrUCKVKlYK9vT1+/PHHzFqjIAhCtrFvHw2vUVG8yWndcdeupS/mebRta+jc+9FHFBIlS/Kaly5RtLz7rmGSdbVqvHlGRXFmU/XqNAXrdBQut24ZBlnGxNA07OXF47/+mlGbb75hc8C33mK5spsbS7qTVzJFRjKNpc2k8vIyeEkAmqPr10/fd7Zpk/Hk74zwKtJPANN5t25RwAYGMsoUGMhIjaMjhWliIv8dpAFfziVDzfccHBxw4MAB7Nq1C6dOnYJer0e1atXQvHnzzFqfIAhCtnLwIEWIvz+FgxaBOHLEMDzyWXTtSuHSuTN9GrVqMQry9deG2UzJy6sBGoZ796ZgadyY25QCRo0Cpk41HDdmDFCmDAXLlCmM0Ny5w+tdugTky8cmgX/+yfNnzTKcO2MGB1tOnEjja/LhmgkJ7NOSXj/N0aPAd9+l79yUvKpITbVqFIQuLizrNjcH6tWj8frGDYM5OCJCRiXkZNItahISEmBlZYUzZ86gadOmaJreOKUgCEIOxseHxlsLC/pZKlUCbt5kh1+TF4h1u7jwr/zwcPaHGTKEEZt16yh0FixgVOX8eaaSjh2jkFqzhsZdjfXr2R/H05Ov9+9nybG3NwVNTAzHIixdyut+8gn9M+vXs7Gc5hkBaH7du5eprnPnaA7WxBPA66a3P82VK/TovMh38yK8KlFjbs70U7VqFISFC3MQ6JQp7AekDSUNDzee5i3kLNL9a2dmZgYPDw8kavWKgiAIeZDgYKYdtJueu3vqqqeDB1k6rVTa1+jUiSIGYGVNsWIUDv37c3uXLqxqcnZmhOPSJWNBEx5Os7Bm5NUETLFi7BgM8PWECRRHYWH0fdSvzwqr2Fhjf8yUKeyRozWW69XLeL27d1MIpYcXTcu9KMnTT+ppX3AmUbeuoTtz1678bufNo6m7bVtuj46WXjU5GpUB/vrrL9WmTRsVEhKSkcu8MsLCwhQAFRYWlt1LEQQhFxAXp5SLi1IdOij1xhtK1arF7W3bKhUbaziuVSulGjRQqnNnpaKjU18nLEypjh0Nr2/dUqpHjxdbQ3S0Uu3aKXXkiGFbjx5K1a2rVHw8X//yi1JTpyqVmKhU8eJK/fWXUoULK3X8uFJubkqZmCh1+zaPjYxUqmVLpQIDlfL2VipfPqX8/Izfs2NHpWJiXmx9KWndmt9bZhEZGakAKAAqIiIi8y6cBkeOKDVggFLm5kq9/bZSHh5KHTzIf1cHB6UAfpdubkrp9Vm6FCEFL3r/zlCAcMaMGdi/fz/c3d1RpkwZVKtWzeghCIKQm7l8mcbRO3f413nFioxsODkZqo/Cww0VSFpaaupU4wZtDg404WppCw+P1C350yI+nt6aYcMMTfBWrmTvm23bGDnasYMppGHDgH797iIu7gAOHmRaauFCpppsbAz9af7+mw39pk/nPg8P467EcXFMtaRnsrafH03JyXvuZBQbG5uk5q6vwlfj58eS/f37mSr87DN6kfLl4zF6PVNr0oAvZ5Iho3DHjh2hy0gPbEEQhBzMrl3sL3PnDm9kdepQwNSrZzjmn38oBC5fprE3KIgdelesYLpIS8V060ZBMngwX48cye7As2en/d56Pcute/QAtNqLW7fYj2b/fvbLuXWLaa916xSGDl2ARYs+g6OjJbZuvYC//iqIDz6geOrYkecrxTUsW8aOxADTLMk5diz9XYQ1n1BmotPpUKhQIdy5cwdBQUEoXrx45r5BMszN+XB0pCk8OJgVUIGB/HfTRkiYmfF3QhM6Qs4hQ6JmXPIe3YIgCHmMPXtY8qx16K9Uib1fkhd4/u9/jHT068e/6u/eZW+axER6VypXZvVUmzYUOJqo8fZm1dLduzSlJkcpRl4aNTKIovBwduj95hv2oImOpuH4u+/uoHnz/jhyZAsAwMKiJlxdw7FiRUE8fEg/jSacdu1iSfqCBUBoKNeVsqXYrl3Gn+9l2L6doimzKViwIO7cuZPlkRqAwvXePf677NgBFCjASrVVq4xFja8vI3dCziJD6acSJUogJCQk1fbQ0FCUSDnhTRAEIZdx+bJBcJiaUkwk7yLs58e/2O3tGb1ZvhyYO5dRmYQEpnAGDWIkx8oKKFKE84M0hg9n91+lKDJu3GA5dO/ejBD168fj4uJoNvbwoNgBgJEjFSpUmItWrbxx5MgWmJpaYsyYn2FndwjDh5fA9u2M5lSvbkgl/fEHr7lkiWE6dcop2ultnBcUxPdLT9rqebyqCiiAVWAFClA0vvMOP9fVqzRga5iZGb8Wcg4ZitTcunUrzeqn2NhY+MtwDEEQcjFK0TehDXq0tqa/JjqaPwGOMkhMZBTl/Hl2H27Zkr1NtMekSUxLaRVH331HUQFQCC1ZwvSQoyNQsCBvqO3a8YYKMA3VpctZ3Lp1Bd2738THH9/E0aM34et7DRER7Nfv4FAHW7fOx6eflkWBApwA/ugRfUBnz/I6N2/SW3P4MD9X8+Z8v+TExBhGBrws69cb0lyZjVYB9SpETfXq/DdOSGDU5rPPgK++4r+dTsffi9hY6SqcU0mXqFm/fn3S861bt8LR0THpdWJiInbu3AlPrZmCIAhCLsTfnzf4s2d5k3d1pVDQfBRKUZBoxthZsyhw1q2jQbdhQ/aa2byZvWo2buSIAisr9r7RUhe///70NShF782+fR8hIuK40YBLADAxsULhwj9g+/ZhGDbMFMWLU1T9+CNLx01M+N4A8NtvTH2NHMkbtqOj8VgEgIInuV/oZfjvP6a1sgItUpPVXYUB/lvmy8eoWp8+wLVrLFM/coSRrdhY+m1u3crypQjpIF2iptOT/xJ0Oh369OljtM/c3BzFixfHlClTMrw4QRCE7OLYMUZN/PyY/qldmx17q1Th/lOnKHLc3dkPxsSEj65d+di5k96Mdes4dXvECJ47Zgz/8k/ewfdpTJ7MZnbly9eCubklPD1L4NgxT3TuXALbt5eAlVUFfPedE4YM4bWtrOj5CQ1ltOHoUV4nMpK9b/R6rrliRQorzSyssWtXaqHzIoSFMYrh4PDy574IrzL9BLBfjbc3herKlTR0DxnC3wmA3+eDB69kKcJLki5Ro9frAQCenp44fvx40i+cIAhCXmH7dgqFf/5hlKZyZeD0aaBqVe7/3/8oYszMWKGUkmbNWHZ95QrNvgsWsHJpzRpGSZILpLRYsIBzp1xdgY0bZ0KnY6l4sWLAoUO8vosLq586dWKUpX9/Novz8GDFjrbWxYvp05k2jVGGTp34/im7/p4+nb7xBps2MWWWVbzK9BNAg/a2bUzRffyxwS9kYkJhGBsrDfhyKhkyCvv6+oqgEQQhT3LyJI3BLi6MgFSqxJt+lSrsH7NnD/vVmJrSh5FGzQTGjWO0JzSUz99/nzf/jh3Z/fdpbNxIMQUwWqDTUYSsW8d1ffstPR2bN9OI/O+/FDeffsqb7bVrnPcEMIW1ejUjTTdu0Ffz8GHq0uvISPqGUs6hehHWr+cU66ziVaafAKBGDYraadMoYkaMMAwyBQzCJosbHAvpIF2i5ujRo9isjZ19wqJFi+Dp6QlnZ2f0798fsbGxmbJAQRCE7CA4mFEYvZ4+i+LFKVwKFuQQyqgoCoBq1dhPplgxpixWrDDc7KytgZ9+4jVatmQUZepUem5u3zakhwCec/AgJ3YvWkRxsngxfRxRUYwGFSrE2U5jx9Kc/PXXHEw5bx7HJMTFUYiZmxvSSDt2sKJn9mxes25d9rlp1Mj48x44YHzjflFiYri+rPz79lWnnzSP1LvvUtj8/js9UslFjKkpU3lCziJdombcuHE4d+5c0msfHx988MEHaN68OUaNGoUNGzZg4sSJmbZIQRCEV0loKAXC3bsUJA4O/MtcK1eePp1dZwsUoH9m1y4ai3/8kVOvnZ05TykykoKibl2Kj4kTmd4pWJB9azp2pBF53jygVStGVKpWZepo3jxGgh48oFiqWZP+ju++Y0XW2LH0xPz6Kx937zJFcu4ce9kAvAlPn84Owjt3svT8zTeB/PkNHZE1du0yng+VFhERFFzjxwMffMAJ4G3aAH37ZvI/QApedfoJoO9oxQr2p/H0RFIjQw1TU5bzCzmLdImaM2fOoFmzZkmvly9fjtq1a2POnDkYPnw4ZsyYgX+02KkgCEIu4+xZCoBTp5j6KVPGULEUHs7Uj6UlRYOdHY91cqJIOXOGptzQUKal9HqOJggOZqRn9WqKgAsXWGUzbBiNxHZ2jN44OzP95OnJFFSdOozSLFpE4bFhA0XL779zEveZM5y4HRnJDsZxcUyXAPSFVKtG87CFBT0h9+9T2KT1mb290/4+lOLNvWNHfh+tWzN9tn4903CZOcAyLbRITUhIyCsdolyoED1QNWqknsxtaipl3TmRdImaR48ewUWrEwSwd+9etG7dOul1zZo1cUckrCAIuZR9+5hu0nq9VK1qMAnv3GlISZUpQy9L27a86T+poUDBgixxzpePnpd8+Rgtefdd7q9Rg1GXGTPY28bWlo34fv+dAkZLN61axUjIhAn0wfTuzeqpRYv4PH9+9r8JDOSx777LMmStn8rUqbzu4sVMpTVoQIGT7H/XACjeKlRIbRwG2Dn37bfZNHDzZn6OWrXoNXpVU3Ly588PAFBK4dErzvlYWLB0v0wZRus0EhOlAV9OJF2ixsXFBb6+vgCAuLg4nDp1CnXr1k3aHxERAfPMnGgmCILwCtm/n8bg+HiDSfjMGYqaVat4My9enDf7gwfZ9+XYMfpmVq82iJvNmxnNWL2afWI0H4xGy5YUKO7uFEFjxjCd9d57jH48fmzoONygAdCzJ/08vXtzTR99xLLxnTuBJk2A0qX5PgDfs3lzrsvSksKqUydDj5rkzJnDayVHKQq2YcPoC/r2W14nOzA3N4eTkxOAV5uC0tDpDMZtjcePnz+QVHj1pKuku3Xr1hg1ahR+/vlnrFu3DjY2NmjQoEHS/nPnzqFkyZKZtkhBEIRXiZ8fvTBRUUxBVKzIbcWKUSQkJjLNY2HBtNPNm4yAREUx2tKqFVNDHTvSG9O/P0vCP/+cpeDx8RQKOh3FSJMmhvdetmwZFixYhu+//wB793aEmRkjQYULcw29e1NcdezI1wcPMvJSoACFjIkJhcusWRRUb73FtUZFMaLTooXxZ42MpDekXDnj7RMnMrqzbt2ri8g8i4IFC+LRo0cICgpC2ZSzHV4BpUsbv46KMswEE3IO6YrU/PDDDzA1NUWjRo0wZ84czJkzBxbJHFR//fUXWrZs+cLXmzhxImrWrAl7e3s4OzujU6dOuHLlitExSimMGzcO7u7usLa2RuPGjXHhwoX0LF8QBOGpaAIgLIziw8bG0KNEKRp3HRzYcXbKFKZizMwYuTl0iMJl7Vr2jZk8memjVq0oLj79lDfHtWtZ3p2ySFSvB37/fSW2bduAhg1Pw8mJhuN79xhd6d2bPp0ePVievWYN/TmFCzPSot14Fy9mxGfTJnp0ypVjX5u0Sq9XrAC6dzfetnYtBZM2GiAn8KoroFKi0xmn56Kj6ZMSchbpEjWFChXC/v378ejRIzx69AidUzQ8WLlyJcaOHfvC19u7dy8++eQTHDlyBNu3b0dCQgJatmyJqKiopGMmTZqEqVOnYubMmTh+/DhcXV3RokULREREpOcjCIIgpMmlS0yzXLhAEXPzJhvolSnDbYmJFDRdunD4Y3Q0jb5jxzIiU64cr/HTT9x+7hyjM6am3P/TT0CpUvTIdOnCxm6+vjy/WbPHOHp0KwCgX78O6N+fQil/fmDAAFZA9erFyMqIEfTkWFnRqKwNuoyNpajp1YtRo4AARmO6daM4KlrU+POuWsU0msaZM4wuzZiRcwQNkD0VUCmxtjZ+/fhx9qxDeDoZGmjpmDIx+wTN1PWibNmyxej1/Pnz4ezsjJMnT6Jhw4ZQSmHatGkYM2YMujyx2S9cuBAuLi5YunQpPv744/R9AEEQhBQcP04RERRkECKaSXj1ah4TH8+fBQpQnDg6MvLy/vusdOrYkWmp5ctp1P3vP0MvmcmTaQy2tma1UffurHTq0weoXXs39uyJRuHChTFvXlVs2MBjFi+mMfmddwwG5QcPaDIuWxb4/ntD07w//+Qk7tmzmfIqVIjC6N49lpYn5+xZwMvLcLMODOR6V65MXfKd3bzqBnxpUbSoccVTfDyFb04Sf687GeoonFWEhYUBMIgjX19fBAYGGqW0LC0t0ahRIxw6dOip14mNjUV4eLjRQxAE4Vns2cNoS0wM00516hhEzbZtPKZIEUYyypenWGjTBhg6lFEbLV3UvDkfH3zAvi5Vq/K5uTlTW4cOAbt3AzNnUvA0bAhs3LgBAGBr+yZWrNDhzTfp1UlIYMqpWjWaUxs3ZopoxAhWUpUvz3VFRjLF1LIlTco+PkyLvfkmuw6nTD0lNwg/fkxRNnMmxVpOI7vTTwBnfCXH1JSiVsg55DhRo5TC8OHD8cYbb8D7SdOEwMBAADAqI9dea/vSYuLEiXB0dEx6FE0Zd80koqIktyoIeYULFzh5OzqaaaiaNSkkypTh+AFbW4qKs2cpToKDWe7cpAmb0WlDD6dP57b585kuOnqUAuLzz/kXfsWKvG6PHrxZenoq/PknRc29e+3Rrx8wdy59Mx9+yOjLX3+xF82UKayCWr6c1wOYdvroI+6fMIHem+7dWbXTrRvXW7my4XNGRzO15u3NlFr//hzaqAmknEZOSD+99VbqbU8KgYUcQo4TNYMHD8a5c+ewLI0RtroUMT6lVKptyRk9ejTCwsKSHlnVO+f8eeauBUHI3ShlMAhHR1PA2Nvzph8dzUfBgoafjx5RFOTPz/LnihU542ncOF5j6VLe9IoX52Tu6GgKmH/+4XtZWrI0u0sXYPDgM9Dr/WFiYoOvv26KsWMpUk6fBv74g5EgbcL34cPsLDxlCk3KEREULu+9x/fy96efp3p1moiDgpimSv6/y5UreU5MDKNLbdrwkVPJCemn2rVTb/PxefXrEJ5OjhI1n376KdavX4/du3ejSJEiSdtdXV0BIFVU5sGDB6miN8mxtLSEg4OD0SMrqFBBmjAJQl7g9m2KDT8/VkGVLm0o5d60icfY2tJcW7Qo95masv/Mtm0UB5Uq0XtTujRNwocOMaXz5psUJQB9LlofmR076MOZP59RmmbNWqBuXWt07MjrDRzIHjV9+zKNtWEDy7irVaOICgqi0XfUKJZ+f/MNjcgDBvCPraFDmXrq2NH4s65YwYqot95iJCitSeM5iZyQfkppF42Lk//35zRyhKhRSmHw4MFYs2YNdu3aBU9PT6P9np6ecHV1xfbt25O2xcXFYe/evahXr96rXm4q7OyYghIEIXdz5gz/e753j96XevUMfpp16yh4XFxY3fTwIQVOpUrcZm/PVNVPP1HMTJ5M0XD7NgXMjz/yJqg10zM1pS9n2jR6bcLCKGoSE9tj1SpGUjw9OXiyUyemsebOpcBatgwYORK4dYvm4alTaQL+5x+WHZ8+zYhQWBjTZvv20bOjcf48hdX77wM//EBxldPJCeknwHiKeXQ0zdpCziFHiJpPPvkES5YswdKlS2Fvb4/AwEAEBgYiJiYGANNOw4YNw4QJE7B27VqcP38effv2hY2NDXr27JnNqyfW1gzjCoKQezlwgCbgiAj2p0luEj58mOXTNjasbAoK4l/utrbsH5McnY59YiZPZhQlLo49anbtoiFXm6gN0PfSufM9+PufgE6nw9Klb2LGDM6OatmSomnpUoqlLl14nenTKWg++IBip0IFppv+/JPpppEj+fyTTzizyMmJIk3j55/pA5o9mxGf3EBOSD8B/PfWiIlhtE7IOeQIUTNr1iyEhYWhcePGcHNzS3qsWLEi6ZgvvvgCw4YNw6BBg1CjRg3cvXsX27Ztg729fTaunISGMhR98WJ2r0QQhIxw5AijI48f0+9SrhyjGt7eNAS7urLsWatgatGCJeCNG6d9vX79mBL68UdGWMqVY8VRtWpM+4SE8LiNGzcCAGrVqgUXFxdcv24oC9+7l2bhDz6gCGncmMJr4EBg4UJe98IFYPRoTuv28WGU5vBhHrthAw3MGg8fssT8v/+AEiWy8tvMXDRRExUVlfQHb3aQIpGAVzyKSngOGepTk1kopZ57jE6nw7hx4zBu3LisX9BLcvky/2o6d47GPEEQcichIUzfhIWxCsjUlALnxg2ahW1t+VynY2+ahg0pftIaBKkxdSpFxZEjFEdNm7JCadAgRnN+/x1YtYqpJweH9ujWDTh5ku/x4AGHTXp6slJpwwb6Y/r1oz+nSBGuZ8gQRmbefZfprKVL+Vyno/9n1SrDevr2ZXTI2TlLv8pMx8HBAebm5oiPj0dISIiR7/JV0qoVK8k0pAFfziJHRGpyO/7+/J+QuOAFIfcSFsYbVHAwy6Pr1mVUxtmZpdMAh0KGhzPa0bIlsHEjU0/HjnHgY1qZEUtLCo5bt1iZtHEjRc6CBUxffPllNHbt2gEAcHHpAH9/ejUAChZPT/apGTKEHpzff6dBuHFj/r/no4+4/ZNP2Lm4dm2u9513KKQqVqRPCGBZ+fnzrJzKbeh0uhyRgkoe9QI42iIxMXvWIqRGRE0mYG7O//ldu5bdKxEEIb34+LCL7v37jNDUrUtRUKcOK5vMzemp0TrIjhrF/jNeXkz7eHuzimjoUG5PjqcnIzPnzrG/zJgxFCN37gCbNu1AYuJjAB7YsMEbUVH04Vy9SjESF8dS7b59OfLg8GE23QsKYhfiKVP4+ocfaFTeto39cSwsWHU1eDDXEBcHfPEF15nbojQaOaECqmJF49c6Hf//L+QMRNRkAsHB7EmhGf8EQch9nDrFlNLDhxQvtWtTQNSty9lPLi7s2Pv48a+wsfkKn3/+FZT6Cp9++hXOnv0KISGzsGDBI7z7LhviffihcbdZzSMzYgS9LOPGUdS0b8/U0+DB7REaqsPZs4y4mJgwYtO9O9CzJ/DGG5wP9eefjCT16cMS71GjDIIGYE+bjz9mFCcxEfDw4Paff2aZ+XvvvdrvNTPJCRVQjo6pxyKInzLnkCM8NbmdsmX5MyaGf+U9o3WOIAg5lP37abo9f54REmdnGnCLF1d4/FiHAgWYQkpImIOgoEv491/j8wcNAoYPH46uXbvik08+gpnZG3j/fR3WrDGUAY8dS39Lhw40/RYurMfhwzQJd0gxwyA8nL1jRoxgn5rOnSl27OzoqenXj6Lmxx85KgGgqdjKio0BR49mSgpgCfq5cxRlKdMnuYmckH4C+O+ZkMDnCQlsBdCiRbYuSXiCRGoyga0cqougIPHVCEJu5do1Q6TGy4vR1+Dg7WjQoC2Au7Cw4H/jOl1vvP/+MJQtOwxDhgxD0aLD8OmnQ1CpUiU8fvwYixcvRsOGDdGvX3nY2PyKsWMjjd7n7bcpTt5/X+Hrr1chMDAQ9vb2aNSoUdIxISE0EX/zDVNJgwYxXVWuHEVM5coccjl+PAWNUqyq+u47GpOjo+nzq1+fno8RI1gK7uFB0ZNbyQnpJ8DgUQLYo+zSpexbi2CMRGoyge7dOSXXz4+iJjc0shIEwYBez940ERGMuDZrBhw48AgXL76PiIi7MDObCkvLKUhIABwdR6FcOYqOuDgKhd69gVu3FBITj2POnNlYtmwZLl++jDt3vkHnzh9i926KE4A35H//XYg7d+Zg584rAAAvrzcxcaIFQkIoaA4fZhl3lSrAxImsxOrYkc31AgOZVurdmymygAD6ZurVA7ZvZxRh9mymmXQ6+mrat+e+lP10chs5If0EMI13/Difx8ayMk3IGYioyQQOHuTP6GiGeAVByF34+jLa8fAhhUDdusCnnw5BRMRdmJqWQqFC4xEfz1RDq1Y04372GYXN3LkcBnnwoA6WlrXQsmUt7N8/FceOLUVYWBgGD7ZHx45AYuJpzJs3CWvWrEHcEwOera0tGjd+B337/ozixTkdu0ABdifW6TjK4O5dRnaOHmUn4bp1uea33qLImTuXRuUKFbhdKW7/7z96gXbsYEfjNm0Y2cnN5JT0U+vWBlEDsAO1kDMQUZMJJO9RIb/cgpD7OHeOnYKDgliC7eu7GsePL4GJiQl0ukUoVswW9+4xovPuu+wM7OfHEm8rK3YivnqVxt///Q/o1MkBev0AfPghq6amTwf69vXFiROsDa9evTr69++PHj16PLWB6KFDFDX//MPU2JgxrIDav59m4B9/ZBn6f/8ZdwvesYP9c0xMWAY+bx7/8GrQILXBNbeRU9JPbdowOq8RGfn0Y4VXi3hqMgEnJ8NzLTQsCELu4dAhRkhiYgB7+0AMHvwxAODdd7+EUnVhbs6IiYkJox+tW7MK6eOPKVjKlKEfx9ub2/382CRv5Uo22wsKAj7+uD3q1v0MJ06cwIkTJ9C/f/+nCpobN2gqXriQzT0HDaIvZuVKppPmzmUn259/NhY0AAXPgAHAhAmskCpSBFi0iGIst5NT0k/e3savNdOwkP2IqMkEtJJJgP/zkgFngpC7OHoUcHcHQkIU4uL6IyQkBE5OlZGQMA5WVvSpxMVRIOzfz/Lp06eBWrUoMMaOTX3N6tUpbExMgCVLgP37zeHlNRV79lTH05qo+/mxI/D773Om09WrwPDhjMr88gtFzn//MfIyaVLqyMuRI1zr7duM7vTowbR4YGDuGonwNHJK+klLD2okJEhn4ZyCiJpMIHnKKThYKqAEIbcRHEwvSmTkAty9uwFmZuYYNGgRtm2zQKFCvGklJlJsJCYCmzfT07JrF89v2jTt65YqBfz1Fz07vXoxurJgAbf/+CPHHpw4wcGXbdqwesnLi6be27eZcvruO+Crr1jtdO4coy5z5hinvRMT2Wn4iy/Y2XjUKHYZ1umAtWtZDp4XSJ5+epHxOlmJWQrzxo0b2bMOwRgRNZlA8tlq8fHGc0EEQche4uLi0LNnTyxevBjx8fGp9kdGMprh53cVcXFDAQD163+Pjh0rISwMKFmSFUlKsUS6bl3g77/ZEO/77/nzWV6VUqVYjfTzz8Bvv7GnybRpTCUdOMBoTqVKwPr19L+0bcto0MSJFDXffsuxB8HBTCktXmyccjp1iueYmgJ79vC9vviCE8SVYnSne/dM/UqzDU3UJCYmIiwsLFvX4uBgeJ6QwH8HIfsRo3AmULcu/6em/eGQ3BUvCEL2smvXLixbtgx79uxBr169Uu0/d06P6Og/cfTo5wCiUK9ePdjajsSJE/xr3MGBJdYWFmxuV6UK00QPHzKasmLF89dQsiTFRu/eTFW1b0/j7sCBLNe+coXiRhuvYGYGjBzJTsH//MO09mef8bmtLY+JiAC+/ppN+hYtYtPPJUu4r1Ur/vz3X0aRnmLdyXVYWlrC3t4eERERCAoKQr58+bJtLWXK0IsF8A9bidDnDCRSkwmcOWP8l5r0LBCEnMO6desAAB07doRJinHaN2/eRN++zRAUNAh6fRSsrRtg6dJ/YGJiipkzWd0UFcWbVsWKbGjn709R8ssvFCuuri+2jpIlKYA2b+b5p08z4lOxIm+QX35JEbJhA+dHTZ7MaM7duxQ/S5bQzAxwgGbHjuxMPH8+Tcqffsoo8ZQpPEavZ2RIm/2UV8gpFVCNGxueJyTI7L+cgoiaTMDT0/h1QICU+AlCTkCv1+PfJ/MMOnXqZLR95syZqFixIq5d2wNTUxtYW8/Ae+/tQUhIYVSsyJtU3bpMKyjFlI6dHbBvHw3CWq+al6FQIeCnnyhEduyguNHp6LWZM4d9b9q1A5YuZVTm+nW+x/LlgJsbvTM//siKq9Wr2STw+nWKm9atKYS01NS6dZwknrz7bV4gp1RAtW1r/NrPL3vWIRgjoiYTOHaMfxVpREdzZowgCNnL0aNHERgYCAcHBzTRWvoCGDVqFD799FNER0fDzq4xWrU6B6U+RefOJjhyhBEagH4YNzc+NzdnyigujhEVMzMKifRQsCDFyeLFNBHHx9N4/PffrG6aPZum4K++orgpVIg3zQ4dWKW1ZAlbSaxcaehF066d4fp6PTBrFkvB8xo5pQKqShXj19m8HOEJImoygVq1jNNPej0rGgRByF7Wrl0LAGjXrh0sLCyStg8cOBAuLi6YOfM3FCq0E/HxJQEAdeqwLHrjRnpX/PwYCbGxYaWTkxOjN7NnA2++aaiA2biRomLWLJZPvyj58wPDhnGkQdWqhrlMu3dT9KxcSYG1YAG7Fmvl3jodq6r27aPAKlrU+Lpr1lBwaf6bvEROST/Z2hr/fz95wYiQfYhROBOwtjae2gowNK1NyBUE4f/tnXl4U1Xzx79p0n1vKS0tULaylh0BAWVREVEEgRd4RRBEUFRAxOWnqIgLCq+iiKKCsooiIIgCsimr7CCIxQKFsrSlG3QvTZtkfn8MNzehBduSJm06n+e5T7ab5GRy7r3fMzNnjv0hIrOoeeSGOc3169fH+fPnkZLigQ8/5FG2hwcLiNRUzndp1gzIzOSLVf/+HI7y8eHE3mvXWGQAPIj55BPOl9m5E3jpJU4ivvde9r7UrXvrdsbE8OSCkyf5O4qK+GK5ciWQksKC5667WDgpIiomhsXM2rXWU7uV9nz1FYqtIu4sVJbwE8D/hzKhzmDgMGVVr9pc1RFRYwMKCnhmhKWoOXLEce0RBAE4efIk4uLi4O7ujj4lxIk8PDzMyyOkp3OYKTWVXyssBLp1U2tQPfccr7t07BiLBn9/TvwFgNWr2UsTHAwMHMibXs85M2+9xTl2vXvz6tyKR4WIPT+ffsrP3X03V/+NiuJzidHIr/3+Owsm5bsADm9PnMihqhsFjdKevn35dzkjlSX8BHA/ULRVURHnRgUFObZN1R0RNTagQQOeMpmfrz6XmiqqXRAciTLr6d57773pcgT79vGxm5jIBeoOHGDviFbLyf779vF+iYkcZt69m72wT/EqCjCZOMH3Rq+IuzsLnQcfZIG0dSvXm7l8mc8T8fEsou68k8XQsWNcJTgvj7/3wgVgzBiuXXPjOWTyZODVV0uedWU0cmjsl1/Kb7fKTmUJPwE8a81S1Bw9yh46wXGIqLEBp04Vj10XFfEJLDzcMW0ShOqOEnqynPV0I/v2sTg4dgwYMoTFQFISj7bj47luTMOGwG+/AV26AB06cM7NQw/x+9es4UrAAIeQ6tdnkWIpRHJzOVzl7s6i4777ePkCrZYFjvKat7e6eXmV7IX5/ntOMi7pwpmXx2KrVy8OiTsrlSn8dOedLEYBFq/HjomocTQiamxAmzYca9fprENQ27ZxsS1BEOzLpUuXcOTIEWg0Gjz88MM33S8lhXNpiHg9p8mTOZzcsyeHEoi4Hs2XX/Isx2bNWHTUrm2du/Luu1wMLyeHqw8r6PUsQnr14qUL6tUr/2+Ki+PZUj//bP08EYudr7/mdaIsZ0E5I5Up/HT//dw/FP75x3FtERgRNTZAo+Ey52fPWoualStF1AiCI1BCT127dkXNmjVL3Cc/n7fERJgXrUxI4BF3SAh7Z1xcOM+leXNOzr10SV3nae1avqgZjZxYvHGjtYdGybUryeNSVvR6np799dfWaw4dPcpVhXv25KJ+7u63/12VncoUfura1fpxfLxj2iGoiKixEQMGcNw8L099TonHC4JgXxRRc+OsJ0tOnmSBkJYGREayQDCZuB7NqVOcK3HHHexxbdyYByybN/MyByYTe29++olzasaMKZ77okzPtgUvvMDJwcpMKoNBzdFZuLD0VY2dASX8lJWVhaKiIrhaLoRlZzw9WbQqdcoSEx3WFOE6UqfGRtx7b/H1VTIyHNMWQajOXLlyBTt37gRw63yaP//ki1JuLue5fP89e12aNlWP3S+/5FowmZksHDQarmWzbh2/x82N83AqchXsb7/lqeZKHk9yMg+ioqO5MnF1EjQAEBAQYF7uojJ4ayzKH8k5vxIgosZG+PvzycXSNUzEi80JgmA/NmzYAKPRiFatWqFBgwY33W/XLs53KSzklba3beOk3aZNgdhYPpabNWOP6/79nNPSqBGHqZRqvatWcS0arbZifsvff3MY++23+fHOncDw4cCsWdzm6oiLiwuCry+CVRlEjaWoLCx0XDsERkSNDenXr/isg6VLHdMWQaiulGbWE8A5MkqScLt2nE9jMnHycG4ue19XrACmT2cPzqFDPENqxw7OpfD25kq/o0bx5xHZ9ndkZ3PI6euv2UM0cyaHmtat4xyf6owSgrpimZXtIFq1Uu8XFHBfERyHiBob8uCDxUNQixc7pCmCUC0pKCjA5s2bAdw6n8Zg4JlKCQksbE6fZlHi66sme86fz1WCIyLYe1NYyNO3v/sOeOwxdZq3lxcXyLvrLn5+2TK1iF95IeLp2e+8wwLr4Yd5iYbFi51vgcrysGvXLhQUFKCH5VLZDsKyCYWF3JcExyGJwjakeXMOQylVSAHgxAnHtUcQqhuxsbG4du0agoKC0Lp165vu9/ff7P1IS+M6NN98w16aevWA48d5FtHly0DLluyZMRgAPz/eEhL4PS++yMInM5NnPu3axcnFmzdzYu+VK+zRGTyYRVFZmD2ba+L89Rev6j13LtfAERgl/FQZuO8+9T4RV5Nv1sxx7anuiKfGhmg0PFvCMq+msND2bmlBEErm5MmTAIAWLVpAc4ty3vv3c6g4J4eXMNi8WV1zqbAQ+M9/OEn46af5InXwIHtpNm3i2+PHubBmSAjnt0yaxHk4Xl68VtO33/JaTd26sSDp3ZvzYmJi1LWCbsRgAH78kROC4+NZJBmNHG4SQVN5adHC+rEMZB2LeGpszODBXBwrM1N97vRpLqctCELFooia5v+SdLJtG4uSf/7hhNv581nQnD/Pr7/1Fi9MqdXy4pQFBbyo5ezZwEcfAa+8ArzxBntlY2J4GviaNeoyBwAPZtq25cTedu1YGC1YwLVuLIVNYSGvBp6Wxkmndeuyl+ijjzgxWajcaDTWhVfPnHFse6o7ImpsTK9eHJe3FDWzZrF7WxCEiqW0oubMGXWgQcQeEW9vDhn5+LBAeeIJTvQfMIBnIDVqxILFaGQh0qgRMH48MGUKVxTevNm6Vk1+Pte+2boVmDGDp/526QKEhvJMqpQU3i8wkBOC+/SxTaE+wf74+Kjn/AsXHNqUao+IGhvj7c2r7l66pD7nzIvLCUJlojSiJiuLBceFC5wkvHw5C5XgYM6JGTuWw0yTJwNz5rDoiI7m43jAABY6TzzBHtjsbA5PjRtXvPielxeHn7p148d5eTw93NOT31+zpix46yzUr891jwD2sgmOQ8YFFcCgQeyOVqgES5QIgtOj1+sRFxcH4Nai5tAhDhecP8/eli1bOHSglDzp2pVzYPbt40J727Zxjs2aNVxk7/ff2SM7fTqvlr1+femK73l78zTxrl3ZWyOCxnlo3169b1lVXrA/ImoqgH79eJaEJZbhKEEQbM+ZM2dgNBrh7++PWrVq3XS/PXt4Fe6cHOCee7hCr07Hx6inJ0/ZHjOGPTKhobx4Zdu2PFCJjQU6duRRuZ8fcPgwMGxYxRXfE6oGPXuq9/PzHdcOQURNhRAVxWXNLZk/3yFNEYRqg2Xo6VYzn3bs4KnbBgNPzS4o4FCR0cgXJz8/fnz5Moecrl5lb86QIcCSJbxI7TvvAFOn8iwnWbRWuPtu9b7BIJXkHYmImgrCspMDHLcXBKHiKE0+DREn6OblcVJuTAyLGqUMQ3g4T+P+6SeesZSdzUsirF/PIacLF1jkNGnCuTT33189VsYWbk1EhHU48dAhx7WluiOipoIYOtQ6ryYmxnFtEYTqQGlEzYULPJ36xAlOAN67l4XO1assci5c4PDSqlWcCOziwmXwa9Zkb03//jyTcexYrmPz1FP2+nVCZUajsRa3//sfL7ERE8OJ6VKrzH6IqKkgunfnk6aC0ajWMRAEwfaURtQcOMChpeRkoFMnnsLt6spTtGvXZg9rUhJ7bk6c4Ho0P/wA/Pe/fNu3L3t6kpI4z+bG3Dmh+hIUpN6vVQv49FNe3qJFCy7SuGOHw5pWrRBRU0F4eBQvnLV6tWPaIgjOTlFREU5fX3TnVqJm2zYucFdUxLlvGRlcPwbgi8/AgZwn4+bGI++HHuI1npo2ZTGk5NbMmcNVhAVBwXIpjG++YS/g2bNc3uO996S/2AsRNRXIo49aP/7qK8e0QxCcnbNnz6KoqAg+Pj6oU6fOTfc7coSnVms0fLG5do29NADfNmvGRfT27wdef51za7p25VDCY4/xMgbNm3M4KjTUPr9NqBrcead637IAn0bDdYxSUtSK1ULFIaKmAhkwwDrOevCgw5oiCE6NEnpq1qzZTWc+FRZy4u8//3DY6NIlznW4do2FTqdOnODp6ckhqXvuAT7/HHj5Zfbw1K4NREZydeExY+z564SqgOXkkE8+sV4KQ6PhNcHEW1PxSEXhCiQigl3dimrPz+eCXjExvPpubCyv+bJwIZdPFwShfJQmn+avv/jikpjIoaaCAhYvBgPQuDGHnhYuBE6e5HDBG2/wduIE588sWQKMGsUenA8+sNMPE6oM7dqp97/9lr0yRUWcX9OuHfebBg0AvV5mzFUk4qmpYPr1s348Zgyr+N9+4zoYly9znQulxLYgCGWnNKJm717A35/FjKWnBmBPTatW7E01Gvnik58P9OgBLF7MoeTjx7lA3733SjVgoTjBwWoRxqtXeWHjrVs5hPnhh8Bnn3GIavp0hzbT6RFRU8HcmFeTnc3ubjc3Pghq1uRkxREj2C0uCELZKY2o2bIFqFGD7xcV8XFXWMgXojvuAHbv5kHGiy+yh2bmTBY+69cD584BDz7I9aaGD7fHLxLKSm5uLvbu3euw79doOJncEoOBBc7581yw8eOP2RsoVBwiaiqYjh15JpSCmxvXvsjP5zWhcnJ4ut/VqyyA4uMd11ZBqIoYjUbExsYCuLWoOX+eQ0+enmqxNJOJBxYDB7Jgyc/n8MCIETz4ePxxXuvp22+5Rk12NufWCJWL2NhYhIeHo2/fvsh34DoFyuoc4eHs0WvUiL2AAPerPXv4fL9qlcOa6PSIqKlgtFqgZUv1saLcExN59JeSwnk1JhMXaRo6lGtgCIJQOuLj46HX6+Hp6YnIyMgS98nI4CrCFy5wCOrvv9XimDVrcpLwb79xbtvu3bxcwsiRwIIFPCjx8GBxM3iwHX+YUGoaN26MGjVqICsrCytXrnRYO1q14tuUFOCPP7jf1aoF+Pjw85MmsQfwjTcc1kSnR0SNHZgwQb3/wAPA//0fsGgRsG4d59cYDCxorlxhz82QIbJ2iCCUFiX01LRpU2hvsrLkwYPsocnPB3x9gVOn1Kncd9zBs54yMjif5sUX2UOzYAGvDbVkCT9eu7Z0q3EL9sfFxQVjx44FAMx34EJ7yrTu4GD26IWEcJ9TVu7OyeHCjsosPMH2iKixAw89pN5fvJhV+siR7PJ+/XVea4aIExgvXuRkxNGj2XsjCMKtKU0+zaefcr6DRsOjaYOBNy8vHkQsXMhe1Zo1gbfeUgWN0cgenIYN+QKlhBKEysfo0aOh0+mwb98+nDhxwiFt6NyZbwMD2evesSPncVnOdho5EnjmGWDiRIc00ekRUWMHAgN5lKig0fBGBOTmci2MIUM416awkF3kFy4A777ruDYLQlXh30QNEZCQoCYF5+Zah566dwc2bOBiemfOAPPns4gBgFmz+CL03XeyGndlJywsDA8//DAAYMGCBQ5pQ9Om7ImJj+cZT9u3s9fGchZsSgovhHrkiOrBEWyHiBo70b8/32q1fJI1mdS1oIg4SbFXL1b0+fk862LjRp55IQjCzfk3UXPgALv9L17kRP39+9XQU/v2nF+TlcUDj+HD1eVN/vyTp3GPGAHs2mVdXE2onIwbNw4AsHTpUockDAcFsfdvwABg2DA+t+/bx6LZ0sv32GPAffcBr71m9yY6PSJq7MSrr/JtUBAX5AsP55ir4sEhAjZt4qRiX1+eGZWYyNMAT51yXLsFoTJjMpnwz/XkhJuJmkWL2AuTmws0acL5DEYjC5wRIzivTadj76lSKbigAHjpJWDuXBZBnTuzJ1Wo3Nx3332oV68esrKysMpBU4xCQniAWqsWEB3NeZRBQTz7SeH0aWDKFOD772UFb1sjh6mdaNmST4rJyewKv3SJR45KITCAvTeHDnEMNjSU90tK4hOtJA4LQnEuXryI/Px8uLm5oUGDBsVeLygAjh3jiq5EPJVbyVULCQF692ZvqLc3e2mU8gtTpwKTJ/M+S5dK6KmqUBkShhs35inbiYmcL/npp8ATT3D/syzvMXkyD2y//dYhzXRaRNTYCY2Gp/O1aMGdvmlTXhjPz49d3x4eLHqMRq6nUVgI1KnDB0ZCAi9h/913EoMVBEuU0FOTJk2g0xVf9WXdOvbCJCfzMXjypDoyvvNOzn3IyeG8h6ef5ud//52PswcfBNLT+fiLirLXLxJul9GjR0Or1WLv3r34+++/7f79nTtzPuR77/HAdfx49rbXrauGPQGucP3668Dbb9u9iU5NpRE1u3btQr9+/RAeHg6NRoOffvrJ6nUiwltvvYXw8HB4enqiR48eiImJcUxjy8ns2Ryj/+svLp+9eDF36rAwLvSl0ajCJiuLT6iBgezVSU7mpLP//IfXn9m6lfcThOrMv+XTLF/ONUI2bOBQr1ITytUVeO454M03+Zh79FHOhcjM5AvShx+y+Hn2WbnoVDVq1arl0IThRx4Bpk0DvvyS6xr98gv3tebNOafSUnv/8APnUDpAezktlUbU5OXloXXr1vjss89KfH3WrFmYPXs2PvvsMxw6dAhhYWG47777kJOTY+eW3j46HQuZtm25JsaePbz6r8nEJ1JF2BQWch6Auztw9iyvDrx7N08xHT+e35+R4ehfIwiO41aiJimJBwb33svHUtOmanJ+jRrAXXdxMn5QkFpLasoUFjU+PpyL07at9UKFQtXgqaeeAsAJw9euXbPrd7dsyfmRvXuzd370aO5PwcHcBy0HoytXAuPGAc8/b9cmOjWVRtQ88MADePfddzFw4MBirxERPvnkE0ydOhUDBw5EdHQ0lixZgvz8fHz33Xc3/Uy9Xo/s7GyrrTLSsCEXYlJqHBCx18Zo5M1k4qQzf39ObszK4mmBZ85w4qMkEgvVlVuJmuXL+dj58UceSBQUqBeUwYOB2Fh+btQoTs4/fpxH0l268CDixx85WVioetx3332IjIxEZmamQxKGNRqeLbdyJc9weuYZrlkTHKymGijk5HDeVxUcn1dKKo2ouRXx8fFITk5G7969zc+5u7uje/fut1zA7P3334e/v795q1Onjj2aWy48Pbms9vUBhrnTKx6b9HROWqxdm2scKKPHnByuiPr9945ptyA4CiK6qagh4lWS69Th5PsWLXhZEoAFzqRJwJNP8v1XXuHnP/iAZykaDBx2+vxzddVloWphmTA8d+5cGB0Yq4+K4jytH38EOnTg4o+WhVU/+ohrJcnSCbahSoia5ORkAEBoaKjV86GhoebXSuLVV19FVlaWebt06VKFtvN20WiAL74AvvpKjfsDfIIuKuK46z//8Mn64EGeFu7qyifh8eN5llRBgWN/gyDYC4PBgOnTp+PJJ59EI6W4zHWOHOHjKT6ej5EGDdQptaGh7B09cICn2wYE8LHl7Q3Urw/MmMF1ROrVs/tPEmzIE088AW9vbxw+fBjvOriSqYcH59lkZrJQVma8KrRpwwNTqSJ/+1QJUaOg0WisHhNRsecscXd3h5+fn9VWFRg7lpOCDQZV2BgM7LEpKuLbggIeebq6coKjyQSsXg306MEndEGoSLKyHL+ivKurKyZPnowFCxbAzc3N6rVFi7iNx4/zyPjcOTX09MwzwGef8WBh4UJ+TvHSHDjANUSGD7fzjxFsTq1atfDFF18AAKZPn47t27c7tD3du6thqeho69emT+c8S5neffsUnwNZCQkLCwPAHptaytruAFJTU4t5b5yF7t05V6ZZM3aRe3qymFEqESvTUq9e5ddDQzkUFRPDSY/338+xXEUUCcLtcvUqewnXr2evh8nEfTI6Gujbl0/WlmvcOAq9Hjh8GLh8mXPQvLw4tAtwWPe55/h4adqUcxz++YePk3r1OGlz9Wq++AhVnxEjRmD79u1YtGgRHn30URw7dsyh14wPPuAZrBoN970rV/h5o5HLdrz5Js94bduWaypJPyw7VcJTU79+fYSFhWHr1q3m5woLC7Fz50506dLFgS2rWKKiuGaNiwtP+9NqOVk4MpJPwEo1YoOB69nUrMkXmlOngJ07uc6GrAQr3C4XL/Liq08/zQJ62DAuBtmgAbvV//wTmDmTRc348Sx+HMlPP/HFoqiIc9AuXlTd/XXrcnsLCngWIQC8/z57aVau5PL2gYGOarlQEcydOxfNmzdHcnIyRowYAZMDYzxBQZwm0LgxT/Kw5H//Y6/iq6/yEgotWwLduvFjCUuVnkrjqcnNzUVcXJz5cXx8PI4dO4agoCDUrVsXzz//PGbMmIGoqChERUVhxowZ8PLywqOPPurAVlc8tWtznZqBA1ngZGfzNG/LVYaVJU7i4ljwXL7MoQE/P+Dll/m10FA+odety5/Zs6ckQQr/Tlwcey8WLuSckxdf5IT1jRvVtWyKilgo7N7NBSJ79eJE2yeesH8f0+u5HlRKCnuNTCZV4ABcKfiRR/jiUqsWDwA0Gl7v6ZlnuKaI4Fx4e3tj1apVuOOOO7B161a8//77mDp1qsPa89//csVhDw8eiKam8vN6PefdtGvHg9Tjx4GjR7ki8T//8HvE814KqJKwfft2AlBse/zxx4mIyGQy0bRp0ygsLIzc3d3p7rvvphMnTpTpO7KysggAZWVlVcAvsA9GI1FcHNGqVURNmxK5uBB5ehK5uhJxUIrv63RETZoQRUcTjRpF9MorRNOnE737LtHTTxPdey/R/v2O/jVCZSYmhqhnT6KEBKKlS4nuu4/o8OFbvycvj+i114jatiW66y7797H33iOqXZsoIoIoJISPjdat+bjQaIi2b+f7v/zC+48aRfTPP0Rr1hDNmmXftgr2ZdGiRQSAXFxcaOfOnQ5ty7lzRD16EHXooJ63ASJ/f6KiIut909O5D3fvTpSb64DGVhJKe/3WEFWf5bSys7Ph7++PrKysKpM0fCuMRi4W9uWXPNpUchwUXFw4hFWnDiehhYby6PXcOd5fp+PR9nvv8chVEBSOHWOvzPLlnEMTE8MhptKOFE+f5mnTaWlA167ArFkVn2+TksKzSFxduV9fvszHREEBezWbNOHlD1JSeFQcF8cJmkuXAn36cC6Nr2/FtlFwLI8//jiWLl2K2rVr4/Tp0/BUYvgO4MMPgV9/5aU7LCfxenmpXpyWLXnR1R49OE+yqIgL+wUHO6zZDqO0128RNU7Arl3sUs/NZXf/jQU0tVquaBkSwvkCXl6c2LltG9e4OXiQXaKjRslKxAL3hzfe4Cmm587xhX/oUBYGJhP3ryNHWLC0a8d5AHXq8BYaqvYhIhYK777LgmbJEk58ryg6deJ8npo1+UKRm8tTt5XilNOmcVsee4yXKBkzBnjhBQ7vHjzISZqCc5OXl4e+ffvi1VdfRZ8+fRzaFoOBq12npXF/vRXDhwMLFgD9+nG4av16TiWoTpT2+i2XMCfg7ru5AmrbtnygeHpaixNlLam4OC5EtnMnz4zy9OTN1ZXf/8ADPKVVqL6cPs3rka1cyeLlv//lWXV6PVewXrKEN29voH17zqWZPp0F8UMPcdXUyZO5nwE802PHDhYXDz7I+QHlHUadOXMGU6ZMKTHR89NPOSH42jUW6rm53MbTp9kr2b07CxkAmDuX2w3wejxz56rLJAjOjbe3N3bs2OFwQQOwp/yTT1jwX5/gC4BFeUAAP6/Mflq+nCtd//ILH0t9+sgkkJtih1BYpcEZcmpuhclE9L//EXl4EHl7c76NZby2pM3fn2jBAqLBg4kmTSIaM4Zo9GiipCRH/xrB3uTkEPXqRXTxItGyZUQ1ahC98w7R779zPP/DDzm/piSuXeP8mXfeIerShXO5WrYkeuklovh43mfTJqIGDYjuuIMoI6P07TKZTDRv3jzy8vIiAPTpp59avR4TQxQcTOTrS7RiBZGfH+fPKHlmHh5Ec+cS+fgQNWzIx8lDDxElJhLt2EH0f/9XHmsJzkJhYSG9/fbblJOT45Dvf/llovr11XOyiwuRVsv9193d+nxdowZRSgrR8OFEzZoRHTjgkCY7BMmpKQFnDT/dyNmzPDJNT+cYrJsbe2P8/Ph+WhqPZC256y6e/TF/PntsduwAWrfmabsBATyVPCBAzc8RnAsijt337JmGxYuvwmAw4P77jQgIMGDtWiNmznRDmzZN4OHhUarPS0wE1q0DVqxgD0rDhpxDEBXFuQEXLwJbtvx7OCoxMRFjxozB5s2bAQC9evXCokWLUPe67z09nWfyXbrEHqaPP+bZTiYT5yXk5PA07W3b2Iu5YgV/7vHjHG4aMID7fM2a5TScUOUZP348vvzyS3Ts2BEbNmxAjRo17Pr9BQXsXUxJ4b5buzY/l5/POZKWeZIA9+t9+4B587j+0pw5HMZydiSnpgSqi6gB+AQ+ahSHEZRcuMJCdZFMDw9+rKxaDLA79PXX2eV5+DBPI3dz4/2ys7nE9x9/8FTYF17gXArBOZg9mwXC0qUTkJj4WYn7aLVaNGnSBG3atEHr1q3RunVrdO7cGf7+/iAi/P7779BqtdDpdNBqteb7mZmuWLHCHT//7A4vL3dMmeIGrdYTU6d6Yu5c4NFHuTq4yWSC0WiE0WiEwWDA+vXr8eyzzyIjIwMeHh744IMPMGHCBLhcj60eOsQLTh47xqFXvR746y++1Wr51tWVXfUPPcR99upVFu2//AKcOMEi5+OP7WhoodJx4MAB9O3bF1evXkXTpk2xefNms2i2Fzt3cqiXSM1bU4qsEqlLfChotcAPP3A+5fbtLNAHD7Zrk+2OiJoSqE6iRmHvXq4dcvIkcOGCKk6UtASlOJklgYG8/tT+/ZyUlpPD+xOxIHroIb4gXL7M1VnvuUcqX1ZVsrKysHs34csvA3DtGlCr1qv44Yev4O6uhcmkRWAgC5Pc3FxcLaGq3ubNm9G7d28YDAa4lqGIhk53Jx5+eC927wYiI2fg8OGb1w1p3749li1bhmbX3TpE3D+XLuU8Hw8Prsb6ww880tVo1LydPXs4Qb5zZxYzHTrw48ceAwYN4lyciIiy2UxwPv755x/07t0bCQkJqF27NrZs2WLub/ZiyBCeZdi+PZ+jjUYWM4mJ3M8VwWPJ1Kn8/KZNPMjs1o0T5ps1c746ZCJqSqA6ipqSKCjgBM5ff+WDRJlCqJTsBvjCEBXFiZQ1aqhb8+Z84P36K4+AMzJ4xPz44zxDRopDVQ3OnDmDuXPnYuHCRfD1fR7R0e/g66+5YF7Hjhy2/N//VLFKREhKSsLx48dx7Ngx8+2uXbsQGhqKwsJCtGvXzsrTotwWFRVBr9ejsLAQer0eRIQuXbojKmoHtmwB0tPfR1HRa8Xa6OnpiZdffhlTp041C6bcXKB/fw6x5uWxIBk4kFc6zs7m97m7q0X4+vThCsgJCeyynzCB++6ePRwe++gje1lcqOxcvHgR999/P2JjYxEUFISNGzeiU6dOdvv+7GxOAyBSS274+PBtYqJaiuPGcNQDD3AS8e+/c2oAEX9Wfj7Pin36afa4V3VE1JSAiBprDhzgGSlXr6oi5tw5tfrqzfD1Bf7v/3iV8OXL+SIYEMCjhT59uAKtv79dfoJQBpQQ0SeffIINGzZAOfQDAnrg4sXtGD+e/9vgYOCddyrG+0ZEZsHj4eGBvDzgk09yMWdOHq5e1SEoSIvoaB3q1NGieXNXFBXpkJnJFbLPn2ePY+vWPHIdP57724MPWgsagEepBw4ATz7JnsivvgK2buXRcNeufCFYvrx61vsQbk56ejoefPBBHDx4EF5eXpgxYwbGjx9fbMHUiiQjg2c2nTzJ25YtHIrSatVFZG8s29GwIe+XmMiVvQ8e5MFr3bo8ABg8mAcslWFttvIioqYERNQUh4iXUpg9m702bm4sUvbs+ff3urrySGDQIK5pEhrKLtCNG3lKuYsLXyT9/Pj23nslVOUIiAhr167F9OnT8ddff5mf9/d/EGFhz+PYsXvw+eca7N/PieAffWT//4iIR5pPPcVelbAwDhMpgjssjEX0sWPc7778kl3vx45xeBTgfubuzrlB8+dzeCotjZdteO45rlGzfDnXzjl7FnjlFfv+RqFqkJubi0GDBmHLli0AgAYNGuC9997DkCFDzPlc9kSv50KYP/7I59j4eB54KsvjKLi5cf6knx8vl9OsGacSHDmi1iMbMIDrM3l52f1n3DYiakpARM3NSU5m0RETwxeRkBCuYpmZyWGprCy+eKSmFq8zotXyisdTpvAoITeX3aheXvyaVssjjbg4Hj0PGACMHKkuMihUDESETZs24fXXX8fRo0cBAF5eXhg1ajR2756IunUb4+efOUnx9deBFi3Yo1FWQUPEfeTcOe4feXnqlp/PYcumTfkke2PlaiIeXcbEcN/580/uc6dOcb9Rai6ZTOyKt1wXB+BRrcnEn1ujBouVIUO4HXo95yW8+Sa74H/7jUeu998PbNigJtALwo0YDAYsXLgQ06ZNQ/L1cr/t27fHrFmz0KtXL4e0af9+DqW6u7PYLyjgY+zG87FGw8eOiwvfDwritc2CgthLuXUr55Y99xwPFKoKImpKQETNv7NpE7sq8/L4oFCSzZQDxNWVkzLXri0+UnBx4ZHB+PHsDjWZWMzo9XzR27cPiI7mFca3bGGvwPjxXApcsC3bt2/H66+/jr179wIAfHx88Pzzz2PcuBcwcGCgeVHKS5c4fBMdDSxbduvkwvx8XmBv717Oo4qL4xOsVsuCon59PnHq9Sw20tNVkVNYyO83GtXwptGoevOCg/mzPD25n2k0/BkFBbxPRAS/fvw4tzk/X02a9PJSvYt167J48vEBYmNZTNWsCcyYwc998QV/zhNPVPAfIDgFeXl5+PjjjzFz5kzkXq+D8fHHH+P55593SHv0ep7VumULHxf5+XyM3GoVb42GjzGTiQtStm7N3poff+Tjbfx4Fj2+vpU790ZETQnYU9RcvXoVQVV0QSWTSV1TymRSZz4p2fcaDV8YBg3i+h8pKdbvV5LcNBpVDBHxhemJJ7jKa3Y2h6KUWVnDh/PnVeaDqqqwdetW9O7dGwDg4eGB5557Di+//DL0+hAMGMAesq1b+T9o0oRHbevWlZzkbTCwl+Onn/h1f38e3dWowf/tlSvs5cvJYZGi0/GJ0tubBW7z5hySbNZMrb+Rnc33/fz4cUEBC52aNTlhHWAX+9KlPDo9dYo9hUYji6Nr17hPeXryd/Tpw/u6ubEgDwpi71NBAffhu+7iz8zNZS/h5s3ONzNEqFhSU1PxzjvvYOnSpYiJiUHt2rUd2p7ffmOvjdHIgwaAz7E6nXquLioqLnb8/Pi4ycjgY2fUKD6eEhLUma75+fy6pycLHaVOWWAgH/d+fjxA8PHh64DJxO1Qbvv0ARo3tv1vFlFTAvYSNXl5efD19UVISAiio6OttqioKAQHB0NTxRJLCgv54Nm0CXj+eT4AFDfnAw+w2//f1i8B+ELo4wPcdx97cw4fZpeojw8LpOhoFj/e3uoWFMRTcktZ963aYzKZ0LFjR3Tu3BmvvfYawsPDsWcP13TRavmirtez3evWZUFTkm1XrgSefZZPar6+/B7F3e3lxfF9y5LuRiOHjpQcF6Uekrs7n2AzM1kYBQaymAoJ4ZNkcDB/7po1XAcpNZVPzrVq8Qk2M5NfV06cOh1/5siRfLL96CNu05NP8sn4zz9Z4Bw4YB1imj6dw1f9+lX4XyA4KVlZWfC3mAXx3nvvQaPR4Pnnn4eXnRNVioo41Lp5Mx8bdeuqa//l5Khix9VVvW9JUJA6k8rLSxVE+fmqF/7GGvSAGp62XOPNUkU89BCfU2yNiJoSsJeoOXbsGNq2bXvT1728vFC3bl3UrVsXkZGR6NKlC0aNGgUAyMzMRFpaGqKioiqsfbbg4EG+qJw+zY81Gg4BeHhwQahbuUMBPiBcXVnA9O0LJCXxheruu/l5xUNkMHAY49gxvt+hA+f6dO5ctTP5KxqDwQCdTgci9lZs3MjejhUr2PYdOnAY8bPPii9ievo0F8SLj2ePiqcn/0fdu/Mq2KWd2WY0skg5epS9cRcusFfnyhX2omRm8gnYZOI2uLnxZjAUd6m7uHDf0mp5pPjGG8Dbb6shqgEDOKcnM5PDmr/+ai1oUlLYS7h+vSSqC7YhMTERjRo1QkFBAcLDwzF9+nSMGjUKOp3Oru349Vcu3KfXq9505aqunGcVz2ROTunWXtNo+Fj08eGBJZE6+UOpn6N8n07Hn6/cvvwy5+vYGhE1JWDP8FNeXh5OnjyJv//+22pLSkoqtu+gQYOwevVqAMCHH36Il156Cffeey+eeeYZ9OvXz+4HSVm4cIHFzR9/qBeh+vU5GVNZnkGj4ZHC+vXFC/0BvI+HB4+iW7RQXadFRXzgXLrEo4p27XgWTHo6e3iMRs7q796dC06JJ8cavR6YOJFFyKFDwKJF/D90786JwTemBRiNPKNo/nwWDi1aqMJGCU0pCbvu7mq+VG4uf+7VqywycnJ4BGh5YlUSxnU6fqwkkev1LGz0evVkrNWqfUJxcxPx44YN+ft27lTFSf36LFq6duXPWLHCWtCkp7Obfdo07i+CYAtMJhO+//57vP766zh//jwAoHnz5nj//ffRr18/u3rjc3N5oJmYyOfLS5fYc/7332roVjnuatTgcJNlNfnSouS7WR7TynPK9sILfKzZGhE1JVAZEoX1ej0uXbqEixcv4sKFC7h48SKaNm2KoUOHAgCeffZZfPHFF+YaIhERERg7dixGjx6NOnXqVNqwVXY2hypWriy5zo1ysWrblkMZe/cWL/3t4sIXS0XDKT/VaOTRd+PGHLpQwhMdOnAIJC2NL9pKvo9CURFfkNu04ZyOZs1YFFVSE5abxYsX4+TJk5g5c6a5fyQmcjLgo4/y6tRff821XR59lO8/8oj1Z5w5wwnDiYlso6wsDgX27g18/rmaN1WS7YxG9TXL5PIbXdbKpvxPlidIFxf+TwMDWcBGRXHujrc3f35SEufWHD2qFidTQl+pqVxU7+BBLi1gKWi2b+eaOx9+yKJYEGyNXq/HvHnz8O6775qrbjdt2hSdOnVC+/bt0b59e7Rp08bu4SmAj5UjR7hkx7p1HFZSvDA1avAARKnxBKjHpHLcljSzStkAdbCjFunk885nJa+0cluIqCmByiBqSkN8fDzmz5+Pb775BmlpaebndTodatSogRo1aiAkJAQ1atTAtGnT0KJFCwDAyZMnUadOHfj6+jqq6SgqAt57j3Nv8vN5FF5QwCOJ7Gz1IPH355LeBw/yRenfUC58rq58QAYH8yyqGjX4Auzuzo89PdXNzY0vlG5uvM+pUxz+IGIxpAidJk24Pcr7KrFjrBjz5s3Ds88+CwBYt24dHn74Yaxfz4vcTZvG05m/+gpYtYqXBFi1Sk2cBdgWr73GJz13d7aHpyf/N3Pm8H+o1bKNlNBQXh7/l3o9n8yKiqxHfYqwcXVV7UnE/UD5/yMjWbg0asS5AB4enJe1bx97h5Qpq0oejXLSNBhYzLi783vq1eOEyXXreDkQRdAUFQFvvcVi7JNP2NsjCBVJZmYmZs6ciU8++QQFBQVWr7m4uKBt27Y4dOgQNBoN9NdHdO52jKET8QzBqVP5OFMK+kVE8HGTnc3naWVNQMtkehcXdZkcJTXgZrRowR4iWyOipgSqiqhR0Ov1WLNmDb744gvs3r27xH0OHjyIO+64AyaTCd7e3igoKEBoaCiioqLQuHFjREVFoU2bNujSpYvDf3NGBjB5Mq/RU1CgJho3acIXwJMni5cAvxnKe11d+aLp58ebEtfVavnAU4r/XbvGF0I/P57mGxHB++bmci5Gdjbvoywkp9fz62FhfJA2b863tWtXHk/PrFmz8Mr1CnKTJk3CBx98jFdf1YCIQ0tPPMFi5e23eSr0+vXs7bp8mYXDsmU8a6ioiGsUKdOt9+7lE5inJyfzXr6sekcUuytbQIAqMGvV4v81PZ3DkpcuFY/zm0z8HYrHxnJEqHyHVsv/lRJ6cnHhfmEy8cgyMpLF7Btv8AKWv//OHhol/Hj2LHsNR4/mpTsEwZ6kp6dj7969OHLkiHlLTk5Ghw4dcOjQIQDA2rVrMXjwYNStW9d8nlbO2a1atUJ4eHiFe+UvXeJctGPH+LEyGHFzU4/1oiJ1EWTLBGElx02Z5apAxIUCX37Z9u0VUVMCVU3UWFJQUIArV64gLS0N6enpSE9PR1paGoYPH46goCCkpqaiZcuWSL2J28PFxQWtW7fGXXfdZd5CQ0Pt/CsYIq5zM3kyH1jcPo73tm3LIQeDQd0uX+aRu+VCnDeiHGg3ngcsXaXKxdLbmz01AQF80CreBMuLNhEvLBcRwZ+bmcl1TxIS+LWwMBY6N3qHXF35uYosv09EmDZtGt555x0AwNSpUzFixDuYMEGDCROABg04HPPSSzzjJyeH10s6epRDdefP8+9xd+ek63btWOAo6V7+/upKwQD/J02bqjPg8vPVqZ8mE3vBlFCiUvTL1ZX/T2V6v8HAtlamZHt58RYWxp6XoCD+3qwstvGFC/xdinDy8ODP8PDg33blCguy0aM5pKaI2HnzeDbI3Ln8PwhCZSApKQlXrlxBy+tFuT766CO8+OKLN90/ODgYrVu3Rps2bdC6dWvcfffdqHe9Q6elpcHX1xceFZBEaDLxsXXmDIet/viDzxW1avFA4soVXsz4/Hm1jMONjBwJfPONzZsmoqYkqrKoKS1ZWVk4c+aMeTt16hQOHDiAs2fPWu3XsGFDxMXFAQA++OADvP7668U+y8XFBf7+/ggMDERgYCACAgIQGBiI559/Hp07d7ZJe9PTufjTunV80VLECWCdU+PqyqP2WrX4AqrURilr79Xp+LOUKrWWHgjLHA+TiS+mYWFqoqqnJ194mzVTxY4yktHr+SKfm8tF6fLz+aLdpg2LhnbtWEjdLkSEF198EbNnzwYAvPXWDHh4vIo//uDCcjExwMcfcw2gzz9nD1SnThzii4nhi3+HDpxUu38/h/+Uui/h4WooUMlZyshgIWQyqV4xRTwWFaniRYmt+/pyMm+dOmwrJeSkLJXh58fvTU7mk2NsrDqDSbG9ry//z82asUCrX58Fiq8vhzUXLeKcoLFj1bpGZ88CkyZxXtBTTxWf0SUIlQkiQkpKivk8ffr0aZw5cwaxsbE4deoUjDeohY8++ggvvPACAK5sfPToUfj7+yMsLMy8hYeHm2fUKre2KB9CxOe0PXu4TMLFizwwvOMOHuy4u/Pm5sbnl0aNKmZQJ6KmBKqDqLkZSUlJ2L17t3nr0KEDvrkup99//3289lrxVZJvxs8//4x+14t9LFy4EH5+fmjTpg0aNGhQ7rVRiHjWyptv8oVYEQuKx0DJ3ldmUykl9H19+bUrV/g9lkUC/21auYJlkUDLRDlL16rimvX0ZJETHKxW6VRyPpSf7uLCYarmzfngz83lBepSUvjAj45msRMYaH1CcHPjcE9gYMkX5YKCAjzzzDNYtGgRAGDw4E+RkTEB48fzRX7WLA7tJSdbz1ZKTeVbd3f+XCUkpNCoEYejlIqjTZrwiUv5H1xc2JuizEpT/heA91fspMTcFeHo48NCTqdTPTzXrvFtYCALlSZN+FZZ66moiL/7/HnekpLU0aCvr7och7c3P2c0sndm61bOAapfv3T/uSBUVgoKChATE4Pjx4/j+PHjOHbsGN59913cdT0ZrkGDBohXVrb8F3x8fJCRkQGdToedO3fiP//5D/z8/Mybr6/vTW/bt2+P1q1bA+ASEZmZmcjIyEBGRgaSkjJw9GgGzp3LQl5eNnJzs5Gfn4P8/GzUrJmLTZt+sHn4TERNCVRnUXMjJpPJLEByc3ORo1RMs8BgMCArK8vckZXtkUceQWRkJIgIISEhuHLlCgA+gFq1aoXWrVujbt26cHd3h5ubG9zd3eHu7o7AwEA89NBD5u8vLCyE0Wg0r9psNBpBRAgODob2hpKvV66w52HRIg5ZGY0sMjw8rEWOMm1YET86nRryUJJb/20V8puheJGUmiru7tbrrPDv4rZ5ebGnRykq7ebGnovmzdWwlxJeU3JZMjLUap6WgkynA3S6C9i9ezBSUg4D0KBGja9x551PoGFD9lj9+qvqTUpPZyEFcNuUKc+5uWwXxWNiMLBoMJm4vUr+jCJk6tcHevbkcBCgemQU27q5qUm7ANs2M5NF1I1LaFii16txewUidm/Xq8ffq3hnwsNLrv57/jz3hT/+4AJkTz4p3hmhekBEyMzMREpKCpKTk81bYmKi1azay5cvIyIiAgnXD+CffvoJj9w47fEWTJs2DW+99RYAoHPnzjhw4ECp35uXl2fz2V4iakpARI1tKSgowIQJE3Ds2DH8/fffxTL+b6RRo0Y4c+YMAGDBggUYN25cifu5uLggLCwMtWvXRkREBCIiIjB06FB069YNAPDUU0/h9OkExMdrcfmyFoWFOgBaaDT+AOpCo+ENiIROFwFPT1ezwFGSX729rRfrNBqtE1otvRGl4cZBiU7HgsvDQ505oMwGCg5W1zhSkvCIWHj5+6sJ0F5e7NGIi9uKP/74LwyGK9Bqg9Gp03fo27c3dDp2C69ebV1x19OTBUJRkToV28+PPTJeXiwIFO+NItCUqZ5BQVxxV6lK2qGDGmO3nBWmeMWiojjUpGzh4eydUTwpJaHXqyHAkiDikNflyyy8FKFoNPLvXbOG2zl6NM/kqiyJ24JQmdDr9UhPT0dERAQAICcnB+fPn0d2djZycnKQnZ1t3nJycqyey8nJwciRI82lRvr06YPNmzfD19fXKhUhICCgRK/Pk08+afOcn9Jev6vQ5FWhsuHh4YEFCxYAYK/O6dOnze7StLQ06PV6FBYWQq/XQ6/Xo1atWub33qqgoMlkQlJSklWhwpYtW5pFzc6dO3Hq1Kli7yuptoLJ5Ap393zk5+tgMJwA8AoSEsLg6hoGrTYUGg3f9/IKgotLIHS6QLi4eMHFRYPQUBYYlmuiKJ6eG4cCNz5WigcqDjAlPOXqyp4UJRnZcl0tg0GdFcTPm2AyzYTB8DoAE1xd2yMg4EfExkbiyBE1OVep72NZjffSJRY3vXvz46NHOfHPEsvaEj168OyumBgWDFot75+ZCTz+OCcLl1U8ZGRwzkx+vhpmU0Jg2dksWpKS1NvrDj8A7AEKC+PfZOkhq1mTk5plTCIIt8bd3d0saADA19fXnKhcVlavXg0PD49KXQhWQTw1gkMoLCxEQUEBdDodtFqteTOZTEhNTUViYiISExORkJCAxMREDBkyBG3atAHAbtTMzExz2MpgMMBgMCAjI8PK/Xrx4kXUrFkTl65Psfrhh58wbFhp3K+uAAKg070MP78Xr4ewToHIA25udeHurjEXE1S8MEoYybKEuGVV3bJjAjAYwNrrj58EMBcuLh7mHB5lVpHld3h7c+jm8mUWJJb5hv7+nDQcFcXiQKPhWWUXL7J4aNiQk3f9/YHHHgN69fr3mj1ELKD++Yen5MfGcgE/QF3jSVk3StmysliwRERwQnB4ON8GB4vXRRCEkpHwUwmIqKlemEwmZGZmmldLv3DhAn777bcSYtEpyMi4iqysDBiNahW5xo0/QHb2K7h6FSgsfBjALwB84eLSAu7uLaHTRcNorAciHQAdiLQwmXhzde0CLy8tPD2vIj9/LYqKvFBU5A2DwQsGgxcAbwA1ANQEi6iSeAvABwA+A4ua4ig5PTcmRivioHZtrldz7RoXxFIq94aGsuhQpnAmJHDNimHDOOcHYMHz++/Ali3sSbEMFxkM7IHx8eGwk1LIUJkZJuJEEARbIqKmBETUCLeCiJCXl2fO8q9Ro4Y5ZNa3b19s3boVhlIumOLqmg8fH09oNEdw9WqHW+6r0QRDowkDEAadrj90ugnX82NMMJlOwdW1mTlZVklytlyKQJkZptOpScoNG3KIJiSEC+65urJHJSlJncYeEsJTpvv3B1q25M/ev59FzOHD7LG55x5eUV1qvgiC4EhE1JSAiBrhdigsLMSZM2fMi5OeOHECly9ftprBZTAYcO2aEYMG/Y1t29wQFxeL/PyXAOQDyINGkw+NJh9ALkymdADW9Sh8fCbC33+O1dR0y8rJSp2YwkJ1IUklzFWrFq9yHhnJAiUujj00DRtyTkx4OHtnlM/Qavn9R4/yGkkFBcCdd7KIad++5FlHgiAIjkBETQmIqBEchcHAK0t/9x2wezfnnRgMJhBdBVEygGQYjSnQaBpBo+lk9V4ld0cJNel0amHAOnX4fkYGJyBrNDzzyd1dXQEb4LyW+vU5edhyNlFBAa/a3aMH7yMIglAZEVFTAiJqhKpCXp66RtO5czwNOyFBTQC2XH9JmVXVpIlagbd+fb7v7+/oXyIIgnD7yJRuQajCeHtzXZlGjRzdEkEQhKqD1OAUBEEQBMEpEFEjCIIgCIJTIKJGEARBEASnQESNIAiCIAhOgYgaQRAEQRCcAhE1giAIgiA4BSJqBEEQBEFwCkTUCIIgCILgFIioEQRBEATBKRBRIwiCIAiCUyCiRhAEQRAEp0BEjSAIgiAIToGIGkEQBEEQnAIRNYIgCIIgOAU6RzfAnhARACA7O9vBLREEQRAEobQo123lOn4zqpWoycnJAQDUqVPHwS0RBEEQBKGs5OTkwN/f/6ava+jfZI8TYTKZkJSUBF9fX2g0mgr9ruzsbNSpUweXLl2Cn59fhX5XVUDsUXbEZtaIPWyH2NIasUfZsbfNiAg5OTkIDw+Hi8vNM2eqlafGxcUFtWvXtut3+vn5yUFigdij7IjNrBF72A6xpTVij7JjT5vdykOjIInCgiAIgiA4BSJqBEEQBEFwCkTUVBDu7u6YNm0a3N3dHd2USoHYo+yIzawRe9gOsaU1Yo+yU1ltVq0ShQVBEARBcF7EUyMIgiAIglMgokYQBEEQBKdARI0gCIIgCE6BiBpBEARBEJwCETWCIAiCIDgFImoEQRAEQXAKRNQIgiAIguAUiKgpI4WFhY5uQqUiKSkJgwYNwooVKxzdlCqF9CMV6UO2Q/qVNdK3yk5V70MiasrA1KlT0bVrVyQkJDi6KZWCyZMno3bt2tBoNLjvvvsc3Zwqg/QjFelDtkP6lTXSt8qOM/QhETWl4OLFixg2bBjWrFmDo0eP4quvvnJ0kxzKnj17UKtWLWzevBn79u3D6tWrERwcDICXhxdKRvqRivQh2yH9yhrpW2XHmfqQztENqAokJiYiKCgI8+bNw6lTp/DCCy9g6NChiI6OdnTTHMKhQ4fg4eGBN954A506dcKJEyewZ88eNGrUCM2aNUPt2rUd3cRKifQjFelDtkP6lTXSt8qOM/UhWfupBEwmE1xcVCdWXl4ekpKSEBUVBQDo0KED6tWrh5UrV1rt5+wYjUZotVqkp6djypQpSEhIQEBAAA4fPozatWvj1KlT8PHxwTfffIN77rnH0c11ONKPiiN96PaRflUy0rdKj1P3IRKsmDFjBg0dOpReeeUVOnfuHBmNxmL7/P7776TRaGjjxo0OaKF9WbFiBR0/ftz8WLHH6tWrqWXLltS3b186fPgwJScnU3Z2NvXs2ZPuv/9++uuvvxzV5EqB9CMV6UO2Q/qVNdK3yo6z9yERNddJTk6mbt26UZMmTejFF1+kRo0aUXR0NM2bN6/E/YcMGUJt27alnJwcO7fUPhw4cIDat29PGo2GJk2aRLm5uUSknjQMBgMtXLiQ/v77byIiMplMRET0119/kY+PD/3666+OabiDkX6kIn3Idki/skb6VtmpLn1IRM11Vq9eTc2bN6ekpCQi4oPjySefpJYtW9KOHTuIiKioqMi8/7lz58jT05M+//xzMhgM9Ouvv9L27dsd0XSbc/nyZRo/fjw9/fTT9M4775CPjw/t3LnT/Lpy4igoKCj23uzsbPLw8KD58+fbrb2VCelHjPQh2yL9SkX6VvmoLn1IRM11PvzwQ2revDnl5eWZn/vrr7+of//+1KNHD/NziuInIpo2bRoFBARQ+/btSavV0rp16+za5ooiNzeX1q5dS0eOHCEionbt2tFDDz1EaWlp//rer7/+mtq3b0/JyckV3cxKifQjRvqQbZF+pSJ9q3xUlz5UxTKAKo6CggK4u7sjNTXV/FzLli0xePBgpKSk4IcffgCgTgm8cOECzp49i6ysLERHRyMlJQUPP/ywQ9pua7y9vdG/f3+0a9cOADBv3jxs2LAB27Ztg8lkKrb/iRMnEBsbiylTpmDq1KkYMmQIQkJCquX0SelHjPQh2yL9SkX6VvmoNn3IgYKqUqCo0oSEBHJxcaFly5ZZvX7u3Dl64IEHaNKkSWa3ZmpqKvXv358iIyPp0KFDdm+zPTEYDETE8dVWrVpRfHx8sX3efPNNioiIoI4dO9L+/fvt3MLKgfSjmyN9qPxIv7o10rf+nerWh6qFqLl27dpNX7OMIY4ZM4aaNm1qjjkqDBw4kIYMGWJ+XFhYSKdPn7Z9Q+1Eae1h+fjKlSvk6upK77//vvm5ixcvEhFRYmKiVUzbWcnPz7dyzVrer279qLS2sHwsfejWWNpQobr1K0v+zR6Wj6t737rRLjd7rTr0IacWNSaTiSZNmkR9+vSh4cOH07Zt28x/sF6vN+9nNBopNjaWkpOTKSAggCZOnGgVnx0wYACNHz/e7u23NaW1BxFRTEyM+b6yz/Tp06lWrVq0fPly6tu3Lw0ePJiysrLs9wMchMlkookTJ1LPnj1p8ODBtHHjRiosLCSi6tePSmsLIulD/4bJZKLZs2fT999/X+w1y2m21aFfEZXeHkTStxRMJhO99tprNHLkSJo4cSLFxsaaxaClmKkufYjIiUXNqVOnqE2bNtS5c2davnw59enTh9q3b09Tpkyx2u+rr74iX19fmjZtGhERfffdd1S/fn3q2bMnrVy5kl599VUKCQmhbdu2OeBX2I6y2uPtt982X6SUgyQ9PZ00Gg1pNBq65557iql9Z+TKlSvUtWtX6tChA3399dd09913U4sWLeiFF16w2q869KOy2kL60M357bffqG3btqTRaGjw4MHmsMmN3onq0K+Iym4P6VtEP//8M0VGRlLXrl3pjTfeoLp161L37t2LzVCqLn1IwWlFzccff0z33nuveVqfXq+nN998kzQaDe3atYuIiKZMmUIBAQG0YMECK1X766+/Uv/+/alr167Upk2bKjGN7d8oiz2+/vprc6xaYe3ateTh4UGtWrWiffv22b39jmLTpk3UuHFjOnXqFBHxNNEvv/ySNBoNbdmyhYiqTz8qiy2kD92ca9eu0YQJE2jcuHH00UcfUYcOHejjjz+22qeoqIheeuklCgwMdPp+VVZ7SN9iT1W/fv1o2rRpVqIuKirKPF1dr9dXmz5kidOJGqPRSHq9nkaNGkX9+/c3P0fEU9o0Gg117NiRiIji4uLo6tWrVu+1JDU11T6NrkBuxx4KJpOJNmzYQJ999pnd2l1Z+PbbbykgIMDquby8PHrssceoefPmRFQ9+hFR+WyhUJ37kIKl1+HAgQN04sQJIiJ69NFHqU+fPnTw4EGr/ePi4igjI8P82Nn61e3aw/JzqkvfsiwiOHnyZLpw4QIRqaHf7t2708SJE837OnsfKgmnEDXLli2jH3/8kS5dumR+buzYsfTggw9aqfYRI0bQK6+8Qp6envTDDz8QUfE/2RkQe5QPpXS65cn2u+++o1atWpk9EQonTpwgT09PWrJkCRE5n93EFrajJFtasmfPHmrXrh29+uqr5vwkZ0bsUXYUm1keWzfaLz8/n1q3bk0rV660a9sqG1W6Ts1vv/2GiIgIzJw5E5MmTULfvn0xe/ZsAMDEiRORnp6O//73v3jyyScRGBiIU6dOYeTIkejZsyc2b94MAFVvsa5bIPYoHxs3bkT9+vUxYsQIxMfHQ6PRwGAwAAA6duwIk8mEP/74A/n5+eb3NGjQAMOGDcPSpUsBOI/dxBa2oyRbllRHpWvXrujZsyd2796NLVu2OKCl9kHsUXZutJmLi4vZZjfaLycnB9euXUPTpk0d1dxKQZU9+xARPv/8c/Tr1w8nTpzA5s2bMWzYMLz88svYvHkzoqOjMX/+fEycOBHXrl3DvHnzcODAATRv3hwFBQWoUaOGo3+CTRF7lI9ly5bhtddeQ7NmzeDj44NFixYBAHQ6HUwmExo2bIjevXvj559/xu7du83v8/Lygo+PD9zd3VFQUOCo5tsUsYXtuJktbxR8ykVpwoQJMJlM+Pnnn5GRkQEAiI2NtdqnKiP2KDulsZmLi4u5WN7evXuRl5eHyMhI8+tXr14FgOpVaNCxjqLyc/r0aXJ3dzcnuRKxa2748OHUtGnTEstgm0wmunDhArVo0eKmi3hVVcQe5WP37t00ZcoUunjxIk2aNIm6detGf/zxBxGpcerMzEy64447aPDgwRQXF2d+74gRI2jkyJEOaXdFILawHbey5Y3hOSWMMGfOHOrcuTO98sor1KVLF2revHmJ6xdVRcQeZae0NlPsNXLkSBo9ejQREZ08eZL69u1LTz311C1r2DgjVVbUpKenU3h4uDmOr2TDJycnk6+vL82ePbvY88nJyfTEE09Qhw4dKDEx0TENryDEHuVHOVHu37+f7rnnHhozZoz5NSWmv379eurRowfVqlWLZsyYQWPGjKGgoCDasGGDQ9pcUYgtbMetbFlS4cKYmBjy9vYmjUZDI0eOrHKrI/8bYo+yU1qbFRQU0AMPPECLFi2iF154gXQ6HQ0cONBqnafqQpUVNZcvX6b+/fvT6NGjzX+ccsF+7bXXKDIy0rxvcnIyvfvuuxQcHEydOnWikydPOqLJFYrY4/ZQThDvvfcederUyZw4bTl19PLly/Tss8/SoEGDqHfv3nTs2DGHtLWiEVvYjpvZ8sYkz2XLlpFGo6G7777bqY9HsUfZKY3NYmNjzTV62rZtS0ePHnVIWysDlVbUnDlzhn755RciKq7iFXfa22+/TR07dqRVq1YRkeqS27NnD9WpU4cOHz5MRHwy3rNnD23evNmeP8GmiD3Kx83sRmR9kVZsde7cORowYAANGDDAPBXyxhkYVdUFLrawHbawpWVY4MyZM8XW5KlKiD3Kji2Px8OHD1P37t3FW0qVUNTo9XoaN24caTQaK+8CUfH1LTIyMqhXr140ePBgOnfunPn5FStWUM2aNen8+fP2aHKFIvYoH6W1W0mx6W+++YY6d+5Mc+bMoRMnTlD//v2rdFxabGE7xJbWiD3Kji1t9vDDD8u09xuoVLOfZs+eDX9/f/zzzz+YNGkSAgMDcfr0afPrOp0OAPDpp5+iQ4cOMBgMmDhxIhITEzFu3DjExsYiMTERW7duRZcuXVCzZk1H/RSbIPYoH2Wx25133olTp05ZvX/YsGGIjIzEa6+9hnbt2iE9PR2FhYVVcgaB2MJ2iC2tEXuUHVvb7MqVKygsLKw2M8JKhWM1FZOenk7NmjWjmjVr0urVq4mIaNu2beTr60sJCQlExEo1JiaGGjduTA0bNqTly5ebn9+1axdFRUVRVFQUhYaGUnR0tLk6ZVVE7FE+ymO3GxfPy83Npblz55Kbmxt16dKFDh06ZPffYQvEFrZDbGmN2KPsiM3sR6UQNZmZmbRp0yYrd1tCQgIFBASYk6KIiOLj42nWrFnmlVct45BXrlyhmJgY+v333+3X8ApC7FE+yms3S06ePEkRERH01Vdf2aXNFYXYwnaILa0Re5QdsZn9cJioiYuLK7GcuvLc2bNnqU2bNuapyDcrqe0siD3Khy3tVtVtKrawHWJLa8QeZUds5hjsnlOzcOFCREZGYujQoejSpQuWL19ujgcSkblaYoMGDUBEiI+PB+C8VSTFHuWjIuym0WgqvuEVgNjCdogtrRF7lB2xmWPR2fPL5syZg88++wwzZ85EnTp1sGXLFowcORJZWVkYO3YsXF1dQew9gouLC+6++24cPHgQAKDVau3ZVLsg9igfYjcVsYXtEFtaI/YoO2Izx2M3UZOfn48NGzZg+PDhGDZsGIgIXbt2xfbt2zFr1ixERESgf//+ANS1Ldzd3aHVapGRkYHAwEB7NdUuiD3Kh9hNRWxhO8SW1og9yo7YrHJgt/CTTqfDkSNH0KRJEwCAXq8HANSsWRNFRUVYs2YN0tLSrFYF7tmzJ44cOWKvJtoVsUf5ELupiC1sh9jSGrFH2RGbVQ4qRNSsWrUKY8eOxZw5c3DixAkAgJubG+6//368/fbbSExMhIeHB5YvX46rV6+ib9++2L9/PxITEwGoc/V1Oh18fHxw7Niximim3RB7lA+xm4rYwnaILa0Re5QdsVklxpZZx+np6TR48GAKCwujp59+mrp160a1atWipUuXEhGvJN2gQQNq0KABhYeHk5eXF/34449ERKTT6cwlnpUS0QkJCXTw4EFbNtGuiD3Kh9hNRWxhO8SW1og9yo7YrPJjU1GzatUq6tixo7mYEBFR//79qV69erR27VoiIrp06RJt3ryZlixZYi7vnJqaSg0aNDCvWeQsiD3Kh9hNRWxhO8SW1og9yo7YrPJjU1HzyCOP0MCBA4mIzMvEL168mDQaDd1zzz2UmppKRFRs7v4PP/xATZs2pcuXL9uyOQ5H7FE+xG4qYgvbIba0RuxRdsRmlZ9y59Ts2rULmzdvNic8AUBUVBRiYmIAAD4+PgCA2NhY9OrVCwUFBfjpp58AcOZ3WloaYmNj8dlnn2Hy5MkYOHAgatSoUWXX/RB7lA+xm4rYwnaILa0Re5QdsVkVpawqKC0tjUaOHEkajYZat25N8fHx5tfOnj1LISEh1L17d5o5cybdeeedVL9+ffrtt9+odevW9MYbb5j3PXLkCA0YMIDq169fpZeYF3uUD7GbitjCdogtrRF7lB2xWdWmTKKmqKiI5s2bR/fffz+tWLGCvLy86P3336eCggLzPnv27KGxY8dSu3bt6LnnnqO0tDQiIhoxYgQNGjTI6vOOHj1qg5/gOMQe5UPspiK2sB1iS2vEHmVHbFb1KbOnZv/+/fTLL78QEdH06dMpJCSE/vzzz2L76fV68/2UlBSKjo6md999l4i44zgLYo/yIXZTEVvYDrGlNWKPsiM2q9qUWdTcuLBWeHg4jRs3jrKzs4u9fu3aNSosLKR58+ZR27Zt6a+//rrN5lY+xB7lQ+ymIrawHWJLa8QeZUdsVrUp9+wnRaWuXLmSdDodbdmyxer1hIQEmjdvHnXo0IGCgoLou+++u72WVnLEHuVD7KYitrAdYktrxB5lR2xWNdEQ3X4qdpcuXeDt7Y3ly5ejZs2aSEtLQ0hICL7//nskJSVhypQptshprjKIPcqH2E1FbGE7xJbWiD3Kjtis6nBbosZgMECn0yEmJgatW7fG7NmzcfbsWezZswdLlixBdHS0Ldta6RF7lA+xm4rYwnaILa0Re5QdsVkVxFYunzvuuIM0Gg1FRkbSpk2bbPWxVRaxR/kQu6mILWyH2NIasUfZEZtVDW5b1MTFxVF0dDR5eXnR119/bYs2VWnEHuVD7KYitrAdYktrxB5lR2xWtbjtVbq1Wi0GDRqE9PR0jBkzxhbOoyqN2KN8iN1UxBa2Q2xpjdij7IjNqhY2SRQWBEEQBEFwNLftqREEQRAEQagMiKgRBEEQBMEpEFEjCIIgCIJTIKJGEARBEASnQESNIAiCIAhOgYgaQRAEQRCcAhE1giAIgiA4BSJqBEGo1OzYsQMajQaZmZmOboogCJUcKb4nCEKlokePHmjTpg0++eQTAEBhYSGuXr2K0NBQaDQaxzZOEIRKjc7RDRAEQbgVbm5uCAsLc3QzBEGoAkj4SRCESsOoUaOwc+dOzJkzBxqNBhqNBosXL7YKPy1evBgBAQFYv349mjRpAi8vLwwePBh5eXlYsmQJ6tWrh8DAQEyYMAFGo9H82YWFhXj55ZcREREBb29vdOrUCTt27HDMDxUEoUIQT40gCJWGOXPm4PTp04iOjsbbb78NAIiJiSm2X35+Pj799FOsWLECOTk5GDhwIAYOHIiAgABs3LgR586dw6BBg9CtWzcMHToUADB69GicP38eK1asQHh4ONauXYs+ffrgxIkTiIqKsuvvFAShYhBRIwhCpcHf3x9ubm7w8vIyh5xiY2OL7VdUVIQvvvgCDRs2BAAMHjwYy5YtQ0pKCnx8fNC8eXP07NkT27dvx9ChQ3H27Fl8//33SEhIQHh4OADgxRdfxKZNm7Bo0SLMmDHDfj9SEIQKQ0SNIAhVDi8vL7OgAYDQ0FDUq1cPPj4+Vs+lpqYCAI4ePQoiQuPGja0+R6/XIzg42D6NFgShwhFRIwhClcPV1dXqsUajKfE5k8kEADCZTNBqtThy5Ai0Wq3VfpZCSBCEqo2IGkEQKhVubm5WCb62oG3btjAajUhNTcVdd91l088WBKHyILOfBEGoVNSrVw8HDhzA+fPnkZ6ebva23A6NGzfG8OHDMXLkSKxZswbx8fE4dOgQZs6ciY0bN9qg1YIgVAZE1AiCUKl48cUXodVq0bx5c4SEhODixYs2+dxFixZh5MiRmDJlCpo0aYKHH34YBw4cQJ06dWzy+YIgOB6pKCwIgiAIglMgnhpBEARBEJwCETWCIAiCIDgFImoEQRAEQXAKRNQIgiAIguAUiKgRBEEQBMEpEFEjCIIgCIJTIKJGEARBEASnQESNIAiCIAhOgYgaQRAEQRCcAhE1giAIgiA4BSJqBEEQBEFwCv4fXMWM3c0VQdgAAAAASUVORK5CYII=",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "# Let's store the hydrograph from the previous 3-day run in a variable that we will append to at each time step.\n",
+ "total_hydrograph = ens_loop.hydrograph\n",
+ "\n",
+ "# Here is where the assimilation loop is performed. We will apply the assimilation 30 successive times, advancing\n",
+ "# in time by 3 days each iteration.\n",
+ "for i in range(0, 30):\n",
+ " # Set the new start_date and end_dates\n",
+ " start_date = end_date\n",
+ " end_date = end_date + dt.timedelta(days=3)\n",
+ "\n",
+ " # Again, copy the configuration object and change some elements\n",
+ " conf_loop = conf_loop.duplicate(\n",
+ " # Here we will set RunName and SolutionRunName to the same values such that the model will read the \"loop\"\n",
+ " # run, perform the assimilation, and save the results to \"loop\" again, making them available for the\n",
+ " # next run, effectively overwriting the results at each step. We could preserve each run's result by changing\n",
+ " # these run names dynamically, but in our case it is not important nor required to do so.\n",
+ " RunName=\"loop\",\n",
+ " SolutionRunName=\"loop\",\n",
+ " # Again, set the initial conditions to None to preserve the assimilated ones.\n",
+ " UniformInitialConditions=None,\n",
+ " # Set the start and end date of the simulation period, with the assimilation being performed on the final date.\n",
+ " StartDate=start_date,\n",
+ " EndDate=end_date,\n",
+ " )\n",
+ "\n",
+ " # Perform the actual simulation and assimilation for this 3-day step.\n",
+ " new_loop = Emulator(config=conf_loop, workdir=tmp_path, overwrite=True).run(\n",
+ " overwrite=True\n",
+ " )\n",
+ "\n",
+ " # Extract the results for this 3-day hydrograph and store it into our \"total_hydrograph\" which keeps track\n",
+ " # of the flows for each of the 3-day periods.\n",
+ " ens_loop = EnsembleReader(run_name=conf_loop.run_name, paths=paths_loop)\n",
+ " total_hydrograph = xr.concat([total_hydrograph, ens_loop.hydrograph], dim=\"time\")\n",
+ "\n",
+ "\n",
+ "# Once the loop is complete, plot the results:\n",
+ "total_hydrograph.q_sim[:, :, 0].plot.line(\"b\", x=\"time\", add_legend=False, lw=0.5)\n",
+ "total_hydrograph.q_sim[1, :, 0].plot.line(\"b\", x=\"time\", label=\"Forecasts\", lw=0.5)\n",
+ "total_hydrograph.q_obs[1, :, 0].plot.line(x=\"time\", color=\"black\", label=\"Observation\")\n",
+ "plt.legend(loc=\"upper left\")\n",
+ "plt.ylabel(\"Streamlfow (m³/s)\")\n",
+ "plt.title(\"All closed-loop periods\")\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Before going any further, let's compare the assimilated results to those obtained using a simple non-assimilated run (open-loop):"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlAAAAHrCAYAAAAAB6NuAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAC+hElEQVR4nOzdd3hT1RvA8W9a6F5QRimj7L1lIzLLlCGyEYsDEQREEBVRwQEoCAKiIqCAyHAwfgiyZc+yV9lljzJboLSl7fn9cUjadLe0TQLv53nuk+Tem3tP0rR5e85732NQSimEEEIIIUSa2Vm6AUIIIYQQtkYCKCGEEEKIdJIASgghhBAinSSAEkIIIYRIJwmghBBCCCHSSQIoIYQQQoh0kgBKCCGEECKdJIASQgghhEgnCaCEEEIIIdJJAijxVDh06BCvvfYaxYoVw8nJCTc3N6pXr864ceO4ffu2ab9GjRrRqFEjyzU0FQaDgVGjRqW638aNGzEYDGzcuDHL22SLgoKC6N27N0WKFMHBwYE8efLQunVrVq5caemmpZm1f1bT4ty5cxgMBmbPnm2R8/fu3ZuiRYtm6Lnz589n0qRJSW5L6++peLrlsHQDhHhSM2bMoH///pQpU4Zhw4ZRvnx5Hj16xJ49e5g2bRo7duxgyZIllm6myCaLFy+mR48eFC9enE8//ZQyZcpw/fp1Zs2aRevWrRk2bBjjxo2zdDOfCQUKFGDHjh2UKFHC0k1Jt/nz53PkyBEGDx6caNuOHTsoVKhQ9jdKWBUJoIRN27FjB/369cPf35+lS5fi6Oho2ubv78/QoUNZtWqVBVsostOZM2fo1asXlSpVYuPGjbi6upq2de7cmX79+jF+/HiqV69Ot27dLNjSZ4OjoyN16tSxdDMy3dP4mkT6yRCesGljxozBYDAwffp0s+DJyMHBgXbt2qV4jNu3b9O/f38KFiyIg4MDxYsXZ8SIEURGRprt99dff1G7dm08PT1xcXGhePHivP7662b7hIWF8f7771OsWDEcHBwoWLAggwcP5sGDB4n269OnD97e3ri5udGyZUtOnjyZwXchzrJly6hbty4uLi64u7vj7+/Pjh07Eu23detWmjZtiru7Oy4uLtSrV48VK1aY7TN79mwMBgNr167ltddeI3fu3Li6utK2bVvOnj2bYjuWLl2KwWBg/fr1ibb99NNPGAwGDh06BMDZs2fp1q0bvr6+ODo6kj9/fpo2bcqBAwfS/fq/++47wsPD+f77782CJ6MJEybg5eXF6NGjM/w6161bR9OmTfHw8MDFxYX69esnep2jRo3CYDBw9OhRunfvjqenJ/nz5+f1118nNDQ03a/LKK2f1YiICIYPH272OXznnXe4e/eu2X5FixblxRdfZMmSJVSuXBknJyeKFy/OlClT0tSe1H4nkhrCM743hw4donPnznh6epI7d26GDBlCdHQ0J06coGXLlri7u1O0aNFEvYXGn9e5c+fM1qd1WPuHH37ghRdeIF++fLi6ulKpUiXGjRvHo0ePTPs0atSIFStWcP78eQwGg2kxSmoI78iRI7Rv355cuXLh5ORE1apVmTNnTpJtXLBgASNGjMDX1xcPDw+aNWvGiRMnzPbdv38/L774Ivny5cPR0RFfX1/atGnDpUuXUnx9IvtIACVsVkxMDP/99x/PPfcchQsXztAxIiIiaNy4Mb/99htDhgxhxYoVvPLKK4wbN46OHTua9tuxYwddu3alePHiLFy4kBUrVvDZZ58RHR1t2ic8PJyGDRsyZ84cBg0axMqVK/nwww+ZPXs27dq1QykFgFKKDh06MHfuXIYOHcqSJUuoU6cOrVq1eqL3Y/78+bRv3x4PDw8WLFjAL7/8wp07d2jUqBFbt2417bdp0yaaNGlCaGgov/zyCwsWLMDd3Z22bdvyxx9/JDruG2+8gZ2dnSknZPfu3TRq1CjRl3F8xj/8s2bNSrRt9uzZVK9encqVKwPQunVr9u7dy7hx41i7di0//fQT1apVS/H4yVm7di358+dPtofAxcWF5s2bc+TIEa5du5bu1/n777/TvHlzPDw8mDNnDn/++Se5c+emRYsWSQaLL7/8MqVLl2bRokV89NFHzJ8/n/feey/drwvS/lk1fr6+/fZbevXqxYoVKxgyZAhz5syhSZMmiYKtAwcOMHjwYN577z2WLFlCvXr1ePfdd/n2229TbE9afidS0qVLF6pUqcKiRYvo06cP3333He+99x4dOnSgTZs2LFmyhCZNmvDhhx+yePHi9L9hyThz5gw9evRg7ty5LF++nDfeeIPx48fTt29f0z4//vgj9evXx8fHhx07dpiW5Jw4cYJ69epx9OhRpkyZwuLFiylfvjy9e/dOcrj4448/5vz588ycOZPp06dz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j7y8PFy+fBkZGRmV7o/Yt29fvPbaaxg2bJjuS0MQEdUkTKB0xgSKHMFsNuPChQvl1lAJDg7GwIEDmTgREV0HWz+/OSyUqAZzcXGxzgAMDw/XuzhERHWGDZOgiYiIiKgsJlBEREREGjGBIiIiItKICRQRERGRRkygiIiIiDRiAkVERESkERMoIiIiIo2YQBERERFpxASKiIiISCMmUEREREQaMYEiIiIi0ogJFBEREZFGTKCIiIiINGICRURERKQREygiIiIijZhAEREREWnEBIqIiIhIIyZQRERERBoxgSIiIiLSiAkUERERkUZMoIiIiIg0YgJFREREpBETKCIiIiKNmEARERERacQEioiIiEgjJlBEREREGjGBIiIiItKICdRVLFq0CG3btoWXlxd69uyJn376Se8iERERkRNgAlWFL774Ak888QRefPFFHDp0CAMGDMDIkSORlJSkd9GIiIhIZwYREb0L4Yz69OmDHj164KOPPrKe69y5M0aPHo233377ms/Pzc1Fw4YNkZOTgwYNGtizqERERFRNbP38dnNgmWqMoqIiHDhwAM8991y588OHD8cvv/xS6XOMRiOMRqP1fk5ODgD1iyAiIqKawfK5fa32JSZQlcjMzITJZEKzZs3KnW/WrBnS0tIqfc7bb7+N1157rcL51q1b26WMREREZD8XLlxAw4YNq3ycCdRVGAyGcvdFpMI5i+effx4zZ8603s/OzkZwcDCSkpKu+gsgJTc3F61bt8bZs2fZ5VnNGFvtGDPHYry1Y8zsJycnB0FBQQgICLjqdUygKtG4cWO4urpWaG1KT0+v0Cpl4enpCU9PzwrnGzZsyMqtQYMGDRgvO2FstWPMHIvx1o4xsx8Xl6vPs+MsvEp4eHigZ8+e2LFjR7nzO3bsQL9+/XQqFRERETkLtkBVYebMmZg8eTJ69eqFW265BUuWLEFSUhKmT5+ud9GIiIhIZ0ygqjBhwgRcuHABs2fPRmpqKsLCwrB582YEBwfb9HxPT0+8+uqrlXbrUUWMl/0wttoxZo7FeGvHmNmPrbHlOlBEREREGnEMFBEREZFGTKCIiIiINGICRURERKQREygiIiIijZhAEREREWnEBIqIiIhIIyZQRERERBoxgdKoqKhI7yLUKOfOncPYsWOxZs0avYtSK7E+asP66Hiso9qwjtpPdddFJlAavPji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+/z58xIWFiZvvPGGiKhfZF3BeNkX46sN4+V4jLk2jJf9MLbVS3MCdeXGf4GBgTJt2jTJzc2t8HhBQYEUFRXJokWLJCIiQmJjY2+wuDUP42VfjK82jJfjMebaMF72w9hWr+uehWfJUNeuXStubm6yffv2co8nJyfLokWLpFevXhIQECCff/75jZW0hmO87Ivx1YbxcjzGXBvGy34Y2+phELnxYfP9+vWDj48PVq1ahaZNmyIjIwNNmjTB6tWrce7cOcyaNas6xrvXGoyXfTG+2jBejseYa8N42Q9je/1uKIEqKSmBm5sb4uPjcdNNN2HevHlITExETEwMVqxYgbCwsOosa43HeNkX46sN4+V4jLk2jJf9MLbVoLqasm6++WYxGAwSHBwsW7dura6XrbUYL/tifLVhvByPMdeG8bIfxvb63HACdeLECQkLCxNvb29ZunRpdZSpVmO87Ivx1YbxcjzGXBvGy34Y2xtz3SuRW7i6umLs2LHIzMzElClTqqNRrFZjvOyL8dWG8XI8xlwbxst+GNsbUy2DyImIiIjqkhtugSIiIiKqa5hAEREREWnEBIqIiIhIIyZQRERERBoxgSIiIiLSiAkUERERkUZMoIiIiIg0YgJFRFTGDz/8AIPBgOzsbL2LQkROjAtpElGdNnjwYHTv3h0ffPABAKCoqAhZWVlo1qwZDAaDvoUjIqflpncBiIiciYeHB5o3b653MYjIybELj4jqrAceeAC7d+/G/PnzYTAYYDAYsHz58nJdeMuXL4efnx++/fZbdOzYEd7e3hg3bhzy8vKwYsUKtGnTBv7+/njsscdgMpmsr11UVIRnnnkGLVu2hI+PD/r06YMffvhBnx+UiKodW6CIqM6aP38+jh8/jrCwMMyePRsAEB8fX+G6/Px8fPjhh1izZg0uXbqEMWPGYMyYMfDz88PmzZtx8uRJjB07Fv3798eECRMAAA8++CBOnz6NNWvWIDAwEBs2bMCIESMQFxeHDh06OPTnJKLqxwSKiOqshg0bwsPDA97e3tZuu2PHjlW4rri4GB999BFCQkIAAOPGjcPKlStx/vx5+Pr6okuXLhgyZAh27dqFCRMmIDExEatXr0ZycjICAwMBAE899RS2bt2KZcuW4a233nLcD0lEdsEEiojoGry9va3JEwA0a9YMbdq0ga+vb7lz6enpAICDBw9CRBAaGlrudYxGIxo1auSYQhORXTGBIiK6Bnd393L3DQZDpefMZjMAwGw2w9XVFQcOHICrq2u568omXURUczGBIqI6zcPDo9zg7+oQEREBk8mE9PR0DBgwoFpfm4icA2fhEVGd1qZNG+zZswenT59GZmamtRXpRoSGhmLSpEmIjo7G+vXrcerUKezbtw9z5szB5s2bq6HURKQ3JlBEVKc99dRTcHV1RZcuXdCkSRMkJSVVy+suW7YM0dHRmDVrFjp27Ii77roLe/bsQevWravl9YlIX1yJnIiIiEgjtkARERERacQEioiIiEgjJlBEREREGjGBIiIiItKICRQRERGRRkygiIiIiDRiAkVERESkERMoIiIiIo2YQBERERFpxASKiIiISCMmUEREREQa/X/rt2h9vcie1gAAAABJRU5ErkJggg==",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "# Reset the start and end-dates to cover the entire period (spinup + 30 3-day steps)\n",
+ "start_date = dt.datetime(1996, 9, 1)\n",
+ "end_date = dt.datetime(1997, 8, 31) + dt.timedelta(days=30 * 3)\n",
+ "\n",
+ "# Setup a standard GR4JCN model\n",
+ "conf_openloop = GR4JCN(\n",
+ " params=[0.14, -0.005, 576, 7.0, 1.1, 0.92],\n",
+ " Gauge=gauge,\n",
+ " ObservationData=[rc.ObservationData.from_nc(salmon_meteo, alt_names=\"qobs\")],\n",
+ " HRUs=[hru],\n",
+ " StartDate=start_date,\n",
+ " EndDate=end_date,\n",
+ " RunName=\"OPEN_LOOP\",\n",
+ " EvaluationMetrics=(\"NASH_SUTCLIFFE\",),\n",
+ ")\n",
+ "\n",
+ "openloop = Emulator(config=conf_openloop, workdir=tmp_path, overwrite=True).run(\n",
+ " overwrite=True\n",
+ ")\n",
+ "\n",
+ "openloop.hydrograph.q_sim.plot.line(\"r\", x=\"time\", label=\"Open-loop simulation\")\n",
+ "total_hydrograph.q_sim[:, :, 0].mean(dim=\"member\").plot.line(\n",
+ " \"b\", x=\"time\", label=\"Closed-loop assimilation\"\n",
+ ")\n",
+ "openloop.hydrograph.q_obs.plot.line(x=\"time\", color=\"black\", label=\"Observations\")\n",
+ "\n",
+ "plt.xlim([dt.date(1997, 9, 1), dt.date(1997, 12, 1)])\n",
+ "plt.ylim([0, 50])\n",
+ "plt.legend(loc=\"upper left\")\n",
+ "plt.ylabel(\"Streamlfow (m³/s)\")\n",
+ "plt.title(\"Closed-loop vs. Open-loop simulations\")\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "We can see that the data assimilation as vastly improved most of the hydrograph. Making the assimilation more frequent, changing other state variables, or adjusting the error model hyperparameters could also lead to better simulations.\n",
+ "\n",
+ "Once we are satisfied with the initial states, our model would now be ready for forecasting, using the ensemble initial states as initial conditions for generating the forecasts. This can be done using the EnKF forecating method:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "# Set up the forecast configuration, basing it on the previous (final) assimilation step.\n",
+ "conf_forecast = conf_loop.duplicate(\n",
+ " EnKFMode=o.EnKFMode.FORECAST,\n",
+ " RunName=\"forecast\",\n",
+ " SolutionRunName=\"loop\",\n",
+ " UniformInitialConditions=None,\n",
+ " # Set the start date equal to the end date of the last assimilation run.\n",
+ " StartDate=end_date,\n",
+ " # Here we will do a 30-day forecast using the observed meteorological data as forecast data. However it is\n",
+ " # possible to replace the Gauge forcing data with that of a forecast, as we have done before.\n",
+ " EndDate=end_date + dt.timedelta(days=30),\n",
+ ")\n",
+ "\n",
+ "forecast = Emulator(config=conf_forecast, workdir=tmp_path, overwrite=True).run(\n",
+ " overwrite=True\n",
+ ")\n",
+ "\n",
+ "# We will plot the resulting forecast. Note that since we have 25 members, we also have 25 forecasts, i.e. one\n",
+ "# per possible initial state. We could take the mean hydrograph to get the best estimator of the forecasted flow.\n",
+ "ens = EnsembleReader(run_name=conf_forecast.run_name, paths=paths_loop)\n",
+ "ens.hydrograph.q_sim[:, :, 0].plot.line(\"b\", x=\"time\", label=None, lw=0.5)\n",
+ "ens.hydrograph.q_sim[1, :, 0].plot.line(\"b\", x=\"time\", label=\"Forecast\", lw=0.5)\n",
+ "ens.hydrograph.q_obs[1, :, 0].plot.line(\"black\", x=\"time\", label=\"Observation\")\n",
+ "plt.legend(loc=\"upper left\")\n",
+ "plt.ylabel(\"Streamlfow (m³/s)\")\n",
+ "plt.title(\"Forecast after assimilation\")\n",
+ "plt.xlim([dt.date(1997, 11, 29), dt.date(1997, 12, 29)])\n",
+ "plt.show()"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.9.16"
}
- ],
- "source": [
- "# Set up the forecast configuration, basing it on the previous (final) assimilation step.\n",
- "conf_forecast = conf_loop.duplicate(\n",
- " EnKFMode=o.EnKFMode.FORECAST,\n",
- " RunName=\"forecast\",\n",
- " SolutionRunName=\"loop\",\n",
- " UniformInitialConditions=None,\n",
- " # Set the start date equal to the end date of the last assimilation run.\n",
- " StartDate=end_date,\n",
- " # Here we will do a 30-day forecast using the observed meteorological data as forecast data. However it is\n",
- " # possible to replace the Gauge forcing data with that of a forecast, as we have done before.\n",
- " EndDate=end_date + dt.timedelta(days=30),\n",
- ")\n",
- "\n",
- "forecast = Emulator(config=conf_forecast, workdir=tmp_path, overwrite=True).run(\n",
- " overwrite=True\n",
- ")\n",
- "\n",
- "# We will plot the resulting forecast. Note that since we have 25 members, we also have 25 forecasts, i.e. one\n",
- "# per possible initial state. We could take the mean hydrograph to get the best estimator of the forecasted flow.\n",
- "ens = EnsembleReader(run_name=conf_forecast.run_name, paths=paths_loop)\n",
- "ens.hydrograph.q_sim[:, :, 0].plot.line(\"b\", x=\"time\", label=None, lw=0.5)\n",
- "ens.hydrograph.q_sim[1, :, 0].plot.line(\"b\", x=\"time\", label=\"Forecast\", lw=0.5)\n",
- "ens.hydrograph.q_obs[1, :, 0].plot.line(\"black\", x=\"time\", label=\"Observation\")\n",
- "plt.legend(loc=\"upper left\")\n",
- "plt.ylabel(\"Streamlfow (m³/s)\")\n",
- "plt.title(\"Forecast after assimilation\")\n",
- "plt.xlim([dt.date(1997, 11, 29), dt.date(1997, 12, 29)])\n",
- "plt.show()"
- ]
- }
- ],
- "metadata": {
-"kernelspec": {
- "display_name": "Python 3",
- "language": "python",
- "name": "python3"
},
- "language_info": {
- "codemirror_mode": {
- "name": "ipython",
- "version": 3
- },
- "file_extension": ".py",
- "mimetype": "text/x-python",
- "name": "python",
- "nbconvert_exporter": "python",
- "pygments_lexer": "ipython3",
- "version": "3.9.16"
- }
- },
- "nbformat": 4,
- "nbformat_minor": 4
+ "nbformat": 4,
+ "nbformat_minor": 4
}
diff --git a/docs/notebooks/11_Climatological_ESP_forecasting.ipynb b/docs/notebooks/11_Climatological_ESP_forecasting.ipynb
index c6611b3c..b2d59fb7 100644
--- a/docs/notebooks/11_Climatological_ESP_forecasting.ipynb
+++ b/docs/notebooks/11_Climatological_ESP_forecasting.ipynb
@@ -1,299 +1,299 @@
{
- "cells": [
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "# 11 - Climatological ESP forecasting"
- ]
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# 11 - Climatological ESP forecasting"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Extended Streamflow Prediction (ESP) forecasts from climatological time series\n",
+ "\n",
+ "This notebook shows how to perform a climatological Extended Streamflow Prediction (ESP) forecast, using historical weather as a proxy for future weather.\n",
+ "\n",
+ "The general idea is to initialize the state of the hydrological model to represent current conditions, but instead of using weather forecasts to predict future flows, we run the model with observed, historical weather series from past years. So for example if we have 30 years of weather observations, we get 30 different forecasts. The accuracy of this forecast ensemble can then be evaluated by different probabilistic metrics."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import datetime as dt\n",
+ "\n",
+ "from matplotlib import pyplot as plt\n",
+ "\n",
+ "from ravenpy.config import commands as rc\n",
+ "from ravenpy.config.emulators import GR4JCN\n",
+ "from ravenpy.utilities import forecasting\n",
+ "from ravenpy.utilities.testdata import get_file"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Run the model simulations\n",
+ "\n",
+ "Here we set model parameters somewhat arbitrarily, but you can set the parameters to the calibrated parameters as seen in the \"06_Raven_calibration\" notebook we previously encountered.\n",
+ "\n",
+ "We also need to choose the forecast issue date. Each forecast will start with the same day and month. For example, jun-06-1980 will compare the climatology using all jun-06's from the dataset. Finally, we can provide the forecast duration (in number of days) as well as the historical meteorological years we want to use to generate the ESP forecast. This allows selecting years that we want to include in the forecast. For example, perhaps we only want to generate a forecast using wet or dry years."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Get the selected watershed's time series. You can use your own time-series for your catchment by replacing\n",
+ "# this line with the name / path of your input file.\n",
+ "ts = get_file(\"raven-gr4j-cemaneige/Salmon-River-Near-Prince-George_meteo_daily.nc\")\n",
+ "\n",
+ "# This is the forecast start date, on which the forecasts will be launched.\n",
+ "start_date = dt.datetime(1980, 6, 1)\n",
+ "\n",
+ "# Provide the length of the forecast, in days:\n",
+ "forecast_duration = 100\n",
+ "\n",
+ "# Define HRU to build the hydrological model\n",
+ "hru = {}\n",
+ "hru = dict(\n",
+ " area=4250.6,\n",
+ " elevation=843.0,\n",
+ " latitude=54.4848,\n",
+ " longitude=-123.3659,\n",
+ " hru_type=\"land\",\n",
+ ")\n",
+ "\n",
+ "# Set alternative names for netCDF variables\n",
+ "alt_names = {\n",
+ " \"TEMP_MIN\": \"tmin\",\n",
+ " \"TEMP_MAX\": \"tmax\",\n",
+ " \"RAINFALL\": \"rain\",\n",
+ " \"SNOWFALL\": \"snow\",\n",
+ "}\n",
+ "\n",
+ "# Data types to extract from netCDF\n",
+ "data_type = [\"TEMP_MAX\", \"TEMP_MIN\", \"RAINFALL\", \"SNOWFALL\"]\n",
+ "data_kwds = {\n",
+ " \"ALL\": {\n",
+ " \"elevation\": hru[\n",
+ " \"elevation\"\n",
+ " ], # No need for lat/lon as they are included in the netcdf file already\n",
+ " }\n",
+ "}\n",
+ "# Model configuration\n",
+ "model_config = GR4JCN(\n",
+ " params=[0.529, -3.396, 407.29, 1.072, 16.9, 0.947],\n",
+ " Gauge=[\n",
+ " rc.Gauge.from_nc(\n",
+ " ts, data_type=data_type, alt_names=alt_names, data_kwds=data_kwds\n",
+ " )\n",
+ " ],\n",
+ " HRUs=[hru],\n",
+ " StartDate=start_date,\n",
+ " Duration=forecast_duration,\n",
+ " RunName=\"full\",\n",
+ ")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Issuing the ESP forecast\n",
+ "\n",
+ "Here we launch the code that will perform the ESP forecast. Depending on the number of years in the historical dataset and the forecast duration, it might take a while to return a forecast result."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Simulate the climatological ESP:\n",
+ "ESP_sims = forecasting.climatology_esp(\n",
+ " config=model_config,\n",
+ " years=[\n",
+ " 1982,\n",
+ " 1998,\n",
+ " 2003,\n",
+ " 2004,\n",
+ " ], # List of years to use in the forecast. Optional. Will use all years by default.\n",
+ ")\n",
+ "\n",
+ "# Show the results in an xarray dataset, ready to use:\n",
+ "ESP_sims.hydrograph"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "We can now inspect and graph the resulting climatological ESP:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "ESP_sims.hydrograph.q_sim[:, :, 0].plot.line(x=\"time\")\n",
+ "plt.title(\"GR4JCN climatological ESP for 1980-06-01\")\n",
+ "plt.xticks(rotation=90)\n",
+ "plt.grid(\"on\")\n",
+ "plt.xlabel(\"Time [days]\")\n",
+ "plt.ylabel(\"Streamflow $[m^3s^{-1}]$\")\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Compute the forecast scores\n",
+ "\n",
+ "There are different metric to evaluate the performance of forecasts. As an example, here we are computing the CRPS metric, using the [xskillscore](https://xskillscore.readthedocs.io/en/stable/) library included in PAVICS-Hydro."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import numpy as np\n",
+ "import xarray as xr\n",
+ "import xskillscore as xs\n",
+ "\n",
+ "# Align time axes to get the observed streamflow time series for the same time frame as the ESP forecast ensemble\n",
+ "q_obs, q_sims = xr.align(xr.open_dataset(ts).qobs, ESP_sims.hydrograph, join=\"inner\")\n",
+ "\n",
+ "# Adjust the streamflow to convert missing data from -1.2345 format to NaN. Set all negative values to NaN.\n",
+ "q_obs = q_obs.where(q_obs > 0, np.nan)\n",
+ "\n",
+ "# Compute the Continuous Ranked Probability Score using xskillscore\n",
+ "xs.crps_ensemble(q_obs, q_sims, dim=\"time\").q_sim.values[0]"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Performing a climatology ESP hindcast\n",
+ "In this section, we make the hindcasts for each initialization date that we desire. Here we will extract ESP forecasts for a given calendar date for the years in \"hindcast_years\" as hindcast dates. Each ESP hindcast uses all available data in the `ts` dataset, so in this case we will have 56/57 members for each hindcast initialization depending on the date that we start on, UNLESS we specify a list of years manually. The \"hindcasts\" dataset generated contains all of the flow data from the ESP hindcasts for the initialization dates. The `q_obs` dataset contains all q_obs in the timeseries: Climpred will sort it all out during its processing. Note that the format of these datasets is tailor-made to be used in climpred, and thus has specific dimension names.\n",
+ "\n",
+ "This is a slimmed down example of how we would run an ESP forecast over multiple years to assess the skill of such a forecast."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "hindcasts = forecasting.hindcast_climatology_esp(\n",
+ " config=model_config, # Note that the forecast duration is already set-up in the model_config above.\n",
+ " warm_up_duration=365, # number of days for the warm-up\n",
+ " years=[1985, 1986, 1987, 1988, 1989, 1990],\n",
+ " hindcast_years=[2001, 2002, 2003, 2004, 2005, 2006, 2007],\n",
+ ")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Evaluate the forecast using different metrics\n",
+ "Once we have the correctly formatted datasets, Make the hindcast object for climpred\n",
+ "\n",
+ "These three functions respectively compute the rank histogram, the CRPS and the reliability for the set of initialized dates (i.e. forecast issue dates, here 1 day per year at the same calendar day)."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Once we have the correctly formatted datasets, Make the hindcast object for climpred\n",
+ "\n",
+ "# We first need to get the observed streamflow:\n",
+ "q_obs = xr.open_dataset(ts)\n",
+ "\n",
+ "# However, our simulated streamflow is named \"q_sim\" and climpred requires the observation to be named the same thing\n",
+ "# so let's rename it. While we're at it, we need to make sure that the identifier is the same. In our observation\n",
+ "# dataset, it is called \"nstations\" but in our simulated streamflow it's called \"nbasins\". Here we standardize.\n",
+ "q_obs = q_obs.rename({\"qobs\": \"q_sim\", \"nstations\": \"nbasins\"})\n",
+ "\n",
+ "# Make the hindcasting object we can use to compute statistics and metrics\n",
+ "hindcast_object = forecasting.to_climpred_hindcast_ensemble(hindcasts, q_obs)\n",
+ "\n",
+ "\n",
+ "# This function is used to convert to binary to see if yes/no forecast is larger than observations\n",
+ "def pos(x):\n",
+ " return x > 0 # Check for binary outcome\n",
+ "\n",
+ "\n",
+ "# Rank histogram verification metric\n",
+ "rank_histo_verif = hindcast_object.verify(\n",
+ " metric=\"rank_histogram\",\n",
+ " comparison=\"m2o\",\n",
+ " dim=[\"member\", \"init\"],\n",
+ " alignment=\"same_inits\",\n",
+ ")\n",
+ "# CRPS verification metric\n",
+ "crps_verif = hindcast_object.verify(\n",
+ " metric=\"crps\",\n",
+ " comparison=\"m2o\",\n",
+ " dim=[\"member\", \"init\"],\n",
+ " alignment=\"same_inits\",\n",
+ ")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# We can explore and plot the CRPS as a function of lead-time, for example. Results are stored as a dataset and\n",
+ "# can thus be integrated into any simulation or processes.\n",
+ "plt.plot(crps_verif.q_sim)\n",
+ "plt.xlabel(\"Lead time [days]\")\n",
+ "plt.ylabel(\"CRPS $[m^3s^{-1}]$\")\n",
+ "plt.grid(\"on\")\n",
+ "plt.show()"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3 (ipykernel)",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.10.9"
+ }
},
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Extended Streamflow Prediction (ESP) forecasts from climatological time series\n",
- "\n",
- "This notebook shows how to perform a climatological Extended Streamflow Prediction (ESP) forecast, using historical weather as a proxy for future weather.\n",
- "\n",
- "The general idea is to initialize the state of the hydrological model to represent current conditions, but instead of using weather forecasts to predict future flows, we run the model with observed, historical weather series from past years. So for example if we have 30 years of weather observations, we get 30 different forecasts. The accuracy of this forecast ensemble can then be evaluated by different probabilistic metrics."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "import datetime as dt\n",
- "\n",
- "from matplotlib import pyplot as plt\n",
- "\n",
- "from ravenpy.config import commands as rc\n",
- "from ravenpy.config.emulators import GR4JCN\n",
- "from ravenpy.utilities import forecasting\n",
- "from ravenpy.utilities.testdata import get_file"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Run the model simulations\n",
- "\n",
- "Here we set model parameters somewhat arbitrarily, but you can set the parameters to the calibrated parameters as seen in the \"06_Raven_calibration\" notebook we previously encountered.\n",
- "\n",
- "We also need to choose the forecast issue date. Each forecast will start with the same day and month. For example, jun-06-1980 will compare the climatology using all jun-06's from the dataset. Finally, we can provide the forecast duration (in number of days) as well as the historical meteorological years we want to use to generate the ESP forecast. This allows selecting years that we want to include in the forecast. For example, perhaps we only want to generate a forecast using wet or dry years."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "# Get the selected watershed's time series. You can use your own time-series for your catchment by replacing\n",
- "# this line with the name / path of your input file.\n",
- "ts = get_file(\"raven-gr4j-cemaneige/Salmon-River-Near-Prince-George_meteo_daily.nc\")\n",
- "\n",
- "# This is the forecast start date, on which the forecasts will be launched.\n",
- "start_date = dt.datetime(1980, 6, 1)\n",
- "\n",
- "# Provide the length of the forecast, in days:\n",
- "forecast_duration = 100\n",
- "\n",
- "# Define HRU to build the hydrological model\n",
- "hru = {}\n",
- "hru = dict(\n",
- " area=4250.6,\n",
- " elevation=843.0,\n",
- " latitude=54.4848,\n",
- " longitude=-123.3659,\n",
- " hru_type=\"land\",\n",
- ")\n",
- "\n",
- "# Set alternative names for netCDF variables\n",
- "alt_names = {\n",
- " \"TEMP_MIN\": \"tmin\",\n",
- " \"TEMP_MAX\": \"tmax\",\n",
- " \"RAINFALL\": \"rain\",\n",
- " \"SNOWFALL\": \"snow\",\n",
- "}\n",
- "\n",
- "# Data types to extract from netCDF\n",
- "data_type = [\"TEMP_MAX\", \"TEMP_MIN\", \"RAINFALL\", \"SNOWFALL\"]\n",
- "data_kwds = {\n",
- " \"ALL\": {\n",
- " \"elevation\": hru[\n",
- " \"elevation\"\n",
- " ], # No need for lat/lon as they are included in the netcdf file already\n",
- " }\n",
- "}\n",
- "# Model configuration\n",
- "model_config = GR4JCN(\n",
- " params=[0.529, -3.396, 407.29, 1.072, 16.9, 0.947],\n",
- " Gauge=[\n",
- " rc.Gauge.from_nc(\n",
- " ts, data_type=data_type, alt_names=alt_names, data_kwds=data_kwds\n",
- " )\n",
- " ],\n",
- " HRUs=[hru],\n",
- " StartDate=start_date,\n",
- " Duration=forecast_duration,\n",
- " RunName=\"full\",\n",
- ")"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "### Issuing the ESP forecast\n",
- "\n",
- "Here we launch the code that will perform the ESP forecast. Depending on the number of years in the historical dataset and the forecast duration, it might take a while to return a forecast result."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "# Simulate the climatological ESP:\n",
- "ESP_sims = forecasting.climatology_esp(\n",
- " config=model_config,\n",
- " years=[\n",
- " 1982,\n",
- " 1998,\n",
- " 2003,\n",
- " 2004,\n",
- " ], # List of years to use in the forecast. Optional. Will use all years by default.\n",
- ")\n",
- "\n",
- "# Show the results in an xarray dataset, ready to use:\n",
- "ESP_sims.hydrograph"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "We can now inspect and graph the resulting climatological ESP:"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "ESP_sims.hydrograph.q_sim[:, :, 0].plot.line(x=\"time\")\n",
- "plt.title(\"GR4JCN climatological ESP for 1980-06-01\")\n",
- "plt.xticks(rotation=90)\n",
- "plt.grid(\"on\")\n",
- "plt.xlabel(\"Time [days]\")\n",
- "plt.ylabel(\"Streamflow $[m^3s^{-1}]$\")\n",
- "plt.show()"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Compute the forecast scores\n",
- "\n",
- "There are different metric to evaluate the performance of forecasts. As an example, here we are computing the CRPS metric, using the [xskillscore](https://xskillscore.readthedocs.io/en/stable/) library included in PAVICS-Hydro."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "import numpy as np\n",
- "import xarray as xr\n",
- "import xskillscore as xs\n",
- "\n",
- "# Align time axes to get the observed streamflow time series for the same time frame as the ESP forecast ensemble\n",
- "q_obs, q_sims = xr.align(xr.open_dataset(ts).qobs, ESP_sims.hydrograph, join=\"inner\")\n",
- "\n",
- "# Adjust the streamflow to convert missing data from -1.2345 format to NaN. Set all negative values to NaN.\n",
- "q_obs = q_obs.where(q_obs > 0, np.nan)\n",
- "\n",
- "# Compute the Continuous Ranked Probability Score using xskillscore\n",
- "xs.crps_ensemble(q_obs, q_sims, dim=\"time\").q_sim.values[0]"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Performing a climatology ESP hindcast\n",
- "In this section, we make the hindcasts for each initialization date that we desire. Here we will extract ESP forecasts for a given calendar date for the years in \"hindcast_years\" as hindcast dates. Each ESP hindcast uses all available data in the `ts` dataset, so in this case we will have 56/57 members for each hindcast initialization depending on the date that we start on, UNLESS we specify a list of years manually. The \"hindcasts\" dataset generated contains all of the flow data from the ESP hindcasts for the initialization dates. The `q_obs` dataset contains all q_obs in the timeseries: Climpred will sort it all out during its processing. Note that the format of these datasets is tailor-made to be used in climpred, and thus has specific dimension names.\n",
- "\n",
- "This is a slimmed down example of how we would run an ESP forecast over multiple years to assess the skill of such a forecast."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "hindcasts = forecasting.hindcast_climatology_esp(\n",
- " config=model_config, # Note that the forecast duration is already set-up in the model_config above.\n",
- " warm_up_duration=365, # number of days for the warm-up\n",
- " years=[1985, 1986, 1987, 1988, 1989, 1990],\n",
- " hindcast_years=[2001, 2002, 2003, 2004, 2005, 2006, 2007],\n",
- ")"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Evaluate the forecast using different metrics\n",
- "Once we have the correctly formatted datasets, Make the hindcast object for climpred\n",
- "\n",
- "These three functions respectively compute the rank histogram, the CRPS and the reliability for the set of initialized dates (i.e. forecast issue dates, here 1 day per year at the same calendar day)."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "# Once we have the correctly formatted datasets, Make the hindcast object for climpred\n",
- "\n",
- "# We first need to get the observed streamflow:\n",
- "q_obs = xr.open_dataset(ts)\n",
- "\n",
- "# However, our simulated streamflow is named \"q_sim\" and climpred requires the observation to be named the same thing\n",
- "# so let's rename it. While we're at it, we need to make sure that the identifier is the same. In our observation\n",
- "# dataset, it is called \"nstations\" but in our simulated streamflow it's called \"nbasins\". Here we standardize.\n",
- "q_obs = q_obs.rename({\"qobs\": \"q_sim\", \"nstations\": \"nbasins\"})\n",
- "\n",
- "# Make the hindcasting object we can use to compute statistics and metrics\n",
- "hindcast_object = forecasting.to_climpred_hindcast_ensemble(hindcasts, q_obs)\n",
- "\n",
- "\n",
- "# This function is used to convert to binary to see if yes/no forecast is larger than observations\n",
- "def pos(x):\n",
- " return x > 0 # Check for binary outcome\n",
- "\n",
- "\n",
- "# Rank histogram verification metric\n",
- "rank_histo_verif = hindcast_object.verify(\n",
- " metric=\"rank_histogram\",\n",
- " comparison=\"m2o\",\n",
- " dim=[\"member\", \"init\"],\n",
- " alignment=\"same_inits\",\n",
- ")\n",
- "# CRPS verification metric\n",
- "crps_verif = hindcast_object.verify(\n",
- " metric=\"crps\",\n",
- " comparison=\"m2o\",\n",
- " dim=[\"member\", \"init\"],\n",
- " alignment=\"same_inits\",\n",
- ")"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "# We can explore and plot the CRPS as a function of lead-time, for example. Results are stored as a dataset and\n",
- "# can thus be integrated into any simulation or processes.\n",
- "plt.plot(crps_verif.q_sim)\n",
- "plt.xlabel(\"Lead time [days]\")\n",
- "plt.ylabel(\"CRPS $[m^3s^{-1}]$\")\n",
- "plt.grid(\"on\")\n",
- "plt.show()"
- ]
- }
- ],
- "metadata": {
- "kernelspec": {
- "display_name": "Python 3 (ipykernel)",
- "language": "python",
- "name": "python3"
- },
- "language_info": {
- "codemirror_mode": {
- "name": "ipython",
- "version": 3
- },
- "file_extension": ".py",
- "mimetype": "text/x-python",
- "name": "python",
- "nbconvert_exporter": "python",
- "pygments_lexer": "ipython3",
- "version": "3.10.9"
- }
- },
- "nbformat": 4,
- "nbformat_minor": 4
+ "nbformat": 4,
+ "nbformat_minor": 4
}
diff --git a/docs/notebooks/12_Performing_hindcasting_experiments.ipynb b/docs/notebooks/12_Performing_hindcasting_experiments.ipynb
index 970d8598..960c001e 100644
--- a/docs/notebooks/12_Performing_hindcasting_experiments.ipynb
+++ b/docs/notebooks/12_Performing_hindcasting_experiments.ipynb
@@ -1,327 +1,327 @@
{
- "cells": [
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "# Hindcasting with CaSPAr-Archived ECCC forecasts\n",
- "\n",
- "This notebook shows how to perform a streamflow hindcast, using CaSPar archived weather forecasts. It generates the hindcasts and plots them.\n",
- "\n",
- "CaSPAr (Canadian Surface Prediction Archive) is an archive of historical ECCC forecasts developed by Juliane Mai at the University of Waterloo, Canada. More details on CaSPAr can be found here https://caspar-data.ca/.\n",
- "\n",
- "\n",
- "Mai, J., Kornelsen, K.C., Tolson, B.A., Fortin, V., Gasset, N., Bouhemhem, D., Schäfer, D., Leahy, M., Anctil, F. and Coulibaly, P., 2020. The Canadian Surface Prediction Archive (CaSPAr): A Platform to Enhance Environmental Modeling in Canada and Globally. Bulletin of the American Meteorological Society, 101(3), pp.E341-E356.\n"
- ]
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Hindcasting with CaSPAr-Archived ECCC forecasts\n",
+ "\n",
+ "This notebook shows how to perform a streamflow hindcast, using CaSPar archived weather forecasts. It generates the hindcasts and plots them.\n",
+ "\n",
+ "CaSPAr (Canadian Surface Prediction Archive) is an archive of historical ECCC forecasts developed by Juliane Mai at the University of Waterloo, Canada. More details on CaSPAr can be found here https://caspar-data.ca/.\n",
+ "\n",
+ "\n",
+ "Mai, J., Kornelsen, K.C., Tolson, B.A., Fortin, V., Gasset, N., Bouhemhem, D., Schäfer, D., Leahy, M., Anctil, F. and Coulibaly, P., 2020. The Canadian Surface Prediction Archive (CaSPAr): A Platform to Enhance Environmental Modeling in Canada and Globally. Bulletin of the American Meteorological Society, 101(3), pp.E341-E356.\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# This entire section is cookie-cutter template to import required packages and prepare the temporary writing space.\n",
+ "import datetime as dt\n",
+ "import tempfile\n",
+ "from pathlib import Path\n",
+ "\n",
+ "import xarray as xr\n",
+ "from clisops.core import average, subset\n",
+ "\n",
+ "from ravenpy import Emulator, RavenWarning\n",
+ "from ravenpy.config import commands as rc\n",
+ "from ravenpy.config.emulators import GR4JCN\n",
+ "from ravenpy.extractors.forecasts import get_CASPAR_dataset\n",
+ "from ravenpy.utilities import forecasting\n",
+ "from ravenpy.utilities.testdata import get_file\n",
+ "\n",
+ "tmp = Path(tempfile.mkdtemp())"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Run the model simulations\n",
+ "\n",
+ "Here we set model parameters somewhat arbitrarily, but you can set the parameters to the calibrated parameters as seen in the \"06_Raven_calibration\" notebook we previously encountered. We can then specify the start date for the hindcast ESP simulations and run the simulations.This means we need to choose the forecast (hindcast) date. Available data include May 2017 onwards."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "scrolled": false
+ },
+ "outputs": [],
+ "source": [
+ "# Date of the hindcast\n",
+ "hdate = dt.datetime(2018, 6, 1)\n",
+ "\n",
+ "# Get the Forecast data from GEPS via CASPAR\n",
+ "ts_hindcast, _ = get_CASPAR_dataset(\"GEPS\", hdate)\n",
+ "\n",
+ "# Get basin contour\n",
+ "basin_contour = get_file(\"notebook_inputs/salmon_river.geojson\")\n",
+ "\n",
+ "# Subset the data for the region of interest and take the mean to get a single vector\n",
+ "with xr.set_options(keep_attrs=True):\n",
+ " ts_subset = subset.subset_shape(ts_hindcast, basin_contour).mean(\n",
+ " dim=(\"rlat\", \"rlon\")\n",
+ " )\n",
+ "ts_subset = ts_subset.resample(time=\"6H\").nearest(\n",
+ " tolerance=\"1H\"\n",
+ ") # To make the timesteps identical accross the entire duration"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# See how many members we have available\n",
+ "len(ts_subset.members)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Now that we have the correct weather forecasts, we can setup the hydrological model for a warm-up run:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Prepare a RAVEN model run using historical data, GR4JCN in this case.\n",
+ "# This is a dummy run to get initial states. In a real forecast situation,\n",
+ "# this run would end on the day before the forecast, but process is the same.\n",
+ "\n",
+ "# Here we need a file of observation data to run a simulation to generate initial conditions for our forecast.\n",
+ "# ts = str(\n",
+ "# get_file(\"raven-gr4j-cemaneige/Salmon-River-Near-Prince-George_meteo_daily.nc\")\n",
+ "# )\n",
+ "\n",
+ "# TODO: We will use ERA5 data for Salmon River because it covers the correct period.\n",
+ "ts = get_file(\"notebook_inputs/ERA5_weather_data_Salmon.nc\")\n",
+ "\n",
+ "# This is the model start date, on which the simulation will be launched for a certain duration\n",
+ "# to set up the initial states. We will then save the final states as a launching point for the\n",
+ "# forecasts.\n",
+ "\n",
+ "start_date = dt.datetime(2000, 1, 1)\n",
+ "end_date = dt.datetime(2018, 6, 2)\n",
+ "\n",
+ "# Define HRU to build the hydrological model\n",
+ "hru = dict(\n",
+ " area=4250.6,\n",
+ " elevation=843.0,\n",
+ " latitude=54.4848,\n",
+ " longitude=-123.3659,\n",
+ " hru_type=\"land\",\n",
+ ")\n",
+ "\n",
+ "# Set alternative names for netCDF variables\n",
+ "alt_names = {\n",
+ " \"TEMP_MIN\": \"tmin\",\n",
+ " \"TEMP_MAX\": \"tmax\",\n",
+ " \"PRECIP\": \"pr\",\n",
+ "}\n",
+ "\n",
+ "# Data types to extract from netCDF\n",
+ "data_type = [\"TEMP_MAX\", \"TEMP_MIN\", \"PRECIP\"]\n",
+ "data_kwds = {\n",
+ " \"ALL\": {\n",
+ " \"elevation\": hru[\"elevation\"],\n",
+ " \"Latitude\": hru[\"latitude\"],\n",
+ " \"Longitude\": hru[\"longitude\"],\n",
+ " },\n",
+ "}\n",
+ "# Model configuration\n",
+ "model_config_warmup = GR4JCN(\n",
+ " params=[0.529, -3.396, 407.29, 1.072, 16.9, 0.947],\n",
+ " Gauge=[\n",
+ " rc.Gauge.from_nc(\n",
+ " ts, data_type=data_type, alt_names=alt_names, data_kwds=data_kwds\n",
+ " )\n",
+ " ],\n",
+ " HRUs=[hru],\n",
+ " StartDate=start_date,\n",
+ " EndDate=end_date,\n",
+ " RunName=\"NB12_warmup_run\",\n",
+ ")\n",
+ "\n",
+ "# Run the model and get the outputs.\n",
+ "out1 = Emulator(config=model_config_warmup).run()\n",
+ "\n",
+ "\n",
+ "# Extract the path to the final states file that will be used as the next initial states\n",
+ "hotstart = out1.files[\"solution\"]"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "We now have the initial states ready for the next step, which is to launch the forecasts in hindcasting mode:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Explore the forecast data to see which variables we have:\n",
+ "display(ts_subset)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "scrolled": false
+ },
+ "outputs": [],
+ "source": [
+ "# Configure and run a new model by setting the initial states (equal to the previous run's final states) and prepare\n",
+ "# the configuration for the forecasts (including forecast start date, which should be equal to the final simulation\n",
+ "# date + 1, as well as the forecast duration.)\n",
+ "\n",
+ "# We need to write the hindcast data as a file for Raven to be able to access it.\n",
+ "fname = tmp / \"hindcast.nc\"\n",
+ "ts_subset.to_netcdf(fname)\n",
+ "\n",
+ "# We need to adjust the data_type and alt_names according to the data in the forecast:\n",
+ "# Set alternative names for netCDF variables\n",
+ "alt_names = {\n",
+ " \"TEMP_AVE\": \"tas\",\n",
+ " \"PRECIP\": \"pr\",\n",
+ "}\n",
+ "\n",
+ "# Data types to extract from netCDF\n",
+ "data_type = [\"TEMP_AVE\", \"PRECIP\"]\n",
+ "\n",
+ "\n",
+ "# We will need to reuse this for GR4J. Update according to your needs. For example, here we will also pass\n",
+ "# the catchment latitude and longitude as our CaSPAr data has been averaged at the catchment scale.\n",
+ "# We also need to tell the model to deaccumulate the precipitation and shift it in time by 6 hours for our\n",
+ "# catchment (UTC timezones):\n",
+ "data_kwds = {\n",
+ " \"ALL\": {\n",
+ " \"elevation\": hru[\"elevation\"],\n",
+ " \"Latitude\": hru[\"latitude\"],\n",
+ " \"Longitude\": hru[\"longitude\"],\n",
+ " },\n",
+ " \"PRECIP\": {\n",
+ " \"Deaccumulate\": True,\n",
+ " \"TimeShift\": -0.25,\n",
+ " \"LinearTransform\": {\n",
+ " \"scale\": 1000.0\n",
+ " }, # Since we are deaccumulating, we need to manually specify scale.\n",
+ " }, # Converting meters to mm (multiply by 1000).\n",
+ " \"TEMP_AVE\": {\n",
+ " \"TimeShift\": -0.25,\n",
+ " },\n",
+ "}\n",
+ "\n",
+ "\n",
+ "# Model configuration for forecasting, including correct start date and forecast duration\n",
+ "model_config_fcst = GR4JCN(\n",
+ " params=[0.529, -3.396, 407.29, 1.072, 16.9, 0.947],\n",
+ " Gauge=[\n",
+ " rc.Gauge.from_nc(\n",
+ " fname, data_type=data_type, alt_names=alt_names, data_kwds=data_kwds\n",
+ " )\n",
+ " ],\n",
+ " HRUs=[hru],\n",
+ " StartDate=end_date + dt.timedelta(days=1),\n",
+ " Duration=7,\n",
+ " RunName=\"NB12_forecast_run\",\n",
+ ")\n",
+ "\n",
+ "# Update the initial states\n",
+ "model_config_fcst = model_config_fcst.set_solution(hotstart)\n",
+ "\n",
+ "# Generate the hindcast by providing all necessary information to generate virtual stations representing\n",
+ "# the forecast members\n",
+ "hindcast = forecasting.hindcast_from_meteo_forecast(\n",
+ " model_config_fcst,\n",
+ " forecast=fname,\n",
+ " # We also need to provide the necessary information to create gauges inside the forecasting model:\n",
+ " data_kwds=data_kwds,\n",
+ " data_type=data_type,\n",
+ " alt_names=alt_names,\n",
+ ")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Explore the hindcast data:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "hindcast.hydrograph"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "\n",
+ "And, for visual representation of the forecasts:\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import matplotlib.pyplot as plt\n",
+ "\n",
+ "# Simulate an observed streamflow timeseries: Here we take a member from the ensemble, but you should use your own\n",
+ "# observed timeseries:\n",
+ "qq = hindcast.hydrograph.q_sim[0, :, 0]\n",
+ "\n",
+ "hindcast.hydrograph.q_sim[:, :, 0].plot.line(\"b\", x=\"time\", add_legend=False)\n",
+ "hindcast.hydrograph.q_sim[1, :, 0].plot.line(\"b\", x=\"time\", label=\"forecasts\")\n",
+ "qq.plot.line(\"r\", x=\"time\", label=\"observations\")\n",
+ "plt.legend(loc=\"upper left\")\n",
+ "plt.show()"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3 (ipykernel)",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.10.9"
+ }
},
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "# This entire section is cookie-cutter template to import required packages and prepare the temporary writing space.\n",
- "import datetime as dt\n",
- "import tempfile\n",
- "from pathlib import Path\n",
- "\n",
- "import xarray as xr\n",
- "from clisops.core import average, subset\n",
- "\n",
- "from ravenpy import Emulator, RavenWarning\n",
- "from ravenpy.config import commands as rc\n",
- "from ravenpy.config.emulators import GR4JCN\n",
- "from ravenpy.extractors.forecasts import get_CASPAR_dataset\n",
- "from ravenpy.utilities import forecasting\n",
- "from ravenpy.utilities.testdata import get_file\n",
- "\n",
- "tmp = Path(tempfile.mkdtemp())"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Run the model simulations\n",
- "\n",
- "Here we set model parameters somewhat arbitrarily, but you can set the parameters to the calibrated parameters as seen in the \"06_Raven_calibration\" notebook we previously encountered. We can then specify the start date for the hindcast ESP simulations and run the simulations.This means we need to choose the forecast (hindcast) date. Available data include May 2017 onwards."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "scrolled": false
- },
- "outputs": [],
- "source": [
- "# Date of the hindcast\n",
- "hdate = dt.datetime(2018, 6, 1)\n",
- "\n",
- "# Get the Forecast data from GEPS via CASPAR\n",
- "ts_hindcast, _ = get_CASPAR_dataset(\"GEPS\", hdate)\n",
- "\n",
- "# Get basin contour\n",
- "basin_contour = get_file(\"notebook_inputs/salmon_river.geojson\")\n",
- "\n",
- "# Subset the data for the region of interest and take the mean to get a single vector\n",
- "with xr.set_options(keep_attrs=True):\n",
- " ts_subset = subset.subset_shape(ts_hindcast, basin_contour).mean(\n",
- " dim=(\"rlat\", \"rlon\")\n",
- " )\n",
- "ts_subset = ts_subset.resample(time=\"6H\").nearest(\n",
- " tolerance=\"1H\"\n",
- ") # To make the timesteps identical accross the entire duration"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "# See how many members we have available\n",
- "len(ts_subset.members)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Now that we have the correct weather forecasts, we can setup the hydrological model for a warm-up run:"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "# Prepare a RAVEN model run using historical data, GR4JCN in this case.\n",
- "# This is a dummy run to get initial states. In a real forecast situation,\n",
- "# this run would end on the day before the forecast, but process is the same.\n",
- "\n",
- "# Here we need a file of observation data to run a simulation to generate initial conditions for our forecast.\n",
- "# ts = str(\n",
- "# get_file(\"raven-gr4j-cemaneige/Salmon-River-Near-Prince-George_meteo_daily.nc\")\n",
- "# )\n",
- "\n",
- "# TODO: We will use ERA5 data for Salmon River because it covers the correct period.\n",
- "ts = get_file(\"notebook_inputs/ERA5_weather_data_Salmon.nc\")\n",
- "\n",
- "# This is the model start date, on which the simulation will be launched for a certain duration\n",
- "# to set up the initial states. We will then save the final states as a launching point for the\n",
- "# forecasts.\n",
- "\n",
- "start_date = dt.datetime(2000, 1, 1)\n",
- "end_date = dt.datetime(2018, 6, 2)\n",
- "\n",
- "# Define HRU to build the hydrological model\n",
- "hru = dict(\n",
- " area=4250.6,\n",
- " elevation=843.0,\n",
- " latitude=54.4848,\n",
- " longitude=-123.3659,\n",
- " hru_type=\"land\",\n",
- ")\n",
- "\n",
- "# Set alternative names for netCDF variables\n",
- "alt_names = {\n",
- " \"TEMP_MIN\": \"tmin\",\n",
- " \"TEMP_MAX\": \"tmax\",\n",
- " \"PRECIP\": \"pr\",\n",
- "}\n",
- "\n",
- "# Data types to extract from netCDF\n",
- "data_type = [\"TEMP_MAX\", \"TEMP_MIN\", \"PRECIP\"]\n",
- "data_kwds = {\n",
- " \"ALL\": {\n",
- " \"elevation\": hru[\"elevation\"],\n",
- " \"Latitude\": hru[\"latitude\"],\n",
- " \"Longitude\": hru[\"longitude\"],\n",
- " },\n",
- "}\n",
- "# Model configuration\n",
- "model_config_warmup = GR4JCN(\n",
- " params=[0.529, -3.396, 407.29, 1.072, 16.9, 0.947],\n",
- " Gauge=[\n",
- " rc.Gauge.from_nc(\n",
- " ts, data_type=data_type, alt_names=alt_names, data_kwds=data_kwds\n",
- " )\n",
- " ],\n",
- " HRUs=[hru],\n",
- " StartDate=start_date,\n",
- " EndDate=end_date,\n",
- " RunName=\"NB12_warmup_run\",\n",
- ")\n",
- "\n",
- "# Run the model and get the outputs.\n",
- "out1 = Emulator(config=model_config_warmup).run()\n",
- "\n",
- "\n",
- "# Extract the path to the final states file that will be used as the next initial states\n",
- "hotstart = out1.files[\"solution\"]"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "We now have the initial states ready for the next step, which is to launch the forecasts in hindcasting mode:"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "# Explore the forecast data to see which variables we have:\n",
- "display(ts_subset)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "scrolled": false
- },
- "outputs": [],
- "source": [
- "# Configure and run a new model by setting the initial states (equal to the previous run's final states) and prepare\n",
- "# the configuration for the forecasts (including forecast start date, which should be equal to the final simulation\n",
- "# date + 1, as well as the forecast duration.)\n",
- "\n",
- "# We need to write the hindcast data as a file for Raven to be able to access it.\n",
- "fname = tmp / \"hindcast.nc\"\n",
- "ts_subset.to_netcdf(fname)\n",
- "\n",
- "# We need to adjust the data_type and alt_names according to the data in the forecast:\n",
- "# Set alternative names for netCDF variables\n",
- "alt_names = {\n",
- " \"TEMP_AVE\": \"tas\",\n",
- " \"PRECIP\": \"pr\",\n",
- "}\n",
- "\n",
- "# Data types to extract from netCDF\n",
- "data_type = [\"TEMP_AVE\", \"PRECIP\"]\n",
- "\n",
- "\n",
- "# We will need to reuse this for GR4J. Update according to your needs. For example, here we will also pass\n",
- "# the catchment latitude and longitude as our CaSPAr data has been averaged at the catchment scale.\n",
- "# We also need to tell the model to deaccumulate the precipitation and shift it in time by 6 hours for our\n",
- "# catchment (UTC timezones):\n",
- "data_kwds = {\n",
- " \"ALL\": {\n",
- " \"elevation\": hru[\"elevation\"],\n",
- " \"Latitude\": hru[\"latitude\"],\n",
- " \"Longitude\": hru[\"longitude\"],\n",
- " },\n",
- " \"PRECIP\": {\n",
- " \"Deaccumulate\": True,\n",
- " \"TimeShift\": -0.25,\n",
- " \"LinearTransform\": {\n",
- " \"scale\": 1000.0\n",
- " }, # Since we are deaccumulating, we need to manually specify scale.\n",
- " }, # Converting meters to mm (multiply by 1000).\n",
- " \"TEMP_AVE\": {\n",
- " \"TimeShift\": -0.25,\n",
- " },\n",
- "}\n",
- "\n",
- "\n",
- "# Model configuration for forecasting, including correct start date and forecast duration\n",
- "model_config_fcst = GR4JCN(\n",
- " params=[0.529, -3.396, 407.29, 1.072, 16.9, 0.947],\n",
- " Gauge=[\n",
- " rc.Gauge.from_nc(\n",
- " fname, data_type=data_type, alt_names=alt_names, data_kwds=data_kwds\n",
- " )\n",
- " ],\n",
- " HRUs=[hru],\n",
- " StartDate=end_date + dt.timedelta(days=1),\n",
- " Duration=7,\n",
- " RunName=\"NB12_forecast_run\",\n",
- ")\n",
- "\n",
- "# Update the initial states\n",
- "model_config_fcst = model_config_fcst.set_solution(hotstart)\n",
- "\n",
- "# Generate the hindcast by providing all necessary information to generate virtual stations representing\n",
- "# the forecast members\n",
- "hindcast = forecasting.hindcast_from_meteo_forecast(\n",
- " model_config_fcst,\n",
- " forecast=fname,\n",
- " # We also need to provide the necessary information to create gauges inside the forecasting model:\n",
- " data_kwds=data_kwds,\n",
- " data_type=data_type,\n",
- " alt_names=alt_names,\n",
- ")"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Explore the hindcast data:"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "hindcast.hydrograph"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "\n",
- "And, for visual representation of the forecasts:\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "import matplotlib.pyplot as plt\n",
- "\n",
- "# Simulate an observed streamflow timeseries: Here we take a member from the ensemble, but you should use your own\n",
- "# observed timeseries:\n",
- "qq = hindcast.hydrograph.q_sim[0, :, 0]\n",
- "\n",
- "hindcast.hydrograph.q_sim[:, :, 0].plot.line(\"b\", x=\"time\", add_legend=False)\n",
- "hindcast.hydrograph.q_sim[1, :, 0].plot.line(\"b\", x=\"time\", label=\"forecasts\")\n",
- "qq.plot.line(\"r\", x=\"time\", label=\"observations\")\n",
- "plt.legend(loc=\"upper left\")\n",
- "plt.show()"
- ]
- }
- ],
- "metadata": {
- "kernelspec": {
- "display_name": "Python 3 (ipykernel)",
- "language": "python",
- "name": "python3"
- },
- "language_info": {
- "codemirror_mode": {
- "name": "ipython",
- "version": 3
- },
- "file_extension": ".py",
- "mimetype": "text/x-python",
- "name": "python",
- "nbconvert_exporter": "python",
- "pygments_lexer": "ipython3",
- "version": "3.10.9"
- }
- },
- "nbformat": 4,
- "nbformat_minor": 4
+ "nbformat": 4,
+ "nbformat_minor": 4
}
diff --git a/docs/notebooks/Assess_probabilistic_flood_risk.ipynb b/docs/notebooks/Assess_probabilistic_flood_risk.ipynb
index 0db93331..e13fc0f1 100644
--- a/docs/notebooks/Assess_probabilistic_flood_risk.ipynb
+++ b/docs/notebooks/Assess_probabilistic_flood_risk.ipynb
@@ -1,1331 +1,1331 @@
{
- "cells": [
- {
- "cell_type": "markdown",
- "id": "chinese-dealer",
- "metadata": {},
- "source": [
- "# Probabilistic flood risk assessment\n",
- "\n",
- "In this notebook, we combine the forecasting abilities and the time series analysis capabilities in a single seamless process to estimate the flood risk of a probabilistic forecast. As an example, we first perform a frequency analysis on an observed time series, then estimate the streamflow associated to a 2-year return period. We then perform a climatological ESP forecast (to ensure repeatability, but a realtime forecast would work too!) and estimate the probability of flooding (exceeding the threshold) given the ensemble of members in the probabilistic forecast."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 1,
- "id": "79d923bd-4ce5-41f1-a441-f439b23fc388",
- "metadata": {},
- "outputs": [],
- "source": [
- "import warnings\n",
- "\n",
- "from numba.core.errors import NumbaDeprecationWarning\n",
- "\n",
- "warnings.simplefilter(\"ignore\", category=NumbaDeprecationWarning)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 2,
- "id": "descending-bedroom",
- "metadata": {
- "scrolled": true
- },
- "outputs": [],
- "source": [
- "%matplotlib inline\n",
- "\n",
- "import datetime as dt\n",
- "\n",
- "import xclim\n",
- "from matplotlib import pyplot as plt\n",
- "\n",
- "from ravenpy.utilities.testdata import get_file, open_dataset"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "genuine-dodge",
- "metadata": {},
- "source": [
- "Perform the time series analysis on observed data for the catchment using the frequency analysis WPS capabilities."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 3,
- "id": "quiet-queens",
- "metadata": {},
- "outputs": [
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "id": "chinese-dealer",
+ "metadata": {},
+ "source": [
+ "# Probabilistic flood risk assessment\n",
+ "\n",
+ "In this notebook, we combine the forecasting abilities and the time series analysis capabilities in a single seamless process to estimate the flood risk of a probabilistic forecast. As an example, we first perform a frequency analysis on an observed time series, then estimate the streamflow associated to a 2-year return period. We then perform a climatological ESP forecast (to ensure repeatability, but a realtime forecast would work too!) and estimate the probability of flooding (exceeding the threshold) given the ensemble of members in the probabilistic forecast."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "id": "79d923bd-4ce5-41f1-a441-f439b23fc388",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import warnings\n",
+ "\n",
+ "from numba.core.errors import NumbaDeprecationWarning\n",
+ "\n",
+ "warnings.simplefilter(\"ignore\", category=NumbaDeprecationWarning)"
+ ]
+ },
{
- "data": {
- "text/html": [
- "
"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "# Now compute the flood risk given the probabilistic forecast and the threshold associated to the 2-year return\n",
+ "# period.\n",
+ "\n",
+ "threshold = out.sel(return_period=2).values\n",
+ "\n",
+ "# Run the flood forecast risk tool to extract the probability of exceedance in netcdf format and xarray Dataset format\n",
+ "flood_risk_data = compute_forecast_flood_risk(\n",
+ " forecast=ESP_sims.hydrograph.q_sim,\n",
+ " flood_level=threshold,\n",
+ ")\n",
+ "\n",
+ "# Extract the data and plot\n",
+ "fig, ax = plt.subplots(1)\n",
+ "l = flood_risk_data.exceedance_probability.plot()\n",
+ "ax.set_ylabel(\"Flood risk\")"
]
- },
- "execution_count": 8,
- "metadata": {},
- "output_type": "execute_result"
},
{
- "data": {
- "image/png": "iVBORw0KGgoAAAANSUhEUgAAAksAAAHrCAYAAADfSdlxAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABErElEQVR4nO3deXQUZd728avJzpKwJ0QDhEV2RFARlO1RQRBRQcEBEVyAiMoE5AFckEUFZRQBER0dFGUQcAFHB0RQFkV2ZRMiKrtCgKAkbIYsv/cP3vRDTCgS6KTTne/nnJwzqb6r6r465fRFdXW1y8xMAAAAyFUJb08AAACgKKMsAQAAOKAsAQAAOKAsAQAAOKAsAQAAOKAsAQAAOKAsAQAAOKAsAQAAOKAsAQAAOKAsAYVk9OjRcrlcSkpKKtT9tm3bVm3bti3UfcLzZsyYIZfLpQ0bNnhke2lpaRozZoyqV6+ukJAQ1a1bV6+++mquY3ft2qWuXbuqbNmyKl26tG6++WZ9//33Oca99957uueee1SnTh2VKFFC1atXz/N8svJl/Zz738m2bds0cOBAtWjRQqVKlZLL5dLy5ctz3U7ZsmXd23j00UfzvH/ASaC3JwCgYE2bNs3bU0ARNHDgQM2cOVPPPvusrrnmGn3xxRf6+9//ruPHj+vJJ590jzty5IhatWqlcuXK6e2331ZoaKjGjx+vtm3bav369apTp4577MyZM5WYmKhrr71WmZmZSktLy/e85s2bpypVqqhs2bLuZRs2bNAnn3yiq666SjfeeKM+++yz867/5ZdfKj09XS1atMj3voHzoSwBfq5+/frengKKmG3btmn69Ol6/vnn9b//+7+Szp6BPHr0qJ577jnFxcWpfPnykqR//OMfOnLkiFatWqVq1apJkm644QbVrFlTzzzzjObOneve7hdffKESJc6+YdG5c2f98MMP+Z7bVVddleOMVO/evdWnTx9J0kcffeRYlq6++up87xO4EN6GAwrZ/v371bVrV4WHhysiIkL33nuvjhw5km3M3Llz1b59e1WpUkVhYWGqV6+eRowYoZMnT2Ybt2vXLt1zzz2Kjo5WSEiIIiMjdeONN2rTpk3uMX99G27Pnj1yuVx66aWXNHHiRMXGxqp06dJq0aKF1qxZk68sy5cvl8vl0uzZs/XUU08pOjpa4eHhuummm7Rjx45sY5csWaLbb79dl19+uUJDQ1WrVi0NGDAgx9uSWW9XbtmyRXfffbciIiJUvnx5DRkyROnp6dqxY4duueUWlSlTRtWrV9eECRNyzCslJUVDhw5VbGysgoODddlllyk+Pj7H81fQ8vL3cblcGj16dI51q1evrr59++ZY/scff+j+++9X+fLlVapUKd12223atWtXvub1ySefyMx0//33Z1t+//336/Tp01q0aJF72fz58/U///M/7qIkSeHh4eratas+++wzpaenu5dnFSVPK6jtAnnFmSWgkN15553q3r274uLitG3bNo0cOVLbt2/X2rVrFRQUJEn6+eef1alTJ8XHx6tUqVL68ccf9eKLL2rdunVaunSpe1udOnVSRkaGJkyYoKpVqyopKUmrVq3SsWPHLjiP1157TXXr1tWkSZMkSSNHjlSnTp20e/duRURE5CvTk08+qeuvv17/+te/lJKSouHDh+u2225TQkKCAgICJEk7d+5UixYt9NBDDykiIkJ79uzRxIkTdcMNN2jr1q3u7Fm6d++ue++9VwMGDNCSJUs0YcIEpaWl6csvv9TAgQM1dOhQvf/++xo+fLhq1aqlrl27SpJOnTqlNm3a6Ndff9WTTz6pxo0ba9u2bXrmmWe0detWffnll3K5XOfNkpmZqczMzAtmdrlc7mzncyl/n/N58MEHdfPNN+v999/X/v379fTTT6tt27basmVLtreunPzwww+qVKmSoqKisi1v3Lix+3FJOn36tHbu3Kk777wzxzYaN26s06dPa9euXbriiisuOg/gEwxAoRg1apRJssGDB2dbPmvWLJNk//73v3NdLzMz09LS0mzFihUmyTZv3mxmZklJSSbJJk2a5LjfNm3aWJs2bdy/79692yRZo0aNLD093b183bp1Jslmz56d50zLli0zSdapU6dsyz/44AOTZKtXr3bMtHfvXpNk//nPf9yPZT1PL7/8crZ1mjRpYpJs3rx57mVpaWlWqVIl69q1q3vZ+PHjrUSJErZ+/fps63/00UcmyRYuXOiYKWv/F/qpVq2a43by+veRZKNGjcqxvFq1atanTx/37++8845JsjvvvDPbuG+//dYk2XPPPee4n3PdfPPNVqdOnVwfCw4Otv79+5uZ2W+//WaSbPz48TnGvf/++ybJVq1alet2br311gs+R+fKyrd7927HcR9++KFJsmXLljmOk2SPPPJInvcPOOHcJlDIevXqle337t27KzAwUMuWLXMv27Vrl3r27KmoqCgFBAQoKChIbdq0kSQlJCRIksqXL6+aNWvqH//4hyZOnKiNGzfm6YxIlltvvTXbmZGsswp79+7Nd6YuXbpk+z23bR0+fFhxcXGKiYlRYGCggoKC3G/tZGU6V+fOnbP9Xq9ePblcLnXs2NG9LDAwULVq1cq2n//+979q2LChmjRpovT0dPdPhw4dHD9FlaV///5av379BX+crpuRLv3vcz5/PX5atmypatWqZTt+8sLp7NpfH8vPWMAf8TYcUMj++tZHYGCgKlSooKNHj0qSTpw4oVatWik0NFTPPfecrrjiCpUsWdJ9rdPp06clnX2R+uqrrzR27FhNmDBBjz/+uMqXL69evXrp+eefV5kyZRznUaFChWy/h4SESJJ7+/lxoW1lZmaqffv2OnDggEaOHKlGjRqpVKlSyszM1HXXXZfrPrMuMM4SHByskiVLKjQ0NMfylJQU9++HDh3SL7/8kuNtvSwXunVDVFSUKleu7DhGunBJuNS/j9P8cluWdfzkRYUKFbJdN5Xl5MmTOnPmjPu5L1eunFwuV67b/v333yXl/DsB/oiyBBSyxMREXXbZZe7f09PTdfToUXfhWLp0qQ4cOKDly5e7zyZJyvU6l2rVqmn69OmSpJ9++kkffPCBRo8erTNnzuiNN94o2CD58MMPP2jz5s2aMWOG+1NNkvTLL794fF8VK1ZUWFiY3n777fM+7mTs2LEaM2bMBfdTrVo17dmz54JjLvT3CQkJUWpqao51z1d+EhMTc11Wq1atC845S6NGjTRnzhwlJiZmK19bt26VJDVs2FCSFBYWplq1armXn2vr1q0KCwtTjRo18rxfwFdRloBCNmvWLDVr1sz9+wcffKD09HT3J9ayzlhknZ3J8s9//tNxu1dccYWefvppffzxx7neMNCbLjbTxejcubPGjRunChUqKDY2Nt/r9+/fP8dbgLn5a5YLOd/fp3r16tqyZUu2sUuXLtWJEydy3c6sWbPUrVs39++rVq3S3r179dBDD+V5Lrfffruefvppvfvuuxo+fLh7+YwZMxQWFqZbbrnFvezOO+/UpEmTtH//fsXExEiSjh8/rnnz5qlLly4KDORlBP6PoxwoZPPmzVNgYKBuvvlm96fhrrzySnXv3l3S2WtQypUrp7i4OI0aNUpBQUGaNWuWNm/enG07W7Zs0aOPPqq7775btWvXVnBwsJYuXaotW7ZoxIgR3oh2XnXr1lXNmjU1YsQImZnKly+vzz77TEuWLPH4vuLj4/Xxxx+rdevWGjx4sBo3bqzMzEzt27dPixcv1uOPP67mzZufd/3o6GhFR0df8jzy+vfp3bu3Ro4cqWeeeUZt2rTR9u3bNXXq1PN+InHDhg166KGHdPfdd2v//v166qmndNlll2ngwIF5nluDBg304IMPatSoUQoICNA111yjxYsX680339Rzzz2X7a21oUOHaubMmbr11ls1duxYhYSE6IUXXtCff/6Z45YH27dv1/bt2yWdPdt16tQpffTRR5LO3u/rYu/5derUKS1cuFCS3Le3WLFihZKSklSqVKls17EBBYGyBBSyefPmafTo0Xr99dflcrl02223adKkSQoODpZ09nqSBQsW6PHHH9e9996rUqVK6fbbb9fcuXPVtGlT93aioqJUs2ZNTZs2Tfv375fL5VKNGjX08ssv67HHHvNWvFwFBQXps88+09///ncNGDBAgYGBuummm/Tll1+qatWqHt1XqVKl9M033+iFF17Qm2++qd27dyssLExVq1bVTTfdlK+v4LgUef37/O///q9SUlI0Y8YMvfTSS7r22mv1wQcf6Pbbb891u9OnT9fMmTN1zz33KDU1Ve3atdPkyZPzfe3QtGnTdNlll+nVV19VYmKiqlevrsmTJ+c4dipVqqRvvvlGQ4cOVZ8+fdx3x16+fLnq1q2bbewHH3yQ4y3Mu+++W5I0atSoXO8nlReHDx92bydL1rby8nYocKlcZmbengQAoHibMWOG7r//fv3yyy+qVq3aRb+9l5GRITNTUFCQHnnkEU2dOtXDM0VxxK0DAABFRq1atRQUFHTRXzhdoUKF834SErhYnFkCkIOZKSMjw3FMQEAA99gpYnz573b06FHt3r3b/XuTJk0u6uzSpk2b3F/BUrlyZY+/zYviibIEIIfly5erXbt2jmPeeeedXL+7DN6T9VaWk2XLlmX7rkAAF0ZZApDD8ePHc3wR7l/FxsbmuBklvOuvZ2dyU6dOnYu+ISZQXFGWAAAAHHCBNwAAgAPus+QBmZmZOnDggMqUKVMkL5wEAAA5mZmOHz+u6OholShx/vNHlCUPOHDggPtrAAAA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T09XUlJSruuMGDFCl112mW666abzzmX8+PGKiIhw/8TExOQzDQAA8BU+U5ayuFyubL+bWY5lFxqf23JJmjBhgmbPnq158+YpNDT0vNt84oknlJyc7P7Zv39/fiIAAAAfEujtCeRVxYoVFRAQkOMs0uHDh3OcPcoSFRWV6/jAwEBVqFAh2/KXXnpJ48aN05dffqnGjRs7ziUkJEQhISEXkQIAAPganzmzFBwcrGbNmmnJkiXZli9ZskQtW7bMdZ0WLVrkGL948WJdffXVCgoKci/7xz/+oWeffVaLFi3S1Vdf7fnJAwAAn+UzZUmShgwZon/96196++23lZCQoMGDB2vfvn2Ki4uTdPbtsXM/wRYXF6e9e/dqyJAhSkhI0Ntvv63p06dr6NCh7jETJkzQ008/rbffflvVq1dXYmKiEhMTdeLEiULPBwAAih6feRtOknr06KGjR49q7NixOnjwoBo2bKiFCxeqWrVqkqSDBw9mu+dSbGysFi5cqMGDB+u1115TdHS0pkyZom7durnHTJs2TWfOnNFdd92VbV+jRo3S6NGjCyUXAAAounzqPktFFfdZAgDA9/jdfZYAAAC8gbIEAADggLIEAADggLIEAADggLIEAADggLIEAADggLIEAADggLIEAADggLIEAADggLIEAADggLIEAADggLIEAADggLIEAADggLIEAADggLIEAADggLIEAADggLIEAADggLIEAADggLIEAADggLIEAADggLIEAADggLIEAADggLIEAADggLIEAADggLIEAADggLIEAADggLIEAADggLIEAADggLIEAADgIN9l6auvvjrvY1OnTr2kyQAAABQ1+S5L3bp10/r163MsnzRpkp588kmPTAoAAKCoyHdZeuWVV9SpUydt377dveyll17SqFGjtGDBAo9ODgAAwNsC87vC/fffr6NHj6p9+/ZauXKl5s6dq3Hjxunzzz9Xy5YtC2KOAAAAXpPvsiRJQ4cO1dGjR3X11VcrIyNDixcvVvPmzT09NwAAAK/LU1maMmVKjmVVqlRRyZIl1bp1a61du1Zr166VJA0aNMizMwQAAPAil5nZhQbFxsbmbWMul3bt2nXJk/I1KSkpioiIUHJyssLDw709HQAAkAd5ff3O05ml3bt3e2xiAAAAvuSSb0qZkZGhTZs26Y8//vDEfAAAAIqUfJel+Ph4TZ8+XdLZotS6dWs1bdpUMTExWr58uafnBwAA4FX5LksfffSRrrzySknSZ599pj179ujHH39UfHy8nnrqKY9PEAAAwJvyXZaSkpIUFRUlSVq4cKHuvvtuXXHFFXrwwQe1detWj08QAADAm/JdliIjI7V9+3ZlZGRo0aJFuummmyRJp06dUkBAgMcnCAAA4E0XdQfv7t27q0qVKnK5XLr55pslSWvXrlXdunU9PkEAAABvyndZGj16tBo2bKj9+/fr7rvvVkhIiCQpICBAI0aM8PgEAQAAvClPN6WEM25KCQCA7/HoTSmnTJmi/v37KzQ0NNevPjkXX3cCAAD8SZ6/7mTDhg2qUKGC41ef8HUnnFkCAMBXFNjXnfDVJwAAoDjJ160D0tLSVKNGDW3fvr2g5gMAAFCk5KssBQUFKTU1VS6Xq6DmAwAAUKTk+6aUjz32mF588UWlp6cXxHwAAACKlHzfZ2nt2rX66quvtHjxYjVq1EilSpXK9vi8efM8NjkAAABvy3dZKlu2rLp161YQcwEAAChy8l2W3nnnnYKYBwAAQJGU72uWAAAAihPKEgAAgAPKEgAAgAOfK0vTpk1TbGysQkND1axZM33zzTeO41esWKFmzZopNDRUNWrU0BtvvJFjzMcff6z69esrJCRE9evX1/z58wtq+gAAwMfk+wJvb5o7d67i4+M1bdo0XX/99frnP/+pjh07avv27apatWqO8bt371anTp3Ur18//fvf/9a3336rgQMHqlKlSu5P9K1evVo9evTQs88+qzvvvFPz589X9+7dtXLlSjVv3rywI7qZmU6nZXht/wAAFCVhQQFeuyl2nr5Id8qUKXne4KBBgy5pQk6aN2+upk2b6vXXX3cvq1evnu644w6NHz8+x/jhw4fr008/VUJCgntZXFycNm/erNWrV0uSevTooZSUFH3++efuMbfccovKlSun2bNn5zqP1NRUpaamun9PSUlRTEyMR79I99SZdNV/5guPbAsAAF+3fWwHlQz27Dkej36R7iuvvJLt9yNHjujUqVMqW7asJOnYsWMqWbKkKleuXGBl6cyZM/ruu+80YsSIbMvbt2+vVatW5brO6tWr1b59+2zLOnTooOnTpystLU1BQUFavXq1Bg8enGPMpEmTzjuX8ePHa8yYMRcXBAAA+JQ8laXdu3e7//f777+vadOmafr0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3XvvvTp58qQCAwPzNL+UlBRFREQoOTlZ4eHhF5kSAAAUpry+fvvEmaXVq1crIiLCXZQk6brrrlNERIRWrVqV6zq7d+9WYmKi2rdv714WEhKiNm3anHcdSe4nzKkopaamKiUlJdsPAADwTz5RlhITE1W5cuUcyytXrqzExMTzriNJkZGR2ZZHRkaed52jR4/q2WefPe9Zpyzjx493XzsVERGhmJiYvMQAAAA+yKtlafTo0XK5XI4/GzZskCS5XK4c65tZrsvP9dfHz7dOSkqKbr31VtWvX1+jRo1y3OYTTzyh5ORk98/+/fsvFBUAAPiovF2UU0AeffRR3XPPPY5jqlevri1btujQoUM5Hjty5EiOM0dZoqKiJJ09w1SlShX38sOHD+dY5/jx47rllltUunRpzZ8/X0FBQY5zCgkJUUhIiOMYAADgH7xalipWrKiKFStecFyLFi2UnJysdevW6dprr5UkrV27VsnJyWrZsmWu68TGxioqKkpLlizRVVddJUk6c+aMVqxYoRdffNE9LiUlRR06dFBISIg+/fRThYaGeiAZAADwFz5xzVK9evV0yy23qF+/flqzZo3WrFmjfv36qXPnztk+CVe3bl3Nnz9f0tm33+Lj4zVu3DjNnz9fP/zwg/r27auSJUuqZ8+eks6eUWrfvr1Onjyp6dOnKyUlRYmJiUpMTFRGRoZXsgIAgKLFq2eW8mPWrFkaNGiQ+9NtXbp00dSpU7ON2bFjR7YbSg4bNkynT5/WwIED9ccff6h58+ZavHixypQpI0n67rvvtHbtWklSrVq1sm1r9+7dql69egEmAgAAvsAn7rNU1HGfJQAAfI9f3WcJAADAWyhLAAAADihLAAAADihLAAAADihLAAAADihLAAAADihLAAAADihLAAAADihLAAAADihLAAAADihLAAAADihLAAAADihLAAAADihLAAAADihLAAAADihLAAAADihLAAAADihLAAAADihLAAAADihLAAAADihLAAAADihLAAAADihLAAAADihLAAAADihLAAAADihLAAAADihLAAAADihLAAAADihLAAAADihLAAAADihLAAAADihLAAAADihLAAAADihLAAAADihLAAAADihLAAAADihLAAAADihLAAAADihLAAAADihLAAAADihLAAAADihLAAAADihLAAAADihLAAAADihLAAAADihLAAAADihLAAAADihLAAAADihLAAAADihLAAAADihLAAAADihLAAAADihLAAAADihLAAAADihLAAAADihLAAAADnymLP3xxx/q3bu3IiIiFBERod69e+vYsWOO65iZRo8erejoaIWFhalt27batm3becd27NhRLpdLn3zyiecDAAAAn+QzZalnz57atGmTFi1apEWLFmnTpk3q3bu34zoTJkzQxIkTNXXqVK1fv15RUVG6+eabdfz48RxjJ02aJJfLVVDTBwAAPirQ2xPIi4SEBC1atEhr1qxR8+bNJUlvvfWWWrRooR07dqhOnTo51jEzTZo0SU899ZS6du0qSXr33XcVGRmp999/XwMGDHCP3bx5syZOnKj169erSpUqhRMKAAD4BJ84s7R69WpFRES4i5IkXXfddYqIiNCqVatyXWf37t1KTExU+/bt3ctCQkLUpk2bbOucOnVKf/vb3zR16lRFRUXlaT6pqalKSUnJ9gMAAPyTT5SlxMREVa5cOcfyypUrKzEx8bzrSFJkZGS25ZGRkdnWGTx4sFq2bKnbb789z/MZP368+9qpiIgIxcTE5HldAADgW7xalkaPHi2Xy+X4s2HDBknK9XoiM7vgdUZ/ffzcdT799FMtXbpUkyZNyte8n3jiCSUnJ7t/9u/fn6/1AQCA7/DqNUuPPvqo7rnnHscx1atX15YtW3To0KEcjx05ciTHmaMsWW+pJSYmZrsO6fDhw+51li5dqp07d6ps2bLZ1u3WrZtatWql5cuX57rtkJAQhYSEOM4bAAD4B6+WpYoVK6pixYoXHNeiRQslJydr3bp1uvbaayVJa9euVXJyslq2bJnrOrGxsYqKitKSJUt01VVXSZLOnDmjFStW6MUXX5QkjRgxQg899FC29Ro1aqRXXnlFt91226VEAwAAfsInPg1Xr1493XLLLerXr5/++c9/SpL69++vzp07Z/skXN26dTV+/Hjdeeedcrlcio+P17hx41S7dm3Vrl1b48aNU8mSJdWzZ09JZ88+5XZRd9WqVRUbG1s44QAAQJHmE2VJkmbNmqVBgwa5P93WpUsXTZ06NduYHTt2KDk52f37sGHDdPr0aQ0cOFB//PGHmjdvrsWLF6tMmTKFOncAAOC7XGZm3p6Er0tJSVFERISSk5MVHh7u7ekAAIA8yOvrt0/cOgAAAMBbKEsAAAAOKEsAAAAOKEsAAAAOKEsAAAAOKEsAAAAOKEsAAAAOKEsAAAAOKEsAAAAOKEsAAAAOKEsAAAAOKEsAAAAOKEsAAAAOKEsAAAAOKEsAAAAOKEsAAAAOKEsAAAAOKEsAAAAOKEsAAAAOKEsAAAAOKEsAAAAOKEsAAAAOKEsAAAAOKEsAAAAOKEsAAAAOKEsAAAAOKEsAAAAOKEsAAAAOKEsAAAAOKEsAAAAOKEsAAAAOKEsAAAAOKEsAAAAOKEsAAAAOKEsAAAAOKEsAAAAOKEsAAAAOKEsAAAAOKEsAAAAOKEsAAAAOKEsAAAAOKEsAAAAOAr09AX9gZpKklJQUL88EAADkVdbrdtbr+PlQljzg+PHjkqSYmBgvzwQAAOTX8ePHFRERcd7HXXahOoULyszM1IEDB1SmTBm5XC6PbTclJUUxMTHav3+/wsPDPbbdoqy4ZSavf/NWXp5n/0ZezzEzHT9+XNHR0SpR4vxXJnFmyQNKlCihyy+/vMC2Hx4eXiz+gzhXcctMXv/mrbw8z/6NvJ7hdEYpCxd4AwAAOKAsAQAAOKAsFWEhISEaNWqUQkJCvD2VQlPcMpPXv3krL8+zfyNv4eMCbwAAAAecWQIAAHBAWQIAAHBAWQIAAHBAWQIAAHBAWQIAAHBAWQIAAHBAWUKhWb9+vSZNmuT+lmf4l++//979pdKAJ3FswdsoS15w8OBBDRo0SMOHD9eUKVO8PZ0Cd+DAAXXq1EnNmzfXlClTFB4eLn++vdehQ4e0YMECv854rgMHDqh9+/Zq166dNm3a5O3pFIqDBw/q0Ucf1bhx4/Tee+8V2n45tvybt44rb/Gl10LKUiEbPXq0ateurb179+rw4cOKj4/Xs88+K0l++X+AQ4cOVUxMjEqXLq0333xTqamp2rFjh1wul7enViCmTp2q6Oho3Xbbbdq2bZu3p1Pghg0bpmrVqqlkyZJKSEhQq1atvD2lAvf222+rQYMG2rt3r3bt2qW4uDg98sgj+uWXXwp0vxxb/n1seeu48hafey00FIq0tDR74YUXrE2bNvb555+7l48cOdJq1KjhxZkVjJSUFAsNDbVGjRrZypUrzczsyy+/tKpVq9ry5cu9PDvPy8zMtAULFtiNN95oL730kjVt2tTuuusuy8jI8PbUCsSZM2fs0UcfNZfLZXPmzHEvP3TokBdnVfBOnDhhbdq0salTp7qXff7551amTBl7+OGHLTMz0+P75Ng6y5+PLW8cV97iq6+Fgd4ua8VFYGCgWrRooWuvvVZt2rRxL09LS1NcXJxOnz6tsLAwL87QczIzM1WmTBktX75czZs3dy9v3ry5Dh8+rKSkJPe4EiX84+Smy+VSZGSkevfurW7duumaa65R27Zt9cUXX6hjx47enp5HmZmCgoLUqlUrbd26VUlJSfrxxx/1xBNPKCkpSSVKlFCvXr3Ut29fBQcHe3u6HvX1119r27ZtmjZtmjIzMyVJHTp0UNmyZTVv3jw1b95cffr08eg+i9OxJalYHlveOK68xWdfC73d1vxVamqqnTp1ysws138BJicn2+23324ul8uaNm1qtWvXtg8//NBOnjxZ2FP1CKe8mZmZlpmZacnJyXbDDTfYY4895o0petSJEyfsp59+suTk5POO6d69u1111VWWkpJSiDMrGLnlTUtLs0ceecSioqKsQoUK9ve//90mT55s/fv3t5CQEHv55Zfdx4Qvyi3z3r17LSAgwJYuXepetm7dOmvdurV17NjR7r777kv+eycnJ9vq1avt119/Pe8Yfzq2csvrz8dWbnkL47jyFn95LaQsFYAXXnjBrrjiClu0aFGuj585c8amT59unTp1spUrV9qWLVts4MCBVr9+fVuwYEEhz/bSXSjvuVq3bm0PP/ywmZnPnloeO3asxcbGWpMmTSw2NtYWLlyY7fGs/0PYuXOnhYWF2ZQpU7wxTY/JLW96erqZma1atcr69Oljn376abZ1Bg0aZFdeeaVt3brVG1O+ZH/NfO5/l/369bOIiAgbNmyYxcfHW4kSJezll1+2MWPGWP369e2333676P2OGzfOwsPDrWHDhhYeHm6TJk1yv6imp6f73bGVW969e/eamdnXX3/td8fWX/O+8sor7r/vAw88UGDHlbf402shZcmDjh49anFxcda4cWMLDw+3rl272pEjR3Idm1trLleunL3//vsFPU2PyU/erBfXoUOHWv369Qtzmh6zZ88e69KlizVo0MAWLFhgX331lfXp08eqVKliiYmJua7z9NNPW2RkpO3fv9/Mzv7dT5w4UZjTvmhOeQ8ePOget2XLFvvzzz/N7P+KYmJiorlcLlu7dq1X5n6xnDKfe83MsGHD7NZbb7U2bdq4Xwj27t1rYWFhtm/fvova98KFC61evXo2f/5827Vrlz3//PPWoEEDe+CBB9xjzv0Hhi8fW2bnz3v//fe7x2zatMlvjq3c8tavX98efPBB95ihQ4d6/LjyBn98LaQsedCuXbts2LBhtmDBAvvmm2/M5XLZ7Nmzcz31+NezKuvXr7eqVatmu+CtqMtP3izTpk2zBg0a2E8//VSIM/WMOXPmWOvWrS0hISHb8vDw8Bz/+s1y4sQJq1atmg0aNMjee+89u+GGG+yDDz4ojOlesovJm3Vcz5492ypXrmybN28u8Hl6Un4y//X/5J977jlr2LCh/f777xd18fWgQYPsqquuyrbs1VdftTp16tibb75pZv/3jw4z3z62zJzzvvHGG2aW/W0bXz+2nPJOmzbNzM7+fT19XHmDP74WUpY8KD093X0K2ezsdQWNGze23bt35zo+6yDZsWOHde7c2bp162bHjx8vjKl6RH7yZmVdsGCBlSlTxvF6jKIma+6///67ffjhh9keS0xMtDp16tjixYvPu/6oUaPM5XJZcHCwPfHEEwU6V0+42LxZ6yUkJFj79u2tX79+BT9ZD7mUzGlpabZt2zZr3bq1Pfvssxe1/4yMDHv44YftnnvucZ9JMTM7cOCADRgwwK688kr3/zec+4Lja8dWlrzkPfcsmS8fW2b5+/uaee648hZ/fC2kLBWArD/80aNHLSgoyMaPH5/tPxCzs/8qHT9+vD300ENWunRp+9vf/uZ4sXBRlpe8WX766ScLDAx0307AV/z1Xz9ZL1jbt2+3ChUq5Hqm7MSJE/bII4+Yy+WyBx980P7444/CmKpH5DfvyZMnbcyYMda3b18rWbKk9erVy+cuSM1v5vT0dPvss8/cFx337Nnzot4Gy9rv+PHjLSYmJscLyqeffmpXX321++ySmX8cWxfK+9Zbb5nZ2ay+fGzlN29aWppHjquiwJ9eC/3jc9tFgJ1zEy2Xy6X09HSVL19eTz31lCZOnKiEhAT345mZmSpZsqTKly+vP//8U8uXL9f777+v8PBwb0z9ouQn77ljy5cvr19++UXXX399oc63oHz99deKjY1V7dq1c9xI7ciRIypTpoy++eYb/etf/1LZsmW9M0kPOl/erOP5xIkTWrFihf7973+rTJkyXpyp55wvc0BAgKKionTZZZdp5cqVmjVrlkqVKnXe7fz555+5Ls/6qHh8fLySk5M1a9asbI+3bdtWJUqU0NGjR93LkpKSivyxdal5s24xUqpUKVWsWLHIH1ueyhsYGKgqVark+bjylvPl9dvXQi8WNZ9y4MABu+uuu2zu3Llmlv3agbS0NPf/zlp+7uOXXXaZ9e/f337//Xf74osv7N133zWzov1pME/lXbx4sb333nuFNOuLl9+8WX+7Xr162ZAhQ9yPb9myxbZs2VIYU74knsybde1IUb+eoiAy58WuXbuscePGNnLkyByPnbtfM7OXXnrJypQpY+vXr8+2vEmTJjZw4MA879ObPJU361OzZkX72OLv+3/88bUwC2Upj5599llzuVx23XXXuS/A++vFh8OGDbN///vf7uVZB8m8efMsICDAGjVqZC6Xy1577bXCD5BP5HXOm5mZaceOHbO6devaF198YQcOHLC7777bXC6X/fe///VWjDwrbnnNCj9zZmamDRgwwAIDA+2uu+4676eBsvY7c+ZMMzNr1qyZ3Xjjje6PTn/33Xd25ZVXOl4XVxSQl7xZ4/zptSELb8Pl0apVq9SjRw8FBwfrxRdfzPbYu+++q4oVK2rx4sVq3Lix+67UAQEB+u2337RmzRplZmaqQYMG2rdvnwYOHOiNCPlC3v+TW16Xy6Wff/5Zx44d0/z581WzZk0lJydrz549uvXWW72UIu+KW16pcDP/8ssvqlChglauXKl169bpww8/VMWKFXOMO3e/DRo0kCTNnDlT4eHhuvPOO9WhQwe1atVK9erVK9JvXZOXvJJ/vja4ebutFTV/PR2YdVrxgQcesPnz59sTTzxh9erVs+3bt5vZ2e9Ae+6552zatGnZTjeanb1zaXx8vJUvX96WLVtWKPPPL/JefN5XX33VXC6XXXvttUX2X4XFLa+Z9zKfu989e/ZYgwYNbMCAAWZm9u2339qQIUPs+eeft88//9z9SZ9Ro0bZ66+/nuOtv+TkZFu8eLFNnTq1yH4YgrzkvVDeLL7w2nAhlKVznDp1KtuV+uceLI0aNbJt27bZ+vXrrV27djZo0CBLTU21H374IceBca7z3aywKCDvxeXNWi8lJcXeeeedQpn7xShuec28l/mv+83IyLCPP/7YXC6XdejQwapVq2bdunWzK6+80qKjo61Pnz6XFtTLyEve/OYtyq8NeUFZ+v9GjBhhTZs2tZtuuskmT57s/uhiRkaG/frrr9muc5g4caJVrFjRXC6XTZ482VJTU7059YtC3kvLW9QvSCxuec28l/l8+/3999/tvvvus+uvv942b97sfvF58803s92IsChfvJwb8pLXn/LmVbEvS6mpqXbXXXdZ/fr1bc6cOXbfffdZ/fr17dZbb3WPSU5OtlatWtmpU6ds3rx5Vr58eYuIiLArr7zSPcYXXkzMyEte/8pr5r3M59tvp06d3GMSEhJs/fr1lpmZ6X4ROXr0qHXu3Nn69+/veJa2qCEvef0pb34V+7K0fft2q127drbrEVauXGlhYWE2YcIEMzP76quvrEqVKtawYUMrW7asvfTSS/bPf/7TmjRp4r6a31faNHnJ6095zbyXOS/7/ausQlarVi2Li4vL1/68jbzk/Stfzptfxb4sfffdd+Zyuezo0aNmlv1uq2XLlrVdu3ZZWlqa1a9f3/r37+++++qBAwese/fu1rp16/PerbooIi95/SmvmfcyO+23XLly5/3+w88//9yuueYa+/bbb/O9T28iL3lz46t586vYl6WNGzdagwYN7NVXXzWz/ztAzpw5Y9WrV7f4+HgzMzt06FCO0/Tbtm3zuRcW8pLXzH/ymnkvs9N+Y2Nj7fHHHzezs2estm7dakuXLrUBAwZYRESEjRgxwufesiAvec38J29+Ffuy9Pvvv9sdd9xhPXr0sAMHDpjZ/33U+OWXX7YqVarkOD3vS9dz/BV5yetPec28l/lC+42Ojnbv991337V27dpZu3btbNOmTZe8b28gL3n9KW9++fVNKQ8fPqwjR47ozJkzkqSMjAz3Y+np6ZKkcuXK6bbbbtOPP/6oDz74QNLZ7+aRpIiICJUvX1779+/Ptl2Xy1UY08838pLXn/JK3svsif2WK1dOe/fulSR169ZNb731lpYuXaorr7zyIp6JgkVe8vpT3oLgl2UpLS1NcXFxat26tW677TZ16dJFqampCggIUFpamqSzB8Gff/6pOXPm6IEHHlCTJk00d+5cLVu2zL2dX3/9VZUqVVK1atW8FSVPyEtef8oreS+zp/cbGxsr6eyXwdasWdNTT4/HkJe8/pS3QHn71Janffjhh1azZk1r06aNLV261N58802rUaNGji8pnDx5spUvX95uv/12MzPbvHmz9erVy4KDg+3hhx+2/v37W5kyZez11183s6L7VgV5yWvmP3nNvJe5uD3X5CWvmf/kLWh+V5YeeeQRGzlyZLZvP+7Tp0+2bw1/9dVXrXr16jZr1qwcX6Q5btw469evn3Xq1Mknru4nL3n9Ka+Z9zIXt+eavOT1p7wFzWVm5u2zW5508OBBpaenKyYmRpK0d+9ede3aVT179lSLFi3UsmVLpaenKzU1VaVKlXKvZ2ZF+tqN8yEvef0pr+S9zMXtuSYvef0pb4HzUknziOeff96eeeYZmz17dq6PT5kyxVwul91www3Wpk0bK1eunD3zzDN2+vTpQp6pZ5A3O/L6dl4z72Uubs81ebMjr2/n9QafLEtr1661qlWrWtOmTa1jx45WpkwZ69atm/3888/Zxs2YMcO+/vpr93uss2bNsrCwMNuzZ483pn3RyEteM//Ja+a9zMXtuSYvec38J683+WRZGjJkiPt7nzIyMmzLli1WrVo1e/jhhx2/2TghIcECAgKy3c7dF5CXvLnx1bxm3stc3J5r8pI3N76a15t86tYBZqbk5GStW7dO9erVcy9v1KiRhg8frnXr1rnvD5GbTz75RDfeeKNuuOGGwpjuJSPvWeTNna/llbyXubg91+Q9i7y587W8RUGRL0vff/+9kpOTJZ29kVxERIT+/PNPHT9+XJLc94p46KGHVK1aNS1btky7d+92r79v3z7t3LlT/fr106uvvqqePXsqLCxMVkSvaycveSX/ySt5L3Nxe67JS17Jf/IWOYV9KiuvPvroI7v88sutZs2aVrVqVXvmmWfs119/NbOz94UoXbq0nTx50szMUlNTzczs448/tpiYGPfHHHfs2GGPP/64XX755dauXTvbsWOHd8LkAXnJ6095zbyXubg91+Qlrz/lLaqKZFlav3691a1b1yZNmmSbN2+2adOmWaVKlezhhx+2Y8eO2d69e61mzZo2YMAAMzv7RX9ZKlSoYP/617/MzOzkyZO2YsWKIn+PCPKS15/ymnkvc3F7rslLXn/KW5QVqbKUdaX+66+/bpdffrklJye7H5s6dapde+21Nn78eDMze+211ywgIMBWrFjhHrNz506rWbOmffTRR4U78YtEXvL6U14z72Uubs81ecnrT3l9QZEqS1mGDRtm//M//+M+tWhmduLECXvkkUfsuuuusx07dlhmZqb16tXLoqKibMyYMbZx40YbMGCANWrUyH777Tcvzj7/yEtef8pr5r3Mxe25Ji95/SlvUebVsrR48WJ77LHHbNKkSbZ27Vr38v/85z8WGhpqO3fuNDOz9PR09/iWLVvaxIkT3WMfe+wxa9KkidWqVcuaNm1qW7ZsKdwQ+UDes8jrH3nNvJe5uD3X5D2LvP6R1xd5pSwdOHDAOnfubJUrV7ZevXpZo0aNLCIiwn2QnD592urWrWv9+/c3M8v2nTWtWrWyhx9+2P17RkaGnTx50n788cfCDZEP5CWvP+U1817m4vZck5e8/pTXlxV6WTp58qT16dPHevToYbt27XIvv+aaa6xv375mdrY9v/fee1aiRIkcF6T16tXL2rVr5/69qH8DMnnPIq9/5DXzXubi9lyT9yzy+kdeX1fo91kqWbKkQkJC1LdvX8XGxio9PV2S1LlzZyUkJEiSAgIC1L17d91+++166KGHtGLFCpmZEhMT9fPPP6tXr17u7RX1L/wjL3n9Ka/kvczF7bkmL3n9Ka/P80ZDO/fjjVlt+N5777V+/fplW3b69Glr27atVa5c2dq3b2/R0dF23XXX2b59+wp/0peAvOQ185+8Zt7LXNyea/KS18x/8voyl1nRuH1n69at9cADD6hv374yM2VmZiogIECHDh3Sli1btH79elWvXl09e/b09lQ9grzk9ae8kvcyF7fnmrzk9ae8PsNLJS2bnTt3WmRkpG3YsMG9LOtOpP6IvOT1N97KXNyea/KSF97h1e+Gs/9/UmvlypUqXbq0mjVrJkkaM2aM/v73v+vw4cPenJ7HkZe8/sZbmYvbc01e8sK7Ar2586wL0tatW6du3bppyZIl6t+/v06dOqWZM2eqcuXK3pyex5GXvP7GW5mL23NNXvLCy7x2Tuv/O336tNWqVctcLpeFhITYCy+84O0pFSjyktffeCtzcXuuyUteeE+RuMD75ptvVu3atTVx4kSFhoZ6ezoFjrz+rbjllbyXubg91+T1b8Utry8pEmUpIyNDAQEB3p5GoSGvfytueSXvZS5uzzV5/Vtxy+tLikRZAgAAKKq8+mk4AACAoo6yBAAA4ICyBAAA4ICyBAAA4ICyBAAA4ICyBAAA4ICyBKDYWr58uVwul44dO+btqQAowrjPEoBio23btmrSpIkmTZokSTpz5ox+//13RUZGur+fCwD+yqtfpAsA3hQcHKyoqChvTwNAEcfbcACKhb59+2rFihWaPHmyXC6XXC6XZsyYke1tuBkzZqhs2bL673//qzp16qhkyZK66667dPLkSb377ruqXr26ypUrp8cee0wZGRnubZ85c0bDhg3TZZddplKlSql58+Zavny5d4IC8DjOLAEoFiZPnqyffvpJDRs21NixYyVJ27ZtyzHu1KlTmjJliubMmaPjx4+ra9eu6tq1q8qWLauFCxdq165d6tatm2644Qb16NFDknT//fdrz549mjNnjqKjozV//nzdcsst2rp1q2rXrl2oOQF4HmUJQLEQERGh4OBglSxZ0v3W248//phjXFpaml5//XXVrFlTknTXXXdp5syZOnTokEqXLq369eurXbt2WrZsmXr06KGdO3dq9uzZ+vXXXxUdHS1JGjp0qBYtWqR33nlH48aNK7yQAAoEZQkAzlGyZEl3UZKkyMhIVa9eXaVLl8627PDhw5Kk77//XmamK664Itt2UlNTVaFChcKZNIACRVkCgHMEBQVl+93lcuW6LDMzU5KUmZmpgIAAfffddwoICMg27tyCBcB3UZYAFBvBwcHZLsz2hKuuukoZGRk6fPiwWrVq5dFtAyga+DQcgGKjevXqWrt2rfbs2aOkpCT32aFLccUVV6hXr1667777NG/ePO3evVvr16/Xiy++qIULF3pg1gC8jbIEoNgYOnSoAgICVL9+fVWqVEn79u3zyHbfeecd3XfffXr88cdVp04ddenSRWvXrlVMTIxHtg/Au7iDNwAAgAPOLAEAADigLAEAADigLAEAADigLAEAADigLAEAADigLAEAADigLAEAADigLAEAADigLAEAADigLAEAADigLAEAADj4f5iVGOXhWRqCAAAAAElFTkSuQmCC",
- "text/plain": [
- "
"
+ "cell_type": "markdown",
+ "id": "surface-constitutional",
+ "metadata": {},
+ "source": [
+ "### Results analysis\n",
+ "We can see from the above figure that there is no risk of exceeding the 2-year return period for the selected dates of the forecast.\n"
]
- },
- "metadata": {},
- "output_type": "display_data"
}
- ],
- "source": [
- "# Now compute the flood risk given the probabilistic forecast and the threshold associated to the 2-year return\n",
- "# period.\n",
- "\n",
- "threshold = out.sel(return_period=2).values\n",
- "\n",
- "# Run the flood forecast risk tool to extract the probability of exceedance in netcdf format and xarray Dataset format\n",
- "flood_risk_data = compute_forecast_flood_risk(\n",
- " forecast=ESP_sims.hydrograph.q_sim,\n",
- " flood_level=threshold,\n",
- ")\n",
- "\n",
- "# Extract the data and plot\n",
- "fig, ax = plt.subplots(1)\n",
- "l = flood_risk_data.exceedance_probability.plot()\n",
- "ax.set_ylabel(\"Flood risk\")"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "surface-constitutional",
- "metadata": {},
- "source": [
- "### Results analysis\n",
- "We can see from the above figure that there is no risk of exceeding the 2-year return period for the selected dates of the forecast.\n"
- ]
- }
- ],
- "metadata": {
- "kernelspec": {
- "display_name": "Python 3 (ipykernel)",
- "language": "python",
- "name": "python3"
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3 (ipykernel)",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.9.16"
+ }
},
- "language_info": {
- "codemirror_mode": {
- "name": "ipython",
- "version": 3
- },
- "file_extension": ".py",
- "mimetype": "text/x-python",
- "name": "python",
- "nbconvert_exporter": "python",
- "pygments_lexer": "ipython3",
- "version": "3.9.16"
- }
- },
- "nbformat": 4,
- "nbformat_minor": 5
+ "nbformat": 4,
+ "nbformat_minor": 5
}
diff --git a/docs/notebooks/Comparing_hindcasts_and_ESP_forecasts.ipynb b/docs/notebooks/Comparing_hindcasts_and_ESP_forecasts.ipynb
index 2821714a..7dfbea82 100644
--- a/docs/notebooks/Comparing_hindcasts_and_ESP_forecasts.ipynb
+++ b/docs/notebooks/Comparing_hindcasts_and_ESP_forecasts.ipynb
@@ -1,378 +1,378 @@
{
- "cells": [
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "# Comparing hindcasts to a climatological ensemble streamflow prediction (ESP)\n",
- "\n",
- "This notebook shows how to use climatological weather to perform a Climatology-based Extended Streamflow Prediction (ESP) forecast. Then using the same initial states, uses the CaSPar archived weather forecasts to generate streamflow hindcasts over the same period. It is thus possible to compare both approaches.\n",
- "\n",
- "CaSPAr (Canadian Surface Prediction Archive) is an archive of historical ECCC forecasts developed by Juliane Mai at the University of Waterloo, Canada. More details on CaSPAr can be found here https://caspar-data.ca/.\n",
- "\n",
- "Mai, J., Kornelsen, K.C., Tolson, B.A., Fortin, V., Gasset, N., Bouhemhem, D., Schäfer, D., Leahy, M., Anctil, F. and Coulibaly, P., 2020. The Canadian Surface Prediction Archive (CaSPAr): A Platform to Enhance Environmental Modeling in Canada and Globally. Bulletin of the American Meteorological Society, 101(3), pp.E341-E356."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "execution": {
- "iopub.execute_input": "2021-09-08T20:34:43.522681Z",
- "iopub.status.busy": "2021-09-08T20:34:43.521515Z",
- "iopub.status.idle": "2021-09-08T20:34:46.587872Z",
- "shell.execute_reply": "2021-09-08T20:34:46.587489Z"
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Comparing hindcasts to a climatological ensemble streamflow prediction (ESP)\n",
+ "\n",
+ "This notebook shows how to use climatological weather to perform a Climatology-based Extended Streamflow Prediction (ESP) forecast. Then using the same initial states, uses the CaSPar archived weather forecasts to generate streamflow hindcasts over the same period. It is thus possible to compare both approaches.\n",
+ "\n",
+ "CaSPAr (Canadian Surface Prediction Archive) is an archive of historical ECCC forecasts developed by Juliane Mai at the University of Waterloo, Canada. More details on CaSPAr can be found here https://caspar-data.ca/.\n",
+ "\n",
+ "Mai, J., Kornelsen, K.C., Tolson, B.A., Fortin, V., Gasset, N., Bouhemhem, D., Schäfer, D., Leahy, M., Anctil, F. and Coulibaly, P., 2020. The Canadian Surface Prediction Archive (CaSPAr): A Platform to Enhance Environmental Modeling in Canada and Globally. Bulletin of the American Meteorological Society, 101(3), pp.E341-E356."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2021-09-08T20:34:43.522681Z",
+ "iopub.status.busy": "2021-09-08T20:34:43.521515Z",
+ "iopub.status.idle": "2021-09-08T20:34:46.587872Z",
+ "shell.execute_reply": "2021-09-08T20:34:46.587489Z"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "%matplotlib inline\n",
+ "# This entire section is cookie-cutter template to allow calling the servers and instantiating the connection\n",
+ "# to the WPS server. Do not modify this block.\n",
+ "import datetime as dt\n",
+ "\n",
+ "import matplotlib.pyplot as plt\n",
+ "import xarray as xr\n",
+ "from clisops.core import average, subset\n",
+ "\n",
+ "from ravenpy import Emulator\n",
+ "from ravenpy.config import commands as rc\n",
+ "from ravenpy.config.emulators import GR4JCN\n",
+ "from ravenpy.extractors.forecasts import get_CASPAR_dataset\n",
+ "from ravenpy.utilities import forecasting\n",
+ "from ravenpy.utilities.testdata import get_file, open_dataset"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Setting up the warm-up file\n",
+ "\n",
+ "Here we tell the model that we want to forecast over the Salmon River catchment and provide its properties (area, lat/long, elevation). We will run it using the GR4JCN hydrological model and have provided some parameters. Other information on the forecast conditions is provided. Thr first step is to generate a hotstart file to prepare the model to generate forecasts."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2021-09-08T20:34:46.593357Z",
+ "iopub.status.busy": "2021-09-08T20:34:46.592812Z",
+ "iopub.status.idle": "2021-09-08T20:34:54.155192Z",
+ "shell.execute_reply": "2021-09-08T20:34:54.155550Z"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "# Define the warmup period dates\n",
+ "start_date_wu = dt.datetime(2010, 1, 1)\n",
+ "end_date_wu = dt.datetime(2018, 6, 30)\n",
+ "\n",
+ "# Define the catchment contour. Here we use the Salmon River file we previously generated using the Delineator\n",
+ "# in Tutorial Notebook 01.\n",
+ "basin_contour = get_file(\"notebook_inputs/salmon_river.geojson\")\n",
+ "\n",
+ "# Define some of the catchment properties. Could also be replaced by a call to the properties WPS as in\n",
+ "# the Tutorial Notebook 02.\n",
+ "hru = {}\n",
+ "hru = dict(\n",
+ " area=4250.6,\n",
+ " elevation=843.0,\n",
+ " latitude=54.4848,\n",
+ " longitude=-123.3659,\n",
+ " hru_type=\"land\",\n",
+ ")\n",
+ "\n",
+ "# Observed weather data for the Salmon river. We extracted this using Tutorial Notebook 03 and the\n",
+ "# salmon_river.geojson file as the contour.\n",
+ "ts = get_file(\"notebook_inputs/ERA5_weather_data_Salmon.nc\")\n",
+ "\n",
+ "# Set alternative names for netCDF variables\n",
+ "alt_names = {\n",
+ " \"TEMP_MIN\": \"tmin\",\n",
+ " \"TEMP_MAX\": \"tmax\",\n",
+ " \"PRECIP\": \"pr\",\n",
+ "}\n",
+ "\n",
+ "# Data types to extract from netCDF\n",
+ "data_type = [\"TEMP_MAX\", \"TEMP_MIN\", \"PRECIP\"]\n",
+ "data_kwds = {\n",
+ " \"ALL\": {\n",
+ " \"elevation\": hru[\"elevation\"],\n",
+ " \"Latitude\": hru[\"latitude\"],\n",
+ " \"Longitude\": hru[\"longitude\"],\n",
+ " },\n",
+ "}\n",
+ "\n",
+ "# Model configuration\n",
+ "model_config_warmup = GR4JCN(\n",
+ " params=[0.529, -3.396, 407.29, 1.072, 16.9, 0.947],\n",
+ " Gauge=[\n",
+ " rc.Gauge.from_nc(\n",
+ " ts, data_type=data_type, alt_names=alt_names, data_kwds=data_kwds\n",
+ " )\n",
+ " ],\n",
+ " HRUs=[hru],\n",
+ " StartDate=start_date_wu,\n",
+ " EndDate=end_date_wu,\n",
+ " RunName=\"ESP_vs_NWP_warmup\",\n",
+ ")\n",
+ "\n",
+ "# Run the model and get the outputs.\n",
+ "out1 = Emulator(config=model_config_warmup).run()\n",
+ "\n",
+ "# Extract the path to the final states file that will be used as the next initial states\n",
+ "hotstart = out1.files[\"solution\"]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "dss = open_dataset(ts)\n",
+ "dss"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Hindcasting using Climatological Ensemble Streamflow Prediction (ESP)\n",
+ "Now that we have the hotstart file ready to go, we can configure our model for forecasting in climatology ESP mode:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Date of the hindcast\n",
+ "hdate = dt.datetime(2018, 7, 1)\n",
+ "\n",
+ "# Duration of the hindcast, in days\n",
+ "duration = 7\n",
+ "\n",
+ "# Build a new model config:\n",
+ "# Model configuration\n",
+ "model_config_ESP = GR4JCN(\n",
+ " params=[0.529, -3.396, 407.29, 1.072, 16.9, 0.947],\n",
+ " Gauge=[\n",
+ " rc.Gauge.from_nc(\n",
+ " ts, data_type=data_type, alt_names=alt_names, data_kwds=data_kwds\n",
+ " )\n",
+ " ],\n",
+ " HRUs=[hru],\n",
+ " StartDate=hdate,\n",
+ " Duration=duration,\n",
+ " RunName=\"ESP_vs_NWP_ESPfcst\",\n",
+ ")\n",
+ "\n",
+ "# Set the initial states of this new config to the correct values, i.e. the end of the previous forecast.\n",
+ "model_config_ESP = model_config_ESP.set_solution(hotstart)\n",
+ "\n",
+ "# Simulate the climatological ESP:\n",
+ "ESP_sims = forecasting.climatology_esp(config=model_config_ESP)\n",
+ "\n",
+ "# Show the results in an xarray dataset, ready to use:\n",
+ "ESP_sims.hydrograph"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "We have now run the hindcast using Climatological ESP and retrieved the results. Let's take a look at the resulting forecast."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2021-09-08T20:34:54.332948Z",
+ "iopub.status.busy": "2021-09-08T20:34:54.332560Z",
+ "iopub.status.idle": "2021-09-08T20:34:54.882568Z",
+ "shell.execute_reply": "2021-09-08T20:34:54.882869Z"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "# Invent an observation so we can compute metrics later, and display as Qobs here. TODO: Add real streamflow data.\n",
+ "qq = ESP_sims.hydrograph.q_sim[0, :, 0]\n",
+ "\n",
+ "# This is to be replaced with a call to the forecast graphing WPS as soon as merged.\n",
+ "# model.q_sim.plot.line(\"b\", x=\"time\")\n",
+ "ESP_sims.hydrograph.q_sim[:, :, 0].plot.line(\"b\", x=\"time\", add_legend=False)\n",
+ "ESP_sims.hydrograph.q_sim[1, :, 0].plot.line(\"b\", x=\"time\", label=\"ESP forecasts\")\n",
+ "qq.plot.line(\"r\", x=\"time\", label=\"observations\")\n",
+ "plt.legend(loc=\"upper left\")\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Hindcasting using archived weather forecasts from a weather forecast model\n",
+ "\n",
+ "In this next part, we will use the CaSPAr dataset (archived weather forecasts from Environment and Climate Change Canada) to forecast flows on the same period using the same hotstart file."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2021-09-08T20:34:54.977578Z",
+ "iopub.status.busy": "2021-09-08T20:34:54.976799Z",
+ "iopub.status.idle": "2021-09-08T20:34:55.346922Z",
+ "shell.execute_reply": "2021-09-08T20:34:55.346595Z"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "# Get the Forecast data from GEPS via CASPAR.\n",
+ "# Take an extra day to ensure time-shift doesn't remove a part of our day\n",
+ "ts_hindcast, _ = get_CASPAR_dataset(\"GEPS\", hdate - dt.timedelta(days=1))\n",
+ "\n",
+ "# Subset the data for the region of interest and take the mean to get a single vector\n",
+ "with xr.set_options(keep_attrs=True):\n",
+ " ts_subset = subset.subset_shape(ts_hindcast, basin_contour).mean(\n",
+ " dim=(\"rlat\", \"rlon\")\n",
+ " )\n",
+ "\n",
+ "ts_subset = ts_subset.resample(time=\"6H\").nearest(\n",
+ " tolerance=\"1H\"\n",
+ ") # To make the timesteps identical accross the entire duration\n",
+ "\n",
+ "# We need to write the hindcast data as a file for Raven to be able to access it.\n",
+ "fname = \"/tmp/hindcast.nc\"\n",
+ "ts_subset.to_netcdf(fname)\n",
+ "\n",
+ "# We need to adjust the data_type and alt_names according to the data in the forecast:\n",
+ "# Set alternative names for netCDF variables\n",
+ "alt_names = {\n",
+ " \"TEMP_AVE\": \"tas\",\n",
+ " \"PRECIP\": \"pr\",\n",
+ "}\n",
+ "\n",
+ "# Data types to extract from netCDF\n",
+ "data_type = [\"TEMP_AVE\", \"PRECIP\"]\n",
+ "\n",
+ "# We will need to reuse this for GR4J. Update according to your needs. For example, here we will also pass\n",
+ "# the catchment latitude and longitude as our CaSPAr data has been averaged at the catchment scale.\n",
+ "# We also need to tell the model to deaccumulate the precipitation and shift it in time by 6 hours for our\n",
+ "# catchment (UTC timezones):\n",
+ "data_kwds = {\n",
+ " \"ALL\": {\n",
+ " \"elevation\": hru[\"elevation\"],\n",
+ " \"Latitude\": hru[\"latitude\"],\n",
+ " \"Longitude\": hru[\"longitude\"],\n",
+ " },\n",
+ " \"PRECIP\": {\n",
+ " \"Deaccumulate\": True,\n",
+ " \"TimeShift\": -0.25,\n",
+ " \"LinearTransform\": {\n",
+ " \"scale\": 1000.0\n",
+ " }, # Since we are deaccumulating, we need to manually specify scale.\n",
+ " }, # Converting meters to mm (multiply by 1000).\n",
+ " \"TEMP_AVE\": {\n",
+ " \"TimeShift\": -0.25,\n",
+ " },\n",
+ "}\n",
+ "\n",
+ "# Model configuration for forecasting, including correct start date and forecast duration\n",
+ "model_config_fcst = GR4JCN(\n",
+ " params=[0.529, -3.396, 407.29, 1.072, 16.9, 0.947],\n",
+ " Gauge=[\n",
+ " rc.Gauge.from_nc(\n",
+ " fname, data_type=data_type, alt_names=alt_names, data_kwds=data_kwds\n",
+ " )\n",
+ " ],\n",
+ " HRUs=[hru],\n",
+ " StartDate=hdate,\n",
+ " Duration=duration,\n",
+ " RunName=\"NB12_forecast_run\",\n",
+ ")\n",
+ "\n",
+ "# Update the initial states\n",
+ "model_config_fcst = model_config_fcst.set_solution(hotstart)\n",
+ "\n",
+ "# Generate the hindcast by providing all necessary information to generate virtual stations representing\n",
+ "# the forecast members\n",
+ "hindcast_sims = forecasting.hindcast_from_meteo_forecast(\n",
+ " model_config_fcst,\n",
+ " forecast=fname,\n",
+ " overwrite=True,\n",
+ " # We also need to provide the necessary information to create gauges inside the forecasting model:\n",
+ " data_kwds=data_kwds,\n",
+ " data_type=data_type,\n",
+ " alt_names=alt_names,\n",
+ ")\n",
+ "\n",
+ "# Display the hydrographs\n",
+ "display(hindcast_sims.hydrograph)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "hindcast_sims.hydrograph.q_sim[:, :, 0].plot.line(\"b\", x=\"time\", add_legend=False)\n",
+ "hindcast_sims.hydrograph.q_sim[1, :, 0].plot.line(\"b\", x=\"time\", label=\"hindcasts\")\n",
+ "qq.plot.line(\"r\", x=\"time\", label=\"observations\")\n",
+ "plt.legend(loc=\"upper left\")\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "The model has run in forecast mode and we can now easily compare results:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "hindcast_sims.hydrograph.q_sim[:, :, 0].plot.line(\"b\", x=\"time\", add_legend=False)\n",
+ "ESP_sims.hydrograph.q_sim[:, :, 0].plot.line(\"g\", x=\"time\", add_legend=False)\n",
+ "ESP_sims.hydrograph.q_sim[1, :, 0].plot.line(\"g\", x=\"time\", label=\"ESP forecasts\")\n",
+ "hindcast_sims.hydrograph.q_sim[1, :, 0].plot.line(\"b\", x=\"time\", label=\"hindcasts\")\n",
+ "qq.plot.line(\"r\", x=\"time\", label=\"observations\")\n",
+ "plt.legend(loc=\"upper left\")\n",
+ "plt.show()"
+ ]
}
- },
- "outputs": [],
- "source": [
- "%matplotlib inline\n",
- "# This entire section is cookie-cutter template to allow calling the servers and instantiating the connection\n",
- "# to the WPS server. Do not modify this block.\n",
- "import datetime as dt\n",
- "\n",
- "import matplotlib.pyplot as plt\n",
- "import xarray as xr\n",
- "from clisops.core import average, subset\n",
- "\n",
- "from ravenpy import Emulator\n",
- "from ravenpy.config import commands as rc\n",
- "from ravenpy.config.emulators import GR4JCN\n",
- "from ravenpy.extractors.forecasts import get_CASPAR_dataset\n",
- "from ravenpy.utilities import forecasting\n",
- "from ravenpy.utilities.testdata import get_file, open_dataset"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Setting up the warm-up file\n",
- "\n",
- "Here we tell the model that we want to forecast over the Salmon River catchment and provide its properties (area, lat/long, elevation). We will run it using the GR4JCN hydrological model and have provided some parameters. Other information on the forecast conditions is provided. Thr first step is to generate a hotstart file to prepare the model to generate forecasts."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "execution": {
- "iopub.execute_input": "2021-09-08T20:34:46.593357Z",
- "iopub.status.busy": "2021-09-08T20:34:46.592812Z",
- "iopub.status.idle": "2021-09-08T20:34:54.155192Z",
- "shell.execute_reply": "2021-09-08T20:34:54.155550Z"
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3 (ipykernel)",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.10.9"
}
- },
- "outputs": [],
- "source": [
- "# Define the warmup period dates\n",
- "start_date_wu = dt.datetime(2010, 1, 1)\n",
- "end_date_wu = dt.datetime(2018, 6, 30)\n",
- "\n",
- "# Define the catchment contour. Here we use the Salmon River file we previously generated using the Delineator\n",
- "# in Tutorial Notebook 01.\n",
- "basin_contour = get_file(\"notebook_inputs/salmon_river.geojson\")\n",
- "\n",
- "# Define some of the catchment properties. Could also be replaced by a call to the properties WPS as in\n",
- "# the Tutorial Notebook 02.\n",
- "hru = {}\n",
- "hru = dict(\n",
- " area=4250.6,\n",
- " elevation=843.0,\n",
- " latitude=54.4848,\n",
- " longitude=-123.3659,\n",
- " hru_type=\"land\",\n",
- ")\n",
- "\n",
- "# Observed weather data for the Salmon river. We extracted this using Tutorial Notebook 03 and the\n",
- "# salmon_river.geojson file as the contour.\n",
- "ts = get_file(\"notebook_inputs/ERA5_weather_data_Salmon.nc\")\n",
- "\n",
- "# Set alternative names for netCDF variables\n",
- "alt_names = {\n",
- " \"TEMP_MIN\": \"tmin\",\n",
- " \"TEMP_MAX\": \"tmax\",\n",
- " \"PRECIP\": \"pr\",\n",
- "}\n",
- "\n",
- "# Data types to extract from netCDF\n",
- "data_type = [\"TEMP_MAX\", \"TEMP_MIN\", \"PRECIP\"]\n",
- "data_kwds = {\n",
- " \"ALL\": {\n",
- " \"elevation\": hru[\"elevation\"],\n",
- " \"Latitude\": hru[\"latitude\"],\n",
- " \"Longitude\": hru[\"longitude\"],\n",
- " },\n",
- "}\n",
- "\n",
- "# Model configuration\n",
- "model_config_warmup = GR4JCN(\n",
- " params=[0.529, -3.396, 407.29, 1.072, 16.9, 0.947],\n",
- " Gauge=[\n",
- " rc.Gauge.from_nc(\n",
- " ts, data_type=data_type, alt_names=alt_names, data_kwds=data_kwds\n",
- " )\n",
- " ],\n",
- " HRUs=[hru],\n",
- " StartDate=start_date_wu,\n",
- " EndDate=end_date_wu,\n",
- " RunName=\"ESP_vs_NWP_warmup\",\n",
- ")\n",
- "\n",
- "# Run the model and get the outputs.\n",
- "out1 = Emulator(config=model_config_warmup).run()\n",
- "\n",
- "# Extract the path to the final states file that will be used as the next initial states\n",
- "hotstart = out1.files[\"solution\"]"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "dss = open_dataset(ts)\n",
- "dss"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Hindcasting using Climatological Ensemble Streamflow Prediction (ESP)\n",
- "Now that we have the hotstart file ready to go, we can configure our model for forecasting in climatology ESP mode:"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "# Date of the hindcast\n",
- "hdate = dt.datetime(2018, 7, 1)\n",
- "\n",
- "# Duration of the hindcast, in days\n",
- "duration = 7\n",
- "\n",
- "# Build a new model config:\n",
- "# Model configuration\n",
- "model_config_ESP = GR4JCN(\n",
- " params=[0.529, -3.396, 407.29, 1.072, 16.9, 0.947],\n",
- " Gauge=[\n",
- " rc.Gauge.from_nc(\n",
- " ts, data_type=data_type, alt_names=alt_names, data_kwds=data_kwds\n",
- " )\n",
- " ],\n",
- " HRUs=[hru],\n",
- " StartDate=hdate,\n",
- " Duration=duration,\n",
- " RunName=\"ESP_vs_NWP_ESPfcst\",\n",
- ")\n",
- "\n",
- "# Set the initial states of this new config to the correct values, i.e. the end of the previous forecast.\n",
- "model_config_ESP = model_config_ESP.set_solution(hotstart)\n",
- "\n",
- "# Simulate the climatological ESP:\n",
- "ESP_sims = forecasting.climatology_esp(config=model_config_ESP)\n",
- "\n",
- "# Show the results in an xarray dataset, ready to use:\n",
- "ESP_sims.hydrograph"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "We have now run the hindcast using Climatological ESP and retrieved the results. Let's take a look at the resulting forecast."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "execution": {
- "iopub.execute_input": "2021-09-08T20:34:54.332948Z",
- "iopub.status.busy": "2021-09-08T20:34:54.332560Z",
- "iopub.status.idle": "2021-09-08T20:34:54.882568Z",
- "shell.execute_reply": "2021-09-08T20:34:54.882869Z"
- }
- },
- "outputs": [],
- "source": [
- "# Invent an observation so we can compute metrics later, and display as Qobs here. TODO: Add real streamflow data.\n",
- "qq = ESP_sims.hydrograph.q_sim[0, :, 0]\n",
- "\n",
- "# This is to be replaced with a call to the forecast graphing WPS as soon as merged.\n",
- "# model.q_sim.plot.line(\"b\", x=\"time\")\n",
- "ESP_sims.hydrograph.q_sim[:, :, 0].plot.line(\"b\", x=\"time\", add_legend=False)\n",
- "ESP_sims.hydrograph.q_sim[1, :, 0].plot.line(\"b\", x=\"time\", label=\"ESP forecasts\")\n",
- "qq.plot.line(\"r\", x=\"time\", label=\"observations\")\n",
- "plt.legend(loc=\"upper left\")\n",
- "plt.show()"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Hindcasting using archived weather forecasts from a weather forecast model\n",
- "\n",
- "In this next part, we will use the CaSPAr dataset (archived weather forecasts from Environment and Climate Change Canada) to forecast flows on the same period using the same hotstart file."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "execution": {
- "iopub.execute_input": "2021-09-08T20:34:54.977578Z",
- "iopub.status.busy": "2021-09-08T20:34:54.976799Z",
- "iopub.status.idle": "2021-09-08T20:34:55.346922Z",
- "shell.execute_reply": "2021-09-08T20:34:55.346595Z"
- }
- },
- "outputs": [],
- "source": [
- "# Get the Forecast data from GEPS via CASPAR.\n",
- "# Take an extra day to ensure time-shift doesn't remove a part of our day\n",
- "ts_hindcast, _ = get_CASPAR_dataset(\"GEPS\", hdate - dt.timedelta(days=1))\n",
- "\n",
- "# Subset the data for the region of interest and take the mean to get a single vector\n",
- "with xr.set_options(keep_attrs=True):\n",
- " ts_subset = subset.subset_shape(ts_hindcast, basin_contour).mean(\n",
- " dim=(\"rlat\", \"rlon\")\n",
- " )\n",
- "\n",
- "ts_subset = ts_subset.resample(time=\"6H\").nearest(\n",
- " tolerance=\"1H\"\n",
- ") # To make the timesteps identical accross the entire duration\n",
- "\n",
- "# We need to write the hindcast data as a file for Raven to be able to access it.\n",
- "fname = \"/tmp/hindcast.nc\"\n",
- "ts_subset.to_netcdf(fname)\n",
- "\n",
- "# We need to adjust the data_type and alt_names according to the data in the forecast:\n",
- "# Set alternative names for netCDF variables\n",
- "alt_names = {\n",
- " \"TEMP_AVE\": \"tas\",\n",
- " \"PRECIP\": \"pr\",\n",
- "}\n",
- "\n",
- "# Data types to extract from netCDF\n",
- "data_type = [\"TEMP_AVE\", \"PRECIP\"]\n",
- "\n",
- "# We will need to reuse this for GR4J. Update according to your needs. For example, here we will also pass\n",
- "# the catchment latitude and longitude as our CaSPAr data has been averaged at the catchment scale.\n",
- "# We also need to tell the model to deaccumulate the precipitation and shift it in time by 6 hours for our\n",
- "# catchment (UTC timezones):\n",
- "data_kwds = {\n",
- " \"ALL\": {\n",
- " \"elevation\": hru[\"elevation\"],\n",
- " \"Latitude\": hru[\"latitude\"],\n",
- " \"Longitude\": hru[\"longitude\"],\n",
- " },\n",
- " \"PRECIP\": {\n",
- " \"Deaccumulate\": True,\n",
- " \"TimeShift\": -0.25,\n",
- " \"LinearTransform\": {\n",
- " \"scale\": 1000.0\n",
- " }, # Since we are deaccumulating, we need to manually specify scale.\n",
- " }, # Converting meters to mm (multiply by 1000).\n",
- " \"TEMP_AVE\": {\n",
- " \"TimeShift\": -0.25,\n",
- " },\n",
- "}\n",
- "\n",
- "# Model configuration for forecasting, including correct start date and forecast duration\n",
- "model_config_fcst = GR4JCN(\n",
- " params=[0.529, -3.396, 407.29, 1.072, 16.9, 0.947],\n",
- " Gauge=[\n",
- " rc.Gauge.from_nc(\n",
- " fname, data_type=data_type, alt_names=alt_names, data_kwds=data_kwds\n",
- " )\n",
- " ],\n",
- " HRUs=[hru],\n",
- " StartDate=hdate,\n",
- " Duration=duration,\n",
- " RunName=\"NB12_forecast_run\",\n",
- ")\n",
- "\n",
- "# Update the initial states\n",
- "model_config_fcst = model_config_fcst.set_solution(hotstart)\n",
- "\n",
- "# Generate the hindcast by providing all necessary information to generate virtual stations representing\n",
- "# the forecast members\n",
- "hindcast_sims = forecasting.hindcast_from_meteo_forecast(\n",
- " model_config_fcst,\n",
- " forecast=fname,\n",
- " overwrite=True,\n",
- " # We also need to provide the necessary information to create gauges inside the forecasting model:\n",
- " data_kwds=data_kwds,\n",
- " data_type=data_type,\n",
- " alt_names=alt_names,\n",
- ")\n",
- "\n",
- "# Display the hydrographs\n",
- "display(hindcast_sims.hydrograph)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "hindcast_sims.hydrograph.q_sim[:, :, 0].plot.line(\"b\", x=\"time\", add_legend=False)\n",
- "hindcast_sims.hydrograph.q_sim[1, :, 0].plot.line(\"b\", x=\"time\", label=\"hindcasts\")\n",
- "qq.plot.line(\"r\", x=\"time\", label=\"observations\")\n",
- "plt.legend(loc=\"upper left\")\n",
- "plt.show()"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "The model has run in forecast mode and we can now easily compare results:"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "hindcast_sims.hydrograph.q_sim[:, :, 0].plot.line(\"b\", x=\"time\", add_legend=False)\n",
- "ESP_sims.hydrograph.q_sim[:, :, 0].plot.line(\"g\", x=\"time\", add_legend=False)\n",
- "ESP_sims.hydrograph.q_sim[1, :, 0].plot.line(\"g\", x=\"time\", label=\"ESP forecasts\")\n",
- "hindcast_sims.hydrograph.q_sim[1, :, 0].plot.line(\"b\", x=\"time\", label=\"hindcasts\")\n",
- "qq.plot.line(\"r\", x=\"time\", label=\"observations\")\n",
- "plt.legend(loc=\"upper left\")\n",
- "plt.show()"
- ]
- }
- ],
- "metadata": {
- "kernelspec": {
- "display_name": "Python 3 (ipykernel)",
- "language": "python",
- "name": "python3"
},
- "language_info": {
- "codemirror_mode": {
- "name": "ipython",
- "version": 3
- },
- "file_extension": ".py",
- "mimetype": "text/x-python",
- "name": "python",
- "nbconvert_exporter": "python",
- "pygments_lexer": "ipython3",
- "version": "3.10.9"
- }
- },
- "nbformat": 4,
- "nbformat_minor": 1
+ "nbformat": 4,
+ "nbformat_minor": 1
}
diff --git a/docs/notebooks/Distributed_hydrological_modelling.ipynb b/docs/notebooks/Distributed_hydrological_modelling.ipynb
index ab884bb6..9e68faac 100644
--- a/docs/notebooks/Distributed_hydrological_modelling.ipynb
+++ b/docs/notebooks/Distributed_hydrological_modelling.ipynb
@@ -1,239 +1,239 @@
{
- "cells": [
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "# Distributed hydrological modelling\n",
- "\n",
- "## Using Ravenpy to build a distributed hydrological model\n",
- "\n",
- "In this notebook, we will demonstrate how to build a distributed hydrological model using Raven as well as \"Routing product\" (Generated by BasinMaker), a database of subbasins and how they link to one another in a river network. Currently, Routing product is only available for North American catchments. However, if in time it becomes available on a larger scale, it would be trivial to change the setup apply it to other supported regions."
- ]
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Distributed hydrological modelling\n",
+ "\n",
+ "## Using Ravenpy to build a distributed hydrological model\n",
+ "\n",
+ "In this notebook, we will demonstrate how to build a distributed hydrological model using Raven as well as \"Routing product\" (Generated by BasinMaker), a database of subbasins and how they link to one another in a river network. Currently, Routing product is only available for North American catchments. However, if in time it becomes available on a larger scale, it would be trivial to change the setup apply it to other supported regions."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Import the list of possible model templates for distributed hydrological modelling\n",
+ "from ravenpy.config.emulators import (\n",
+ " GR4JCN,\n",
+ " HBVEC,\n",
+ " HMETS,\n",
+ " HYPR,\n",
+ " SACSMA,\n",
+ " Blended,\n",
+ " CanadianShield,\n",
+ " Mohyse,\n",
+ ")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import datetime as dt\n",
+ "import tempfile\n",
+ "from pathlib import Path\n",
+ "\n",
+ "import matplotlib.pyplot as plt\n",
+ "import xarray as xr\n",
+ "\n",
+ "from ravenpy import Emulator\n",
+ "from ravenpy.config import commands as rc\n",
+ "from ravenpy.config.emulators import GR4JCN\n",
+ "from ravenpy.extractors.routing_product import (\n",
+ " BasinMakerExtractor,\n",
+ " GridWeightExtractor,\n",
+ " open_shapefile,\n",
+ " upstream_from_coords,\n",
+ ")\n",
+ "from ravenpy.utilities.testdata import get_file, open_dataset\n",
+ "\n",
+ "tmp_path = Path(tempfile.mkdtemp())"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "In the next step, we will get the Routing product file for our catchment. These can be downloaded here: http://hydrology.uwaterloo.ca/basinmaker/download_regional.html"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Get path to pre-downloaded BasinMaker Routing product database for our catchment\n",
+ "shp_path = get_file(\"basinmaker/drainage_region_0175_v2-1/finalcat_info_v2-1.zip\")\n",
+ "\n",
+ "# Note that for this to work, the coordinates must be in the small\n",
+ "# BasinMaker example (drainage_region_0175)\n",
+ "df = open_shapefile(shp_path)\n",
+ "\n",
+ "# Gauge station for observations at Matapedia\n",
+ "# SubId: 175000128\n",
+ "# -67.12542 48.10417\n",
+ "sub = upstream_from_coords(-67.12542, 48.10417, df)\n",
+ "\n",
+ "# Extract the subbasins and HRUs (one HRU per sub-basin)\n",
+ "bm = BasinMakerExtractor(\n",
+ " df=sub,\n",
+ " hru_aspect_convention=\"ArcGIS\",\n",
+ ")\n",
+ "\n",
+ "# Get the .rvh file that we will provide to the config and that links HRUs/subbasins to the river network\n",
+ "rvh = bm.extract(hru_from_sb=True)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Now that we have the HRUs and river network all setup, let's get the hydrometeorological data. We first get the database of streamflows and then do the same for weather. You can provide your own for your own catchments, here we are using our datasets to keep things tidy."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Streamflow observations file\n",
+ "qobs_fn = get_file(\"matapedia/Qobs_Matapedia_01BD009.nc\")\n",
+ "\n",
+ "# Make an obervation gauge from the observed streamflow\n",
+ "qobs = rc.ObservationData.from_nc(qobs_fn, alt_names=(\"discharge\",))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Now prepare the meteorological data using the Gauge format. Note that this dataset of stations is a combination of stations that we iterate on, making a Gauge object for each station in our dataset:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Meteo observations file\n",
+ "meteo_grid_fn = get_file(\"matapedia/Matapedia_meteo_data_stations.nc\")\n",
+ "\n",
+ "# Alternate names for variables in the files\n",
+ "alt_names = {\n",
+ " \"TEMP_MIN\": \"tmin\",\n",
+ " \"TEMP_MAX\": \"tmax\",\n",
+ " \"PRECIP\": \"pr\",\n",
+ "}\n",
+ "\n",
+ "# Make virtual Gauges\n",
+ "meteo_forcing_stations = [\n",
+ " rc.Gauge.from_nc(\n",
+ " meteo_grid_fn,\n",
+ " data_type=alt_names.keys(),\n",
+ " station_idx=i + 1,\n",
+ " alt_names=alt_names,\n",
+ " )\n",
+ " for i in range(6) # Since we have 6 stations\n",
+ "]"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Now that we have the data, we can run the distributed model as usual. Note that we must provide the AVG_ANNUAL_RUNOFF parameter to initialize the catchment's hydrological states for distributed models:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "scrolled": false
+ },
+ "outputs": [],
+ "source": [
+ "# Prepare the model configuration\n",
+ "model_config = GR4JCN(\n",
+ " params=[0.529, -3.396, 407.29, 1.072, 16.9, 0.947],\n",
+ " StartDate=dt.datetime(1998, 1, 1),\n",
+ " EndDate=dt.datetime(2020, 12, 31),\n",
+ " ObservationData=[qobs],\n",
+ " Gauge=meteo_forcing_stations,\n",
+ " GlobalParameter={\"AVG_ANNUAL_RUNOFF\": 40.65},\n",
+ " **rvh,\n",
+ ")\n",
+ "\n",
+ "# Run the model with the configuration we just built\n",
+ "distributed_outputs = Emulator(model_config).run(overwrite=True)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Explore the results, just like for any other model. However, this time we have a few gauges because the Routing Product integrates some gauges already. We want data for the first gauge:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "scrolled": false
+ },
+ "outputs": [],
+ "source": [
+ "# Show the hydrographs object\n",
+ "display(distributed_outputs.hydrograph)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Plot the resulting streamflow\n",
+ "distributed_outputs.hydrograph.q_sim.isel(nbasins=0).plot.line(\n",
+ " x=\"time\", label=\"Distributed model\", color=\"blue\", lw=1.5\n",
+ ")\n",
+ "\n",
+ "# Plot the observed streamflow\n",
+ "qobs_data = open_dataset(qobs_fn)\n",
+ "qobs_data.discharge.plot.line(x=\"time\", label=\"Observations\", color=\"red\", lw=1.5)\n",
+ "\n",
+ "plt.legend()"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3 (ipykernel)",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.10.9"
+ }
},
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "# Import the list of possible model templates for distributed hydrological modelling\n",
- "from ravenpy.config.emulators import (\n",
- " GR4JCN,\n",
- " HBVEC,\n",
- " HMETS,\n",
- " HYPR,\n",
- " SACSMA,\n",
- " Blended,\n",
- " CanadianShield,\n",
- " Mohyse,\n",
- ")"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "import datetime as dt\n",
- "import tempfile\n",
- "from pathlib import Path\n",
- "\n",
- "import matplotlib.pyplot as plt\n",
- "import xarray as xr\n",
- "\n",
- "from ravenpy import Emulator\n",
- "from ravenpy.config import commands as rc\n",
- "from ravenpy.config.emulators import GR4JCN\n",
- "from ravenpy.extractors.routing_product import (\n",
- " BasinMakerExtractor,\n",
- " GridWeightExtractor,\n",
- " open_shapefile,\n",
- " upstream_from_coords,\n",
- ")\n",
- "from ravenpy.utilities.testdata import get_file, open_dataset\n",
- "\n",
- "tmp_path = Path(tempfile.mkdtemp())"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "In the next step, we will get the Routing product file for our catchment. These can be downloaded here: http://hydrology.uwaterloo.ca/basinmaker/download_regional.html"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "# Get path to pre-downloaded BasinMaker Routing product database for our catchment\n",
- "shp_path = get_file(\"basinmaker/drainage_region_0175_v2-1/finalcat_info_v2-1.zip\")\n",
- "\n",
- "# Note that for this to work, the coordinates must be in the small\n",
- "# BasinMaker example (drainage_region_0175)\n",
- "df = open_shapefile(shp_path)\n",
- "\n",
- "# Gauge station for observations at Matapedia\n",
- "# SubId: 175000128\n",
- "# -67.12542 48.10417\n",
- "sub = upstream_from_coords(-67.12542, 48.10417, df)\n",
- "\n",
- "# Extract the subbasins and HRUs (one HRU per sub-basin)\n",
- "bm = BasinMakerExtractor(\n",
- " df=sub,\n",
- " hru_aspect_convention=\"ArcGIS\",\n",
- ")\n",
- "\n",
- "# Get the .rvh file that we will provide to the config and that links HRUs/subbasins to the river network\n",
- "rvh = bm.extract(hru_from_sb=True)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Now that we have the HRUs and river network all setup, let's get the hydrometeorological data. We first get the database of streamflows and then do the same for weather. You can provide your own for your own catchments, here we are using our datasets to keep things tidy."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "# Streamflow observations file\n",
- "qobs_fn = get_file(\"matapedia/Qobs_Matapedia_01BD009.nc\")\n",
- "\n",
- "# Make an obervation gauge from the observed streamflow\n",
- "qobs = rc.ObservationData.from_nc(qobs_fn, alt_names=(\"discharge\",))"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Now prepare the meteorological data using the Gauge format. Note that this dataset of stations is a combination of stations that we iterate on, making a Gauge object for each station in our dataset:"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "# Meteo observations file\n",
- "meteo_grid_fn = get_file(\"matapedia/Matapedia_meteo_data_stations.nc\")\n",
- "\n",
- "# Alternate names for variables in the files\n",
- "alt_names = {\n",
- " \"TEMP_MIN\": \"tmin\",\n",
- " \"TEMP_MAX\": \"tmax\",\n",
- " \"PRECIP\": \"pr\",\n",
- "}\n",
- "\n",
- "# Make virtual Gauges\n",
- "meteo_forcing_stations = [\n",
- " rc.Gauge.from_nc(\n",
- " meteo_grid_fn,\n",
- " data_type=alt_names.keys(),\n",
- " station_idx=i + 1,\n",
- " alt_names=alt_names,\n",
- " )\n",
- " for i in range(6) # Since we have 6 stations\n",
- "]"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Now that we have the data, we can run the distributed model as usual. Note that we must provide the AVG_ANNUAL_RUNOFF parameter to initialize the catchment's hydrological states for distributed models:"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "scrolled": false
- },
- "outputs": [],
- "source": [
- "# Prepare the model configuration\n",
- "model_config = GR4JCN(\n",
- " params=[0.529, -3.396, 407.29, 1.072, 16.9, 0.947],\n",
- " StartDate=dt.datetime(1998, 1, 1),\n",
- " EndDate=dt.datetime(2020, 12, 31),\n",
- " ObservationData=[qobs],\n",
- " Gauge=meteo_forcing_stations,\n",
- " GlobalParameter={\"AVG_ANNUAL_RUNOFF\": 40.65},\n",
- " **rvh,\n",
- ")\n",
- "\n",
- "# Run the model with the configuration we just built\n",
- "distributed_outputs = Emulator(model_config).run(overwrite=True)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Explore the results, just like for any other model. However, this time we have a few gauges because the Routing Product integrates some gauges already. We want data for the first gauge:"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "scrolled": false
- },
- "outputs": [],
- "source": [
- "# Show the hydrographs object\n",
- "display(distributed_outputs.hydrograph)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "# Plot the resulting streamflow\n",
- "distributed_outputs.hydrograph.q_sim.isel(nbasins=0).plot.line(\n",
- " x=\"time\", label=\"Distributed model\", color=\"blue\", lw=1.5\n",
- ")\n",
- "\n",
- "# Plot the observed streamflow\n",
- "qobs_data = open_dataset(qobs_fn)\n",
- "qobs_data.discharge.plot.line(x=\"time\", label=\"Observations\", color=\"red\", lw=1.5)\n",
- "\n",
- "plt.legend()"
- ]
- }
- ],
- "metadata": {
- "kernelspec": {
- "display_name": "Python 3 (ipykernel)",
- "language": "python",
- "name": "python3"
- },
- "language_info": {
- "codemirror_mode": {
- "name": "ipython",
- "version": 3
- },
- "file_extension": ".py",
- "mimetype": "text/x-python",
- "name": "python",
- "nbconvert_exporter": "python",
- "pygments_lexer": "ipython3",
- "version": "3.10.9"
- }
- },
- "nbformat": 4,
- "nbformat_minor": 4
+ "nbformat": 4,
+ "nbformat_minor": 4
}
diff --git a/docs/notebooks/HydroShare_integration.ipynb b/docs/notebooks/HydroShare_integration.ipynb
index 2fa10331..93977d6e 100644
--- a/docs/notebooks/HydroShare_integration.ipynb
+++ b/docs/notebooks/HydroShare_integration.ipynb
@@ -1,224 +1,224 @@
{
- "cells": [
- {
- "cell_type": "markdown",
- "metadata": {
- "id": "HHsuQMMJyms4"
- },
- "source": [
- "# Accessing HydroShare content\n",
- "\n",
- "The following code snippets show examples for how to use the HydroShare Python Client for search and acquire data. See the [documentation](https://hydroshare.github.io/hsclient/) to explore further."
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {
- "id": "CZNOazcn9-23"
- },
- "source": [
- "## Authenticating with HydroShare\n",
- "\n",
- "Before you start interacting with resources in HydroShare you will need to authenticate. Just call `hsclient.Hydroshare()` to be prompted for your username and password. You may also pass your credentials programatically. For this public notebook, we use a token and client_id to authenticate. "
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": []
- },
- {
- "cell_type": "code",
- "execution_count": 1,
- "metadata": {
- "tags": []
- },
- "outputs": [],
- "source": [
- "import os\n",
- "\n",
- "from hsclient import HydroShare, Token\n",
- "\n",
- "# Authentication method using username and password\n",
- "\"\"\"\n",
- "username = 'XXXXX'\n",
- "password = 'XXXXX'\n",
- "hs = HydroShare(username=username, password=password)\n",
- "\"\"\"\n",
- "\n",
- "client_id = os.environ.get(\"HYDROSHARE_AUTH_CLIENT_ID\", \"\")\n",
- "access_token = os.environ.get(\"HYDROSHARE_AUTH_TOKEN\", \"\")\n",
- "\n",
- "token = Token(access_token=access_token, token_type=\"bearer\")\n",
- "hs = HydroShare(client_id=client_id, token=token)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Now that we're authenticated, let's search for data from the 2017 Harvey flood. "
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 2,
- "metadata": {
- "tags": []
- },
- "outputs": [
+ "cells": [
{
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "test harvey netcdf file : 75d17f265dba4c8396725cf98f652302\n",
- "RAPID: Archiving and Enabling Community Access to Data from Recent US Hurricanes : 564b6d73040142579ad3236e1aeb4712\n",
- "Hurricane Harvey 2017 Collection : 2836494ee75e43a9bfb647b37260e461\n",
- "USGS - Harvey Gaged Streamflow Timeseries : 51d1539bf6e94b15ac33f7631228118c\n",
- "Harvey Flood Data Collections : 12e69ee668124fdf833b29b5167e03c3\n",
- "NOAA NHC - Harvey 2017 Storm Track : 6168b9969c984b658952a896710b65ef\n",
- "USGS - Harvey High Water Marks : 615d426f70cc4346875c725b4b8fdc59\n",
- "Harvey Basemap Data Collections : 7661752c688a4f3ebcf58f8657773530\n",
- "Texas-Harvey Basemap - Addresses and Boundaries : d2bab32e7c1d4d55b8cba7221e51b02d\n",
- "Preserving a Flood of Data: Hurricane Harvey 2017 Data Archive : 64f6af3dcea4475688cac0d6b4917d8d\n",
- "Hurricane Harvey Streamflow Preview Notebook : 4c089adbbad74aeda3932d8ff283b2b5\n",
- "Harvey Basemap - Hydrology Map Data : adb14c9c073e4eee8be82fadb21a0a93\n",
- "Civil Air Patrol - Harvey Oblique Aerial Photos : 85c5f592e347452a84f552f17a9a05c1\n",
- "CDC Social Vulnerability Index 2014 : c2df2a80b9d6490788704a24854f4879\n",
- "HUC 120200 : a29b1b3c4889429bb23072c214e432e8\n",
- "Hurricane Harvey NWM Subsetting Exercise : 3db192783bcb4599bab36d43fc3413db\n",
- "NOAA NHC - Irma Storm Track - Best Track + Advisories : aa5c9982a4694a19be2fa9299b78e5ca\n",
- "Hurricane Harvey 2017 Story Map : 8161a96a08474d12bba219852409be61\n",
- "Perspectives on research gaps from the differences amongst Hurricane Harvey, Irma and Maria : 7be94dcca60c428e81a6846e97122579\n",
- "Hurricane Harvey NWIS Data : 2f469f714ea541dc86b6578066e7815f\n",
- "Data for \"A Computationally Efficient and Physically Based Approach for Urban Flood Modeling Using a Flexible Spatiotemporal Structure\" : e314ed52a83a46dd9e575304c299bd83\n",
- "Test for versioning published resource : c4037062b89d4e989b66a60b6ef176e4\n",
- "Test Collection Inner : c34cacb091074999aba351698eba3861\n",
- "FEMA - Harvey Damage Assessments and Claims : a52d209d46eb42578be0a7472c48e2d5\n",
- "FEMA - Harvey Flood Depths Grid : e8768f4cb4d5478a96d2b1cbd00d9e85\n",
- "ECMWF GloFAS - Harvey+Irma Flood Area Grids : 9ff2b9ad3eb74b06a5af8491c399ee57\n",
- "NOAA NWC - Harvey National Water Model Streamflow Forecasts : 35d4502200764c2985c24ae5c8836ab9\n",
- "Hurricane Harvey flood inundation simulation : fae24734d6fc47be8bf0b54d6a175d86\n",
- "Coupling coastal and hydrologic models through BMI and Nextgen National Water Model Framework in low gradient coastal regions of Galveston Bay, Texas, USA Results : 379b4c8c663c460d87c246641dc5cea2\n",
- "IGUIDE Shapefile Testing Resource : 9d413b9d57824a79b8239a5f7c4fdf51\n"
- ]
- }
- ],
- "source": [
- "results = hs.search(subject=[\"Harvey\"])\n",
- "for r in results:\n",
- " print(r.resource_title, \": \", r.resource_id)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "HydroShare resources are identified uniquely by their `resource_id`. Here we use the ID for the `USGS - Harvey Gaged Streamflow Timeseries` to see which files are stored. "
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 3,
- "metadata": {
- "tags": []
- },
- "outputs": [
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "HHsuQMMJyms4"
+ },
+ "source": [
+ "# Accessing HydroShare content\n",
+ "\n",
+ "The following code snippets show examples for how to use the HydroShare Python Client for search and acquire data. See the [documentation](https://hydroshare.github.io/hsclient/) to explore further."
+ ]
+ },
{
- "data": {
- "text/plain": [
- "['USGS_Gages_TxLaMsAr_shapefile/USGS_Gages_TxLaMsAr.dbf',\n",
- " 'USGS_Gages_TxLaMsAr_shapefile.zip',\n",
- " 'download_usgs_gage_height_inst.R',\n",
- " 'USGS_gage_discharge_timeseries.zip',\n",
- " 'USGS_Harvey_gages_TxLaMsAr.csv',\n",
- " 'README.md',\n",
- " 'USGS_Gages_TxLaMsAr_shapefile/USGS_Gages_TxLaMsAr.prj',\n",
- " 'USGS gage timeseries example.png',\n",
- " 'USGS-NWS gages in Harvey study area.png',\n",
- " 'USGS_Gages_TxLaMsAr_shapefile/USGS_Gages_TxLaMsAr.shp',\n",
- " 'USGS_Gages_TxLaMsAr_shapefile/USGS_Gages_TxLaMsAr.shx',\n",
- " 'USGS_Gages_TxLaMsAr_shapefile/USGS_Gages_TxLaMsAr.shp.xml',\n",
- " 'USGS_gage_height_timeseries.zip',\n",
- " 'README-USGS Gaged Streamflow Timeseries.pdf',\n",
- " 'USGS_Gages_TxLaMsAr_shapefile/USGS_Gages_TxLaMsAr.cpg',\n",
- " 'USGS_Gages_TxLaMsAr_shapefile/USGS_Gages_TxLaMsAr.sbx',\n",
- " 'USGS_Gages_TxLaMsAr_shapefile/USGS_Gages_TxLaMsAr.sbn',\n",
- " 'download_usgs_gage_discharge_inst.R']"
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "CZNOazcn9-23"
+ },
+ "source": [
+ "## Authenticating with HydroShare\n",
+ "\n",
+ "Before you start interacting with resources in HydroShare you will need to authenticate. Just call `hsclient.Hydroshare()` to be prompted for your username and password. You may also pass your credentials programatically. For this public notebook, we use a token and client_id to authenticate. "
]
- },
- "execution_count": 3,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "res = hs.resource(\"51d1539bf6e94b15ac33f7631228118c\", validate=False)\n",
- "res.files()"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Now we can simply use the `file_download` method to save a copy locally. "
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 4,
- "metadata": {
- "tags": []
- },
- "outputs": [
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "import os\n",
+ "\n",
+ "from hsclient import HydroShare, Token\n",
+ "\n",
+ "# Authentication method using username and password\n",
+ "\"\"\"\n",
+ "username = 'XXXXX'\n",
+ "password = 'XXXXX'\n",
+ "hs = HydroShare(username=username, password=password)\n",
+ "\"\"\"\n",
+ "\n",
+ "client_id = os.environ.get(\"HYDROSHARE_AUTH_CLIENT_ID\", \"\")\n",
+ "access_token = os.environ.get(\"HYDROSHARE_AUTH_TOKEN\", \"\")\n",
+ "\n",
+ "token = Token(access_token=access_token, token_type=\"bearer\")\n",
+ "hs = HydroShare(client_id=client_id, token=token)"
+ ]
+ },
{
- "data": {
- "text/plain": [
- "'/tmp/USGS_Harvey_gages_TxLaMsAr.csv'"
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Now that we're authenticated, let's search for data from the 2017 Harvey flood. "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "test harvey netcdf file : 75d17f265dba4c8396725cf98f652302\n",
+ "RAPID: Archiving and Enabling Community Access to Data from Recent US Hurricanes : 564b6d73040142579ad3236e1aeb4712\n",
+ "Hurricane Harvey 2017 Collection : 2836494ee75e43a9bfb647b37260e461\n",
+ "USGS - Harvey Gaged Streamflow Timeseries : 51d1539bf6e94b15ac33f7631228118c\n",
+ "Harvey Flood Data Collections : 12e69ee668124fdf833b29b5167e03c3\n",
+ "NOAA NHC - Harvey 2017 Storm Track : 6168b9969c984b658952a896710b65ef\n",
+ "USGS - Harvey High Water Marks : 615d426f70cc4346875c725b4b8fdc59\n",
+ "Harvey Basemap Data Collections : 7661752c688a4f3ebcf58f8657773530\n",
+ "Texas-Harvey Basemap - Addresses and Boundaries : d2bab32e7c1d4d55b8cba7221e51b02d\n",
+ "Preserving a Flood of Data: Hurricane Harvey 2017 Data Archive : 64f6af3dcea4475688cac0d6b4917d8d\n",
+ "Hurricane Harvey Streamflow Preview Notebook : 4c089adbbad74aeda3932d8ff283b2b5\n",
+ "Harvey Basemap - Hydrology Map Data : adb14c9c073e4eee8be82fadb21a0a93\n",
+ "Civil Air Patrol - Harvey Oblique Aerial Photos : 85c5f592e347452a84f552f17a9a05c1\n",
+ "CDC Social Vulnerability Index 2014 : c2df2a80b9d6490788704a24854f4879\n",
+ "HUC 120200 : a29b1b3c4889429bb23072c214e432e8\n",
+ "Hurricane Harvey NWM Subsetting Exercise : 3db192783bcb4599bab36d43fc3413db\n",
+ "NOAA NHC - Irma Storm Track - Best Track + Advisories : aa5c9982a4694a19be2fa9299b78e5ca\n",
+ "Hurricane Harvey 2017 Story Map : 8161a96a08474d12bba219852409be61\n",
+ "Perspectives on research gaps from the differences amongst Hurricane Harvey, Irma and Maria : 7be94dcca60c428e81a6846e97122579\n",
+ "Hurricane Harvey NWIS Data : 2f469f714ea541dc86b6578066e7815f\n",
+ "Data for \"A Computationally Efficient and Physically Based Approach for Urban Flood Modeling Using a Flexible Spatiotemporal Structure\" : e314ed52a83a46dd9e575304c299bd83\n",
+ "Test for versioning published resource : c4037062b89d4e989b66a60b6ef176e4\n",
+ "Test Collection Inner : c34cacb091074999aba351698eba3861\n",
+ "FEMA - Harvey Damage Assessments and Claims : a52d209d46eb42578be0a7472c48e2d5\n",
+ "FEMA - Harvey Flood Depths Grid : e8768f4cb4d5478a96d2b1cbd00d9e85\n",
+ "ECMWF GloFAS - Harvey+Irma Flood Area Grids : 9ff2b9ad3eb74b06a5af8491c399ee57\n",
+ "NOAA NWC - Harvey National Water Model Streamflow Forecasts : 35d4502200764c2985c24ae5c8836ab9\n",
+ "Hurricane Harvey flood inundation simulation : fae24734d6fc47be8bf0b54d6a175d86\n",
+ "Coupling coastal and hydrologic models through BMI and Nextgen National Water Model Framework in low gradient coastal regions of Galveston Bay, Texas, USA Results : 379b4c8c663c460d87c246641dc5cea2\n",
+ "IGUIDE Shapefile Testing Resource : 9d413b9d57824a79b8239a5f7c4fdf51\n"
+ ]
+ }
+ ],
+ "source": [
+ "results = hs.search(subject=[\"Harvey\"])\n",
+ "for r in results:\n",
+ " print(r.resource_title, \": \", r.resource_id)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "HydroShare resources are identified uniquely by their `resource_id`. Here we use the ID for the `USGS - Harvey Gaged Streamflow Timeseries` to see which files are stored. "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "['USGS_Gages_TxLaMsAr_shapefile/USGS_Gages_TxLaMsAr.dbf',\n",
+ " 'USGS_Gages_TxLaMsAr_shapefile.zip',\n",
+ " 'download_usgs_gage_height_inst.R',\n",
+ " 'USGS_gage_discharge_timeseries.zip',\n",
+ " 'USGS_Harvey_gages_TxLaMsAr.csv',\n",
+ " 'README.md',\n",
+ " 'USGS_Gages_TxLaMsAr_shapefile/USGS_Gages_TxLaMsAr.prj',\n",
+ " 'USGS gage timeseries example.png',\n",
+ " 'USGS-NWS gages in Harvey study area.png',\n",
+ " 'USGS_Gages_TxLaMsAr_shapefile/USGS_Gages_TxLaMsAr.shp',\n",
+ " 'USGS_Gages_TxLaMsAr_shapefile/USGS_Gages_TxLaMsAr.shx',\n",
+ " 'USGS_Gages_TxLaMsAr_shapefile/USGS_Gages_TxLaMsAr.shp.xml',\n",
+ " 'USGS_gage_height_timeseries.zip',\n",
+ " 'README-USGS Gaged Streamflow Timeseries.pdf',\n",
+ " 'USGS_Gages_TxLaMsAr_shapefile/USGS_Gages_TxLaMsAr.cpg',\n",
+ " 'USGS_Gages_TxLaMsAr_shapefile/USGS_Gages_TxLaMsAr.sbx',\n",
+ " 'USGS_Gages_TxLaMsAr_shapefile/USGS_Gages_TxLaMsAr.sbn',\n",
+ " 'download_usgs_gage_discharge_inst.R']"
+ ]
+ },
+ "execution_count": 3,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "res = hs.resource(\"51d1539bf6e94b15ac33f7631228118c\", validate=False)\n",
+ "res.files()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Now we can simply use the `file_download` method to save a copy locally. "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "'/tmp/USGS_Harvey_gages_TxLaMsAr.csv'"
+ ]
+ },
+ "execution_count": 4,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "res.file_download(\"USGS_Harvey_gages_TxLaMsAr.csv\", save_path=\"/tmp\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "From here, the data are stored locally and can be integrated into workflows.\n"
]
- },
- "execution_count": 4,
- "metadata": {},
- "output_type": "execute_result"
}
- ],
- "source": [
- "res.file_download(\"USGS_Harvey_gages_TxLaMsAr.csv\", save_path=\"/tmp\")"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "From here, the data are stored locally and can be integrated into workflows.\n"
- ]
- }
- ],
- "metadata": {
- "colab": {
- "collapsed_sections": [],
- "name": "HS_RDF_Examples.ipynb",
- "provenance": [],
- "toc_visible": true
- },
- "kernelspec": {
- "display_name": "Python 3 (ipykernel)",
- "language": "python",
- "name": "python3"
+ ],
+ "metadata": {
+ "colab": {
+ "collapsed_sections": [],
+ "name": "HS_RDF_Examples.ipynb",
+ "provenance": [],
+ "toc_visible": true
+ },
+ "kernelspec": {
+ "display_name": "Python 3 (ipykernel)",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.9.16"
+ }
},
- "language_info": {
- "codemirror_mode": {
- "name": "ipython",
- "version": 3
- },
- "file_extension": ".py",
- "mimetype": "text/x-python",
- "name": "python",
- "nbconvert_exporter": "python",
- "pygments_lexer": "ipython3",
- "version": "3.9.16"
- }
- },
- "nbformat": 4,
- "nbformat_minor": 4
+ "nbformat": 4,
+ "nbformat_minor": 4
}
diff --git a/docs/notebooks/Hydrological_realtime_forecasting.ipynb b/docs/notebooks/Hydrological_realtime_forecasting.ipynb
index 3fc7e182..5a880246 100644
--- a/docs/notebooks/Hydrological_realtime_forecasting.ipynb
+++ b/docs/notebooks/Hydrological_realtime_forecasting.ipynb
@@ -1,271 +1,271 @@
{
- "cells": [
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "# Real-time flow forecasts with ECCC weather forecasts\n",
- "\n",
- "This notebook shows how to perform a streamflow forecast, using ECCC weather forecasts. Generates the forecasts and plots them."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "execution": {
- "iopub.execute_input": "2021-09-08T20:35:47.455423Z",
- "iopub.status.busy": "2021-09-08T20:35:47.455017Z",
- "iopub.status.idle": "2021-09-08T20:35:49.547045Z",
- "shell.execute_reply": "2021-09-08T20:35:49.546636Z"
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Real-time flow forecasts with ECCC weather forecasts\n",
+ "\n",
+ "This notebook shows how to perform a streamflow forecast, using ECCC weather forecasts. Generates the forecasts and plots them."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2021-09-08T20:35:47.455423Z",
+ "iopub.status.busy": "2021-09-08T20:35:47.455017Z",
+ "iopub.status.idle": "2021-09-08T20:35:49.547045Z",
+ "shell.execute_reply": "2021-09-08T20:35:49.546636Z"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "%matplotlib inline\n",
+ "\n",
+ "# Import the required packages\n",
+ "\n",
+ "import datetime as dt\n",
+ "\n",
+ "import fiona\n",
+ "import matplotlib.pyplot as plt\n",
+ "import xarray as xr\n",
+ "from clisops.core import average, subset\n",
+ "\n",
+ "from ravenpy import Emulator\n",
+ "from ravenpy.config import commands as rc\n",
+ "from ravenpy.config.emulators import GR4JCN\n",
+ "from ravenpy.extractors.forecasts import get_recent_ECCC_forecast\n",
+ "from ravenpy.utilities import forecasting\n",
+ "from ravenpy.utilities.testdata import get_file, open_dataset"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Define the catchment contour. Here we use the Salmon River file we previously generated using the Delineator\n",
+ "# in Tutorial Notebook 01.\n",
+ "basin_contour = get_file(\"notebook_inputs/salmon_river.geojson\")\n",
+ "\n",
+ "# Get the most recent ECCC forecast data from the Geomet extraction tool:\n",
+ "forecast_data = get_recent_ECCC_forecast(\n",
+ " fiona.open(basin_contour), climate_model=\"GEPS\"\n",
+ ")\n",
+ "display(forecast_data)\n",
+ "\n",
+ "# We need to write the forecast data as a file for Raven to be able to access it.\n",
+ "fname = \"/tmp/forecast.nc\"\n",
+ "forecast_data.to_netcdf(fname)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2021-09-08T20:35:49.551680Z",
+ "iopub.status.busy": "2021-09-08T20:35:49.551277Z",
+ "iopub.status.idle": "2021-09-08T20:35:58.407199Z",
+ "shell.execute_reply": "2021-09-08T20:35:58.406725Z"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "# Define the warmup period dates. Our weather file ends before the forecast date so our states will not be as\n",
+ "# good as those of a model run operationally.\n",
+ "start_date_wu = dt.datetime(2010, 1, 1)\n",
+ "end_date_wu = dt.datetime(2020, 3, 30)\n",
+ "\n",
+ "# Define some catchment properties. Could also be replaced by a call to the properties WPS as in\n",
+ "# the Tutorial Notebook 02.\n",
+ "hru = dict(\n",
+ " area=4250.6,\n",
+ " elevation=843.0,\n",
+ " latitude=54.4848,\n",
+ " longitude=-123.3659,\n",
+ " hru_type=\"land\",\n",
+ ")\n",
+ "\n",
+ "# Observed weather data for the Salmon river. We extracted this using Tutorial Notebook 03 and the\n",
+ "# salmon_river.geojson file as the contour. Used for the model warm-up.\n",
+ "ts = get_file(\"notebook_inputs/ERA5_weather_data_Salmon.nc\")\n",
+ "\n",
+ "# Set alternative names for netCDF variables\n",
+ "alt_names = {\n",
+ " \"TEMP_MIN\": \"tmin\",\n",
+ " \"TEMP_MAX\": \"tmax\",\n",
+ " \"PRECIP\": \"pr\",\n",
+ "}\n",
+ "\n",
+ "# Data types to extract from netCDF\n",
+ "data_type = [\"TEMP_MAX\", \"TEMP_MIN\", \"PRECIP\"]\n",
+ "data_kwds = {\n",
+ " \"ALL\": {\n",
+ " \"elevation\": hru[\"elevation\"],\n",
+ " \"Latitude\": hru[\"latitude\"],\n",
+ " \"Longitude\": hru[\"longitude\"],\n",
+ " },\n",
+ "}\n",
+ "\n",
+ "# Model configuration\n",
+ "model_config_warmup = GR4JCN(\n",
+ " params=[0.529, -3.396, 407.29, 1.072, 16.9, 0.947],\n",
+ " Gauge=[\n",
+ " rc.Gauge.from_nc(\n",
+ " ts, data_type=data_type, alt_names=alt_names, data_kwds=data_kwds\n",
+ " )\n",
+ " ],\n",
+ " HRUs=[hru],\n",
+ " StartDate=start_date_wu,\n",
+ " EndDate=end_date_wu,\n",
+ " RunName=\"ESP_vs_NWP_warmup\",\n",
+ ")\n",
+ "\n",
+ "# Run the model and get the outputs.\n",
+ "out1 = Emulator(config=model_config_warmup).run()\n",
+ "\n",
+ "# Extract the path to the final states file that will be used as the next initial states\n",
+ "hotstart = out1.files[\"solution\"]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Length of the desired forecast, in days\n",
+ "duration = 7\n",
+ "\n",
+ "# We need to adjust the data_type and alt_names according to the data in the forecast:\n",
+ "# Set alternative names for netCDF variables\n",
+ "alt_names = {\n",
+ " \"TEMP_AVE\": \"tas\",\n",
+ " \"PRECIP\": \"pr\",\n",
+ "}\n",
+ "\n",
+ "# Data types to extract from netCDF\n",
+ "data_type = [\"TEMP_AVE\", \"PRECIP\"]\n",
+ "\n",
+ "# We will need to reuse this for GR4J. Update according to your needs. For example, here we will also pass\n",
+ "# the catchment latitude and longitude as our CaSPAr data has been averaged at the catchment scale.\n",
+ "# We also need to tell the model to deaccumulate the precipitation and shift it in time by 6 hours for our\n",
+ "# catchment (UTC timezones):\n",
+ "data_kwds = {\n",
+ " \"ALL\": {\n",
+ " \"elevation\": hru[\"elevation\"],\n",
+ " \"Latitude\": hru[\"latitude\"],\n",
+ " \"Longitude\": hru[\"longitude\"],\n",
+ " },\n",
+ " \"PRECIP\": {\n",
+ " \"Deaccumulate\": True,\n",
+ " \"TimeShift\": -0.25,\n",
+ " \"LinearTransform\": {\n",
+ " \"scale\": 1.0\n",
+ " }, # Since we are deaccumulating, we need to manually specify scale.\n",
+ " }, # We are already in mm, so leave it like so (scale = 1.0).\n",
+ " \"TEMP_AVE\": {\n",
+ " \"TimeShift\": -0.25,\n",
+ " },\n",
+ "}\n",
+ "\n",
+ "# ECCC forecast time format is a bit complex to work with, so we will use cftime to make it more manageable.\n",
+ "fcst_tmp = open_dataset(fname, use_cftime=True)\n",
+ "\n",
+ "# Get the first timestep that will be used for the model simulation\n",
+ "start_date = fcst_tmp.time.data[0] + dt.timedelta(days=1)\n",
+ "\n",
+ "# Model configuration for forecasting, including correct start date and forecast duration and initial state\n",
+ "model_config_fcst = GR4JCN(\n",
+ " params=[0.529, -3.396, 407.29, 1.072, 16.9, 0.947],\n",
+ " Gauge=[\n",
+ " rc.Gauge.from_nc(\n",
+ " fname, data_type=data_type, alt_names=alt_names, data_kwds=data_kwds\n",
+ " )\n",
+ " ],\n",
+ " HRUs=[hru],\n",
+ " StartDate=start_date,\n",
+ " Duration=duration,\n",
+ " RunName=\"Realtime_forecast_NB\",\n",
+ ").set_solution(hotstart, timestamp=False)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "scrolled": false
+ },
+ "outputs": [],
+ "source": [
+ "# Generate the forecast by providing all necessary information to generate virtual stations representing\n",
+ "# the forecast members. Note that we are using the hindcasting tools, becasue there is effectively no difference\n",
+ "# between operational hindcasting and operational forecasting except for the forecast issue time and data\n",
+ "# availability, which we solved by using the most recent ECCC forecasts with a warmed-up model and hotstart file.\n",
+ "\n",
+ "forecast_sims = forecasting.hindcast_from_meteo_forecast(\n",
+ " model_config_fcst,\n",
+ " forecast=fname,\n",
+ " ens_dim=\"members\",\n",
+ " # We also need to provide the necessary information to create gauges inside the forecasting model:\n",
+ " data_kwds=data_kwds,\n",
+ " data_type=data_type,\n",
+ " alt_names=alt_names,\n",
+ ")\n",
+ "\n",
+ "display(forecast_sims.hydrograph)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## And, for visual representation of the forecasts:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Simulate an observed streamflow timeseries: Here we take a member from the ensemble, but you should use your own\n",
+ "# observed timeseries:\n",
+ "qq = forecast_sims.hydrograph.q_sim[0, :, 0]\n",
+ "\n",
+ "# This is to be replaced with a call to the forecast graphing WPS as soon as merged.\n",
+ "# model.q_sim.plot.line(\"b\", x=\"time\")\n",
+ "forecast_sims.hydrograph.q_sim[:, :, 0].plot.line(\"b\", x=\"time\", add_legend=False)\n",
+ "forecast_sims.hydrograph.q_sim[1, :, 0].plot.line(\"b\", x=\"time\", label=\"forecasts\")\n",
+ "qq.plot.line(\"r\", x=\"time\", label=\"observations\")\n",
+ "plt.legend(loc=\"upper left\")\n",
+ "plt.show()"
+ ]
}
- },
- "outputs": [],
- "source": [
- "%matplotlib inline\n",
- "\n",
- "# Import the required packages\n",
- "\n",
- "import datetime as dt\n",
- "\n",
- "import fiona\n",
- "import matplotlib.pyplot as plt\n",
- "import xarray as xr\n",
- "from clisops.core import average, subset\n",
- "\n",
- "from ravenpy import Emulator\n",
- "from ravenpy.config import commands as rc\n",
- "from ravenpy.config.emulators import GR4JCN\n",
- "from ravenpy.extractors.forecasts import get_recent_ECCC_forecast\n",
- "from ravenpy.utilities import forecasting\n",
- "from ravenpy.utilities.testdata import get_file, open_dataset"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "# Define the catchment contour. Here we use the Salmon River file we previously generated using the Delineator\n",
- "# in Tutorial Notebook 01.\n",
- "basin_contour = get_file(\"notebook_inputs/salmon_river.geojson\")\n",
- "\n",
- "# Get the most recent ECCC forecast data from the Geomet extraction tool:\n",
- "forecast_data = get_recent_ECCC_forecast(\n",
- " fiona.open(basin_contour), climate_model=\"GEPS\"\n",
- ")\n",
- "display(forecast_data)\n",
- "\n",
- "# We need to write the forecast data as a file for Raven to be able to access it.\n",
- "fname = \"/tmp/forecast.nc\"\n",
- "forecast_data.to_netcdf(fname)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "execution": {
- "iopub.execute_input": "2021-09-08T20:35:49.551680Z",
- "iopub.status.busy": "2021-09-08T20:35:49.551277Z",
- "iopub.status.idle": "2021-09-08T20:35:58.407199Z",
- "shell.execute_reply": "2021-09-08T20:35:58.406725Z"
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3 (ipykernel)",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.10.9"
}
- },
- "outputs": [],
- "source": [
- "# Define the warmup period dates. Our weather file ends before the forecast date so our states will not be as\n",
- "# good as those of a model run operationally.\n",
- "start_date_wu = dt.datetime(2010, 1, 1)\n",
- "end_date_wu = dt.datetime(2020, 3, 30)\n",
- "\n",
- "# Define some catchment properties. Could also be replaced by a call to the properties WPS as in\n",
- "# the Tutorial Notebook 02.\n",
- "hru = dict(\n",
- " area=4250.6,\n",
- " elevation=843.0,\n",
- " latitude=54.4848,\n",
- " longitude=-123.3659,\n",
- " hru_type=\"land\",\n",
- ")\n",
- "\n",
- "# Observed weather data for the Salmon river. We extracted this using Tutorial Notebook 03 and the\n",
- "# salmon_river.geojson file as the contour. Used for the model warm-up.\n",
- "ts = get_file(\"notebook_inputs/ERA5_weather_data_Salmon.nc\")\n",
- "\n",
- "# Set alternative names for netCDF variables\n",
- "alt_names = {\n",
- " \"TEMP_MIN\": \"tmin\",\n",
- " \"TEMP_MAX\": \"tmax\",\n",
- " \"PRECIP\": \"pr\",\n",
- "}\n",
- "\n",
- "# Data types to extract from netCDF\n",
- "data_type = [\"TEMP_MAX\", \"TEMP_MIN\", \"PRECIP\"]\n",
- "data_kwds = {\n",
- " \"ALL\": {\n",
- " \"elevation\": hru[\"elevation\"],\n",
- " \"Latitude\": hru[\"latitude\"],\n",
- " \"Longitude\": hru[\"longitude\"],\n",
- " },\n",
- "}\n",
- "\n",
- "# Model configuration\n",
- "model_config_warmup = GR4JCN(\n",
- " params=[0.529, -3.396, 407.29, 1.072, 16.9, 0.947],\n",
- " Gauge=[\n",
- " rc.Gauge.from_nc(\n",
- " ts, data_type=data_type, alt_names=alt_names, data_kwds=data_kwds\n",
- " )\n",
- " ],\n",
- " HRUs=[hru],\n",
- " StartDate=start_date_wu,\n",
- " EndDate=end_date_wu,\n",
- " RunName=\"ESP_vs_NWP_warmup\",\n",
- ")\n",
- "\n",
- "# Run the model and get the outputs.\n",
- "out1 = Emulator(config=model_config_warmup).run()\n",
- "\n",
- "# Extract the path to the final states file that will be used as the next initial states\n",
- "hotstart = out1.files[\"solution\"]"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "# Length of the desired forecast, in days\n",
- "duration = 7\n",
- "\n",
- "# We need to adjust the data_type and alt_names according to the data in the forecast:\n",
- "# Set alternative names for netCDF variables\n",
- "alt_names = {\n",
- " \"TEMP_AVE\": \"tas\",\n",
- " \"PRECIP\": \"pr\",\n",
- "}\n",
- "\n",
- "# Data types to extract from netCDF\n",
- "data_type = [\"TEMP_AVE\", \"PRECIP\"]\n",
- "\n",
- "# We will need to reuse this for GR4J. Update according to your needs. For example, here we will also pass\n",
- "# the catchment latitude and longitude as our CaSPAr data has been averaged at the catchment scale.\n",
- "# We also need to tell the model to deaccumulate the precipitation and shift it in time by 6 hours for our\n",
- "# catchment (UTC timezones):\n",
- "data_kwds = {\n",
- " \"ALL\": {\n",
- " \"elevation\": hru[\"elevation\"],\n",
- " \"Latitude\": hru[\"latitude\"],\n",
- " \"Longitude\": hru[\"longitude\"],\n",
- " },\n",
- " \"PRECIP\": {\n",
- " \"Deaccumulate\": True,\n",
- " \"TimeShift\": -0.25,\n",
- " \"LinearTransform\": {\n",
- " \"scale\": 1.0\n",
- " }, # Since we are deaccumulating, we need to manually specify scale.\n",
- " }, # We are already in mm, so leave it like so (scale = 1.0).\n",
- " \"TEMP_AVE\": {\n",
- " \"TimeShift\": -0.25,\n",
- " },\n",
- "}\n",
- "\n",
- "# ECCC forecast time format is a bit complex to work with, so we will use cftime to make it more manageable.\n",
- "fcst_tmp = open_dataset(fname, use_cftime=True)\n",
- "\n",
- "# Get the first timestep that will be used for the model simulation\n",
- "start_date = fcst_tmp.time.data[0] + dt.timedelta(days=1)\n",
- "\n",
- "# Model configuration for forecasting, including correct start date and forecast duration and initial state\n",
- "model_config_fcst = GR4JCN(\n",
- " params=[0.529, -3.396, 407.29, 1.072, 16.9, 0.947],\n",
- " Gauge=[\n",
- " rc.Gauge.from_nc(\n",
- " fname, data_type=data_type, alt_names=alt_names, data_kwds=data_kwds\n",
- " )\n",
- " ],\n",
- " HRUs=[hru],\n",
- " StartDate=start_date,\n",
- " Duration=duration,\n",
- " RunName=\"Realtime_forecast_NB\",\n",
- ").set_solution(hotstart, timestamp=False)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "scrolled": false
- },
- "outputs": [],
- "source": [
- "# Generate the forecast by providing all necessary information to generate virtual stations representing\n",
- "# the forecast members. Note that we are using the hindcasting tools, becasue there is effectively no difference\n",
- "# between operational hindcasting and operational forecasting except for the forecast issue time and data\n",
- "# availability, which we solved by using the most recent ECCC forecasts with a warmed-up model and hotstart file.\n",
- "\n",
- "forecast_sims = forecasting.hindcast_from_meteo_forecast(\n",
- " model_config_fcst,\n",
- " forecast=fname,\n",
- " ens_dim=\"members\",\n",
- " # We also need to provide the necessary information to create gauges inside the forecasting model:\n",
- " data_kwds=data_kwds,\n",
- " data_type=data_type,\n",
- " alt_names=alt_names,\n",
- ")\n",
- "\n",
- "display(forecast_sims.hydrograph)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## And, for visual representation of the forecasts:"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "# Simulate an observed streamflow timeseries: Here we take a member from the ensemble, but you should use your own\n",
- "# observed timeseries:\n",
- "qq = forecast_sims.hydrograph.q_sim[0, :, 0]\n",
- "\n",
- "# This is to be replaced with a call to the forecast graphing WPS as soon as merged.\n",
- "# model.q_sim.plot.line(\"b\", x=\"time\")\n",
- "forecast_sims.hydrograph.q_sim[:, :, 0].plot.line(\"b\", x=\"time\", add_legend=False)\n",
- "forecast_sims.hydrograph.q_sim[1, :, 0].plot.line(\"b\", x=\"time\", label=\"forecasts\")\n",
- "qq.plot.line(\"r\", x=\"time\", label=\"observations\")\n",
- "plt.legend(loc=\"upper left\")\n",
- "plt.show()"
- ]
- }
- ],
- "metadata": {
- "kernelspec": {
- "display_name": "Python 3 (ipykernel)",
- "language": "python",
- "name": "python3"
},
- "language_info": {
- "codemirror_mode": {
- "name": "ipython",
- "version": 3
- },
- "file_extension": ".py",
- "mimetype": "text/x-python",
- "name": "python",
- "nbconvert_exporter": "python",
- "pygments_lexer": "ipython3",
- "version": "3.10.9"
- }
- },
- "nbformat": 4,
- "nbformat_minor": 1
+ "nbformat": 4,
+ "nbformat_minor": 1
}
diff --git a/docs/notebooks/Managing_Jupyter_Environments.ipynb b/docs/notebooks/Managing_Jupyter_Environments.ipynb
index 1822ce55..8233b74a 100644
--- a/docs/notebooks/Managing_Jupyter_Environments.ipynb
+++ b/docs/notebooks/Managing_Jupyter_Environments.ipynb
@@ -1,142 +1,142 @@
{
- "cells": [
- {
- "cell_type": "markdown",
- "id": "4f561d83-4d79-4896-a4d5-723dadf9dceb",
- "metadata": {},
- "source": [
- "# Managing Jupyter Environments\n",
- "\n",
- "This Notebook shows how to customize your Jupyter environment to install packages, reset the environment to defaults, and exporting the environment for reproducibility. We also provide some information on general guidelines on using the PAVICS-Hydro JupyterLab instance.\n",
- "\n",
- "## Installing packages\n",
- "It is possible to install packages to the environment if they are not currently installed. To do so, we should prioritize \"mamba\" which can be seen as a faster/more efficient conda, and use pip if mamba fails. We can install packages by issuing the command in a notebook cell. Here we will try importing the \"seaborn\" package, which is not installed by default on PAVICS."
- ]
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "id": "4f561d83-4d79-4896-a4d5-723dadf9dceb",
+ "metadata": {},
+ "source": [
+ "# Managing Jupyter Environments\n",
+ "\n",
+ "This Notebook shows how to customize your Jupyter environment to install packages, reset the environment to defaults, and exporting the environment for reproducibility. We also provide some information on general guidelines on using the PAVICS-Hydro JupyterLab instance.\n",
+ "\n",
+ "## Installing packages\n",
+ "It is possible to install packages to the environment if they are not currently installed. To do so, we should prioritize \"mamba\" which can be seen as a faster/more efficient conda, and use pip if mamba fails. We can install packages by issuing the command in a notebook cell. Here we will try importing the \"seaborn\" package, which is not installed by default on PAVICS."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "df83766d-036e-4685-b90b-7c2887967eba",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Attempt to install seaborn. This will fail when run for the first time!\n",
+ "\n",
+ "# UNCOMMENT THE FOLLOWING LINE TO TEST THE EXISTENCE OF THE SEABORN PACKAGE. It is currently commented to ensure the automatic notebook checks do not fail for an obvious reason.\n",
+ "# import seaborn"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "121d9b5e-23b0-4948-8acb-616602c3df02",
+ "metadata": {},
+ "source": [
+ "This has failed because the package is not currently installed. Let's install it using mamba. The same command can be used with pip, simply replace \"mamba\" with \"pip\"."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "a29b12d8-4e9e-4aeb-abf9-9096dd6e24a5",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Install using mamba, and provide the \"--yes\" option to pre-confirm installation\n",
+ "!mamba install seaborn --yes\n",
+ "\n",
+ "# This will take a few seconds to download, install and confirm installation."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "b5b07347-c7e2-48ee-b525-6cd3bd0bff51",
+ "metadata": {},
+ "source": [
+ "We can now import the newly installed package:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "5a82d19e-79e6-4529-9b3b-a6fc5d2a4b60",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# This will now work.\n",
+ "import seaborn"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "88cc7291-d5b4-4df7-9746-d0183380be3a",
+ "metadata": {},
+ "source": [
+ "## Resetting the environment\n",
+ "If a package is installed that causes conflicts or causes code to break, it is possible to reset the environment by closing the server and respawning a new one, that will have the default packages installed. To do so, simply go to:\n",
+ "--> File\n",
+ " --> Hub Control Panel\n",
+ " --> Stop my server.\n",
+ "\n",
+ "\n",
+ "Doing so will kill the server, but it will nonetheless keep all of your files. Respawning the server will open a fresh default environment. You can test this now! When you try and re-run the notebook, the first cell will fail again because 'seaborn' will have not been installed yet on this server instance."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "e67814b2-d84a-47dd-8c34-a02d6b7903c3",
+ "metadata": {},
+ "source": [
+ "## Exporting your environment\n",
+ "\n",
+ "To export your environment to replicate it elsewhere (such as a local installation, or to make a backup in case of future updates), you need to export two elements:\n",
+ " - The data\n",
+ " - The installed packages\n",
+ "\n",
+ "The data can be exported using the explorer on the left. You can select the files you want to download directly, or you can select \"Download current folder as an archive\". This will allow you to keep a copy of your data on your personal computer. However, note that data stored on this server is not removed or purged. Users are encouraged to use storage on an as-needed basis and to remove data that is not required to free-up resources for other users. PAVICS developers will contact users that use unreasonable amounts of storage space in order to find an alternative solution. The same reasoning also applies to computing power. Users can run multiple kernels/notebooks in parallel, but users are encouraged to use resources on an as-needed basis, with power users potentially being contacted to find alternative solutions.\n",
+ "\n",
+ "The environment can be exported using the following commands:\n",
+ "\n",
+ "**Export it to text in this Notebook:**\n",
+ "\n",
+ "```shell\n",
+ "conda env export\n",
+ "```\n",
+ "\n",
+ "### Other methods to export environments\n",
+ "You can also export the environment to files, using these commands:\n",
+ "\n",
+ "**Export it to file with explicit packages and channels:**\n",
+ "\n",
+ "```shell\n",
+ "conda list --explicit>ENV.txt\n",
+ "```\n",
+ "**Export it cross-platform:**\n",
+ "\n",
+ "```shell\n",
+ "conda env export --from-history>ENV.yml\n",
+ "```\n"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3 (ipykernel)",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.8.16"
+ }
},
- {
- "cell_type": "code",
- "execution_count": null,
- "id": "df83766d-036e-4685-b90b-7c2887967eba",
- "metadata": {},
- "outputs": [],
- "source": [
- "# Attempt to install seaborn. This will fail when run for the first time!\n",
- "\n",
- "# UNCOMMENT THE FOLLOWING LINE TO TEST THE EXISTENCE OF THE SEABORN PACKAGE. It is currently commented to ensure the automatic notebook checks do not fail for an obvious reason.\n",
- "# import seaborn"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "121d9b5e-23b0-4948-8acb-616602c3df02",
- "metadata": {},
- "source": [
- "This has failed because the package is not currently installed. Let's install it using mamba. The same command can be used with pip, simply replace \"mamba\" with \"pip\"."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "id": "a29b12d8-4e9e-4aeb-abf9-9096dd6e24a5",
- "metadata": {},
- "outputs": [],
- "source": [
- "# Install using mamba, and provide the \"--yes\" option to pre-confirm installation\n",
- "!mamba install seaborn --yes\n",
- "\n",
- "# This will take a few seconds to download, install and confirm installation."
- ]
- },
- {
- "cell_type": "markdown",
- "id": "b5b07347-c7e2-48ee-b525-6cd3bd0bff51",
- "metadata": {},
- "source": [
- "We can now import the newly installed package:"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "id": "5a82d19e-79e6-4529-9b3b-a6fc5d2a4b60",
- "metadata": {},
- "outputs": [],
- "source": [
- "# This will now work.\n",
- "import seaborn"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "88cc7291-d5b4-4df7-9746-d0183380be3a",
- "metadata": {},
- "source": [
- "## Resetting the environment\n",
- "If a package is installed that causes conflicts or causes code to break, it is possible to reset the environment by closing the server and respawning a new one, that will have the default packages installed. To do so, simply go to:\n",
- "--> File\n",
- " --> Hub Control Panel\n",
- " --> Stop my server.\n",
- "\n",
- "\n",
- "Doing so will kill the server, but it will nonetheless keep all of your files. Respawning the server will open a fresh default environment. You can test this now! When you try and re-run the notebook, the first cell will fail again because 'seaborn' will have not been installed yet on this server instance."
- ]
- },
- {
- "cell_type": "markdown",
- "id": "e67814b2-d84a-47dd-8c34-a02d6b7903c3",
- "metadata": {},
- "source": [
- "## Exporting your environment\n",
- "\n",
- "To export your environment to replicate it elsewhere (such as a local installation, or to make a backup in case of future updates), you need to export two elements:\n",
- " - The data\n",
- " - The installed packages\n",
- "\n",
- "The data can be exported using the explorer on the left. You can select the files you want to download directly, or you can select \"Download current folder as an archive\". This will allow you to keep a copy of your data on your personal computer. However, note that data stored on this server is not removed or purged. Users are encouraged to use storage on an as-needed basis and to remove data that is not required to free-up resources for other users. PAVICS developers will contact users that use unreasonable amounts of storage space in order to find an alternative solution. The same reasoning also applies to computing power. Users can run multiple kernels/notebooks in parallel, but users are encouraged to use resources on an as-needed basis, with power users potentially being contacted to find alternative solutions.\n",
- "\n",
- "The environment can be exported using the following commands:\n",
- "\n",
- "**Export it to text in this Notebook:**\n",
- "\n",
- "```shell\n",
- "conda env export\n",
- "```\n",
- "\n",
- "### Other methods to export environments\n",
- "You can also export the environment to files, using these commands:\n",
- "\n",
- "**Export it to file with explicit packages and channels:**\n",
- "\n",
- "```shell\n",
- "conda list --explicit>ENV.txt\n",
- "```\n",
- "**Export it cross-platform:**\n",
- "\n",
- "```shell\n",
- "conda env export --from-history>ENV.yml\n",
- "```\n"
- ]
- }
- ],
- "metadata": {
- "kernelspec": {
- "display_name": "Python 3 (ipykernel)",
- "language": "python",
- "name": "python3"
- },
- "language_info": {
- "codemirror_mode": {
- "name": "ipython",
- "version": 3
- },
- "file_extension": ".py",
- "mimetype": "text/x-python",
- "name": "python",
- "nbconvert_exporter": "python",
- "pygments_lexer": "ipython3",
- "version": "3.8.16"
- }
- },
- "nbformat": 4,
- "nbformat_minor": 5
+ "nbformat": 4,
+ "nbformat_minor": 5
}
diff --git a/docs/notebooks/Perform_Regionalization.ipynb b/docs/notebooks/Perform_Regionalization.ipynb
index 8baf90a9..b39de3ba 100644
--- a/docs/notebooks/Perform_Regionalization.ipynb
+++ b/docs/notebooks/Perform_Regionalization.ipynb
@@ -1,295 +1,295 @@
{
- "cells": [
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "# Regionalization of model parameters\n",
- "\n",
- "Here we call the Regionalization WPS service to provide estimated streamflow (best estimate and ensemble) at an ungauged site using three pre-calibrated hydrological models and a large hydrometeorological database with catchment attributes (Extended CANOPEX). Multiple regionalization strategies are allowed."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "execution": {
- "iopub.execute_input": "2021-09-08T20:36:25.297511Z",
- "iopub.status.busy": "2021-09-08T20:36:25.291877Z",
- "iopub.status.idle": "2021-09-08T20:36:27.317135Z",
- "shell.execute_reply": "2021-09-08T20:36:27.315889Z"
- }
- },
- "outputs": [],
- "source": [
- "import datetime as dt\n",
- "\n",
- "from matplotlib import pyplot as plt\n",
- "\n",
- "from ravenpy.config import commands as rc\n",
- "from ravenpy.config.emulators import GR4JCN\n",
- "from ravenpy.utilities.regionalization import (\n",
- " read_gauged_params,\n",
- " read_gauged_properties,\n",
- " regionalize,\n",
- ")\n",
- "from ravenpy.utilities.testdata import get_file"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "We can first start by setting up our model. This model will be setup on our ungauged basin, for which we want to generate streamflow. We still need to provide meteorological forcings and other descriptors (HRUs), however we do not provide a parameter set. This will be done by regionalization later."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "execution": {
- "iopub.execute_input": "2021-09-08T20:36:27.375133Z",
- "iopub.status.busy": "2021-09-08T20:36:27.374674Z",
- "iopub.status.idle": "2021-09-08T20:36:27.378052Z",
- "shell.execute_reply": "2021-09-08T20:36:27.377685Z"
- }
- },
- "outputs": [],
- "source": [
- "# Get the forcing dataset for the ungauged watershed\n",
- "ts = get_file(\"notebook_inputs/ERA5_weather_data_Salmon.nc\")\n",
- "\n",
- "# Get HRUs of ungauged watershed\n",
- "hru = dict(\n",
- " area=4250.6,\n",
- " elevation=843.0,\n",
- " latitude=54.4848,\n",
- " longitude=-123.3659,\n",
- " hru_type=\"land\",\n",
- ")\n",
- "\n",
- "# Set alternative names for netCDF variables\n",
- "alt_names = {\n",
- " \"TEMP_MIN\": \"tmin\",\n",
- " \"TEMP_MAX\": \"tmax\",\n",
- " \"PRECIP\": \"pr\",\n",
- "}\n",
- "\n",
- "# Data types to extract from netCDF\n",
- "data_type = [\"TEMP_MAX\", \"TEMP_MIN\", \"PRECIP\"]\n",
- "data_kwds = {\n",
- " \"ALL\": {\n",
- " \"elevation\": hru[\"elevation\"],\n",
- " \"Latitude\": hru[\"latitude\"],\n",
- " \"Longitude\": hru[\"longitude\"],\n",
- " },\n",
- "}\n",
- "\n",
- "# Model configuration for the ungauged watershed. Notice we are not providing parameters, because,\n",
- "# by definition, we do not have the optimal parameters for an ungauged basin.\n",
- "# Also note that, for now, only the GR4JCN, HMETS and MOHYSE models are supported, as they are the only ones\n",
- "# for which we have a pre-computed database of parameters to use to estimate relationships between descriptors\n",
- "# and model parameters.\n",
- "model_config = GR4JCN(\n",
- " Gauge=[\n",
- " rc.Gauge.from_nc(\n",
- " ts, data_type=data_type, alt_names=alt_names, data_kwds=data_kwds\n",
- " )\n",
- " ],\n",
- " HRUs=[hru],\n",
- " StartDate=dt.datetime(1990, 1, 1),\n",
- " EndDate=dt.datetime(2010, 12, 31),\n",
- " RunName=\"regionalization\",\n",
- ")"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "We can now start working on the regionalization method and the required information."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "# We need to provide the name of the model structure we are using. Can be \"GR4JCN\", \"HMETS\" or \"MOHYSE\"\n",
- "model_structure = \"GR4JCN\"\n",
- "\n",
- "# Read the table of model parameters and calibrated NSE values for all the basins in the donors dataset\n",
- "nash, params = read_gauged_params(model_structure)\n",
- "\n",
- "# Which variables do we want to use to estimate the parameter relationships?\n",
- "# Possible values and their description are provided here:\n",
- "\"\"\"\n",
- "latitude (catchment centroid latitude, degrees)\n",
- "longitude (catchment centroid longitude, degrees)\n",
- "area (drainage area, km²)\n",
- "gravelius (Gravelius index)\n",
- "perimeter (catchment perimeter, m)\n",
- "elevation (mean catchment elevation, m)\n",
- "slope (mean catchment slope, %)\n",
- "aspect (catchment orientation vs. North, degrees)\n",
- "forest (Land-use percentage as forest (%))\n",
- "grass (Land-use percentage as grass (%))\n",
- "wetland (Land-use percentage as wetlands (%))\n",
- "urban (Land-use percentage as urban areas (%))\n",
- "shrubs (Land-use percentage as shrubs (%))\n",
- "crops (Land-use percentage as crops (%))\n",
- "snowIce (Land-use percentage as permanent snow/ice (%))\n",
- "\"\"\"\n",
- "variables = [\"latitude\", \"longitude\", \"area\", \"forest\"]\n",
- "\n",
- "# Read the desired properties from the donors table\n",
- "props = read_gauged_properties(variables)\n",
- "\n",
- "# Provide the values for the desired variables for the ungauged basin (used to estimate relationships)\n",
- "ungauged_props = {\n",
- " \"latitude\": 40.4848,\n",
- " \"longitude\": -103.3659,\n",
- " \"area\": 4250.6,\n",
- " \"forest\": 0.4,\n",
- "}\n",
- "\n",
- "# Choice of the regionalization method. You can choose between the following methods (with their description):\n",
- "\"\"\"\n",
- "SP (Spatial Proximity: Uses the latitude and longitude only by default, returns the nearest donors)\n",
- "PS (Physical Similarity: Finds the most similar donor catchments according to your desired variables)\n",
- "MLR (Multiple Linear Regression: Build a linear regression between the desired variables and the model\n",
- " parameters from the donor database. Then estimate parameters from the linear regression using\n",
- " the ungauged basin's properties.)\n",
- "SP-IDW (Spatial Proximity but average the results of multiple donors using the inverse distance weighting\n",
- " based on distance)\n",
- "PS-IDW (Physical Similarity but average the results of multiple donors using the inverse distance weighting\n",
- " of degree of similarity)\n",
- "SP-IDW-RA (SP-IDW while adding regression-based parameters to the donor parameter dataset\n",
- " [Arsenault and Brissette, 2014])\n",
- "PS-IDW-RA (PS-IDW while adding regression-based parameters to the donor parameter dataset\n",
- " [Arsenault and Brissette, 2014])\n",
- "---\n",
- "Arsenault, R., and Brissette, F. P. (2014), Continuous streamflow prediction in ungauged basins:\n",
- "The effects of equifinality and parameter set selection on uncertainty in regionalization approaches,\n",
- "Water Resour. Res., 50, 6135–6153, doi:10.1002/2013WR014898.\n",
- "\"\"\"\n",
- "regionalization_method = \"SP-IDW-RA\"\n",
- "\n",
- "# Here we provide a threshold to exclude donor catchments. Basically, any donors whose calibration NSE is lower\n",
- "# than this threshold is considered unreliable and is removed from the database prior to processing. 0.6-0.7 are\n",
- "# generally well-accepted values in the literature. The higher the threshold, the fewer donors remain so an\n",
- "# equilibrium must be found.\n",
- "minimum_donor_NSE = 0.7\n",
- "\n",
- "# Finally, we can choose how many donors we want to use. The value is only used for SP- and PS-based methods.\n",
- "# The hydrographs generated by running the model using the parameters of multiple donors are averaged (either\n",
- "# using a simple mean, or using IDW if we used the IDW tag) which results in generally better hydrographs than\n",
- "# any of the single hydrographs.\n",
- "number_donors = 5\n",
- "\n",
- "# Launch the regionalization method and get\n",
- "# - hydrograph: the mean hydrograph, and\n",
- "# - ensemble_hydrograph: the hydrographs of each of the individual donors before averaging\n",
- "hydrograph, ensemble_hydrograph = regionalize(\n",
- " config=model_config,\n",
- " method=regionalization_method,\n",
- " nash=nash,\n",
- " params=params,\n",
- " props=props,\n",
- " target_props=ungauged_props,\n",
- " min_NSE=minimum_donor_NSE,\n",
- " size=number_donors,\n",
- ")"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "The `hydrograph` and `ensemble` outputs are netCDF files storing the time series. These files are opened by default using `xarray`, which provides convenient and powerful time series analysis and plotting tools."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "execution": {
- "iopub.execute_input": "2021-09-08T20:36:29.574816Z",
- "iopub.status.busy": "2021-09-08T20:36:29.573713Z",
- "iopub.status.idle": "2021-09-08T20:36:29.578724Z",
- "shell.execute_reply": "2021-09-08T20:36:29.578262Z"
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Regionalization of model parameters\n",
+ "\n",
+ "Here we call the Regionalization WPS service to provide estimated streamflow (best estimate and ensemble) at an ungauged site using three pre-calibrated hydrological models and a large hydrometeorological database with catchment attributes (Extended CANOPEX). Multiple regionalization strategies are allowed."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2021-09-08T20:36:25.297511Z",
+ "iopub.status.busy": "2021-09-08T20:36:25.291877Z",
+ "iopub.status.idle": "2021-09-08T20:36:27.317135Z",
+ "shell.execute_reply": "2021-09-08T20:36:27.315889Z"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "import datetime as dt\n",
+ "\n",
+ "from matplotlib import pyplot as plt\n",
+ "\n",
+ "from ravenpy.config import commands as rc\n",
+ "from ravenpy.config.emulators import GR4JCN\n",
+ "from ravenpy.utilities.regionalization import (\n",
+ " read_gauged_params,\n",
+ " read_gauged_properties,\n",
+ " regionalize,\n",
+ ")\n",
+ "from ravenpy.utilities.testdata import get_file"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "We can first start by setting up our model. This model will be setup on our ungauged basin, for which we want to generate streamflow. We still need to provide meteorological forcings and other descriptors (HRUs), however we do not provide a parameter set. This will be done by regionalization later."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2021-09-08T20:36:27.375133Z",
+ "iopub.status.busy": "2021-09-08T20:36:27.374674Z",
+ "iopub.status.idle": "2021-09-08T20:36:27.378052Z",
+ "shell.execute_reply": "2021-09-08T20:36:27.377685Z"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "# Get the forcing dataset for the ungauged watershed\n",
+ "ts = get_file(\"notebook_inputs/ERA5_weather_data_Salmon.nc\")\n",
+ "\n",
+ "# Get HRUs of ungauged watershed\n",
+ "hru = dict(\n",
+ " area=4250.6,\n",
+ " elevation=843.0,\n",
+ " latitude=54.4848,\n",
+ " longitude=-123.3659,\n",
+ " hru_type=\"land\",\n",
+ ")\n",
+ "\n",
+ "# Set alternative names for netCDF variables\n",
+ "alt_names = {\n",
+ " \"TEMP_MIN\": \"tmin\",\n",
+ " \"TEMP_MAX\": \"tmax\",\n",
+ " \"PRECIP\": \"pr\",\n",
+ "}\n",
+ "\n",
+ "# Data types to extract from netCDF\n",
+ "data_type = [\"TEMP_MAX\", \"TEMP_MIN\", \"PRECIP\"]\n",
+ "data_kwds = {\n",
+ " \"ALL\": {\n",
+ " \"elevation\": hru[\"elevation\"],\n",
+ " \"Latitude\": hru[\"latitude\"],\n",
+ " \"Longitude\": hru[\"longitude\"],\n",
+ " },\n",
+ "}\n",
+ "\n",
+ "# Model configuration for the ungauged watershed. Notice we are not providing parameters, because,\n",
+ "# by definition, we do not have the optimal parameters for an ungauged basin.\n",
+ "# Also note that, for now, only the GR4JCN, HMETS and MOHYSE models are supported, as they are the only ones\n",
+ "# for which we have a pre-computed database of parameters to use to estimate relationships between descriptors\n",
+ "# and model parameters.\n",
+ "model_config = GR4JCN(\n",
+ " Gauge=[\n",
+ " rc.Gauge.from_nc(\n",
+ " ts, data_type=data_type, alt_names=alt_names, data_kwds=data_kwds\n",
+ " )\n",
+ " ],\n",
+ " HRUs=[hru],\n",
+ " StartDate=dt.datetime(1990, 1, 1),\n",
+ " EndDate=dt.datetime(2010, 12, 31),\n",
+ " RunName=\"regionalization\",\n",
+ ")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "We can now start working on the regionalization method and the required information."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# We need to provide the name of the model structure we are using. Can be \"GR4JCN\", \"HMETS\" or \"MOHYSE\"\n",
+ "model_structure = \"GR4JCN\"\n",
+ "\n",
+ "# Read the table of model parameters and calibrated NSE values for all the basins in the donors dataset\n",
+ "nash, params = read_gauged_params(model_structure)\n",
+ "\n",
+ "# Which variables do we want to use to estimate the parameter relationships?\n",
+ "# Possible values and their description are provided here:\n",
+ "\"\"\"\n",
+ "latitude (catchment centroid latitude, degrees)\n",
+ "longitude (catchment centroid longitude, degrees)\n",
+ "area (drainage area, km²)\n",
+ "gravelius (Gravelius index)\n",
+ "perimeter (catchment perimeter, m)\n",
+ "elevation (mean catchment elevation, m)\n",
+ "slope (mean catchment slope, %)\n",
+ "aspect (catchment orientation vs. North, degrees)\n",
+ "forest (Land-use percentage as forest (%))\n",
+ "grass (Land-use percentage as grass (%))\n",
+ "wetland (Land-use percentage as wetlands (%))\n",
+ "urban (Land-use percentage as urban areas (%))\n",
+ "shrubs (Land-use percentage as shrubs (%))\n",
+ "crops (Land-use percentage as crops (%))\n",
+ "snowIce (Land-use percentage as permanent snow/ice (%))\n",
+ "\"\"\"\n",
+ "variables = [\"latitude\", \"longitude\", \"area\", \"forest\"]\n",
+ "\n",
+ "# Read the desired properties from the donors table\n",
+ "props = read_gauged_properties(variables)\n",
+ "\n",
+ "# Provide the values for the desired variables for the ungauged basin (used to estimate relationships)\n",
+ "ungauged_props = {\n",
+ " \"latitude\": 40.4848,\n",
+ " \"longitude\": -103.3659,\n",
+ " \"area\": 4250.6,\n",
+ " \"forest\": 0.4,\n",
+ "}\n",
+ "\n",
+ "# Choice of the regionalization method. You can choose between the following methods (with their description):\n",
+ "\"\"\"\n",
+ "SP (Spatial Proximity: Uses the latitude and longitude only by default, returns the nearest donors)\n",
+ "PS (Physical Similarity: Finds the most similar donor catchments according to your desired variables)\n",
+ "MLR (Multiple Linear Regression: Build a linear regression between the desired variables and the model\n",
+ " parameters from the donor database. Then estimate parameters from the linear regression using\n",
+ " the ungauged basin's properties.)\n",
+ "SP-IDW (Spatial Proximity but average the results of multiple donors using the inverse distance weighting\n",
+ " based on distance)\n",
+ "PS-IDW (Physical Similarity but average the results of multiple donors using the inverse distance weighting\n",
+ " of degree of similarity)\n",
+ "SP-IDW-RA (SP-IDW while adding regression-based parameters to the donor parameter dataset\n",
+ " [Arsenault and Brissette, 2014])\n",
+ "PS-IDW-RA (PS-IDW while adding regression-based parameters to the donor parameter dataset\n",
+ " [Arsenault and Brissette, 2014])\n",
+ "---\n",
+ "Arsenault, R., and Brissette, F. P. (2014), Continuous streamflow prediction in ungauged basins:\n",
+ "The effects of equifinality and parameter set selection on uncertainty in regionalization approaches,\n",
+ "Water Resour. Res., 50, 6135–6153, doi:10.1002/2013WR014898.\n",
+ "\"\"\"\n",
+ "regionalization_method = \"SP-IDW-RA\"\n",
+ "\n",
+ "# Here we provide a threshold to exclude donor catchments. Basically, any donors whose calibration NSE is lower\n",
+ "# than this threshold is considered unreliable and is removed from the database prior to processing. 0.6-0.7 are\n",
+ "# generally well-accepted values in the literature. The higher the threshold, the fewer donors remain so an\n",
+ "# equilibrium must be found.\n",
+ "minimum_donor_NSE = 0.7\n",
+ "\n",
+ "# Finally, we can choose how many donors we want to use. The value is only used for SP- and PS-based methods.\n",
+ "# The hydrographs generated by running the model using the parameters of multiple donors are averaged (either\n",
+ "# using a simple mean, or using IDW if we used the IDW tag) which results in generally better hydrographs than\n",
+ "# any of the single hydrographs.\n",
+ "number_donors = 5\n",
+ "\n",
+ "# Launch the regionalization method and get\n",
+ "# - hydrograph: the mean hydrograph, and\n",
+ "# - ensemble_hydrograph: the hydrographs of each of the individual donors before averaging\n",
+ "hydrograph, ensemble_hydrograph = regionalize(\n",
+ " config=model_config,\n",
+ " method=regionalization_method,\n",
+ " nash=nash,\n",
+ " params=params,\n",
+ " props=props,\n",
+ " target_props=ungauged_props,\n",
+ " min_NSE=minimum_donor_NSE,\n",
+ " size=number_donors,\n",
+ ")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "The `hydrograph` and `ensemble` outputs are netCDF files storing the time series. These files are opened by default using `xarray`, which provides convenient and powerful time series analysis and plotting tools."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2021-09-08T20:36:29.574816Z",
+ "iopub.status.busy": "2021-09-08T20:36:29.573713Z",
+ "iopub.status.idle": "2021-09-08T20:36:29.578724Z",
+ "shell.execute_reply": "2021-09-08T20:36:29.578262Z"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "display(hydrograph)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "display(ensemble_hydrograph)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "qq = ensemble_hydrograph.q_sim[0, :, 0]\n",
+ "\n",
+ "ensemble_hydrograph.q_sim[:, :, 0].plot.line(\"b\", x=\"time\", add_legend=False)\n",
+ "ensemble_hydrograph.q_sim[1, :, 0].plot.line(\n",
+ " \"b\", x=\"time\", label=\"Regionalized hydrographs\"\n",
+ ")\n",
+ "qq.plot.line(\"r\", x=\"time\", label=\"observations\")\n",
+ "plt.legend(loc=\"upper right\")\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2021-09-08T20:36:29.759579Z",
+ "iopub.status.busy": "2021-09-08T20:36:29.751986Z",
+ "iopub.status.idle": "2021-09-08T20:36:29.761276Z",
+ "shell.execute_reply": "2021-09-08T20:36:29.761561Z"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "print(\"Max: \", hydrograph.max())\n",
+ "print(\"Mean: \", hydrograph.mean())\n",
+ "print(\"Monthly means: \", hydrograph.groupby(\"time.month\").mean(dim=\"time\"))"
+ ]
}
- },
- "outputs": [],
- "source": [
- "display(hydrograph)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "display(ensemble_hydrograph)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "qq = ensemble_hydrograph.q_sim[0, :, 0]\n",
- "\n",
- "ensemble_hydrograph.q_sim[:, :, 0].plot.line(\"b\", x=\"time\", add_legend=False)\n",
- "ensemble_hydrograph.q_sim[1, :, 0].plot.line(\n",
- " \"b\", x=\"time\", label=\"Regionalized hydrographs\"\n",
- ")\n",
- "qq.plot.line(\"r\", x=\"time\", label=\"observations\")\n",
- "plt.legend(loc=\"upper right\")\n",
- "plt.show()"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "execution": {
- "iopub.execute_input": "2021-09-08T20:36:29.759579Z",
- "iopub.status.busy": "2021-09-08T20:36:29.751986Z",
- "iopub.status.idle": "2021-09-08T20:36:29.761276Z",
- "shell.execute_reply": "2021-09-08T20:36:29.761561Z"
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3 (ipykernel)",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.10.9"
}
- },
- "outputs": [],
- "source": [
- "print(\"Max: \", hydrograph.max())\n",
- "print(\"Mean: \", hydrograph.mean())\n",
- "print(\"Monthly means: \", hydrograph.groupby(\"time.month\").mean(dim=\"time\"))"
- ]
- }
- ],
- "metadata": {
- "kernelspec": {
- "display_name": "Python 3 (ipykernel)",
- "language": "python",
- "name": "python3"
},
- "language_info": {
- "codemirror_mode": {
- "name": "ipython",
- "version": 3
- },
- "file_extension": ".py",
- "mimetype": "text/x-python",
- "name": "python",
- "nbconvert_exporter": "python",
- "pygments_lexer": "ipython3",
- "version": "3.10.9"
- }
- },
- "nbformat": 4,
- "nbformat_minor": 1
+ "nbformat": 4,
+ "nbformat_minor": 1
}
diff --git a/docs/notebooks/Running_HMETS_with_CANOPEX_dataset.ipynb b/docs/notebooks/Running_HMETS_with_CANOPEX_dataset.ipynb
index 3ebf2d97..fde67322 100644
--- a/docs/notebooks/Running_HMETS_with_CANOPEX_dataset.ipynb
+++ b/docs/notebooks/Running_HMETS_with_CANOPEX_dataset.ipynb
@@ -1,1013 +1,1013 @@
{
- "cells": [
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "# Forcing HMETS with the extended CANOPEX dataset\n",
- "\n",
- "Here we use ravenpy to launch the HMETS hydrological model and analyze the output. We also prepare and gather data directly from the CANOPEX dataset made available freely for all users."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 1,
- "metadata": {},
- "outputs": [],
- "source": [
- "import warnings\n",
- "\n",
- "from numba.core.errors import NumbaDeprecationWarning\n",
- "\n",
- "warnings.simplefilter(\"ignore\", category=NumbaDeprecationWarning)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 2,
- "metadata": {},
- "outputs": [],
- "source": [
- "# Cookie-cutter template necessary to provide the tools, packages and paths for the project. All notebooks\n",
- "# need this template (or a slightly adjusted one depending on the required packages)\n",
- "import datetime as dt\n",
- "import tempfile\n",
- "from pathlib import Path\n",
- "\n",
- "import pandas as pd\n",
- "import spotpy\n",
- "import xarray as xr\n",
- "\n",
- "from ravenpy.config import commands as rc\n",
- "from ravenpy.config.emulators import HMETS\n",
- "from ravenpy.utilities.calibration import SpotSetup\n",
- "from ravenpy.utilities.testdata import get_file\n",
- "\n",
- "# Make a temporary folder\n",
- "tmp = Path(tempfile.mkdtemp())"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 3,
- "metadata": {},
- "outputs": [
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Forcing HMETS with the extended CANOPEX dataset\n",
+ "\n",
+ "Here we use ravenpy to launch the HMETS hydrological model and analyze the output. We also prepare and gather data directly from the CANOPEX dataset made available freely for all users."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import warnings\n",
+ "\n",
+ "from numba.core.errors import NumbaDeprecationWarning\n",
+ "\n",
+ "warnings.simplefilter(\"ignore\", category=NumbaDeprecationWarning)"
+ ]
+ },
{
- "data": {
- "text/html": [
- "
\n",
- "
<xarray.Dataset>\n",
- "Dimensions: (time: 22280, watershed: 5797)\n",
- "Coordinates:\n",
- " * time (time) datetime64[ns] 1950-01-01 1950-01-02 ... 2010-12-31\n",
- " * watershed (watershed) |S64 b'St. John River at Ninemile Bridge, Main...\n",
- "Data variables:\n",
- " drainage_area (watershed) float64 ...\n",
- " pr (watershed, time) float64 ...\n",
- " tasmax (watershed, time) float64 ...\n",
- " tasmin (watershed, time) float64 ...\n",
- " discharge (watershed, time) float64 ...\n",
- "Attributes: (12/15)\n",
- " title: Hydrometeorological data for lumped hydrological modellin...\n",
- " institute_id: ETS\n",
- " contact: Richard Arsenault: richard.arsenault@etsmtl.ca\n",
- " date_created: 2020-08-01\n",
- " source: Hydrometric data from USGS National Water Information Ser...\n",
- " featureType: timeSeries\n",
- " ... ...\n",
- " activity: PAVICS_Hydro\n",
- " Conventions: CF-1.6, ACDD-1.3\n",
- " summary: Hydrometeorological database for the PAVICS-Hydro platfor...\n",
- " institution: ETS (École de technologie supérieure)\n",
- " DODS.strlen: 72\n",
- " DODS.dimName: string72
array([b'St. John River at Ninemile Bridge, Maine',\n",
- " b'St. John River at Dickey, Maine', b'Fish River near Fort Kent, Maine',\n",
- " ..., b'MIDDLE THAMES RIVER AT THAMESFORD',\n",
- " b'BIG OTTER CREEK AT TILLSONBURG', b'KETTLE CREEK AT ST. THOMAS'],\n",
- " dtype='|S64')
PandasIndex(Index([ b'St. John River at Ninemile Bridge, Maine',\n",
- " b'St. John River at Dickey, Maine',\n",
- " b'Fish River near Fort Kent, Maine',\n",
- " b'St. John River below Fish R, nr Fort Kent, Maine',\n",
- " b'Aroostook River near Masardis, Maine',\n",
- " b'MACHIAS RIVER NEAR ASHLAND, ME',\n",
- " b'Aroostook River at Washburn, Maine',\n",
- " b'Little Madawaska River at Caribou, Maine',\n",
- " b'Meduxnekeag River at Lowery Rd. nr Houlton, Maine',\n",
- " b'St. Croix River at Vanceboro, Maine',\n",
- " ...\n",
- " b'NOTTAWASAGA RIVER NEAR ALLISTON',\n",
- " b'ROSEWAY RIVER AT LOWER OHIO',\n",
- " b'CONESTOGO RIVER AT DRAYTON',\n",
- " b'SOUTH MAITLAND RIVER AT SUMMERHILL',\n",
- " b'MIDDLE MAITLAND RIVER ABOVE ETHEL',\n",
- " b'NITH RIVER ABOVE NITHBURG',\n",
- " b'FAIRCHILD CREEK NEAR BRANTFORD',\n",
- " b'MIDDLE THAMES RIVER AT THAMESFORD',\n",
- " b'BIG OTTER CREEK AT TILLSONBURG',\n",
- " b'KETTLE CREEK AT ST. THOMAS'],\n",
- " dtype='object', name='watershed', length=5797))
title :
Hydrometeorological data for lumped hydrological modelling of 5797 catchments in North America
institute_id :
ETS
contact :
Richard Arsenault: richard.arsenault@etsmtl.ca
date_created :
2020-08-01
source :
Hydrometric data from USGS National Water Information Service and ECCC Water Survey Canada. Meteorological data from ECCC stations, NRCan 10km gridded interpolated dataset and Livneh 2014 database. Catchment areas from ECCC HYDAT, HydroSheds and USGS.
featureType :
timeSeries
cdm_data_type :
station
license :
ODC-BY
keywords :
hydrology, North America, streamflow, hydrometeorological, PAVICS, PAVICS-Hydro, modelling
activity :
PAVICS_Hydro
Conventions :
CF-1.6, ACDD-1.3
summary :
Hydrometeorological database for the PAVICS-Hydro platform, including precipitation, temperature, discharge and catchment area to drive the RAVEN hydrological modelling framework. Provided by the HC3 Laboratory at École de technologie supérieure, Montréal, Canada.
institution :
ETS (École de technologie supérieure)
DODS.strlen :
72
DODS.dimName :
string72
"
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Cookie-cutter template necessary to provide the tools, packages and paths for the project. All notebooks\n",
+ "# need this template (or a slightly adjusted one depending on the required packages)\n",
+ "import datetime as dt\n",
+ "import tempfile\n",
+ "from pathlib import Path\n",
+ "\n",
+ "import pandas as pd\n",
+ "import spotpy\n",
+ "import xarray as xr\n",
+ "\n",
+ "from ravenpy.config import commands as rc\n",
+ "from ravenpy.config.emulators import HMETS\n",
+ "from ravenpy.utilities.calibration import SpotSetup\n",
+ "from ravenpy.utilities.testdata import get_file\n",
+ "\n",
+ "# Make a temporary folder\n",
+ "tmp = Path(tempfile.mkdtemp())"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "
\n",
+ "
<xarray.Dataset>\n",
+ "Dimensions: (time: 22280, watershed: 5797)\n",
+ "Coordinates:\n",
+ " * time (time) datetime64[ns] 1950-01-01 1950-01-02 ... 2010-12-31\n",
+ " * watershed (watershed) |S64 b'St. John River at Ninemile Bridge, Main...\n",
+ "Data variables:\n",
+ " drainage_area (watershed) float64 ...\n",
+ " pr (watershed, time) float64 ...\n",
+ " tasmax (watershed, time) float64 ...\n",
+ " tasmin (watershed, time) float64 ...\n",
+ " discharge (watershed, time) float64 ...\n",
+ "Attributes: (12/15)\n",
+ " title: Hydrometeorological data for lumped hydrological modellin...\n",
+ " institute_id: ETS\n",
+ " contact: Richard Arsenault: richard.arsenault@etsmtl.ca\n",
+ " date_created: 2020-08-01\n",
+ " source: Hydrometric data from USGS National Water Information Ser...\n",
+ " featureType: timeSeries\n",
+ " ... ...\n",
+ " activity: PAVICS_Hydro\n",
+ " Conventions: CF-1.6, ACDD-1.3\n",
+ " summary: Hydrometeorological database for the PAVICS-Hydro platfor...\n",
+ " institution: ETS (École de technologie supérieure)\n",
+ " DODS.strlen: 72\n",
+ " DODS.dimName: string72
array([b'St. John River at Ninemile Bridge, Maine',\n",
+ " b'St. John River at Dickey, Maine', b'Fish River near Fort Kent, Maine',\n",
+ " ..., b'MIDDLE THAMES RIVER AT THAMESFORD',\n",
+ " b'BIG OTTER CREEK AT TILLSONBURG', b'KETTLE CREEK AT ST. THOMAS'],\n",
+ " dtype='|S64')
PandasIndex(Index([ b'St. John River at Ninemile Bridge, Maine',\n",
+ " b'St. John River at Dickey, Maine',\n",
+ " b'Fish River near Fort Kent, Maine',\n",
+ " b'St. John River below Fish R, nr Fort Kent, Maine',\n",
+ " b'Aroostook River near Masardis, Maine',\n",
+ " b'MACHIAS RIVER NEAR ASHLAND, ME',\n",
+ " b'Aroostook River at Washburn, Maine',\n",
+ " b'Little Madawaska River at Caribou, Maine',\n",
+ " b'Meduxnekeag River at Lowery Rd. nr Houlton, Maine',\n",
+ " b'St. Croix River at Vanceboro, Maine',\n",
+ " ...\n",
+ " b'NOTTAWASAGA RIVER NEAR ALLISTON',\n",
+ " b'ROSEWAY RIVER AT LOWER OHIO',\n",
+ " b'CONESTOGO RIVER AT DRAYTON',\n",
+ " b'SOUTH MAITLAND RIVER AT SUMMERHILL',\n",
+ " b'MIDDLE MAITLAND RIVER ABOVE ETHEL',\n",
+ " b'NITH RIVER ABOVE NITHBURG',\n",
+ " b'FAIRCHILD CREEK NEAR BRANTFORD',\n",
+ " b'MIDDLE THAMES RIVER AT THAMESFORD',\n",
+ " b'BIG OTTER CREEK AT TILLSONBURG',\n",
+ " b'KETTLE CREEK AT ST. THOMAS'],\n",
+ " dtype='object', name='watershed', length=5797))
title :
Hydrometeorological data for lumped hydrological modelling of 5797 catchments in North America
institute_id :
ETS
contact :
Richard Arsenault: richard.arsenault@etsmtl.ca
date_created :
2020-08-01
source :
Hydrometric data from USGS National Water Information Service and ECCC Water Survey Canada. Meteorological data from ECCC stations, NRCan 10km gridded interpolated dataset and Livneh 2014 database. Catchment areas from ECCC HYDAT, HydroSheds and USGS.
featureType :
timeSeries
cdm_data_type :
station
license :
ODC-BY
keywords :
hydrology, North America, streamflow, hydrometeorological, PAVICS, PAVICS-Hydro, modelling
activity :
PAVICS_Hydro
Conventions :
CF-1.6, ACDD-1.3
summary :
Hydrometeorological database for the PAVICS-Hydro platform, including precipitation, temperature, discharge and catchment area to drive the RAVEN hydrological modelling framework. Provided by the HC3 Laboratory at École de technologie supérieure, Montréal, Canada.
institution :
ETS (École de technologie supérieure)
DODS.strlen :
72
DODS.dimName :
string72
"
+ ],
+ "text/plain": [
+ "\n",
+ "Dimensions: (time: 22280, watershed: 5797)\n",
+ "Coordinates:\n",
+ " * time (time) datetime64[ns] 1950-01-01 1950-01-02 ... 2010-12-31\n",
+ " * watershed (watershed) |S64 b'St. John River at Ninemile Bridge, Main...\n",
+ "Data variables:\n",
+ " drainage_area (watershed) float64 ...\n",
+ " pr (watershed, time) float64 ...\n",
+ " tasmax (watershed, time) float64 ...\n",
+ " tasmin (watershed, time) float64 ...\n",
+ " discharge (watershed, time) float64 ...\n",
+ "Attributes: (12/15)\n",
+ " title: Hydrometeorological data for lumped hydrological modellin...\n",
+ " institute_id: ETS\n",
+ " contact: Richard Arsenault: richard.arsenault@etsmtl.ca\n",
+ " date_created: 2020-08-01\n",
+ " source: Hydrometric data from USGS National Water Information Ser...\n",
+ " featureType: timeSeries\n",
+ " ... ...\n",
+ " activity: PAVICS_Hydro\n",
+ " Conventions: CF-1.6, ACDD-1.3\n",
+ " summary: Hydrometeorological database for the PAVICS-Hydro platfor...\n",
+ " institution: ETS (École de technologie supérieure)\n",
+ " DODS.strlen: 72\n",
+ " DODS.dimName: string72"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
],
- "text/plain": [
- "\n",
- "Dimensions: (time: 22280, watershed: 5797)\n",
- "Coordinates:\n",
- " * time (time) datetime64[ns] 1950-01-01 1950-01-02 ... 2010-12-31\n",
- " * watershed (watershed) |S64 b'St. John River at Ninemile Bridge, Main...\n",
- "Data variables:\n",
- " drainage_area (watershed) float64 ...\n",
- " pr (watershed, time) float64 ...\n",
- " tasmax (watershed, time) float64 ...\n",
- " tasmin (watershed, time) float64 ...\n",
- " discharge (watershed, time) float64 ...\n",
- "Attributes: (12/15)\n",
- " title: Hydrometeorological data for lumped hydrological modellin...\n",
- " institute_id: ETS\n",
- " contact: Richard Arsenault: richard.arsenault@etsmtl.ca\n",
- " date_created: 2020-08-01\n",
- " source: Hydrometric data from USGS National Water Information Ser...\n",
- " featureType: timeSeries\n",
- " ... ...\n",
- " activity: PAVICS_Hydro\n",
- " Conventions: CF-1.6, ACDD-1.3\n",
- " summary: Hydrometeorological database for the PAVICS-Hydro platfor...\n",
- " institution: ETS (École de technologie supérieure)\n",
- " DODS.strlen: 72\n",
- " DODS.dimName: string72"
+ "source": [
+ "# DATA MAIN SOURCE - DAP link to CANOPEX dataset.\n",
+ "CANOPEX_DAP = \"https://pavics.ouranos.ca/twitcher/ows/proxy/thredds/dodsC/birdhouse/ets/Watersheds_5797_cfcompliant.nc\"\n",
+ "ds = xr.open_dataset(CANOPEX_DAP)\n",
+ "\n",
+ "# Explore the dataset:\n",
+ "display(ds)"
]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "# DATA MAIN SOURCE - DAP link to CANOPEX dataset.\n",
- "CANOPEX_DAP = \"https://pavics.ouranos.ca/twitcher/ows/proxy/thredds/dodsC/birdhouse/ets/Watersheds_5797_cfcompliant.nc\"\n",
- "ds = xr.open_dataset(CANOPEX_DAP)\n",
- "\n",
- "# Explore the dataset:\n",
- "display(ds)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 4,
- "metadata": {},
- "outputs": [],
- "source": [
- "# We could explore the dataset and find a watershed of interest, but for now, let's pick one at random\n",
- "# from the dataset:\n",
- "watershedID = 5600\n",
- "\n",
- "# And show what it includes:\n",
- "ts = ds.isel({\"watershed\": watershedID})"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 5,
- "metadata": {},
- "outputs": [],
- "source": [
- "# Let's write the file to disk to make it more efficient to retrieve:\n",
- "fname = tmp / \"CANOPEX_extracted.nc\"\n",
- "ts.to_netcdf(fname)\n",
- "ds.close()\n",
- "ts.close()"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 6,
- "metadata": {},
- "outputs": [
+ },
{
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Basin name: [b'St. John River at Ninemile Bridge, Maine'\n",
- " b'St. John River at Dickey, Maine' b'Fish River near Fort Kent, Maine'\n",
- " ... b'MIDDLE THAMES RIVER AT THAMESFORD'\n",
- " b'BIG OTTER CREEK AT TILLSONBURG' b'KETTLE CREEK AT ST. THOMAS']\n",
- "Latitude: 49.51119663557124 °N\n",
- "Area: 3650.476384548832 km^2\n"
- ]
- }
- ],
- "source": [
- "# With this info, we can gather some properties from the CANOPEX database. This same database is used for\n",
- "# regionalization, so let's query it there where more information is available:\n",
- "tmp = pd.read_csv(get_file(\"regionalisation_data/gauged_catchment_properties.csv\"))\n",
- "\n",
- "basin_area = float(tmp[\"area\"][watershedID])\n",
- "basin_latitude = float(tmp[\"latitude\"][watershedID])\n",
- "basin_longitude = float(tmp[\"longitude\"][watershedID])\n",
- "basin_elevation = float(tmp[\"elevation\"][watershedID])\n",
- "basin_name = ds.watershed.data\n",
- "\n",
- "print(\"Basin name: \", basin_name)\n",
- "print(\"Latitude: \", basin_latitude, \" °N\")\n",
- "print(\"Area: \", basin_area, \" km^2\")"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Now, we might have the model and data, but we don't have model parameters! We need to calibrate. This next snippets show how to configure the model and the calibration."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 7,
- "metadata": {},
- "outputs": [
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# We could explore the dataset and find a watershed of interest, but for now, let's pick one at random\n",
+ "# from the dataset:\n",
+ "watershedID = 5600\n",
+ "\n",
+ "# And show what it includes:\n",
+ "ts = ds.isel({\"watershed\": watershedID})"
+ ]
+ },
{
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: registry._helper_single_adder(): Redefining 'percent' ()\n",
- "WARNING: registry._helper_single_adder(): Redefining '%' ()\n",
- "WARNING: registry._helper_single_adder(): Redefining 'year' ()\n",
- "WARNING: registry._helper_single_adder(): Redefining 'yr' ()\n",
- "WARNING: registry._helper_single_adder(): Redefining 'C' ()\n",
- "WARNING: registry._helper_single_adder(): Redefining 'd' ()\n",
- "WARNING: registry._helper_single_adder(): Redefining 'h' ()\n",
- "WARNING: registry._helper_single_adder(): Redefining 'degrees_north' ()\n",
- "WARNING: registry._helper_single_adder(): Redefining 'degrees_east' ()\n",
- "WARNING: registry._helper_single_adder(): Redefining '[speed]' ()\n",
- "WARNING: registry._helper_single_adder(): Redefining '[radiation]' ()\n"
- ]
- }
- ],
- "source": [
- "# We will also calibrate on only a subset of the years for now to keep the computations faster in this notebook.\n",
- "start_calib = dt.datetime(1998, 1, 1)\n",
- "end_calib = dt.datetime(1999, 12, 31)\n",
- "\n",
- "# General parameters depending on the data source. We can find them by exploring the CANOPEX dataset in the\n",
- "# cells above.\n",
- "data_type = [\"TEMP_MAX\", \"TEMP_MIN\", \"PRECIP\"]\n",
- "\n",
- "alt_names = {\n",
- " \"TEMP_MIN\": \"tasmin\",\n",
- " \"TEMP_MAX\": \"tasmax\",\n",
- " \"PRECIP\": \"pr\",\n",
- "}\n",
- "\n",
- "hru = {}\n",
- "hru = dict(\n",
- " area=basin_area,\n",
- " elevation=basin_elevation,\n",
- " latitude=basin_latitude,\n",
- " longitude=basin_longitude,\n",
- " hru_type=\"land\",\n",
- ")\n",
- "\n",
- "data_kwds = {\n",
- " \"ALL\": {\n",
- " \"elevation\": hru[\"elevation\"],\n",
- " \"latitude\": hru[\"latitude\"],\n",
- " \"longitude\": hru[\"longitude\"],\n",
- " }\n",
- "}\n",
- "# Set the evaluation metrics to be calculated by Raven\n",
- "eval_metrics = (\"NASH_SUTCLIFFE\",)\n",
- "\n",
- "model_config = HMETS(\n",
- " ObservationData=[\n",
- " rc.ObservationData.from_nc(fname, alt_names=\"discharge\", station_idx=1)\n",
- " ],\n",
- " Gauge=[\n",
- " rc.Gauge.from_nc(\n",
- " fname,\n",
- " station_idx=1,\n",
- " data_type=data_type, # Note that this is the list of all the variables\n",
- " alt_names=alt_names, # Note that all variables here are mapped to their names in the netcdf file.\n",
- " data_kwds=data_kwds,\n",
- " )\n",
- " ],\n",
- " HRUs=[hru],\n",
- " StartDate=start_calib,\n",
- " EndDate=end_calib,\n",
- " RunName=\"CANOPEX_test\",\n",
- " EvaluationMetrics=eval_metrics,\n",
- " RainSnowFraction=\"RAINSNOW_DINGMAN\",\n",
- " SuppressOutput=True,\n",
- ")"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 8,
- "metadata": {},
- "outputs": [],
- "source": [
- "# The model parameters bounds can either be set independently or we can use the defaults.\n",
- "low_params = (\n",
- " 0.3,\n",
- " 0.01,\n",
- " 0.5,\n",
- " 0.15,\n",
- " 0.0,\n",
- " 0.0,\n",
- " -2.0,\n",
- " 0.01,\n",
- " 0.0,\n",
- " 0.01,\n",
- " 0.005,\n",
- " -5.0,\n",
- " 0.0,\n",
- " 0.0,\n",
- " 0.0,\n",
- " 0.0,\n",
- " 0.00001,\n",
- " 0.0,\n",
- " 0.00001,\n",
- " 0.0,\n",
- " 0.0,\n",
- ")\n",
- "high_params = (\n",
- " 20.0,\n",
- " 5.0,\n",
- " 13.0,\n",
- " 1.5,\n",
- " 20.0,\n",
- " 20.0,\n",
- " 3.0,\n",
- " 0.2,\n",
- " 0.1,\n",
- " 0.3,\n",
- " 0.1,\n",
- " 2.0,\n",
- " 5.0,\n",
- " 1.0,\n",
- " 3.0,\n",
- " 1.0,\n",
- " 0.02,\n",
- " 0.1,\n",
- " 0.01,\n",
- " 0.5,\n",
- " 2.0,\n",
- ")\n",
- "\n",
- "# Setup the spotpy optimizer\n",
- "spot_setup = SpotSetup(\n",
- " config=model_config,\n",
- " low=low_params,\n",
- " high=high_params,\n",
- ")"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Finally, we can run the optimizer:"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 9,
- "metadata": {},
- "outputs": [
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Let's write the file to disk to make it more efficient to retrieve:\n",
+ "fname = tmp / \"CANOPEX_extracted.nc\"\n",
+ "ts.to_netcdf(fname)\n",
+ "ds.close()\n",
+ "ts.close()"
+ ]
+ },
{
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Initializing the Dynamically Dimensioned Search (DDS) algorithm with 50 repetitions\n",
- "The objective function will be maximized\n",
- "Starting the DDS algotrithm with 50 repetitions...\n",
- "Finding best starting point for trial 1 using 5 random samples.\n",
- "Initialize database...\n",
- "['csv', 'hdf5', 'ram', 'sql', 'custom', 'noData']\n",
- "40 of 50, maximal objective function=-24.7202, time remaining: 00:00:00\n",
- "Best solution found has obj function value of -24.6817 at 5\n",
- "\n",
- "\n",
- "\n",
- "*** Final SPOTPY summary ***\n",
- "Total Duration: 2.61 seconds\n",
- "Total Repetitions: 50\n",
- "Maximal objective value: -24.6817\n",
- "Corresponding parameter setting:\n",
- "GAMMA_SHAPE: 7.63524\n",
- "GAMMA_SCALE: 0.769725\n",
- "GAMMA_SHAPE2: 11.4388\n",
- "GAMMA_SCALE2: 1.0265\n",
- "MIN_MELT_FACTOR: 17.5457\n",
- "MAX_MELT_FACTOR: 0.0603\n",
- "DD_MELT_TEMP: -0.420604\n",
- "DD_AGGRADATION: 0.01893\n",
- "SNOW_SWI_MIN: 0.0308324\n",
- "SNOW_SWI_MAX: 0.0106\n",
- "SWI_REDUCT_COEFF: 0.1\n",
- "DD_REFREEZE_TEMP: -0.0332151\n",
- "REFREEZE_FACTOR: 0.664621\n",
- "REFREEZE_EXP: 0.958967\n",
- "PET_CORRECTION: 1.10548\n",
- "HMETS_RUNOFF_COEFF: 0.214056\n",
- "PERC_COEFF: 0.0117801\n",
- "BASEFLOW_COEFF_1: 0.0155179\n",
- "BASEFLOW_COEFF_2: 0.00345655\n",
- "TOPSOIL: 0.494935\n",
- "PHREATIC: 0.145286\n",
- "******************************\n",
- "\n"
- ]
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Basin name: [b'St. John River at Ninemile Bridge, Maine'\n",
+ " b'St. John River at Dickey, Maine' b'Fish River near Fort Kent, Maine'\n",
+ " ... b'MIDDLE THAMES RIVER AT THAMESFORD'\n",
+ " b'BIG OTTER CREEK AT TILLSONBURG' b'KETTLE CREEK AT ST. THOMAS']\n",
+ "Latitude: 49.51119663557124 °N\n",
+ "Area: 3650.476384548832 km^2\n"
+ ]
+ }
+ ],
+ "source": [
+ "# With this info, we can gather some properties from the CANOPEX database. This same database is used for\n",
+ "# regionalization, so let's query it there where more information is available:\n",
+ "tmp = pd.read_csv(get_file(\"regionalisation_data/gauged_catchment_properties.csv\"))\n",
+ "\n",
+ "basin_area = float(tmp[\"area\"][watershedID])\n",
+ "basin_latitude = float(tmp[\"latitude\"][watershedID])\n",
+ "basin_longitude = float(tmp[\"longitude\"][watershedID])\n",
+ "basin_elevation = float(tmp[\"elevation\"][watershedID])\n",
+ "basin_name = ds.watershed.data\n",
+ "\n",
+ "print(\"Basin name: \", basin_name)\n",
+ "print(\"Latitude: \", basin_latitude, \" °N\")\n",
+ "print(\"Area: \", basin_area, \" km^2\")"
+ ]
},
{
- "data": {
- "text/plain": [
- "[{'sbest': spotpy.parameter.ParameterSet(),\n",
- " 'trial_initial': [2.4446232183696073,\n",
- " 3.648993786086633,\n",
- " 6.808285937892062,\n",
- " 0.9190984550605087,\n",
- " 18.936595179011256,\n",
- " 6.460481436876682,\n",
- " -0.48087709565992487,\n",
- " 0.07545129002831279,\n",
- " 0.09286020935352743,\n",
- " 0.03369469595949492,\n",
- " 0.09584518083667387,\n",
- " 1.375621144444363,\n",
- " 0.7970479176500463,\n",
- " 0.6446325223885151,\n",
- " 1.9186703071461322,\n",
- " 0.06648882787110477,\n",
- " 0.0029416036552497686,\n",
- " 0.06919911158176603,\n",
- " 0.0024456422338723837,\n",
- " 0.44961927013891523,\n",
- " 0.30659009606737986],\n",
- " 'objfunc_val': -24.6817}]"
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Now, we might have the model and data, but we don't have model parameters! We need to calibrate. This next snippets show how to configure the model and the calibration."
]
- },
- "execution_count": 9,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "# We'll definitely want to adjust the random seed and number of model evaluations:\n",
- "model_evaluations = (\n",
- " 50 # This is to keep computing time fast for the demo, increase as necessary\n",
- ")\n",
- "\n",
- "# Setup the spotpy sampler with the method, the setup configuration, a run name and other options. Please refer to\n",
- "# the spotpy documentation for more options. We recommend sticking to this format for efficiency of most applications.\n",
- "sampler = spotpy.algorithms.dds(\n",
- " spot_setup,\n",
- " dbname=\"CANOPEX_test\",\n",
- " dbformat=\"ram\",\n",
- " save_sim=False,\n",
- ")\n",
- "\n",
- "# Launch the actual optimization. Multiple trials can be launched, where the entire process is repeated and\n",
- "# the best overall value from all trials is returned.\n",
- "sampler.sample(model_evaluations, trials=1)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 10,
- "metadata": {},
- "outputs": [
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "WARNING: registry._helper_single_adder(): Redefining 'percent' ()\n",
+ "WARNING: registry._helper_single_adder(): Redefining '%' ()\n",
+ "WARNING: registry._helper_single_adder(): Redefining 'year' ()\n",
+ "WARNING: registry._helper_single_adder(): Redefining 'yr' ()\n",
+ "WARNING: registry._helper_single_adder(): Redefining 'C' ()\n",
+ "WARNING: registry._helper_single_adder(): Redefining 'd' ()\n",
+ "WARNING: registry._helper_single_adder(): Redefining 'h' ()\n",
+ "WARNING: registry._helper_single_adder(): Redefining 'degrees_north' ()\n",
+ "WARNING: registry._helper_single_adder(): Redefining 'degrees_east' ()\n",
+ "WARNING: registry._helper_single_adder(): Redefining '[speed]' ()\n",
+ "WARNING: registry._helper_single_adder(): Redefining '[radiation]' ()\n"
+ ]
+ }
+ ],
+ "source": [
+ "# We will also calibrate on only a subset of the years for now to keep the computations faster in this notebook.\n",
+ "start_calib = dt.datetime(1998, 1, 1)\n",
+ "end_calib = dt.datetime(1999, 12, 31)\n",
+ "\n",
+ "# General parameters depending on the data source. We can find them by exploring the CANOPEX dataset in the\n",
+ "# cells above.\n",
+ "data_type = [\"TEMP_MAX\", \"TEMP_MIN\", \"PRECIP\"]\n",
+ "\n",
+ "alt_names = {\n",
+ " \"TEMP_MIN\": \"tasmin\",\n",
+ " \"TEMP_MAX\": \"tasmax\",\n",
+ " \"PRECIP\": \"pr\",\n",
+ "}\n",
+ "\n",
+ "hru = {}\n",
+ "hru = dict(\n",
+ " area=basin_area,\n",
+ " elevation=basin_elevation,\n",
+ " latitude=basin_latitude,\n",
+ " longitude=basin_longitude,\n",
+ " hru_type=\"land\",\n",
+ ")\n",
+ "\n",
+ "data_kwds = {\n",
+ " \"ALL\": {\n",
+ " \"elevation\": hru[\"elevation\"],\n",
+ " \"latitude\": hru[\"latitude\"],\n",
+ " \"longitude\": hru[\"longitude\"],\n",
+ " }\n",
+ "}\n",
+ "# Set the evaluation metrics to be calculated by Raven\n",
+ "eval_metrics = (\"NASH_SUTCLIFFE\",)\n",
+ "\n",
+ "model_config = HMETS(\n",
+ " ObservationData=[\n",
+ " rc.ObservationData.from_nc(fname, alt_names=\"discharge\", station_idx=1)\n",
+ " ],\n",
+ " Gauge=[\n",
+ " rc.Gauge.from_nc(\n",
+ " fname,\n",
+ " station_idx=1,\n",
+ " data_type=data_type, # Note that this is the list of all the variables\n",
+ " alt_names=alt_names, # Note that all variables here are mapped to their names in the netcdf file.\n",
+ " data_kwds=data_kwds,\n",
+ " )\n",
+ " ],\n",
+ " HRUs=[hru],\n",
+ " StartDate=start_calib,\n",
+ " EndDate=end_calib,\n",
+ " RunName=\"CANOPEX_test\",\n",
+ " EvaluationMetrics=eval_metrics,\n",
+ " RainSnowFraction=\"RAINSNOW_DINGMAN\",\n",
+ " SuppressOutput=True,\n",
+ ")"
+ ]
+ },
{
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Nash-Sutcliffe value is: [-24.6817]\n",
- "Best parameter set:\n",
- "GAMMA_SHAPE=7.635242457794534, GAMMA_SCALE=0.7697246308702375, GAMMA_SHAPE2=11.438816553712229, GAMMA_SCALE2=1.026504937776411, MIN_MELT_FACTOR=17.545677044445164, MAX_MELT_FACTOR=0.0603, DD_MELT_TEMP=-0.42060403078707786, DD_AGGRADATION=0.018930000290900063, SNOW_SWI_MIN=0.030832364134558664, SNOW_SWI_MAX=0.0106, SWI_REDUCT_COEFF=0.1, DD_REFREEZE_TEMP=-0.03321510587203654, REFREEZE_FACTOR=0.6646210627773466, REFREEZE_EXP=0.9589666833784665, PET_CORRECTION=1.1054800200214736, HMETS_RUNOFF_COEFF=0.2140562916769115, PERC_COEFF=0.011780138728707873, BASEFLOW_COEFF_1=0.015517857213688549, BASEFLOW_COEFF_2=0.0034565506868557516, TOPSOIL=0.49493522146275265, PHREATIC=0.14528642601470373\n"
- ]
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# The model parameters bounds can either be set independently or we can use the defaults.\n",
+ "low_params = (\n",
+ " 0.3,\n",
+ " 0.01,\n",
+ " 0.5,\n",
+ " 0.15,\n",
+ " 0.0,\n",
+ " 0.0,\n",
+ " -2.0,\n",
+ " 0.01,\n",
+ " 0.0,\n",
+ " 0.01,\n",
+ " 0.005,\n",
+ " -5.0,\n",
+ " 0.0,\n",
+ " 0.0,\n",
+ " 0.0,\n",
+ " 0.0,\n",
+ " 0.00001,\n",
+ " 0.0,\n",
+ " 0.00001,\n",
+ " 0.0,\n",
+ " 0.0,\n",
+ ")\n",
+ "high_params = (\n",
+ " 20.0,\n",
+ " 5.0,\n",
+ " 13.0,\n",
+ " 1.5,\n",
+ " 20.0,\n",
+ " 20.0,\n",
+ " 3.0,\n",
+ " 0.2,\n",
+ " 0.1,\n",
+ " 0.3,\n",
+ " 0.1,\n",
+ " 2.0,\n",
+ " 5.0,\n",
+ " 1.0,\n",
+ " 3.0,\n",
+ " 1.0,\n",
+ " 0.02,\n",
+ " 0.1,\n",
+ " 0.01,\n",
+ " 0.5,\n",
+ " 2.0,\n",
+ ")\n",
+ "\n",
+ "# Setup the spotpy optimizer\n",
+ "spot_setup = SpotSetup(\n",
+ " config=model_config,\n",
+ " low=low_params,\n",
+ " high=high_params,\n",
+ ")"
+ ]
},
{
- "data": {
- "text/plain": [
- "(7.63524246, 0.76972463, 11.43881655, 1.02650494, 17.54567704, 0.0603, -0.42060403, 0.01893, 0.03083236, 0.0106, 0.1, -0.03321511, 0.66462106, 0.95896668, 1.10548002, 0.21405629, 0.01178014, 0.01551786, 0.00345655, 0.49493522, 0.14528643)"
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Finally, we can run the optimizer:"
]
- },
- "execution_count": 10,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "# Get the model diagnostics\n",
- "diag = spot_setup.diagnostics\n",
- "\n",
- "# Print the NSE and the parameter set in 2 different ways:\n",
- "print(\"Nash-Sutcliffe value is: \" + str(diag[\"DIAG_NASH_SUTCLIFFE\"]))\n",
- "\n",
- "# Get all the values of each iteration\n",
- "results = sampler.getdata()\n",
- "\n",
- "# Get the raw resutlts directly in an array\n",
- "params = spotpy.analyser.get_best_parameterset(results)[0]\n",
- "params"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "At this stage, we have calibrated the model on the observations for the desired dates. Now, let's run the model on a longer time period and look at the hydrograph"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 11,
- "metadata": {},
- "outputs": [],
- "source": [
- "from ravenpy import Emulator\n",
- "\n",
- "conf = model_config.set_params(params)\n",
- "conf.suppress_output = False\n",
- "out = Emulator(conf).run()"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "The `hydrograph` and `storage` outputs are netCDF files storing the time series. These files are opened by default using `xarray`, which provides convenient and powerful time series analysis and plotting tools."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 12,
- "metadata": {},
- "outputs": [],
- "source": [
- "q = out.hydrograph.q_sim"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 13,
- "metadata": {},
- "outputs": [
+ },
{
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Max: 1522.001921641669\n",
- "Mean: 54.27677750325202\n",
- "Monthly means: [[6.93032482e-02]\n",
- " [7.86399173e+00]\n",
- " [2.87806769e+00]\n",
- " [2.16481233e+01]\n",
- " [1.84055794e+02]\n",
- " [1.31270602e+02]\n",
- " [8.73476499e+01]\n",
- " [9.45753187e+01]\n",
- " [5.70102246e+01]\n",
- " [5.79744837e+01]\n",
- " [1.88086182e+00]\n",
- " [8.44691306e-02]]\n"
- ]
- }
- ],
- "source": [
- "# You can also get statistics from the data directly.\n",
- "print(\"Max: \", q.max().values)\n",
- "print(\"Mean: \", q.mean().values)\n",
- "print(\n",
- " \"Monthly means: \",\n",
- " q.groupby(\"time.month\").mean(dim=\"time\").values,\n",
- ")"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 14,
- "metadata": {
- "tags": []
- },
- "outputs": [
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Initializing the Dynamically Dimensioned Search (DDS) algorithm with 50 repetitions\n",
+ "The objective function will be maximized\n",
+ "Starting the DDS algotrithm with 50 repetitions...\n",
+ "Finding best starting point for trial 1 using 5 random samples.\n",
+ "Initialize database...\n",
+ "['csv', 'hdf5', 'ram', 'sql', 'custom', 'noData']\n",
+ "40 of 50, maximal objective function=-24.7202, time remaining: 00:00:00\n",
+ "Best solution found has obj function value of -24.6817 at 5\n",
+ "\n",
+ "\n",
+ "\n",
+ "*** Final SPOTPY summary ***\n",
+ "Total Duration: 2.61 seconds\n",
+ "Total Repetitions: 50\n",
+ "Maximal objective value: -24.6817\n",
+ "Corresponding parameter setting:\n",
+ "GAMMA_SHAPE: 7.63524\n",
+ "GAMMA_SCALE: 0.769725\n",
+ "GAMMA_SHAPE2: 11.4388\n",
+ "GAMMA_SCALE2: 1.0265\n",
+ "MIN_MELT_FACTOR: 17.5457\n",
+ "MAX_MELT_FACTOR: 0.0603\n",
+ "DD_MELT_TEMP: -0.420604\n",
+ "DD_AGGRADATION: 0.01893\n",
+ "SNOW_SWI_MIN: 0.0308324\n",
+ "SNOW_SWI_MAX: 0.0106\n",
+ "SWI_REDUCT_COEFF: 0.1\n",
+ "DD_REFREEZE_TEMP: -0.0332151\n",
+ "REFREEZE_FACTOR: 0.664621\n",
+ "REFREEZE_EXP: 0.958967\n",
+ "PET_CORRECTION: 1.10548\n",
+ "HMETS_RUNOFF_COEFF: 0.214056\n",
+ "PERC_COEFF: 0.0117801\n",
+ "BASEFLOW_COEFF_1: 0.0155179\n",
+ "BASEFLOW_COEFF_2: 0.00345655\n",
+ "TOPSOIL: 0.494935\n",
+ "PHREATIC: 0.145286\n",
+ "******************************\n",
+ "\n"
+ ]
+ },
+ {
+ "data": {
+ "text/plain": [
+ "[{'sbest': spotpy.parameter.ParameterSet(),\n",
+ " 'trial_initial': [2.4446232183696073,\n",
+ " 3.648993786086633,\n",
+ " 6.808285937892062,\n",
+ " 0.9190984550605087,\n",
+ " 18.936595179011256,\n",
+ " 6.460481436876682,\n",
+ " -0.48087709565992487,\n",
+ " 0.07545129002831279,\n",
+ " 0.09286020935352743,\n",
+ " 0.03369469595949492,\n",
+ " 0.09584518083667387,\n",
+ " 1.375621144444363,\n",
+ " 0.7970479176500463,\n",
+ " 0.6446325223885151,\n",
+ " 1.9186703071461322,\n",
+ " 0.06648882787110477,\n",
+ " 0.0029416036552497686,\n",
+ " 0.06919911158176603,\n",
+ " 0.0024456422338723837,\n",
+ " 0.44961927013891523,\n",
+ " 0.30659009606737986],\n",
+ " 'objfunc_val': -24.6817}]"
+ ]
+ },
+ "execution_count": 9,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# We'll definitely want to adjust the random seed and number of model evaluations:\n",
+ "model_evaluations = (\n",
+ " 50 # This is to keep computing time fast for the demo, increase as necessary\n",
+ ")\n",
+ "\n",
+ "# Setup the spotpy sampler with the method, the setup configuration, a run name and other options. Please refer to\n",
+ "# the spotpy documentation for more options. We recommend sticking to this format for efficiency of most applications.\n",
+ "sampler = spotpy.algorithms.dds(\n",
+ " spot_setup,\n",
+ " dbname=\"CANOPEX_test\",\n",
+ " dbformat=\"ram\",\n",
+ " save_sim=False,\n",
+ ")\n",
+ "\n",
+ "# Launch the actual optimization. Multiple trials can be launched, where the entire process is repeated and\n",
+ "# the best overall value from all trials is returned.\n",
+ "sampler.sample(model_evaluations, trials=1)"
+ ]
+ },
{
- "data": {
- "text/plain": [
- "[]"
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Nash-Sutcliffe value is: [-24.6817]\n",
+ "Best parameter set:\n",
+ "GAMMA_SHAPE=7.635242457794534, GAMMA_SCALE=0.7697246308702375, GAMMA_SHAPE2=11.438816553712229, GAMMA_SCALE2=1.026504937776411, MIN_MELT_FACTOR=17.545677044445164, MAX_MELT_FACTOR=0.0603, DD_MELT_TEMP=-0.42060403078707786, DD_AGGRADATION=0.018930000290900063, SNOW_SWI_MIN=0.030832364134558664, SNOW_SWI_MAX=0.0106, SWI_REDUCT_COEFF=0.1, DD_REFREEZE_TEMP=-0.03321510587203654, REFREEZE_FACTOR=0.6646210627773466, REFREEZE_EXP=0.9589666833784665, PET_CORRECTION=1.1054800200214736, HMETS_RUNOFF_COEFF=0.2140562916769115, PERC_COEFF=0.011780138728707873, BASEFLOW_COEFF_1=0.015517857213688549, BASEFLOW_COEFF_2=0.0034565506868557516, TOPSOIL=0.49493522146275265, PHREATIC=0.14528642601470373\n"
+ ]
+ },
+ {
+ "data": {
+ "text/plain": [
+ "(7.63524246, 0.76972463, 11.43881655, 1.02650494, 17.54567704, 0.0603, -0.42060403, 0.01893, 0.03083236, 0.0106, 0.1, -0.03321511, 0.66462106, 0.95896668, 1.10548002, 0.21405629, 0.01178014, 0.01551786, 0.00345655, 0.49493522, 0.14528643)"
+ ]
+ },
+ "execution_count": 10,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# Get the model diagnostics\n",
+ "diag = spot_setup.diagnostics\n",
+ "\n",
+ "# Print the NSE and the parameter set in 2 different ways:\n",
+ "print(\"Nash-Sutcliffe value is: \" + str(diag[\"DIAG_NASH_SUTCLIFFE\"]))\n",
+ "\n",
+ "# Get all the values of each iteration\n",
+ "results = sampler.getdata()\n",
+ "\n",
+ "# Get the raw resutlts directly in an array\n",
+ "params = spotpy.analyser.get_best_parameterset(results)[0]\n",
+ "params"
]
- },
- "execution_count": 14,
- "metadata": {},
- "output_type": "execute_result"
},
{
- "data": {
- "image/png": "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F5G6+cLCwhhQEREReZnyhutwUDoRERFRBTGgIiIiIqogBlREREREFcSAioiIiKiCGFARERERVRADKiIiIqIKYkBFREREVEEMqIiIiIgqiAEVERERUQUxoCIiIiKqIAZURERERBXEgIqIiIioghhQESkkpefiUmqOu4tBRERextfdBSDyFMUGgY4zNwIAjr19N4L9eXoQEZF12EJFVKqw2CD/fD2rwI0lISIib8OAikiDEO4uAREReRMGVEREREQVxICKqBRbpYiIyF4MqIhKCTCiIiIi+zCgIirFFioiIrIXAyqiUgZGVEREZCcGVESlhOpnBldERGQ9BlREpdhARURE9mJARSRhQEVERHZiQEVUimOoiIjIXgyoiEoxnCIiInsxoCIqJRQtVGysIiIiWzCgIiplUARRjKeIiMgWDKiISilTJQg2URERkQ0YUBFJFDGUgfEUERHZgAEVUSlh4REREZElDKiISinTJrCFioiIbMGAiqiUctgUh1AREZEtGFARlVLGUEzySUREtmBARVSKeaiIiMheDKiISgnVLD9GVEREZD0GVESlGEMREZG9vDqg2rp1Kx544AHExcVBp9Nh9erVZvcdOXIkdDodZs+erdqen5+PMWPGoFq1aggJCUHfvn1x6dIl1T6pqakYNmwYwsPDER4ejmHDhiEtLc3xFSK3Uib2ZAsVERHZwqsDquzsbLRq1Qrz5s2zuN/q1auxa9cuxMXFmTw3btw4rFq1CsuWLcP27duRlZWFPn36oLi4WN5nyJAhOHDgANasWYM1a9bgwIEDGDZsmMPrQ+5l4Cw/IiKyk6+7C1AR9957L+69916L+/z77794/vnnsXbtWtx///2q59LT0/H1119j0aJF6NmzJwBg8eLFiI+Px4YNG3D33Xfjn3/+wZo1a7Bz50506NABAPDll1+iY8eOOHHiBBo3buycypHLCcEWKiIiso9Xt1CVx2AwYNiwYXjppZfQvHlzk+f37t2LwsJC9O7dW94WFxeHFi1aYMeOHQCAv/76C+Hh4XIwBQC33347wsPD5X205OfnIyMjQ/WPPJsw8zMREVF5KnVA9e6778LX1xdjx47VfD45ORn+/v6IiIhQbY+JiUFycrK8T3R0tMlro6Oj5X20zJw5Ux5zFR4ejvj4+ArUhFyBiT2JiMhelTag2rt3L+bMmYMFCxZAp9PZ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VK9eXXTt2lW8++67omPHjqJevXrijz/+EK1atRJvvvmmvO/evXtF//79Rb169VTrFbkb6+fd9ROCdawMdWT9vLt+QlT+Ol6+fFn06dNHREdHi6FDh4qWLVuK8PBwsWvXLiFESSLOJk2aiGeeeUYIoW5t69Kli3j22Wflx8XFxSI7O1texPlmd1MEVIWFhWL+/Pni7rvvFsuWLRPBwcFi5syZ8jpDQgixfft28fTTT4s2bdqI559/Xly9elUIIcSwYcPEQw89pDrevn37XFr+8rB+3l0/IVhHiTfXkfXz7voJUfnrmJ2dLYYPHy4GDRokzp49K29v166dePzxx4UQJXmyvvvuO6HX600WKB46dKjo3r27/Lgy55Syx00RUAkhxM6dO8XPP/8shBBi6tSponr16qoprBJpCqgQQly5ckW0aNFCTJs2TQghPHotKdavhLfWTwjWUclb68j6lfDW+glR+ev4zDPPiN9//10IUVbOqVOnig4dOsj75OXliQcffFA0bdpUbN68WRgMBpGUlCTat28vvvrqK7eU2xvcNAGVcSQdFxcnnnnmGTkzrfL53NxcUVBQIGd/VeYZ8VSsn3fXTwjW0fh5b6wj6+fd9ROi8tdRmeZAqsujjz4qnn76adW23Nxc0a1bNxEdHS169+4t4uLixO233y4uXrzo+kJ7iZsmoJJIdxU//PCD8PX1FevWrVM9f+nSJTF//nxx2223icjISLF06VJ3FNNurJ93108I1lEI768j6+fd9RPi5qijpEuXLvK6ggaDQRQVFQkhhEhOThbr1q0T06dPF0uWLHFjCb2DTggPmXLgBp06dUJISAiWLFmC6OhoXL16FdWrV8f333+Py5cvY8KECe4uYoWwft5dP4B1rAx1ZP28u35A5a7j2bNn0alTJ/z6669o27YtAKCgoAD+/v5uLpkXcndE5w5Sv/GRI0eEj4+PmDNnjhg7dqxo06aNOHz4sJtLV3Gsn/djHb2/jqyf96vMdZS69hYuXCgaNGggb58yZYoYNWqUyQLOVL6bMqBSateundDpdKJOnTpizZo17i6Ow7F+3o919H6sn/errHV87rnnxMsvvyzWrVsn6tatK6Kjo8XatWvdXSyvdNMGVKdPnxYtWrQQwcHBlXLWAuvn/VhH78f6eb/KXMfc3FzRsGFDodPpREBAgPjvf//r7iJ5tZsuU7rEx8cHDz30EK5du4YRI0a4uzgOx/p5P9bR+7F+3q8y1zEwMBB169bFqFGjkJaWhldeecXdRfJqN/WgdCIioptZcXExfHx83F2MSoEBFREREVEF3bRdfkRERESOwoCKiIiIqIIYUBERERFVEAMqIiIiogpiQEVERERUQQyoiIiIiCqIARURkQWbN2+GTqdDWlqau4tCRB6MeaiIiBS6deuG1q1bY/bs2QCAgoIC3LhxAzExMdDpdO4tHBF5LF93F4CIyJP5+/sjNjbW3cUgIg/HLj8iolKPP/44tmzZgjlz5kCn00Gn02HBggWqLr8FCxagatWq+OWXX9C4cWMEBwfj4YcfRnZ2NhYuXIi6desiIiICY8aMQXFxsXzsgoICvPzyy6hZsyZCQkLQoUMHbN682T0VJSKHYwsVEVGpOXPm4OTJk2jRogXefvttAMDRo0dN9svJycHHH3+MZcuWITMzEwMGDMCAAQNQtWpV/Pbbbzh79iweeughdO7cGYMGDQIAPPHEEzh//jyWLVuGuLg4rFq1Cvfccw8OHz6MhIQEl9aTiByPARURUanw8HD4+/sjODhY7uY7fvy4yX6FhYX49NNP0aBBAwDAww8/jEWLFuHKlSsIDQ1Fs2bN0L17d2zatAmDBg3CmTNn8P333+PSpUuIi4sDAEycOBFr1qzBt99+ixkzZriukkTkFAyoiIhsFBwcLAdTABATE4O6desiNDRUtS0lJQUAsG/fPggh0KhRI9Vx8vPzERUV5ZpCE5FTMaAiIrKRn5+f6rFOp9PcZjAYAAAGgwE+Pj7Yu3cvfHx8VPspgzAi8l4MqIiIFPz9/VWDyR3h1ltvRXFxMVJSUtClSxeHHpuIPANn+RERKdStWxe7du3C+fPnce3aNbmVqSIaNWqEoUOH4rHHHsPKlStx7tw57NmzB++++y5+++03B5SaiNyNARURkcLEiRPh4+ODZs2aoXr16rh48aJDjvvtt9/isccew4QJE9C4cWP07dsXu3btQnx8vEOOT0TuxUzpRERERBXEFioiIiKiCmJARURERFRBDKiIiIiIKogBFREREVEFMaAiIiIiqiAGVEREREQVxICKiIiIqIIYUBERERFVEAMqIiIiogpiQEVERERUQQyoiIiIiCqIARURERFRBf0/1i94v5bIzEQAAAAASUVORK5CYII=",
- "text/plain": [
- "
"
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "At this stage, we have calibrated the model on the observations for the desired dates. Now, let's run the model on a longer time period and look at the hydrograph"
]
- },
- "metadata": {},
- "output_type": "display_data"
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from ravenpy import Emulator\n",
+ "\n",
+ "conf = model_config.set_params(params)\n",
+ "conf.suppress_output = False\n",
+ "out = Emulator(conf).run()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "The `hydrograph` and `storage` outputs are netCDF files storing the time series. These files are opened by default using `xarray`, which provides convenient and powerful time series analysis and plotting tools."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "q = out.hydrograph.q_sim"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Max: 1522.001921641669\n",
+ "Mean: 54.27677750325202\n",
+ "Monthly means: [[6.93032482e-02]\n",
+ " [7.86399173e+00]\n",
+ " [2.87806769e+00]\n",
+ " [2.16481233e+01]\n",
+ " [1.84055794e+02]\n",
+ " [1.31270602e+02]\n",
+ " [8.73476499e+01]\n",
+ " [9.45753187e+01]\n",
+ " [5.70102246e+01]\n",
+ " [5.79744837e+01]\n",
+ " [1.88086182e+00]\n",
+ " [8.44691306e-02]]\n"
+ ]
+ }
+ ],
+ "source": [
+ "# You can also get statistics from the data directly.\n",
+ "print(\"Max: \", q.max().values)\n",
+ "print(\"Mean: \", q.mean().values)\n",
+ "print(\n",
+ " \"Monthly means: \",\n",
+ " q.groupby(\"time.month\").mean(dim=\"time\").values,\n",
+ ")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[]"
+ ]
+ },
+ "execution_count": 14,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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F5G6+cLCwhhQEREReZnyhutwUDoRERFRBTGgIiIiIqogBlREREREFcSAioiIiKiCGFARERERVRADKiIiIqIKYkBFREREVEEMqIiIiIgqiAEVERERUQUxoCIiIiKqIAZURERERBXEgIqIiIioghhQESkkpefiUmqOu4tBRERextfdBSDyFMUGgY4zNwIAjr19N4L9eXoQEZF12EJFVKqw2CD/fD2rwI0lISIib8OAikiDEO4uAREReRMGVEREREQVxICKqBRbpYiIyF4MqIhKCTCiIiIi+zCgIirFFioiIrIXAyqiUgZGVEREZCcGVESlhOpnBldERGQ9BlREpdhARURE9mJARSRhQEVERHZiQEVUimOoiIjIXgyoiEoxnCIiInsxoCIqJRQtVGysIiIiWzCgIiplUARRjKeIiMgWDKiISilTJQg2URERkQ0YUBFJFDGUgfEUERHZgAEVUSlh4REREZElDKiISinTJrCFioiIbMGAiqiUctgUh1AREZEtGFARlVLGUEzySUREtmBARVSKeaiIiMheDKiISgnVLD9GVEREZD0GVESlGEMREZG9vDqg2rp1Kx544AHExcVBp9Nh9erVZvcdOXIkdDodZs+erdqen5+PMWPGoFq1aggJCUHfvn1x6dIl1T6pqakYNmwYwsPDER4ejmHDhiEtLc3xFSK3Uib2ZAsVERHZwqsDquzsbLRq1Qrz5s2zuN/q1auxa9cuxMXFmTw3btw4rFq1CsuWLcP27duRlZWFPn36oLi4WN5nyJAhOHDgANasWYM1a9bgwIEDGDZsmMPrQ+5l4Cw/IiKyk6+7C1AR9957L+69916L+/z77794/vnnsXbtWtx///2q59LT0/H1119j0aJF6NmzJwBg8eLFiI+Px4YNG3D33Xfjn3/+wZo1a7Bz50506NABAPDll1+iY8eOOHHiBBo3buycypHLCcEWKiIiso9Xt1CVx2AwYNiwYXjppZfQvHlzk+f37t2LwsJC9O7dW94WFxeHFi1aYMeOHQCAv/76C+Hh4XIwBQC33347wsPD5X205OfnIyMjQ/WPPJsw8zMREVF5KnVA9e6778LX1xdjx47VfD45ORn+/v6IiIhQbY+JiUFycrK8T3R0tMlro6Oj5X20zJw5Ux5zFR4ejvj4+ArUhFyBiT2JiMhelTag2rt3L+bMmYMFCxZAp9PZ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VK9eXXTt2lW8++67omPHjqJevXrijz/+EK1atRJvvvmmvO/evXtF//79Rb169VTrFbkb6+fd9ROCdawMdWT9vLt+QlT+Ol6+fFn06dNHREdHi6FDh4qWLVuK8PBwsWvXLiFESSLOJk2aiGeeeUYIoW5t69Kli3j22Wflx8XFxSI7O1texPlmd1MEVIWFhWL+/Pni7rvvFsuWLRPBwcFi5syZ8jpDQgixfft28fTTT4s2bdqI559/Xly9elUIIcSwYcPEQw89pDrevn37XFr+8rB+3l0/IVhHiTfXkfXz7voJUfnrmJ2dLYYPHy4GDRokzp49K29v166dePzxx4UQJXmyvvvuO6HX600WKB46dKjo3r27/Lgy55Syx00RUAkhxM6dO8XPP/8shBBi6tSponr16qoprBJpCqgQQly5ckW0aNFCTJs2TQghPHotKdavhLfWTwjWUclb68j6lfDW+glR+ev4zDPPiN9//10IUVbOqVOnig4dOsj75OXliQcffFA0bdpUbN68WRgMBpGUlCTat28vvvrqK7eU2xvcNAGVcSQdFxcnnnnmGTkzrfL53NxcUVBQIGd/VeYZ8VSsn3fXTwjW0fh5b6wj6+fd9ROi8tdRmeZAqsujjz4qnn76adW23Nxc0a1bNxEdHS169+4t4uLixO233y4uXrzo+kJ7iZsmoJJIdxU//PCD8PX1FevWrVM9f+nSJTF//nxx2223icjISLF06VJ3FNNurJ93108I1lEI768j6+fd9RPi5qijpEuXLvK6ggaDQRQVFQkhhEhOThbr1q0T06dPF0uWLHFjCb2DTggPmXLgBp06dUJISAiWLFmC6OhoXL16FdWrV8f333+Py5cvY8KECe4uYoWwft5dP4B1rAx1ZP28u35A5a7j2bNn0alTJ/z6669o27YtAKCgoAD+/v5uLpkXcndE5w5Sv/GRI0eEj4+PmDNnjhg7dqxo06aNOHz4sJtLV3Gsn/djHb2/jqyf96vMdZS69hYuXCgaNGggb58yZYoYNWqUyQLOVL6bMqBSateundDpdKJOnTpizZo17i6Ow7F+3o919H6sn/errHV87rnnxMsvvyzWrVsn6tatK6Kjo8XatWvdXSyvdNMGVKdPnxYtWrQQwcHBlXLWAuvn/VhH78f6eb/KXMfc3FzRsGFDodPpREBAgPjvf//r7iJ5tZsuU7rEx8cHDz30EK5du4YRI0a4uzgOx/p5P9bR+7F+3q8y1zEwMBB169bFqFGjkJaWhldeecXdRfJqN/WgdCIioptZcXExfHx83F2MSoEBFREREVEF3bRdfkRERESOwoCKiIiIqIIYUBERERFVEAMqIiIiogpiQEVERERUQQyoiIiIiCqIARURkQWbN2+GTqdDWlqau4tCRB6MeaiIiBS6deuG1q1bY/bs2QCAgoIC3LhxAzExMdDpdO4tHBF5LF93F4CIyJP5+/sjNjbW3cUgIg/HLj8iolKPP/44tmzZgjlz5kCn00Gn02HBggWqLr8FCxagatWq+OWXX9C4cWMEBwfj4YcfRnZ2NhYuXIi6desiIiICY8aMQXFxsXzsgoICvPzyy6hZsyZCQkLQoUMHbN682T0VJSKHYwsVEVGpOXPm4OTJk2jRogXefvttAMDRo0dN9svJycHHH3+MZcuWITMzEwMGDMCAAQNQtWpV/Pbbbzh79iweeughdO7cGYMGDQIAPPHEEzh//jyWLVuGuLg4rFq1Cvfccw8OHz6MhIQEl9aTiByPARURUanw8HD4+/sjODhY7uY7fvy4yX6FhYX49NNP0aBBAwDAww8/jEWLFuHKlSsIDQ1Fs2bN0L17d2zatAmDBg3CmTNn8P333+PSpUuIi4sDAEycOBFr1qzBt99+ixkzZriukkTkFAyoiIhsFBwcLAdTABATE4O6desiNDRUtS0lJQUAsG/fPggh0KhRI9Vx8vPzERUV5ZpCE5FTMaAiIrKRn5+f6rFOp9PcZjAYAAAGgwE+Pj7Yu3cvfHx8VPspgzAi8l4MqIiIFPz9/VWDyR3h1ltvRXFxMVJSUtClSxeHHpuIPANn+RERKdStWxe7du3C+fPnce3aNbmVqSIaNWqEoUOH4rHHHsPKlStx7tw57NmzB++++y5+++03B5SaiNyNARURkcLEiRPh4+ODZs2aoXr16rh48aJDjvvtt9/isccew4QJE9C4cWP07dsXu3btQnx8vEOOT0TuxUzpRERERBXEFioiIiKiCmJARURERFRBDKiIiIiIKogBFREREVEFMaAiIiIiqiAGVEREREQVxICKiIiIqIIYUBERERFVEAMqIiIiogpiQEVERERUQQyoiIiIiCqIARURERFRBf0/1i94v5bIzEQAAAAASUVORK5CYII=",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "# Plot the simulated hydrograph\n",
+ "from pandas.plotting import register_matplotlib_converters\n",
+ "\n",
+ "register_matplotlib_converters()\n",
+ "q.plot()"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3 (ipykernel)",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.9.16"
}
- ],
- "source": [
- "# Plot the simulated hydrograph\n",
- "from pandas.plotting import register_matplotlib_converters\n",
- "\n",
- "register_matplotlib_converters()\n",
- "q.plot()"
- ]
- }
- ],
- "metadata": {
- "kernelspec": {
- "display_name": "Python 3 (ipykernel)",
- "language": "python",
- "name": "python3"
},
- "language_info": {
- "codemirror_mode": {
- "name": "ipython",
- "version": 3
- },
- "file_extension": ".py",
- "mimetype": "text/x-python",
- "name": "python",
- "nbconvert_exporter": "python",
- "pygments_lexer": "ipython3",
- "version": "3.9.16"
- }
- },
- "nbformat": 4,
- "nbformat_minor": 4
+ "nbformat": 4,
+ "nbformat_minor": 4
}
diff --git a/docs/notebooks/paper/Perform_a_climate_change_impact_study_on_a_watershed.ipynb b/docs/notebooks/paper/Perform_a_climate_change_impact_study_on_a_watershed.ipynb
index 715ffa4d..59f8ca72 100644
--- a/docs/notebooks/paper/Perform_a_climate_change_impact_study_on_a_watershed.ipynb
+++ b/docs/notebooks/paper/Perform_a_climate_change_impact_study_on_a_watershed.ipynb
@@ -1,1379 +1,1379 @@
{
- "cells": [
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "# Perform a climate change impact study on the hydrology of a watershed"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Hydrological models typically need geographical information about watersheds being simulated: latitude and longitude, area, mean altitude, land-use, etc. This notebook shows how to obtain this information using remote services that are made available for users in PAVICS-Hydro. These services connect to a digital elevation model (DEM) and a land-use data set to extract relevant information.\n",
- "\n",
- "The DEM used in the following is the [EarthEnv-DEM90](https://www.earthenv.org/DEM), while the land-use dataset is the [North American Land Change Monitoring System](http://www.cec.org/north-american-environmental-atlas/land-cover-30m-2015-landsat-and-rapideye/). Other data sources could be used, given their availability through the Web Coverage Service (WCS) protocol.\n",
- "\n",
- "Since these computations happen on a specific Geoserver hosted in PAVICS, we need to establish a connection to that service. While the steps are a bit more complex, the good news is that you only need to change a few items in this notebook to taylor results to your needs.\n",
- "\n",
- "We will also setup a hydrological model, calibrate it, and use it in evaluating the impacts of climate change on the hydrology of a catchment. We will be using the Mistassini river as the test-case for this example, but you can substitute the data for any catchment of your liking. We provide:\n",
- "\n",
- "1- Streamflow observations (Water Survey Canada station 02RD003)\n",
- "\n",
- "2- Watershed boundaries in the form of shapefiles (all shape files .shp, .shx, .prj, .dbf, etc. zipped into a single file. The platform will detect and unzip the file to extract the required data)\n",
- "\n",
- "\n",
- "The rest will be done by PAVICS-Hydro, including getting meteorological information from our ERA5 reanalysis database and climate change model data from CMIP hosted by PanGEO.\n",
- "\n",
- "## Software setup"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "### Import the required packages for this notebook.\n",
- "Note that since the notebook includes the entire process from data collection to climate change impact studies, there are a lot more packages required than usual."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 1,
- "metadata": {
- "tags": []
- },
- "outputs": [
+ "cells": [
{
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "WARNING: registry._helper_single_adder(): Redefining 'percent' ()\n",
- "WARNING: registry._helper_single_adder(): Redefining '%' ()\n",
- "WARNING: registry._helper_single_adder(): Redefining 'year' ()\n",
- "WARNING: registry._helper_single_adder(): Redefining 'yr' ()\n",
- "WARNING: registry._helper_single_adder(): Redefining 'C' ()\n",
- "WARNING: registry._helper_single_adder(): Redefining 'd' ()\n",
- "WARNING: registry._helper_single_adder(): Redefining 'h' ()\n",
- "WARNING: registry._helper_single_adder(): Redefining 'degrees_north' ()\n",
- "WARNING: registry._helper_single_adder(): Redefining 'degrees_east' ()\n",
- "WARNING: registry._helper_single_adder(): Redefining '[speed]' ()\n",
- "WARNING: registry._helper_single_adder(): Redefining '[radiation]' ()\n",
- "/opt/conda/envs/birdy/lib/python3.9/site-packages/xclim/indices/fire/_cffwis.py:207: NumbaDeprecationWarning: \u001b[1mThe 'nopython' keyword argument was not supplied to the 'numba.jit' decorator. The implicit default value for this argument is currently False, but it will be changed to True in Numba 0.59.0. See https://numba.readthedocs.io/en/stable/reference/deprecation.html#deprecation-of-object-mode-fall-back-behaviour-when-using-jit for details.\u001b[0m\n",
- " def _day_length(lat: int | float, mth: int): # pragma: no cover\n",
- "/opt/conda/envs/birdy/lib/python3.9/site-packages/xclim/indices/fire/_cffwis.py:227: NumbaDeprecationWarning: \u001b[1mThe 'nopython' keyword argument was not supplied to the 'numba.jit' decorator. The implicit default value for this argument is currently False, but it will be changed to True in Numba 0.59.0. See https://numba.readthedocs.io/en/stable/reference/deprecation.html#deprecation-of-object-mode-fall-back-behaviour-when-using-jit for details.\u001b[0m\n",
- " def _day_length_factor(lat: float, mth: int): # pragma: no cover\n"
- ]
- }
- ],
- "source": [
- "# We need to import a few packages required to do the work:\n",
- "\n",
- "import datetime as dt\n",
- "\n",
- "# Basic system packages\n",
- "import os\n",
- "import tempfile\n",
- "import warnings\n",
- "from pathlib import Path\n",
- "\n",
- "# Packages for data extraction on remote servers/filesystems\n",
- "import fsspec\n",
- "import gcsfs\n",
- "import geopandas as gpd\n",
- "\n",
- "# Packages for geographic processing\n",
- "import intake\n",
- "import matplotlib.pyplot as plt\n",
- "import numpy as np\n",
- "import rasterio\n",
- "import rioxarray as rio\n",
- "import s3fs\n",
- "\n",
- "# Packages related to ravenpy and hydrological modelling:\n",
- "import spotpy\n",
- "import xarray as xr\n",
- "\n",
- "# Packages required for data processing\n",
- "import xclim\n",
- "import xclim.sdba as sdba\n",
- "from birdy import WPSClient\n",
- "from clisops.core import average, subset\n",
- "\n",
- "from ravenpy import Emulator\n",
- "from ravenpy.config import commands as rc\n",
- "from ravenpy.config.emulators import GR4JCN\n",
- "from ravenpy.utilities.calibration import SpotSetup\n",
- "from ravenpy.utilities.testdata import get_file"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "### Prepare some boilerplate items that will be required later on"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 2,
- "metadata": {
- "tags": []
- },
- "outputs": [],
- "source": [
- "# The platform provides lots of user warnings and information points. We will disable them for now.\n",
- "warnings.filterwarnings(\"ignore\")\n",
- "\n",
- "# This is the URL of the Geoserver that will perform the computations for us.\n",
- "url = os.environ.get(\n",
- " \"WPS_URL\", \"https://pavics.ouranos.ca/twitcher/ows/proxy/raven/wps\"\n",
- ")\n",
- "\n",
- "# Connect to the PAVICS-Hydro Raven WPS server to get the geospatial data from GeoServer\n",
- "wps = WPSClient(url)\n",
- "\n",
- "# Make a temporary path where the data will be stored and used by Raven\n",
- "tmp = Path(tempfile.mkdtemp())"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "### Prepare datasets that will be required\n",
- "This includes observed streamflow for the catchment of interest as well as the polygon/contour of that watershed. These could be gathered from CANOPEX, HYSETS or other databases, but we provide an example for user convenience here."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 3,
- "metadata": {
- "tags": []
- },
- "outputs": [],
- "source": [
- "# Name of the watershed boundaries file that is uploaded to the server. Note that this file contains the\n",
- "# .shx, .shp and other associated files for shapefiles, all zipped into one file. It will also be used later for\n",
- "# extracting meteorological data.\n",
- "basin_contour = get_file(\"paper/shapefile_basin_574_HYSETS.zip\")\n",
- "\n",
- "# This file is an extraction of streamflow for catchment 574 in HYSETS. Weather data will be gathered later from\n",
- "# the ERA5 database, but could also be taken directly from HYSETS. This is to show how the process could be linked\n",
- "# together for your own applications using ERA5 data.\n",
- "streamflow_file = get_file(\"paper/Qobs_574_HYSETS.nc\")"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "### Other user inputs of interest\n",
- "We can also specify some information such as periods of interest for reference and future periods\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 4,
- "metadata": {
- "tags": []
- },
- "outputs": [],
- "source": [
- "# Reference period that will be used for ERA5 and climate model data for the reference period.\n",
- "# Here let's focus on a 10-year period to keep running times lower.\n",
- "reference_start_day = dt.datetime(1980, 12, 31)\n",
- "reference_end_day = dt.datetime(1991, 1, 1)\n",
- "# Notice we are using one day before and one day after the desired period of 1981-01-01 to 1990-12-31.\n",
- "# This is to account for any UTC shifts that might require getting data in a previous or later time.\n",
- "\n",
- "# Same process for the future period, 100 years later\n",
- "future_start_day = dt.datetime(2080, 12, 31)\n",
- "future_end_day = dt.datetime(2091, 1, 1)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Geographic processing of watershed attributes\n",
- "\n",
- "Here we will use a set of tools to extract watershed properties that can be used for various applications. Not all variables we extract here are required for the hydrological modelling, but could be used for other applications."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 5,
- "metadata": {
- "tags": []
- },
- "outputs": [
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Perform a climate change impact study on the hydrology of a watershed"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Hydrological models typically need geographical information about watersheds being simulated: latitude and longitude, area, mean altitude, land-use, etc. This notebook shows how to obtain this information using remote services that are made available for users in PAVICS-Hydro. These services connect to a digital elevation model (DEM) and a land-use data set to extract relevant information.\n",
+ "\n",
+ "The DEM used in the following is the [EarthEnv-DEM90](https://www.earthenv.org/DEM), while the land-use dataset is the [North American Land Change Monitoring System](http://www.cec.org/north-american-environmental-atlas/land-cover-30m-2015-landsat-and-rapideye/). Other data sources could be used, given their availability through the Web Coverage Service (WCS) protocol.\n",
+ "\n",
+ "Since these computations happen on a specific Geoserver hosted in PAVICS, we need to establish a connection to that service. While the steps are a bit more complex, the good news is that you only need to change a few items in this notebook to taylor results to your needs.\n",
+ "\n",
+ "We will also setup a hydrological model, calibrate it, and use it in evaluating the impacts of climate change on the hydrology of a catchment. We will be using the Mistassini river as the test-case for this example, but you can substitute the data for any catchment of your liking. We provide:\n",
+ "\n",
+ "1- Streamflow observations (Water Survey Canada station 02RD003)\n",
+ "\n",
+ "2- Watershed boundaries in the form of shapefiles (all shape files .shp, .shx, .prj, .dbf, etc. zipped into a single file. The platform will detect and unzip the file to extract the required data)\n",
+ "\n",
+ "\n",
+ "The rest will be done by PAVICS-Hydro, including getting meteorological information from our ERA5 reanalysis database and climate change model data from CMIP hosted by PanGEO.\n",
+ "\n",
+ "## Software setup"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Import the required packages for this notebook.\n",
+ "Note that since the notebook includes the entire process from data collection to climate change impact studies, there are a lot more packages required than usual."
+ ]
+ },
{
- "data": {
- "text/html": [
- "
\n",
- "\n",
- "
\n",
- " \n",
- "
\n",
- "
\n",
- "
features
\n",
- "
Name
\n",
- "
OfficialID
\n",
- "
FlagPAVICS
\n",
- "
Source
\n",
- "
Area
\n",
- "
geometry
\n",
- "
\n",
- " \n",
- " \n",
- "
\n",
- "
0
\n",
- "
1
\n",
- "
MISTASSINI (RIVIERE) EN AMONT DE LA RIVIERE MI...
\n",
- "
02RD003
\n",
- "
1
\n",
- "
HYDAT
\n",
- "
9870
\n",
- "
POLYGON ((-72.26250 48.87917, -72.27720 48.881...
\n",
- "
\n",
- " \n",
- "
\n",
- "
"
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "WARNING: registry._helper_single_adder(): Redefining 'percent' ()\n",
+ "WARNING: registry._helper_single_adder(): Redefining '%' ()\n",
+ "WARNING: registry._helper_single_adder(): Redefining 'year' ()\n",
+ "WARNING: registry._helper_single_adder(): Redefining 'yr' ()\n",
+ "WARNING: registry._helper_single_adder(): Redefining 'C' ()\n",
+ "WARNING: registry._helper_single_adder(): Redefining 'd' ()\n",
+ "WARNING: registry._helper_single_adder(): Redefining 'h' ()\n",
+ "WARNING: registry._helper_single_adder(): Redefining 'degrees_north' ()\n",
+ "WARNING: registry._helper_single_adder(): Redefining 'degrees_east' ()\n",
+ "WARNING: registry._helper_single_adder(): Redefining '[speed]' ()\n",
+ "WARNING: registry._helper_single_adder(): Redefining '[radiation]' ()\n",
+ "/opt/conda/envs/birdy/lib/python3.9/site-packages/xclim/indices/fire/_cffwis.py:207: NumbaDeprecationWarning: \u001b[1mThe 'nopython' keyword argument was not supplied to the 'numba.jit' decorator. The implicit default value for this argument is currently False, but it will be changed to True in Numba 0.59.0. See https://numba.readthedocs.io/en/stable/reference/deprecation.html#deprecation-of-object-mode-fall-back-behaviour-when-using-jit for details.\u001b[0m\n",
+ " def _day_length(lat: int | float, mth: int): # pragma: no cover\n",
+ "/opt/conda/envs/birdy/lib/python3.9/site-packages/xclim/indices/fire/_cffwis.py:227: NumbaDeprecationWarning: \u001b[1mThe 'nopython' keyword argument was not supplied to the 'numba.jit' decorator. The implicit default value for this argument is currently False, but it will be changed to True in Numba 0.59.0. See https://numba.readthedocs.io/en/stable/reference/deprecation.html#deprecation-of-object-mode-fall-back-behaviour-when-using-jit for details.\u001b[0m\n",
+ " def _day_length_factor(lat: float, mth: int): # pragma: no cover\n"
+ ]
+ }
],
- "text/plain": [
- " features Name OfficialID \\\n",
- "0 1 MISTASSINI (RIVIERE) EN AMONT DE LA RIVIERE MI... 02RD003 \n",
- "\n",
- " FlagPAVICS Source Area geometry \n",
- "0 1 HYDAT 9870 POLYGON ((-72.26250 48.87917, -72.27720 48.881... "
+ "source": [
+ "# We need to import a few packages required to do the work:\n",
+ "\n",
+ "import datetime as dt\n",
+ "\n",
+ "# Basic system packages\n",
+ "import os\n",
+ "import tempfile\n",
+ "import warnings\n",
+ "from pathlib import Path\n",
+ "\n",
+ "# Packages for data extraction on remote servers/filesystems\n",
+ "import fsspec\n",
+ "import gcsfs\n",
+ "import geopandas as gpd\n",
+ "\n",
+ "# Packages for geographic processing\n",
+ "import intake\n",
+ "import matplotlib.pyplot as plt\n",
+ "import numpy as np\n",
+ "import rasterio\n",
+ "import rioxarray as rio\n",
+ "import s3fs\n",
+ "\n",
+ "# Packages related to ravenpy and hydrological modelling:\n",
+ "import spotpy\n",
+ "import xarray as xr\n",
+ "\n",
+ "# Packages required for data processing\n",
+ "import xclim\n",
+ "import xclim.sdba as sdba\n",
+ "from birdy import WPSClient\n",
+ "from clisops.core import average, subset\n",
+ "\n",
+ "from ravenpy import Emulator\n",
+ "from ravenpy.config import commands as rc\n",
+ "from ravenpy.config.emulators import GR4JCN\n",
+ "from ravenpy.utilities.calibration import SpotSetup\n",
+ "from ravenpy.utilities.testdata import get_file"
]
- },
- "metadata": {},
- "output_type": "display_data"
},
{
- "data": {
- "text/plain": [
- ""
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Prepare some boilerplate items that will be required later on"
]
- },
- "execution_count": 5,
- "metadata": {},
- "output_type": "execute_result"
},
{
- "data": {
- "image/png": "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",
- "text/plain": [
- "
"
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "# The platform provides lots of user warnings and information points. We will disable them for now.\n",
+ "warnings.filterwarnings(\"ignore\")\n",
+ "\n",
+ "# This is the URL of the Geoserver that will perform the computations for us.\n",
+ "url = os.environ.get(\n",
+ " \"WPS_URL\", \"https://pavics.ouranos.ca/twitcher/ows/proxy/raven/wps\"\n",
+ ")\n",
+ "\n",
+ "# Connect to the PAVICS-Hydro Raven WPS server to get the geospatial data from GeoServer\n",
+ "wps = WPSClient(url)\n",
+ "\n",
+ "# Make a temporary path where the data will be stored and used by Raven\n",
+ "tmp = Path(tempfile.mkdtemp())"
]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "# Prepare a plot of the catchment to see what we are working with.\n",
- "df = gpd.read_file(basin_contour)\n",
- "display(df)\n",
- "df.plot()"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "### Generic watershed properties\n",
- "\n",
- "Now that we have delineated a watershed, lets find the zonal statistics and other properties using the `shape_properties` process. This process requires a `shape` argument defining the watershed contour, the exterior polygon.\n",
- "\n",
- "Once the process has completed, we extract the data from the response, as follows. Note that you do not need to change anything here. The code will work and return the desired results."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 6,
- "metadata": {
- "tags": []
- },
- "outputs": [
+ },
{
- "data": {
- "text/plain": [
- "{'id': '0',\n",
- " 'features': 1,\n",
- " 'Name': 'MISTASSINI (RIVIERE) EN AMONT DE LA RIVIERE MISTASSIBI',\n",
- " 'OfficialID': '02RD003',\n",
- " 'FlagPAVICS': 1,\n",
- " 'Source': 'HYDAT',\n",
- " 'Area': 9870,\n",
- " 'area': 9569368968.087273,\n",
- " 'centroid': [-72.7431067594341, 49.848278236356585],\n",
- " 'perimeter': 727186.9587075961,\n",
- " 'gravelius': 2.097005162538472}"
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Prepare datasets that will be required\n",
+ "This includes observed streamflow for the catchment of interest as well as the polygon/contour of that watershed. These could be gathered from CANOPEX, HYSETS or other databases, but we provide an example for user convenience here."
]
- },
- "metadata": {},
- "output_type": "display_data"
},
{
- "data": {
- "text/plain": [
- "{'area': 9569.368968087272,\n",
- " 'longitude': -72.7431067594341,\n",
- " 'latitude': 49.848278236356585,\n",
- " 'gravelius': 2.097005162538472,\n",
- " 'perimeter': 727186.9587075961}"
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "# Name of the watershed boundaries file that is uploaded to the server. Note that this file contains the\n",
+ "# .shx, .shp and other associated files for shapefiles, all zipped into one file. It will also be used later for\n",
+ "# extracting meteorological data.\n",
+ "basin_contour = get_file(\"paper/shapefile_basin_574_HYSETS.zip\")\n",
+ "\n",
+ "# This file is an extraction of streamflow for catchment 574 in HYSETS. Weather data will be gathered later from\n",
+ "# the ERA5 database, but could also be taken directly from HYSETS. This is to show how the process could be linked\n",
+ "# together for your own applications using ERA5 data.\n",
+ "streamflow_file = get_file(\"paper/Qobs_574_HYSETS.nc\")"
]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "shape_resp = wps.shape_properties(shape=basin_contour)\n",
- "\n",
- "[\n",
- " properties,\n",
- "] = shape_resp.get(asobj=True)\n",
- "prop = properties[0]\n",
- "display(prop)\n",
- "\n",
- "area = prop[\"area\"] / 1000000.0\n",
- "longitude = prop[\"centroid\"][0]\n",
- "latitude = prop[\"centroid\"][1]\n",
- "gravelius = prop[\"gravelius\"]\n",
- "perimeter = prop[\"perimeter\"]\n",
- "\n",
- "shape_info = {\n",
- " \"area\": area,\n",
- " \"longitude\": longitude,\n",
- " \"latitude\": latitude,\n",
- " \"gravelius\": gravelius,\n",
- " \"perimeter\": perimeter,\n",
- "}\n",
- "display(shape_info)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Note that these properties are a mix of the properties of the original file where the shape is stored, and properties computed by the process (area, centroid, perimeter and gravelius). Note also that the computed area is in m², while the \"SUB_AREA\" property is in km², and that there are slight differences between the two values due to the precision of HydroSHEDS and the delineation algorithm.\n",
- "\n",
- "### Land-use information\n",
- "\n",
- "Now we extract the land-use properties of the watershed using the `nalcms_zonal_stats` process. As mentioned, it uses a dataset from the [North American Land Change Monitoring System](http://www.cec.org/north-american-environmental-atlas), and retrieve properties over the given region.\n",
- "\n",
- "With the `nalcms_zonal_stats_raster` process, we also return the grid with variable accessors (`gdal`, `rasterio`, or `rioxarray`) depending on what libraries are available in our runtime environment (The following examples show `rioxarray`-like access)."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 7,
- "metadata": {
- "tags": []
- },
- "outputs": [],
- "source": [
- "stats_resp = wps.nalcms_zonal_stats_raster(\n",
- " shape=basin_contour, select_all_touching=True, band=1, simple_categories=True\n",
- ")"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Here we will get the raster data and compute statistics on it. It is also possible to download the extracted raseter offline (please see the tutorial for the steps on how to do this)."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 8,
- "metadata": {
- "tags": []
- },
- "outputs": [
+ },
{
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Downloading to /tmp/tmpv9zzg043/subset_1.tiff.\n"
- ]
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Other user inputs of interest\n",
+ "We can also specify some information such as periods of interest for reference and future periods\n"
+ ]
},
{
- "data": {
- "text/plain": [
- "'Land use ratios'"
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "# Reference period that will be used for ERA5 and climate model data for the reference period.\n",
+ "# Here let's focus on a 10-year period to keep running times lower.\n",
+ "reference_start_day = dt.datetime(1980, 12, 31)\n",
+ "reference_end_day = dt.datetime(1991, 1, 1)\n",
+ "# Notice we are using one day before and one day after the desired period of 1981-01-01 to 1990-12-31.\n",
+ "# This is to account for any UTC shifts that might require getting data in a previous or later time.\n",
+ "\n",
+ "# Same process for the future period, 100 years later\n",
+ "future_start_day = dt.datetime(2080, 12, 31)\n",
+ "future_end_day = dt.datetime(2091, 1, 1)"
]
- },
- "metadata": {},
- "output_type": "display_data"
},
{
- "data": {
- "text/plain": [
- "{'Ocean': 0.0,\n",
- " 'Forest': 0.7246596208414477,\n",
- " 'Shrubs': 0.14616312094792794,\n",
- " 'Grass': 0.04322426804857576,\n",
- " 'Wetland': 0.013300924493021603,\n",
- " 'Crops': 0.00395034960218003,\n",
- " 'Urban': 0.0035571063310866975,\n",
- " 'Water': 0.06514460973576021,\n",
- " 'SnowIce': 0.0}"
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Geographic processing of watershed attributes\n",
+ "\n",
+ "Here we will use a set of tools to extract watershed properties that can be used for various applications. Not all variables we extract here are required for the hydrological modelling, but could be used for other applications."
]
- },
- "metadata": {},
- "output_type": "display_data"
},
{
- "data": {
- "text/plain": [
- "'Land use percentages'"
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "