diff --git a/docs/notebooks/BMI_groundwater_coupling_copy.ipynb b/docs/notebooks/BMI_groundwater_coupling_copy.ipynb deleted file mode 100644 index bf312e0..0000000 --- a/docs/notebooks/BMI_groundwater_coupling_copy.ipynb +++ /dev/null @@ -1,404 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# STEMMUS_SCOPE BMI groundwater coupling\n", - "We have to choose how we want to run the BMI. We can do this either using a local executable file, or with a Docker container.\n", - "\n", - "How to run the model is define in the configuration file.\n", - "If it has an entry \"ExeFilePath\" it will use the local executable. If this is missing, it wil try to use Docker (if docker-py is available). " - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "cfg_file = \"/home/sarah/temp/ecoextreml/test/input/NL-Loo_2024-11-07-1226/NL-Loo_2024-11-07-1226_config.txt\"\n", - "out_path = \"/home/sarah/temp/ecoextreml/test/output/NL-Loo_2024-11-07-1226/\"" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "If we are using the local executable file we first have to add the matlab runtime compiler locations to PATH:" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "/usr/local/MATLAB/MATLAB_Runtime/R2023a/runtime/glnxa64:/usr/local/MATLAB/MATLAB_Runtime/R2023a/bin/glnxa64:/usr/local/MATLAB/MATLAB_Runtime/R2023a/sys/os/glnxa64:/usr/local/MATLAB/MATLAB_Runtime/R2023a/extern/bin/glnxa64:/usr/local/MATLAB/MATLAB_Runtime/R2023a/sys/opengl/lib/glnxa64\n" - ] - } - ], - "source": [ - "from PyStemmusScope.config_io import read_config\n", - "import os\n", - "matlab_path = !whereis MATLAB\n", - "matlab_path = matlab_path.s.split(\": \")[1]\n", - "os.environ['LD_LIBRARY_PATH'] = (\n", - " f\"{matlab_path}/MATLAB_Runtime/R2023a/runtime/glnxa64:\"\n", - " f\"{matlab_path}/MATLAB_Runtime/R2023a/bin/glnxa64:\"\n", - " f\"{matlab_path}/MATLAB_Runtime/R2023a/sys/os/glnxa64:\"\n", - " f\"{matlab_path}/MATLAB_Runtime/R2023a/extern/bin/glnxa64:\"\n", - " f\"{matlab_path}/MATLAB_Runtime/R2023a/sys/opengl/lib/glnxa64\")\n", - "print(os.environ['LD_LIBRARY_PATH'])\n", - "os.environ[\"STEMMUS_SCOPE\"] = read_config(cfg_file)[\"ExeFilePath\"]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now we can initialize the model with a prepared configuration file:" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "from PyStemmusScope.bmi.implementation import StemmusScopeBmi\n", - "from cftime import num2pydate\n", - "from rich import print\n", - "import numpy as np\n", - "import xarray as xr\n", - "from pathlib import Path\n", - "\n", - "model = StemmusScopeBmi()\n", - "\n", - "model.initialize(cfg_file)\n", - "\n", - "model.update() # STEMMUS_SCOPE needs to be updated by one timestep before the BMI is accessible" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "After initialization we can enable the groundwater coupling. You enable this using the following command:" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "model.set_value(\"groundwater_coupling_enabled\", np.array([False]))" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "# model.set_value(\"groundwater_elevation_top_aquifer\", np.array([2000.]))\n", - "# model.set_value(\"groundwater_head_bottom_layer\", np.array([1950.])) # 50 cm under ground surface\n", - "# model.set_value(\"groundwater_temperature\", np.array([23.])) # optional. 50 deg C here to get a high contrast" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now we can run the model. We define arrays to store the results that we want to inspect, and then step through all model timesteps:" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
model is done\n",
-       "
\n" - ], - "text/plain": [ - "model is done\n" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "n_timesteps = int((model.get_end_time() - model.get_current_time())/model.get_time_step())\n", - "n_soil_layers = model.get_grid_size(model.get_var_grid(\"soil_moisture\"))\n", - "\n", - "soil_moisture = np.zeros((n_timesteps, n_soil_layers))\n", - "soil_temperature = np.zeros((n_timesteps, n_soil_layers))\n", - "time = []\n", - "i=0\n", - "\n", - "\n", - "# while model.get_current_time() < model.get_end_time():\n", - "while i < 1200:\n", - " model.get_value(\"soil_moisture\", soil_moisture[i])\n", - " model.get_value(\"soil_temperature\", soil_temperature[i])\n", - "\n", - " # Store the current time as a datetime\n", - " time.append(num2pydate(model.get_current_time(), model.get_time_units()))\n", - "\n", - " i+=1\n", - " model.update()\n", - "\n", - "print(\"model is done\")\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "For easier anaylsis we can put the data into xarray DataArray objects:" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": { - "collapsed": true, - "jupyter": { - "outputs_hidden": true - } - }, - "outputs": [ - { - "ename": "ValueError", - "evalue": "conflicting sizes for dimension 'time': length 1487 on the data but length 0 on coordinate 'time'", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[6], line 5\u001b[0m\n\u001b[1;32m 2\u001b[0m depths \u001b[38;5;241m=\u001b[39m np\u001b[38;5;241m.\u001b[39mones(gs)\n\u001b[1;32m 3\u001b[0m model\u001b[38;5;241m.\u001b[39mget_grid_z(\u001b[38;5;241m1\u001b[39m, depths)\n\u001b[0;32m----> 5\u001b[0m da_sm \u001b[38;5;241m=\u001b[39m \u001b[43mxr\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mDataArray\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 6\u001b[0m \u001b[43m \u001b[49m\u001b[43mdata\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43msoil_moisture\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 7\u001b[0m \u001b[43m \u001b[49m\u001b[43mdims\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mtime\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mdepth\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 8\u001b[0m \u001b[43m \u001b[49m\u001b[43mcoords\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m{\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mtime\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mnp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43marray\u001b[49m\u001b[43m(\u001b[49m\u001b[43mtime\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mdepth\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mdepths\u001b[49m\u001b[43m}\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 9\u001b[0m \u001b[43m)\u001b[49m\n\u001b[1;32m 10\u001b[0m da_sm\u001b[38;5;241m.\u001b[39mto_netcdf(path\u001b[38;5;241m=\u001b[39m\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mout_path\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m/soil_moisture.nc\u001b[39m\u001b[38;5;124m\"\u001b[39m, mode\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mw\u001b[39m\u001b[38;5;124m'\u001b[39m)\n\u001b[1;32m 12\u001b[0m da_t \u001b[38;5;241m=\u001b[39m xr\u001b[38;5;241m.\u001b[39mDataArray(\n\u001b[1;32m 13\u001b[0m data\u001b[38;5;241m=\u001b[39msoil_temperature,\n\u001b[1;32m 14\u001b[0m dims\u001b[38;5;241m=\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mtime\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mdepth\u001b[39m\u001b[38;5;124m\"\u001b[39m),\n\u001b[1;32m 15\u001b[0m coords\u001b[38;5;241m=\u001b[39m{\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mtime\u001b[39m\u001b[38;5;124m\"\u001b[39m: np\u001b[38;5;241m.\u001b[39marray(time), \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mdepth\u001b[39m\u001b[38;5;124m\"\u001b[39m: depths},\n\u001b[1;32m 16\u001b[0m )\n", - "File \u001b[0;32m~/miniconda3/envs/pystemmusscope/lib/python3.10/site-packages/xarray/core/dataarray.py:443\u001b[0m, in \u001b[0;36mDataArray.__init__\u001b[0;34m(self, data, coords, dims, name, attrs, indexes, fastpath)\u001b[0m\n\u001b[1;32m 441\u001b[0m data \u001b[38;5;241m=\u001b[39m _check_data_shape(data, coords, dims)\n\u001b[1;32m 442\u001b[0m data \u001b[38;5;241m=\u001b[39m as_compatible_data(data)\n\u001b[0;32m--> 443\u001b[0m coords, dims \u001b[38;5;241m=\u001b[39m \u001b[43m_infer_coords_and_dims\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdata\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mshape\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mcoords\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdims\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 444\u001b[0m variable \u001b[38;5;241m=\u001b[39m Variable(dims, data, attrs, fastpath\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m)\n\u001b[1;32m 446\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(coords, Coordinates):\n", - "File \u001b[0;32m~/miniconda3/envs/pystemmusscope/lib/python3.10/site-packages/xarray/core/dataarray.py:188\u001b[0m, in \u001b[0;36m_infer_coords_and_dims\u001b[0;34m(shape, coords, dims)\u001b[0m\n\u001b[1;32m 185\u001b[0m var\u001b[38;5;241m.\u001b[39mdims \u001b[38;5;241m=\u001b[39m (dim,)\n\u001b[1;32m 186\u001b[0m new_coords[dim] \u001b[38;5;241m=\u001b[39m var\u001b[38;5;241m.\u001b[39mto_index_variable()\n\u001b[0;32m--> 188\u001b[0m \u001b[43m_check_coords_dims\u001b[49m\u001b[43m(\u001b[49m\u001b[43mshape\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mnew_coords\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdims_tuple\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 190\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m new_coords, dims_tuple\n", - "File \u001b[0;32m~/miniconda3/envs/pystemmusscope/lib/python3.10/site-packages/xarray/core/dataarray.py:126\u001b[0m, in \u001b[0;36m_check_coords_dims\u001b[0;34m(shape, coords, dim)\u001b[0m\n\u001b[1;32m 124\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m d, s \u001b[38;5;129;01min\u001b[39;00m v\u001b[38;5;241m.\u001b[39msizes\u001b[38;5;241m.\u001b[39mitems():\n\u001b[1;32m 125\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m s \u001b[38;5;241m!=\u001b[39m sizes[d]:\n\u001b[0;32m--> 126\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\n\u001b[1;32m 127\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mconflicting sizes for dimension \u001b[39m\u001b[38;5;132;01m{\u001b[39;00md\u001b[38;5;132;01m!r}\u001b[39;00m\u001b[38;5;124m: \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 128\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mlength \u001b[39m\u001b[38;5;132;01m{\u001b[39;00msizes[d]\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m on the data but length \u001b[39m\u001b[38;5;132;01m{\u001b[39;00ms\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m on \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 129\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcoordinate \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mk\u001b[38;5;132;01m!r}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 130\u001b[0m )\n", - "\u001b[0;31mValueError\u001b[0m: conflicting sizes for dimension 'time': length 1487 on the data but length 0 on coordinate 'time'" - ] - } - ], - "source": [ - "# gs = model.get_grid_size(1)\n", - "# depths = np.ones(gs)\n", - "# model.get_grid_z(1, depths)\n", - "\n", - "# da_sm = xr.DataArray(\n", - "# data=soil_moisture,\n", - "# dims=(\"time\", \"depth\"),\n", - "# coords={\"time\": np.array(time), \"depth\": depths},\n", - "# )\n", - "# da_sm.to_netcdf(path=f\"{out_path}/soil_moisture.nc\", mode='w')\n", - "\n", - "# da_t = xr.DataArray(\n", - "# data=soil_temperature,\n", - "# dims=(\"time\", \"depth\"),\n", - "# coords={\"time\": np.array(time), \"depth\": depths},\n", - "# )\n", - "# da_t.to_netcdf(path=f\"{out_path}/soil_temperature.nc\", mode='w')" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "real_datetime(2012, 2, 1, 0, 0)" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "num2pydate(model.get_end_time(), model.get_time_units())" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "1487" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "n_timesteps" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "ename": "ValueError", - "evalue": "Model terminated with return code None", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[7], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43mmodel\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfinalize\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/GitHub/STEMMUS_SCOPE_Processing/PyStemmusScope/bmi/implementation.py:268\u001b[0m, in \u001b[0;36mStemmusScopeBmi.finalize\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 266\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"Finalize the STEMMUS_SCOPE model.\"\"\"\u001b[39;00m\n\u001b[1;32m 267\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_process \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m--> 268\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_process\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfinalize\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 269\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 270\u001b[0m msg \u001b[38;5;241m=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mThe STEMMUS_SCOPE process is not running/connected. Can\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mt finalize!\u001b[39m\u001b[38;5;124m\"\u001b[39m\n", - "File \u001b[0;32m~/GitHub/STEMMUS_SCOPE_Processing/PyStemmusScope/bmi/local_process.py:162\u001b[0m, in \u001b[0;36mLocalStemmusScope.finalize\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 160\u001b[0m \u001b[38;5;28;01mfinally\u001b[39;00m:\n\u001b[1;32m 161\u001b[0m msg \u001b[38;5;241m=\u001b[39m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mModel terminated with return code \u001b[39m\u001b[38;5;132;01m{\u001b[39;00m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mprocess\u001b[38;5;241m.\u001b[39mpoll()\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m--> 162\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(msg)\n", - "\u001b[0;31mValueError\u001b[0m: Model terminated with return code None" - ] - } - ], - "source": [ - "model.finalize()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now we can show the results. Note that up to ~2.5 m depth the soil is completely saturated, and that the temperature here equals the groundwater temperature we defined before." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### plots" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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AABo2UgMAQDggnR0Bcv0rmQ//PBDMAnUsWNHtW7dWoccckhwe58+fehKBgAAghh8ummQGAIAwAVWGmYly/Tp6rt06aItW7aopKREkjRx4kR17NgxuP2HH35QmzZt3AoPAAA0MySGmgZXBAAAuGLgwIFasWJF8PG8efMciaG33npLAwYMcCM0AAAASdI///lPnXPOOerWrZsMw9Dzzz/v2G7btqZPn66uXbuqVatWGj58uL766it3gk0SFUMAALiArmTSCy+8EHf7scceq1NPPXU/RQMAAJo7w/APIJ1qG42xe/duHX300brssst0wQUXRGyfP3++7r33Xj322GPq2bOnpk2bptLSUn3xxRcqKChIKdb9hcQQAAAuIDHUsOOOO87tEAAAQDNieDwyPZ6U22iMs88+W2effXbUbbZta+HChbr11lt13nnnSZIef/xxFRUV6fnnn9fFF1+cUqz7C4khAADgum+++UZvvfWWvv32W1mW5dg2adIkl6ICAACIbf369aqoqNDw4cOD69q1a6chQ4ZoxYoVJIYAAEBsVAzVe/TRR3XFFVcoLy9PBx54oAyj/nkZhkFiCAAASErv4NNVVVWO9fn5+crPz29UWxUVFZKkoqIix/qioqLgtkzA4NMAAMBV06ZN0/Tp07Vjxw5t2LBB69evDy7/+c9/3A4PAAC0QCUlJWrXrl1wmTt3rtshuYaKIQAAXEDFUL09e/bo4osvlpniYJIAAKBlS2fF0KZNm1RYWBhc39hqIUkqLi6WJFVWVqpr167B9ZWVlRo4cGBKce5P3IEBAOACW5IlI6XFdvtJpMn48eP1zDPPuB0GAABo5gzTTMsiSYWFhY4lmcRQz549VVxcrPLy8uC6qqoqvffeexo6dGjanndTo2IIAAC4au7cufrpT3+qpUuX6qijjlJubq5j+4IFC1yKDAAAZLtdu3Zp7dq1wcfr16/XqlWr1LFjRx188MH69a9/rdmzZ6tv377B6eq7deumkSNHuhd0I5EYAgDABXQlqzd37ly98sor6tevnyRFDD4NAAAgpbcrWaI++OADnX766cHHZWVlkqQxY8bo0Ucf1Y033qjdu3frV7/6lbZv366TTjpJS5cuVUFBQUpx7k8khgAAcAGJoXp33323Hn74YY0dO9btUAAAQDNmmEbqiSGzcfdPp512mmw7dgd+wzA0a9YszZo1K6W43MQYQwAAwFX5+fk68cQT3Q4DAAAgK5EYAgDABYGKoVSXluDaa6/Vfffd53YYAACgmUvn4NOoR1cyAABcQFeyeu+//77+8Y9/6MUXX9QRRxwRMfj0c88951JkAACgOTFMjwzTk3IbcCIxBAAAXNW+fXtdcMEFbocBAACQlUgMAQDgAts2ZKdY8ZPq8c3FI4884nYIAAAgE5ge/5JqG3AgMQQAgAssGbKUYleyFI8HAADIKKbpX1JtAw5cEQAAsN+NGDFC7777boP77dy5U3feeacWLVq0H6ICAADIPlQMAQDggmwffPqiiy7ShRdeqHbt2umcc87R4MGD1a1bNxUUFOiHH37QF198obfeeksvv/yyfvKTn+g3v/mN2yEDAACXGR6PDE+Kg0+neHxLRGIIAAAXZPsYQ+PHj9ell16qZ555RkuWLNGDDz6oHTt2SJIMw1D//v1VWlqqf/3rXzr88MNdjhYAADQLWT7G0Jdffqmnn35ab775pv773/9qz5496ty5s4455hiVlpbqwgsvVH5+fqPbJTEEAABckZ+fr0svvVSXXnqpJGnHjh3au3evDjzwwIgp6wEAALLVhx9+qBtvvFFvvfWWTjzxRA0ZMkTnn3++WrVqpW3btumzzz7TLbfcomuuuUY33nijfv3rXzcqQURiCAAAF2R7V7Jo2rVrp3bt2rkdBgAAaK5MMw0VQ5k31PKFF16oG264QX/+85/Vvn37mPutWLFC99xzj+6++27dfPPNCbdPYggAABdke1cyAACAxjJMU0aKiZ1Uj3fDv//974SqqYcOHaqhQ4eqpqamUe1n3hUBAAAAAADIEo3tYt/Y/UkMAQDgAruuK1kqCxVDAAAgqxie+gGok12MzBx8+h//+If69++vqqqqiG07duzQEUccoTfffDOptkkMAQDgAluSbae4uP0kAAAA9qdUk0LpmNXMJQsXLtSECRNUWFgYsa1du3a64oortGDBgqTaJjEEAABc1atXL33//fcR67dv365evXq5EBEAAEDz8vHHH2vEiBExt5911llauXJlUm0z+DQAAC6wZMhQirOSpXh8c7Fhwwb5fL6I9dXV1dq8ebMLEQEAgOYoWweflqTKysq4Ywfl5ORo69atSbVNYggAABcwK5n017/+NfjzK6+84piq3ufzqby8XD169HAhMgAA0CyloytYhnYl6969uz777DP16dMn6vZPPvlEXbt2TaptEkMAAMAVI0eOlCQZhqExY8Y4tuXm5qpHjx66++67XYgMAACgefnxj3+sadOmacSIESooKHBs27t3r2bMmKGf/vSnSbWdmTVUAABkuFRnJAssyVi0aJF69OihgoICDRkyRO+//37MfR966CGdfPLJ6tChgzp06KDhw4dH7D927FgZhuFY4vWBD14Dy5JlWTr44IP17bffBh9blqXq6mqtWbMm6RscAADQAplmGgafzsw0yK233qpt27bp0EMP1fz58/XCCy/ohRde0J133ql+/fpp27ZtuuWWW5Jqm4ohAABcEJhZLNU2GmvJkiUqKyvT4sWLNWTIEC1cuFClpaVas2aNunTpErH/8uXLdckll+iEE05QQUGB7rzzTp111ln6/PPP1b179+B+I0aM0COPPBJ8nJ+fn3BM69evb/wTAQAAWcfweGR4UusKlurxbikqKtI777yjq666SlOnTpVddyNoGIZKS0u1aNEiFRUVJdU2iSEAALLIggULNGHCBI0bN06StHjxYr300kt6+OGHNWXKlIj9n3zyScfj3/3ud3r22WdVXl6u0aNHB9fn5+eruLg46bjKy8tVXl4erBwK9fDDDyfdLgAAQEtxyCGH6OWXX9YPP/ygtWvXyrZt9e3bVx06dEipXRJDAAC4IJ2DT1dVVTnW5+fnR63Y8Xq9WrlypaZOnRpcZ5qmhg8frhUrViR0zj179qimpkYdO3Z0rF++fLm6dOmiDh066IwzztDs2bN14IEHJtTmzJkzNWvWLA0ePFhdu3aVYWT2oNoAAKCJmGbqXcEytCtZqA4dOujYY49NW3skhgAAcEE6E0MlJSWO9TNmzNBtt90Wsf93330nn88XUWZcVFSk1atXJ3TOm266Sd26ddPw4cOD60aMGKELLrhAPXv21Lp163TzzTfr7LPP1ooVK+RJoFx78eLFevTRR/XLX/4yoRgAAECWyuJZyZoSiSEAADLcpk2bVFhYGHzcmPF9GmPevHl6+umntXz5csdsGBdffHHw56OOOkoDBgxQ7969tXz5cg0bNqzBdr1er0444YQmiRkAAADxZX4NFQAAGSids5IVFhY6lliJoU6dOsnj8aiystKxvrKyssHxge666y7NmzdPr776qgYMGBB33169eqlTp05au3ZtQtfi8ssv11NPPZXQvgAAIHsZpictC5yoGAIAwAVuzEqWl5enQYMGqby8XCNHjpTknzK+vLxcEydOjHnc/PnzNWfOHL3yyisaPHhwg+f5+uuv9f3336tr164JxbVv3z49+OCDev311zVgwADl5uY6ti9YsCChdgAAQAtnpGGMIYP6mHAkhgAAyCJlZWUaM2aMBg8erOOOO04LFy7U7t27g7OUjR49Wt27d9fcuXMlSXfeeaemT5+up556Sj169FBFRYUkqW3btmrbtq127dqlmTNn6sILL1RxcbHWrVunG2+8UX369FFpaWlCMX3yyScaOHCgJOmzzz5zbGMgagAAgHp//etfo643DEMFBQXq06ePevbs2ag2SQwBAOACf8VQqoNPN/6YUaNGaevWrZo+fboqKio0cOBALV26NDgg9caNG2WGfBP3wAMPyOv16mc/+5mjncAA1x6PR5988okee+wxbd++Xd26ddNZZ52l22+/PeGxjpYtW9b4JwIAALJOOrqCZXpXspEjR8owDNlhN4KBdYZh6KSTTtLzzz+f8DT2JIYAAHBBOmcla6yJEyfG7Dq2fPlyx+MNGzbEbatVq1Z65ZVXkooj3Nq1a7Vu3TqdcsopatWqVfDmBgAAQFLddPWpzkqW2V3JXnvtNd1yyy2aM2eOjjvuOEnS+++/r2nTpunWW29Vu3btdMUVV+j666/X73//+4TaJDEEAABc9f333+vnP/+5li1bJsMw9NVXX6lXr14aP368OnTooLvvvtvtEAEAAJqFa6+9Vg8++KBjRtdhw4apoKBAv/rVr/T5559r4cKFuuyyyxJuM7NTZQAAZCg7TUtLcN111yk3N1cbN25U69atg+tHjRqlpUuXuhgZAABoVkwzPUsGW7dunQoLCyPWFxYW6j//+Y8kqW/fvvruu+8SbjMjrsiGDRs0fvx49ezZU61atVLv3r01Y8YMeb1et0MDACApga5kqS4twauvvqo777xTBx10kGN937599d///telqAAAQHNjeDxpWTLZoEGDdMMNN2jr1q3BdVu3btWNN96oY489VpL01VdfqaSkJOE2M6Ir2erVq2VZlv7f//t/6tOnjz777DNNmDBBu3fv1l133eV2eAAAIAW7d+92VAoFbNu2LeEBrAEAALLB73//e5133nk66KCDgsmfTZs2qVevXnrhhRckSbt27dKtt96a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Jujaa6/Ve++9J8Mw9M033+jJJ5/U9ddfr6uuuiqpNpNKDI0bN047duyIWL9z506NGzcuqUAAAEDTW7JkicrKyjRjxgx9+OGHOvroo1VaWqpvv/026v7Lly/XJZdcomXLlmnFihUqKSnRWWedFZwBQ5Lmz5+ve++9V4sXL9Z7772nNm3aqLS0VPv27dtfTwt1uEcDAKBlmzJlin7xi19o2LBh2rVrl0455RRdfvnluuKKK3TNNdck1WZSiSHbtmVEybJ9/fXXUaebBQAAYVyalWzBggWaMGGCxo0bp/79+2vx4sVq3bq1Hn744aj7P/nkk/rf//1fDRw4UIcddph+97vfybIslZeX+5+GbWvhwoW69dZbdd5552nAgAF6/PHH9c033+j5559P5QohCdyjAQBatCyflczn8+nNN9/U1VdfrW3btumzzz7Tu+++q61btwbHaUxGwmMMSdIxxxwjwzBkGIaGDRumnJz6w30+n9avX68RI0YkHQwAANnCsP1Lqm1IUlVVlWN9fn6+8vPzI/b3er1auXKlpk6dGlxnmqaGDx+uFStWJHTOPXv2qKamRh07dpQkrV+/XhUVFRo+fHhwn3bt2mnIkCFasWKFLr744sY+LSSBezQAQFYwDP+SahsZyuPx6KyzztKXX36p9u3bq3///mlpt1GJocCsF6tWrVJpaaljDIC8vDz16NFDF154YVoCAwAAiSkpKXE8njFjhm677baI/b777jv5fD4VFRU51hcVFWn16tUJneumm25St27dgomgioqKYBvhbQa2Nca+fftUUFDQ6OOyHfdoAABkhyOPPFL/+c9/1LNnz7S12ajE0IwZMyT5p5AdNWoUN24AACQrjbOSbdq0SYWFhcHV0aqF0mHevHl6+umntXz58rTeA1iWpTlz5mjx4sWqrKzUv//9b/Xq1UvTpk1Tjx49NH78+LSdq6XiHg0AkBVcnJVs0aJF+s1vfqOKigodffTRuu+++3TcccelFksSZs+ereuvv1633367Bg0apDZt2ji2h94TJqpRiaGAMWPGSJI++OADffnll5Kk/v37a9CgQck0BwAAUlBYWJjQTUCnTp3k8XhUWVnpWF9ZWani4uK4x951112aN2+eXn/9dQ0YMCC4PnBcZWWlunbt6mhz4MCBCcU/e/ZsPfbYY5o/f74mTJgQXH/kkUdq4cKFJIYa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jAwAADQnlm2nZclkI0eO1PPPP5/WNqkYAgAArrrhhht05513SpI+/fRTlZWVafLkyVq2bJnKysr0yCOPuBwhAABA89C3b1/NmjVLb7/9tgYNGhQxjuCkSZMa3SaJIQAAXMDg0/XWr1+v/v37S5KeffZZnXPOObrjjjv04Ycf6sc//rHL0QEAgOaCSV2l3//+92rfvr1WrlyplStXOrYZhkFiCACAjJLpdyZpkpeXpz179kiSXn/9dY0ePVqS1LFjR1VVVbkZGgAAaEYs27+k2kYmW79+fdrbJDEEAABcddJJJ6msrEwnnnii3n//fS1ZskSS9O9//1sHHXSQy9EBAAA0P16vV+vXr1fv3r2Vk5NaaofBpwEAcAODTwfdf//9ysnJ0Z///Gc98MAD6t69uyTp73//u0aMGOFydAAAoNmw/bOSpbJk+v3Tnj17NH78eLVu3VpHHHGENm7cKEm65pprNG/evKTazJjE0LnnnquDDz5YBQUF6tq1q375y1/qm2++cTssAACSEhhjKNWlJTj44IP14osv6uOPP9b48eOD63/729/q3nvvdTEyAADQnFiy07JksqlTp+rjjz/W8uXLVVBQEFw/fPjwYNV1Y2VMYuj000/Xn/70J61Zs0bPPvus1q1bp5/97GduhwUAAJIQOnZQVVVV3AUAAAB+zz//vO6//36ddNJJMgwjuP6II47QunXrkmozY8YYuu6664I/H3LIIZoyZYpGjhypmpoa5ebmuhgZAABJyPJpNTp06KAtW7aoS5cuat++vePGJsC2bRmGIZ/P50KEAACguQl2B0uxjUy2detWdenSJWL97t27o95PJSJjEkOhtm3bpieffFInnHBC3KRQdXW1qqurg4/51hEA0Fxk+3T1//jHP9SxY0dJ0rJly1yOBqG4fwIANFfMSiYNHjxYL730kq655hpJCiaDfve732no0KFJtZlRiaGbbrpJ999/v/bs2aPjjz9eL774Ytz9586dq5kzZ+6n6AAAQKJOPfXUqD/Dfdw/AQDQfN1xxx06++yz9cUXX6i2tlb33HOPvvjiC73zzjt64403kmrT1TGGpkyZIsMw4i6rV68O7n/DDTfoo48+0quvviqPx6PRo0fLjlMHNnXqVO3YsSO4bNq0aX88LQAAGsasZA7bt2/X3Xffrcsvv1yXX365fvvb32rHjh1uh5WVuH8CADRXqc5Ilo6uaG476aSTtGrVKtXW1uqoo47Sq6++qi5dumjFihUaNGhQUm26WjE0efJkjR07Nu4+vXr1Cv7cqVMnderUSYceeqgOP/xwlZSU6N13341ZLpWfn6/8/Px0hgwAQHpk+RhDoT744AOVlpaqVatWOu644yRJCxYs0Jw5c/Tqq6/qRz/6kcsRZhfunwAAzVU6ZhXL9FnJJKl379566KGH0taeq4mhzp07q3Pnzkkda1mWJDn6wAMAgMxz3XXX6dxzz9VDDz2knBz/rUltba0uv/xy/frXv9Y///lPlyMEAABoPnw+n/7yl7/oyy+/lCT1799f5513XvA+qrEyYoyh9957T//617900kknqUOHDlq3bp2mTZum3r17Jz24EgAAbsr2wadDffDBB46kkCTl5OToxhtv1ODBg12MDAAANCfMSiZ9/vnnOvfcc1VRUaF+/fpJku6880517txZf/vb33TkkUc2uk1XxxhKVOvWrfXcc89p2LBh6tevn8aPH68BAwbojTfeoNQZAJCZGGMoqLCwUBs3boxYv2nTJh1wwAEuRAQAAJojy7bTsmSyyy+/XEcccYS+/vprffjhh/rwww+1adMmDRgwQL/61a+SajMjEkNHHXWU/vGPf+j777/Xvn37tH79ej3wwAPq3r2726EBAJBxFi1apB49eqigoEBDhgzR+++/H3Pfzz//XBdeeKF69OghwzC0cOHCiH1uu+22iMkjDjvssITjGTVqlMaPH68lS5Zo06ZN2rRpk55++mldfvnluuSSS5J5igAAAC3SqlWrNHfuXHXo0CG4rkOHDpozZ44++uijpNrMiK5kAAC0OC4NPr1kyRKVlZVp8eLFGjJkiBYuXKjS0lKtWbNGXbp0idh/z5496tWrly666CJdd911Mds94ogj9PrrrwcfN6aP+1133SXDMDR69GjV1tZKknJzc3XVVVdp3rx5jXh2AACgJfNZ/iXVNjLZoYceqsrKSh1xxBGO9d9++6369OmTVJskhgAAcIFbYwwtWLBAEyZM0Lhx4yRJixcv1ksvvaSHH35YU6ZMidj/2GOP1bHHHitJUbcH5OTkqLi4uPEBScrLy9M999yjuXPnat26dZL8s220bt06qfYAAEDLlI6uYJnelWzu3LmaNGmSbrvtNh1//PGSpHfffVezZs3SnXfeqaqqquC+hYWFCbVJYggAgCzh9Xq1cuVKTZ06NbjONE0NHz5cK1asSKntr776St26dVNBQYGGDh2quXPn6uCDD25UG61bt9ZRRx2VUhwAAAAt2U9/+lNJ0s9//nMZhiFJsuuSXeecc07wsWEY8vl8CbVJYggAADeksStZ6DdDkpSfnx91cobvvvtOPp9PRUVFjvVFRUVavXp10mEMGTJEjz76qPr166ctW7Zo5syZOvnkk/XZZ58lNHj0vn37dN9992nZsmX69ttvZVnOGu8PP/ww6dgAAEDLYdm2fFleMbRs2bK0t0liCAAAF6SzK1lJSYlj/YwZM3Tbbbel1ngjnH322cGfBwwYoCFDhuiQQw7Rn/70J40fP77B48ePH69XX31VP/vZz3TccccFv/0CAAAIZdmpJ3aszM4L6dRTT017mySGAADIcJs2bXL0IY9WLSRJnTp1ksfjUWVlpWN9ZWVl0uMDRdO+fXsdeuihWrt2bUL7v/jii3r55Zd14oknpi0GAACAlmrfvn365JNPolZan3vuuY1uj8QQAABuSGNXssLCwoQGF8zLy9OgQYNUXl6ukSNHSpIsy1J5ebkmTpyYYjD1du3apXXr1umXv/xlQvt37949oS5nAAAguzErmbR06VKNHj1a3333XcS2xowrFMpMR2AAAKCR7DQtjVRWVqaHHnpIjz32mL788ktdddVV2r17d3CWstGjRzsGp/Z6vVq1apVWrVolr9erzZs3a9WqVY5qoOuvv15vvPGGNmzYoHfeeUfnn3++PB6PLrnkkoRiuvvuu3XTTTfpv//9b+OfEAAAyBqBWclSXTLZNddco4suukhbtmyRZVmOJZmkkETFEAAAWWXUqFHaunWrpk+froqKCg0cOFBLly4NDki9ceNGmWb990bffPONjjnmmODju+66S3fddZdOPfVULV++XJL09ddf65JLLtH333+vzp0766STTtK7776rzp07JxTT4MGDtW/fPvXq1UutW7dWbm6uY/u2bdtSfNYAAAAtQ2VlpcrKyiImE0kFiSEAAFxg1C2ptpGMiRMnxuw6Fkj2BPTo0SM4BWosTz/9dJKR+F1yySXavHmz7rjjDhUVFTH4NAAAiMqXhlnJUj3ebT/72c+0fPly9e7dO21tkhgCAMANaRxjKNO98847WrFihY4++mi3QwEAAM2YpdRnFcvwIYZ0//3366KLLtKbb76po446KqLSetKkSY1uk8QQAABw1WGHHaa9e/e6HQYAAECz98c//lGvvvqqCgoKtHz5ckeltWEYJIYAAMgUhu1fUm2jJZg3b54mT56sOXPmRP3mK5EZ1wAAQMvns2z5UiwZSvV4t91yyy2aOXOmpkyZ4hgXMhUkhgAAcANdyYJGjBghSRo2bJhjvW3bSU+7CgAAWh47DbOKNTR2YnPn9Xo1atSotCWFJBJDAADAZcuWLXM7BAAAgIwwZswYLVmyRDfffHPa2iQxBACAWzL7C6u0OfXUU90OAQAAZACf7V9SbSOT+Xw+zZ8/X6+88ooGDBgQ0QV/wYIFjW6TxBAAAC5gjCEAAIDGsdLQlSzV49326aef6phjjpEkffbZZ45toQNRNwaJIQAAAAAAgAzQFF3wSQwBAOAGBp8GAABoFGYlq7d27VqtW7dOp5xyilq1ahWctCMZ6RvGGgAAJCzQlSzVBQAAIFsEupKlumSy77//XsOGDdOhhx6qH//4x9qyZYskafz48Zo8eXJSbZIYAgAArlq/fr2++uqriPVfffWVNmzYsP8DAgAAaKauu+465ebmauPGjWrdunVw/ahRo7R06dKk2iQxBACAG+w0LS3A2LFj9c4770Ssf++99zR27Nj9HxAAAGiWArOSpbpksldffVV33nmnDjroIMf6vn376r///W9SbZIYAgDABXQlq/fRRx/pxBNPjFh//PHHa9WqVfs/IAAA0CzRlUzavXu3o1IoYNu2bcrPz0+qTRJDAADAVYZhaOfOnRHrd+zYIZ/P50JEAAAAzdPJJ5+sxx9/PPjYMAxZlqX58+fr9NNPT6pNZiUDAMANzEoWdMopp2ju3Ln64x//KI/HI0ny+XyaO3euTjrpJJejAwAAzYVl2bJSnFUs1ePdNn/+fA0bNkwffPCBvF6vbrzxRn3++efatm2b3n777aTaJDEEAIAbSAwF3XnnnTrllFPUr18/nXzyyZKkN998U1VVVfrHP/7hcnQAAKC5sNIwRlCG54V05JFH6t///rfuv/9+HXDAAdq1a5cuuOACXX311eratWtSbZIYAgAArurfv78++eQT3X///fr444/VqlUrjR49WhMnTlTHjh3dDg8AAKDZ2Lhxo0pKSnTLLbdE3XbwwQc3uk0SQwAAuCAdg0e3lMGnJalbt26644473A4DAAA0Y+kYPDrTB5/u2bOntmzZoi5dujjWf//99+rZs2dS4zOSGAIAwA1Z3pXsk08+0ZFHHinTNPXJJ5/E3XfAgAH7KSoAANCc+WxbvhQTO6ke7zbbtmUYRsT6Xbt2qaCgIKk2SQwBAID9buDAgaqoqFCXLl00cOBAGYYhO8qNmmEYzEwGAACyXllZmST/vdG0adMcU9b7fD699957GjhwYFJtkxgCAMAFhm3LSPEbq1SPd9P69evVuXPn4M8AAAANyeZZyT766CNJ/oqhTz/9VHl5ecFteXl5Ovroo3X99dcn1TaJIQAA3JDlXckOOeQQSVJNTY1mzpypadOmqWfPni5HBQAAmjOfUp+VLFPrkJctWyZJGjdunO655x4VFhamrW0zbS0BAAA0Um5urp599lm3wwAAAMgIjzzySFqTQhKJIQAAXBGYlSzVpSUYOXKknn/+ebfDAAAAzVxgVrJUFzjRlQwAADdkeVeyUH379tWsWbP09ttva9CgQWrTpo1j+6RJk1yKDAAANCfMStY0SAwBAABX/f73v1f79u21cuVKrVy50rHNMAwSQwAAAE2IxBAAAC5IR1ewltKVjFnJAABAIizLli9LZyVrSowxBACAG+w0LS3ArFmztGfPnoj1e/fu1axZs1yICAAANEe+usRQqgucSAwBAABXzZw5U7t27YpYv2fPHs2cOdOFiAAAALIHiSEAAFzArGT1bNuWYRgR6z/++GN17NjRhYgAAEBz1NwrhubMmaMTTjhBrVu3Vvv27aPus3HjRv3kJz9R69at1aVLF91www2qra1tspgSwRhDAAC4gVnJ1KFDBxmGIcMwdOihhzqSQz6fT7t27dKVV17pYoQAAKA58VlKObHjs9IUTBRer1cXXXSRhg4dqt///veR5/b59JOf/ETFxcV65513tGXLFo0ePVq5ubm64447mi6wBpAYAgAArli4cKFs29Zll12mmTNnql27dsFteXl56tGjh4YOHepihAAAAIkLdIF/9NFHo25/9dVX9cUXX+j1119XUVGRBg4cqNtvv1033XSTbrvtNuXl5e3HaOuRGAIAwCUtpStYssaMGSNJ6tmzp0488UTl5HBbAgAAYktHV7DA8VVVVY71+fn5ys/PT6nthqxYsUJHHXWUioqKgutKS0t11VVX6fPPP9cxxxzTpOePhTGGAABwg22nZ2kBTj31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V1ZWqri4OOoxxcXFjdpfknr16qVOnTpp7dq1jbkiAAAAcVm2nZYFTiSGAABwgwvT1efl5WnQoEEqLy+vD8OyVF5erqFDh0Y9ZujQoY79Jem1116Lub8kff311/r+++/VtWvXxgUIAAAQB13JmgaJIQAAskhZWZkeeughPfbYY/ryyy911VVXaffu3Ro3bpwkafTo0Zo6dWpw/2uvvVZLly7V3XffrdWrV+u2227TBx98oIkTJ0qSdu3apRtuuEHvvvuuNmzYoPLycp133nnq06ePSktLXXmOAAAASBxjDAEA4ALDtmWkWMqczPGjRo3S1q1bNX36dFVUVGjgwIFaunRpcIDpjRs3yjTrvzc64YQT9NRTT+nWW2/VzTffrL59++r555/XkUceKUnyeDz65JNP9Nhjj2n79u3q1q2bzjrrLN1+++37fawjAADQstl26hU/Nl3JIpAYAgDADSFjBKXURhImTpwYrPgJt3z58oh1F110kS666KKo+7dq1UqvvPJKUnEAAAA0hm3ZslJNDNGVLAJdyQAAAAAAALIUFUMAALjBsiUjxW+s+MYLAABkEdu2U+4KRleySCSGAABwg4tdyQAAADJROmYVoytZJLqSAQAAAAAAZCkqhgAAcEUaKobEN14AACB7WJadclf6VAevbolIDAEA4Aa6kgEAADSKbflkW76U24ATXckAAAAAAACyFBVDAAC4wbKVclcwSqEBAEAWoWKoaZAYAgDADbblX1JtAwAAIEvYlpWGxBD3T+HoSgYAAAAAAJClqBgCAMANDD4NAADQKLbPJ9uXYsVQise3RCSGAABwA2MMAQAANIptp2GMIZvEUDi6kgEAAAAAAGQpKoYAAHADXckAAAAahVnJmgYVQwAAuMFWfXIo6cXtJwEAALD/BBJDqS5NYcOGDRo/frx69uypVq1aqXfv3poxY4a8Xq9jv08++UQnn3yyCgoKVFJSovnz5zdJPI1BxRAAAAAAAEAKVq9eLcuy9P/+3/9Tnz599Nlnn2nChAnavXu37rrrLklSVVWVzjrrLA0fPlyLFy/Wp59+qssuu0zt27fXr371K9diJzEEAIAb6EoGAADQKM25K9mIESM0YsSI4ONevXppzZo1euCBB4KJoSeffFJer1cPP/yw8vLydMQRR2jVqlVasGCBq4khupIBAOAGy0rPAgAAkCVsy0pD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Sg3w6FsHDw8P2Nvb6y1rfYMvKiqCVqtt82HT2NiIHj16GCY0GYWoqCikpaXh999/R+/evXXLVSoVmpqaoNFo9L71qqmp0ZVslUqFixcv6j1e61U3VCoV6uvrkZ+fj8LCQkRFRQF49I2UEAKWlpY4ffo0QkJC4O/vr7t/r1692s2Zm5uL8PBwrF69GpMnT4ZCoYBarcbGjRv1xllZWendlslkaGlpec5nhYiIzAH7E/1X7E9kKjgxRGRG2nszf9Yb/N27d2FhYYGCggJYWFjojXu8DFHXJYTA4sWLkZKSgqysLHh6euqtHzlyJKysrJCRkYHQ0FAAQElJCaqqqnQnQAwMDMS6detQW1sLFxcXAEB6ejocHR3h4+MDKysrFBUV6T3utm3bkJmZicOHD8PT0xN2dnZ631A9TU5ODvr164cvv/xSt6yysvKFngMiIjJv7E/0vNifyNRwYoioi5DL5XonPXwZhg8fDq1Wi9ra2qcedkpdW2RkJPbv34+jR4/CwcFB9z/tCoUCr732GhQKBRYsWIBly5bByckJjo6OWLx4MQIDAxEQEAAACA4Oho+PD+bMmYNvv/0W1dXViImJQWRkJKytrQFA9z/3rVxcXGBjY9NmeUe8vLxQVVUFtVqNUaNG4cSJE0hJSXkJzwQREXVF7E/0KrA/kanhVcmIuggPDw/k5eXhxo0buH379ks5rNPb2xvh4eGIiIjAkSNHUFFRgYsXLyI+Ph4nTpx4CanJ2G3fvh11dXWYMGEC3NzcdD8HDhzQjUlISMA777yD0NBQjBs3DiqVCkeOHNGtt7CwQFpaGiwsLBAYGIjZs2cjIiJCd6LPF9H6Om894WJISAiWLl2KqKgo+Pn5IScnB7GxsS+8HSIi6prYn+hVYH8iUyMTQgipQxDRiystLcXcuXNx+fJl3L9/H4mJiZg/fz7+/fdfKJVKJCUlYcmSJbrLrwJAXFwcUlNTcenSJd2yefPmQaPRIDU1FcCjEy7+73//w549e3Dz5k04OzsjICAAq1evhq+vr2F3kugJ1dXVcHNzwx9//IE333xT6jhERGRi2J/IHLE/0ZM4MURERCZHCIHKykps2LABhw8fxo0bN2BjYyN1LCIiIiKjxf5ET8NzDBERkcmpq6vDoEGDMHjwYKjVapYaIiIiog6wP9HT8IghIiIiIiIiIiIzxZNPExERERERERGZKU4MERERERERERGZKU4MERERERERERGZKU4MERERERERERGZKU4MERERERERERGZKU4MERERERERERGZKU4MERERERERERGZKU4MERERERERERGZKU4MERERERERERGZKU4MERERERERERGZqf8DIXyB1OU65ScAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "import matplotlib.pyplot as plt\n", - "fig, (ax1, ax2) = plt.subplots(ncols=2, sharex=True, sharey=True, figsize=(14,5))\n", - "ax1.set_title(\"Soil Moisture\")\n", - "ax2.set_title(\"Soil Temperature\")\n", - "ax1.set_ylabel(\"depth (m)\")\n", - "ax2.set_ylabel(\"depth (m)\")\n", - "da_sm.plot(y=\"depth\", ax=ax1, cbar_kwargs={'label': \"volumetric moisture content (m3 m-3)\"})\n", - "da_t.plot(y=\"depth\", ax=ax2, cbar_kwargs={'label': \"temperature (deg C)\"})" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABIIAAAHWCAYAAAALsiIqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/TGe4hAAAACXBIWXMAAA9hAAAPYQGoP6dpAADmVElEQVR4nOzdd3hb5dkG8Ptob8l7O3uQPSAhgQApIQkrhbI3acroB3SwaZktq4TVQqHQssoIo2UnbBIaQgYBJ2Tv6T01bO3zfn/Iki1P2ZEt2b5/16XrSGc+R0qsR895z/tKQggBIiIiIiIiIiLq9xSJDoCIiIiIiIiIiHoHC0FERERERERERAMEC0FERERERERERAMEC0FERERERERERAMEC0FERERERERERAMEC0FERERERERERAMEC0FERERERERERAMEC0FERERERERERAMEC0FERERERERERAMEC0E04A0ePBhXXnllosMgIiIi6jOYPxER9V0sBNGA8N133+Hee+9FXV1dokPpVd9//z2uv/56jB07FkajEYWFhTj//POxc+fONtfftm0b5s+fD5PJhNTUVFx22WWorKxstZ4sy3jkkUcwZMgQ6HQ6TJgwAUuWLOkwFr/fjzFjxkCSJDz66KMxn4PX68Vtt92G3Nxc6PV6TJ8+HV988UWr9T7//HMsWrQI48aNg1KpxODBg2M+RleP5ff7cd9992Ho0KHQarUYOnQo7r//fgQCgcg6kiTF9FixYkVkmxdeeAFHHXUUdDodRowYgaeeeqrNOL/88kvMnj0b6enpsNlsmDZtGl599dWYznHLli0477zzMHToUBgMBqSnp+OEE07ARx991Ob6sf6baE9dXR2uvvpqZGRkwGg0Yvbs2fjxxx/bXPfDDz/ElClToNPpUFhYiHvuuSfqPSUiot7F/In5UzyPxfyJ+RMlEUE0ACxevFgAEPv27Wu1zOPxCJ/P1/tB9YJzzjlHZGdnixtuuEH885//FH/+859FVlaWMBqNYtOmTVHrHjp0SKSnp4thw4aJv/71r+KBBx4QKSkpYuLEicLr9Uate/vttwsA4qqrrhLPP/+8OP300wUAsWTJknZjeeyxx4TRaBQAxOLFi2M+hwsvvFCoVCpx8803i+eee07MmDFDqFQqsXLlyqj1rrjiCqHT6cTMmTNFfn6+GDRoUMzH6Oqxzj//fCFJkli0aJF49tlnxRVXXBF5P8JeffXVqMcpp5wiALSaX1ZWJoQQ4h//+IcAIM455xzx/PPPi8suu0wAEA8//HDUsT/44AMhSZKYOXOmeOqpp8TTTz8tTjjhBAFAPP74452e49KlS8W8efPEvffeK55//nnx5JNPilmzZgkA4rnnnotatyv/JtoSDAbFzJkzhdFoFPfee694+umnxZgxY4TZbBY7d+6MWnfZsmVCkiQxe/Zs8fzzz4sbbrhBKBQKce2113Z6HCIi6hnMn5g/xfNYzJ+YP1HyYCGIBoSOEpn+bNWqVa2+cHbu3Cm0Wq245JJLoub/+te/Fnq9Xhw4cCAy74svvmj1BXf48GGhVqvFddddF5kny7KYNWuWyM/PF4FAoFUc5eXlwmq1ij/96U9dSmTWrl3ban232y2GDRsmZsyYEbVucXFxJCE9/fTTu5zIxHqsdevWCQDirrvuitr+pptuEpIkiY0bN7a5/+uuu060V3tvaGgQaWlp4vTTT4+af8kllwij0Shqamoi80455RSRm5srPB5PZJ7f7xfDhg0TEyZMiP2EmwkEAmLixIli1KhRUfNj/TfRnrfeeksAEO+8805kXkVFhbDZbOKiiy6KWnfMmDFi4sSJwu/3R+b98Y9/FJIkiW3btnXrvIiI6Mgwf2rC/OnIjsX8ifkTJRcWgqjfu+eeewSAVo9wUjNo0CBxxRVXRNZ/6aWXBACxcuVKccMNN4j09HRhtVrF1VdfLbxer6itrRWXXXaZsNlswmaziVtuuUXIshx1zGAwKJ544gkxZswYodVqRWZmprj66qujvpASacqUKWLKlClR8zIzM8V5553Xat2RI0eKk08+OfL673//uwAgtmzZErXeG2+8EXnfWlq4cKGYNm2a2Lt3b5cSmVtuuUUolUpht9uj5j/44IMCgDh48GCb23UnkYn1WI899lib5//9998LAOIPf/hDm/vvKJFZunSpACCWLl0aNf+7776LXAULmz59uhg7dmyrfUyfPl1Mnz49at6BAwdiTgLOOOMMkZWVFTUv1n8TQgixe/dusXv37qh55513nsjKyhLBYDBq/tVXXy0MBkMkGduyZYsAIP7+979HrVdcXCwAiD//+c8xnQMREcUP86fWmD91/1jMn5g/UXJRdfeWMqK+4he/+AV27tyJJUuW4IknnkB6ejoAICMj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ExwJ0cDCQhARURIK3xrG4eOJiIiov7LoQ/mOm0PIE/UqFoKIiJIQ+wgiIiKi/s6gCeU7HnYWTdSrWAgiIkpC4VvD2CKIiIiI+iu9WgmALYKIehsLQUREScisZWfRRERE1L+FC0EBWcAflBMcDdHAwUIQEVESMnHUMCIiIurndJqmn6NsFUTUe1gIIiJKQiatGgALQURERNR/aZQKKKTQc/YTRNR7WAgiIkpC7CyaiIiI+jtJkqBRhX6SegO8NYyot7AQRESUhDh8PBEREQ0ECklKdAhEAw4LQURESSjSRxBbBBEREVE/Fi4DyUIkNA6igYSFICKiJBRuEeTyBSDLTIyIiIiof5IaWwSxDkTUe1gIIiJKQubGFkFCAA0cRYOIiIj6qXCLINaBiHoPC0FERElIq1JA1TiMBvsJIiIion6rsRIk2CSIqNewEERElIQkSYr0E8SRw4iIiKi/Yosgot7HQhARUZJqGkLen+BIiIiIiHoG+wgi6n0sBBERJammIeTZRxARERH1Txw9nqj3sRBERJSkIiOHedkiiIiIiIiI4oOFICKiJMU+goiIiIiIKN5YCCIiSlJNLYJYCCIiIiIiovhgIYiIKEmZG1sEudgiiIiIiIiI4oSFICKiJMUWQUREREREFG8sBBERJSmTVg0AcLBFEBEREfV7HD+eqLewEERElKTCnUXXs0UQERER9VMcPZ6o97EQRESUpMy8NYyIiIiIiOKMhSAioiRlYmfRREREREQUZywEERElqXBn0U62CCIiIiIiojhhIYiIKElFWgR5/QmOhIiIiIiI+gsWgoiIklSkjyDeGkZERERERHHCQhARUZIKtwhyegIQgkOqEhERERHRkWMhiIgoSYX7CArIAt6AnOBoiIiIiIioP2AhiIgoSRk1qshzJ28PIyIiIiKiOGAhiIgoSSkUUqRVkIsjhxERERERURywEERElMRM7DCaiIiIiIjiiIUgIqIkFukwmkPIExERERFRHLAQRESUxNgiiIiIiIiI4omFICKiJGZuNoQ8ERERUX8jEh0A0QDEQhARURILF4LYWTQREREREcUDC0FEREmMo4YREREREVE8sRBERJTETFo1AN4aRkRERERE8cFCEBFREmvqI4ijhhERERER0ZFjIYiIKImxjyAiIiIiIoonFoKIiJIYh48nIiIiIqJ4YiGIiCiJmTh8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xfnnn48lS5YgMzMTgwcPhrrFkLE//vhj3IIjIhrIXOFCkFaZ4EiIqC9gjkZEiba30oWr/r0evoCMOUdl4e4zx7K/MqIk1OVC0BVXXIEffvgBl156KTsiJCLqQZHOojVsEUREnWOORkSJVO3yYuHL36OuwY+JBTY8dRGHiSdKVl3+dbF06VJ89tlnOP7443siHiIiauTiqGFE1AXM0YgoUTz+IK5+9QccqG5Afooe/7r8aOg1bNFMlKy63EdQQUEBLBZLT8RCRETNNN0axkIQEXWOORoRJYIsC9z8zkb8cKAWFp0KLy88BhlmbaLDIqIOdLkQ9Nhjj+HWW2/F/v37eyAcIiICQklVgy80ahg7iyaiWDBHI6JEePTzHfj4p1KoFBL+cdlUDM80JzokIupEl39dXHrppWhoaMCwYcNgMBhadURYU1MTt+CIiAaqel8g8pwtgogoFszRiKi3vfX9QTyzYg8A4OFzJmDmsPQER0REsejyr4snn3yyB8IgIqLm6r2h1kBKhQStqsuNN4loAGKORkS96dtdVfjje5sBAL/52XCcOzU/wRERUay6NWoYERH1rEhH0RolR/4hopgwRyOi3rK30oVfv/YDArLAzyfl4venjEx0SETUBTFdZq6vr+/STru6PhERRWvwccQwIuocczQi6m1CCPzxvc1wegM4ZnAKHjl3Ai9aEfUxMRWChg8fjocffhilpaXtriOEwBdffIFTTz0Vf/vb3+IWIBHRQOTxywAAnZpDrxJR+5ijEVFv+2BDCVbvrYZOrcDj50+CVsVchaivielS84oVK/CHP/wB9957LyZOnIijjz4aubm50Ol0qK2txdatW7F69WqoVCrccccduOaaa3o6biKifs0bCPURxP6BiKgjzNGIqDfZ3X7cv3QbAOCGn41AQaohwRERUXfEVAgaNWoU/vvf/+LgwYN45513sHLlSnz33Xdwu91IT0/H5MmT8c9//hOnnnoqlEpWhImIjhRbBBFRLJijEVFveuzzHahyeTE0w4hfzRqS6HCIqJu61PlEYWEhbrrpJtx00009FQ8REQHw+EMtgnRqtggios4xRyOinrbpsB2vrjkAALj/5+N4SxhRH8ZfGERESShcCGKSRURERIkWlAX++P4mCAH8fFIuZg5PT3RIRHQEWAgiIkpCnkD41jD+mSYiIqLEemPdQfx02A6z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GLm5ufjvf/+rPBPxrrvuwt69e/Hjjz9i5MiRGDhwIJYtW4ZOnTo1WOf48ePx/PPPIyoqCgMGDMD333+vzCZmMHnyZERERGD06NHo2LEjNm/eDAD46KOPUFlZieDgYDz33HN1Zuyqz8svv4ylS5di1apV6NWrFyIiIvDtt98iMDCw3m3Gjh0LtVqN7777Tlk2dOhQvP/++1i/fj369++PXbt21RmMCg8Px/bt27Fr1y7cfffdGDp0KNatW6d88Whra4utW7eiqKgId999N/7yl78od0c19NOxLl264IcffsDo0aMxf/589O3bFw888ADi4uLw7rvvKuWYX5G1UUljn4JFRNTKiAhCQkLw/PPPY+rUqS0dTrOaMmUK+vfvj7/+9a8tHQoRERHVkJCQgNGjR+P69et1piZvSzZs2IBvvvkG//vf/5q1nYMHD2LEiBE4ffo0unbtelt1Mb8ia8NnBBFRm6dSqfCvf/0LaWlpLR1KsyovL0e/fv3w/PPPt3QoRERERCbNnj0beXl5KCwshJOTU5PVu2XLFjg6OqJ79+44ffo0nn32WQwfPvy2B4GYX5E14h1BRERERERELYx3BDWvTz75BK+88gouXLgAd3d3hIWF4R//+EeTzJJLZG04EERERERERERE1EbwYdFERERERERERG0EB4KIiIiIiIiIiNoIDgQREREREREREbURHAgiIiIiIiIiImojOBBERERERERERNRGcCCIiIiIiIiIiKiN4EAQEREREREREVEbwYEgIiIiIiIiIqI24v8HPnyOheRB16gAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "fig, (ax1, ax2) = plt.subplots(ncols=2, sharey=True, figsize=(14,5))\n", - "\n", - "for i in [0, 1, 20, 200, 300, 400]:\n", - " label = da_t.isel(time=i).time.values\n", - " da_sm.isel(time=i).plot(y=\"depth\", ax=ax1, label=label)\n", - "\n", - "ax1.set_xlabel(\"Soil Moisture (m3 m-3)\")\n", - "ax1.set_ylabel(\"depth (m)\")\n", - "ax1.legend()\n", - "\n", - "for i in [0, 1, 20, 200, 300, 400]:\n", - " label = da_t.isel(time=i).time.values\n", - " da_t.isel(time=i).plot(y=\"depth\", ax=ax2, label=label)\n", - "\n", - "ax2.set_ylabel(\"depth (m)\")\n", - "ax2.set_xlabel(\"Soil Temperature (deg C)\")\n", - "ax2.legend()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "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.13" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/docs/notebooks/BMI_groundwater_coupling_csv_plots.ipynb b/docs/notebooks/BMI_groundwater_coupling_csv_plots.ipynb deleted file mode 100644 index ee8bd7c..0000000 --- a/docs/notebooks/BMI_groundwater_coupling_csv_plots.ipynb +++ /dev/null @@ -1,1128 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# STEMMUS_SCOPE BMI groundwater coupling\n", - "We have to choose how we want to run the BMI. We can do this either using a local executable file, or with a Docker container.\n", - "\n", - "How to run the model is define in the configuration file.\n", - "If it has an entry \"ExeFilePath\" it will use the local executable. If this is missing, it wil try to use Docker (if docker-py is available). " - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "cfg_file = \"/home/bart/tmp/stemmus_scope/config_docker.txt\"\n", - "#cfg_file = \"/home/bart/tmp/stemmus_scope/config_exe.txt\"\n", - "# cfg_file = \"/home/sarah/temp/ecoextreml/test/input/ZA-Kru_2024-07-31-1555/ZA-Kru_2024-07-31-1555_config.txt\"\n", - "cfg_file = \"/home/sarah/temp/ecoextreml/test/input/DE-Geb_2024-08-01-1043/DE-Geb_2024-08-01-1043_config.txt\"\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "If we are using the local executable file we first have to add the matlab runtime compiler locations to PATH:" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "/usr/local/MATLAB/MATLAB_Runtime/R2023a/runtime/glnxa64:/usr/local/MATLAB/MATLAB_Runtime/R2023a/bin/glnxa64:/usr/local/MATLAB/MATLAB_Runtime/R2023a/sys/os/glnxa64:/usr/local/MATLAB/MATLAB_Runtime/R2023a/extern/bin/glnxa64:/usr/local/MATLAB/MATLAB_Runtime/R2023a/sys/opengl/lib/glnxa64\n" - ] - } - ], - "source": [ - "# if \"exe.txt\" in cfg_file:\n", - "# from PyStemmusScope.config_io import read_config\n", - "# import os\n", - "# os.environ['LD_LIBRARY_PATH'] = (\n", - "# \"/home/bart/matlab_runtime/R2023a/runtime/glnxa64:\"\n", - "# \"/home/bart/matlab_runtime/R2023a/bin/glnxa64:\"\n", - "# \"/home/bart/matlab_runtime/R2023a/sys/os/glnxa64:\"\n", - "# \"/home/bart/matlab_runtime/R2023a/extern/bin/glnxa64:\"\n", - "# \"/home/bart/matlab_runtime/R2023a/sys/opengl/lib/glnxa64\"\n", - "# )\n", - "# os.environ[\"STEMMUS_SCOPE\"] = read_config(cfg_file)[\"ExeFilePath\"]\n", - "\n", - "\n", - "from PyStemmusScope.config_io import read_config\n", - "import os\n", - "matlab_path = !whereis MATLAB\n", - "matlab_path = matlab_path.s.split(\": \")[1]\n", - "os.environ['LD_LIBRARY_PATH'] = (\n", - " f\"{matlab_path}/MATLAB_Runtime/R2023a/runtime/glnxa64:\"\n", - " f\"{matlab_path}/MATLAB_Runtime/R2023a/bin/glnxa64:\"\n", - " f\"{matlab_path}/MATLAB_Runtime/R2023a/sys/os/glnxa64:\"\n", - " f\"{matlab_path}/MATLAB_Runtime/R2023a/extern/bin/glnxa64:\"\n", - " f\"{matlab_path}/MATLAB_Runtime/R2023a/sys/opengl/lib/glnxa64\")\n", - "print(os.environ['LD_LIBRARY_PATH'])\n", - "os.environ[\"STEMMUS_SCOPE\"] = read_config(cfg_file)[\"ExeFilePath\"]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now we can initialize the model with a prepared configuration file:" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "from PyStemmusScope.bmi.implementation import StemmusScopeBmi\n", - "from cftime import num2pydate\n", - "from rich import print\n", - "import numpy as np\n", - "import xarray as xr\n", - "\n", - "model = StemmusScopeBmi()\n", - "\n", - "model.initialize(cfg_file)\n", - "\n", - "model.update() # STEMMUS_SCOPE needs to be updated by one timestep before the BMI is accessible" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "After initialization we can enable the groundwater coupling. You enable this using the following command:" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "model.set_value(\"groundwater_coupling_enabled\", np.array([True]))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "To make use of the groundwater coupling routines, a few variables will need to be set:\n", - "- the elevation (above reference, e.g. Mean Sea Level) of the top of the aquifer (in cm)\n", - "- the groundwater head (above reference) in the lowest STEMMUS_SCOPE soil layer (in cm)\n", - "\n", - "The groundwater height (where the hydrostatic pressure is equal to 0.0, will be at a depth of `groundwater_elevation_top_aquifer` - `groundwater_head_bottom_layer` in the STEMMUS_SCOPE model).\n", - "\n", - "Lastly, a groundwater temperature can be defined. However, this is optional." - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "model.set_value(\"groundwater_elevation_top_aquifer\", np.array([2000.]))\n", - "# model.set_value(\"groundwater_head_bottom_layer\", np.array([2000-250.])) # 250 cm under ground surface\n", - "model.set_value(\"groundwater_head_bottom_layer\", np.array([1950.])) # 50 cm under ground surface\n", - "\n", - "model.set_value(\"groundwater_temperature\", np.array([23.])) # optional. 50 deg C here to get a high contrast" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now we can run the model. We define arrays to store the results that we want to inspect, and then step through all model timesteps:" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "433" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "n_timesteps = int((model.get_end_time() - model.get_current_time())/model.get_time_step())\n", - "n_soil_layers = model.get_grid_size(model.get_var_grid(\"soil_moisture\"))\n", - "\n", - "soil_moisture = np.zeros((n_timesteps, n_soil_layers))\n", - "soil_temperature = np.zeros((n_timesteps, n_soil_layers))\n", - "time = []\n", - "i=0" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
model is done\n",
-       "
\n" - ], - "text/plain": [ - "model is done\n" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "while model.get_current_time() < model.get_end_time():\n", - " model.get_value(\"soil_moisture\", soil_moisture[i])\n", - " model.get_value(\"soil_temperature\", soil_temperature[i])\n", - " # model.set_value(\"groundwater_head_bottom_layer\", np.array([1950.-i*5])) # 250 cm under ground surface\n", - "\n", - " # Store the current time as a datetime\n", - " time.append(num2pydate(model.get_current_time(), model.get_time_units()))\n", - "\n", - " i+=1\n", - " model.update()\n", - "\n", - "print(\"model is done\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "For easier anaylsis we can put the data into xarray DataArray objects:" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [], - "source": [ - "gs = model.get_grid_size(1)\n", - "depths = np.ones(gs)\n", - "model.get_grid_z(1, depths)\n", - "\n", - "da_sm = xr.DataArray(\n", - " data=soil_moisture,\n", - " dims=(\"time\", \"depth\"),\n", - " coords={\"time\": np.array(time), \"depth\": depths},\n", - ")\n", - "\n", - "da_t = xr.DataArray(\n", - " data=soil_temperature,\n", - " dims=(\"time\", \"depth\"),\n", - " coords={\"time\": np.array(time), \"depth\": depths},\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": { - "collapsed": true, - "jupyter": { - "outputs_hidden": true - } - }, - "outputs": [ - { - "ename": "ValueError", - "evalue": "Model terminated with return code None", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[9], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43mmodel\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfinalize\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/GitHub/STEMMUS_SCOPE_Processing/PyStemmusScope/bmi/implementation.py:267\u001b[0m, in \u001b[0;36mStemmusScopeBmi.finalize\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 265\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"Finalize the STEMMUS_SCOPE model.\"\"\"\u001b[39;00m\n\u001b[1;32m 266\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_process \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m--> 267\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_process\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfinalize\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 268\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 269\u001b[0m msg \u001b[38;5;241m=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mThe STEMMUS_SCOPE process is not running/connected. Can\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mt finalize!\u001b[39m\u001b[38;5;124m\"\u001b[39m\n", - "File \u001b[0;32m~/GitHub/STEMMUS_SCOPE_Processing/PyStemmusScope/bmi/local_process.py:162\u001b[0m, in \u001b[0;36mLocalStemmusScope.finalize\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 160\u001b[0m \u001b[38;5;28;01mfinally\u001b[39;00m:\n\u001b[1;32m 161\u001b[0m msg \u001b[38;5;241m=\u001b[39m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mModel terminated with return code \u001b[39m\u001b[38;5;132;01m{\u001b[39;00m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mprocess\u001b[38;5;241m.\u001b[39mpoll()\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m--> 162\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(msg)\n", - "\u001b[0;31mValueError\u001b[0m: Model terminated with return code None" - ] - } - ], - "source": [ - "model.finalize()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now we can show the results. Note that up to ~2.5 m depth the soil is completely saturated, and that the temperature here equals the groundwater temperature we defined before." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### with coupling\n", - "model.set_value(\"groundwater_elevation_top_aquifer\", np.array([2000.]))\n", - "\n", - "model.set_value(\"groundwater_head_bottom_layer\", np.array([1950.])) # 50 cm under ground surface\n", - "\n", - "model.set_value(\"groundwater_temperature\", np.array([17.])) # optional. 50 deg C here to get a high contrast" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import matplotlib.pyplot as plt\n", - "fig, (ax1, ax2) = plt.subplots(ncols=2, sharex=True, sharey=True, figsize=(14,5))\n", - "ax1.set_title(\"Soil Moisture\")\n", - "ax2.set_title(\"Soil Temperature\")\n", - "ax1.set_ylabel(\"depth (m)\")\n", - "ax2.set_ylabel(\"depth (m)\")\n", - "da_sm.plot(y=\"depth\", ax=ax1, cbar_kwargs={'label': \"volumetric moisture content (m3 m-3)\"})\n", - "da_t.plot(y=\"depth\", ax=ax2, cbar_kwargs={'label': \"temperature (deg C)\"})" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import matplotlib.pyplot as plt\n", - "# with coupling, \n", - "fig, (ax1, ax2) = plt.subplots(ncols=2, sharey=True, figsize=(14,5))\n", - "\n", - "for i in [0, 1, 20, 200, 300, 400]:\n", - " label = da_t.isel(time=i).time.values\n", - " da_sm.isel(time=i).plot(y=\"depth\", ax=ax1, label=label)\n", - "\n", - "ax1.set_xlabel(\"Soil Moisture (m3 m-3)\")\n", - "ax1.set_ylabel(\"depth (m)\")\n", - "ax1.legend()\n", - "\n", - "for i in [0, 1, 20, 200, 300, 400]:\n", - " label = da_t.isel(time=i).time.values\n", - " da_t.isel(time=i).plot(y=\"depth\", ax=ax2, label=label)\n", - "\n", - "ax2.set_ylabel(\"depth (m)\")\n", - "ax2.set_xlabel(\"Soil Temperature (deg C)\")\n", - "ax2.legend()" - ] - }, - { - "cell_type": "code", - "execution_count": 68, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[]" - ] - }, - "execution_count": 68, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkcAAAGzCAYAAAAlqLNlAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/TGe4hAAAACXBIWXMAAA9hAAAPYQGoP6dpAABQx0lEQVR4nO3deXwV9b3/8decNfsC2QgJBFxAFhFwA8W9YGtrqXVvi1Kq2OsOdatexS7SiuutvUXvr1bbalWqonWhIiBVwYVNBFlUQJYQAmQ5Wc828/sjyeGEBAjhJJOTvJ+PxzzOmZnvzPkMQ3Le+c5mWJZlISIiIiIAOOwuQERERKQrUTgSERERiaJwJCIiIhJF4UhEREQkisKRiIiISBSFIxEREZEoCkciIiIiURSORERERKIoHImIiIhEUTgSkS6tqKiIq6++2u4yRKQHUTgSEdstWbKEGTNmUFFRYXcpnWrt2rVccsklDBw4kKSkJLKysjjjjDP417/+ZXdpIj2ay+4CRESWLFnC/fffz9VXX01GRkazeRs2bMDh6J5/x33zzTdUVVVx1VVXkZ+fT21tLS+//DIXXnghTz75JNdee63dJYr0SIYePCsidnvooYe47bbb2Lx5M0VFRXaXY6twOMzo0aOpr69n/fr1dpcj0iN1zz/HRCRuzJgxg9tuuw2AAQMGYBgGhmGwZcsWoOU5R8888wyGYfDBBx9w0003kZ2dTUZGBlOnTiUQCFBRUcGkSZPIzMwkMzOT22+/nf3/BjRNk8cee4yhQ4eSkJBAbm4uU6dOpby8vLM2+4CcTieFhYU97hCjSFeiw2oiYquLLrqIjRs38o9//INHH32UrKwsALKzsw+63I033kheXh73338/H330EU899RQZGRksWbKEfv368cADD/DWW28xa9Yshg0bxqRJkyLLTp06lWeeeYbJkydz0003sXnzZp544glWrlzJhx9+iNvtPuDn+v1+qqqq2rRtTdtyKDU1NdTV1VFZWcnrr7/O22+/zWWXXdamZUWkA1giIjabNWuWBVibN29uMa9///7WVVddFRn/y1/+YgHWhAkTLNM0I9PHjBljGYZhXXfddZFpoVDIKigosM4888zItPfff98CrOeee67Z58ybN6/V6ftr+vy2DG01derUyDIOh8O6+OKLrbKysjYvLyKxpZ4jEYlLU6ZMwTCMyPgpp5zC0qVLmTJlSmSa0+nkxBNPZPny5ZFpc+bMIT09nW9961vs2bMnMn306NGkpKSwaNEirrzyygN+7oQJE5g/f35Mt+WWW27h4osvpri4mJdeeolwOEwgEIjpZ4hI2ykciUhc6tevX7Px9PR0AAoLC1tMjz6X6Msvv6SyspKcnJxW11taWnrQz+3Tpw99+vRpT8kHNHjwYAYPHgzApEmTGD9+PN/73vf4+OOPmwVAEekcCkciEpecTmebp1tRJ2SbpklOTg7PPfdcq8sf6lynpnOD2iIvL69N7fZ38cUXM3XqVDZu3MigQYPatQ4RaT+FIxGxXWf2jhx11FG8++67nHbaaSQmJh728i+++CKTJ09uU1urnXdKqaurA2hzCBOR2FI4EhHbJScnA3TK5euXXnop//u//8uvf/1rHnjggWbzQqEQ1dXVLW5EGS2W5xyVlpa2OLwXDAb561//SmJiIkOGDInJ54jI4VE4EhHbjR49GoC7776byy+/HLfbzfe+971IaIqlM888k6lTpzJz5kxWrVrF+PHjcbvdfPnll8yZM4fHH3+ciy+++IDLx/Kco6lTp+Lz+TjjjDPo27cvJSUlPPfcc6xfv56HH36YlJSUmHyOiBwehSMRsd1JJ53Er3/9a2bPns28efMwTZPNmzd3SDgCmD17NqNHj+bJJ5/kl7/8JS6Xi6KiIn784x9z2mmndchntuayyy7jz3/+M3/605/Yu3cvqampjB49mt///vdceOGFnVaHiDSnx4eIiIiIRNHjQ0RERESiKByJiIiIRFE4EhEREYmicCQiIiISReFIREREJIrCkYiIiEgU3efoMJmmSXFxMampqXogpIiISJywLIuqqiry8/NxOA7eN6RwdJiKi4tbPPVbRERE4sO2bdsoKCg4aBuFo8OUmpoKNPzjpqWl2VyNiIiItIXP56OwsDDyPX4wCkeHqelQWlpamsKRiIhInGnLKTE6IVtEREQkisKRiIiISBSFIxEREZEoCkciIiIiURSORERERKIoHImIiIhEUTgSERERiaJwJCIiIhJF4UhEREQkSo8NR3/84x8pKioiISGBU045hU8++cTukkRERKQL6JHh6MUXX2TatGncd999rFixghEjRjBhwgRKS0vtLk1ERERs1iPD0SOPPMI111zD5MmTGTJkCLNnzyYpKYmnn37a7tJE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443Iek499VROOOEEZs+e3ern+P1+/H5/ZNzn81FYWEhlZSVpaWkdtXkSh+6d/1+8Wvw+PykLMGDcu1xyYqHdJYmISCOfz0d6enqbvr/joueoNZWVlfTqte+8jqVLl3LGGWdEghHAhAkT2LBhA+Xl5ZE25513XrP1TJgwgaVLlx7wc2bOnEl6enpkKCzUF5605A/7+WjXCgBSgokkeXQpv4hIvIrLcPTVV1/xhz/8galTp0amlZSUkJub26xd03hJSclB2zTNb81dd91FZWVlZNi2bVusNkO6kb8te5yd4RpyQiF2m9/lnME5dpckIiLtZGs4uvPOOzEM46BD0yGxJjt27OD888/nkksu4ZprrunwGr1eL2lpac0GkWh7anfz1Lq/A/CdvSl8/8rpJHqcNlclIiLtZWvf//Tp07n66qsP2mbgwIGR98XFxZx99tmMHTu22YnWAHl5eezatavZtKbxvLy8g7Zpmi/SHg+9cyt1hsXQ+gC9Bj/KCf0y7S5JRESOgK3hKDs7m+zstt1JeMeOHZx99tmMHj2av/zlLzgczTu9xowZw913300wGMTtbniu1fz58xk0aBCZmZmRNgsWLOCWW26JLDd//nzGjBkTmw2SHmft9o95q2IVGAYja0/mJxecY3dJIiJyhOLinKMdO3Zw1lln0a9fPx566CF2795NSUlJs3OFrrzySjweD1OmTGHt2rW8+OKLPP7440ybNi3S5uabb2bevHk8/PDDrF+/nhkzZrBs2TJuuOEGOzZL4pxlWdw//1Ysw2BctcmlVz6OyxkXP1IiInIQcXFJzfz58/nqq6/46quvKCgoaDav6U4E6enpvPPOO1x//fWMHj2arKws7r33Xq699tpI27Fjx/L8889zzz338Mtf/pJjjjmGuXPnMmzYsE7dHukenn/vEdY5qkgwTc7qP50BubortohIdxC39zmyy+HcJ0G6r13l27jk1W9T7jT4dk0Wv//5QgzDsLssERE5gB5xnyMRO93zyo8pdxr0D5jcfNFfFYxERLoRhSORw/TMvN/ykasMp2UxqeA6+ubpxqAiIt2JwpHIYdi66yv+XPwPAL7l78Ol377R5opERCTWFI5EDsP9r02iwmnQP2Bx1+X/sLscERHpAApHIm305Kt38Ym3Cqdl8fNB0+mVnmV3SSIi0gEUjkTa4MtvPufv5a8DMMEc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oPOYREREpOexNRxlZ2eTnZ3drmVXrVqFw+EgJycHgDFjxnD33XcTDAZxu90AzJ8/n0GDBpGZmRlps2DBAm655ZbIeubPn8+YMWOObENERESk24iLc46WLl3KY489xmeffcamTZt47rnnuPXWW/nxj38cCT5XXnklHo+HKVOmsHbtWl588UUef/zxZofjbr75ZubNm8fDDz/M+vXrmTFjBsuWLeOGG26wa9NERESkizEsy7LsLuJQVqxYwX/913+xfv16/H4/AwYM4Cc/+QnTpk1rdj7Q6tWruf766/n000/Jysrixhtv5I477mi2rjlz5nDPPfewZcsWjjnmGB588EG+853vtLkWn89Heno6lZWVpKWlxWwbRUREpOMczvd3XISjrkThSEREJP4czvd3XBxWExEREeksCkciIiIiURSORERERKIoHImIiIhEUTgSERERiaJwJCIiIhJF4UhEREQkisKRiIiISBRbn60Wj5rumenz+WyuRERERNqq6Xu7Lfe+Vjg6TFVVVQAUFhbaXImIiIgcrqqqKtLT0w/aRo8POUymaVJcXExqaiqGYdhdTtzy+XwUFhaybds2PYali9O+ih/aV/FD+6rzWZZFVVUV+fn5OBwHP6tIPUeHyeFwUFBQYHcZ3UZaWpp+McQJ7av4oX0VP7SvOteheoya6IRsERERkSgKRyIiIiJRFI7EFl6vl/vuuw+v12t3KXII2lfxQ/sqfmhfdW06IVtEREQkinqORERERKIoHImIiIhEUTgSERERiaJwJCIiIhJF4UhEREQkisKRdJiZM2dy0kknkZqaSk5ODhMnTmTDhg2R+WVlZdx4440MGjSIxMRE+vXrx0033URlZaWNVfdMh9pX0SzL4tvf/jaGYTB37tzOLVTavK+WLl3KOeecQ3JyMmlpaZxxxhnU1dXZUHHP1pb9VVJSwk9+8hPy8vJITk5m1KhRvPzyyzZVLKBwJB1o8eLFXH/99Xz00UfMnz+fYDDI+PHjqampAaC4uJji4mIeeugh1qxZwzPPPMO8efOYMmWKzZX3PIfaV9Eee+wxPVfQRm3ZV0uXLuX8889n/PjxfPLJJ3z66afccMMNh3yelMReW/bXpEmT2LBhA6+//jqff/45F110EZdeeikrV660sfIezhLpJKWlpRZgLV68+IBtXnrpJcvj8VjBYLATK5P9HWhfrVy50urbt6+1c+dOC7BeffVVewqUiNb21SmnnGLdc889NlYlB9La/kpOTrb++te/NmvXq1cv6//+7/86uzxppD8jpNM0HS7r1avXQdukpaXhcumZyHZqbV/V1tZy5ZVX8sc//pG8vDy7SpP97L+vSktL+fjjj8nJyWHs2LHk5uZy5pln8sEHH9hZpjRq7Wdr7NixvPjii5SVlWGaJi+88AL19fWcddZZNlUpCkfSKUzT5JZbbuG0005j2LBhrbbZs2cPv/71r7n22ms7uTqJdqB9deuttzJ27Fi+//3v21idRGttX23atAmAGTNmcM011zBv3jxGjRrFueeey5dffmlnuT3egX62XnrpJYLBIL1798br9TJ16lReffVVjj76aBur7dn057l0iuuvv541a9Yc8K9Xn8/HBRdcwJAhQ5gxY0bnFifNtLavXn/9dRYuXKhzILqY1vaVaZoATJ06lcmTJwMwcuRIFixYwNNPP83MmTNtqVUO/Hvwv//7v6moqODdd98lKyuLuXPncumll/L+++8zfPhwm6rt2RSOpMPdcMMNvPHGG/znP/+hoKCgxfyqqirOP/98UlNTefXVV3G73TZUKXDgfbVw4UK+/vprMjIymrX/4Q9/yLhx43jvvfc6t1A54L7q06cPAEOGDGnW/rjjjmPr1q2dWqPsc6D99fXXX/PEE0+wZs0ahg4dCsCIESN4//33+eMf/8js2bPtKrlHUziSDmNZFjfeeCOvvvoq7733HgMGDGjRxufzMWHCBLxeL6+//joJCQk2VCqH2ld33nknP/vZz5pNGz58OI8++ijf+973OrPUHu9Q+6qoqIj8/PwWl4tv3LiRb3/7251ZqnDo/VVbWwvQ4kpCp9MZ6QWUzqdwJB3m+uuv5/nnn+e1114jNTWVkpISANLT00lMTMTn8zF+/Hhqa2v5+9//js/nw+fzAZCdnY3T6bSz/B7lUPsqLy+v1ZOw+/Xr12rolY5zqH1lGAa33XYb9913HyNGjOCEE07g2WefZf369fzzn/+0ufqe51D7a/DgwRx99NFMnTqVhx56iN69ezN37lzmz5/PG2+8YXP1PZi9F8tJdwa0OvzlL3+xLMuyFi1adMA2mzdvtrX2nuZQ++pAy+hS/s7X1n01c+ZMq6CgwEpKSrLGjBljvf/++/YU3MO1ZX9t3LjRuuiii6ycnBwrKSnJOv7441tc2i+dy7Asy+qEDCYiIiISF3Qpv4iIiEgUhSMRERGRKApHIiIiIlEUjkRERESiKByJiIiIRFE4EhEREYmicCQiIiISReFIREREJIrCkYiIiEgUhSMRERGRKApHIiIiIlH+P8tSxM5mVTx4AAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "import pandas as pd\n", - "import matplotlib.pyplot as plt\n", - "import pandas as pd\n", - "import numpy as np\n", - "import xarray as xr\n", - "\n", - "# Read the CSV file\n", - "csv_path = \"/home/sarah/temp/ecoextreml/test/output/ZA-Kru_2023-09-06-1228_before/Sim_Temp.csv\"\n", - "\n", - "# Read the CSV file\n", - "df = pd.read_csv(csv_path, header=None)\n", - "\n", - "# Get the first row as depths\n", - "depths = df.iloc[0].values\n", - "\n", - "# Get the rest of the data as soil_temperature\n", - "soil_temperature = df.iloc[3:].values\n", - "soil_temperature = soil_temperature.astype(float)\n", - "\n", - "# Create a time index\n", - "time = np.arange(1, len(df)-2)\n", - "\n", - "# Create the xarray DataArray\n", - "da_t = xr.DataArray(\n", - " data=soil_temperature,\n", - " dims=(\"time\", \"depth\"),\n", - " coords={\"time\": time, \"depth\": depths},\n", - ")\n", - "da_t['depth'] = da_t['depth'].astype(float) * -1\n", - "\n", - "da_t.isel(time=0).plot(y=\"depth\")\n", - "da_t.isel(time=1).plot(y=\"depth\")\n", - "da_t.isel(time=2).plot(y=\"depth\")\n", - "# da_t.isel(time=5).plot(y=\"depth\")\n", - "# da_t.isel(time=6).plot(y=\"depth\")" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array([23.8289, 24.5803, 25.3318, 26.0832, 26.7287, 27.3742, 28.0197,\n", - " 28.6652, 29.3107, 29.1801, 29.0495, 28.919 , 28.7884, 28.6578,\n", - " 28.5272, 28.3966, 28.2661, 28.1355, 28.0049, 27.8743, 27.7437,\n", - " 27.6131, 27.4826, 26.3672, 25.2519, 24.1365, 23.0211, 23.0211,\n", - " 23.0211, 23.0211, 23.0211, 23.0211, 23.0211, 23.0211, 23.0211,\n", - " 23.0211, 23.0211, 22.9336, 22.846 , 22.7584, 22.6708, 22.5832,\n", - " 22.4957, 22.4081, 22.3205, 22.2329, 22.1453, 22.0578, 21.9702,\n", - " 21.8826, 21.795 , 21.7074, 21.6199, 21.5323])" - ] - }, - "execution_count": 17, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "da_t.isel(time=0).values" - ] - }, - { - "cell_type": "code", - "execution_count": 27, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[]" - ] - }, - "execution_count": 27, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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F4tFJHFaDYA/EI4AeC5mc1oNgH+wLwLguWii5cii5QiADxCOAHjOdmKSuJQfgD8QjgB4jkv5AfhJoKZf3Lt3r95//33t2LFDjuNUmTZy5MiTLgxA4+GkWo4MjysBgBqGo3/84x+65pprtH//frVo0UKGUbFDMwyDcATghETpkA3AR2q0L5o4caKuv/567d+/X3v37tWePXtSr927d9d2jQAauJidvJSfliMA3qtROPriiy90yy23KCsrq7brAdAIOW78tBotRwD8oEb7ovz8fC1btqy2awHQSNm2LYlwBMAfqt3n6KWXXkoNX3rppZo0aZI++ugj9erVS8FgsMq8l112We1VCKDBc9x4ODLokA3AB6odjoYPH37EuF//+tdHjDMMI/WvQACoDseNX/HKpfwA/KDa4ejwy/UBoLYkbwJJyxEAP6jRKf6//OUvCofDR4yPRCL6y1/+ctJFAWhcki1HRCMAflCjcDRmzBiVlpYeMX7fvn0aM2bMSRcFoHFxaTkC4CM1Ckeu61a58WPS559/ruzs7JMuCkDjkupzRDgC4AMndIfsvn37yjAMGYahiy++WIFAxddt29bGjRt1ySWX1HqRABo2R5xWA+AfJxSOklesFRUVKT8/X82aNUtNC4VC6ty5s370ox/VaoEAGj7H5rQaAP84oXB09913S5I6d+6sK6+8UpmZmWkpCkDjQssRAD+p0YNnR40aJUlatmyZPv74Y0lSz5491a9fv9qrDECj4abuc0Q8AuC9GoWjL774QldddZXeeecdtWzZUpK0d+9eDRo0SM8884w6dOhQmzUCaOC4QzYAP6nR1Wpjx45VNBrVxx9/rN27d2v37t36+OOP5TiOfvKTn9R2jQAauIr7HBGOAHivRi1Hb775ppYsWaLu3bunxnXv3l2PPfaYBg8eXGvFAWgcHCf54FnCEQDv1ajlKC8vT9Fo9Ijxtm2rffv2J10UgMalokM24QiA92oUjmbOnKmbb75Zy5YtS41btmyZxo8fr4ceeqjWigPQOLicVgPgIzU6rTZ69GgdPHhQAwYMSN0IMhaLKRAI6Prrr9f111+fmnf37t21UymABivV5+god94HgLpWo3D06KOP1nIZABozLuUH4CcndZ8jAKgNqT5HtBwB8IEa9TmSpE8//VR33nmnRowYoR07dkiSXnvtNa1Zs6bWigPQOLjc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FSv0q1/9SitWrNALL7ygtWvX6rLLLqvL1fJcOv5ek/7f//t/evfdd9W+fft0r0bdc1Ft5513nnvTTTelPtu27bZv396dPn36V363U6dO7iOPPHLUafv27XNPP/10t6CgwB0yZIg7fvz4Wqq4fkjHdp08ebJ7wQUX1GaZ9U46tuull17qXn/99VXG/fCHP3Svueaak663vjiZ7eq6rhuLxdzmzZu7Tz/9tOu6rus4jpubm+vOnDkzNc/evXvdjIwM929/+1vtFu9jtb1dj+b99993JbmfffbZSddbX6Rru37++efuaaed5q5evfq4x7f6ipajaopEIlq+fLmGDh2aGmeapoYOHarCwsKTWvZNN92kSy+9tMqyG4t0bdeXXnpJ/fv31xVXXKE2bdqob9+++sMf/lAbJdcL6dqugwYN0qJFi7Ru3TpJ0gcffKC3335b3/72t0+65vqgNrbrwYMHFY1Gdcopp0iSNm7cqJKSkirLzM7O1oABA05631JfpGO7Hk1paakMw1DLli1PtuR6IV3b1XEcXXfddZo0aZLOOuusWq/bDwJeF1Bf7Nq1S7Ztq23btlXGt23bVsXFxTVe7jPPPKMVK1Zo6dKlJ1tivZSu7bphwwY98cQTmjBhgn75y19q6dKluuWWWxQKhTRq1KiTLdv30rVdp0yZorKyMvXo0UOWZcm2bd1333265pprTrbkeqE2tuvkyZPVvn371AGrpKQktYzDl5mc1tClY7serry8XJMnT9aIESMa3JPmjyVd2/XBBx9UIBDQLbfcUqv1+gnhyENbtmzR+PHjVVBQoMzMTK/LaVAcx1H//v11//33S5L69u2r1atXa86cOY0iHKXLs88+q3nz5umvf/2rzjrrLBUVFenWW29V+/bt2a7V8MADD+iZZ57RG2+8wf/na9FXbddoNKof//jHcl1XTzzxhAcV1k9H267Lly/X7NmztWLFChmG4XGF6cNptWpq1aqVLMvS9u3bq4zfvn37V3a2Ppbly5drx44dOvfccxUIBBQIBPTmm2/qt7/9rQKBgGzbro3SfS0d21WS2rVrp549e1YZd+aZZ2rz5s01XmZ9kq7tOmnSJE2ZMkVXXXWVevXqpeuuu0633Xabpk+ffrIl1wsns10feughPfDAA3r99derXHiR/F5t/7eqT9KxXZOSweizzz5TQUFBo2k1ktKzXd966y3t2LFDHTt2TB23PvvsM02cOFGdO3dOx2p4gnBUTaFQSP369dOiRYtS4xzH0aJFizRw4MAaLfPiiy/Whx9+qKKiotSrf//+uuaaa1RUVCTLsmqrfN9Kx3aVpPPPP19r166tMm7dunXq1KlTjZdZn6Rrux48eFCmWXW3YVmWHMep8TLrk5pu1xkzZujee+/VwoUL1b9//yrTunTpotzc3CrLLCsr03vvvXdS/63qk3RsV6kiGK1fv17/+te/dOqpp6alfr9Kx3a97rrrtGrVqirHrfbt22vSpEn65z//mbZ1qXNe9wivT5555hk3IyPDfeqpp9yPPvrIveGGG9yWLVu6JSUlruu67nXXXedOmTIlNX84HHZXrlzprly50m3Xrp37i1/8wl25cqW7fv36Y/5GY7xaLR3b9f3333cDgYB73333uevXr3fnzZvnZmVluf/3f/9X5+vnlXRs11GjRrmnnXaa+/LLL7sbN250X3jhBbdVq1bu7bffXufr55UT3a4PPPCAGwqF3Oeee87dtm1b6rVv374q87Rs2dL9+9//7q5atcr9/ve/73bp0sU9dOhQna+fV2p7u0YiEfeyyy5zO3To4BYVFVWZJxwOe7KOXkjH3+vhGuLVaoSjE/TYY4+5HTt2dEOhkHveeee57777bmrakCFD3FGjRqU+b9y40ZV0xGvIkCHHXH5jDEeum57t+o9//MM9++yz3YyMDLdHjx7u3Llz62ht/KO2t2tZWZk7fvx4t2PHjm5mZqbbtWtX94477mhUBxvXPbHt2qlTp6Nu17vvvjs1j+M47q9+9Su3bdu2bkZGhnvxxRe7a9eurcM18ofa3K7H+nuW5C5evLhuV8xjtf33eriGGI4M121kt7YFAAA4DvocAQAAVEI4AgAAqIRwBAAAUAnhCAAAoBLCEQAAQCWEIwAAgEoIRwAAAJUQjgAAACohHAEAAFRCOAIAAKiEcAQAAFDJ/wf/jGk532F+dAAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "import pandas as pd\n", - "import matplotlib.pyplot as plt\n", - "import pandas as pd\n", - "import numpy as np\n", - "import xarray as xr\n", - "\n", - "# Read the CSV file\n", - "csv_path = \"/home/sarah/temp/ecoextreml/test/output/ZA-Kru_2023-09-06-1228_before/Sim_Theta.csv\"\n", - "\n", - "# Read the CSV file\n", - "df = pd.read_csv(csv_path, header=None)\n", - "\n", - "# Get the first row as depths\n", - "depths = df.iloc[0].values\n", - "\n", - "# Get the rest of the data as soil_temperature\n", - "soil_sm = df.iloc[3:].values\n", - "soil_sm = soil_sm.astype(float)\n", - "\n", - "# Create a time index\n", - "time = np.arange(1, len(df)-2)\n", - "\n", - "# Create the xarray DataArray\n", - "da_s = xr.DataArray(\n", - " data=soil_sm,\n", - " dims=(\"time\", \"depth\"),\n", - " coords={\"time\": time, \"depth\": depths},\n", - ")\n", - "da_s['depth'] = da_s['depth'].astype(float) * -1\n", - "\n", - "da_s.isel(time=0).plot(y=\"depth\")\n", - "da_s.isel(time=1).plot(y=\"depth\")\n", - "da_s.isel(time=2).plot(y=\"depth\")" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[]" - ] - }, - "execution_count": 1, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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NpsNNputUzVQ/yVJYDAiIhogTA1HGRkZyMjIiMqxCgsL8ctf/hIVFRXIzMwEABQXFyMpKQnjxo3T27z77rsRrysuLkZhYWFUaiAiIqLYZzG7gM46dOgQtm7dikOHDiEQCGDr1q3YunUrGhoaAAAzZszAuHHjcPPNN+Orr77C+++/jyVLluCuu+7Se37uuOMO7N+/Hz/96U9RVlaG3/3ud3jttdfwwAMPmPnRiIiIqA+JmQnZjzzyCP785z/r6xMnTgQAfPTRR7j00kshyzL++c9/4s4770RhYSHi4+Nxyy234Oc//7n+muHDh+Odd97BAw88gJUrVyInJwd//OMfeRo/ERER6SQhRPvnJ1MEp9OJ5ORk1NXVISkpyexyqAcdPLgB39lwNxICGuoOrsCOn19pdklERNRNXfn9jplhNSIiIqLewHBEREREZMBwRERERGTAcERERERkwHBEREREZMBwRERERGTAcERERERkwHBEREREZMBwRERERGTAcERERERkwHBEREREZMBwRERERGTAcERERERkwHBEREREZMBwRERERGTAcERERERkwHBEREREZMBwRERERGTAcERERERkwHBEREREZMBwRERERGTAcERERERkwHBEREREZMBwRERERGTAcERERERkwHBEREREZMBwRERERGTAcERERERkwHBEREREZMBwRERERGTAcERERERkwHBEREREZMBwRERERGTAcERERERkwHBEREREZMBwRERERGTAcERERERkwHBEREREZMBwRERERGTAcERERERkwHBEREREZMBwRERERGTAcERERERkwHBEREREZMBwRERERGTAcERERERkwHBEREREZMBwRERERGTAcERERERkwHBEREREZMBwRERERGTAcERERERkwHBEREREZMBwRERERGTAcERERERkwHBEREREZMBwRERERGQQE+Ho4MGDmDdvHoYPH464uDiMHDkSjz76KLxeb0S7bdu2YcqUKbDb7cjNzcWTTz7Z4lhr1qzBmDFjYLfbMX78eLz77ru99TGIiIgoBsREOCorK4Omafj973+P0tJSPPPMM1i1ahV+9rOf6W2cTidmzJiBYcOGYfPmzVi+fDmWLl2KF154QW+zceNG3HTTTZg3bx62bNmCmTNnYubMmdi+fbsZH4uIiIj6IEkIIcwuojuWL1+O559/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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "import matplotlib.pyplot as plt\n", - "import pandas as pd\n", - "import numpy as np\n", - "import xarray as xr\n", - "\n", - "# Read the CSV file\n", - "csv_path = \"/path_to/output/ZA-Kru_2023-09-06-1228/Sim_Temp.csv\"\n", - "\n", - "# Read the CSV file\n", - "df = pd.read_csv(csv_path, header=None)\n", - "\n", - "# Get the first row as depths\n", - "depths = df.iloc[0].values.astype(float) * -1\n", - "\n", - "# Get the rest of the data as soil_temperature\n", - "soil_temperature = df.iloc[3:].values.astype(float)\n", - "\n", - "# Create a time index\n", - "time = np.arange(1, len(df)-2)\n", - "\n", - "# Create the xarray DataArray\n", - "da_t = xr.DataArray(\n", - " data=soil_temperature,\n", - " dims=(\"time\", \"depth\"),\n", - " coords={\"time\": time, \"depth\": depths},\n", - ")\n", - "\n", - "da_t.isel(time=0).plot(y=\"depth\")\n", - "da_t.isel(time=1).plot(y=\"depth\")\n", - "da_t.isel(time=2).plot(y=\"depth\")" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array([23.8289, 24.5803, 25.3318, 26.0832, 26.7287, 27.3742, 28.0197,\n", - " 28.6652, 29.3107, 29.1801, 29.0495, 28.919 , 28.7884, 28.6578,\n", - " 28.5272, 28.3966, 28.2661, 28.1355, 28.0049, 27.8743, 27.7437,\n", - " 27.6131, 27.4826, 26.3672, 25.2519, 24.1365, 23.0211, 23.0211,\n", - " 23.0211, 23.0211, 23.0211, 23.0211, 23.0211, 23.0211, 23.0211,\n", - " 23.0211, 23.0211, 22.9336, 22.846 , 22.7584, 22.6708, 22.5832,\n", - " 22.4957, 22.4081, 22.3205, 22.2329, 22.1453, 22.0578, 21.9702,\n", - " 21.8826, 21.795 , 21.7074, 21.6199, 21.5323])" - ] - }, - "execution_count": 19, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "da_t.isel(time=0).values" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[]" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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6t+//0E3CgAAIFPaFY7mzZuna6+9VqtWrUqVrVq1Stdff73uu+++DmscAABAZ2vXbbVJkyapvr5eo0aNSr0IMhqNyu1264orrtAVV1yRqrtr166OaSkAAEAnaFc4evDBBzu4GQAAAF3DQb3nCAAA4HDTrmeOJGnjxo269dZbdfHFF2vbtm2SpL/85S9at25dhzUOAACgs7UrHP3973/X8OHD9eabb+r5559XbW2tJOntt99O/cQIAABAd9SucDRjxgzdddddWr58ubxeb6r861//ut54440OaxwAAEBna1c4evfdd3Xeeec1K+/Tp4927Nhx0I0CAADIlHaFo/z8fG3ZsqVZ+Zo1a3TUUUcddKMAAAAypV3h6KKLLtLNN9+sqqoqWZaleDyu119/XTfddJMuu+yyjm4jAABAp2lXOLr77rs1bNgwFRcXq7a2Vscff7zGjBmj0aNH69Zbb+3oNgIAAHSadr3nyOv16vHHH9fs2bP17rvvqra2VqeccoqOPfbYjm4fAABAp2p1OJo6deoB1zu/pXb//fe3v0UAAAAZ1OpwtGbNmrTlf//734pGoxo6dKgk6T//+Y9cLpdGjhzZsS0EAADoRK0OR6+88krq8/3336/c3Fw99dRTKigokCTt3r1bkydP1pgxYzq+lQAAAJ2kXQ9kz58/X3Pnzk0FI0kqKCjQXXfdpfnz53dY4wAAADpbu8JRMBjU9u3bm5Vv375dNTU1B90oAACATGlXODrvvPM0efJkPf/88/rss8/02Wef6bnnnlNZWZnOP//8jm4jAABAp2nXV/kXLlyom266SZdccokikUhiR263ysrKNG/evA5tIAAAQGdqVzjKzs7WI488onnz5mnjxo2SpGOOOUY5OTkd2jgAAIDO1q5wlJSTk6OTTjqpo9oCAACQce165ggAAOBwRTgCAABwIBwBAAA4EI4AAAAcCEcAAAAOhCMAAAAHwhEAAIBDtwlH5557ro4++mj5/X7169dPl156qTZv3pxW55133tGYMWPk9/tVXFyse++9t9l+lixZomHDhsnv92v48OF66aWXOusUAABAN9BtwtGZZ56pZ599VuvXr9dzzz2njRs36oILLkitDwaDGj9+vAYOHKjVq1dr3rx5mjNnjhYtWpSqs3LlSl188cUqKyvTmjVrNGHCBE2YMEHvvfdeJk4JAAB0QZYx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YDCoN998s0P/eWTaoei7lnz22WfauXPnYXPdddS/r/F4XKFQSBLX3MH0XUsOt2tOanvfDRs2TO+++67Wrl2bms4991ydeeaZWrt2rYqLi3vMddcumX4iHAlPP/208fl85sknnzTvv/++ueqqq0x+fr6pqqoyxhhz6aWXmhkzZqTqh0Ihs2bNGrNmzRrTr18/c9NNN5k1a9aYDz/8MFVn2rRp5tVXXzWVlZXm9ddfN+PGjTO9e/c227Zt6/TzO5Ta2nf33HOP8Xq95ve//33aV39ramrS6uTn55s//OEP5p133jHf+c53Dsuvt3Z039XU1JibbrrJlJeXm8rKSvPyyy+bU0891Rx77LGmsbExI+d4KLS13+6++26zbNkys3HjRvP++++b++67z7jdbvP444+n6nDNta/veso1Z0zb+25fLX2rr6dcd21FOOpCHnroIXP00Ucbr9drvvKVr5g33ngjte700083l19+eWq5srLSSGo2nX766ak6EydONP369TNer9ccddRRZuLEiWbDhg2deEadpy19N3DgwBb77rbbbkvVicfj5n//939N3759jc/nM2eddZZZv359J55R5+nIvquvrzfjx483hYWFxuPxmIEDB5orr7wy9R/vw0lb+m3WrFnmS1/6kvH7/aagoMCUlJSYp59+Om1/XHMJbe27nnTNGdO2vttXS+GoJ113bWEZY0wGBqwAAAC6JJ45AgAAcCAcAQAAOBCOAAAAHAhHAAAADoQjAAAAB8IRAACAA+EIAADAgXAEAADgQDgCAABwIBwBAAA4EI4AAAAc/j8km3aDJ29MnAAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "import pandas as pd\n", - "import matplotlib.pyplot as plt\n", - "import pandas as pd\n", - "import numpy as np\n", - "import xarray as xr\n", - "\n", - "# Read the CSV file\n", - "csv_path = \"/path_to/output/ZA-Kru_2023-09-06-1228_main/Sim_Theta.csv\"\n", - "\n", - "# Read the CSV file\n", - "df = pd.read_csv(csv_path, header=None)\n", - "\n", - "# Get the first row as depths\n", - "depths = df.iloc[0].values\n", - "\n", - "# Get the rest of the data as soil_temperature\n", - "soil_sm = df.iloc[3:].values\n", - "soil_sm = soil_sm.astype(float)\n", - "\n", - "# Create a time index\n", - "time = np.arange(1, len(df)-2)\n", - "\n", - "# Create the xarray DataArray\n", - "da_s = xr.DataArray(\n", - " data=soil_sm,\n", - " dims=(\"time\", \"depth\"),\n", - " coords={\"time\": time, \"depth\": depths},\n", - ")\n", - "da_s['depth'] = da_s['depth'].astype(float) * -1\n", - "\n", - "da_s.isel(time=0).plot(y=\"depth\")\n", - "da_s.isel(time=1).plot(y=\"depth\")\n", - "da_s.isel(time=2).plot(y=\"depth\")" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[]" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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6dOnY8KECbjuuuvw2Wef4X//93/xwAMP4JZbbonV/Nx8883YsWMHfvjDH2LTpk345S9/iVdffRV33XVXKj8aERER9SNp0yH7wQcfxIsvvhjbPuOMMwAA77//Pi688EIoioK//OUv+P73v4/y8nL4/X7ccMMN+NGPfhS7ZtSoUfjrX/+Ku+66C0uXLsXw4cPxm9/8ho/xExERUUzahKMXXnihwzGOokaOHNmm2ay1Cy+8EGvXrk1iyYiIiGggSZtmNSIiIqK+wHBEREREFIfhiIiIiCgOwxERERFRHIYjIiIiojgMR0RERERxGI6IiIiI4jAcEREREcVhOCIiIiKKw3BEREREFIfhiIiIiCgOwxERERFRHIYjIiIiojgMR0RERERxGI6IiIiI4jAcEREREcVhOCIiIiKKw3BEREREFIfhiIiIiCgOwxERERFRHIYjIiIiojgMR0RERERxGI6IiIiI4jAcEREREcVhOCIiIiKKw3BEREREFIfhiIiIiCgOwxERERFRHIYjIiIiojgMR0RERERxGI6IiIiI4jAcEREREcVhOCIiIiKKw3BEREREFIfhiIiIiCgOwxERERFRHIYjIiIiojgMR0RERERxGI6IiIiI4jAcEREREcVhOCIiIiKKw3BEREREFIfhiIiIiCgOwxERERFRHIYjIiIiojgMR0RERERxGI6IiIiI4jAcEREREcVhOCIiIiKKw3BEREREFIfhiIiIiCgOwxERERFRHIYjIiIiojgMR0RERERxGI6IiIiI4jAcEREREcVhOCIiIiKKkxbhaNeuXZg7dy5GjRqFjIwMjBkzBg899BBM00w47/PPP8e0adPg9XpRWlqKxx57rM17LVu2DOPHj4fX68XEiRPx9ttv99XHICIiojSQFuFo06ZNcF0X//Vf/4UNGzbgqaeewrPPPov77rsvdk4gEMD06dMxcuRIrFmzBkuWLMGiRYvw3HPPxc5ZtWoVrrnmGsydOxdr167FrFmzMGvWLKxfvz4VH4uIiIj6ITXVBeiKmTNnYubMmbHt0aNHY/PmzfjVr36Fxx9/HADw0ksvwTRNPP/889B1HaeccgrWrVuHJ598EjfddBMAYOnSpZg5cybuvvtuAMAjjzyCiooKPPPMM3j22Wfb/dmGYcAwjNh2IBDorY9JRERE/UBa1By1p76+Hvn5+bHtyspKnH/+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xD3CL0lSiktDREQDEcMRpZUPolOGsEmNiIh6CcMRpY3DgRA2VTVAkoDzxjIcERFR72A4orQRrTU6ZWg28v16iktDREQDFcMRpY1of6OvjOWUIURE1HsYjigtCCFiNUfns78RERH1IoYjSgtbDjXicIMBryZjclleqotDREQDGMMRpYWVW8NThpwzqgAeVUlxaYiIaCBjOKK0sDI6vhGfUiMiol7GcET9nmE7+HjnUQAc34iIiHofwxH1e2t21yJkuSjM9GB8SVaqi0NERAMcwxH1ey1ThhRyyhAiIup1DEfU762MjW/EJjUiIup9DEfUr9U2mVh/oB4A+xsREVHfYDiifu3D7dUQAhhXnIXibG+qi0NERIMAwxH1a7EpQ1hrREREfYThiPotIURLfyOGIyIi6iMMR9Rv7axuwv66ZuiKjCmj8lNdHCIiGiQYjqjfik40O3lkHny6muLSEBHRYMFwRP3W/21hkxoREfU9hiPqlyzHxUc7wlOGTGM4IiKiPsRwRP3SZ3vr0GjYyPNpOGVoTqqLQ0REg0jahSPDMHD66adDkiSsW7cu4djnn3+OadOmwev1orS0FI899lib65ctW4bx48fD6/Vi4sSJePvtt/uo5NQd0afUpo4thCJzyhAiIuo7aReOfvjDH2Lo0KFt9gcCAUyfPh0jR47EmjVrsGTJEixatAjPPfdc7JxVq1bhmmuuwdy5c7F27VrMmjULs2bNwvr16/vyI1AXrNx6BAAwjVOGEBFRH0urcPS3v/0N7777Lh5//PE2x1566SWYponnn38ep5xyCq6++mrcfvvtePLJJ2PnLF26FDNnzsTdd9+Nk08+GY888gjOPPNMPPPMM335MegYAiELn+3jlCFERJQaaROODh06hBtvvBG///3v4fP52hyvrKzE+eefD13XY/tmzJiBzZs3o7a2NnbOJZdcknDdjBkzUFlZ2eHPNQwDgUAgYaHeVbn9KBxXYHShH8Pz2v63JiIi6k1pEY6EEJg9ezZuvvlmnHXWWe2eU1VVheLi4oR90e2qqqpOz4keb8/ixYuRk5MTW0pLS4/no1AXRJvUWGtERESpkNJwtHDhQkiS1OmyadMm/PznP0dDQwPuvffePi/jvffei/r6+tiyd+/ePi/DYBObT439jYiIKAVSOuzwggULMHv27E7PGT16NN577z1UVlbC4/Ek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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "import pandas as pd\n", - "import matplotlib.pyplot as plt\n", - "import pandas as pd\n", - "import numpy as np\n", - "import xarray as xr\n", - "\n", - "# Read the CSV file\n", - "csv_path = \"/home/sarah/temp/ecoextreml/test/output/ZA-Kru_2023-09-06-1228/Sim_Temp.csv\"\n", - "\n", - "# Read the CSV file\n", - "df = pd.read_csv(csv_path, header=None)\n", - "\n", - "# Get the first row as depths\n", - "depths = df.iloc[0].values\n", - "\n", - "# Get the rest of the data as soil_temperature\n", - "soil_temperature = df.iloc[3:].values\n", - "soil_temperature = soil_temperature.astype(float)\n", - "\n", - "# Create a time index\n", - "time = np.arange(1, len(df)-2)\n", - "\n", - "# Create the xarray DataArray\n", - "da_t = xr.DataArray(\n", - " data=soil_temperature,\n", - " dims=(\"time\", \"depth\"),\n", - " coords={\"time\": time, \"depth\": depths},\n", - ")\n", - "da_t['depth'] = da_t['depth'].astype(float) * -1\n", - "\n", - "da_t.isel(time=0).plot(y=\"depth\")\n", - "da_t.isel(time=1).plot(y=\"depth\")\n", - "da_t.isel(time=2).plot(y=\"depth\")\n", - "da_t.isel(time=3).plot(y=\"depth\")\n", - "da_t.isel(time=9).plot(y=\"depth\")\n", - "# da_t.isel(time=19).plot(y=\"depth\")" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[]" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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pn///mb8+PHmu9/9btK27nLftRbhqJP42te+Zq666qrEuuM4pl+/fmbhwoVfuu+gQYMOGY5OOeWUdmxl53QkfWeMMbFYzGRmZponn3zSGGNMPB43+fn5ZtGiRYk6+/fvN4FAwPzhD39o38anWHv3nTH1f6gO/g/wseZI+80YY0499VRz6623GmO4546k74zpHvecMW3ru1gsZsaNG2d+9atfNemn7nTftRaP1TqBSCSid955RxMnTkyU2batiRMnqqSk5IiO/cknn6hfv34aOnSofvCDH2jr1q1H2txOpT36rqamRtFoVD179pQklZaWqqysLOmY2dnZGjt27BH/8+hMjkbfNXrttdfUu3dvDR8+XFdeeaX27t3brm1PpSPtN2OMVq1apU2bNmnChAmSuOeOpO8aHcv3nNT2vrvjjjvUu3dvFRcXN9nWXe67tvCmugGQ9uzZI8dx1KdPn6TyPn36aOPGjW0+7tixY/XEE09o+PDh2rFjh26//XaNHz9e69evV2Zm5pE2u1Noj767+eab1a9fv8R/IMrKyhLHOPiYjduOBUej7yRp8uTJOu+88zRkyBBt2bJFt9xyi771rW+ppKREHo+nXa8hFdrabxUVFerfv7/C4bA8Ho8efvhhffOb35TEPXckfScd+/ec1La++9e//qVf//rXWrduXbPbu8t91xaEo2PYt771rcTyqFGjNHbsWA0aNEjPPPNMs/8X0R3dfffdeuqpp/Taa68pGAymujldyqH67sILL0wsjxw5UqNGjdKwYcP02muv6eyzz05FUzuFzMxMrVu3TlVVVVq1apVmzZqloUOH6swzz0x10zq9L+s77rmmKisrdfHFF+uxxx5Tr169Ut2cLodw1An06tVLHo9HO3fuTCrfuXOn8vPz2+08OTk5+spXvqLNmze32zFT7Uj67t5779Xdd9+tV155RaNGjUqUN+63c+dO9e3bN+mYo0ePbr/Gp9jR6LvmDB06VL169dLmzZuPiT9Ube0327Z1/PHHS5JGjx6tjz76SAsXLtSZZ57JPXcEfdecY+2ek1rfd1u2bNFnn32m73znO4myeDwuSfJ6vdq0aVO3ue/agneOOgG/368xY8Zo1apVibJ4PK5Vq1apsLCw3c5TVVWlLVu2JP1L0NW1te/uuece3XnnnVqxYoVOP/30pG1DhgxRfn5+0jFDoZDefPPNdv3nkWpHo++a8/nnn2vv3r3HzH3XXv++xuNxhcNhSdxzR9J3zTnW7jmp9X03YsQIffDBB1q3bl1iOvfcc3XWWWdp3bp1Kigo6Db3XZuk+o1w1HvqqadMIBAwTzzxhPnwww/NFVdcYXJyckxZWZkxxpiLL77YzJkzJ1E/HA6btWvXmrVr15q+ffuaG2+80axdu9Z88skniTqzZ882r732miktLTWvv/66mThxounVq5fZtWtXh1/f0dTavrv77ruN3+83f/zjH5M++ltZWZlUJycnx/z5z38277//vvnud797TH68tb37rrKy0tx4442mpKTElJaWmldeecWcdtpp5oQTTjB1dXUpucajobX9dtddd5mXX37ZbNmyxXz44Yfm3nvvNV6v1zz22GOJOtxzbeu77nLPGdP6vjtYc5/q6y73XWsRjjqRBx980AwcOND4/X7zta99zbzxxhuJbWeccYa59NJLE+ulpaVGUpPpjDPOSNSZOnWq6du3r/H7/aZ///5m6tSpZvPmzR14RR2nNX03aNCgZvvutttuS9SJx+Pmf/7nf0yfPn1MIBAwZ599ttm0aVMHXlHHac++q6mpMZMmTTJ5eXnG5/OZQYMGmcsvvzzxH+9jSWv6bd68eeb44483wWDQ5ObmmsLCQvPUU08lHY97rl5r+6473XPGtK7vDtZcOOpO911rWMYYk4IBKwAAgE6Jd44AAABcCEcAAAAuhCMAAAAXwhEAAIAL4QgAAMCFcAQAAOBCOAIAAHAhHAEAALgQjgAAAFwIRwAAAC6EIwAAAJf/H0PSdkpRm6mtAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "import pandas as pd\n", - "import matplotlib.pyplot as plt\n", - "import pandas as pd\n", - "import numpy as np\n", - "import xarray as xr\n", - "\n", - "# Read the CSV file\n", - "csv_path = \"/home/sarah/temp/ecoextreml/test/output/ZA-Kru_2023-09-06-1228/Sim_Theta.csv\"\n", - "\n", - "# Read the CSV file\n", - "df = pd.read_csv(csv_path, header=None)\n", - "\n", - "# Get the first row as depths\n", - "depths = df.iloc[0].values\n", - "\n", - "# Get the rest of the data as soil_temperature\n", - "soil_sm = df.iloc[3:].values\n", - "soil_sm = soil_sm.astype(float)\n", - "\n", - "# Create a time index\n", - "time = np.arange(1, len(df)-2)\n", - "\n", - "# Create the xarray DataArray\n", - "da_s = xr.DataArray(\n", - " data=soil_sm,\n", - " dims=(\"time\", \"depth\"),\n", - " coords={\"time\": time, \"depth\": depths},\n", - ")\n", - "da_s['depth'] = da_s['depth'].astype(float) * -1\n", - "\n", - "da_s.isel(time=0).plot(y=\"depth\")\n", - "da_s.isel(time=1).plot(y=\"depth\")\n", - "da_s.isel(time=2).plot(y=\"depth\")\n", - "# da_s.isel(time=5).plot(y=\"depth\")\n", - "# da_s.isel(time=9).plot(y=\"depth\")\n", - "# da_s.isel(time=19).plot(y=\"depth\")" - ] - }, - { - "cell_type": "code", - "execution_count": 76, - "metadata": { - "collapsed": true, - "jupyter": { - "outputs_hidden": true - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " T0 T1\n", - "0 23.8289 21.4762\n", - "1 24.5803 22.4195\n", - "2 25.3318 23.2396\n", - "3 26.0832 24.5699\n", - "4 26.7287 25.8374\n", - "5 27.3742 26.7958\n", - "6 28.0197 27.5279\n", - "7 28.6652 28.0974\n", - "8 29.3107 28.5115\n", - "9 29.1801 28.6945\n", - "10 29.0495 28.7665\n", - "11 28.9190 28.7765\n", - "12 28.7884 28.7558\n", - "13 28.6578 28.7284\n", - "14 28.5272 28.7156\n", - "15 28.3966 28.7644\n", - "16 28.2661 28.9214\n", - "17 28.1355 29.1866\n", - "18 28.0049 29.0455\n", - "19 27.8743 24.1795\n", - "20 23.0000 23.0000\n", - "21 23.0000 23.0000\n", - "22 23.0000 23.0000\n", - "23 23.0000 23.0000\n", - "24 23.0000 23.0000\n", - "25 23.0000 23.0000\n", - "26 23.0000 23.0000\n", - "27 23.0000 23.0000\n", - "28 23.0000 23.0000\n", - "29 23.0000 23.0000\n", - "30 23.0000 23.0000\n", - "31 23.0000 23.0000\n", - "32 23.0000 23.0000\n", - "33 23.0000 23.0000\n", - "34 23.0000 23.0000\n", - "35 23.0000 23.0000\n", - "36 23.0000 23.0000\n", - "37 23.0000 23.0000\n", - "38 23.0000 23.0000\n", - "39 23.0000 23.0000\n", - "40 23.0000 23.0000\n", - "41 23.0000 23.0000\n", - "42 23.0000 23.0000\n", - "43 23.0000 23.0000\n", - "44 23.0000 23.0000\n", - "45 23.0000 23.0000\n", - "46 23.0000 23.0000\n", - "47 23.0000 23.0000\n", - "48 23.0000 23.0000\n", - "49 23.0000 23.0000\n", - "50 23.0000 23.0000\n", - "51 23.0000 23.0000\n", - "52 23.0000 23.0000\n", - "53 23.0000 23.0000\n" - ] - } - ], - "source": [ - "\n", - "df = pd.DataFrame({'T0': da_t.isel(time=0).values, 'T1': da_t.isel(time=1).values})\n", - "\n", - "print(df)" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "DE-Seh_2008-2010_FLUXNET2015_Met.nc b'Croplands '\n", - "AU-Gin_2012-2017_OzFlux_Met.nc b'Woody Savannas '\n", - "IT-Col_2007-2014_FLUXNET2015_Met.nc b'Deciduous Broadleaf Forests '\n", - "US-GLE_2009-2014_FLUXNET2015_Met.nc b'Evergreen Needleleaf Forests '\n", - "IT-LMa_2003-2004_LaThuile_Met.nc b'Deciduous Broadleaf Forests '\n", - "AU-Cum_2013-2018_OzFlux_Met.nc b'Evergreen Broadleaf Forests '\n", - "US-Ne2_2002-2012_FLUXNET2015_Met.nc b'Croplands: Lands covered with temporary crops followed by harvest and a bare soil period '\n", - "ZA-Kru_2000-2002_FLUXNET2015_Met.nc b'Savannas '\n", - "FR-Lq1_2004-2006_LaThuile_Met.nc b'Grasslands '\n", - "CA-NS4_2003-2004_FLUXNET2015_Met.nc b'Evergreen Needleleaf Forests '\n", - "AU-GWW_2013-2017_OzFlux_Met.nc b'Savannas '\n", - "AU-Stp_2010-2017_OzFlux_Met.nc b'Grasslands '\n", - "US-Twt_2010-2014_FLUXNET2015_Met.nc b'Croplands: Lands covered with temporary crops followed by harvest and a bare soil period '\n", - "US-SRG_2009-2014_FLUXNET2015_Met.nc b'Grasslands: Lands with herbaceous types of cover. Tree and shrub cover is less than 10%. Permanent wetlands lands with a permanent mixture of water and herbaceous or woody vegetation. The vegetation c'\n", - "UK-Ham_2004-2004_LaThuile_Met.nc b'Deciduous Broadleaf Forest '\n", - "IT-Ren_2010-2013_FLUXNET2015_Met.nc b'Evergreen Needleleaf Forests '\n", - "CN-Qia_2003-2005_FLUXNET2015_Met.nc b'Evergreen Needleleaf Forests: Lands dominated by woody vegetation with a percent cover >60% and height exceeding 2 meters. Almost all trees remain green all year. Canopy is never without green foliage'\n", - "US-Syv_2002-2008_FLUXNET2015_Met.nc b'Mixed Forests '\n", - "ES-LMa_2004-2006_LaThuile_Met.nc b'Savannas '\n", - "DE-Meh_2004-2006_LaThuile_Met.nc b'Mixed Forests '\n", - "HU-Bug_2003-2006_LaThuile_Met.nc b'Grasslands '\n", - "AU-Lit_2016-2017_OzFlux_Met.nc b'Woody Savannas '\n", - "ZM-Mon_2008-2008_FLUXNET2015_Met.nc b'Deciduous Broadleaf Forests '\n", - "FR-Gri_2005-2013_FLUXNET2015_Met.nc b'Croplands: Lands covered with temporary crops followed by harvest and a bare soil period '\n", - "PL-wet_2004-2005_LaThuile_Met.nc b'Permanent Wetlands '\n", - "AU-How_2003-2017_OzFlux_Met.nc b'Woody Savannas '\n", - "CA-Qcu_2002-2006_LaThuile_Met.nc b'Evergreen Needleleaf Forest '\n", - "PT-Mi2_2005-2006_LaThuile_Met.nc b'Grasslands '\n", - "RU-Che_2003-2004_FLUXNET2015_Met.nc b'Permanent Wetlands: Lands with a permanent mixture of water and herbaceous or woody vegetation that cover extensive areas. The vegetation can be present in either salt, brackish, or fresh water '\n", - "IT-Isp_2013-2014_FLUXNET2015_Met.nc b'Deciduous Broadleaf Forests: Lands dominated by woody vegetation with a percent cover >60% and height exceeding 2 meters. Consists of broadleaf tree communities with an annual cycle of leaf-on and le'\n", - "DK-Fou_2005-2005_FLUXNET2015_Met.nc b'Croplands '\n", - "US-Cop_2002-2003_FLUXNET2015_Met.nc b'Grasslands: Lands with herbaceous types of cover. Tree and shrub cover is less than 10%. Permanent wetlands lands with a permanent mixture of water and herbaceous or woody vegetation. The vegetation c'\n", - "CA-NS7_2003-2004_FLUXNET2015_Met.nc b'Open Shrublands '\n", - "US-Aud_2003-2005_LaThuile_Met.nc b'Grasslands '\n", - "IT-BCi_2005-2010_FLUXNET2015_Met.nc b'Croplands '\n", - "US-AR1_2010-2012_FLUXNET2015_Met.nc b'Grasslands '\n", - "DE-Geb_2001-2014_FLUXNET2015_Met.nc b'Croplands '\n", - "IT-Cpz_2001-2008_FLUXNET2015_Met.nc b'Evergreen Broadleaf Forests '\n", - "CH-Fru_2007-2014_FLUXNET2015_Met.nc b'Grasslands: Lands with herbaceous types of cover. Tree and shrub cover is less than 10%. Permanent wetlands lands with a permanent mixture of water and herbaceous or woody vegetation. The vegetation c'\n", - "AU-Rig_2011-2016_OzFlux_Met.nc b'Grasslands '\n", - "US-SP3_1999-2004_LaThuile_Met.nc b'Evergreen Broadleaf Forest '\n", - "US-MMS_1999-2014_FLUXNET2015_Met.nc b'Deciduous Broadleaf Forests: Lands dominated by woody vegetation with a percent cover >60% and height exceeding 2 meters. Consists of broadleaf tree communities with an annual cycle of leaf-on and le'\n", - "FI-Sod_2008-2014_FLUXNET2015_Met.nc b'Evergreen Needleleaf Forests '\n", - "NL-Ca1_2003-2006_LaThuile_Met.nc b'Grasslands '\n", - "DK-ZaH_2000-2013_FLUXNET2015_Met.nc b'Grasslands '\n", - "US-WCr_1999-2006_FLUXNET2015_Met.nc b'Deciduous Broadleaf Forests '\n", - "AU-Cow_2010-2015_OzFlux_Met.nc b'Evergreen Broadleaf Forest '\n", - "AU-Wrr_2016-2017_OzFlux_Met.nc b'Evergreen Broadleaf Forests '\n", - "US-Ne3_2002-2012_FLUXNET2015_Met.nc b'Croplands '\n", - "AU-Sam_2011-2017_OzFlux_Met.nc b'Grasslands '\n", - "CA-SF2_2003-2005_FLUXNET2015_Met.nc b'Evergreen Needleleaf Forests '\n", - "US-UMB_2000-2014_FLUXNET2015_Met.nc b'Deciduous Broadleaf Forests '\n", - "CA-SF1_2004-2006_FLUXNET2015_Met.nc b'Evergreen Needleleaf Forests '\n", - "US-FPe_2000-2006_LaThuile_Met.nc b'Grasslands '\n", - "CA-Qfo_2004-2010_FLUXNET2015_Met.nc b'Evergreen Needleleaf Forests '\n", - "DE-Tha_1998-2014_FLUXNET2015_Met.nc b'Evergreen Needleleaf Forests '\n", - "US-NR1_1999-2014_FLUXNET2015_Met.nc b'Evergreen Needleleaf Forests '\n", - "US-Me4_1996-2000_LaThuile_Met.nc b'Evergreen Needleleaf Forests: Lands dominated by woody vegetation with a percent cover >60% and height exceeding 2 meters. Almost all trees remain green all year. Canopy is never without green foliage'\n", - "CA-NS6_2002-2004_FLUXNET2015_Met.nc b'Open Shrublands '\n", - "US-Bkg_2005-2006_LaThuile_Met.nc b'Grasslands '\n", - "AU-DaP_2009-2012_OzFlux_Met.nc b'Grasslands '\n", - "IT-CA3_2012-2013_FLUXNET2015_Met.nc b'Deciduous Broadleaf Forests: Lands dominated by woody vegetation with a percent cover >60% and height exceeding 2 meters. Consists of broadleaf tree communities with an annual cycle of leaf-on and le'\n", - "FR-Pue_2000-2014_FLUXNET2015_Met.nc b'Evergreen Broadleaf Forests '\n", - "US-Wkg_2005-2014_FLUXNET2015_Met.nc b'Grasslands '\n", - "NL-Loo_1997-2013_FLUXNET2015_Met.nc b'Evergreen Needleleaf Forests '\n", - "US-SP1_2005-2005_LaThuile_Met.nc b'Evergreen Needleleaf Forest '\n", - "US-Ne1_2002-2012_FLUXNET2015_Met.nc b'Croplands '\n", - "IT-Noe_2004-2014_FLUXNET2015_Met.nc b'Closed Shrublands: Lands with woody vegetation less than 2 meters tall and with shrub canopy cover >60%. The shrub foliage can be either evergreen or deciduous. '\n", - "US-AR2_2010-2011_FLUXNET2015_Met.nc b'Grasslands '\n", - "AU-DaS_2010-2017_OzFlux_Met.nc b'Savannas '\n", - "AU-Dry_2011-2015_OzFlux_Met.nc b'Savannas '\n", - "US-Ha1_1992-2012_FLUXNET2015_Met.nc b'Deciduous Broadleaf Forests '\n", - "FR-Hes_1997-2006_LaThuile_Met.nc b'Deciduous Broadleaf Forest '\n", - "IE-Dri_2003-2005_LaThuile_Met.nc b'Grasslands '\n", - "CH-Cha_2006-2014_FLUXNET2015_Met.nc b'Grasslands: Lands with herbaceous types of cover. Tree and shrub cover is less than 10%. Permanent wetlands lands with a permanent mixture of water and herbaceous or woody vegetation. The vegetation c'\n", - "SE-Deg_2002-2005_LaThuile_Met.nc b'Grasslands: Lands with herbaceous types of cover. Tree and shrub cover is less than 10%. Permanent wetlands lands with a permanent mixture of water and herbaceous or woody vegetation. The vegetation c'\n", - "BE-Bra_2004-2014_FLUXNET2015_Met.nc b'Mixed Forests '\n", - "CN-HaM_2002-2003_FLUXNET2015_Met.nc b'Grasslands: Lands with herbaceous types of cover. Tree and shrub cover is less than 10%. Permanent wetlands lands with a permanent mixture of water and herbaceous or woody vegetation. The vegetation c'\n", - "US-SP2_2000-2004_LaThuile_Met.nc b'Evergreen Needleleaf Forest '\n", - "PT-Esp_2002-2004_LaThuile_Met.nc b'Evergreen Broadleaf Forest '\n", - "DE-Gri_2004-2014_FLUXNET2015_Met.nc b'Grasslands '\n", - "JP-SMF_2003-2006_FLUXNET2015_Met.nc b'Mixed Forests '\n", - "IT-Lav_2005-2014_FLUXNET2015_Met.nc b'Evergreen Needleleaf Forests '\n", - "FR-Fon_2005-2013_FLUXNET2015_Met.nc b'Deciduous Broadleaf Forests '\n", - "US-Me6_2011-2014_FLUXNET2015_Met.nc b'Evergreen Needleleaf Forests: Lands dominated by woody vegetation with a percent cover >60% and height exceeding 2 meters. Almost all trees remain green all year. Canopy is never without green foliage'\n", - "IT-PT1_2003-2004_FLUXNET2015_Met.nc b'Deciduous Broadleaf Forests '\n", - "CH-Oe1_2002-2008_FLUXNET2015_Met.nc b'Grasslands: Lands with herbaceous types of cover. Tree and shrub cover is less than 10%. Permanent wetlands lands with a permanent mixture of water and herbaceous or woody vegetation. The vegetation c'\n", - "DK-Lva_2005-2006_LaThuile_Met.nc b'Grasslands '\n", - "IT-Non_2002-2002_LaThuile_Met.nc b'Deciduous Broadleaf Forest '\n", - "CN-Du2_2007-2008_FLUXNET2015_Met.nc b'Grasslands: Lands with herbaceous types of cover. Tree and shrub cover is less than 10%. Permanent wetlands lands with a permanent mixture of water and herbaceous or woody vegetation. The vegetation c'\n", - "PT-Mi1_2005-2005_LaThuile_Met.nc b'Evergreen Broadleaf Forest '\n", - "SD-Dem_2005-2009_FLUXNET2015_Met.nc b'Savannas: Lands with herbaceous and other understory systems, and with forest canopy cover between 10-30%. The forest cover height exceeds 2 meters. '\n", - "IT-CA2_2012-2013_FLUXNET2015_Met.nc b'Croplands: Lands covered with temporary crops followed by harvest and a bare soil period '\n", - "CZ-wet_2007-2014_FLUXNET2015_Met.nc b'Permanent Wetlands: Lands with a permanent mixture of water and herbaceous or woody vegetation that cover extensive areas. The vegetation can be present in either salt, brackish, or fresh water '\n", - "UK-PL3_2005-2006_LaThuile_Met.nc b'Mixed Forests '\n", - "NL-Hor_2008-2011_FLUXNET2015_Met.nc b'Grasslands: Lands with herbaceous types of cover. Tree and shrub cover is less than 10%. Permanent wetlands lands with a permanent mixture of water and herbaceous or woody vegetation. The vegetation c'\n", - "CN-Dan_2004-2005_FLUXNET2015_Met.nc b'Grasslands: Lands with herbaceous types of cover. Tree and shrub cover is less than 10%. Permanent wetlands lands with a permanent mixture of water and herbaceous or woody vegetation. The vegetation c'\n", - "ES-ES2_2005-2006_LaThuile_Met.nc b'Croplands '\n", - "IE-Ca1_2004-2006_LaThuile_Met.nc b'Croplands '\n", - "RU-Fyo_2003-2014_FLUXNET2015_Met.nc b'Evergreen Needleleaf Forests: Lands dominated by woody vegetation with a percent cover >60% and height exceeding 2 meters. Almost all trees remain green all year. Canopy is never without green foliage'\n", - "US-Goo_2004-2006_LaThuile_Met.nc b'Grasslands: Lands with herbaceous types of cover. Tree and shrub cover is less than 10%. Permanent wetlands lands with a permanent mixture of water and herbaceous or woody vegetation. The vegetation c'\n", - "IT-SRo_2003-2012_FLUXNET2015_Met.nc b'Evergreen Needleleaf Forests: Lands dominated by woody vegetation with a percent cover >60% and height exceeding 2 meters. Almost all trees remain green all year. Canopy is never without green foliage'\n", - "CA-NS2_2002-2004_FLUXNET2015_Met.nc b'Evergreen Needleleaf Forests '\n", - "RU-Zot_2003-2003_LaThuile_Met.nc b'Woody Savannas '\n", - "DE-Obe_2008-2014_FLUXNET2015_Met.nc b'Evergreen Needleleaf Forests: Lands dominated by woody vegetation with a percent cover >60% and height exceeding 2 meters. Almost all trees remain green all year. Canopy is never without green foliage'\n", - "FI-Hyy_1996-2014_FLUXNET2015_Met.nc b'Evergreen Needleleaf Forests '\n", - "BE-Vie_1997-2014_FLUXNET2015_Met.nc b'Mixed Forests '\n", - "CA-NS1_2003-2003_FLUXNET2015_Met.nc b'Evergreen Needleleaf Forests '\n", - "AT-Neu_2002-2012_FLUXNET2015_Met.nc b'Grasslands '\n", - "US-Me2_2002-2014_FLUXNET2015_Met.nc b'Evergreen Needleleaf Forests '\n", - "AU-ASM_2011-2017_OzFlux_Met.nc b'Evergreen Needleleaf Forests '\n", - "AU-Otw_2009-2010_OzFlux_Met.nc b'Grasslands '\n", - "DE-Kli_2005-2014_FLUXNET2015_Met.nc b'Croplands: Lands covered with temporary crops followed by harvest and a bare soil period '\n", - "AU-Ync_2011-2017_OzFlux_Met.nc b'Grasslands '\n", - "US-Los_2000-2008_FLUXNET2015_Met.nc b'Permanent Wetlands '\n", - "DE-Wet_2002-2006_LaThuile_Met.nc b'Evergreen Needleleaf Forest '\n", - "AU-Ctr_2010-2017_OzFlux_Met.nc b'Evergreen Broadleaf Forest '\n", - "US-MOz_2005-2006_LaThuile_Met.nc b'Deciduous Broadleaf Forest '\n", - "US-Blo_2000-2006_FLUXNET2015_Met.nc b'Evergreen Needleleaf Forests '\n", - "ID-Pag_2002-2003_LaThuile_Met.nc b'Evergreen Broadleaf Forests: Lands dominated by woody vegetation with a percent cover >60% and height exceeding 2 meters. Almost all trees and shrubs remain green year round. Canopy is never without g'\n", - "AU-TTE_2013-2017_OzFlux_Met.nc b'Open Shrublands '\n", - "CN-Cha_2003-2005_FLUXNET2015_Met.nc b'Mixed Forests '\n", - "US-KS2_2003-2006_FLUXNET2015_Met.nc b'Closed Shrublands '\n", - "US-Whs_2008-2014_FLUXNET2015_Met.nc b'Open Shrublands: Lands with woody vegetation less than 2 meters tall and with shrub canopy cover between 10-60%. The shrub foliage can be either evergreen or deciduous. '\n", - "ES-ES1_1999-2006_LaThuile_Met.nc b'Evergreen Needleleaf Forest '\n", - "DE-Hai_2000-2012_FLUXNET2015_Met.nc b'Deciduous Broadleaf Forests '\n", - "BR-Sa3_2001-2003_FLUXNET2015_Met.nc b'Evergreen Broadleaf Forests '\n", - "US-Bo1_1997-2006_LaThuile_Met.nc b'Croplands '\n", - "DK-Ris_2004-2005_LaThuile_Met.nc b'Croplands '\n", - "ES-VDA_2004-2004_LaThuile_Met.nc b'Grasslands '\n", - "US-Prr_2011-2013_FLUXNET2015_Met.nc b'Evergreen Needleleaf Forests: Lands dominated by woody vegetation with a percent cover >60% and height exceeding 2 meters. Almost all trees remain green all year. Canopy is never without green foliage'\n", - "CN-Cng_2008-2009_FLUXNET2015_Met.nc b'Grasslands: Lands with herbaceous types of cover. Tree and shrub cover is less than 10%. Permanent wetlands lands with a permanent mixture of water and herbaceous or woody vegetation. The vegetation c'\n", - "IT-Amp_2003-2006_LaThuile_Met.nc b'Grasslands '\n", - "US-ARM_2003-2012_FLUXNET2015_Met.nc b'Croplands '\n", - "CH-Dav_1997-2014_FLUXNET2015_Met.nc b'Evergreen Needleleaf Forests '\n", - "US-Tw4_2014-2014_FLUXNET2015_Met.nc b'Permanent Wetlands: Lands with a permanent mixture of water and herbaceous or woody vegetation that cover extensive areas. The vegetation can be present in either salt, brackish, or fresh water '\n", - "CA-NS5_2003-2004_FLUXNET2015_Met.nc b'Evergreen Needleleaf Forests '\n", - "US-Myb_2011-2014_FLUXNET2015_Met.nc b'Permanent Wetlands '\n", - "IT-CA1_2012-2013_FLUXNET2015_Met.nc b'Deciduous Broadleaf Forests '\n", - "US-PFa_1995-2014_FLUXNET2015_Met.nc b'Mixed Forests '\n", - "IT-Mal_2003-2003_LaThuile_Met.nc b'Grasslands '\n", - "AR-SLu_2010-2010_FLUXNET2015_Met.nc b'Mixed Forests '\n", - "AU-Cpr_2011-2017_OzFlux_Met.nc b'Savannas '\n", - "GF-Guy_2004-2014_FLUXNET2015_Met.nc b'Evergreen Broadleaf Forests '\n", - "BW-Ma1_2000-2000_LaThuile_Met.nc b'Savannas '\n", - "US-Var_2001-2014_FLUXNET2015_Met.nc b'Grasslands: Lands with herbaceous types of cover. Tree and shrub cover is less than 10%. Permanent wetlands lands with a permanent mixture of water and herbaceous or woody vegetation. The vegetation c'\n", - "US-Bar_2005-2005_LaThuile_Met.nc b'Mixed Forests '\n", - "FR-LBr_2003-2008_FLUXNET2015_Met.nc b'Evergreen Needleleaf Forests '\n", - "BE-Lon_2005-2014_FLUXNET2015_Met.nc b'Croplands '\n", - "AU-Rob_2014-2017_OzFlux_Met.nc b'Evergreen Broadleaf Forests '\n", - "IT-SR2_2013-2014_FLUXNET2015_Met.nc b'Evergreen Needleleaf Forests: Lands dominated by woody vegetation with a percent cover >60% and height exceeding 2 meters. Almost all trees remain green all year. Canopy is never without green foliage'\n", - "ES-LgS_2007-2007_FLUXNET2015_Met.nc b'Open Shrublands '\n", - "FI-Lom_2007-2009_FLUXNET2015_Met.nc b'Permanent Wetlands: Lands with a permanent mixture of water and herbaceous or woody vegetation that cover extensive areas. The vegetation can be present in either salt, brackish, or fresh water '\n", - "IT-Ro1_2002-2006_FLUXNET2015_Met.nc b'Deciduous Broadleaf Forests '\n", - "AU-Emr_2012-2013_OzFlux_Met.nc b'Grasslands '\n", - "IT-MBo_2003-2012_FLUXNET2015_Met.nc b'Grasslands: Lands with herbaceous types of cover. Tree and shrub cover is less than 10%. Permanent wetlands lands with a permanent mixture of water and herbaceous or woody vegetation. The vegetation c'\n", - "CN-Din_2003-2005_FLUXNET2015_Met.nc b'Evergreen Broadleaf Forests '\n", - "DE-Bay_1997-1999_LaThuile_Met.nc b'Evergreen Needleleaf Forest '\n", - "UK-Gri_2000-2001_LaThuile_Met.nc b'Evergreen Needleleaf Forest '\n", - "DE-SfN_2013-2014_FLUXNET2015_Met.nc b'Permanent Wetlands '\n", - "US-Ho1_1996-2004_LaThuile_Met.nc b'Evergreen Needleleaf Forests: Lands dominated by woody vegetation with a percent cover >60% and height exceeding 2 meters. Almost all trees remain green all year. Canopy is never without green foliage'\n", - "DK-Sor_1997-2014_FLUXNET2015_Met.nc b'Deciduous Broadleaf Forests '\n", - "FI-Kaa_2000-2002_LaThuile_Met.nc b'Permanent Wetlands '\n", - "US-SRM_2004-2014_FLUXNET2015_Met.nc b'Woody Savannas '\n", - "US-Ton_2001-2014_FLUXNET2015_Met.nc b'Woody Savannas '\n", - "FR-Lq2_2004-2006_LaThuile_Met.nc b'Grasslands '\n", - "IT-Ro2_2002-2008_FLUXNET2015_Met.nc b'Deciduous Broadleaf Forests: Lands dominated by woody vegetation with a percent cover >60% and height exceeding 2 meters. Consists of broadleaf tree communities with an annual cycle of leaf-on and le'\n", - "AU-Whr_2015-2016_OzFlux_Met.nc b'Evergreen Broadleaf Forests '\n", - "CA-SF3_2003-2005_FLUXNET2015_Met.nc b'Open Shrublands '\n", - "AU-Tum_2002-2017_OzFlux_Met.nc b'Evergreen Broadleaf Forests '\n" - ] - } - ], - "source": [ - "import xarray as xr\n", - "from pathlib import Path\n", - "\n", - "# Specify the directory\n", - "dir_path = Path('/home/sarah/temp/ecoextreml/data/forcing/plumber2_data')\n", - "\n", - "# Loop over the files in the directory\n", - "for file_path in dir_path.iterdir():\n", - " \n", - " ds_forcing = xr.open_dataset(file_path)\n", - " print(file_path.name, ds_forcing[\"IGBP_veg_long\"].values)" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[]" - ] - }, - "execution_count": 19, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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SpJyc3OVmpqqjh07BsesX79e06dPD26Xm5ur9PT0pjkgAADQ6rWKa4727t2rYcOGqXv37nr00Ud14MABeb3ekGuFxo8fL4/Ho6ysLG3dulWrVq3S0qVLlZ2dHRxz5513au3atVq8eLEKCgq0cOFCbdy4UbfffrsThwUAAMKQo2eO6is3N1c7duzQjh071K1bt5C+6jsRJCQkaN26dbrtttuUlpamTp06af78+br55puDYwcPHqwXX3xR8+bN0z333KMLLrhAr7/+ui655JIWPR4AABC+Wu19jpzSkPskAACA+uM+RwAAAGGIcAQAAGAgHAEAABgIRwAAAAbCEQAAgIFwBAAAYCAcAQAAGAhHAAAABsIRAACAodG3njx8+LA+/vhj7d+/X4FAIKRvwoQJZ1wYAACAExoVjt58801df/31OnLkiOLj42VZVrDPsizCEQAAaLUa9bbajBkzdNNNN+nIkSM6fPiwDh06FFyKioqaukYAAIAW06hwtHfvXk2bNk2xsbFNXQ8AAICjGhWOMjIytHHjxqauBQAAwHH1vubojTfeCD6/+uqrNXPmTH3++efq37+/IiMjQ8Zec801TVchAABAC6p3OMrMzKzRdt9999VosyxLfr//jIoCAABwSr3D0akf1wcAADgbNeqaoxdeeEGlpaU12svKyvTCCy+ccVEAAABOaVQ4mjx5soqLi2u0l5SUaPLkyWdcFAAAgFMaFY5s2w658WO1b7/9VgkJCWdcFAAAgFMadIfsyy+/XJZlybIs/fSnP1VExMnN/X6/du7cqVGjRjV5kQAAAC2lQeGo+hNr+fn5ysjIULt27YJ9Ho9HPXv21L/92781aYEAAAAtqUHhaMGCBZKknj17auzYsYqOjm6WogAAAJzSqC+enThxoiRp48aN2rZtmySpX79+SktLa7rKAAAAHNCocLR3715dd911+uCDD9ShQwdJ0uHDhzV48GC99NJL6tatW1PWCAAA0GIa9Wm1rKwslZeXa9u2bSoqKlJRUZG2bdumQCCgX//6101dIwAAQItp1Jmj9957Txs2bFBqamqwLTU1VU888YSGDBnSZMUBAAC0tEadOUpJSVF5eXmNdr/fr65du55xUQAAAE5pVDjKycnRHXfcoY0bNwbbNm7cqDvvvFOPPvpokxUHAADQ0hr1ttqkSZN07NgxDRo0KHgjyIqK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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "import pandas as pd\n", - "import matplotlib.pyplot as plt\n", - "import pandas as pd\n", - "import numpy as np\n", - "import xarray as xr\n", - "\n", - "# Read the CSV file\n", - "csv_path = \"/home/sarah/temp/ecoextreml/test/output/DE-Geb_2024-08-01-1043/Sim_Temp.csv\"\n", - "\n", - "# Read the CSV file\n", - "df = pd.read_csv(csv_path, header=None)\n", - "\n", - "# Get the first row as depths\n", - "depths = df.iloc[0].values\n", - "\n", - "# Get the rest of the data as soil_temperature\n", - "soil_temperature = df.iloc[3:].values\n", - "soil_temperature = soil_temperature.astype(float)\n", - "\n", - "# Create a time index\n", - "time = np.arange(1, len(df)-2)\n", - "\n", - "# Create the xarray DataArray\n", - "da_t = xr.DataArray(\n", - " data=soil_temperature,\n", - " dims=(\"time\", \"depth\"),\n", - " coords={\"time\": time, \"depth\": depths},\n", - ")\n", - "da_t['depth'] = da_t['depth'].astype(float) * -1\n", - "\n", - "da_t.isel(time=0).plot(y=\"depth\")\n", - "da_t.isel(time=1).plot(y=\"depth\")\n", - "da_t.isel(time=2).plot(y=\"depth\")\n", - "# da_t.isel(time=3).plot(y=\"depth\")\n", - "# da_t.isel(time=9).plot(y=\"depth\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "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.13" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/docs/notebooks/ex8.ipynb b/docs/notebooks/ex8.ipynb deleted file mode 100644 index 4374833..0000000 --- a/docs/notebooks/ex8.ipynb +++ /dev/null @@ -1,1256 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import os\n", - "import sys\n", - "import numpy as np\n", - "import pandas as pd\n", - "import matplotlib as mpl\n", - "from matplotlib import gridspec\n", - "import matplotlib.pyplot as plt\n", - "import flopy\n", - "from modflowapi import ModflowApi" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Model name and workspace" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "folder_name = \"mf6_model\"\n", - "gwf_name = 'gwf'\n", - "gwe_name = 'gwe'\n", - "ws = os.path.join(\".\", folder_name)" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "if sys.platform == \"win32\":\n", - " mf6_dll = \"libmf6.dll\"\n", - "else:\n", - " mf6_dll = \"libmf6.so\"\n", - "\n", - "if sys.platform == \"win32\":\n", - " exe_name = \"mf6.exe\"\n", - "else:\n", - " exe_name = \"mf6\"" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - ".\\libmf6.dll True D:\\ITC\\PhD\\SSM\\MODFLOWAPI\\ex8_extend_ex7_add_gwe\n" - ] - } - ], - "source": [ - "mf6_dll = os.path.join(\".\", \"libmf6.dll\")\n", - "init_ws = os.path.abspath(os.getcwd())\n", - "print(mf6_dll, os.path.isfile(mf6_dll), init_ws)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Model parameters\n", - "\n", - "_Spatial and Temporal Discretization_" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "nlay, nrow, ncol = 2, 1, 1\n", - "shape3d = (nlay, nrow, ncol)\n", - "shape2d = (nrow, ncol)\n", - "delr, delc = 1., 1\n", - "area = delr * delc\n", - "aquifer_thickness = 10.\n", - "dz = aquifer_thickness / nlay\n", - "#elevations = [2595] + np.arange(-dz, -(aquifer_thickness + dz), -dz).tolist()\n", - "elevations = [26.0, 26.0 - dz, 26.0 - 2*dz]\n", - "nper, pertime, nstp, tsmult = 10, 1, 48, 1" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "_Hydraulic Properties_" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "k, ss, sy = 0.1, 1.5e-5, 0.05" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "_Initial Conditions_" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [], - "source": [ - "h0 = elevations[0] - 2.5" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "_Evapotranspiration Data_" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Build a one-dimensional model\n", - "\n", - "_Simulation Object_" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [], - "source": [ - "sim = flopy.mf6.MFSimulation(sim_name=folder_name, sim_ws=ws, verbosity_level=1, memory_print_option=\"all\", exe_name = exe_name)\n", - "tdis = flopy.mf6.ModflowTdis(sim, filename=f\"{gwf_name}.tdis\", time_units=\"days\", nper=nper, perioddata=((pertime, nstp, tsmult),)*nper,)\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "_Groundwater Flow Model_" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [], - "source": [ - "gwf = flopy.mf6.ModflowGwf(sim, modelname=gwf_name, newtonoptions=\"NEWTON UNDER_RELAXATION\", save_flows=True)\n", - "ims_gwf = flopy.mf6.ModflowIms(sim, print_option=\"summary\", complexity=\"MODERATE\", filename=f\"{gwf_name}.ims\",\n", - " outer_maximum= 500, under_relaxation=\"dbd\",\n", - " linear_acceleration=\"bicgstab\", rcloserecord=[1e-6, \"strict\"],inner_dvclose=1e-8,outer_dvclose=1e-9,);\n", - "sim.register_ims_package(ims_gwf, [gwf.name]) " - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [], - "source": [ - "dis_gwf = flopy.mf6.ModflowGwfdis(gwf, length_units=\"meters\", nlay=nlay, nrow=nrow, ncol=ncol, \n", - " delr=delr, delc=delc, top=elevations[0], botm=elevations[1:])\n", - "npf = flopy.mf6.ModflowGwfnpf(gwf, icelltype=1, k=k)\n", - "sto = flopy.mf6.ModflowGwfsto(gwf, iconvert=1, ss=ss, sy=sy)\n", - "ic = flopy.mf6.ModflowGwfic(gwf, strt=h0)\n", - "#api = flopy.mf6.ModflowGwfapi(gwf, pname=\"bmi-et\", maxbound=1,)\n", - "rch = flopy.mf6.ModflowGwfrch(gwf, pname=\"rch_0\", maxbound=10, save_flows=True, stress_period_data = [((0, 0, 0), 0.0001, 0)], auxiliary=[\"TEMPERATURE\"])\n", - "#oc = flopy.mf6.ModflowGwfoc(gwf, printrecord={0: [(\"BUDGET\", \"ALL\")]})\n", - "oc_gwf = flopy.mf6.ModflowGwfoc(gwf, budget_filerecord = '{}.cbc'.format(gwf_name), \n", - " budgetcsv_filerecord = '{}.cbc.csv'.format(gwf_name),\n", - " head_filerecord = '{}.hds'.format(gwf_name),\n", - " saverecord = [('HEAD', 'ALL'),('BUDGET', 'LAST')],\n", - " printrecord = [('HEAD', 'ALL'),('BUDGET', 'LAST')])\n", - "obs_lst = []\n", - "for k in range(nlay):\n", - " obs_lst.append([\"H{:02d}\".format(k+1), \"HEAD\", (k, 0, 0)])\n", - "obs_gwf = flopy.mf6.ModflowUtlobs(gwf, print_input=False, continuous={\"gwhead.csv\": obs_lst});" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "_Groundwater Heat Model_" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [], - "source": [ - "gwe = flopy.mf6.ModflowGwe(sim, modelname=gwe_name, save_flows=True)\n", - "ims_gwe = flopy.mf6.ModflowIms(sim, print_option=\"summary\", filename=f\"{gwe_name}.ims\", complexity=\"SIMPLE\",\n", - " linear_acceleration=\"bicgstab\", rcloserecord=[1e-6, \"strict\"],inner_dvclose=1e-8,outer_dvclose=1e-9,);\n", - "sim.register_ims_package(ims_gwe, [gwe.name])" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [], - "source": [ - "strt_temp = 10.0 # Initial temperature ($^{\\circ}C$)\n", - "scheme = \"Upstream\" # Advection scheme ($-$)\n", - "alh = 0.0 # No mechanical dispersion ($m^2/day$)\n", - "ath1 = 0.0 # No transverse dispersivity ($m^2/day$)\n", - "dispersivity = 0.0 # Longitudinal mechanical dispersion term ($m$)\n", - "porosity = 0.2 # Porosity ($-$)\n", - "rhos = 1500.0 # Density of dry solid aquifer material ($\\frac{kg}{m^3}$)\n", - "cps = 760.0 # Heat capacity of dry solid aquifer material ($\\frac{J}{kg \\cdot ^{\\circ} C}$)\n", - "rhow = 1000.0 # Density of water ($\\frac{kg}{m^3}$)\n", - "cpw = 4183.0 # Heat capacity of water ($\\frac{J}{kg \\cdot ^{\\circ} C}$)\n", - "lhv = 2500.0 # Latent heat of vaporization\n", - "ktw = 0.5918 # Thermal conductivity of water ($\\frac{W}{m \\cdot ^{\\circ} C}$)\n", - "kts = 0.27 # Thermal conductivity of solid aquifer material ($\\frac{W}{m \\cdot ^{\\circ} C}$)" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "'\\nobsgwe_lst = []\\nfor k in range(nlay):\\n obsgwe_lst.append([\"T{:02d}\".format(k+1), \"TEMPERATURE\", (k, 0, 0)])\\nobs_gwe = flopy.mf6.ModflowUtlobs(gwe, print_input=False, continuous={\"gwtemp.csv\": obsgwe_lst});\\n'" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Instantiating MODFLOW 6 transport discretization package\n", - "dis_gwe = flopy.mf6.ModflowGwedis(gwe, length_units=\"meters\", nlay=nlay, nrow=nrow, ncol=ncol, \n", - " delr=delr, delc=delc, top=elevations[0], botm=elevations[1:])\n", - "# Instantiating MODFLOW 6 transport initial concentrations\n", - "ic_gwe = flopy.mf6.ModflowGweic(gwe, strt=strt_temp, pname=\"IC\", filename=f\"{gwe_name}.ic\",)\n", - "# Instantiating MODFLOW 6 transport advection package\n", - "adv = flopy.mf6.ModflowGweadv(gwe, scheme=scheme, pname=\"ADV\", filename=\"{}.adv\".format(gwe_name))\n", - "# Instantiating MODFLOW 6 transport dispersion package\n", - "cnd = flopy.mf6.ModflowGwecnd(gwe, xt3d_off=False, alh=alh, ath1=ath1, ktw=ktw * 86400, \n", - " kts=kts * 86400, pname=\"CND\",filename=f\"{gwe_name}.cnd\",)\n", - "# Instantiating MODFLOW 6 transport mass storage package\n", - "est = flopy.mf6.ModflowGweest(gwe, save_flows=True, porosity=porosity, cps=cps, rhos=rhos,\n", - " packagedata=[cpw, rhow, lhv], pname=\"EST\", filename=f\"{gwe_name}.est\",)\n", - "# Instantiating MODFLOW 6 source/sink mixing package\n", - "sourcerecarray = [ (\"rch_0\", \"AUX\", \"TEMPERATURE\") ]\n", - "ssm = flopy.mf6.ModflowGwessm(gwe, sources = sourcerecarray, filename = \"{}.ssm\".format(gwe_name))\n", - "\n", - "oc_gwe = flopy.mf6.ModflowGweoc(gwe, budget_filerecord = '{}.cbc'.format(gwe_name), \n", - " budgetcsv_filerecord = '{}.cbc.csv'.format(gwe_name),\n", - " temperature_filerecord=\"{}.ucn\".format(gwe_name),\n", - " saverecord = [('TEMPERATURE', 'LAST'),('BUDGET', 'LAST')],\n", - " printrecord = [('TEMPERATURE', 'LAST'),('BUDGET', 'LAST')])\n", - "# The following lines are commented on for now because of an (bug) error (Observation type not found: TEMPERATURE)\n", - "'''\n", - "obsgwe_lst = []\n", - "for k in range(nlay):\n", - " obsgwe_lst.append([\"T{:02d}\".format(k+1), \"TEMPERATURE\", (k, 0, 0)])\n", - "obs_gwe = flopy.mf6.ModflowUtlobs(gwe, print_input=False, continuous={\"gwtemp.csv\": obsgwe_lst});\n", - "'''" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [], - "source": [ - "gwfgwe = flopy.mf6.ModflowGwfgwe(sim, exgtype='GWF6-GWE6', exgmnamea = gwf_name, exgmnameb = gwe_name, filename = 'gwf_gwe.gwfgwe')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "_Write the Model Files_" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "writing simulation...\n", - " writing simulation name file...\n", - " writing simulation tdis package...\n", - " writing solution package ims_-1...\n", - " writing solution package ims_0...\n", - " writing package gwf_gwe.gwfgwe...\n", - " writing model gwf...\n", - " writing model name file...\n", - " writing package dis...\n", - " writing package npf...\n", - " writing package sto...\n", - " writing package ic...\n", - " writing package rch_0...\n", - " writing package oc...\n", - " writing package obs_0...\n", - " writing model gwe...\n", - " writing model name file...\n", - " writing package dis...\n", - " writing package ic...\n", - " writing package adv...\n", - " writing package cnd...\n", - " writing package est...\n", - " writing package ssm...\n", - " writing package oc...\n" - ] - } - ], - "source": [ - "sim.write_simulation()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "_Retrieve a few processed items from the GWF model_" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "(1, 1) (2, 1, 1)\n", - "[[26.]] [[16.]]\n" - ] - } - ], - "source": [ - "gwf_top = gwf.dis.top.array\n", - "gwf_botm = gwf.dis.botm.array\n", - "print(gwf_top.shape, gwf_botm.shape)\n", - "print(gwf_top, gwf_botm[-1])" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [], - "source": [ - "# forward model run\n", - "#success, buff = sim.run_simulation()" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array([500])" - ] - }, - "execution_count": 18, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "\n", - "verbose, success = False, False\n", - "\n", - "mf6_config_file = os.path.join(ws, 'mfsim.nam')\n", - "mf6 = ModflowApi(mf6_dll, working_directory=ws)\n", - "\n", - "# initialize the model\n", - "mf6.initialize(mf6_config_file)\n", - "\n", - "# time loop\n", - "current_time = mf6.get_current_time()\n", - "end_time = mf6.get_end_time()\n", - "\n", - "# get pointer to simulated heads\n", - "head_tag = mf6.get_var_address(\"X\", gwf_name.upper())\n", - "temp_tag = mf6.get_var_address(\"X\", gwe_name.upper())\n", - "\n", - "head = mf6.get_value_ptr(head_tag)\n", - "temp = mf6.get_value_ptr(temp_tag)\n", - "\n", - "# maximum outer iterations\n", - "max_iter = mf6.get_value(mf6.get_var_address(\"MXITER\", \"SLN_1\"))\n", - "max_iter\n" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(array([23.5, 23.5]), array([10., 10.]))" - ] - }, - "execution_count": 19, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "head, temp" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": {}, - "outputs": [], - "source": [ - "# get pointers to API data\n", - "rch_address = mf6.get_var_address(\"RECHARGE\", gwf_name.upper(), \"RCH_0\")\n", - "rch = mf6.get_value(rch_address)" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Updating Time step: 1 Head = 23.5 Temp = 10.0\n", - "Updating Time step: 2 Head = 23.5 Temp = 10.0\n", - "Updating Time step: 3 Head = 23.5 Temp = 10.0\n", - "Updating Time step: 4 Head = 23.5 Temp = 10.0\n", - "Updating Time step: 5 Head = 23.5 Temp = 10.0\n", - "Updating Time step: 6 Head = 23.5 Temp = 10.0\n", - "Updating Time step: 7 Head = 23.5 Temp = 10.0\n", - "Updating Time step: 8 Head = 23.51 Temp = 10.0\n", - "Updating Time step: 9 Head = 23.51 Temp = 10.0\n", - "Updating Time step: 10 Head = 23.51 Temp = 10.0\n", - "Updating Time step: 11 Head = 23.51 Temp = 10.0\n", - "Updating Time step: 12 Head = 23.51 Temp = 10.0\n", - "Updating Time step: 13 Head = 23.51 Temp = 10.0\n", - "Updating Time step: 14 Head = 23.51 Temp = 10.0\n", - "Updating Time step: 15 Head = 23.51 Temp = 10.0\n", - "Updating Time step: 16 Head = 23.51 Temp = 10.0\n", - "Updating Time step: 17 Head = 23.51 Temp = 10.0\n", - "Updating Time step: 18 Head = 23.51 Temp = 10.0\n", - "Updating Time step: 19 Head = 23.51 Temp = 10.0\n", - "Updating Time step: 20 Head = 23.52 Temp = 10.0\n", - "Updating Time step: 21 Head = 23.52 Temp = 10.0\n", - "Updating Time step: 22 Head = 23.52 Temp = 9.99\n", - "Updating Time step: 23 Head = 23.52 Temp = 9.99\n", - "Updating Time step: 24 Head = 23.52 Temp = 9.99\n", - "Updating Time step: 25 Head = 23.52 Temp = 9.99\n", - "Updating Time step: 26 Head = 23.52 Temp = 9.99\n", - "Updating Time step: 27 Head = 23.52 Temp = 9.99\n", - "Updating Time step: 28 Head = 23.52 Temp = 9.99\n", - "Updating Time step: 29 Head = 23.52 Temp = 9.99\n", - "Updating Time step: 30 Head = 23.52 Temp = 9.99\n", - "Updating Time step: 31 Head = 23.52 Temp = 9.99\n", - "Updating Time step: 32 Head = 23.52 Temp = 9.99\n", - "Updating Time step: 33 Head = 23.53 Temp = 9.99\n", - "Updating Time step: 34 Head = 23.53 Temp = 9.99\n", - "Updating Time step: 35 Head = 23.53 Temp = 9.99\n", - "Updating Time step: 36 Head = 23.53 Temp = 9.99\n", - "Updating Time step: 37 Head = 23.53 Temp = 9.99\n", - "Updating Time step: 38 Head = 23.53 Temp = 9.99\n", - "Updating Time step: 39 Head = 23.53 Temp = 9.99\n", - "Updating Time step: 40 Head = 23.53 Temp = 9.99\n", - "Updating Time step: 41 Head = 23.53 Temp = 9.99\n", - "Updating Time step: 42 Head = 23.53 Temp = 9.99\n", - "Updating Time step: 43 Head = 23.53 Temp = 9.99\n", - "Updating Time step: 44 Head = 23.53 Temp = 9.99\n", - "Updating Time step: 45 Head = 23.54 Temp = 9.99\n", - "Updating Time step: 46 Head = 23.54 Temp = 9.99\n", - "Updating Time step: 47 Head = 23.54 Temp = 9.99\n", - "Updating Time step: 48 Head = 23.54 Temp = 9.99\n", - "Updating Time step: 49 Head = 23.54 Temp = 9.99\n", - "Updating Time step: 50 Head = 23.54 Temp = 9.99\n", - "Updating Time step: 51 Head = 23.54 Temp = 9.99\n", - "Updating Time step: 52 Head = 23.54 Temp = 9.99\n", - "Updating Time step: 53 Head = 23.54 Temp = 9.99\n", - "Updating Time step: 54 Head = 23.54 Temp = 9.99\n", - "Updating Time step: 55 Head = 23.54 Temp = 9.99\n", - "Updating Time step: 56 Head = 23.54 Temp = 9.99\n", - "Updating Time step: 57 Head = 23.55 Temp = 9.99\n", - "Updating Time step: 58 Head = 23.55 Temp = 9.99\n", - "Updating Time step: 59 Head = 23.55 Temp = 9.99\n", - "Updating Time step: 60 Head = 23.55 Temp = 9.98\n", - "Updating Time step: 61 Head = 23.55 Temp = 9.98\n", - "Updating Time step: 62 Head = 23.55 Temp = 9.98\n", - "Updating Time step: 63 Head = 23.55 Temp = 9.98\n", - "Updating Time step: 64 Head = 23.55 Temp = 9.98\n", - "Updating Time step: 65 Head = 23.55 Temp = 9.98\n", - "Updating Time step: 66 Head = 23.55 Temp = 9.98\n", - "Updating Time step: 67 Head = 23.55 Temp = 9.98\n", - "Updating Time step: 68 Head = 23.55 Temp = 9.98\n", - "Updating Time step: 69 Head = 23.56 Temp = 9.98\n", - "Updating Time step: 70 Head = 23.56 Temp = 9.98\n", - "Updating Time step: 71 Head = 23.56 Temp = 9.98\n", - "Updating Time step: 72 Head = 23.56 Temp = 9.98\n", - "Updating Time step: 73 Head = 23.56 Temp = 9.98\n", - "Updating Time step: 74 Head = 23.56 Temp = 9.98\n", - "Updating Time step: 75 Head = 23.56 Temp = 9.98\n", - "Updating Time step: 76 Head = 23.56 Temp = 9.98\n", - "Updating Time step: 77 Head = 23.56 Temp = 9.98\n", - "Updating Time step: 78 Head = 23.56 Temp = 9.98\n", - "Updating Time step: 79 Head = 23.56 Temp = 9.98\n", - "Updating Time step: 80 Head = 23.56 Temp = 9.98\n", - "Updating Time step: 81 Head = 23.57 Temp = 9.98\n", - "Updating Time step: 82 Head = 23.57 Temp = 9.98\n", - "Updating Time step: 83 Head = 23.57 Temp = 9.98\n", - "Updating Time step: 84 Head = 23.57 Temp = 9.98\n", - "Updating Time step: 85 Head = 23.57 Temp = 9.98\n", - "Updating Time step: 86 Head = 23.57 Temp = 9.98\n", - "Updating Time step: 87 Head = 23.57 Temp = 9.98\n", - "Updating Time step: 88 Head = 23.57 Temp = 9.98\n", - "Updating Time step: 89 Head = 23.57 Temp = 9.98\n", - "Updating Time step: 90 Head = 23.57 Temp = 9.98\n", - "Updating Time step: 91 Head = 23.57 Temp = 9.98\n", - "Updating Time step: 92 Head = 23.57 Temp = 9.98\n", - "Updating Time step: 93 Head = 23.58 Temp = 9.98\n", - "Updating Time step: 94 Head = 23.58 Temp = 9.98\n", - "Updating Time step: 95 Head = 23.58 Temp = 9.98\n", - "Updating Time step: 96 Head = 23.58 Temp = 9.98\n", - "Updating Time step: 97 Head = 23.58 Temp = 9.98\n", - "Updating Time step: 98 Head = 23.58 Temp = 9.98\n", - "Updating Time step: 99 Head = 23.58 Temp = 9.97\n", - "Updating Time step: 100 Head = 23.58 Temp = 9.97\n", - "Updating Time step: 101 Head = 23.58 Temp = 9.97\n", - "Updating Time step: 102 Head = 23.58 Temp = 9.97\n", - "Updating Time step: 103 Head = 23.58 Temp = 9.97\n", - "Updating Time step: 104 Head = 23.58 Temp = 9.97\n", - "Updating Time step: 105 Head = 23.59 Temp = 9.97\n", - "Updating Time step: 106 Head = 23.59 Temp = 9.97\n", - "Updating Time step: 107 Head = 23.59 Temp = 9.97\n", - "Updating Time step: 108 Head = 23.59 Temp = 9.97\n", - "Updating Time step: 109 Head = 23.59 Temp = 9.97\n", - "Updating Time step: 110 Head = 23.59 Temp = 9.97\n", - "Updating Time step: 111 Head = 23.59 Temp = 9.97\n", - "Updating Time step: 112 Head = 23.59 Temp = 9.97\n", - "Updating Time step: 113 Head = 23.59 Temp = 9.97\n", - "Updating Time step: 114 Head = 23.59 Temp = 9.97\n", - "Updating Time step: 115 Head = 23.59 Temp = 9.97\n", - "Updating Time step: 116 Head = 23.59 Temp = 9.97\n", - "Updating Time step: 117 Head = 23.6 Temp = 9.97\n", - "Updating Time step: 118 Head = 23.6 Temp = 9.97\n", - "Updating Time step: 119 Head = 23.6 Temp = 9.97\n", - "Updating Time step: 120 Head = 23.6 Temp = 9.97\n", - "Updating Time step: 121 Head = 23.6 Temp = 9.97\n", - "Updating Time step: 122 Head = 23.6 Temp = 9.97\n", - "Updating Time step: 123 Head = 23.6 Temp = 9.97\n", - "Updating Time step: 124 Head = 23.6 Temp = 9.97\n", - "Updating Time step: 125 Head = 23.6 Temp = 9.97\n", - "Updating Time step: 126 Head = 23.6 Temp = 9.97\n", - "Updating Time step: 127 Head = 23.6 Temp = 9.97\n", - "Updating Time step: 128 Head = 23.6 Temp = 9.97\n", - "Updating Time step: 129 Head = 23.61 Temp = 9.97\n", - "Updating Time step: 130 Head = 23.61 Temp = 9.97\n", - "Updating Time step: 131 Head = 23.61 Temp = 9.97\n", - "Updating Time step: 132 Head = 23.61 Temp = 9.97\n", - "Updating Time step: 133 Head = 23.61 Temp = 9.97\n", - "Updating Time step: 134 Head = 23.61 Temp = 9.97\n", - "Updating Time step: 135 Head = 23.61 Temp = 9.97\n", - "Updating Time step: 136 Head = 23.61 Temp = 9.97\n", - "Updating Time step: 137 Head = 23.61 Temp = 9.96\n", - "Updating Time step: 138 Head = 23.61 Temp = 9.96\n", - "Updating Time step: 139 Head = 23.61 Temp = 9.96\n", - "Updating Time step: 140 Head = 23.61 Temp = 9.96\n", - "Updating Time step: 141 Head = 23.62 Temp = 9.96\n", - "Updating Time step: 142 Head = 23.62 Temp = 9.96\n", - "Updating Time step: 143 Head = 23.62 Temp = 9.96\n", - "Updating Time step: 144 Head = 23.62 Temp = 9.96\n", - "Updating Time step: 145 Head = 23.62 Temp = 9.96\n", - "Updating Time step: 146 Head = 23.62 Temp = 9.96\n", - "Updating Time step: 147 Head = 23.62 Temp = 9.96\n", - "Updating Time step: 148 Head = 23.62 Temp = 9.96\n", - "Updating Time step: 149 Head = 23.62 Temp = 9.96\n", - "Updating Time step: 150 Head = 23.62 Temp = 9.96\n", - "Updating Time step: 151 Head = 23.62 Temp = 9.96\n", - "Updating Time step: 152 Head = 23.62 Temp = 9.96\n", - "Updating Time step: 153 Head = 23.63 Temp = 9.96\n", - "Updating Time step: 154 Head = 23.63 Temp = 9.96\n", - "Updating Time step: 155 Head = 23.63 Temp = 9.96\n", - "Updating Time step: 156 Head = 23.63 Temp = 9.96\n", - "Updating Time step: 157 Head = 23.63 Temp = 9.96\n", - "Updating Time step: 158 Head = 23.63 Temp = 9.96\n", - "Updating Time step: 159 Head = 23.63 Temp = 9.96\n", - "Updating Time step: 160 Head = 23.63 Temp = 9.96\n", - "Updating Time step: 161 Head = 23.63 Temp = 9.96\n", - "Updating Time step: 162 Head = 23.63 Temp = 9.96\n", - "Updating Time step: 163 Head = 23.63 Temp = 9.96\n", - "Updating Time step: 164 Head = 23.63 Temp = 9.96\n", - "Updating Time step: 165 Head = 23.64 Temp = 9.96\n", - "Updating Time step: 166 Head = 23.64 Temp = 9.96\n", - "Updating Time step: 167 Head = 23.64 Temp = 9.96\n", - "Updating Time step: 168 Head = 23.64 Temp = 9.96\n", - "Updating Time step: 169 Head = 23.64 Temp = 9.96\n", - "Updating Time step: 170 Head = 23.64 Temp = 9.96\n", - "Updating Time step: 171 Head = 23.64 Temp = 9.96\n", - "Updating Time step: 172 Head = 23.64 Temp = 9.96\n", - "Updating Time step: 173 Head = 23.64 Temp = 9.96\n", - "Updating Time step: 174 Head = 23.64 Temp = 9.96\n", - "Updating Time step: 175 Head = 23.64 Temp = 9.96\n", - "Updating Time step: 176 Head = 23.64 Temp = 9.95\n", - "Updating Time step: 177 Head = 23.65 Temp = 9.95\n", - "Updating Time step: 178 Head = 23.65 Temp = 9.95\n", - "Updating Time step: 179 Head = 23.65 Temp = 9.95\n", - "Updating Time step: 180 Head = 23.65 Temp = 9.95\n", - "Updating Time step: 181 Head = 23.65 Temp = 9.95\n", - "Updating Time step: 182 Head = 23.65 Temp = 9.95\n", - "Updating Time step: 183 Head = 23.65 Temp = 9.95\n", - "Updating Time step: 184 Head = 23.65 Temp = 9.95\n", - "Updating Time step: 185 Head = 23.65 Temp = 9.95\n", - "Updating Time step: 186 Head = 23.65 Temp = 9.95\n", - "Updating Time step: 187 Head = 23.65 Temp = 9.95\n", - "Updating Time step: 188 Head = 23.65 Temp = 9.95\n", - "Updating Time step: 189 Head = 23.66 Temp = 9.95\n", - "Updating Time step: 190 Head = 23.66 Temp = 9.95\n", - "Updating Time step: 191 Head = 23.66 Temp = 9.95\n", - "Updating Time step: 192 Head = 23.66 Temp = 9.95\n", - "Updating Time step: 193 Head = 23.66 Temp = 9.95\n", - "Updating Time step: 194 Head = 23.66 Temp = 9.95\n", - "Updating Time step: 195 Head = 23.66 Temp = 9.95\n", - "Updating Time step: 196 Head = 23.66 Temp = 9.95\n", - "Updating Time step: 197 Head = 23.66 Temp = 9.95\n", - "Updating Time step: 198 Head = 23.66 Temp = 9.95\n", - "Updating Time step: 199 Head = 23.66 Temp = 9.95\n", - "Updating Time step: 200 Head = 23.66 Temp = 9.95\n", - "Updating Time step: 201 Head = 23.67 Temp = 9.95\n", - "Updating Time step: 202 Head = 23.67 Temp = 9.95\n", - "Updating Time step: 203 Head = 23.67 Temp = 9.95\n", - "Updating Time step: 204 Head = 23.67 Temp = 9.95\n", - "Updating Time step: 205 Head = 23.67 Temp = 9.95\n", - "Updating Time step: 206 Head = 23.67 Temp = 9.95\n", - "Updating Time step: 207 Head = 23.67 Temp = 9.95\n", - "Updating Time step: 208 Head = 23.67 Temp = 9.95\n", - "Updating Time step: 209 Head = 23.67 Temp = 9.95\n", - "Updating Time step: 210 Head = 23.67 Temp = 9.95\n", - "Updating Time step: 211 Head = 23.67 Temp = 9.95\n", - "Updating Time step: 212 Head = 23.67 Temp = 9.95\n", - "Updating Time step: 213 Head = 23.68 Temp = 9.95\n", - "Updating Time step: 214 Head = 23.68 Temp = 9.95\n", - "Updating Time step: 215 Head = 23.68 Temp = 9.95\n", - "Updating Time step: 216 Head = 23.68 Temp = 9.94\n", - "Updating Time step: 217 Head = 23.68 Temp = 9.94\n", - "Updating Time step: 218 Head = 23.68 Temp = 9.94\n", - "Updating Time step: 219 Head = 23.68 Temp = 9.94\n", - "Updating Time step: 220 Head = 23.68 Temp = 9.94\n", - "Updating Time step: 221 Head = 23.68 Temp = 9.94\n", - "Updating Time step: 222 Head = 23.68 Temp = 9.94\n", - "Updating Time step: 223 Head = 23.68 Temp = 9.94\n", - "Updating Time step: 224 Head = 23.68 Temp = 9.94\n", - "Updating Time step: 225 Head = 23.69 Temp = 9.94\n", - "Updating Time step: 226 Head = 23.69 Temp = 9.94\n", - "Updating Time step: 227 Head = 23.69 Temp = 9.94\n", - "Updating Time step: 228 Head = 23.69 Temp = 9.94\n", - "Updating Time step: 229 Head = 23.69 Temp = 9.94\n", - "Updating Time step: 230 Head = 23.69 Temp = 9.94\n", - "Updating Time step: 231 Head = 23.69 Temp = 9.94\n", - "Updating Time step: 232 Head = 23.69 Temp = 9.94\n", - "Updating Time step: 233 Head = 23.69 Temp = 9.94\n", - "Updating Time step: 234 Head = 23.69 Temp = 9.94\n", - "Updating Time step: 235 Head = 23.69 Temp = 9.94\n", - "Updating Time step: 236 Head = 23.69 Temp = 9.94\n", - "Updating Time step: 237 Head = 23.7 Temp = 9.94\n", - "Updating Time step: 238 Head = 23.7 Temp = 9.94\n", - "Updating Time step: 239 Head = 23.7 Temp = 9.94\n", - "Updating Time step: 240 Head = 23.7 Temp = 9.94\n", - "Updating Time step: 241 Head = 23.7 Temp = 9.94\n", - "Updating Time step: 242 Head = 23.7 Temp = 9.94\n", - "Updating Time step: 243 Head = 23.7 Temp = 9.94\n", - "Updating Time step: 244 Head = 23.7 Temp = 9.94\n", - "Updating Time step: 245 Head = 23.7 Temp = 9.94\n", - "Updating Time step: 246 Head = 23.7 Temp = 9.94\n", - "Updating Time step: 247 Head = 23.7 Temp = 9.94\n", - "Updating Time step: 248 Head = 23.7 Temp = 9.94\n", - "Updating Time step: 249 Head = 23.71 Temp = 9.94\n", - "Updating Time step: 250 Head = 23.71 Temp = 9.94\n", - "Updating Time step: 251 Head = 23.71 Temp = 9.94\n", - "Updating Time step: 252 Head = 23.71 Temp = 9.94\n", - "Updating Time step: 253 Head = 23.71 Temp = 9.94\n", - "Updating Time step: 254 Head = 23.71 Temp = 9.94\n", - "Updating Time step: 255 Head = 23.71 Temp = 9.93\n", - "Updating Time step: 256 Head = 23.71 Temp = 9.93\n", - "Updating Time step: 257 Head = 23.71 Temp = 9.93\n", - "Updating Time step: 258 Head = 23.71 Temp = 9.93\n", - "Updating Time step: 259 Head = 23.71 Temp = 9.93\n", - "Updating Time step: 260 Head = 23.71 Temp = 9.93\n", - "Updating Time step: 261 Head = 23.72 Temp = 9.93\n", - "Updating Time step: 262 Head = 23.72 Temp = 9.93\n", - "Updating Time step: 263 Head = 23.72 Temp = 9.93\n", - "Updating Time step: 264 Head = 23.72 Temp = 9.93\n", - "Updating Time step: 265 Head = 23.72 Temp = 9.93\n", - "Updating Time step: 266 Head = 23.72 Temp = 9.93\n", - "Updating Time step: 267 Head = 23.72 Temp = 9.93\n", - "Updating Time step: 268 Head = 23.72 Temp = 9.93\n", - "Updating Time step: 269 Head = 23.72 Temp = 9.93\n", - "Updating Time step: 270 Head = 23.72 Temp = 9.93\n", - "Updating Time step: 271 Head = 23.72 Temp = 9.93\n", - "Updating Time step: 272 Head = 23.72 Temp = 9.93\n", - "Updating Time step: 273 Head = 23.73 Temp = 9.93\n", - "Updating Time step: 274 Head = 23.73 Temp = 9.93\n", - "Updating Time step: 275 Head = 23.73 Temp = 9.93\n", - "Updating Time step: 276 Head = 23.73 Temp = 9.93\n", - "Updating Time step: 277 Head = 23.73 Temp = 9.93\n", - "Updating Time step: 278 Head = 23.73 Temp = 9.93\n", - "Updating Time step: 279 Head = 23.73 Temp = 9.93\n", - "Updating Time step: 280 Head = 23.73 Temp = 9.93\n", - "Updating Time step: 281 Head = 23.73 Temp = 9.93\n", - "Updating Time step: 282 Head = 23.73 Temp = 9.93\n", - "Updating Time step: 283 Head = 23.73 Temp = 9.93\n", - "Updating Time step: 284 Head = 23.73 Temp = 9.93\n", - "Updating Time step: 285 Head = 23.74 Temp = 9.93\n", - "Updating Time step: 286 Head = 23.74 Temp = 9.93\n", - "Updating Time step: 287 Head = 23.74 Temp = 9.93\n", - "Updating Time step: 288 Head = 23.74 Temp = 9.93\n", - "Updating Time step: 289 Head = 23.74 Temp = 9.93\n", - "Updating Time step: 290 Head = 23.74 Temp = 9.93\n", - "Updating Time step: 291 Head = 23.74 Temp = 9.93\n", - "Updating Time step: 292 Head = 23.74 Temp = 9.93\n", - "Updating Time step: 293 Head = 23.74 Temp = 9.93\n", - "Updating Time step: 294 Head = 23.74 Temp = 9.93\n", - "Updating Time step: 295 Head = 23.74 Temp = 9.92\n", - "Updating Time step: 296 Head = 23.74 Temp = 9.92\n", - "Updating Time step: 297 Head = 23.75 Temp = 9.92\n", - "Updating Time step: 298 Head = 23.75 Temp = 9.92\n", - "Updating Time step: 299 Head = 23.75 Temp = 9.92\n", - "Updating Time step: 300 Head = 23.75 Temp = 9.92\n", - "Updating Time step: 301 Head = 23.75 Temp = 9.92\n", - "Updating Time step: 302 Head = 23.75 Temp = 9.92\n", - "Updating Time step: 303 Head = 23.75 Temp = 9.92\n", - "Updating Time step: 304 Head = 23.75 Temp = 9.92\n", - "Updating Time step: 305 Head = 23.75 Temp = 9.92\n", - "Updating Time step: 306 Head = 23.75 Temp = 9.92\n", - "Updating Time step: 307 Head = 23.75 Temp = 9.92\n", - "Updating Time step: 308 Head = 23.75 Temp = 9.92\n", - "Updating Time step: 309 Head = 23.76 Temp = 9.92\n", - "Updating Time step: 310 Head = 23.76 Temp = 9.92\n", - "Updating Time step: 311 Head = 23.76 Temp = 9.92\n", - "Updating Time step: 312 Head = 23.76 Temp = 9.92\n", - "Updating Time step: 313 Head = 23.76 Temp = 9.92\n", - "Updating Time step: 314 Head = 23.76 Temp = 9.92\n", - "Updating Time step: 315 Head = 23.76 Temp = 9.92\n", - "Updating Time step: 316 Head = 23.76 Temp = 9.92\n", - "Updating Time step: 317 Head = 23.76 Temp = 9.92\n", - "Updating Time step: 318 Head = 23.76 Temp = 9.92\n", - "Updating Time step: 319 Head = 23.76 Temp = 9.92\n", - "Updating Time step: 320 Head = 23.76 Temp = 9.92\n", - "Updating Time step: 321 Head = 23.77 Temp = 9.92\n", - "Updating Time step: 322 Head = 23.77 Temp = 9.92\n", - "Updating Time step: 323 Head = 23.77 Temp = 9.92\n", - "Updating Time step: 324 Head = 23.77 Temp = 9.92\n", - "Updating Time step: 325 Head = 23.77 Temp = 9.92\n", - "Updating Time step: 326 Head = 23.77 Temp = 9.92\n", - "Updating Time step: 327 Head = 23.77 Temp = 9.92\n", - "Updating Time step: 328 Head = 23.77 Temp = 9.92\n", - "Updating Time step: 329 Head = 23.77 Temp = 9.92\n", - "Updating Time step: 330 Head = 23.77 Temp = 9.92\n", - "Updating Time step: 331 Head = 23.77 Temp = 9.92\n", - "Updating Time step: 332 Head = 23.77 Temp = 9.92\n", - "Updating Time step: 333 Head = 23.78 Temp = 9.92\n", - "Updating Time step: 334 Head = 23.78 Temp = 9.92\n", - "Updating Time step: 335 Head = 23.78 Temp = 9.91\n", - "Updating Time step: 336 Head = 23.78 Temp = 9.91\n", - "Updating Time step: 337 Head = 23.78 Temp = 9.91\n", - "Updating Time step: 338 Head = 23.78 Temp = 9.91\n", - "Updating Time step: 339 Head = 23.78 Temp = 9.91\n", - "Updating Time step: 340 Head = 23.78 Temp = 9.91\n", - "Updating Time step: 341 Head = 23.78 Temp = 9.91\n", - "Updating Time step: 342 Head = 23.78 Temp = 9.91\n", - "Updating Time step: 343 Head = 23.78 Temp = 9.91\n", - "Updating Time step: 344 Head = 23.78 Temp = 9.91\n", - "Updating Time step: 345 Head = 23.79 Temp = 9.91\n", - "Updating Time step: 346 Head = 23.79 Temp = 9.91\n", - "Updating Time step: 347 Head = 23.79 Temp = 9.91\n", - "Updating Time step: 348 Head = 23.79 Temp = 9.91\n", - "Updating Time step: 349 Head = 23.79 Temp = 9.91\n", - "Updating Time step: 350 Head = 23.79 Temp = 9.91\n", - "Updating Time step: 351 Head = 23.79 Temp = 9.91\n", - "Updating Time step: 352 Head = 23.79 Temp = 9.91\n", - "Updating Time step: 353 Head = 23.79 Temp = 9.91\n", - "Updating Time step: 354 Head = 23.79 Temp = 9.91\n", - "Updating Time step: 355 Head = 23.79 Temp = 9.91\n", - "Updating Time step: 356 Head = 23.79 Temp = 9.91\n", - "Updating Time step: 357 Head = 23.8 Temp = 9.91\n", - "Updating Time step: 358 Head = 23.8 Temp = 9.91\n", - "Updating Time step: 359 Head = 23.8 Temp = 9.91\n", - "Updating Time step: 360 Head = 23.8 Temp = 9.91\n", - "Updating Time step: 361 Head = 23.8 Temp = 9.91\n", - "Updating Time step: 362 Head = 23.8 Temp = 9.91\n", - "Updating Time step: 363 Head = 23.8 Temp = 9.91\n", - "Updating Time step: 364 Head = 23.8 Temp = 9.91\n", - "Updating Time step: 365 Head = 23.8 Temp = 9.91\n", - "Updating Time step: 366 Head = 23.8 Temp = 9.91\n", - "Updating Time step: 367 Head = 23.8 Temp = 9.91\n", - "Updating Time step: 368 Head = 23.8 Temp = 9.91\n", - "Updating Time step: 369 Head = 23.81 Temp = 9.91\n", - "Updating Time step: 370 Head = 23.81 Temp = 9.91\n", - "Updating Time step: 371 Head = 23.81 Temp = 9.91\n", - "Updating Time step: 372 Head = 23.81 Temp = 9.91\n", - "Updating Time step: 373 Head = 23.81 Temp = 9.91\n", - "Updating Time step: 374 Head = 23.81 Temp = 9.91\n", - "Updating Time step: 375 Head = 23.81 Temp = 9.9\n", - "Updating Time step: 376 Head = 23.81 Temp = 9.9\n", - "Updating Time step: 377 Head = 23.81 Temp = 9.9\n", - "Updating Time step: 378 Head = 23.81 Temp = 9.9\n", - "Updating Time step: 379 Head = 23.81 Temp = 9.9\n", - "Updating Time step: 380 Head = 23.81 Temp = 9.9\n", - "Updating Time step: 381 Head = 23.82 Temp = 9.9\n", - "Updating Time step: 382 Head = 23.82 Temp = 9.9\n", - "Updating Time step: 383 Head = 23.82 Temp = 9.9\n", - "Updating Time step: 384 Head = 23.82 Temp = 9.9\n", - "Updating Time step: 385 Head = 23.82 Temp = 9.9\n", - "Updating Time step: 386 Head = 23.82 Temp = 9.9\n", - "Updating Time step: 387 Head = 23.82 Temp = 9.9\n", - "Updating Time step: 388 Head = 23.82 Temp = 9.9\n", - "Updating Time step: 389 Head = 23.82 Temp = 9.9\n", - "Updating Time step: 390 Head = 23.82 Temp = 9.9\n", - "Updating Time step: 391 Head = 23.82 Temp = 9.9\n", - "Updating Time step: 392 Head = 23.82 Temp = 9.9\n", - "Updating Time step: 393 Head = 23.83 Temp = 9.9\n", - "Updating Time step: 394 Head = 23.83 Temp = 9.9\n", - "Updating Time step: 395 Head = 23.83 Temp = 9.9\n", - "Updating Time step: 396 Head = 23.83 Temp = 9.9\n", - "Updating Time step: 397 Head = 23.83 Temp = 9.9\n", - "Updating Time step: 398 Head = 23.83 Temp = 9.9\n", - "Updating Time step: 399 Head = 23.83 Temp = 9.9\n", - "Updating Time step: 400 Head = 23.83 Temp = 9.9\n", - "Updating Time step: 401 Head = 23.83 Temp = 9.9\n", - "Updating Time step: 402 Head = 23.83 Temp = 9.9\n", - "Updating Time step: 403 Head = 23.83 Temp = 9.9\n", - "Updating Time step: 404 Head = 23.83 Temp = 9.9\n", - "Updating Time step: 405 Head = 23.84 Temp = 9.9\n", - "Updating Time step: 406 Head = 23.84 Temp = 9.9\n", - "Updating Time step: 407 Head = 23.84 Temp = 9.9\n", - "Updating Time step: 408 Head = 23.84 Temp = 9.9\n", - "Updating Time step: 409 Head = 23.84 Temp = 9.9\n", - "Updating Time step: 410 Head = 23.84 Temp = 9.9\n", - "Updating Time step: 411 Head = 23.84 Temp = 9.9\n", - "Updating Time step: 412 Head = 23.84 Temp = 9.9\n", - "Updating Time step: 413 Head = 23.84 Temp = 9.9\n", - "Updating Time step: 414 Head = 23.84 Temp = 9.9\n", - "Updating Time step: 415 Head = 23.84 Temp = 9.89\n", - "Updating Time step: 416 Head = 23.84 Temp = 9.89\n", - "Updating Time step: 417 Head = 23.85 Temp = 9.89\n", - "Updating Time step: 418 Head = 23.85 Temp = 9.89\n", - "Updating Time step: 419 Head = 23.85 Temp = 9.89\n", - "Updating Time step: 420 Head = 23.85 Temp = 9.89\n", - "Updating Time step: 421 Head = 23.85 Temp = 9.89\n", - "Updating Time step: 422 Head = 23.85 Temp = 9.89\n", - "Updating Time step: 423 Head = 23.85 Temp = 9.89\n", - "Updating Time step: 424 Head = 23.85 Temp = 9.89\n", - "Updating Time step: 425 Head = 23.85 Temp = 9.89\n", - "Updating Time step: 426 Head = 23.85 Temp = 9.89\n", - "Updating Time step: 427 Head = 23.85 Temp = 9.89\n", - "Updating Time step: 428 Head = 23.85 Temp = 9.89\n", - "Updating Time step: 429 Head = 23.86 Temp = 9.89\n", - "Updating Time step: 430 Head = 23.86 Temp = 9.89\n", - "Updating Time step: 431 Head = 23.86 Temp = 9.89\n", - "Updating Time step: 432 Head = 23.86 Temp = 9.89\n", - "Updating Time step: 433 Head = 23.86 Temp = 9.89\n", - "Updating Time step: 434 Head = 23.86 Temp = 9.89\n", - "Updating Time step: 435 Head = 23.86 Temp = 9.89\n", - "Updating Time step: 436 Head = 23.86 Temp = 9.89\n", - "Updating Time step: 437 Head = 23.86 Temp = 9.89\n", - "Updating Time step: 438 Head = 23.86 Temp = 9.89\n", - "Updating Time step: 439 Head = 23.86 Temp = 9.89\n", - "Updating Time step: 440 Head = 23.86 Temp = 9.89\n", - "Updating Time step: 441 Head = 23.87 Temp = 9.89\n", - "Updating Time step: 442 Head = 23.87 Temp = 9.89\n", - "Updating Time step: 443 Head = 23.87 Temp = 9.89\n", - "Updating Time step: 444 Head = 23.87 Temp = 9.89\n", - "Updating Time step: 445 Head = 23.87 Temp = 9.89\n", - "Updating Time step: 446 Head = 23.87 Temp = 9.89\n", - "Updating Time step: 447 Head = 23.87 Temp = 9.89\n", - "Updating Time step: 448 Head = 23.87 Temp = 9.89\n", - "Updating Time step: 449 Head = 23.87 Temp = 9.89\n", - "Updating Time step: 450 Head = 23.87 Temp = 9.89\n", - "Updating Time step: 451 Head = 23.87 Temp = 9.89\n", - "Updating Time step: 452 Head = 23.87 Temp = 9.89\n", - "Updating Time step: 453 Head = 23.88 Temp = 9.89\n", - "Updating Time step: 454 Head = 23.88 Temp = 9.89\n", - "Updating Time step: 455 Head = 23.88 Temp = 9.89\n", - "Updating Time step: 456 Head = 23.88 Temp = 9.88\n", - "Updating Time step: 457 Head = 23.88 Temp = 9.88\n", - "Updating Time step: 458 Head = 23.88 Temp = 9.88\n", - "Updating Time step: 459 Head = 23.88 Temp = 9.88\n", - "Updating Time step: 460 Head = 23.88 Temp = 9.88\n", - "Updating Time step: 461 Head = 23.88 Temp = 9.88\n", - "Updating Time step: 462 Head = 23.88 Temp = 9.88\n", - "Updating Time step: 463 Head = 23.88 Temp = 9.88\n", - "Updating Time step: 464 Head = 23.88 Temp = 9.88\n", - "Updating Time step: 465 Head = 23.88 Temp = 9.88\n", - "Updating Time step: 466 Head = 23.89 Temp = 9.88\n", - "Updating Time step: 467 Head = 23.89 Temp = 9.88\n", - "Updating Time step: 468 Head = 23.89 Temp = 9.88\n", - "Updating Time step: 469 Head = 23.89 Temp = 9.88\n", - "Updating Time step: 470 Head = 23.89 Temp = 9.88\n", - "Updating Time step: 471 Head = 23.89 Temp = 9.88\n", - "Updating Time step: 472 Head = 23.89 Temp = 9.88\n", - "Updating Time step: 473 Head = 23.89 Temp = 9.88\n", - "Updating Time step: 474 Head = 23.89 Temp = 9.88\n", - "Updating Time step: 475 Head = 23.89 Temp = 9.88\n", - "Updating Time step: 476 Head = 23.89 Temp = 9.88\n", - "Updating Time step: 477 Head = 23.89 Temp = 9.88\n", - "Updating Time step: 478 Head = 23.9 Temp = 9.88\n", - "Updating Time step: 479 Head = 23.9 Temp = 9.88\n", - "Updating Time step: 480 Head = 23.9 Temp = 9.88\n" - ] - } - ], - "source": [ - "# model time loop\n", - "kstp = 0\n", - "while current_time < end_time:\n", - " # set values\n", - " rch_updated = np.array([0.002])\n", - " mf6.set_value(rch_address, rch_updated)\n", - " # get values\n", - " head = mf6.get_value_ptr(head_tag)[0]\n", - " temp = mf6.get_value_ptr(temp_tag)[0]\n", - "\n", - " #print('Updating Time step: ' + str(kstp + 1))\n", - " print('Updating Time step: ' + str(kstp + 1) + ' Head = ' + str(round(head, 2)) + ' Temp = ' + str(round(temp, 2)))\n", - " kstp = kstp + 1\n", - " # Update models\n", - " mf6.update() \n", - " current_time = mf6.get_current_time()" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "' \\n# model time loop\\nkstp = 0\\nwhile current_time < end_time:\\n # get dt and prepare for non-linear iterations\\n dt = mf6.get_time_step()\\n mf6.prepare_time_step(dt)\\n\\n # convergence loop\\n kiter = 0\\n mf6.prepare_solve()\\n\\n while kiter < max_iter:\\n if verbose:\\n print(kiter, nodelist)\\n # solve with updated well rate\\n has_converged = mf6.solve(1)\\n kiter += 1\\n if has_converged:\\n if verbose:\\n break\\n\\n # finalize time step\\n mf6.finalize_solve()\\n\\n # set values\\n rch_updated = np.array([0.002])\\n mf6.set_value(rch_address, rch_updated)\\n # get values\\n head = mf6.get_value_ptr(head_tag)[0]\\n temp = mf6.get_value_ptr(temp_tag)[0]\\n\\n # finalize time step and update time\\n mf6.finalize_time_step()\\n current_time = mf6.get_current_time()\\n \\n #print(\\'Updating Time step: \\' + str(kstp + 1))\\n #print(\\'Updating Time step: \\' + str(kstp + 1) + \\' Head = \\' + str(round(head, 2)) + \\', and Temp = \\' + str(round(temp, 2)))\\n #kstp = kstp + 1\\n \\n # terminate if model did not converge\\n if not has_converged:\\n print(\"model did not converge\")\\n break\\n '" - ] - }, - "execution_count": 22, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "''' \n", - "# model time loop\n", - "kstp = 0\n", - "while current_time < end_time:\n", - " # get dt and prepare for non-linear iterations\n", - " dt = mf6.get_time_step()\n", - " mf6.prepare_time_step(dt)\n", - "\n", - " # convergence loop\n", - " kiter = 0\n", - " mf6.prepare_solve()\n", - "\n", - " while kiter < max_iter:\n", - " if verbose:\n", - " print(kiter, nodelist)\n", - " # solve with updated well rate\n", - " has_converged = mf6.solve(1)\n", - " kiter += 1\n", - " if has_converged:\n", - " if verbose:\n", - " break\n", - "\n", - " # finalize time step\n", - " mf6.finalize_solve()\n", - "\n", - " # set values\n", - " rch_updated = np.array([0.002])\n", - " mf6.set_value(rch_address, rch_updated)\n", - " # get values\n", - " head = mf6.get_value_ptr(head_tag)[0]\n", - " temp = mf6.get_value_ptr(temp_tag)[0]\n", - "\n", - " # finalize time step and update time\n", - " mf6.finalize_time_step()\n", - " current_time = mf6.get_current_time()\n", - " \n", - " #print('Updating Time step: ' + str(kstp + 1))\n", - " #print('Updating Time step: ' + str(kstp + 1) + ' Head = ' + str(round(head, 2)) + ', and Temp = ' + str(round(temp, 2)))\n", - " #kstp = kstp + 1\n", - " \n", - " # terminate if model did not converge\n", - " if not has_converged:\n", - " print(\"model did not converge\")\n", - " break\n", - " ''' " - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "metadata": {}, - "outputs": [], - "source": [ - "# cleanup\n", - "try:\n", - " mf6.finalize()\n", - " success = True\n", - "except:\n", - " raise RuntimeError" - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "metadata": {}, - "outputs": [], - "source": [ - "# Export heads and flows\n", - "headfile = '{}.hds'.format(gwf_name)\n", - "hds = flopy.utils.binaryfile.HeadFile(os.path.join(ws, headfile))\n", - "gwheads = gwf.output.head().get_data()\n", - "\n", - "tempfile = '{}.ucn'.format(gwe_name)\n", - "#tmp = flopy.utils.binaryfile.UcnFile(os.path.join(ws, tempfile))\n", - "#gwtemps = gwe.output.temperature().get_data()" - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
timeH01H02
00.02083323.50004223.500035
10.04166723.50087323.500745
20.06250023.50170523.501558
30.08333323.50253623.502387
40.10416723.50336823.503218
............
4759.91666723.89496323.894813
4769.93750023.89579423.895645
4779.95833323.89662623.896476
4789.97916723.89745723.897307
47910.00000023.89828823.898139
\n", - "

480 rows × 3 columns

\n", - "
" - ], - "text/plain": [ - " time H01 H02\n", - "0 0.020833 23.500042 23.500035\n", - "1 0.041667 23.500873 23.500745\n", - "2 0.062500 23.501705 23.501558\n", - "3 0.083333 23.502536 23.502387\n", - "4 0.104167 23.503368 23.503218\n", - ".. ... ... ...\n", - "475 9.916667 23.894963 23.894813\n", - "476 9.937500 23.895794 23.895645\n", - "477 9.958333 23.896626 23.896476\n", - "478 9.979167 23.897457 23.897307\n", - "479 10.000000 23.898288 23.898139\n", - "\n", - "[480 rows x 3 columns]" - ] - }, - "execution_count": 25, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "sim_heads = pd.read_csv(os.path.join(ws, \"gwhead.csv\"))\n", - "sim_heads\n" - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 26, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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1ClOnz5tdhyrUb58eapVq2Z2DBEREfmLnTt30qdPH86dO4e9vT0hISEMHjzYqk9f/0wl9k9sbW2pX7++RgryqUyZMjqBFRERKWKys7MJDg5m8uTJ5OTk0LBhQz799FMaN25sdrR7SiX2L0qVKqWL9ouIiIhVOn/+PP369ePbb78FYODAgcydOxdHR0eTk917KrEiIiIixcC3335Lv379OH/+PGXLliU0NJSBAweaHeu+0buXRERERKxYdnY2kydPpkuXLpw/f57GjRvz/fffF+sCCzqJFREREbFa586do1+/fmzfvh2AoUOHMnv2bMqWLWtusAdAJVZERETECn399dcMGDCAxMREypUrx/z58+nbt6/ZsR4YjROIiIiIWJGsrCzefvttunbtSmJiIk2aNOHAgQMlqsCCTmJFRERErMbZs2fp06cPu3fvBmDkyJHMnDmzRF5ZSSVWRERExAps2LCBgQMHkpycjLOzMwsWLKBXr15mxzKNxglEREREirDr16/zxhtv8Mwzz5CcnEzz5s05ePBgiS6woJNYERERkSLr9OnT9O7dm+joaABeffVV3n//fezs7ExOZj6VWBEREZEi6Msvv2TQoEFcunSJ8uXLExERga+vr9mxigyNE4iIiIgUIZmZmYwdO5bnn3+eS5cu0apVKw4dOqQC+xcqsSIiIiJFxMmTJ2nbti2zZ88G4LXXXmPnzp3UrVvX3GBFkMYJRERERIqAzz77jCFDhpCamkrFihVZvHgxzzzzjNmxiiydxIqIiIiY6Nq1awQGBtKzZ09SU1Np27YtMTExKrB3oBIrIiIiYpITJ07QunVrQkNDAXjrrbfYtm0btWrVMjlZ0adxAhERERETrFy5kmHDhnHlyhUqV67M0qVL6dq1q9mxrIZOYkVEREQeoKtXrzJs2DD69u3LlStXaN++PTExMSqwBaQSKyIiIvKAHD16lFatWrFgwQIsFgt///vf+fbbb6lRo4bZ0ayOxglEREREHoAlS5YwcuRI0tPTqVq1KsuWLaNz585mx7JaOokVERERuY/S0tIYNGgQAwcOJD09nSeffJKYmBgV2LukEisiIiJyn/z000+0bNmSRYsWUapUKaZOncqWLVuoVq2a2dGsnsYJRERERO4xwzBYuHAho0eP5urVq7i5ubFy5UqeeOIJs6MVGyqxIiIiIvfQ5cuXGTly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RO6aSqyI3HOGYTBz5kzatm3Lb7/9xkMPPcSePXt49dVXsVgsZscTEZFiQOMEInJPJScnExAQwPr16wF46aWX+OSTT3BxcTE5mYiIFCc6iRWRe2bPnj00a9aM9evXY2dnR2hoKGvWrFGBFRGRe04lVkTuWk5ODu+99x7t27fnzJkz1K9fn7179zJy5EiND4iIyH2hcQIRuSuJiYn4+/uzefNmAPr06cP8+fNxcnIyOZmIiBRnKrEiUmg7d+6kT58+nDt3Dnt7e+bMmcOQIUN0+ioiIvedxglEpMCys7N599136dixI+fOnaNhw4bs27ePoUOHqsCKiMgDoZNYESmQ8+fP079/f7755hsA/P39mTt3LuXKlTM5mYiIlCQqsSKSb1u3bqVv376cP3+esmXLMnfuXAICAsyOJSIiJZDGCUTkjrKzs5k8eTKdO3fm/PnzNGrUiP3796vAioiIaXQSKyK3de7cOfr168f27dsBGDp0KLNnz6Zs2bLmBhMRkRJNJVZEbmnLli3079+fxMREypUrx/z58+nbt6/ZsURERDROICI3ysrK4u233+app54iMTGRJk2acODAARVYEREpMnQSKyJ5nD17lj59+rB7924ARowYwaxZs7C3tzc5mYiIyP+nEisiuTZs2MDAgQNJTk7GycmJTz75hF69epkdS0RE5AYaJxARrl+/zhtvvMEzzzxDcnIyHh4eHDp0SAVWRESKLJ3EipRwp0+fxs/Pj7179wIwevRoZsyYgZ2dncnJREREbk0lVqQEW7duHQEBAVy6dAkXFxcWLlzICy+8YHYsERGRO9I4gUgJlJmZydixY/H19eXSpUu0bNmSQ4cOqcCKiIjVUIkVKWFOnjxJ27ZtmT17NgBBQUHs2rULd3d3k5OJiIjkn8YJREqQzz77jCFDhpCamkqFChVYvHgxzz77rNmxRERECkwnsSIlwLVr1wgMDKRnz56kpqbSpk0bYmJiVGBFRMRqqcSKFHMnTpygdevWhIaGAvDmm2+yfft2ateubXIyERGRwtM4gUgxtnLlSoYNG8aVK1eoXLkyS5cupWvXrmbHEhERuWs6iRUphq5evcqwYcPo27cvV65coX379sTExKjAiohIsaESK1LMHD16lFatWrFgwQIsFguTJk3i22+/pUaNGmZHExERuWc0TiBSjCxZsoSRI0eSnp6Oq6sr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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# Let's have a look at the time series of the simulated heads and observed heads at the observation location\n", - "fig, ax = plt.subplots(figsize = (8, 6))\n", - "sim_heads.plot(ax = ax, x = 'time', y = 'H01', kind = 'line', color = 'black', rot = 0, zorder = 1, fontsize = 10)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "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.13" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/docs/notebooks/modflow_example.ipynb b/docs/notebooks/modflow_example.ipynb deleted file mode 100644 index c66e7af..0000000 --- a/docs/notebooks/modflow_example.ipynb +++ /dev/null @@ -1,182 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "eb4bdb30-f9a3-4d7c-a1a4-0afdfbd59372", - "metadata": {}, - "source": [ - "This notebook creates a simple modflow model, following the tutorials https://flopy.readthedocs.io/en/stable/tutorials.html#modflow-6" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "9b605568-ba4f-4258-9a45-09a3ebaa487a", - "metadata": {}, - "outputs": [], - "source": [ - "import flopy" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "64efdc83-03ed-43a0-a0e3-31524109d9ad", - "metadata": {}, - "outputs": [], - "source": [ - "# set paths and names\n", - "folder_name = \"mf6_model\"\n", - "gwf_name = 'gwf'\n", - "gwe_name = 'gwe'\n", - "ws = f\"./{folder_name}\"\n", - "\n", - "### Model parameters\n", - "\n", - "# Spatial and Temporal Discretization\n", - "nlay, nrow, ncol = 2, 1, 1\n", - "shape3d = (nlay, nrow, ncol)\n", - "shape2d = (nrow, ncol)\n", - "delr, delc = 1., 1\n", - "area = delr * delc\n", - "aquifer_thickness = 10.\n", - "dz = aquifer_thickness / nlay\n", - "elevations = [26.0, 26.0 - dz, 26.0 - 2*dz]\n", - "nper, pertime, nstp, tsmult = 10, 1, 48, 1\n", - "\n", - "# Hydraulic Properties\n", - "k, ss, sy = 0.1, 1.5e-5, 0.05\n", - "\n", - "# Initial Conditions\n", - "h0 = elevations[0] - 2.5" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "66ac97ab-5579-4836-86af-bf413900b077", - "metadata": {}, - "outputs": [], - "source": [ - "### Build a one-dimensional model\n", - "\n", - "# Simulation Object\n", - "sim = flopy.mf6.MFSimulation(sim_name=folder_name, sim_ws=ws, verbosity_level=1, memory_print_option=\"all\", exe_name = exe_name)\n", - "tdis = flopy.mf6.ModflowTdis(sim, filename=f\"{gwf_name}.tdis\", time_units=\"days\", nper=nper, perioddata=((pertime, nstp, tsmult),)*nper,)\n", - "\n", - "# Groundwater Flow Model\n", - "gwf = flopy.mf6.ModflowGwf(sim, modelname=gwf_name, newtonoptions=\"NEWTON UNDER_RELAXATION\", save_flows=True)\n", - "ims_gwf = flopy.mf6.ModflowIms(sim, print_option=\"summary\", complexity=\"MODERATE\", filename=f\"{gwf_name}.ims\",\n", - " outer_maximum= 500, under_relaxation=\"dbd\",\n", - " linear_acceleration=\"bicgstab\", rcloserecord=[1e-6, \"strict\"],inner_dvclose=1e-8,outer_dvclose=1e-9,)\n", - "sim.register_ims_package(ims_gwf, [gwf.name]) \n", - "\n", - "is_gwf = flopy.mf6.ModflowGwfdis(gwf, length_units=\"meters\", nlay=nlay, nrow=nrow, ncol=ncol, \n", - " delr=delr, delc=delc, top=elevations[0], botm=elevations[1:])\n", - "npf = flopy.mf6.ModflowGwfnpf(gwf, icelltype=1, k=k)\n", - "sto = flopy.mf6.ModflowGwfsto(gwf, iconvert=1, ss=ss, sy=sy)\n", - "ic = flopy.mf6.ModflowGwfic(gwf, strt=h0)\n", - "rch = flopy.mf6.ModflowGwfrch(gwf, pname=\"rch_0\", maxbound=10, save_flows=True, stress_period_data = [((0, 0, 0), 0.0001, 0)], auxiliary=[\"TEMPERATURE\"])\n", - "oc_gwf = flopy.mf6.ModflowGwfoc(gwf, budget_filerecord = '{}.cbc'.format(gwf_name), \n", - " budgetcsv_filerecord = '{}.cbc.csv'.format(gwf_name),\n", - " head_filerecord = '{}.hds'.format(gwf_name),\n", - " saverecord = [('HEAD', 'ALL'),('BUDGET', 'LAST')],\n", - " printrecord = [('HEAD', 'ALL'),('BUDGET', 'LAST')])\n", - "obs_lst = []\n", - "for k in range(nlay):\n", - " obs_lst.append([\"H{:02d}\".format(k+1), \"HEAD\", (k, 0, 0)])\n", - "obs_gwf = flopy.mf6.ModflowUtlobs(gwf, print_input=False, continuous={\"gwhead.csv\": obs_lst})\n", - "\n", - "# Groundwater Heat Model\n", - "gwe = flopy.mf6.ModflowGwe(sim, modelname=gwe_name, save_flows=True)\n", - "ims_gwe = flopy.mf6.ModflowIms(sim, print_option=\"summary\", filename=f\"{gwe_name}.ims\", complexity=\"SIMPLE\",\n", - " linear_acceleration=\"bicgstab\", rcloserecord=[1e-6, \"strict\"],inner_dvclose=1e-8,outer_dvclose=1e-9,);\n", - "sim.register_ims_package(ims_gwe, [gwe.name])" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "b3d9fffa-dc56-4c78-bb19-c880b8eaff2d", - "metadata": {}, - "outputs": [], - "source": [ - "# Instantiating MODFLOW 6 transport discretization package\n", - "\n", - "strt_temp = 10.0 # Initial temperature ($^{\\circ}C$)\n", - "scheme = \"Upstream\" # Advection scheme ($-$)\n", - "alh = 0.0 # No mechanical dispersion ($m^2/day$)\n", - "ath1 = 0.0 # No transverse dispersivity ($m^2/day$)\n", - "dispersivity = 0.0 # Longitudinal mechanical dispersion term ($m$)\n", - "porosity = 0.2 # Porosity ($-$)\n", - "rhos = 1500.0 # Density of dry solid aquifer material ($\\frac{kg}{m^3}$)\n", - "cps = 760.0 # Heat capacity of dry solid aquifer material ($\\frac{J}{kg \\cdot ^{\\circ} C}$)\n", - "rhow = 1000.0 # Density of water ($\\frac{kg}{m^3}$)\n", - "cpw = 4183.0 # Heat capacity of water ($\\frac{J}{kg \\cdot ^{\\circ} C}$)\n", - "lhv = 2500.0 # Latent heat of vaporization\n", - "ktw = 0.5918 # Thermal conductivity of water ($\\frac{W}{m \\cdot ^{\\circ} C}$)\n", - "kts = 0.27 # Thermal conductivity of solid aquifer material ($\\frac{W}{m \\cdot ^{\\circ} C}$)\n", - "\n", - "is_gwe = flopy.mf6.ModflowGwedis(gwe, length_units=\"meters\", nlay=nlay, nrow=nrow, ncol=ncol, \n", - " delr=delr, delc=delc, top=elevations[0], botm=elevations[1:])\n", - "\n", - "# Instantiating MODFLOW 6 transport initial concentrations\n", - "ic_gwe = flopy.mf6.ModflowGweic(gwe, strt=strt_temp, pname=\"IC\", filename=f\"{gwe_name}.ic\",)\n", - "\n", - "# Instantiating MODFLOW 6 transport advection package\n", - "adv = flopy.mf6.ModflowGweadv(gwe, scheme=scheme, pname=\"ADV\", filename=\"{}.adv\".format(gwe_name))\n", - "\n", - "# Instantiating MODFLOW 6 transport dispersion package\n", - "cnd = flopy.mf6.ModflowGwecnd(gwe, xt3d_off=False, alh=alh, ath1=ath1, ktw=ktw * 86400, \n", - " kts=kts * 86400, pname=\"CND\",filename=f\"{gwe_name}.cnd\",)\n", - "\n", - "# Instantiating MODFLOW 6 transport mass storage package\n", - "est = flopy.mf6.ModflowGweest(gwe, save_flows=True, porosity=porosity, cps=cps, rhos=rhos,\n", - " packagedata=[cpw, rhow, lhv], pname=\"EST\", filename=f\"{gwe_name}.est\",)\n", - "\n", - "# Instantiating MODFLOW 6 source/sink mixing package\n", - "sourcerecarray = [ (\"rch_0\", \"AUX\", \"TEMPERATURE\") ]\n", - "ssm = flopy.mf6.ModflowGwessm(gwe, sources = sourcerecarray, filename = \"{}.ssm\".format(gwe_name))\n", - "\n", - "oc_gwe = flopy.mf6.ModflowGweoc(gwe, budget_filerecord = '{}.cbc'.format(gwe_name), \n", - " budgetcsv_filerecord = '{}.cbc.csv'.format(gwe_name),\n", - " temperature_filerecord=\"{}.ucn\".format(gwe_name),\n", - " saverecord = [('TEMPERATURE', 'LAST'),('BUDGET', 'LAST')],\n", - " printrecord = [('TEMPERATURE', 'LAST'),('BUDGET', 'LAST')])\n", - "gwfgwe = flopy.mf6.ModflowGwfgwe(sim, exgtype='GWF6-GWE6', exgmnamea = gwf_name, exgmnameb = gwe_name, filename = 'gwf_gwe.gwfgwe')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "8b040a8d-ddae-4efb-b910-fb3505ceee6d", - "metadata": {}, - "outputs": [], - "source": [ - "# Write the Model Files\n", - "sim.write_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.13" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -}