{ "cells": [ { "cell_type": "markdown", "id": "4197519b-44fa-49b2-aec8-3fb402248bab", "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "source": [ "Copyright CNES\n", "\n", "# Plot a lake timeseries from multiple Lake/River Single Pass products\n", "\n", "In this notebook, we show how to read the SWOT-HR River or Lake Single Pass vector products with geopandas and dask dataframes and how to represent a variable in time.\n", "The example is based on Lake Single Pass Prior products, but it would be the same methodology for all vector products relying on a feature ID" ] }, { "cell_type": "markdown", "id": "f0c5902d-a63b-4a1e-845b-666a7051c4eb", "metadata": {}, "source": [ "## Libraries" ] }, { "cell_type": "code", "execution_count": 1, "id": "da42166b-989a-4a5f-a2bf-4b7c71516808", "metadata": { "pycharm": { "is_executing": true } }, "outputs": [], "source": [ "import glob\n", "\n", "import numpy as np\n", "import geopandas as gpd\n", "from tqdm import tqdm\n", "\n", "from dask import dataframe as dd\n", "from dask.distributed import Client\n", "\n", "from datetime import datetime as dt\n" ] }, { "cell_type": "markdown", "id": "ec548ad4-dfa1-43a3-8d54-db049666c6c4", "metadata": {}, "source": [ "## Select all Lake Single-Pass products within our directory" ] }, { "cell_type": "markdown", "id": "345c3d75-f8c4-416e-91d0-f0438ceb38cb", "metadata": {}, "source": [ "### Filter by filename pattern" ] }, { "cell_type": "code", "execution_count": 2, "id": "d0884d32-63a5-4511-8186-e411f1592c23", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "49\n" ] } ], "source": [ "filename_list = glob.glob(\"../docs/data/swot/SWOT_L2_HR_LakeSP_Prior/*PIC0_01/*PIC0_01.zip\")\n", "print(len(filename_list))\n", "# one can use zip files, but note it is slower" ] }, { "cell_type": "markdown", "id": "3cee9499", "metadata": {}, "source": [ "# Load all data\n", "now we want to load all data from all file in lazy mode, otherwise it will not fit into RAM. \n", "For this, we will iteratively read all files with geopandas, and store data in a dask dataframe. \n", "With this method, you drop the geometries. If you are fine with that, it is very efficient, otherwise, you can use dask-geopandas instead, see other notebook in the same section." ] }, { "cell_type": "code", "execution_count": 3, "id": "bb55e839", "metadata": {}, "outputs": [], "source": [ "\n", "def get_df(f):\n", " gdf = gpd.read_file(\n", " f,\n", " engine='pyogrio',\n", " use_arrow=True,\n", " )\n", " # RIP geometry or don't drop and use dask_geopandas.from_geopandas instead of dd.from_pandas\n", " gdf = gdf.drop(columns=['geometry']) \n", " return gdf\n", "\n", "\n", "def load_layers(files):\n", " client = Client()\n", " futures = client.map(get_df, files)\n", "\n", " ddf = dd.from_delayed(futures)\n", "\n", " return ddf" ] }, { "cell_type": "code", "execution_count": 4, "id": "9dcdc3f4", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
Dask DataFrame Structure:
\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", " \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", " \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", " \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", " \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", "
lake_idreach_idobs_idoverlapn_overlaptimetime_taitime_strwsewse_uwse_r_uwse_stdarea_totalarea_tot_uarea_detctarea_det_ulayovr_valxtrk_distds1_lds1_l_uds1_qds1_q_uds2_lds2_l_uds2_qds2_q_uquality_fdark_fracice_clim_fice_dyn_fpartial_fxovr_cal_qgeoid_hghtsolid_tideload_tidefload_tidegpole_tidedry_trop_cwet_trop_ciono_cxovr_cal_clake_namep_res_idp_lonp_latp_ref_wsep_ref_areap_date_t0p_ds_t0p_storage
npartitions=49
objectobjectobjectobjectobjectfloat64float64objectfloat64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64float64int32float64int32int32int32int32float64float64float64float64float64float64float64float64float64objectint32float64float64float64float64objectfloat64float64
......................................................................................................................................................
.........................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
\n", "
Dask Name: fromdelayed, 50 expressions
" ], "text/plain": [ "Dask DataFrame Structure:\n", " lake_id reach_id obs_id overlap n_overlap time time_tai time_str wse wse_u wse_r_u wse_std area_total area_tot_u area_detct area_det_u layovr_val xtrk_dist ds1_l ds1_l_u ds1_q ds1_q_u ds2_l ds2_l_u ds2_q ds2_q_u quality_f dark_frac ice_clim_f ice_dyn_f partial_f xovr_cal_q geoid_hght solid_tide load_tidef load_tideg pole_tide dry_trop_c wet_trop_c iono_c xovr_cal_c lake_name p_res_id p_lon p_lat p_ref_wse p_ref_area p_date_t0 p_ds_t0 p_storage\n", "npartitions=49 \n", " object object object object object float64 float64 object float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 int32 float64 int32 int32 int32 int32 float64 float64 float64 float64 float64 float64 float64 float64 float64 object int32 float64 float64 float64 float64 object float64 float64\n", " ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...\n", "... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...\n", " ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...\n", " ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...\n", "Dask Name: fromdelayed, 50 expressions\n", "Expr=FromDelayed(53f4026)" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ddf = load_layers(filename_list)\n", "ddf" ] }, { "cell_type": "markdown", "id": "1702f29a-b62b-42da-a9af-a5f0020ea58c", "metadata": {}, "source": [ "## Focus on our lake of interest\n", "If you do not know the ID of your lake of interest, you can get it the SWOT Prior Lake Database.\n", "This database can be viewed and/or downloaded from the hydroweb.next platform.\n", "You will find the SWOT Prior Lake Database (PLD) among the 'Results' from [hydroweb.next](https://hydroweb.next.theia-land.fr?pid=SWOT_PRIOR_LAKE_DATABASE). If you do not want to download it, click on \"+Project\" icon to add it to your project and click on the \"EYE\" icon to display this vector layer into the current map selection. Note that you may have to place this product on top of the products in your \"Project\" panel or unselect the \"EYE\" icon of the other products, in order to view the PLD layer on the map. On the map click inside the water body of interest (here the \"river-lake\" we are studying) and you will see more details about it in the 'Select' panel. " ] }, { "cell_type": "code", "execution_count": 5, "id": "0314b71d", "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", " \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", " \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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
lake_idreach_idobs_idoverlapn_overlaptimetime_taitime_strwsewse_u...xovr_cal_clake_namep_res_idp_lonp_latp_ref_wsep_ref_areap_date_t0p_ds_t0p_storage
27845294002098329469100171;29469100181;29469100161;2946910014...294090L000211;294090L000584;294090L000586;2940...6;1;1;0;0;0;0;0;097.618071e+087.618072e+082024-02-21 05:05:43308.7970.060...6.006220e-01no_data-9999999942.77454336.726391-1.000000e+12221.719no_data-1.000000e+12-1.000000e+12
29549294002098329469100171;29469100181;29469100161;2946910014...294090R000212;294090R000175;294090R000187;2940...2;1;1;1;0;0;0;0;097.626653e+087.626653e+082024-03-02 03:27:58308.3570.006...-2.362345e+00no_data-9999999942.77454336.726391-1.000000e+12221.719no_data-1.000000e+12-1.000000e+12
22681294002098329469100171;29469100181;29469100161;2946910014...294219R000180;294219R000160;294219R000194;2942...26;14;3;1;1;0;0;0;0;0107.627129e+087.627129e+082024-03-02 16:41:13308.9910.026...-9.724420e-01no_data-9999999942.77454336.726391-1.000000e+12221.719no_data-1.000000e+12-1.000000e+12
29593294002098329469100171;29469100181;29469100161;2946910014...294090R000695;294090R000580;294090R000609;2940...2;1;1;1;0;0;0;0;0;0;0117.644680e+087.644680e+082024-03-23 00:13:01311.5660.006...-8.630990e-01no_data-9999999942.77454336.726391-1.000000e+12221.719no_data-1.000000e+12-1.000000e+12
27870294002098329469100171;29469100181;29469100161;2946910014...294090L000101;294090L000069;294090L000100;2940...4;2;2;2;1;1;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;...267.654126e+087.654126e+082024-04-02 22:35:50315.5450.004...-1.000000e+12no_data-9999999942.77454336.726391-1.000000e+12221.719no_data-1.000000e+12-1.000000e+12
27873294002098329469100171;29469100181;29469100161;2946910014...294090L000068;294090L000127;294090L000258;2940...5;1;1;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;...277.672153e+087.672153e+082024-04-23 19:20:56320.9300.007...6.728950e-01no_data-9999999942.77454336.726391-1.000000e+12221.719no_data-1.000000e+12-1.000000e+12
29570294002098329469100171;29469100181;29469100161;2946910014...294090R000446;294090R000379;294090R000393;2940...2;1;1;1;0;0;0;0;0;0;0117.680734e+087.680734e+082024-05-03 17:43:09323.0980.003...6.785700e-02no_data-9999999942.77454336.726391-1.000000e+12221.719no_data-1.000000e+12-1.000000e+12
22680294002098329469100171;29469100181;29469100161;2946910014...294219R000608;294219R000694;294219R000682;2942...2;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0167.681210e+087.681210e+082024-05-04 06:56:25323.3910.006...4.569000e-03no_data-9999999942.77454336.726391-1.000000e+12221.719no_data-1.000000e+12-1.000000e+12
29544294002098329469100171;29469100181;29469100161;2946910014...294090R000222;294090R000171;294090R000182;2940...2;1;1;1;0;0;0;0;0;0;0;0;0137.698761e+087.698761e+082024-05-24 14:28:15325.1210.003...7.896590e-01no_data-9999999942.77454336.726391-1.000000e+12221.719no_data-1.000000e+12-1.000000e+12
\n", "

9 rows × 50 columns

\n", "
" ], "text/plain": [ " lake_id reach_id \\\n", "27845 2940020983 29469100171;29469100181;29469100161;2946910014... \n", "29549 2940020983 29469100171;29469100181;29469100161;2946910014... \n", "22681 2940020983 29469100171;29469100181;29469100161;2946910014... \n", "29593 2940020983 29469100171;29469100181;29469100161;2946910014... \n", "27870 2940020983 29469100171;29469100181;29469100161;2946910014... \n", "27873 2940020983 29469100171;29469100181;29469100161;2946910014... \n", "29570 2940020983 29469100171;29469100181;29469100161;2946910014... \n", "22680 2940020983 29469100171;29469100181;29469100161;2946910014... \n", "29544 2940020983 29469100171;29469100181;29469100161;2946910014... \n", "\n", " obs_id \\\n", "27845 294090L000211;294090L000584;294090L000586;2940... \n", "29549 294090R000212;294090R000175;294090R000187;2940... \n", "22681 294219R000180;294219R000160;294219R000194;2942... \n", "29593 294090R000695;294090R000580;294090R000609;2940... \n", "27870 294090L000101;294090L000069;294090L000100;2940... \n", "27873 294090L000068;294090L000127;294090L000258;2940... \n", "29570 294090R000446;294090R000379;294090R000393;2940... \n", "22680 294219R000608;294219R000694;294219R000682;2942... \n", "29544 294090R000222;294090R000171;294090R000182;2940... \n", "\n", " overlap n_overlap \\\n", "27845 6;1;1;0;0;0;0;0;0 9 \n", "29549 2;1;1;1;0;0;0;0;0 9 \n", "22681 26;14;3;1;1;0;0;0;0;0 10 \n", "29593 2;1;1;1;0;0;0;0;0;0;0 11 \n", "27870 4;2;2;2;1;1;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;... 26 \n", "27873 5;1;1;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;... 27 \n", "29570 2;1;1;1;0;0;0;0;0;0;0 11 \n", "22680 2;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0 16 \n", "29544 2;1;1;1;0;0;0;0;0;0;0;0;0 13 \n", "\n", " time time_tai time_str wse wse_u ... \\\n", "27845 7.618071e+08 7.618072e+08 2024-02-21 05:05:43 308.797 0.060 ... \n", "29549 7.626653e+08 7.626653e+08 2024-03-02 03:27:58 308.357 0.006 ... \n", "22681 7.627129e+08 7.627129e+08 2024-03-02 16:41:13 308.991 0.026 ... \n", "29593 7.644680e+08 7.644680e+08 2024-03-23 00:13:01 311.566 0.006 ... \n", "27870 7.654126e+08 7.654126e+08 2024-04-02 22:35:50 315.545 0.004 ... \n", "27873 7.672153e+08 7.672153e+08 2024-04-23 19:20:56 320.930 0.007 ... \n", "29570 7.680734e+08 7.680734e+08 2024-05-03 17:43:09 323.098 0.003 ... \n", "22680 7.681210e+08 7.681210e+08 2024-05-04 06:56:25 323.391 0.006 ... \n", "29544 7.698761e+08 7.698761e+08 2024-05-24 14:28:15 325.121 0.003 ... \n", "\n", " xovr_cal_c lake_name p_res_id p_lon p_lat p_ref_wse \\\n", "27845 6.006220e-01 no_data -99999999 42.774543 36.726391 -1.000000e+12 \n", "29549 -2.362345e+00 no_data -99999999 42.774543 36.726391 -1.000000e+12 \n", "22681 -9.724420e-01 no_data -99999999 42.774543 36.726391 -1.000000e+12 \n", "29593 -8.630990e-01 no_data -99999999 42.774543 36.726391 -1.000000e+12 \n", "27870 -1.000000e+12 no_data -99999999 42.774543 36.726391 -1.000000e+12 \n", "27873 6.728950e-01 no_data -99999999 42.774543 36.726391 -1.000000e+12 \n", "29570 6.785700e-02 no_data -99999999 42.774543 36.726391 -1.000000e+12 \n", "22680 4.569000e-03 no_data -99999999 42.774543 36.726391 -1.000000e+12 \n", "29544 7.896590e-01 no_data -99999999 42.774543 36.726391 -1.000000e+12 \n", "\n", " p_ref_area p_date_t0 p_ds_t0 p_storage \n", "27845 221.719 no_data -1.000000e+12 -1.000000e+12 \n", "29549 221.719 no_data -1.000000e+12 -1.000000e+12 \n", "22681 221.719 no_data -1.000000e+12 -1.000000e+12 \n", "29593 221.719 no_data -1.000000e+12 -1.000000e+12 \n", "27870 221.719 no_data -1.000000e+12 -1.000000e+12 \n", "27873 221.719 no_data -1.000000e+12 -1.000000e+12 \n", "29570 221.719 no_data -1.000000e+12 -1.000000e+12 \n", "22680 221.719 no_data -1.000000e+12 -1.000000e+12 \n", "29544 221.719 no_data -1.000000e+12 -1.000000e+12 \n", "\n", "[9 rows x 50 columns]" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "MY_LAKE_ID = '2940020983'\n", "\n", "df_vs = ddf[ddf['lake_id'] == MY_LAKE_ID].compute()\n", "\n", "# Interpreting the dates as dates with the datetime library\n", "df_vs['time_str'] = df_vs['time_str'].apply(\n", " lambda t: np.nan if t =='no_data' else dt.fromisoformat(t.strip('Z'))\n", " )\n", "\n", "# sorting values based on dated\n", "df_vs.sort_values('time_str', inplace=True)\n", "\n", "# interpreting NaNs (shapefiles have no system to identify fillvalues)\n", "df_vs = df_vs[df_vs['wse']>-1e10] \n", "\n", "df_vs" ] }, { "cell_type": "code", "execution_count": 6, "id": "2d2e1990", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 1.0, 'Water Level for Lake ID 2940020983')" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA+cAAAKbCAYAAACXafuyAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAACdM0lEQVR4nOzdd3gU1f7H8c+mJ6QRIISSECB0jUoQDCpVuoiKvQCKWEGBn15FRUGkeEUEG6BwkatgAcWLShUJKF0EqaIiRSChk5C+yc7vjzEb1iRAIGSS7Pv1PHmSOTs7892cpXz2nDljMwzDEAAAAAAAsIyH1QUAAAAAAODuCOcAAAAAAFiMcA4AAAAAgMUI5wAAAAAAWIxwDgAAAACAxQjnAAAAAABYjHAOAAAAAIDFCOcAAAAAAFiMcA4AAAAAgMUI5wAAXKQRI0bIZrOd174fffSRGjduLG9vb4WGhl7awkpQQkKCbDab5s6da3UpAABUSIRzAKggPv/8c9lsNs2bN6/AY1dccYVsNpuWL19e4LGoqCi1bt26WOd677339OGHH15oqRckOjpaN954Y6mes6T9+uuv6tevn+rXr68PPvhA77///iU9X96HBseOHbuk5ykphdXbr18/2Ww251dgYKDq1aun2267TV988YUcDsd5HXvZsmV68MEH1bBhQwUEBKhevXp66KGHlJiYWGBfu92ukSNHql69evL19VW9evX06quvKicn56znGD16tGw2my677LJCH1+9erWuu+46BQQEKCIiQk8++aRSU1ML7JeVlaVnn31WNWvWlL+/v1q1aqWlS5e67JOenq53331XnTt3Vo0aNRQUFKSrrrpKkydPVm5uboFjOhwO/fvf/1bdunXl5+en2NhYffLJJ4XW+c4776hJkyby9fVVrVq1NHToUKWlpRXYLzExUQ8//LDq1q0rf39/1a9fX0OHDtXx48dd9vvggw/Utm1bVa9eXb6+vqpbt64eeOAB7d27t6hfJQC4JS+rCwAAlIzrrrtOkvTjjz/qlltucbanpKRo27Zt8vLy0qpVq9S+fXvnY3/99Zf++usv3XXXXcU613vvvaeqVauqX79+JVK7u0hISJDD4dCkSZMUExNjdTnlhq+vr6ZNmyZJysjI0L59+/T111/rtttuU7t27fS///1PwcHBZz3Gs88+qxMnTuj2229XgwYN9Oeff+qdd97RN998o82bNysiIsK573333ac5c+bowQcfVIsWLbR27VoNHz5c+/fvL/IDlQMHDmjMmDGqVKlSoY9v3rxZHTt2VJMmTTRhwgQdOHBA48eP1++//66FCxe67NuvXz/NnTtXgwcPVoMGDfThhx+qe/fuWr58ufPP+Z9//qlBgwapY8eOGjp0qIKDg7V48WI9/vjjWrt2rWbOnOlyzBdeeEHjxo3TgAEDdPXVV+t///uf7rnnHtlsNpc//88++6z+/e9/67bbbtNTTz2lHTt26O2339b27du1ePFi536pqamKj49XWlqaHn/8cUVGRuqXX37RO++8o+XLl2vjxo3y8DDHgDZt2qS6devqpptuUuXKlbVnzx598MEH+uabb/TLL7+oZs2aZ+07AHAbBgCgwqhbt67RsmVLl7ZFixYZNpvNuPvuu40uXbq4PDZ79mxDkvG///2vWOdp1qyZ0bZt24st14XdbjeysrKKfLxOnTpGjx49SvScJeXll182zuef1JEjRxqSjKNHj5bYudPS0s5ZV0mcb/ny5YYkY86cORd9rKIUVm/fvn2NSpUqFbr/2LFjDUnGHXfccc5jr1ixwsjNzS3QJsl44YUXnG3r1683JBnDhw932ff//u//DJvNZvzyyy+FHv/OO+80OnToYLRt29Zo1qxZgce7detm1KhRw0hOTna2ffDBB4YkY/Hixc62devWGZKM119/3dmWkZFh1K9f34iPj3e2HT161Ni2bVuB8zzwwAOGJOP33393th04cMDw9vY2nnjiCWebw+Ewrr/+eqN27dpGTk6OYRiGcejQIcPLy8u4//77XY759ttvG5KM+fPnO9tmzZplSDK++eYbl31feuklQ5Lx888/F/p7yvPTTz8ZkoyxY8eedT8AcCdMaweACuS6667Tpk2blJGR4WxbtWqVmjVrpm7dumnt2rUu04BXrVolm82ma6+9VpI0Y8YMdejQQeHh4fL19VXTpk01efJkl3NER0dr+/btWrFihXOqcbt27ZyPnzp1SoMHD1ZkZKR8fX0VExOj1157zeW8e/fulc1m0/jx4zVx4kTVr19fvr6+2rFjx0X/Dj7++GPFxcXJ399fYWFhuuuuu/TXX385Hx84cKACAwOVnp5e4Ll33323IiIiXKYFL1y4UNdff70qVaqkoKAg9ejRQ9u3by92XdHR0Xr55ZclSdWqVZPNZtOIESOcj7/33ntq1qyZfH19VbNmTT3xxBM6deqUyzHatWunyy67TBs3blSbNm0UEBCg559/vti1nOnEiRN6+umndfnllyswMFDBwcHq1q2bfvnll3M+NysrSzfeeKNCQkK0evVqSeb06YkTJ6pZs2by8/NT9erV9cgjj+jkyZMXVWdhnnvuOXXu3Flz5szRb7/9dtZ927Rp4xzJPbMtLCxMO3fudLb98MMPklRgNsldd90lwzD02WefFTj2ypUrNXfuXE2cOLHQc6ekpGjp0qW67777XEb4+/Tpo8DAQH3++efOtrlz58rT01MPP/yws83Pz0/9+/fXmjVrnO/lqlWrqlmzZgXOlTdr5szX9L///U92u12PP/64s81ms+mxxx7TgQMHtGbNGknSmjVrlJOTU+hrl6RPP/3U5TVJUvXq1V32rVGjhiTJ39+/0N9FnujoaEkq8B4HAHdGOAeACuS6666T3W7XunXrnG2rVq1S69at1bp1ayUnJ2vbtm0ujzVu3FhVqlSRJE2ePFl16tTR888/rzfeeEORkZF6/PHH9e677zqfM3HiRNWuXVuNGzfWRx99pI8++kgvvPCCJPM62LZt2+rjjz9Wnz599NZbb+naa6/VsGHDNHTo0AL1zpgxQ2+//bYefvhhvfHGGwoLC7uo1z969Gj16dNHDRo00IQJEzR48GAtW7ZMbdq0cYaAO++8U2lpafr2229dnpuenu6cKu3p6SnJXLytR48eCgwM1Guvvabhw4drx44duu6664p9vezEiROdwWny5Mn66KOPdOutt0oyr7V+4oknVLNmTb3xxhvq3bu3pk6dqs6dO8tut7sc5/jx4+rWrZuuvPJKTZw40eUyhQvx559/6quvvtKNN96oCRMm6JlnntHWrVvVtm1bHTp0qMjnZWRkqGfPnlq9erW+++4757oFjzzyiJ555hlde+21mjRpkh544AHNmjVLXbp0KfBaSsL9998vwzAKXJN9PlJTU5WamqqqVas627KysiQVDJcBAQGSpI0bN7q05+bmatCgQXrooYd0+eWXF3qerVu3KicnRy1atHBp9/Hx0ZVXXqlNmzY52zZt2qSGDRsWmKbfsmVLSeb0+LNJSkqSJJfXtGnTJlWqVElNmjQp9Jh55y/Oa8/7sOOpp57S2rVrdeDAAS1YsECjR4/WzTffrMaNGxeo7fjx4zpy5Ih++uknPfDAA5Kkjh07nvX1AIBbsXroHgBQcrZv325IMkaNGmUYhjlVvFKlSsbMmTMNwzCM6tWrG++++65hGIaRkpJieHp6GgMGDHA+Pz09vcAxu3TpYtSrV8+lrahp7aNGjTIqVapk/Pbbby7tzz33nOHp6Wns37/fMAzD2LNnjyHJCA4ONo4cOXJer+1c09r37t1reHp6GqNHj3Zp37p1q+Hl5eVsdzgcRq1atYzevXu77Pf5558bkoyVK1cahmEYp0+fNkJDQ11+P4ZhGElJSUZISIhL+/lOay9s2vaRI0cMHx8fo3Pnzi7Trt955x1DkvGf//zH2da2bVtDkjFlypRznquo8/1TZmZmgenee/bsMXx9fY1XXnnF2XbmtPbTp08bbdu2NapWrWps2rTJuc8PP/xgSDJmzZrlcrxFixYV2n4+9Z5tWrthGMamTZsMScaQIUPOeuzCjBo1ypBkLFu2zNn2xRdfGJKMjz76yGXfKVOmGJKMyy67zKX9nXfeMUJCQpzv48Kmtc+ZM8flvXWm22+/3YiIiHBuN2vWzOjQoUOB/fL+bJ+t77OysoymTZsadevWNex2u7O9R48eBf4MG4Z5SYQk47nnnjMMwzA2btzo8vdHnrz+CwwMdGmfNm2aERoaakhyfvXt29fl3Gfy9fV17lelShXjrbfeKvK1AIA7YuQcACqQJk2aqEqVKvrxxx8lSb/88ovS0tKco5qtW7fWqlWrJJlTWHNzc50LTEmuI2bJyck6duyY2rZtqz///FPJycnnPP+cOXN0/fXXq3Llyjp27Jjz64YbblBubq5Wrlzpsn/v3r1VrVq1i37dkvTll1/K4XDojjvucDl3RESEGjRo4Fyp3maz6fbbb9eCBQtcVsr+7LPPVKtWLefvY+nSpTp16pTuvvtul+N5enqqVatWha58fyG+++47ZWdna/DgwS7TrgcMGKDg4OACI/y+vr7OUceS4Ovr6zxvbm6ujh8/rsDAQDVq1Eg///xzgf2Tk5PVuXNn/frrr0pISNCVV17pfGzOnDkKCQlRp06dXH5ncXFxCgwMLLHf2ZkCAwMlSadPny7W81auXKmRI0fqjjvuUIcOHZzt3bt3V506dfT000/ryy+/1L59+/T555/rhRdekJeXl8slI8ePH9dLL72k4cOHn/V9nPccX1/fAo/5+fm5HDMjI6PI/c48VmEGDhyoHTt26J133pGXV/6av+d7zObNm6tVq1Z67bXXNGPGDO3du1cLFy7UI488Im9v7wLnrlWrllq2bKmJEydq3rx5Gjp0qGbNmqXnnnuu0PoWLlyoBQsW6I033lBUVFShK8ADgDtjtXYAqEBsNptat26tlStXyuFwaNWqVQoPD3euDN66dWu98847kuQM6WeG81WrVunll1/WmjVrClyTnZycrJCQkLOe//fff9eWLVuKDCpHjhxx2a5bt27xXuA5zm0Yhho0aFDo497e3s6f77zzTk2cOFHz58/XPffco9TUVC1YsECPPPKI837lv//+uyS5BLcznWt18PO1b98+SVKjRo1c2n18fFSvXj3n43lq1aolHx+fEjm3JOfq8e+995727Nnjcr193uUOZxo8eLAyMzO1adOmAtc8//7770pOTlZ4eHih5/pn/5eEvA9YgoKCzvs5v/76q2655RZddtllzlXg8/j5+enbb7/VHXfcod69e0syQ/W///1vjR492vlhgCS9+OKLCgsL06BBg856vrwPvfKmjZ8pMzPT5UMxf3//Ivc781j/9Prrr+uDDz7QqFGj1L179wLnP99jfvHFF7rzzjv14IMPSpI8PT01dOhQrVixQrt27XLut2rVKt14441au3atc7r+zTffrODgYI0cOVIPPvigmjZt6nK+vEswunXrpl69eumyyy5TYGCgBg4cWOhrAgB3QzgHgArmuuuu09dff62tW7c6rzfP07p1az3zzDM6ePCgfvzxR9WsWVP16tWTJO3evVsdO3ZU48aNNWHCBEVGRsrHx0cLFizQm2++eV73k3Y4HOrUqZP+9a9/Ffp4w4YNXbbPtWhUcTgcDtlsNi1cuNB5zfiZzgxV11xzjaKjo/X555/rnnvu0ddff62MjAzdeeedLseTzOvOz7zNVp4zRyZLU0n+ziRpzJgxGj58uB588EGNGjVKYWFh8vDw0ODBgwvt8169eunTTz/VuHHj9N///tdltN/hcCg8PFyzZs0q9FwlNUviTHlrKJzvren++usvde7cWSEhIVqwYEGhob5Zs2batm2bduzYoZMnT6pp06by9/fXkCFD1LZtW0nmBxHvv/++Jk6c6HJtfmZmpux2u/bu3avg4GCFhYU5F0kr7J7qiYmJLrcSq1Gjhg4ePFjofpIKve3Yhx9+qGeffVaPPvqoXnzxxQKP16hRQ8uXL5dhGM4Pn4o6Zq1atfTjjz/q999/V1JSkho0aKCIiAjVrFnT5c/v1KlTVb169QLX0d90000aMWKEVq9eXSCcn6l+/fq66qqrNGvWLMI5APyNcA4AFcyZ9ztftWqVBg8e7HwsLi5Ovr6+SkhI0Lp161xG2L7++mtlZWVp/vz5ioqKcrYXNhX5zP/gn6l+/fpKTU3VDTfcUEKv5vzVr19fhmGobt26BT4EKMwdd9yhSZMmKSUlRZ999pmio6N1zTXXuBxPksLDwy/p66lTp44kadeuXc4PSiQpOztbe/bsueS/y7lz56p9+/aaPn26S/upU6dcFhXLc/PNN6tz587q16+fgoKCXFbzr1+/vr777jtde+21Jf4hQlE++ugj2Ww2derU6Zz7Hj9+XJ07d1ZWVpaWLVvmDM2FsdlsLjMDFixYIIfD4eyPgwcPyuFw6Mknn9STTz5Z4Pl169bVU089pYkTJ+qyyy6Tl5eXfvrpJ91xxx3OfbKzs7V582aXtiuvvFLLly9XSkqKy+yMvEUez7yMQDJXYn/ooYd06623uizceKYrr7xS06ZN086dO10Cc1HHlKQGDRo4Z6Hs2LFDiYmJ6tevn/Pxw4cPu8yyyJO36F9OTk6htZwpIyOj0BF9AHBXXHMOABVMixYt5Ofnp1mzZungwYMuI+e+vr5q3ry53n33XaWlpblMac8bbTYMw9mWnJysGTNmFDhHpUqVCr0F0h133KE1a9Zo8eLFBR47derUef2H/ULdeuut8vT01MiRI11eg2S+puPHj7u03XnnncrKytLMmTO1aNEil4AkSV26dFFwcLDGjBlT6CrjR48eLZG6b7jhBvn4+Oitt95yqXv69OlKTk5Wjx49SuQ8RfH09Czw+5ozZ06ho7d58lbinzJlip599lln+x133KHc3FyNGjWqwHNycnJK/LZZ48aN05IlS3TnnXcWeTlDnrS0NHXv3l0HDx7UggULzrn/mTIyMjR8+HDVqFFDd999tyTpsssu07x58wp8NWvWTFFRUZo3b5769+8vSQoJCdENN9ygjz/+2OXa+I8++kipqam6/fbbnW233XabcnNz9f777zvbsrKyNGPGDLVq1UqRkZHO9pUrV+quu+5SmzZtNGvWrAK3isvTq1cveXt767333nO2GYahKVOmqFatWi5/R/yTw+HQv/71LwUEBOjRRx91tjds2FCHDx9WQkKCy/6ffPKJJOmqq66SZPZ7YbfRW79+vbZu3Vpg5B0A3Bkj5wBQwfj4+Ojqq6/WDz/8IF9fX8XFxbk83rp1a73xxhuSXK8379y5s3x8fNSzZ0898sgjSk1N1QcffKDw8PAC03Hj4uI0efJkvfrqq4qJiVF4eLg6dOigZ555RvPnz9eNN96ofv36KS4uTmlpadq6davmzp2rvXv3Fjoae77++OMPvfrqqwXar7rqKvXo0UOvvvqqhg0bpr179+rmm29WUFCQ9uzZo3nz5unhhx/W008/7XxO8+bNFRMToxdeeEFZWVkuU9ol85ryyZMn6/7771fz5s111113qVq1atq/f7++/fZbXXvttc7r9y9GtWrVNGzYMI0cOVJdu3bVTTfdpF27dum9997T1Vdfrfvuu++izzFhwgTn7bDyeHh46Pnnn9eNN96oV155RQ888IBat26trVu3atasWS6j+IUZOHCgUlJS9MILLygkJETPP/+82rZtq0ceeURjx47V5s2b1blzZ3l7e+v333/XnDlzNGnSJN12223Frj8nJ0cff/yxJHPa+L59+zR//nxt2bJF7du3dwmyRbn33nu1fv16Pfjgg9q5c6fLfcADAwN18803O7fvuOMO1axZU02bNlVKSor+85//6M8//9S3337rnAZftWpVl+fkybvX+T8fGz16tFq3bq22bdvq4Ycf1oEDB/TGG2+oc+fO6tq1q3O/Vq1a6fbbb9ewYcN05MgRxcTEaObMmdq7d6/L7IZ9+/bppptuks1m02233aY5c+a4nC82NlaxsbGSpNq1a2vw4MF6/fXXZbfbdfXVV+urr77SDz/8oFmzZrlcBvLUU08pMzNTV155pex2u2bPnq3169dr5syZLjNqBg4cqBkzZqhnz54aNGiQ6tSpoxUrVuiTTz5Rp06d1KpVK0nmmgCRkZG688471axZM1WqVElbt27VjBkzFBISouHDh5+z7wDAbVi2TjwA4JIZNmyYIclo3bp1gce+/PJLQ5IRFBRk5OTkuDw2f/58IzY21vDz8zOio6ON1157zfjPf/5jSDL27Nnj3C8pKcno0aOHERQUZEhyua3a6dOnjWHDhhkxMTGGj4+PUbVqVaN169bG+PHjjezsbMMw8m+l9vrrr5/3a6pTp47LLZvO/Orfv79zvy+++MK47rrrjEqVKhmVKlUyGjdubDzxxBPGrl27ChzzhRdeMCQZMTExRZ53+fLlRpcuXYyQkBDDz8/PqF+/vtGvXz/jp59+cu5zMbdSy/POO+8YjRs3Nry9vY3q1asbjz32mHHy5EmXfQq7Tdf5nK+wL09PT8MwzFup/d///Z9Ro0YNw9/f37j22muNNWvWGG3btnXp1zNvpXamf/3rX4Yk45133nG2vf/++0ZcXJzh7+9vBAUFGZdffrnxr3/9yzh06FCxfz99+/Z1qTsgIMCIjo42evfubcydO7fAbeCKcrb3T506dVz2fe2114zGjRsbfn5+RuXKlY2bbrrJ5ZZxZ3O2Pvrhhx+M1q1bG35+fka1atWMJ554wkhJSSmwX0ZGhvH0008bERERhq+vr3H11VcbixYtctknrz+K+nr55Zdd9s/NzTXGjBlj1KlTx/Dx8TGaNWtmfPzxxwXOPWPGDOOKK64wKlWqZAQFBRkdO3Y0vv/++0Jfz6+//mrcdtttRmRkpOHt7W3UqVPHePrpp420tDTnPllZWcZTTz1lxMbGGsHBwc79+vfv7/J3CgDAMGyG8Y+5bAAAAAAAoFRxzTkAAAAAABYjnAMAAAAAYDHCOQAAAAAAFiOcAwAAAABgMcI5AAAAAAAWI5wDAAAAAGAxL6sLKC0Oh0OHDh1SUFCQbDab1eUAAAAAACo4wzB0+vRp1axZUx4eZx8bd5twfujQIUVGRlpdBgAAAADAzfz111+qXbv2Wfdxm3AeFBQkyfylBAcHW1wNLhW73a4lS5aoc+fO8vb2troclCL6HqWB95l7ot9xsXgPuS/6HikpKYqMjHTm0bNxm3CeN5U9ODiYcF6B2e12BQQEKDg4mL8A3Qx9j9LA+8w90e+4WLyH3Bd9jzznc2k1C8IBAAAAAGAxwjkAAAAAABZzm2nt5ys3N1d2u93qMnCB7Ha7vLy8lJmZqdzcXKvLQSn6Z997e3vL09PT6rIAAACA80I4/5thGEpKStKpU6esLgUXwTAMRURE6K+//uKWeW6msL4PDQ1VREQE7wUAAACUeYTzv+UF8/DwcAUEBPCf+XLK4XAoNTVVgYGB57yPICqWM/veZrMpPT1dR44ckSTVqFHD4uoAAACAsyOcy5zKnhfMq1SpYnU5uAgOh0PZ2dny8/MjnLuZf/a9v7+/JOnIkSMKDw9nijsAAADKNNKL5LzGPCAgwOJKAJSkvD/TrCMBAACAso5wfgamsgMVC3+mAQAAUF4QzgEAAAAAsBjh/FLYMk2a0cz8DgAAAADAORDOS9qWadLaUVLGUfM7Ab3Upaen67bbblNwcLBsNluZvj2ezWbTV199ZXUZSkhIKLXf1fHjxxUeHq69e/de1HHuuusuvfHGGyVTFAAAAGAxwnlJygvmNpsUHGV+v4QBfcqUKQoKClJOTo6zLTU1Vd7e3mrXrp3Lvnnha/fu3ec8bmkEtRUrVqhDhw4KCwtTQECAGjRooL59+yo7O/uij/3JJ5/oxx9/1OrVq5WYmKiQkJASqLj4+vXrJ5vNVuCra9eultSTp127dho8eLBLW+vWrUvtdzV69Gj16tVL0dHRF3WcF198UaNHj1ZycnLJFAYAAABYiHBeUs4M5v5VzTb/qpc0oLdv316pqan66aefnG0//PCDIiIitG7dOmVmZjrbly9frqioKNWvX7/E6yiKYRguHxzk2bFjh7p27aoWLVpo5cqV2rp1q95++235+PgoNzf3gs+XF+z37t2rJk2a6LLLLlNERISli4J17dpViYmJLl+ffPKJZfUUxcfHp1R+V+np6Zo+fbr69+9/0ce67LLLVL9+fX388cclUBkAAABgLcL5udgzzC/DyG/LtZttuX+P8uYFc0nyC3N9vt/f903/Z0B3HteR3+YoGGTPplGjRqpRo4YSEhKcbQkJCerVq5fq1q2rtWvXurS3b99ekvTRRx+pRYsWCgoKUkREhO655x4dOXJEkhls8/arXLmybDab+vXrZ5bncGjs2LGqW7eu/P39dcUVV2ju3Lku57DZbFq4cKHi4uLk6+urH3/8sUDdS5YsUUREhP797387A1bXrl31wQcfOO9NPWLECF155ZUuz5s4caLLaGu/fv108803a/To0apZs6YaNWqkDh066J133tHKlStls9mcMwjO9przbN++XTfeeKOCg4MVFBSk66+/3mWmwbRp09SkSRP5+fmpcePGeu+9987ZR76+voqIiHD5qly5cpH7//XXX7rjjjsUGhqqsLAw9erVyzn9e8mSJfLz8yswo+Gpp55Shw4dJJlTxu+++27VqlVLAQEBuvzyy10+DOjXr59WrFihSZMmOUfy9+7dW+hsiS+++ELNmjWTr6+voqOjC0whj46O1pgxY/Tggw8qKChIUVFRev/998/6+1iwYIF8fX11zTXXONvyzr148WJdddVV8vf3V4cOHXTkyBEtXLhQTZo0UXBwsO655x6lp6e7HK9nz5769NNPz3pOAAAAoDwgnJ/LZ9ebX1mn8tt2fGS2bfi364h55nHpxC4zvOfJPCllHDOff2ZA/6qneYzkvfn77v662OW1b99ey5cvd24vX75c7dq1U9u2bZ3tGRkZWrdunTN02+12jRo1Sr/88ou++uor7d271xnAIyMj9cUXX0iSdu3apcTERE2aNEmSNHbsWP33v//VlClTtH37dg0ZMkT33XefVqxY4VLTc889p3Hjxmnnzp2KjY0tUHNERIQSExO1cuXKYr/ef1q2bJl27dqlpUuX6ptvvtHcuXPVt29fxcfHKzExUV9++eU5X7MkHTx4UG3atJGvr6++//57bdy4UQ8++KBz5H/WrFl66aWXNHr0aO3cuVNjxozR8OHDNXPmzIt+DXnsdru6dOmioKAg/fDDD1q1apUCAwPVtWtXZWdnq2PHjgoNDXX2jyTl5ubqs88+07333itJyszMVFxcnL799ltt27ZNDz/8sO6//36tX79ekjRp0iTFx8drwIABzpH8yMjIArVs3LhRd9xxh+666y5t3bpVI0aM0PDhw/Xhhx+67PfGG2+oRYsW2rRpkx5//HE99thj2rVrV5Gv8YcfflBcXFyhj40YMULvvPOOVq9e7fyQYuLEiZo9e7a+/fZbLVmyRG+//bbLc1q2bKn169crKyvrvH7HAAAAQFnlZXUB5d7GN6WcDPMa84xjRe/nHWDut/FNKfahEjt9+/btNXjwYOXk5CgjI0ObNm1S27ZtZbfbNWXKFEnSmjVrlJWV5QznDz74oPP59erV01tvvaWrr75aqampCgwMVFiYOfofHh6u0NBQSVJWVpbGjBmj7777TvHx8c7n/vjjj5o6daratm3rPOYrr7yiTp06FVnz7bffrsWLF6tt27aKiIjQNddco44dO6pPnz4KDg4u1uuvVKmSpk2bJh8fH0nm6L6/v79zmnaec73md999VyEhIfr000/l7e0tSWrYsKHzOS+//LLeeOMN3XrrrZKkunXraseOHZo6dar69u1bZH3ffPONAgMDXdqef/55Pf/88wX2/eyzz+RwODRt2jTn9PIZM2Yo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5cqVvtdefvllakwldqm5p8bgp7p3724SExPN4cOHjTHGbNu2zXz88cdm3759JicnxxhjzNSpU6kflczl5p3aASs5jCmx5CDgp2PHjunMmTNKTEyUJB09elQ9e/bUXXfdpc6dO+vGG2+UMUZZWVmKi4s752cUFhb6zrIiePib+6ysLL311lu+VXCBn/J4PL4zHPPnz9fnn3+u6dOn67bbblN+fr5WrVqloqIihYSEKDs7W1WqVDnn51Bjgk9Z5J4ag6+//lp333237rvvPu3atUubNm1STEyMTpw4oc6dO+udd96RMUaZmZmKj48/52dQP4KPv3mndiCQaM7xi02ZMkXp6em66qqrdP/99yssLKzU6zNnztTQoUN9q51u27ZNgwYN0uTJkxUVFWVR1CgLZZ37kv/jDRS70Dx78sknlZaWpuTkZB0/flx16tTx3QM4c+ZMXXPNNdYFDr+Vde6pMfZzvjk0atQovfbaa+rTp48ee+wxhYWFadeuXXrggQc0YcIEPfnkkzLGlFqRG8GjrPNO7UDAWXXKHsFr9+7dpmXLlqZ169amb9++pmrVqqZLly5m3bp1pbabO3euWbFihfF4PMYYYz788EMTEhJidu3aZYwxvnEED3KPQLiUeXb//febBQsWGGOM+fe//21iYmKMy+Uyc+bMsSpslAFyD3+dbw6tXr3aGGNMZmam+fOf/2z2799f6n3PP/+8iY+P/9klzQgO5B2VBYeCcNkWL16suLg4bd68We+++6527typU6dOaerUqdq3b59vu379+unmm2/2HYVMSkqS0+nUzp07JYmj0kGI3CMQLjTPvvnmG0neVXTfe+89derUSSNGjNC4ceNUvXp17d+/3+Lo4Q9yD3+dbw5Nnz5de/bsUWxsrCZMmKBGjRqVel/dunUVFhamHTt2WBQ5/EHeUVnQnOOyFBUVaceOHapVq5ZvBcuEhAT95S9/UVpammbOnOnb9qcN2AcffKDrr79e3bp1C2jMKBvkHoFwsXk2d+5cSd7HGC1ZskRXXnmltmzZookTJ2rixImaNGmSdu/ebeUu4Bci9/DXxeZQcnKyJCk2NvZn7127dq06dOjAY7GCEHlHZRJidQAILiEhIcrPz1dubq7vuZAul0u//e1vtWrVKqWmpmrLli1q06aNJOnQoUMqKirS1KlTNX/+fE2cOFFxcXHczxWE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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ax = df_vs.plot(\n", " 'time_str',\n", " 'wse',\n", " label='Water Surface Elevation (m)',\n", " color='darkorange',\n", " alpha=.8,\n", " marker='D',\n", " ls=':',\n", " figsize=(12,8),\n", ")\n", "ax.grid(True)\n", "ax.set_title(f'Water Level for Lake ID {MY_LAKE_ID}')" ] } ], "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.12" } }, "nbformat": 4, "nbformat_minor": 5 }