{ "cells": [ { "cell_type": "markdown", "id": "1ca2a6f5-bd5a-4520-8380-baf5cb536d41", "metadata": { "papermill": { "duration": 0.008199, "end_time": "2024-01-18T18:28:52.698717", "exception": false, "start_time": "2024-01-18T18:28:52.690518", "status": "completed" }, "tags": [] }, "source": [ "## ADF Diagnostics In Jupyter\n", "This notebook will run the Atmospheric Diagnostic Framework using the settings in a config.yaml file in your ADF directory. \n", "\n", "Note that it was developed to run on Cheyenne/Caspar *with the NPL (conda) kernel*" ] }, { "cell_type": "markdown", "id": "7eea8d1a-d6a7-4464-bd6d-8194aa2368d0", "metadata": { "papermill": { "duration": 0.007889, "end_time": "2024-01-18T18:28:52.713814", "exception": false, "start_time": "2024-01-18T18:28:52.705925", "status": "completed" }, "tags": [] }, "source": [ "### Setup\n", "#### Required packages" ] }, { "cell_type": "code", "execution_count": 1, "id": "4d0264e2-c116-4e18-af33-0ce3adabcd60", "metadata": { "execution": { "iopub.execute_input": "2024-01-18T18:28:52.728992Z", "iopub.status.busy": "2024-01-18T18:28:52.728709Z", "iopub.status.idle": "2024-01-18T18:28:52.735091Z", "shell.execute_reply": "2024-01-18T18:28:52.734490Z" }, "papermill": { "duration": 0.01585, "end_time": "2024-01-18T18:28:52.736503", "exception": false, "start_time": "2024-01-18T18:28:52.720653", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "import os.path\n", "from pathlib import Path\n", "import sys" ] }, { "cell_type": "markdown", "id": "6566766f-9d8f-4428-bf01-3c36a1ffeb63", "metadata": { "papermill": { "duration": 0.006731, "end_time": "2024-01-18T18:28:52.750227", "exception": false, "start_time": "2024-01-18T18:28:52.743496", "status": "completed" }, "tags": [] }, "source": [ "#### Paths" ] }, { "cell_type": "code", "execution_count": 2, "id": "9e627890-a0a9-42d9-bb23-302abfedd944", "metadata": { "execution": { "iopub.execute_input": "2024-01-18T18:28:52.765152Z", "iopub.status.busy": "2024-01-18T18:28:52.764809Z", "iopub.status.idle": "2024-01-18T18:28:52.767425Z", "shell.execute_reply": "2024-01-18T18:28:52.767006Z" }, "papermill": { "duration": 0.011665, "end_time": "2024-01-18T18:28:52.768544", "exception": false, "start_time": "2024-01-18T18:28:52.756879", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "### default parameters\n", "# adf_path = \"../../externals/ADF\"\n", "# config_path = \".\"\n", "# config_fil_str = \"config_f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae_numcin3.001_vs_f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae.001.yaml\"\n" ] }, { "cell_type": "code", "execution_count": 3, "id": "5ec97fae-f7f3-40cc-adf0-3f6726753215", "metadata": { "execution": { "iopub.execute_input": "2024-01-18T18:28:52.783884Z", "iopub.status.busy": "2024-01-18T18:28:52.783609Z", "iopub.status.idle": "2024-01-18T18:28:52.786297Z", "shell.execute_reply": "2024-01-18T18:28:52.785794Z" }, "papermill": { "duration": 0.012093, "end_time": "2024-01-18T18:28:52.787517", "exception": false, "start_time": "2024-01-18T18:28:52.775424", "status": "completed" }, "tags": [ "parameters" ] }, "outputs": [], "source": [ "# cell to insert parameters" ] }, { "cell_type": "code", "execution_count": 4, "id": "6027e614", "metadata": { "execution": { "iopub.execute_input": "2024-01-18T18:28:52.802969Z", "iopub.status.busy": "2024-01-18T18:28:52.802698Z", "iopub.status.idle": "2024-01-18T18:28:52.805739Z", "shell.execute_reply": "2024-01-18T18:28:52.805315Z" }, "papermill": { "duration": 0.012161, "end_time": "2024-01-18T18:28:52.806746", "exception": false, "start_time": "2024-01-18T18:28:52.794585", "status": "completed" }, "tags": [ "injected-parameters" ] }, "outputs": [], "source": [ "# Parameters\n", "test_global_param = \"hello\"\n", "sname = \"adf-quick-run\"\n", "adf_path = \"../../externals/ADF\"\n", "config_path = \".\"\n", "config_fil_str = \"config_f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae.001.yaml\"\n", "subset_kwargs = {}\n", "product = \"/glade/u/home/hannay/CUPiD/examples/adf-mom6/computed_notebooks/adf-quick-run/adf_quick_run.ipynb\"\n" ] }, { "cell_type": "markdown", "id": "a88e305c-5473-4de6-9aa5-bf674ecd899f", "metadata": { "papermill": { "duration": 0.007103, "end_time": "2024-01-18T18:28:52.821410", "exception": false, "start_time": "2024-01-18T18:28:52.814307", "status": "completed" }, "tags": [] }, "source": [ "#### All path processing:\n" ] }, { "cell_type": "code", "execution_count": 5, "id": "66a55cfa-2d81-4298-8623-4ceaf3c0fb1f", "metadata": { "execution": { "iopub.execute_input": "2024-01-18T18:28:52.836706Z", "iopub.status.busy": "2024-01-18T18:28:52.836187Z", "iopub.status.idle": "2024-01-18T18:28:52.840525Z", "shell.execute_reply": "2024-01-18T18:28:52.839847Z" }, "papermill": { "duration": 0.013457, "end_time": "2024-01-18T18:28:52.841842", "exception": false, "start_time": "2024-01-18T18:28:52.828385", "status": "completed" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "current working directory = /glade/u/home/hannay/CUPiD/examples/nblibrary\n", "ADF path = ../../externals/ADF\n" ] } ], "source": [ "# Determine ADF directory path\n", "# If it is in your cwd, set adf_path = local_path, \n", "# otherwise set adf_path appropriately\n", "\n", "local_path = os.path.abspath('')\n", "\n", "# Set up the ADF for your location/user name\n", "#user = \"richling\" \n", "#adf_path = f\"/glade/work/{user}/ADF/\"\n", "\n", "print(f\"current working directory = {local_path}\")\n", "print(f\"ADF path = {adf_path}\")" ] }, { "cell_type": "code", "execution_count": 6, "id": "1689b448-daf6-44ca-9c9e-b1345490b552", "metadata": { "execution": { "iopub.execute_input": "2024-01-18T18:28:52.856609Z", "iopub.status.busy": "2024-01-18T18:28:52.856328Z", "iopub.status.idle": "2024-01-18T18:28:52.859544Z", "shell.execute_reply": "2024-01-18T18:28:52.859142Z" }, "papermill": { "duration": 0.011782, "end_time": "2024-01-18T18:28:52.860528", "exception": false, "start_time": "2024-01-18T18:28:52.848746", "status": "completed" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The lib scripts live here, right? ../../externals/ADF/lib\n" ] } ], "source": [ "#set path to ADF lib\n", "lib_path = os.path.join(adf_path,\"lib\")\n", "print(f\"The lib scripts live here, right? {lib_path}\")\n", "\n", "#Add paths to python path:\n", "sys.path.append(lib_path)" ] }, { "cell_type": "code", "execution_count": 7, "id": "f927cc3e-7fa9-4347-b44e-956c7ebdc742", "metadata": { "execution": { "iopub.execute_input": "2024-01-18T18:28:52.875881Z", "iopub.status.busy": "2024-01-18T18:28:52.875556Z", "iopub.status.idle": "2024-01-18T18:28:52.878880Z", "shell.execute_reply": "2024-01-18T18:28:52.878412Z" }, "papermill": { "duration": 0.012108, "end_time": "2024-01-18T18:28:52.879878", "exception": false, "start_time": "2024-01-18T18:28:52.867770", "status": "completed" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The plotting scripts live here, right? ../../externals/ADF/scripts/plotting\n" ] } ], "source": [ "#set path to ADF plotting scripts directory\n", "plotting_scripts_path = os.path.join(adf_path,\"scripts\",\"plotting\")\n", "print(f\"The plotting scripts live here, right? {plotting_scripts_path}\")\n", "\n", "#Add paths to python path:\n", "sys.path.append(plotting_scripts_path)" ] }, { "cell_type": "markdown", "id": "159be7f2-8593-483a-b200-daf8c3c992c8", "metadata": { "papermill": { "duration": 0.007137, "end_time": "2024-01-18T18:28:52.894321", "exception": false, "start_time": "2024-01-18T18:28:52.887184", "status": "completed" }, "tags": [] }, "source": [ "#### Import config file into ADF object\n", "If there are errors, here, it is likely due to path errors above" ] }, { "cell_type": "code", "execution_count": 8, "id": "cd4918d2-dcc0-417b-8867-d368c4cb1d78", "metadata": { "execution": { "iopub.execute_input": "2024-01-18T18:28:52.909785Z", "iopub.status.busy": "2024-01-18T18:28:52.909504Z", "iopub.status.idle": "2024-01-18T18:28:52.912269Z", "shell.execute_reply": "2024-01-18T18:28:52.911768Z" }, "papermill": { "duration": 0.011744, "end_time": "2024-01-18T18:28:52.913276", "exception": false, "start_time": "2024-01-18T18:28:52.901532", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "config_file=os.path.join(config_path,config_fil_str)\n" ] }, { "cell_type": "code", "execution_count": 9, "id": "f553607f-cd31-4aa3-8142-4959b3569a1a", "metadata": { "execution": { "iopub.execute_input": "2024-01-18T18:28:52.928878Z", "iopub.status.busy": "2024-01-18T18:28:52.928594Z", "iopub.status.idle": "2024-01-18T18:29:16.635090Z", "shell.execute_reply": "2024-01-18T18:29:16.634520Z" }, "papermill": { "duration": 23.716148, "end_time": "2024-01-18T18:29:16.636600", "exception": false, "start_time": "2024-01-18T18:28:52.920452", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "#import ADF diagnostics object\n", "from adf_diag import AdfDiag\n", "\n", "# If this fails, check your paths output in the cells above,\n", "# and that you are running the NPL (conda) Kernel\n", "# You can see all the paths being examined by un-commenting the following:\n", "#sys.path" ] }, { "cell_type": "code", "execution_count": 10, "id": "4ac46243-f980-41e1-9f8c-8d8ad361bb89", "metadata": { "execution": { "iopub.execute_input": "2024-01-18T18:29:16.653880Z", "iopub.status.busy": "2024-01-18T18:29:16.653389Z", "iopub.status.idle": "2024-01-18T18:29:16.944855Z", "shell.execute_reply": "2024-01-18T18:29:16.944245Z" }, "papermill": { "duration": 0.301196, "end_time": "2024-01-18T18:29:16.946134", "exception": false, "start_time": "2024-01-18T18:29:16.644938", "status": "completed" }, "tags": [] }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#Initialize ADF object\n", "adf = AdfDiag(config_file)\n", "adf" ] }, { "cell_type": "markdown", "id": "c7d266a8-f006-468d-96d5-51d9a93dd6dd", "metadata": { "papermill": { "duration": 0.006983, "end_time": "2024-01-18T18:29:16.960582", "exception": false, "start_time": "2024-01-18T18:29:16.953599", "status": "completed" }, "tags": [] }, "source": [ "### ADF Standard Work Flow" ] }, { "cell_type": "markdown", "id": "1b1d075b-232d-4466-a6be-192c457ae5a9", "metadata": { "papermill": { "duration": 0.007568, "end_time": "2024-01-18T18:29:16.975948", "exception": false, "start_time": "2024-01-18T18:29:16.968380", "status": "completed" }, "tags": [] }, "source": [ "#### Calculate the Time Series files\n", "\n", "* NOTE: If not comparing against observations, you must run _create_time_series()_ again with baseline flag" ] }, { "cell_type": "code", "execution_count": 11, "id": "5f056e6d-5828-434d-b70b-f60627f30ba1", "metadata": { "execution": { "iopub.execute_input": "2024-01-18T18:29:16.992673Z", "iopub.status.busy": "2024-01-18T18:29:16.992322Z", "iopub.status.idle": "2024-01-18T18:29:29.838570Z", "shell.execute_reply": "2024-01-18T18:29:29.837842Z" }, "papermill": { "duration": 12.856304, "end_time": "2024-01-18T18:29:29.839809", "exception": false, "start_time": "2024-01-18T18:29:16.983505", "status": "completed" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", " Generating CAM time series files...\n", "\t Processing time series for case 'b.e23_alpha16b.BLT1850.ne30_t232.054' :\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "WARNING: AODDUSTdn is not in the file /glade/campaign/cesm/development/cross-wg/diagnostic_framework/CESM_output_for_testing/b.e23_alpha16b.BLT1850.ne30_t232.054/atm/hist/b.e23_alpha16b.BLT1850.ne30_t232.054.cam.h0.0091-01.nc. No time series will be generated.\n", "WARNING: TROP_T is not in the file /glade/campaign/cesm/development/cross-wg/diagnostic_framework/CESM_output_for_testing/b.e23_alpha16b.BLT1850.ne30_t232.054/atm/hist/b.e23_alpha16b.BLT1850.ne30_t232.054.cam.h0.0091-01.nc. No time series will be generated.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " ...CAM time series file generation has finished successfully.\n", "\n", " Generating CAM time series files...\n", "\t Processing time series for case 'f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae.001' :\n", "WARNING: AODDUSTdn is not in the file /glade/campaign/cesm/development/cross-wg/diagnostic_framework/CESM_output_for_testing/f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae.001/atm/hist/f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae.001.cam.h0.1995-01.nc. No time series will be generated.\n", "WARNING: TROP_T is not in the file /glade/campaign/cesm/development/cross-wg/diagnostic_framework/CESM_output_for_testing/f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae.001/atm/hist/f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae.001.cam.h0.1995-01.nc. No time series will be generated.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " ...CAM time series file generation has finished successfully.\n" ] } ], "source": [ "#Create model time series.\n", "adf.create_time_series()\n", "\n", "#Create model baseline time series (if needed):\n", "if not adf.compare_obs:\n", " adf.create_time_series(baseline=True)" ] }, { "cell_type": "markdown", "id": "4ec72ce9-8167-435c-8334-728e2df24a01", "metadata": { "papermill": { "duration": 0.007226, "end_time": "2024-01-18T18:29:29.855586", "exception": false, "start_time": "2024-01-18T18:29:29.848360", "status": "completed" }, "tags": [] }, "source": [ "#### Calculate the Climo files\n", "\n", "* NOTE: Do not need to specify or repeat for baseline case unlike time series generation" ] }, { "cell_type": "code", "execution_count": 12, "id": "85a611c7-a90b-4d24-a518-046407564e35", "metadata": { "execution": { "iopub.execute_input": "2024-01-18T18:29:29.873107Z", "iopub.status.busy": "2024-01-18T18:29:29.872596Z", "iopub.status.idle": "2024-01-18T18:29:30.272078Z", "shell.execute_reply": "2024-01-18T18:29:30.271504Z" }, "papermill": { "duration": 0.41003, "end_time": "2024-01-18T18:29:30.273163", "exception": false, "start_time": "2024-01-18T18:29:29.863133", "status": "completed" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", " Calculating CAM climatologies...\n", "\t Calculating climatologies for case 'b.e23_alpha16b.BLT1850.ne30_t232.054' :\n", "The input location searched was: /glade/campaign/cesm/development/cross-wg/diagnostic_framework/CESM_output_for_testing/b.e23_alpha16b.BLT1850.ne30_t232.054/91-101. The glob pattern was b.e23_alpha16b.BLT1850.ne30_t232.054*.AODDUSTdn.*nc.\n", "\t INFO: Found climo file and clobber is False, so skipping AODDUST and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping AODVIS and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping CLDHGH and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping CLDICE and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping CLDLIQ and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping CLDLOW and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping CLDMED and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping CLDTOT and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping CLOUD and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping FLNS and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping FLNT and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping FLNTC and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping FSNS and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping FSNT and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping FSNTC and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping LHFLX and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping LWCF and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping OMEGA500 and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping PBLH and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping PRECL and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping PRECT and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping PRECSL and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping PRECSC and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping PRECSC and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping PRECC and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping PS and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping PSL and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping QFLX and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping Q and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping RELHUM and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping SHFLX and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping SST and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping SWCF and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping T and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping TAUX and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping TAUY and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping TGCLDIWP and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping TGCLDLWP and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping TMQ and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping TREFHT and moving to next variable.\n", "The input location searched was: /glade/campaign/cesm/development/cross-wg/diagnostic_framework/CESM_output_for_testing/b.e23_alpha16b.BLT1850.ne30_t232.054/91-101. The glob pattern was b.e23_alpha16b.BLT1850.ne30_t232.054*.TROP_T.*nc.\n", "\t INFO: Found climo file and clobber is False, so skipping TS and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping U and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping U10 and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping ICEFRAC and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping OCNFRAC and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping LANDFRAC and moving to next variable.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Time series files for variable 'AODDUSTdn' not found. Script will continue to next variable.\n", "Time series files for variable 'TROP_T' not found. Script will continue to next variable.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\t Calculating climatologies for case 'f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae.001' :\n", "The input location searched was: /glade/campaign/cesm/development/cross-wg/diagnostic_framework/ADF-data/timeseries/f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae.001/1995-2005. The glob pattern was f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae.001*.AODDUSTdn.*nc.\n", "\t INFO: Found climo file and clobber is False, so skipping AODDUST and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping AODVIS and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping CLDHGH and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping CLDICE and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping CLDLIQ and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping CLDLOW and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping CLDMED and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping CLDTOT and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping CLOUD and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping FLNS and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping FLNT and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping FLNTC and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping FSNS and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping FSNT and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping FSNTC and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping LHFLX and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping LWCF and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping OMEGA500 and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping PBLH and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping PRECL and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping PRECT and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping PRECSL and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping PRECSC and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping PRECSC and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping PRECC and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping PS and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping PSL and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping QFLX and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping Q and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping RELHUM and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping SHFLX and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping SST and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping SWCF and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping T and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping TAUX and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping TAUY and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping TGCLDIWP and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping TGCLDLWP and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping TMQ and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping TREFHT and moving to next variable.\n", "The input location searched was: /glade/campaign/cesm/development/cross-wg/diagnostic_framework/ADF-data/timeseries/f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae.001/1995-2005. The glob pattern was f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae.001*.TROP_T.*nc.\n", "\t INFO: Found climo file and clobber is False, so skipping TS and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping U and moving to next variable.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\t INFO: Found climo file and clobber is False, so skipping U10 and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping ICEFRAC and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping OCNFRAC and moving to next variable.\n", "\t INFO: Found climo file and clobber is False, so skipping LANDFRAC and moving to next variable.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ " ...CAM climatologies have been calculated successfully.\n", "\n", " Generating CAM TEM diagnostics files...\n", "\t Processing TEM for case 'b.e23_alpha16b.BLT1850.ne30_t232.054' :\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\t INFO: Found TEM file and clobber is False, so moving to next case.\n", "\t Processing TEM for case 'f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae.001' :\n", "\t INFO: Found TEM file and clobber is False, so moving to next case.\n", " ...TEM variables have been calculated successfully.\n" ] } ], "source": [ "#Create model climatology (climo) files.\n", "adf.create_climo()" ] }, { "cell_type": "markdown", "id": "0dc28ffb-f501-4a42-8e21-cd8b993163ea", "metadata": { "papermill": { "duration": 0.007246, "end_time": "2024-01-18T18:29:30.288166", "exception": false, "start_time": "2024-01-18T18:29:30.280920", "status": "completed" }, "tags": [] }, "source": [ "#### Regrid the Climo files" ] }, { "cell_type": "code", "execution_count": 13, "id": "9673eada-6eeb-4c68-b59a-bd7baf62aca1", "metadata": { "execution": { "iopub.execute_input": "2024-01-18T18:29:30.304610Z", "iopub.status.busy": "2024-01-18T18:29:30.304184Z", "iopub.status.idle": "2024-01-18T18:29:41.178073Z", "shell.execute_reply": "2024-01-18T18:29:41.177433Z" }, "papermill": { "duration": 10.883657, "end_time": "2024-01-18T18:29:41.179187", "exception": false, "start_time": "2024-01-18T18:29:30.295530", "status": "completed" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", " Regridding CAM climatologies...\n", "\t Regridding case 'b.e23_alpha16b.BLT1850.ne30_t232.054' :\n", "\t - regridding PS (known targets: ['f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae.001'])\n", "\t Regridded file already exists, so skipping...\n", "\t - regridding LANDFRAC (known targets: ['f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae.001'])\n", "\t Regridded file already exists, so skipping...\n", "\t - regridding OCNFRAC (known targets: ['f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae.001'])\n", "\t Regridded file already exists, so skipping...\n", "\t - regridding AODDUSTdn (known targets: ['f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae.001'])\n", "\t - regridding AODDUSTdn failed, no file. Continuing to next variable.\n", "\t - regridding AODDUST (known targets: ['f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae.001'])\n", "\t Regridded file already exists, so skipping...\n", "\t - regridding AODVIS (known targets: ['f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae.001'])\n", "\t Regridded file already exists, so skipping...\n", "\t - regridding CLDHGH (known targets: ['f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae.001'])\n", "\t Regridded file already exists, so skipping...\n", "\t - regridding CLDICE (known targets: ['f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae.001'])\n", "\t Regridded file already exists, so skipping...\n", "\t - regridding CLDLIQ (known targets: ['f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae.001'])\n", "\t Regridded file already exists, so skipping...\n", "\t - regridding CLDLOW (known targets: ['f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae.001'])\n", "\t Regridded file already exists, so skipping...\n", "\t - regridding CLDMED (known targets: ['f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae.001'])\n", "\t Regridded file already exists, so skipping...\n", "\t - regridding CLDTOT (known targets: ['f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae.001'])\n", "\t Regridded file already exists, so skipping...\n", "\t - regridding CLOUD (known targets: ['f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae.001'])\n", "\t Regridded file already exists, so skipping...\n", "\t - regridding FLNS (known targets: ['f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae.001'])\n", "\t Regridded file already exists, so skipping...\n", "\t - regridding FLNT (known targets: ['f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae.001'])\n", "\t Regridded file already exists, so skipping...\n", "\t - regridding FLNTC (known targets: ['f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae.001'])\n", "\t Regridded file already exists, so skipping...\n", "\t - regridding FSNS (known targets: ['f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae.001'])\n", "\t Regridded file already exists, so skipping...\n", "\t - regridding FSNT (known targets: ['f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae.001'])\n", "\t Regridded file already exists, so skipping...\n", "\t - regridding FSNTC (known targets: ['f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae.001'])\n", "\t Regridded file already exists, so skipping...\n", "\t - regridding LHFLX (known targets: ['f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae.001'])\n", "\t Regridded file already exists, so skipping...\n", "\t - regridding LWCF (known targets: ['f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae.001'])\n", "\t Regridded file already exists, so skipping...\n", "\t - regridding OMEGA500 (known targets: ['f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae.001'])\n", "\t Regridded file already exists, so skipping...\n", "\t - regridding PBLH (known targets: ['f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae.001'])\n", "\t Regridded file already exists, so skipping...\n", "\t - regridding PRECL (known targets: ['f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae.001'])\n", "\t Regridded file already exists, so skipping...\n", "\t - regridding PRECT (known targets: ['f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae.001'])\n", "\t Regridded file already exists, so skipping...\n", "\t - regridding PRECSL (known targets: ['f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae.001'])\n", "\t Regridded file already exists, so skipping...\n", "\t - regridding PRECSC (known targets: ['f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae.001'])\n", "\t Regridded file already exists, so skipping...\n", "\t - regridding PRECSC (known targets: ['f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae.001'])\n", "\t Regridded file already exists, so skipping...\n", "\t - regridding PRECC (known targets: ['f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae.001'])\n", "\t Regridded file already exists, so skipping...\n", "\t - regridding PSL (known targets: ['f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae.001'])\n", "\t Regridded file already exists, so skipping...\n", "\t - regridding QFLX (known targets: ['f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae.001'])\n", "\t Regridded file already exists, so skipping...\n", "\t - regridding Q (known targets: ['f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae.001'])\n", "\t Regridded file already exists, so skipping...\n", "\t - regridding RELHUM (known targets: ['f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae.001'])\n", "\t Regridded file already exists, so skipping...\n", "\t - regridding SHFLX (known targets: ['f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae.001'])\n", "\t Regridded file already exists, so skipping...\n", "\t - regridding SST (known targets: ['f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae.001'])\n", "\t Regridded file already exists, so skipping...\n", "\t - regridding SWCF (known targets: ['f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae.001'])\n", "\t Regridded file already exists, so skipping...\n", "\t - regridding T (known targets: ['f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae.001'])\n", "\t Regridded file already exists, so skipping...\n", "\t - regridding TAUX (known targets: ['f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae.001'])\n", "\t Regridded file already exists, so skipping...\n", "\t - regridding TAUY (known targets: ['f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae.001'])\n", "\t Regridded file already exists, so skipping...\n", "\t - regridding TGCLDIWP (known targets: ['f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae.001'])\n", "\t Regridded file already exists, so skipping...\n", "\t - regridding TGCLDLWP (known targets: ['f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae.001'])\n", "\t Regridded file already exists, so skipping...\n", "\t - regridding TMQ (known targets: ['f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae.001'])\n", "\t Regridded file already exists, so skipping...\n", "\t - regridding TREFHT (known targets: ['f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae.001'])\n", "\t Regridded file already exists, so skipping...\n", "\t - regridding TROP_T (known targets: ['f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae.001'])\n", "\t - regridding TROP_T failed, no file. Continuing to next variable.\n", "\t - regridding TS (known targets: ['f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae.001'])\n", "\t Regridded file already exists, so skipping...\n", "\t - regridding U (known targets: ['f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae.001'])\n", "\t Regridded file already exists, so skipping...\n", "\t - regridding U10 (known targets: ['f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae.001'])\n", "\t Regridded file already exists, so skipping...\n", "\t - regridding ICEFRAC (known targets: ['f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae.001'])\n", "\t Regridded file already exists, so skipping...\n", " ...CAM climatologies have been regridded successfully.\n" ] } ], "source": [ "#Regrid model climatology files to match either\n", "#observations or CAM baseline climatologies.\n", "#This call uses the \"regridding_scripts\" specified in the config file:\n", "adf.regrid_climo()" ] }, { "cell_type": "markdown", "id": "56434dfe-187d-43a8-967c-5cf027e1b05b", "metadata": { "papermill": { "duration": 0.008808, "end_time": "2024-01-18T18:29:41.197715", "exception": false, "start_time": "2024-01-18T18:29:41.188907", "status": "completed" }, "tags": [] }, "source": [ "#### Run statistics on Time Series files" ] }, { "cell_type": "markdown", "id": "e40c90be-b041-46b6-b268-3f3f02ea855a", "metadata": { "papermill": { "duration": 0.007796, "end_time": "2024-01-18T18:29:41.214098", "exception": false, "start_time": "2024-01-18T18:29:41.206302", "status": "completed" }, "tags": [] }, "source": [ "#Perform analyses on the simulation(s).\n", "#This call uses the \"analysis_scripts\" specified in the config file:\n", "adf.perform_analyses()" ] }, { "cell_type": "markdown", "id": "e12c5b56-2a54-49c9-816c-9d447d511a9d", "metadata": { "papermill": { "duration": 0.007743, "end_time": "2024-01-18T18:29:41.230164", "exception": false, "start_time": "2024-01-18T18:29:41.222421", "status": "completed" }, "tags": [] }, "source": [ "#### Create Plots" ] }, { "cell_type": "markdown", "id": "31c8782b-1492-4260-bfea-48a69169e30a", "metadata": { "papermill": { "duration": 0.011356, "end_time": "2024-01-18T18:29:41.249462", "exception": false, "start_time": "2024-01-18T18:29:41.238106", "status": "completed" }, "tags": [] }, "source": [ "#Create plots.\n", "#This call uses the \"plotting_scripts\" specified in the config file:\n", "adf.create_plots()" ] }, { "cell_type": "markdown", "id": "898b1090-aad9-45b2-a0f2-2882ae8f9834", "metadata": { "papermill": { "duration": 0.00771, "end_time": "2024-01-18T18:29:41.264722", "exception": false, "start_time": "2024-01-18T18:29:41.257012", "status": "completed" }, "tags": [] }, "source": [ "#### Generate HTML files\n", "\n", "* This will create html files that you can view via webbrower either:\n", " - in Casper/Cheyenne\n", " - pushing it to CGD projects webpage through Tungsten" ] }, { "cell_type": "markdown", "id": "f391772b-8f17-40bc-b87d-d9b27b0a8bba", "metadata": { "papermill": { "duration": 0.007785, "end_time": "2024-01-18T18:29:41.280401", "exception": false, "start_time": "2024-01-18T18:29:41.272616", "status": "completed" }, "tags": [] }, "source": [ "#Create website.\n", "if adf.create_html:\n", " adf.create_website()" ] }, { "cell_type": "markdown", "id": "11d4e7cd-49f5-4a68-85a1-ad18fa2a6706", "metadata": { "papermill": { "duration": 0.010355, "end_time": "2024-01-18T18:29:41.298349", "exception": false, "start_time": "2024-01-18T18:29:41.287994", "status": "completed" }, "tags": [] }, "source": [ "---" ] }, { "cell_type": "markdown", "id": "29b2605d-519c-4305-ab2b-47c5c053a00c", "metadata": { "papermill": { "duration": 0.008116, "end_time": "2024-01-18T18:29:41.314895", "exception": false, "start_time": "2024-01-18T18:29:41.306779", "status": "completed" }, "tags": [] }, "source": [ "## ADF Helpful Methods and Structures \n", "\n", "Demonstration of a few methods to get information from the ADF object" ] }, { "cell_type": "markdown", "id": "cdd8063d-195b-42bc-99a4-37ea0f9a62a0", "metadata": { "papermill": { "duration": 0.008294, "end_time": "2024-01-18T18:29:41.331765", "exception": false, "start_time": "2024-01-18T18:29:41.323471", "status": "completed" }, "tags": [] }, "source": [ "#### List all adf object related methods" ] }, { "cell_type": "code", "execution_count": 14, "id": "d3d9703e-5053-4a3f-9745-2a6cddfa4f6c", "metadata": { "execution": { "iopub.execute_input": "2024-01-18T18:29:41.354573Z", "iopub.status.busy": "2024-01-18T18:29:41.353829Z", "iopub.status.idle": "2024-01-18T18:29:41.359741Z", "shell.execute_reply": "2024-01-18T18:29:41.359198Z" }, "papermill": { "duration": 0.022267, "end_time": "2024-01-18T18:29:41.362043", "exception": false, "start_time": "2024-01-18T18:29:41.339776", "status": "completed" }, "tags": [] }, "outputs": [ { "data": { "text/plain": [ "['_AdfBase__debug_log',\n", " '_AdfConfig__config_dict',\n", " '_AdfConfig__create_search_dict',\n", " '_AdfConfig__expand_yaml_var_ref',\n", " '_AdfConfig__kword_pattern',\n", " '_AdfConfig__search_dict',\n", " '_AdfDiag__analysis_scripts',\n", " '_AdfDiag__cvdp_info',\n", " '_AdfDiag__diag_scripts_caller',\n", " '_AdfDiag__function_caller',\n", " '_AdfDiag__plotting_scripts',\n", " '_AdfDiag__regridding_scripts',\n", " '_AdfDiag__time_averaging_scripts',\n", " '_AdfInfo__base_nickname',\n", " '_AdfInfo__basic_info',\n", " '_AdfInfo__cam_bl_climo_info',\n", " '_AdfInfo__cam_climo_info',\n", " '_AdfInfo__compare_obs',\n", " '_AdfInfo__diag_var_list',\n", " '_AdfInfo__eyear_baseline',\n", " '_AdfInfo__eyears',\n", " '_AdfInfo__num_cases',\n", " '_AdfInfo__num_procs',\n", " '_AdfInfo__plot_location',\n", " '_AdfInfo__syear_baseline',\n", " '_AdfInfo__syears',\n", " '_AdfInfo__test_nicknames',\n", " '_AdfObs__var_obs_dict',\n", " '_AdfObs__variable_defaults',\n", " '_AdfWeb__case_web_paths',\n", " '_AdfWeb__plot_type_multi',\n", " '_AdfWeb__plot_type_order',\n", " '_AdfWeb__website_data',\n", " '__class__',\n", " '__delattr__',\n", " '__dict__',\n", " '__dir__',\n", " '__doc__',\n", " '__eq__',\n", " '__format__',\n", " '__ge__',\n", " '__getattribute__',\n", " '__getstate__',\n", " '__gt__',\n", " '__hash__',\n", " '__init__',\n", " '__init_subclass__',\n", " '__le__',\n", " '__lt__',\n", " '__module__',\n", " '__ne__',\n", " '__new__',\n", " '__reduce__',\n", " '__reduce_ex__',\n", " '__repr__',\n", " '__setattr__',\n", " '__sizeof__',\n", " '__str__',\n", " '__subclasshook__',\n", " '__weakref__',\n", " 'add_diag_var',\n", " 'add_website_data',\n", " 'baseline_climo_dict',\n", " 'basic_info_dict',\n", " 'cam_climo_dict',\n", " 'case_nicknames',\n", " 'climo_yrs',\n", " 'compare_obs',\n", " 'create_climo',\n", " 'create_html',\n", " 'create_plots',\n", " 'create_time_series',\n", " 'create_website',\n", " 'debug_log',\n", " 'derive_variables',\n", " 'diag_var_list',\n", " 'end_diag_fail',\n", " 'expand_references',\n", " 'get_baseline_info',\n", " 'get_basic_info',\n", " 'get_cam_info',\n", " 'get_cvdp_info',\n", " 'num_cases',\n", " 'num_procs',\n", " 'perform_analyses',\n", " 'plot_location',\n", " 'plotting_scripts',\n", " 'read_config_var',\n", " 'regrid_climo',\n", " 'setup_run_cvdp',\n", " 'var_obs_dict',\n", " 'variable_defaults']" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dir(adf)" ] }, { "cell_type": "code", "execution_count": 15, "id": "b6f3971d-14de-4d7d-996b-39e4bda99d1d", "metadata": { "execution": { "iopub.execute_input": "2024-01-18T18:29:41.385919Z", "iopub.status.busy": "2024-01-18T18:29:41.385532Z", "iopub.status.idle": "2024-01-18T18:29:41.389919Z", "shell.execute_reply": "2024-01-18T18:29:41.389369Z" }, "papermill": { "duration": 0.014555, "end_time": "2024-01-18T18:29:41.391106", "exception": false, "start_time": "2024-01-18T18:29:41.376551", "status": "completed" }, "tags": [] }, "outputs": [ { "data": { "text/plain": [ "8" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "adf.num_procs" ] }, { "cell_type": "markdown", "id": "4583376e-6ac3-4f0f-81d0-f4e92ce13124", "metadata": { "papermill": { "duration": 0.008515, "end_time": "2024-01-18T18:29:41.407553", "exception": false, "start_time": "2024-01-18T18:29:41.399038", "status": "completed" }, "tags": [] }, "source": [ "### Get information from the subsections of the config yaml file\n", "\n", "Remember the different sub-sections?" ] }, { "cell_type": "markdown", "id": "ad924a19-81ba-49dc-8e3b-2bb44f2b5114", "metadata": { "papermill": { "duration": 0.008573, "end_time": "2024-01-18T18:29:41.424413", "exception": false, "start_time": "2024-01-18T18:29:41.415840", "status": "completed" }, "tags": [] }, "source": [ "#### Basic Info Section" ] }, { "cell_type": "code", "execution_count": 16, "id": "e3904cb9-a618-43af-9605-e6fcd4e7fd59", "metadata": { "execution": { "iopub.execute_input": "2024-01-18T18:29:41.443169Z", "iopub.status.busy": "2024-01-18T18:29:41.442765Z", "iopub.status.idle": "2024-01-18T18:29:41.447240Z", "shell.execute_reply": "2024-01-18T18:29:41.446618Z" }, "papermill": { "duration": 0.015215, "end_time": "2024-01-18T18:29:41.448361", "exception": false, "start_time": "2024-01-18T18:29:41.433146", "status": "completed" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "compare_obs: False\n", "hist_str: cam.h0\n", "create_html: True\n", "obs_data_loc: /glade/work/nusbaume/SE_projects/model_diagnostics/ADF_obs\n", "cam_regrid_loc: ${diag_loc}regrid/\n", "cam_overwrite_regrid: False\n", "cam_diag_plot_loc: ${diag_loc}diag-plot/\n", "use_defaults: True\n", "plot_press_levels: [200, 850]\n", "weight_season: True\n", "num_procs: 8\n", "redo_plot: False\n" ] } ], "source": [ "basic_info_dict = adf.read_config_var(\"diag_basic_info\")\n", "\n", "for key,val in basic_info_dict.items():\n", " print(f\"{key}: {val}\")" ] }, { "cell_type": "markdown", "id": "e8b1de2f-2a36-472f-b0ae-517845245473", "metadata": { "papermill": { "duration": 0.008462, "end_time": "2024-01-18T18:29:41.465058", "exception": false, "start_time": "2024-01-18T18:29:41.456596", "status": "completed" }, "tags": [] }, "source": [ "#### Test Case Info Section" ] }, { "cell_type": "code", "execution_count": 17, "id": "cccdb0b2-ba50-45d5-8ce5-af6a9161c762", "metadata": { "execution": { "iopub.execute_input": "2024-01-18T18:29:41.482619Z", "iopub.status.busy": "2024-01-18T18:29:41.482255Z", "iopub.status.idle": "2024-01-18T18:29:41.486236Z", "shell.execute_reply": "2024-01-18T18:29:41.485732Z" }, "papermill": { "duration": 0.014115, "end_time": "2024-01-18T18:29:41.487237", "exception": false, "start_time": "2024-01-18T18:29:41.473122", "status": "completed" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "calc_cam_climo: True\n", "cam_overwrite_climo: False\n", "cam_case_name: b.e23_alpha16b.BLT1850.ne30_t232.054\n", "cam_hist_loc: /glade/campaign/cesm/development/cross-wg/diagnostic_framework/CESM_output_for_testing/${diag_cam_climo.cam_case_name}/atm/hist/\n", "yrs: ${diag_cam_climo.start_year}-${diag_cam_climo.end_year}\n", "cam_climo_loc: ${climo_loc}${diag_cam_climo.cam_case_name}/atm/proc/${diag_cam_climo.yrs}/\n", "start_year: 91\n", "end_year: 101\n", "cam_ts_done: False\n", "cam_ts_save: True\n", "cam_overwrite_ts: False\n", "cam_ts_loc: ${ts_loc}${diag_cam_climo.cam_case_name}/${diag_cam_climo.yrs}/\n", "case_nickname: ${diag_cam_climo.cam_case_name}\n" ] } ], "source": [ "test_dict = adf.read_config_var(\"diag_cam_climo\")\n", "\n", "for key,val in test_dict.items():\n", " print(f\"{key}: {val}\")" ] }, { "cell_type": "markdown", "id": "33a7da55-13a0-49a6-988b-ab7451b49dac", "metadata": { "papermill": { "duration": 0.008434, "end_time": "2024-01-18T18:29:41.504220", "exception": false, "start_time": "2024-01-18T18:29:41.495786", "status": "completed" }, "tags": [] }, "source": [ "#### Baseline Case Info Section" ] }, { "cell_type": "code", "execution_count": 18, "id": "9cf8b802-300f-41f6-b6ad-32c4f08c463f", "metadata": { "execution": { "iopub.execute_input": "2024-01-18T18:29:41.523158Z", "iopub.status.busy": "2024-01-18T18:29:41.522380Z", "iopub.status.idle": "2024-01-18T18:29:41.526388Z", "shell.execute_reply": "2024-01-18T18:29:41.525895Z" }, "papermill": { "duration": 0.014846, "end_time": "2024-01-18T18:29:41.527486", "exception": false, "start_time": "2024-01-18T18:29:41.512640", "status": "completed" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "calc_cam_climo: True\n", "cam_overwrite_climo: False\n", "cam_case_name: f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae.001\n", "cam_hist_loc: /glade/campaign/cesm/development/cross-wg/diagnostic_framework/CESM_output_for_testing/${diag_cam_baseline_climo.cam_case_name}/atm/hist/\n", "yrs: ${diag_cam_baseline_climo.start_year}-${diag_cam_baseline_climo.end_year}\n", "cam_climo_loc: /glade/campaign/cesm/development/cross-wg/diagnostic_framework/ADF-data/climos/${diag_cam_baseline_climo.cam_case_name}/${diag_cam_baseline_climo.yrs}/\n", "start_year: 1995\n", "end_year: 2005\n", "cam_ts_done: False\n", "cam_ts_save: True\n", "cam_overwrite_ts: False\n", "cam_ts_loc: /glade/campaign/cesm/development/cross-wg/diagnostic_framework/ADF-data/timeseries/${diag_cam_baseline_climo.cam_case_name}/${diag_cam_baseline_climo.yrs}/\n", "case_nickname: ${diag_cam_baseline_climo.cam_case_name}\n" ] } ], "source": [ "baseline_dict = adf.read_config_var(\"diag_cam_baseline_climo\")\n", "\n", "for key,val in baseline_dict.items():\n", " print(f\"{key}: {val}\")" ] }, { "cell_type": "markdown", "id": "b878fc07-a39a-4ef6-a04c-499280d3d6cb", "metadata": { "papermill": { "duration": 0.00887, "end_time": "2024-01-18T18:29:41.545240", "exception": false, "start_time": "2024-01-18T18:29:41.536370", "status": "completed" }, "tags": [] }, "source": [ "### Get information not directly from the subsections of the config yaml file\n", "\n", "This just represents a different way to get some ADF info" ] }, { "cell_type": "markdown", "id": "721ba2f9-29c8-40ee-a813-181194f46b40", "metadata": { "papermill": { "duration": 0.00868, "end_time": "2024-01-18T18:29:41.562248", "exception": false, "start_time": "2024-01-18T18:29:41.553568", "status": "completed" }, "tags": [] }, "source": [ "#### Get Case/Baseline Names\n", "\n", "This is a different wat to get case names than from the *adf.read_config_var()* method that read in data from sub-sections above" ] }, { "cell_type": "code", "execution_count": 19, "id": "55b72978-0af4-4d04-87d6-0c56de58400b", "metadata": { "execution": { "iopub.execute_input": "2024-01-18T18:29:41.581653Z", "iopub.status.busy": "2024-01-18T18:29:41.581263Z", "iopub.status.idle": "2024-01-18T18:29:41.585611Z", "shell.execute_reply": "2024-01-18T18:29:41.584999Z" }, "papermill": { "duration": 0.015861, "end_time": "2024-01-18T18:29:41.586921", "exception": false, "start_time": "2024-01-18T18:29:41.571060", "status": "completed" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "['b.e23_alpha16b.BLT1850.ne30_t232.054']\n", "f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae.001\n" ] } ], "source": [ "#List of case names (list by default)\n", "case_names = adf.get_cam_info(\"cam_case_name\",required=True)\n", "print(case_names)\n", "\n", "base_name = adf.get_baseline_info(\"cam_case_name\")\n", "print(base_name)" ] }, { "cell_type": "markdown", "id": "898f441c-b001-4165-a614-766183b638ed", "metadata": { "papermill": { "duration": 0.009086, "end_time": "2024-01-18T18:29:41.604681", "exception": false, "start_time": "2024-01-18T18:29:41.595595", "status": "completed" }, "tags": [] }, "source": [ "#### Get Case/Baseline Climo file locations\n", "\n", "Here we are calling directly from the config file, no subsection " ] }, { "cell_type": "code", "execution_count": 20, "id": "77ba4bcb-70d7-47cd-a7c5-0b1827baaaf3", "metadata": { "execution": { "iopub.execute_input": "2024-01-18T18:29:41.623318Z", "iopub.status.busy": "2024-01-18T18:29:41.622936Z", "iopub.status.idle": "2024-01-18T18:29:41.627723Z", "shell.execute_reply": "2024-01-18T18:29:41.627166Z" }, "papermill": { "duration": 0.015435, "end_time": "2024-01-18T18:29:41.628856", "exception": false, "start_time": "2024-01-18T18:29:41.613421", "status": "completed" }, "tags": [] }, "outputs": [ { "data": { "text/plain": [ "(['/glade/campaign/cesm/development/cross-wg/diagnostic_framework/CESM_output_for_testing/b.e23_alpha16b.BLT1850.ne30_t232.054/atm/proc/91-101/'],\n", " '/glade/campaign/cesm/development/cross-wg/diagnostic_framework/ADF-data/climos/f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae.001/1995-2005/')" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "case_climo_loc = adf.get_cam_info('cam_climo_loc', required=True)\n", "base_climo_loc = adf.get_baseline_info(\"cam_climo_loc\")\n", "case_climo_loc,base_climo_loc" ] }, { "cell_type": "markdown", "id": "864e9b1f-fef8-4d45-94b6-5e4cc8e099c9", "metadata": { "papermill": { "duration": 0.016833, "end_time": "2024-01-18T18:29:41.654763", "exception": false, "start_time": "2024-01-18T18:29:41.637930", "status": "completed" }, "tags": [] }, "source": [ "#### Get Desired Variable Names\n", "\n", "Here we are calling directly from the config file, no subsection " ] }, { "cell_type": "code", "execution_count": 21, "id": "ff7a34b1-6795-46f3-a3b5-a40507b6aa52", "metadata": { "execution": { "iopub.execute_input": "2024-01-18T18:29:41.684197Z", "iopub.status.busy": "2024-01-18T18:29:41.683811Z", "iopub.status.idle": "2024-01-18T18:29:41.687691Z", "shell.execute_reply": "2024-01-18T18:29:41.687141Z" }, "papermill": { "duration": 0.0161, "end_time": "2024-01-18T18:29:41.688837", "exception": false, "start_time": "2024-01-18T18:29:41.672737", "status": "completed" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "['AODDUSTdn', 'AODDUST', 'AODVIS', 'CLDHGH', 'CLDICE', 'CLDLIQ', 'CLDLOW', 'CLDMED', 'CLDTOT', 'CLOUD', 'FLNS', 'FLNT', 'FLNTC', 'FSNS', 'FSNT', 'FSNTC', 'LHFLX', 'LWCF', 'OMEGA500', 'PBLH', 'PRECL', 'PRECT', 'PRECSL', 'PRECSC', 'PRECSC', 'PRECC', 'PS', 'PSL', 'QFLX', 'Q', 'RELHUM', 'SHFLX', 'SST', 'SWCF', 'T', 'TAUX', 'TAUY', 'TGCLDIWP', 'TGCLDLWP', 'TMQ', 'TREFHT', 'TROP_T', 'TS', 'U', 'U10', 'ICEFRAC', 'OCNFRAC', 'LANDFRAC']\n" ] } ], "source": [ "var_list = adf.diag_var_list\n", "print(var_list)" ] }, { "cell_type": "markdown", "id": "e8504642-fcfc-482c-b5a8-7494f9fde680", "metadata": { "papermill": { "duration": 0.008747, "end_time": "2024-01-18T18:29:41.706650", "exception": false, "start_time": "2024-01-18T18:29:41.697903", "status": "completed" }, "tags": [] }, "source": [ "#### Get variable defaults from adf_variable_defaults.yaml\n", "\n", "Take a look at what defaults are for TS" ] }, { "cell_type": "code", "execution_count": 22, "id": "a3a780fd-6234-4574-8535-ebf6e7bba3fc", "metadata": { "execution": { "iopub.execute_input": "2024-01-18T18:29:41.726181Z", "iopub.status.busy": "2024-01-18T18:29:41.725802Z", "iopub.status.idle": "2024-01-18T18:29:41.730431Z", "shell.execute_reply": "2024-01-18T18:29:41.729916Z" }, "papermill": { "duration": 0.015629, "end_time": "2024-01-18T18:29:41.731500", "exception": false, "start_time": "2024-01-18T18:29:41.715871", "status": "completed" }, "tags": [] }, "outputs": [ { "data": { "text/plain": [ "{'colormap': 'Blues',\n", " 'contour_levels_range': [220, 320, 5],\n", " 'diff_colormap': 'BrBG',\n", " 'diff_contour_range': [-10, 10, 1],\n", " 'scale_factor': 1,\n", " 'add_offset': 0,\n", " 'new_unit': 'K',\n", " 'mpl': {'colorbar': {'label': 'K'}},\n", " 'obs_file': 'ERAI_all_climo.nc',\n", " 'obs_name': 'ERAI',\n", " 'obs_var_name': 'TS',\n", " 'category': 'Surface variables'}" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "adf.variable_defaults[\"TS\"]" ] }, { "cell_type": "markdown", "id": "b2701110-87da-44be-8cc5-a67fe759870e", "metadata": { "papermill": { "duration": 0.008582, "end_time": "2024-01-18T18:29:41.748922", "exception": false, "start_time": "2024-01-18T18:29:41.740340", "status": "completed" }, "tags": [] }, "source": [ "---" ] }, { "cell_type": "markdown", "id": "4e847946-aed1-4226-be42-46b46fc945ea", "metadata": { "papermill": { "duration": 0.008907, "end_time": "2024-01-18T18:29:41.770125", "exception": false, "start_time": "2024-01-18T18:29:41.761218", "status": "completed" }, "tags": [] }, "source": [ "## Exploration of the Output Data\n", "\n", "Now that the ADF has created all the necessary timeseries/climo/regridded data let's run a quick set of functions to plot time series for RESTOM, TS, and ICEFRAC" ] }, { "cell_type": "markdown", "id": "5eddc165-065b-4874-a53d-0a53486c1817", "metadata": { "papermill": { "duration": 0.008673, "end_time": "2024-01-18T18:29:41.787331", "exception": false, "start_time": "2024-01-18T18:29:41.778658", "status": "completed" }, "tags": [] }, "source": [ "##### Let's grab the case names, time series locations, variable defaults dictionary and climo years" ] }, { "cell_type": "code", "execution_count": 23, "id": "001f31de-2897-4cfd-a7a2-a63a47b63827", "metadata": { "execution": { "iopub.execute_input": "2024-01-18T18:29:41.806476Z", "iopub.status.busy": "2024-01-18T18:29:41.806099Z", "iopub.status.idle": "2024-01-18T18:29:41.810165Z", "shell.execute_reply": "2024-01-18T18:29:41.809662Z" }, "papermill": { "duration": 0.015512, "end_time": "2024-01-18T18:29:41.811974", "exception": false, "start_time": "2024-01-18T18:29:41.796462", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "case_names = adf.get_cam_info('cam_case_name', required=True)\n", "case_names_len = len(case_names)\n", "data_name = adf.get_baseline_info('cam_case_name', required=False)\n", "\n", "case_ts_locs = adf.get_cam_info(\"cam_ts_loc\", required=True)\n", "data_ts_loc = adf.get_baseline_info(\"cam_ts_loc\", required=False)\n", "\n", "res = adf.variable_defaults # dict of variable-specific plot preferences\n", "# or an empty dictionary if use_defaults was not specified in YAML.\n", "\n", "start_year = adf.climo_yrs[\"syears\"]\n", "end_year = adf.climo_yrs[\"eyears\"]" ] }, { "cell_type": "markdown", "id": "40e35c52-2044-4677-8b7c-d8266bd19b20", "metadata": { "papermill": { "duration": 0.008744, "end_time": "2024-01-18T18:29:41.830988", "exception": false, "start_time": "2024-01-18T18:29:41.822244", "status": "completed" }, "tags": [] }, "source": [ "### Time Series Plotting Functions" ] }, { "cell_type": "code", "execution_count": 24, "id": "a123c21a-e27b-4b2b-b674-c77b7912d996", "metadata": { "execution": { "iopub.execute_input": "2024-01-18T18:29:41.850182Z", "iopub.status.busy": "2024-01-18T18:29:41.849835Z", "iopub.status.idle": "2024-01-18T18:29:41.853828Z", "shell.execute_reply": "2024-01-18T18:29:41.853323Z" }, "papermill": { "duration": 0.015126, "end_time": "2024-01-18T18:29:41.854880", "exception": false, "start_time": "2024-01-18T18:29:41.839754", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "def _load_dataset(fils):\n", " if len(fils) == 0:\n", " print(\"Input file list is empty.\")\n", " return None\n", " elif len(fils) > 1:\n", " return xr.open_mfdataset(fils, combine='by_coords')\n", " else:\n", " sfil = str(fils[0])\n", " return xr.open_dataset(sfil)\n", " #End if\n", "#End def" ] }, { "cell_type": "code", "execution_count": 25, "id": "eff599aa-4ad7-43b0-8381-a94177e40c6e", "metadata": { "execution": { "iopub.execute_input": "2024-01-18T18:29:41.874104Z", "iopub.status.busy": "2024-01-18T18:29:41.873811Z", "iopub.status.idle": "2024-01-18T18:29:41.879838Z", "shell.execute_reply": "2024-01-18T18:29:41.879395Z" }, "papermill": { "duration": 0.017024, "end_time": "2024-01-18T18:29:41.880999", "exception": false, "start_time": "2024-01-18T18:29:41.863975", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "def _data_calcs(ts_loc,var,subset=None):\n", " \"\"\"\n", " args\n", " ----\n", " - ts_loc: Path\n", " path to time series file\n", " \n", " - var: str\n", " name of variable\n", " \n", " - subset (optional): dict \n", " lat/lon extents (south, north, east, west)\n", " \"\"\"\n", " fils = sorted(list(Path(ts_loc).glob(f\"*{var}*.nc\")))\n", "\n", " ts_ds = _load_dataset(fils)\n", " \n", " time = ts_ds['time']\n", " time = xr.DataArray(ts_ds['time_bnds'].load().mean(dim='nbnd').values, dims=time.dims, attrs=time.attrs)\n", " ts_ds['time'] = time\n", " ts_ds.assign_coords(time=time)\n", " ts_ds = xr.decode_cf(ts_ds)\n", " \n", " if subset != None:\n", " ts_ds = ts_ds.sel(lat=slice(subset[\"s\"],subset[\"n\"]), lon=slice(subset[\"w\"],subset[\"e\"])) \n", " \n", " data = ts_ds[var].squeeze()\n", " unit = data.units\n", " \n", " # global weighting\n", " w = np.cos(np.radians(data.lat))\n", " avg = data.weighted(w).mean(dim=(\"lat\",\"lon\"))\n", " \n", " yrs = np.unique([str(val.item().timetuple().tm_year).zfill(4) for _,val in enumerate(ts_ds[\"time\"])])\n", "\n", " return avg,yrs,unit" ] }, { "cell_type": "code", "execution_count": 26, "id": "8141a995-7a66-4562-9ea6-472cde4e21f2", "metadata": { "execution": { "iopub.execute_input": "2024-01-18T18:29:41.903433Z", "iopub.status.busy": "2024-01-18T18:29:41.903094Z", "iopub.status.idle": "2024-01-18T18:29:41.907313Z", "shell.execute_reply": "2024-01-18T18:29:41.906868Z" }, "papermill": { "duration": 0.015085, "end_time": "2024-01-18T18:29:41.908320", "exception": false, "start_time": "2024-01-18T18:29:41.893235", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "def ts_plot(ax, name, vals, yrs, unit, color_dict,linewidth=None,zorder=1):\n", " \"\"\"\n", " args\n", " ----\n", " - color_dict: dict\n", " color and marker style for variable\n", " \"\"\"\n", "\n", " ax.plot(yrs, vals, color_dict[\"marker\"], c=color_dict[\"color\"],label=name,linewidth=linewidth,zorder=zorder)\n", "\n", " ax.set_xlabel(\"Years\",fontsize=15,labelpad=20)\n", " ax.set_ylabel(unit,fontsize=15,labelpad=20) \n", "\n", " # For the minor ticks, use no labels; default NullFormatter.\n", " ax.tick_params(which='major', length=7)\n", " ax.tick_params(which='minor', length=5)\n", " \n", " return ax" ] }, { "cell_type": "code", "execution_count": 27, "id": "d7aaeed2-b21f-4610-8b2e-0530d5556b69", "metadata": { "execution": { "iopub.execute_input": "2024-01-18T18:29:41.933772Z", "iopub.status.busy": "2024-01-18T18:29:41.933465Z", "iopub.status.idle": "2024-01-18T18:29:41.941626Z", "shell.execute_reply": "2024-01-18T18:29:41.941073Z" }, "papermill": { "duration": 0.025662, "end_time": "2024-01-18T18:29:41.942768", "exception": false, "start_time": "2024-01-18T18:29:41.917106", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "def plot_var_details(ax, var, vals_cases, vals_base):\n", " \n", " mins = []\n", " maxs = []\n", " for i,val in enumerate(vals_cases):\n", "\n", " mins.append(np.nanmin(vals_cases[i]))\n", " maxs.append(np.nanmax(vals_cases[i]))\n", "\n", " mins.append(np.nanmin(vals_base))\n", " maxs.append(np.nanmax(vals_base))\n", "\n", " if var == \"SST\": \n", " ax.set_ylabel(\"K\",fontsize=20,labelpad=12)\n", " tick_spacing = 0.5\n", " ax.yaxis.set_major_locator(MultipleLocator(1))\n", " ax.set_title(f\"Time Series Global: {var} - ANN\",loc=\"left\",fontsize=22)\n", " \n", " if var == \"TS\":\n", " ax.set_ylabel(\"K\",fontsize=20,labelpad=12)\n", " tick_spacing = 0.5\n", " ax.yaxis.set_minor_locator(MultipleLocator(0.5))\n", " ax.set_title(f\"Time Series Global: {var} - ANN\",loc=\"left\",fontsize=22)\n", "\n", " if var == \"ICEFRAC\":\n", " ax.set_ylabel(\"frac\",fontsize=20,labelpad=12)\n", " tick_spacing = 0.1\n", " ax.set_ylim(np.floor(min(mins)),np.ceil(max(maxs)))\n", " ax.set_title(f\"Time Series LabSea: {var} - ANN\",loc=\"left\",fontsize=22)\n", "\n", " if var == \"RESTOM\":\n", " ax.set_ylabel(\"W/m2\",fontsize=20,labelpad=12)\n", " tick_spacing = 0.5\n", " ax.yaxis.set_minor_locator(MultipleLocator(0.1))\n", " ax.set_title(f\"Time Series Global: {var} - ANN\",loc=\"left\",fontsize=22)\n", " \n", " # Set label to show if RESTOM is 1 or 5-yr avg\n", " line_1yr = Line2D([], [], label='1-yr avg', color='k', linewidth=1,marker='*',) \n", " line_5yr = Line2D([], [], label='5-yr avg', color='k', linewidth=1,)\n", " ax.legend(handles=[line_1yr,line_5yr], bbox_to_anchor=(0.99, 0.99))\n", " \n", " # Add extra space on the y-axis, except for ICEFRAC\n", " if var != \"ICEFRAC\":\n", " ax.set_ylim(np.floor(min(mins)),np.ceil(max(maxs))+tick_spacing)\n", " \n", " ax.yaxis.set_major_locator(MultipleLocator(tick_spacing))\n", " \n", " ax.tick_params(axis='y', which='major', labelsize=16)\n", " ax.tick_params(axis='y', which='minor', labelsize=16)\n", " \n", " ax.tick_params(axis='x', which='major', labelsize=14)\n", " ax.tick_params(axis='x', which='minor', labelsize=14)\n", " \n", " return ax" ] }, { "cell_type": "code", "execution_count": null, "id": "26eb6dfb-eec3-4c89-9964-6495891ca572", "metadata": { "papermill": { "duration": 0.008911, "end_time": "2024-01-18T18:29:41.960822", "exception": false, "start_time": "2024-01-18T18:29:41.951911", "status": "completed" }, "tags": [] }, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "1fa7a0d8-6d8f-45e1-b606-9507a11764dc", "metadata": { "papermill": { "duration": 0.008491, "end_time": "2024-01-18T18:29:41.977943", "exception": false, "start_time": "2024-01-18T18:29:41.969452", "status": "completed" }, "tags": [] }, "source": [ "### Plot the time series!" ] }, { "cell_type": "code", "execution_count": 28, "id": "67e22347-a3b8-4b3c-a68f-38a84ff58454", "metadata": { "execution": { "iopub.execute_input": "2024-01-18T18:29:42.011329Z", "iopub.status.busy": "2024-01-18T18:29:42.011025Z", "iopub.status.idle": "2024-01-18T18:29:42.013985Z", "shell.execute_reply": "2024-01-18T18:29:42.013435Z" }, "papermill": { "duration": 0.019686, "end_time": "2024-01-18T18:29:42.014964", "exception": false, "start_time": "2024-01-18T18:29:41.995278", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "ts_var_list = [\"RESTOM\",\"TS\",\"ICEFRAC\"]" ] }, { "cell_type": "code", "execution_count": 29, "id": "90848bf6-403d-4a3b-a69a-b4ff12f3891b", "metadata": { "execution": { "iopub.execute_input": "2024-01-18T18:29:42.033755Z", "iopub.status.busy": "2024-01-18T18:29:42.033466Z", "iopub.status.idle": "2024-01-18T18:30:07.881065Z", "shell.execute_reply": "2024-01-18T18:30:07.880086Z" }, "papermill": { "duration": 25.861001, "end_time": "2024-01-18T18:30:07.884641", "exception": false, "start_time": "2024-01-18T18:29:42.023640", "status": "completed" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Plotting variable: RESTOM\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Plotting variable: TS\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Plotting variable: ICEFRAC\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "FigureCanvasAgg is non-interactive, and thus cannot be shown\n" ] }, { "data": { "image/png": "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l2DIx507dyYYvvjhpVWrVkZkZKRhGIaxZs0acyjPpJauXbummN/mzZsTTHWQ1GJvb2/z8KLJmThxohmve/fu6YoV3y+//GLkz5/fav4uLi7GnDlzko3RrVs3s+3JkyeNV199Nck48YcqjhvCOKUpHL766qsE03MkteTLl8/4/fffk40xc+ZMw9nZ2WoM/d9woGn1/fffm3GqVKmS5jjJsXXql/379ycYHjqpxcnJyZg8ebLNx1q8eLHVv0GlSpWMixcvJhtv1KhRKT72koxixYoZu3fvtvo42PLeEX845PQOSZ2a96vw8PAE52NtipT47dLjnXfeMeOMGjUqXbGSk5ZpdQICAhK8/1l7fiTF398/wfvP7du3reb1448/Jjjm559/nmTc69evG46OjoYkY/DgwTlqOpn4QxB/+umnhmEYRmxsrOHt7W1IMpydnY2bN2+mGCf+6yMwMNBYs2aN+XutWrWSHYY6tVNnRkVFGX5+fubv7du3TzYnps4EkBNR06QNNQ01DTXNo69pkpKWa/xHUXtkhaFDh5rnNXPmTMMwDCMsLMycLqRo0aJGdHR0inEy81o4bnvx4sUNw0g4tc/HH3+c5D45qdYBADx61DNpQz2TveuZ+Of08LmmxosvvmjTtX+9evWsfgfw8NSZX375pWFvb59svGeffda4detWkrGaNWtmtps7d26azuthMTExxuDBgw0HBwer51miRAlj3759ycbJyFop/ntTRlzDpjR15h9//GFuz58/v3Hv3r10H9MwcvbUmYaR8PsdFxeXFGOfOnXKbP/cc8+Z67t27WquX7NmjdUYgwcPNts2a9bMpnPKKWJiYoySJUsakozcuXMboaGhhmEYxqxZs8xzHjBgQIpx4r8+unTpYhiGYdSuXdtct3r16iT3S+3UmUOHDjXCw8PNnO3s7IzDhw8nuR9TZ+JRSH7sWCADXbp0Sa1atVJwcLC6dOmihg0bytXVVX///bf8/Px0+/ZtrVq1ShMnTlSTJk3UunVrOTo6qnfv3nrmmWfk7OysXbt26fvvv1d4eLjmzZunhg0bqlu3bkkeb926dWrdurWioqJksVjUqFEjvfzyyypRooQiIyO1b98+zZs3T7dv3zZ7/w4ePDhN51auXDnz5xUrVmjEiBEqVapUmmLF+fHHH9W7d28ZhiEHBwe1bNlSDRs2lKenp+7e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Xz///LMk6bXXXjM/3MgJVq5caX4o0Lp16yQLrY4dO+r999/XvXv3tGjRIn3++efKlStXqo5Tvnx5vfXWW5o+fbquX7+uzz//XCNGjMiIU1CDBg3UrFkzrVu3Tn///bfmz5+fZNEJAHiAmuYBapr/j5omMWqarJOda4/UmDdvntlB8Y033kj0gb8k+fr6auzYsZIe3LgycODAVB8nM6+Fu3btqs8//1xHjx7V2rVrtWXLFvNLAAAAsgr1zAPUM//fo6hnMtq9e/f0888/67ffftPff/+t69ev686dO0nWTaGhoQoNDZW7u3uy8Wy5Mb1Ro0b6888/JT2oSZ5//vlEbXx9fdWlSxetX79ea9eulb+/v44dO5agJgkJCdG0adPM/B+uk+L/bSMiIlL828a/qSe5597jUCul9XuMlLz44ot6//33bWr75JNPptgmpe+T4m7ISo/WrVvr66+/lpeXl9V2165d09q1ayVJxYoVS3TzjiSVLVtWzz77rLZv364TJ05o165dVt/7M+vvkFXiBkCQlOTnDHE3OI0dO1YxMTGaO3dumm4iGjNmjH7++WeFh4dr/Pjx6tWrl/Lly5eu3ONMmjTJ7Fg7dOhQtW3b1ur/80BG49mGR6JgwYJWtzs7O6epbXh4eIJt8XvSb9myRVu2bElFlg/u9o27+yStatWqZd41Exsbq4CAAO3cuVMrV67UmjVrFBsbq8jISL311lsqX768nn322STzX7JkSap6IAcHB1vd/vDdFGkRPz8/Pz/5+fnZvO/D+fXo0UNLlizRn3/+qQsXLuidd97RO++8Yz4mL7zwgpo3b65ChQqlOd8CBQok+P327dtWi6S333470QXXV199pU2bNqU5h7he7nny5LGpQKtQoYI2btwo6cEdMskpX758irHit0kq1rVr19S+fXv5+/unGCtOaGiozW0flcqVK5tfMkgPcjxz5ozmzJmjixcvaseOHfr+++/1xRdfpOpiuE2bNhmSn52dnRo0aKAGDRpIelAAHjt2TP7+/lq6dKk2b94sSQoLC1OHDh106NAhlStXLkOO/bD4r4mHPwSyVUhISJLxUvLss8/qiSee0KlTpzRr1ix16dJFS5cuNeP16NEjTflYs379et27dy/Z7U2aNElzgRf/Lp/kvpDKkyeP2rZtq4ULF+r27dtmB7vUGjFihObPn687d+5oypQpeuedd1S4cOE05f2wiRMn6o8//lBsbKw+/fRTvfbaa2n+MA8AHnfUNNQ01DTUNNndo6o9UvrSKz21VEof+EsPvhSpX7++/P39dfLkSfn7+5sjMaRGZl0L29nZacKECWrZsqUkaeDAgdq9e3e64wIAkB7UM9QzWVHPZKQdO3aoU6dOunTpks37pNTRLCNqkjiOjo5q0aKFWrRoIenBa+PQoUPavn27Fi9erP3790t6UMO0bNlSAQEBCW5ejv+3Te2Nxkk993JyrVSgQAFdvnxZUtq/x0hJyZIlM+w7ICljvk96uPNbcHCwAgICNHv2bN24cUOrV6/Ws88+q48//thqnLlz55qdCd944w2zM+/DunXrpu3bt0t68H3Hwx3NMuL7pLS6ePGiOXpjUkqWLKnq1aunKfbu3bt19OhRSVLt2rWTHR2uW7duCW5wSktHMy8vL7333nuaMmWKbt26pfHjx2vSpElpyvthtWvXVvv27bV06VIFBgbqhx9+0LvvvpshsQFb0NEMj0RSd6BmRNuH3b59O837SjKHycwodnZ2qlSpkipVqqSePXvqwIEDatmypa5evaqYmBiNHj1a69evN9unJ39rU5JISvUoOklJT34PP7aOjo76/fff5efnp2+++UanT5+WJAUGBiowMFCzZ8+Wg4ODOnbsqClTpqho0aKpPqaDg4MKFy6soKAgSdKZM2esfjHy1FNP6amnnkqwzpY7gqwJCwuTJJtHaoo/HHLcvkmxJV78Ng/Hio6OVtOmTXX48GFJUr58+fTKK6+oSpUq8vT0VK5cucyLz7/++ssc0jUmJsam83iUChYsmORF/LBhw9SlSxctWbJEU6dOlYeHR4aNBJUejo6Oevrpp/X000+rb9++Wr9+vV599VXduXNHd+/e1aRJk/TDDz9kyrHjf5hx6tSpNMU4efJkkvFs0b17dw0ePFibNm3S+fPnzS+RfHx89Mwzz6QpH2vefvttXbhwIdnt586dk7e3d6rj/vPPP+Z7t6enp5o0aZJsW19fXy1cuFDSg2ItLR3NihQpog8//NCcOnP06NH65ptvUh0nKVWqVNEbb7yhefPm6dKlS/rmm29SLFQB4L+KmoaahpqGmianyazao23btla3p3Ukvh07dujEiROSHkxTVKlSpWTb+vr6ml+azZw5M00dzTLzWjhuKpMtW7Zoz549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mu7slqTmzZvr+vXr8vf315YtW7R3716dOnVKV69e1b179+Ts7CwPDw9VqFBBdevW1WuvvWZOO2JN48aNdebMGS1atEhr1qzRvn379O+//yo8PFx58uSRt7e3qlatqoYNG+qVV16Rh4dHmvJPqy5duqh169aaO3eu/vjjDx06dEg3btxQdHS03N3dVaZMGVWvXl0vvfSSmjdvrty5cyfY/+DBg9qyZYs2bdqkXbt26ezZs7p165YsFovy58+vypUrq1mzZurRo4fy5cuXYXm/+eabev3117Vu3Tpt3LhRO3bs0JUrV3Tz5k0ZhiEPDw8VLVpU1atX1zPPPKN27dolmqIlLWrUqKGTJ09q5syZWrlypY4cOaKbN2/K1dXVvGPo3XffVenSpW2OGXcH2Ndff63169fr8uXLcnR0lI+Pjzp16qR33nnH6p3gzZo10+HDhzV58mRt2LBBly9fVq5cuVS8eHE1bdpUffr0Ufny5bPNlDDpZW9vr0GDBqlnz56SpJEjR6pdu3ays8v4WaR79eqlN998U5s3b9bWrVu1b98+nT59WkFBQbp3755y586t/Pnzq2LFinr22WfVqVMnlStXLsPzSEmbNm3UsmVLrVy5UmvWrNGuXbsUFBSk0NBQeXh4yNPTU88++6xeeeUVNW3a1OoIcI+7AwcOmMNQ582bN013MHXr1k1LliyR9OCul48++ijN+UycOFEbNmwwh27PKHHDN6fmjicAQOahpslc1DSpQ02TPeWU2iM5caP9SlL58uX1zDPPpDpGt27dtHfvXkkPrrNfffXVNOWSmdfCcVOZvP/++xkeGwCA7Ip6JnPl1HomrUaMGKHnn39eX331lXbu3Kng4GB5eHioTJkyatu2rXr37p2mv0G/fv1Uv359+fn5acuWLbp69apy586tKlWqqGvXrvL19U32O4QRI0boww8/1J9//qlt27bp0KFDOn36tG7cuKHw8HC5urqqUKFCqly5sho0aKBOnTrZNEvGRx99pG7dumnWrFnauHGjjh07Zo7U5eHhoXLlyqlWrVpq3LixGjdunOSIvo9TrdSmTRu1atVKv//+u/744w/5+/vrypUrCg4Olr29vVnvPPPMM+rYsaMqV66c1Slnqrx58+p///ufOQrk8OHDzXpISt1oXXE6deqk/v37KzIyUuvWrdOVK1cSPVft7e31ySef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8aIqVaqkatWqycfHR4sWLdKgQYO0ZcsWBQUFqWPHjpKkkydPysvLy+xkJkm1a9e26dwBAAAAAMhoO3fu1JAhQ2RnZ6cFCxaoc+fOkqTDhw/r5Zdf1qpVq/TFF1/o448/tinem2++qcDAQFWuXFmrV6+Wt7e3Ga958+b67rvvVK9ePb355puZdUoAAABAjkJHs1QYO3asTp8+rW+++UZFihRJV6zw8HBJkpOTU7JtnJ2dJUn379+3Gmv8+PEaNWpUuvIBAADIaXx8fLR///4sOW5aubq6qkqVKuaItX369DE7dUkyR7rt1auX3nzzTX355ZeaPXu2XnvttUSjqLm6ulo91t27d9WkSRM1adJECxYsUKFChXTx4kW9/PLLioyMNNt16dJFP/30kwYNGqSffvpJL7/8sgoWLChJMgwj2ZsiAAAAAAB41MaOHSvDMPTWW2+ZncwkqWrVqvriiy/UpUsXTZgwQf369ZOjo6PVWIcPH9amTZskSTNmzDA7mcWP16lTJ40cOZKOZgAAAMD/oaOZjU6cOKHJkyerevXqeuedd9Idz8XFRZISfMn3sLhRynLlymU11uDBg/Xhhx9abRMaGiovL69UZgkAAJB95c6d2+aRxbKLiIgInThxQs8995wkKX/+/MqfP3+ids2bN5erq6umT5+udevWaevWrak+VkBAgG7cuKEJEyaY14H79u1L1O7111/XsGHDtH//fi1dujTBlCA+Pj66ePGirl+/bt5osXfv3lTnAgAAAABAeoWGhmrjxo2SpJ49eyba3qFDB73zzju6efOmNm3apCZNmliN5+/vL0kqUaKE6tatm2h727ZtZWdnp7Nnz2r//v1ZMqo6AAAAkN3YNkk99O677yo6OlrTp0+XnV36H7a4aTFv374twzCSbBM3ZWZc2+Q4Ozsrb968KS4AAAB4tD7++GNt2bJF586d0+7du9W+fXuFhoaqW7duVvezt7eXr6+vBg8erHLlyumZZ55J9bFLliwpJycnff311zp79qxWrVqlMWPGJGpXunRp1atXTz179lR0dLRat25tbmvcuLHKli2rbt266ciRI/L399fQoUMliZHOAAAAAACP1MGDBxUZGSkXF5ckbzxzdHRUrVq1JEm7d+9OMV7cdzDFixdPcruTk5M54veuXbvSmjYAAADwWKGjmY0OHjwoi8WiVq1aydPT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tGn6888/dezYMQUEBCgyMlIFChTQM888o44dO+qNN96wOv1NfN7e3hozZox27NihgIAAnTx5UpGRkSpcuLCaN2+uXr166eWXX87kswIAAACQ3fz44486ePCgnJyc9MEHHyTY1rBhQ23YsEGffvqpevTokWCbt7e3FixYoC5duiRYX7NmTVksFsXExGjlypXmlJZx9uzZY3Y0ixv9LCUhISGKjY2VJOXLly/JNnHrY2NjFRoaqgIFCiTZLiIiQhEREVaPFxoaalNeAAAAAB5PcbVKcvVH/G221jVpqa8eRj0DAACA/xI6mqVCvnz59P777+v9999P1X4jR47UyJEjE6338PDQsGHDMii7B/z8/OTn55dofUxMTIYeBwAAAEDmOHDggPr16ydJGjt2rMqWLZuozblz5xQUFCSLxaKSJUsqb968On36tM6fP68ZM2aofv368vb2Ntt7enqqbdu2WrZsmT744AOVLFlSderUkSSdOnVKvr6+Ztv79+/blGfc1J6Skp2O09nZ2aa448eP16hRo2w6LgAAAID/prgaJLn6Q/r/NYitdY2U+vrqYdQzAAAA+C9h6szHTN++fXX8+PFEy969e7M6NQAAAAApOHfunFq2bKnw8HC9/vrr+vjjjxO1GT9+vLp37y6LxaJDhw7p/PnzOnLkiIKCgtSzZ09t3rxZ9evXV0hISIL9pk+frgoVKujKlSuqW7euSpcurQoVKqhixYo6c+aMOnbsKElyc3OzKVcXFxfz5+Sm44x/V3+uXLmSjTV48GCFhIRYXS5dumRTXgAAAAAeT3E1SHL1h/T/axBr9Ud8aa2v4qOeAQAAwH8JHc0AAAAAIBu4du2aGjdurKtXr6pFixaaM2eOLBZLgjZBQUEaPXq0JGnOnDl66qmnzG1ubm767rvvVKlSJV25ckXffvttgn0LFy6s3bt3a9iwYapYsaKuXbumoKAgtWzZUrt371b58uUlPRj9zBbu7u6ys3tQUiY3LU3cejs7O+XNmzfZWM7OzsqbN2+KCwAAAID/LlumxbRles046amv4qOeAQAAwH8JHc0AAAAAIIsFBwercePGOnPmjF544QUtWbJEjo6Oidrt27dP4eHhcnNzU+3atRNtd3BwUIMGDcy2D3N3d9eYMWN0/Phx3b9/X7du3dLKlSv19NNPm+1r1KhhU85OTk4qWbKkJOns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hRf09ddfy8HBQdWrV1eVKlV07do1nT9/XoZhqE6dOtq2bZu8vLwKFDPzAwAAALaMRDNkwksMAAAAbBnrVeSGOQIAsKZNmzZp3LhxOnr0qCSpcePGWrBggR599FErR2a51NRUnThxIkOlsvDwcCUmJmbqW7ly5QyVytq0aaNq1apZIerS79ixYwoODtaXX35p/ndRo0YN/fWvf9WIESNUvnx5K0eI3LBeLR579+41V/376quvNHjwYElSeHi4evfurStXrmj+/PmaMGFCnsZbtWqV3Nzc1KVLF7m6uprbjx8/rsGDB+vIkSPq06ePfvrppwLFzfwAAACALSPR7AEWEhKikJCQTO2pqak6deoULzEAAACwSfzSHblhjgAArC0lJUVLlizRm2++qevXr0uSHnvsMf3jH/9Q48aNrRxd1tLS0nT69OkMlcrCwsJ07969TH3LlStnTiZLTy6rVasWWzgWs2vXrumTTz5RSEiIrly5IkkqU6aMXnnlFb3xxhtq0KCBlSNEdlivFo++fftq/fr1GjFihD799NMM55YvX67nn39eFStW1OXLlwtcEfDAgQPy9/eXvb297ty5IxcXl3yPxfwAAACALSPRDJnwEgMAAABbxnoVuWGOAABsxa1btzR79mz985//VHJysuzt7TVy5EjNnDlTFStWtFpchmEoKirKnFB24MABHTp0SHFxcZn6uru7y9fXN0O1srp165JUZkMSExO1YsUKLVy4UEeOHDG39+vXT2PHjlW3bt3492VjWK8Wvbi4OFWuXFlJSUnat2+f/P39M5xPTk5WpUqVFBcXp59//lm9evUq0P1u375t/nd569YteXp6Fih25gcAAABsFYlmyISXGAAAANgy1qvIDXMEAGBrIiIiNGnSJH3//feS7lcEmzlzpkaNGlXgKjq5MQxDly5dylCp7ODBg4qJicnU18XFRa1atcpQraxBgwayt7cv0hhROAzDUGhoqBYuXKgff/zR3N6iRQuNGTNGgwcPlrOzsxUjRDrWq0Vv+/bt6tq1q1xcXHT79m05ODhk6tOjRw9t2bJF77zzjt58880C3e+XX35R79695ePjo8jIyAKNxfwAAACALbNkvZp5FQ4AAAAAAAAAyFH9+vW1Zs0abd26VWPHjtWRI0c0ZswYffzxx/rHP/6hPn36FFrFqatXr2aoVHbw4EFFR0dn6ufo6KjmzZtnqFTWpEmTIk98Q9ExmUzq3r27unfvrlOnTumDDz7QsmXLFB4eriFDhmjKlCkaNWqURo4cqcqVK1s7XKBIRURESJK8vLyyTDKTJB8fH23ZssXc11KGYejKlSvasmWLJk6cKAcHBy1YsCDfMQMAAJQkSUlJ2r9/v0JDQ3XgwAG1bdtWEydOlJOTk7VDgw0h0QwAAAAAAAAA8ql79+4KCwvTZ599punTp+uPP/5Qv3791KtXLy1YsEBNmza1aLybN2/q0KFDGaqVnT9/PlM/e3t7NW3aNEOlsmbNmlHdqhRr0KCBQkJCFBQUpMWLF+vDDz/UxYsX9fbbb2vOnDl68cUXNWbMGIvnHFBS3Lx5U5JUvnz5bPukn0vvm1fff/+9+vfvn6GtS5cuWrlypQICAnK8NjExUYmJiTn2yWobYwAAAGtLTk7WwYMHFRoaqtDQUO3evVvx8fHm8+vWrdN3332nL774Qi1btrReoLApJJoBAAAAAAAAQAHY29vr1Vdf1bPPPqs5c+YoODhYv/zyi5o3b67XX39ds2bNUqVKlTJdd/v2bYWFhWWoVpbV9mwmk0kNGzY0J5S1adNGLVu2VJkyZYrj8WBjKlSooMmTJ2vcuHFauXKlFi5cqIMHD2rJkiVasmSJevXqpbFjx6p3796FVlUPsAUJCQmSlGNFjfRk2//9gDQvKlasqICAAKWmpurChQu6dOmS9u/fr3//+9/y9fWVq6trttfOnTtXs2bNsuh+AAAA1pCSkqKwsDBzYtmuXbt09+7dDH0qVaqkrl27qlmzZvrwww915MgR+fn56a233tKUKVOomA2ZDMMwrB0Eip4l+6kCAAAAxY31KnLDHAEAlCSRkZGaNGmSVq9eLUny9PTUW2+9pfbt22fY/vLkyZPK6tezPj4+Gba/9PX15f//kC3DMLR7924tXLhQ33//vdLS0iRJjRs31pgxY/Tiiy/mmCSDwsF6tejNnz9fkyZNUtu2bfXrr79m2Wfy5Ml6//331a9fP61bty7f9zpx4oQCAwMVGhqqRx99VBs2bMi2b14rmtWqVYv5AQAAilVqaqoOHz6sbdu2KTQ0VDt37tTt27cz9KlQoYK6du2qrl27qlu3bmrSpIns7OwkSVevXtXIkSPN77atW7fWF198QRXlUsiS9xkqmgEAAAAAAABAIapbt65WrVqlbdu2aezYsfrtt980fvz4LPvWqlUrQ6Wy1q1bq0KFCsUcMUoyk8mkjh07qmPHjjp79qz++c9/aunSpTpx4oRee+01TZs2Ta+//roCAwNVrVo1a4cL5FtetsXMy/aaedG4cWOtW7dOdevW1caNG7Vr1y517Ngxy77Ozs5sWwwAAGxCWlqawsPDFRoaqm3btmnHjh2KjY3N0KdcuXLq0qWLObGsWbNm5sSyP6tSpYr+85//aMWKFRo9erQOHTokX19fvfPOO5owYYLs7e2L47FgY6ho9oDg21QAAACwZaxXkRvmCACgpEpNTdWyZcs0e/ZsxcfHZ6hU1qZNGz300EPWDhGlUFxcnJYuXap//vOfioqKkiQ5Ojpq0KBBGjt2rFq1amXdAEsh1qtFb/v27eratatcXFx0+/ZtOThkrqXQo0cPbdmyRe+8847efPPNAt9z0KBB+vbbb/XBBx/ob3/7W77HYX4AAICikJaWpqNHj5oTy7Zv354pKd/Dw0OdO3dWt27d1LVrV7Vo0SJfCWKXLl3SiBEj9NNPP0mS2rVrp2XLlqlhw4aF8iywLkvWqySalTIhISEKCQnJ1J6amqpTp07xEgMAAACbxC/dkRvmCAAAgOVSUlL0ww8/aOHChdq9e7e5vUuXLho7dqz69etHFYJCwnq16MXFxalSpUpKTk7Wvn375O/vn+F8cnKyKlWqpLi4OP3888/q1atXge/5zDPPaNWqVfrHP/6hcePG5Xsc5gcAACgMhmHo+PHjCg0NVWhoqLZv366YmJgMfdzd3dWpUyd169ZN3bp1U8uWLbNM0M/v/ZctW6YxY8YoLi5OLi4umjt3rv72t79lWxUNJQOJZsiElxgAAADYMtaryA1zBAAAoGD279+v4OBgfffdd0pNTZV0f5vXMWPG6JVXXpG7u7uVIyzZWK8Wjz59+mjDhg0aMWKEPv300wznli9frueff14VK1bUpUuX5OTkVKB7xcbGysfHRzdu3NCWLVvUvXv3fI/F/AAAAPlhGIZOnjypbdu2mauWXbt2LUMfNzc3dezY0bwVZuvWrQstsSw7Fy5c0LBhw7Rp0yZJUqdOnfT555+rbt26RXpfFB1L1qukFObT+vXr1aNHD1WoUEFubm7y9fXVhx9+qLS0NIvGmTlzpkwmU47HyZMni+gpAAAAAAAAAAAPAn9/fy1fvlxnz57VpEmTVK5cOUVGRuqvf/2ratWqpUmTJunChQvWDhPI0fTp02UymbRkyRKtWLHC3B4eHm6uODZp0qQMSWbBwcHy9vbWoEGDMox16dIljRkzRseOHct0n19//VWPPvqobty4oWbNmqlLly5F9EQAAAD/xzAMnTp1Sv/61780ePBgVa9eXU2aNNGoUaO0cuVKXbt2Ta6ururRo4feffdd7d69Wzdv3tTGjRs1ZcoUtW3btsiTzCSpVq1a+vnnn/XJJ5/Izc1NO3fuVIsWLbRo0SKLc2ZQ8lDRLB/mzZunqVOnSpJ8fHzk7u6uo0ePKi0tTU888YTWrFmT57KAM2fO1KxZs1SrVi15eXll2Wf58uXZnssrvi0DAAAAW8Z6FblhjgAAABSuO3fu6IsvvtAHH3ygiIgISZK9vb2eeeYZjR07Vm3btrVyhCUL69Xi8+6772rGjBmSMn9G07dvX/3www8ZtoRN/xymS5cu2rZtm7k9KipKderUkSRVqFBB3t7eMgxDFy5c0PXr1yXdr/r3888/F7g6B/MDAABkxTAMnTlzxlytLDQ0VJcuXcrQx9nZWR06dDBvhenn5ydnZ2crRZzZ2bNnNXToUPM665FHHtHSpUtVu3Zt6wYGi1iyXi36VMZSZu/evZo2bZrs7Oz01VdfafDgwZLuf1umd+/eWrt2rRYsWKAJEyZYNO7QoUM1c+bMIogYAAAAAAAAAICM3N3dFRgYqJEjR+qnn37SwoULFRoaqm+//Vbffvut2rdvr7Fjx6p///7FUhUByKvp06erRYsWWrhwoQ4dOqTo6Gg1a9ZMQ4YM0ejRozMkmeWkatWq+vTTT7Vlyxb99ttvioyM1N27d1W+fHl1795dTz31lIYPHy5XV9cifiIAAPAgiYqKUmhoqDm57M9VhZ2cnNSuXTtzYlnbtm3l4uJipWhzV6dOHW3ZskUhISGaPHmytmzZombNmmnBggUaNmyYTCaTtUNEIaOimYX69u2r9evXa8SIEfr0008znFu+fLmef/55VaxYUZcvX5ajo2Ou46V/k+btt98u0kQzvi0DAAAAW8Z6FblhjgAAABS93377TcHBwVq+fLmSk5MlSbVr19Zf//pXDR8+XJ6enlaO0HaxXkVOmB8AADy4Lly4kCGxLCoqKsN5R0dHtW3bVl27dlW3bt3Uvn37EpvoHhERoVdeeUV79uyRJD322GNavHixatSoYeXIkBtL1qt5298Rku7/YDdv3ixJGjZsWKbzAwcOlIeHh2JiYhQaGlrc4QEAAAAAAAAAkG8tW7bUsmXLdP78eb355puqVKmSzp07pwkTJqhmzZoaM2aMzpw5Y+0wAQAAAJt18eJFff311xo+fLjq1q0rLy8vvfzyy1q2bJmioqLk4OCg9u3ba+rUqfrll1908+ZN7dy5U0FBQerevXuJTTKTpPr162vHjh2aP3++nJ2dtWHDBj388MP68ssvRQ2s0oNEMwscPnxYSUlJcnFxka+vb6bzjo6O8vPzkyTt27fPorFDQ0M1cOBAde/eXc8884zef/99RUdHF0rcAAAAAAAAAADkVdWqVfXOO+/o/Pnz+te//qUmTZrozp07+uCDD1SvXj09/fTT2rlzJx8WAQAA4IEXHR2tFStW6LXXXlODBg1Us2ZNvfDCC1q6dKnOnDkjOzs7+fv7a/LkydqwYYNu3rypPXv2aM6cOerZs6fc3Nys/QiFyt7eXhMmTFBYWJj8/Px069YtvfTSS+rfv7+uXLli7fBQCBysHUBJEhERIUny8vKSg0PWPzofHx9t2bLF3DevduzYkeHvq1at0syZM7Vo0SK98sorOV6bmJioxMTEHPvExcVZFA8AAAAAAAAA4MHm6uqqV199VcOHD9cvv/yihQsX6ueff9aaNWu0Zs0atW7dWmPHjtXAgQPl5ORk7XABAACAInf16lVt27ZN27ZtU2hoqE6ePJnhvJ2dnVq1aqVu3bqpW7du6tix4wO5dXaTJk20Z88evf/++5o5c6Z++OEH7dq1S4sWLdKzzz5r7fBQAFQ0s8DNmzclSeXLl8+2T/q59L65qVatmqZNm6YDBw4oJiZG9+7d0+7du/XYY48pPj5eQ4cO1bp163IcY+7cufL09MzxqFWrVh6fEgAAAAAAAACA/2MymdS7d29t3LhRx44d06uvvioXFxcdOnRIL7zwgurUqaO5c+fqxo0b1g4VAAAAKFQxMTFatWqVRo8erYcfflgPPfSQ/vKXv+jjjz/WyZMnZTKZ1KpVK40dO1Zr165VTEyMDh48qPnz56tPnz4PZJJZOgcHB02bNk0HDx5Uy5YtFRMTo7/85S969tlndf36dWuHh3wyGdS2zrOgoCC99dZb6tSpU6YKZOneeustBQUF6ZFHHtHmzZvzfS/DMDRgwACtWbNGdevWVUREhEwmU5Z981rRrFatWoqNjX2g/4cMAAAAtikuLk6enp6sV5Et5ggAAIBtuXbtmj799FOFhIQoOjpa0v0KaC+//LLGjBmjhg0bWjnC4sV6FTlhfgAAUPIcPnxY77//vr777julpaVlONe8eXN169ZNXbt2VefOnVWhQgUrRVlyJCUl6d1339W7776r1NRUValSRZ9++qmeeuopa4cGWbZepaKZBVxcXCTd/w8gO+kJX66urgW6l8lk0rx58yRJkZGROnLkSLZ9nZ2d5eHhkesBAAAAAAAAAEBhqFy5smbMmKGoqCh98cUXatmypeLj4/XJJ5/o66+/tnZ4AAAAgMUMw9DWrVvVu3dv+fr66ptvvlFaWpqaNm2q0aNH6z//+Y+uXbum8PBwBQcH66mnniLJLI+cnJw0a9Ys7du3T02bNtXVq1fVv39/vfjii3neMRC2gUQzC+RlW8y8bK+ZVw0aNDD/j9Lp06cLPB4AAAAAAAAAAIXJ2dlZL730ksLCwhQaGqr+/ftr1KhR1g4LAAAAyLPU1FT95z//kb+/vx555BH98ssvsrOz0+DBg3X48GEdPXpUH374oQYMGKBKlSpZO9wSrXXr1jp06JAmT54sOzs7ffXVV3r44Ye1YcMGa4eGPCLRzAL169eXJJ0/f14pKSlZ9jlz5kyGvgXl6OgoSdneDwAAAAAAAAAAazOZTOratatWr16tqlWrWjscAAAAIFcJCQn617/+pcaNG2vgwIE6ePCgXF1dFRgYqNOnT2v58uVq2bKltcMsdZydnTVv3jzt3r1bDRo00KVLl9SnTx8NHz5csbGx1g4PuSDRzAKtWrWSo6OjEhISFBYWlul8cnKyDhw4IElq27Ztge93/fp1Xb16VZJUs2bNAo8HAAAAAAAAAAAAAADwIIuNjdW8efNUp04dvfbaa4qIiFD58uX15ptv6ty5c/roo49Up04da4dZ6rVr106//fabxo4dK5PJpKVLl6pZs2bavHmztUNDDkg0s4CHh4d69OghSVq6dGmm8ytXrlRcXJwqVqyorl27Fvh+CxYskGEY8vT0lJ+fX4HHAwAAAAAAAAAAAAAAeBBdunRJkyZNUq1atTR16lRFR0erVq1aWrhwoc6fP6933nlHlStXtnaYDxRXV1ctWLBA27dvl4+Pjy5cuKCePXtq1KhRunPnjrXDQxZINLPQ9OnTZTKZtGTJEq1YscLcHh4ernHjxkmSJk2aJCcnJ/O54OBgeXt7a9CgQRnGOnbsmEaNGqVjx45laE9ISNCcOXP03nvvSZImT56cYTwAAAAAAAAAAAAAAADk7tSpU3r11VdVp04dzZ8/X7dv31bTpk31xRdfKDIyUmPGjJG7u7u1w3ygderUSeHh4Ro1apQk6eOPP1aLFi20Y8cOK0eGPyPRzEIBAQEKCgpSWlqannvuOdWtW1ctWrSQr6+vrly5or59+2r8+PEZrrl165bOnTun6OjoDO3Jycn6+OOP9fDDD6tKlSpq06aN2rRpo4oVK2r69OlKS0vTsGHDNGXKlOJ8RAAAAAAAAAAAAAAAgBJt//79GjBggBo1aqQlS5YoKSlJHTt21Lp163TkyBG99NJLcnR0tHaY+P/c3d0VEhKizZs3y8vLS2fOnFHXrl01duxY3bt3z9rh4f8j0Swfpk+frnXr1ql79+6KiYnR6dOn1axZMwUHB+uHH36Qvb19nsbx9vZWUFCQHnvsMbm7u+uPP/7Q77//rgoVKuiZZ57Rxo0btWTJEplMpiJ+IgAAAAAAAAAAAAAAgJLNMAxt3LhR3bp1U9u2bbV69WoZhqEnnnhCu3fv1s6dO9WvXz/Z2ZEuY6seeeQR/f777xo+fLgMw1BwcLBatWqlvXv3Wjs0SDIZhmFYOwgUnpCQEIWEhGRqT01N1alTpxQbGysPDw8rRAYAAABkLy4uTp6enqxXkS3mCAAAAGwZ61XkhPkBAEDRS0lJ0Xfffaf3339f4eHhkiQHBwe98MILmjhxopo0aWLlCJEfGzZs0PDhw3Xp0iXZ2dlpwoQJmjVrllxcXKwdWqliyXqVRLMHBC8xAAAAsGWsV5Eb5ggAAABsGetV5IT5AQBA0bl3754+++wz/eMf/1BUVJQkyc3N7f+xd9/RUVV7G8efSQ9pQOg19C69GZoQQERUFBCwgajohauCgDQpghcrol68FhBQEBSkWaihKL0HAwKhJUiLQEjvOe8frszLOMkkgZBJMt/PWlmGc/bZ57eTk8nZ5pl9NHz4cI0aNUpVqlSxb4G4Y1FRUXr11Vf19ddfS5IaNmyoRYsWqVWrVnaurPjIy/0qawECAAAAAAAAAAAAAACgyLh+/brefPNNVa9eXf/+9791/vx5lS1bVjNmzFBERIQ++OADQmbFRKlSpbRo0SKtXr1a5cuX1/Hjx9WuXTu98cYbSklJsXd5DoegGQAAAAAAAAAAAAAAAAq9CxcuaNSoUapevbqmTp2qa9euqUaNGpo7d67Cw8M1efJklS5d2t5l4i54+OGHFRoaqscff1zp6emaOXOm2rRpY35UKgoGQTMAAAAAAAAAAAAAAAAUWseOHdMzzzyjmjVras6cOYqPj1ezZs20dOlSnTp1Sv/617/k6elp7zJxl5UpU0bLli3T999/L39/f4WEhKh169aaOXOm0tLS7F2eQyBoBgAAAAAAAAAAAAAAgEJnx44d6tOnjxo3bqyvv/5aaWlp6tq1qzZs2KBDhw5p4MCBcnFxsXeZKGD9+/fXsWPH9Mgjjyg1NVVvvPGG2rdvr+PHj9u7tGKPoBkAAAAAAAAAAAAAAAAKhYyMDK1du1aBgYHq2LGjfvrpJ5lMJvXr10/79u1TcHCwevToIZPJZO9SYUfly5fXypUr9c0336hkyZI6cOCAmjdvrnfffVfp6en2Lq/YImgGAAAAAAAAAAAAAAAAu0pJSdHChQvVpEkTPfzww9q1a5fc3Nz0wgsv6OTJk1q+fLlat25t7zJRiJhMJj355JMKDQ1Vr169lJKSotdff10dO3bUqVOn7F1esUTQDAAAAAAAAAAAAAAAAHYRGxur2bNnq1atWho6dKiOHz8uX19fjR8/XuHh4fr8889Vp04de5eJQqxy5cr6+eefNX/+fPn4+Gj37t1q1qyZPvroI2VkZNi7vGKFB9UWM3PnztXcuXOttrMsIAAAAAAAAAAAAAAAKCwiIyP18ccf69NPP1VUVJQkqWLFinr11Vc1fPhw+fn52blCFCUmk0nPPvusgoKCNGzYMG3evFmvvvqqVq1apa+++ko1a9a0d4nFgskwDMPeReDui4mJkZ+fn6Kjo+Xr62vvcgAAAAAL3K8iJ1wjAAAAKMy4X4UtXB8AAFg6e/asPvjgA3311VdKSkqSJNWtW1djx47VU089JXd3dztXiKLOMAx99tlnGjt2rOLj4+Xl5aX3339fw4cPl8lksnd5hU5e7ld5dCYAAAAAAAAAAAAAAADuqiNHjmjQoEGqU6eOPv30UyUlJalNmzb64YcfdPz4cT333HOEzJAvTCaTXnrpJR09elSdOnVSfHy8XnrpJfXo0UMRERH2Lq9II2gGAAAAAAAAAAAAAACAfGcYhrZs2aKePXuqefPmWrZsmTIyMnT//fdr69at2rNnjx599FE5Ozvbu1QUQzVr1tTWrVs1Z84ceXh4aPPmzWrSpIm++uor8QDI20PQDAAAAAAAAAAAAAAAAPkmPT1dK1asUJs2bdStWzdt3LhRzs7OGjx4sI4cOaJ169apS5cuPMYQd52Tk5NeeeUVhYSEqF27doqJidGwYcP04IMP6tKlS/Yur8ghaAYAAAAAAAAAAAAAAIA7lpSUpC+++EINGjRQ//79deDAAXl6emrkyJEKCwvTkiVL1LRpU3uXCQdUt25d7dixQ++8847c3Nz0yy+/qHHjxlqyZAmrm+UBQTMAAAAAAAAAAAAAAADctujoaL399tuqUaOGhg8frrCwMJUuXVpTpkxReHi4PvnkE9WoUcPeZcLBOTs7a9y4cTp8+LBatWqlqKgoPfnkk3rsscd09epVe5dXJBA0AwAAAAAAAAAAAAAAQJ5dvnxZr7/+uqpVq6YJEyboypUrqlq1qubMmaPw8HBNnz5dZcuWtXeZgIWGDRtq165dmjFjhlxdXbVq1So1btxYy5cvt3dphR5BMwAAAAAAAAAAAAAAAOTaqVOn9PzzzysgIEDvvvuuYmJi1KhRI3399dc6c+aMXnnlFXl7e9u7TCBbrq6umjx5svbv36977rlH165d04ABAzRw4EBdv37d3uUVWi72LgD5a+7cuZo7d67V9vT0dDtUAwAAAAAAAAAAAAAAiot9+/bpnXfe0apVq2QYhiSpQ4cOev311/XAAw/IyYn1jlC0NG3aVPv379eMGTM0a9YsbdiwQUlJSfYuq9DiJ7yYGTFihI4fP271sX//fnuXBgAAAOAWhmFox44dGjt2rNq1a6eSJUvKzc1NlSpV0mOPPaatW7dme2xsbKzefPNNNW/eXN7e3nJzc1O1atX0xBNP6NChQ1keExAQIJPJlOPH9OnTcz2Gbdu25djfZ599luevDQAAAADY8ssvvygoKEilS5eWl5eXWrRooU8++UQZGRl56ufw4cOaMmWKOnfurDJlysjV1VXlypVTr169tGrVqrtUPQAARY9hGFq/fr3uu+8+tW3bVitXrpRhGHrooYe0c+dO/fbbb3rwwQcJmaHIcnNz04wZNMX9QAAAtAVJREFUM7Rnzx4tWrRIlStXtndJhRYrmgEAAACAHWzZskVBQUGSJCcnJ9WuXVteXl4KCwvTypUrtXLlSk2ePFkzZsywOC4yMlIdO3bUqVOn5OTkpBo1asjb21tnzpzRt99+q++++07ffPONBg0aZHFc69atVaVKlSxrSUhI0OHDhyVJ7du3z/NYfH191aRJkyz3VaxYMc/9AQAAAEB23n77bU2YMEGSVLNmTXl7eyskJEQvv/yyNm/erFWrVuXqj9xnzpxRixYtzP+uUaOGAgICdPbsWa1fv17r16/XM888o6+++oo/mgMAHNqNGzc0dOhQrV27VpLk4uKiJ598UmPHjlXDhg3tXB2Qv1q1amXvEgo9gmYAAAAAYAeGYah27doaPXq0Bg4cqFKlSkmSUlJSNG3aNM2aNUszZ85U27Zt9eCDD5qPmzhxok6dOqV69epp9erVql+/viQpPj5eo0eP1hdffKEXX3xRvXv3lq+vr/m45cuXZ1vLvHnz9Pzzz6tixYrq1q1bnsfSvHlzbdu2Lc/HAQAAAEBe7N69WxMnTpSTk5MWL15sfoNNSEiIevbsqbVr12r27NkaM2ZMjn0ZhqGKFSvq1Vdf1VNPPWV+k0xGRoY+/fRTvfzyy1q0aJFatWqlkSNH3tVxAQBQWO3du1ePP/64wsPD5ebmppEjR2rUqFHZvqEVQPHHWzAAAAAAwA7atGmjP/74Qy+99JI5ZCb9vUT3f/7zH/Xq1UuS9OWXX1oc9/PPP0uS3nvvPXPITJK8vLw0d+5clSlTRjExMdq5c2eua/nmm28kSYMHD5azs/NtjwkAAAAA7qaZM2fKMAw999xzFqs4N23aVLNnz5b094pnqampOfZVpUoVnT59WuPGjbNYidnJyUkjR47U8OHDJVnPyQAAcASGYWjOnDnq2LGjwsPDVatWLe3Zs0cffPABITPAwRE0AwAAAAA78PX1lYtL9otMd+/eXZJ06tQpi+2JiYmS/n5EzD+5uLioevXqkqS0tLRc1REeHq7ffvtNkvTUU0/l6hgAAAAAKGgxMTHavHmzJGnYsGFW+/v37y9fX19dv35dW7duzbE/Dw8PlShRItv9PXr0kGQ9JwMAoLi7efOmHnvsMY0aNUqpqanq16+fDh48qObNm9u7NACFAEEzAAAAACiEkpKSJEmenp4W2++55x5J0q5du6yOuXHjhk6cOCEXFxc1a9YsV+dZsmSJDMNQkyZN1LRp09uqNSIiQkOGDFG3bt3Up08fTZgwQUeOHLmtvgAAAAAgK4cPH1ZKSoo8PDzUokULq/2urq5q3bq1pL8f83WnspuTAQBQnB04cEAtWrTQqlWr5Obmpk8++UTff/+9/Pz87F0agEKCoBkAAAAAFDKGYWj58uWSpMDAQIt906ZNk6urq8aOHasFCxbo6tWrio+P186dO/Xggw8qPj5e48ePV9WqVXN1rsWLF0u6s9XMzp07p0WLFmnLli366aef9Pbbb6t58+YaOXKk0tPTb7tfAAAAAMgUFhYmSapWrVq2q0Nnrvyc2fZOfP/995Ks52QAABRHhmHok08+0b333qtz586pRo0a2rlzp0aOHCmTyWTv8gAUItk/pwUAAAAAYBdffvmlDh8+LDc3N7366qsW+7p27apNmzbpjTfe0LPPPmuxLyAgQIsXL9YTTzyRq/McOHBAf/zxh5ycnDR48OA81+np6amhQ4fqySefVP369VWmTBmdPXtWn3/+uT766CPNnTtXHh4eev/99232k5ycrOTkZJttYmJi8lwfAAAAgOIjKipKklSqVKls22Tuy2x7uzZu3KjVq1dLksaOHWuzLfMZAEBRFx0dreeee04rVqyQJPXt21dfffWVSpYsad/CABRKBM2Kmblz52ru3LlW21lFAAAAACgaDh06pFdeeUWSNHPmTNWqVcuqzblz5xQZGSmTyaRq1arJ19dXp0+f1vnz5zVv3jwFBgYqICAgx3NlrmbWtWtXVa5cOc+1tm3bVm3btrXYVr9+fX344YcKCAjQq6++qjlz5mjEiBGqUaNGtv3MmjVL06dPz/P5AQAAADiOzEdZurm5ZdvG3d1dkpSYmHjb54mIiDC/eedf//qXOnXqZLM98xkAQFF26NAhDRgwQGfOnJGrq6vee+89vfzyy6xiBiBbPDrzNv3yyy8KCgpS6dKl5eXlpRYtWuiTTz5RRkbGbfW3e/duPfzwwypbtqw8PT3VsGFDzZgxwzxxyq0RI0bo+PHjVh/79++/rboAAAAAFJxz587pwQcfVFJSkgYPHqwxY8ZYtZk1a5aGDh0qk8mkI0eO6Pz58zp69KgiIyM1bNgwbdu2TYGBgYqOjrZ5rrS0NC1dulSS9PTTT+f7WEaOHKkqVaooPT1da9eutdl2woQJio6Otvlx4cKFfK8RAAAAQNHh4eEhSUpJScm2TebKYp6enrd1jhs3bqhXr166du2aunTpotmzZ+d4DPMZAEBRZBiG/ve//6l9+/Y6c+aMqlevrh07duiVV14hZAbAJoJmt+Htt99W7969FRwcrFKlSql27doKCQnRyy+/rL59++Y5bLZkyRJ17NhRa9eulbu7uxo0aKDTp09rypQp6tSpkxISEu7SSAAAKNwMw1BSUpIiIyN1+vRphYWFKTU11d5lAcBdceXKFXXv3l2XL19W7969tXDhQqv/qRMZGak333xTkrRw4ULdc8895n3e3t767LPP1LBhQ126dEmffvqpzfNt3LhRkZGR8vLyUt++ffN9PM7OzmrTpo0k6fTp0zbburu7y9fXN8cPAAAAAI4rN4/FzM3jNbMTFxenBx54QMePH1fLli3Nf7PJCfMZAEBRExMTo0GDBulf//qXUlJS9NBDD+nQoUPm/5cHALbw6Mw82r17tyZOnCgnJyctXrxYgwYNkiSFhISoZ8+eWrt2rWbPnp3lygNZOX/+vIYNG6b09HS9++67GjNmjEwmk8LDw9WzZ0/t379f48aN03//+9+7OSwAAPJVenq6YmNjFRMTY/7vrR//3GarzT+DZa6urqpXr54aN26sRo0amT9q1aolZ2dnO40YAO7MjRs31L17d505c0adO3fW8uXL5erqatXuwIEDSkpKkre3d5b/48fFxUVdunTR8ePHdeDAAZvnzHxsZt++feXt7Z0/A/mHzDGkpaXdlf4BAAAAOI46depI+vvRlmlpaXJxsf4T19mzZy3a5lZycrIefvhh7d27Vw0bNtT69evl4+Nz50UDAFDIhISEqH///goLC5OLi4veeecdjRo1ilXMAOQaQbM8mjlzpgzD0PPPP28OmUlS06ZNNXv2bD3xxBN6++239corr2T5h6F/eu+995ScnKwePXpo7Nix5u3Vq1fXV199pcDAQH3xxRd64403VL58+bsyJgAApL9XD0tMTMx1OMxWYCw+Pj7f6/P29lZ6eroSExMVGhqq0NBQi/3u7u6qX7++VQCtRo0acnJiEVcAhVfmu+ZDQ0PVunVr/fjjj9k+5iU2NjbH/gzDkCQlJSVl2yY2NlZr1qyRJD311FO3UXXuHDt2TJJUpUqVu3YOAAAAAI6hefPmcnV1VVJSUparrqSmpmr//v2SpLZt2+a637S0NA0YMEBbtmxRzZo1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NhE0AwAAAAAAAAAAAAAAAADYRNAMAFBsPProozKZTHr99ddtthswYIBMJpNee+21AqoMAAAAAHLGnAYAAABAUcacBgCKP5NhGIa9iwAAID9cvnxZDRo0UFxcnPbt26cWLVpYtfnxxx/10EMPqUaNGgoNDVWJEiXsUCkAAAAAWGNOAwAAAKAoY04DAMUfK5oBAIqNihUr6t1331V6erqGDRumtLQ0i/2xsbH617/+JUn6/PPPmbwAAAAAKFSY0wAAAAAoypjTAEDxR9AMAFCsPP/88+rSpYuOHDmi999/32Lf+PHj9eeff+qZZ55R9+7d7VQhAAAAAGSPOQ0AAACAoow5DQAUbwTNAADFislk0hdffCEPDw9Nnz5dYWFhkqTdu3frs88+U7ly5TR79mxz+7/++ktjxoxRvXr15OHhoVKlSqlXr1769ddfrfo2DENLly7VwIEDVbduXXl5ecnHx0dt2rTRp59+qoyMDKtjpk2bJpPJpIULF2rfvn168MEH5e/vL5PJpCNHjkiSrl+/rokTJ6pRo0by9vaWn5+f6tatq6efflr79u27O18oAAAAAIUScxoAAAAARRlzGgAo3giaAQCKnTp16mjKlClKSkrS888/r+TkZD333HPKyMjQRx99pNKlS0uSTpw4oebNm+uDDz5Qenq6HnjgAd1zzz3asmWL7rvvPn377bcW/SYnJ2vw4MHauHGjypUrpz59+qht27Y6duyYRowYoWeffTbbmn799Vd16NBB58+fV48ePdSpUyc5OTkpLi5O7dq106xZs5SamqqePXsqKChIfn5+Wrp0qX755Ze7+rUCAAAAUPgwpwEAAABQlDGnAYBizAAAoBhKTU01mjVrZkgy2rRpY0gyHnzwQfP+tLQ0o3HjxoYk46OPPjIyMjLM+w4dOmT4+/sbXl5extWrVy36/OGHH4zk5GSLc0VGRhqtWrUyJBnbt2+32Dd16lRDkiHJeOedd6zqXLBggSHJ+Pe//2217+rVq8bvv/9+218DAAAAAEUXcxoAAAAARRlzGgAonljRDABQLLm4uGjevHlydnbWvn375OPjo//973/m/T/++KNCQ0M1aNAgvfzyyzKZTOZ9zZs31xtvvKH4+HgtXrzYos9HH31Ubm5uFucqW7asZs2aJUlas2ZNlvU0btxYY8eOtdoeGRkpSeratavVvnLlyqlx48Z5GDUAAACA4oI5DQAAAICijDkNABRPLvYuAACAu6Vly5bq27evVqxYoeHDh6tKlSrmfZs2bZIkPfLII1ke26FDB0nS/v37rfYdOXJEGzduVHh4uBISEmQYhmJjYyVJYWFhWfbXp08fi0nSrTVK0sSJE+Xi4qKgoCB5eHjkfpAAAAAAii3mNAAAAACKMuY0AFD8EDQDABRrXl5eFv/NdP78eUnS448/rscffzzb469du2b+PCUlRUOGDNHSpUuzbZ85kfmnatWqZbm9W7duGjVqlObMmaM+ffrIzc1NzZo1U48ePTRs2DAFBARkey4AAAAAxR9zGgAAAABFGXMaACheCJoBABxSenq6JKlXr14qV65ctu3q169v/nz27NlaunSpGjdurPfee08tWrRQqVKl5OrqqlOnTqlevXoyDCPLfmy9+2X27NkaPny41qxZo+DgYO3cuVP79u3Tu+++q++++y7bd/MAAAAAcFzMaQAAAAAUZcxpAKBoImgGAHBImcszv/jii3rooYdydcyqVaskyTyJudXZs2fvqJ569epp3LhxGjdunJKSkjR37lyNGTNGw4cPZwIDAAAAwApzGgAAAABFGXMaACianOxdAAAA9hAUFCRJWr16da6PiYqKkiRVrVrVat/333+fL3VJf7+r5rXXXlPFihUVGRmpyMjIfOsbAAAAQPHAnAYAAABAUcacBgCKJoJmAACH1K9fP9WvX18LFy7UO++8o9TUVIv9KSkpWrlypX7//Xfztrp160qSPvvsM4u2K1as0Ndff31bdaxevVp79uyx2n748GFdvXpVPj4+KlWq1G31DQAAAKD4Yk4DAAAAoChjTgMARRNBMwCAQ3JxcdGqVatUtWpVjR8/XtWrV9f999+vAQMGqH379ipfvrwee+wxnTlzxnzMuHHj5OzsrPHjx6tVq1YaPHiwWrdurf79+2vUqFG3Vce2bdvUvn17ValSRX369NETTzyh++67T23atFFGRoZmzJghV1fX/Bo2AAAAgGKCOQ0AAACAoow5DQAUTS72LgAAAHupX7++jhw5oo8//lirVq3Sjh07ZBiGKlasqE6dOqlv377mpZslqVOnTtqxY4cmTZqkw4cP69SpU2rSpIl++OEHtWjRQu+//36eaxgyZIhcXFz066+/at++fYqOjlaFChX0wAMPaNSoUerSpUs+jhgAAABAccKcBgAAAEBRxpwGAIoek2EYhr2LAAAAAAAAAAAAAAAAAAAUXjw6EwAAAAAAAAAAAAAAAABgE0EzAAAAAAAAAAAAAAAAAIBNBM0AAAAAAAAAAAAAAAAAADYRNAMAAAAAAAAAAAAAAAAA2ETQDAAAAAAAAAAAAAAAAABgE0EzAAAAAAAAAAAAAAAAAIBNBM0AAAAAAAAAAAAAAAAAADYRNAMAAAAAAAAAAAAAAAAA2ETQDAAAAAAAAAAAAAAAAABgE0EzAAAAAAAAAAAAAAAAAIBNBM0AAAAAAAAAAAAAAAAAADYRNAMAAAAAAAAAAAAAAAAA2ETQDAAAAAAAAAAAAAAAAABgE0EzAAAAAAAAAAAAAAAAAIBNBM0AAAAAAAAAAAAAAAAAADYRNAMAAAAAAAAAAAAAAAAA2ETQDAAAAAAAAAAAAAAAAABgE0EzAAAAAAAAAAAAAAAAAIBNBM0AAAAAAAAAAAAAAAAAADYRNAMAAAAAAAAAAAAAAAAA2ETQDAAAAAAAAAAAAAAAAABgE0EzAAAAAAAAAAAAAAAAAIBNBM0AAAAAAAAAAAAAAAAAADYRNAMAAAAAAAAAAAAAAAAA2ETQDAAAAAAAAAAAAAAAAABgE0EzAAAAAAAAAAAAAAAAAIBNBM0AAAAAAAAAAAAAAAAAADYRNAMAAAAAAAAAAAAAAAAA2ETQDAAAAAAAAAAAAAAAAABgE0EzAAAAAAAAAAAAAAAAAIBNBM0AAAAAAAAAAAAAAAAAADYRNAMAAAAAAAAAAAAAAAAA2ETQDAAAAAAAAAAAAAAAAABgE0EzAAAAAAAAAAAAAAAAAIBNBM0AAAAAAAAAAAAAAAAAADYRNAMAAAAAAAAAAAAAAAAA2ETQDAAAAAAAAAAAAAAAAABgE0EzAAAAAAAAAAAAAAAAAIBNBM0AAAAAAAAAAAAAAAAAADYRNAMAAAAAAAAAAAAAAAAA2ETQDAAAAAAAAAAAAAAAAABgE0EzAAAAAAAAAAAAAAAAAIBNBM0AAAAAAAAAAAAAAAAAADYRNAMAAAAAAAAAAAAAAAAA2ETQDAAAAAAAAAAAAAAAAABgE0EzAAAAAAAAAAAAAAAAAIBNBM0AAAAAAAAAAAAAAAAAADYRNAMAAAAAAAAAAAAAAAAA2ETQDAAAAAAAAAAAAAAAAABgE0EzAAAAAAAAAAAAAAAA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RTMAAAAAQKGwcOFCmUwmdenSxbzNZDKZP27dbsuFCxc0btw4NWvWTH5+fvL09FStWrX08MMP6+uvv1ZSUpJF+4iICM2dO1e9e/dW3bp15eXlJW9vbzVs2FCvvvqqIiIisj1Xly5dZDKZNG3aNKWnp+vDDz9U8+bN5e3trXLlyumRRx5RSEiIuX1CQoJmzpypxo0by8vLS/7+/nr88cd15syZLPuPiorSJ598IkmaMWOGatSokauvwd3Url078+cXL1684/6cnJzuaNU6Z2fn2z528+bN5uth7NixWbYZM2aMnJyclJCQoO+///62z+Xojhw5Iunvnxk/Pz+bbT09PQugItumTZtm8boTHBys3r17q2zZsvLw8FCDBg00ffp0q9eTf4qOjtZbb72ltm3bqlSpUnJ3d1fVqlU1aNAg7dmz57bry/w5TExM1I0bNyz2bd++XeHh4ZKkiRMnWh3r5uZmXgltx44dOnv2bJ7OnflaHRAQIEnaunWrHnnkEVWsWFHOzs4aMmRInschWb+e1KtXT5UqVcr22JIlS+rRRx+VJIsV7jJdvnzZ/Hl2Kz62adPG/HlcXFzuis5BamqqPvzwQzVr1kxeXl4qXbq0unTpohUrVkiy/L3xT4X599E/v++//fab+vTpo3LlysnLy0vNmzfX/PnzLY75+eef1b17d5UtW1YlSpRQ69at9d1332U7hjsZf+bKlPfdd5/at29vtX/gwIHm36Fff/11tv3crluv5T///POOjs+P362StGHDBj366KOqUqWK3Nzc5Ovrq5o1a6pHjx56//33rV47Mp05c0YvvfSS6tSpI09PT/n6+qpFixZ68803s13xS5IOHTqkN998U506dVL16tXl4eGhkiVLql27dnrnnXdy9TN2+PBhPfvss6pVq5ZKlCghb29vNW3aVJMnT9a1a9du6+uwePFipaeny9vb27wi5K1q1qypxx9/XJL0zTffWO3PvLZubXer9u3bm39XZHVt3cl9CgAAAAAURi72LgAAAAAAAOnvcEn58uWVkpKiqKgoSVL58uXN+0uXLp1jH998841eeOEFc/jDzc1Nnp6eOnv2rM6ePau1a9fqnnvusXg049NPP63t27eb/+3n56fY2Fj98ccf+uOPP7Rw4UL99NNP6tChQ7bnTU1N1f3336/NmzfLzc1Nrq6u+uuvv7RmzRoFBwdr69atqlGjhrp3767Dhw/Lw8NDJpNJN27c0Pfff69t27Zp//79qlatmkW/K1asUEJCglxdXfX000/n6ut4t/3222/mz2vWrGnHSu5cZhhHkho2bJhlG29vb1WpUkURERFav369Ro4cWVDlFUu3E8Cwt/fee0+vv/66pL9fH1JSUnTixAlNmzZN27dv16ZNm7IMEuzdu1cPP/ywrl69KunvsEGJEiX0559/atmyZfruu+/01ltvacKECXmuKfPnMDNEdKtNmzZJ+vuRtIGBgVke36tXL4v2w4cPz3MNkvTxxx/r1VdflWEY8vPzy3Og4k5fTzw8PCQpy8fV3drfgQMH1LhxY6s2+/btkyR5eXmpfv36eT7/P8XHx+uBBx7Qr7/+Kunv77m7u7t+/fVXbd++XePHj7d5fGH+fXSrefPmafjw4TIMQ76+vkpISNCRI0f03HPP6fTp05o1a5amTp2qN998U05OTvLx8VFiYqIOHDiggQMHKioqSi+++GK+jT8hIUE7d+6UZHlt38pkMun+++/X//73P23cuDHbsd2uW6/lWrVq3dHx+fG79c0339TUqVPN/y5RooQMw9C5c+d07tw5bdq0Sa1atbIK8X///fd6+umnlZycLOnv15GUlBQdPnxYhw8f1rx587RhwwY1aNDA6pwtW7Y0f+7k5CRfX1/dvHlTe/fu1d69e/X1119r69atVq9ZmaZOnaoZM2bIMAxzzampqTp69KiOHj2qr776Sj///LOaN2+ep69F5mtip06dLB7NfKtevXpp4cKFCg8P18mTJ1WvXj2r4++///5sg/G9evXStm3btGPHDiUmJhaKwDQAAAAA3C2saAYAAAAAKBQef/xxXblyRStXrjRvu3Llivnj1u1Z+eWXX/TMM88oKSlJgYGB+u2335SYmKibN28qOjpav/76q55//nm5ublZHNe4cWO9/fbbOn78uBISEnTz5k0lJydr7969uv/++xUdHa3HH39ciYmJ2Z77008/1eHDh7V8+XLFxcUpNjZW+/btU82aNRUXF6dXXnlFzz//vKKiorRhwwbFx8crLi5OmzdvVtmyZRUZGZnlykM7duyQJLVo0ULu7u56//331bRpU5UoUUJ+fn5q06ZNrlcJuRNxcXEKDQ3VuHHj9MEHH0j6OxBQtmzZu3regpRVUOWf+37//feCKqfYyVw5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aBARERERERE9Z7y8vEwuk5CQUOL23n33XXzzzTcmlVmzZg1GjhxZ4jaJirNq1SqsWrXKpDKzZs3CrFmzyqlH9Czw8/PD/fv3TSpz/vx51KxZEw4ODli3bh1++eUXXLt2DY8ePYJKpcILL7yAtm3b4s0338SwYcOgUCjKqff0POG7lYiIiIiIiKoiBpoRERERERERPWcSExMrtL3U1FST21SpVOXUG6JCGRkZJt+XGRkZ5dQbelY8evTI5PumoKAAAGBhYYEpU6ZgypQp5dE1+pfhu5WIiIiIiIiqIm6dSUREREREVAa4bQ0REREREVUk/g1CREREREQVzayyO0BERERERERERERERERERERERERVGwPNiIiIiIiIiIiIiIiIiIiIiIiIyCAGmhEREREREREREREREREREREREZFBDDQjIiIiIiIiIiIiIiIiIiIiIiIigxhoRkRERERERERERERERERERERERAYx0IyIiIiIiIiIiIiIiIiIiIiIiIgMYqAZERERERERERERERERERERERERGcRAMyIiIiIiIiIiIiIiIiIiIiIiIjKIgWZERERERERERERERERERERERERkEAPNiIiIiIiIiIiIiIiIiIiIiIiIyCAGmhEREREREREREREREREREREREZFBDDQjIiIiIiKiKqVbt25QKBQICwur7K78q5XndVAoFFAoFIiKiirzuquyuLg4eexxcXGV3R0iIiIiIiIiIiIikzDQjIiIiIiIiMgIBQUFOHbsGGbNmoVOnTrB3d0dlpaWcHNzQ6dOnbB06VIkJyfrLf/PP/9g9erVeP3119G8eXN4eXnBysoKTk5OaN68Od555x3ExMRU4Ij+nVJSUvD9999jwYIFGDBgAF544QU5+OuLL74wqa47d+5g5syZaNq0KZydnWFvb4+6detiyJAh2LBhQ/kMoBjSWJ4+LCws4OHhgS5dumDVqlXIzMzUW4cUZNitWzeD6SU5xowZI9cTFxeHr776CtOnT0dAQACcnJxMDsRTKpVYtGgR2rVrBxcXF41nctmyZUhLSzP5XBU9Ro8ebbB9IQS2bt2KLl26wM3NDXZ2dmjQoAFmzJiBxMREo8ZQ1eTl5WHz5s0ICQlB+/btUbNmTdja2sLOzg4+Pj4YNWoUjh49alRd+/btQ2BgIKpXrw4bGxvUqVMHISEhuHPnTpn2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x45ISkqCQqHAokWLjK5Xnz59+gAANm/ejE2bNsnjTEhIwPTp07Fy5Uq9q20Zy9nZGcOGDcN3330nB2HExMSgf//+iImJgbm5eZmMpaiyGNfjx481DklGRobG57qCEWfMmAFvb2/k5ORg0KBB8qpXAHDhwgUMGDAAWVlZsLW1xYIFC/T2IS8vD71798b58+cBFAZyHD16FIGBgcjJyUHNmjUxadIkrXK1a9eGQqFAt27dDI5Rl/z8fERGRmLo0KHIycmRx2Ooj0+fq6eP0mzN+HT9qampclpycrJGWtFnBgDGjx8vB2OOGzcOGzdulMunpqZiw4YNcqCem5ubHCAoGT58OObMmYMzZ87I8wtQGCi4cOFCuWyNGjUwc+ZMrb43aNAAEydOBADMnz8f//3vf+V78Y8//kD//v2hUqng5eWFWbNmaZWPioqS56ovvvjClNNWLIVCgY0bN8La2hr37t1D+/bt8d1332nczw8ePMBXX32F3r174/3339co//bbb+Ott95CVFQUMjIy5M9zcnJw/Phx9OrVC8ePHwcAzJo1SyuQ1NXVFfPmzQNQGFC5aNEi+T65desWBg4ciIcPH8Le3r7M5gdpu86dO3fqDSK+c+cOunfvjocPH8LX19fklcxeeeUVzJ49G2fPntW4ZzIzM3Hw4EF07txZXulw0aJFWkGm33//vbyS2bBhw0wOMivununZsyf69u0LAJg4cSL27NkDtVoNADh27BiCgoIAAM2aNdN6HuLj49GuXTt8/vnnuHv3rhx4plarcebMGfTt21deHS8kJKRCV+gjIiIiIiIioipGEBERERERUampVCoRHR0tVCpVZXflmRcQECAAiLlz5wp/f38BQFhaWgpXV1cBQD7mzZunVTY0NFROj42N1Vn/V199Jezs7OR8FhYWwt3dXVhbW2vU/+GHH2qU6969u5zm6uoqPD099R5t27bVatfb21sub25uLtzc3ISzs7NGmw4ODuLLL78sk/OYnJwsGjZsKNdtZmYmXFxchEKhEABESEiICA4OFgBEcHCwVnnpOoSGhuody+rVq4Wvr68AIKytrTXGo1AoxKZNm3T2TcoTGRmpt//62i/tuIq2X9yha+xCCHHjxg1Ro0YNjevm4OCg8fsPP/ygVS42NlbOs3v3buHo6CjnL3pPuri4iPPnz+tsWzr3AQEBBsdmb2+vcU9Wq1ZNWFlZadz3q1evNnjujTneffdduVxkZKRR11ZX/uIOXfUdPHhQ47wDEE5OThq/u7m5id9++83gGM3MzISrq6tWWV9fX3H9+nW9/c/OzhaBgYFyfktLS/maAhDu7u7iwoULxY49PDxcK724e1gIIcLDwwUA4e3trTP9yJEjwt3dXWPecXd317jXAIgJEybobFt6jp2cnIS7u7swNzfX+Pzdd98VBQUFOttWq9Vi7NixGm0XnR/s7OzETz/9pHdsptqxY4fGdahRo4bw9vYWnTt3lvMU7Y+Tk5PBOdzT01OrjafvGRcXF+Hq6irPPQCElZWVWLFihc4+1qlTR87n4eFhsO2hQ4dqlS/unhFCCKVSKVq1aiXns7Gx0bje3t7eOt+NRecmaT738PDQei+OHTtW5OXlGXdRipDuKX33KhGVHP8GISIiIiKiimYBIiIiIiIioirIysoKx44dw8cff4yvv/4ad+/ehbOzM9q2bYsZM2agX79+Jar39ddfR48ePbBhwwYcPnwYd+7cQUpKChwcHNCoUSP4+/tjyJAhCAgI0CgnrQwDFK62ZIiNjY3WZ9u3b8eRI0dw8uRJxMfH49GjR8jPz0f16tXRqFEjvPzyyxg7dqy8vWdpubi44NSpU1i0aBEOHDiABw8ewMLCAt26dcPEiRPx6quvaq1qYypXV1ecO3cOy5Ytw969e3H//n24ubmhc+fOmDt3rtaWemWhIsZVnIYNG+L69etYvXo1Dhw4gLt376KgoAC+vr4IDAyUVz0zpH379rhw4QKWLFmCY8eO4dGjR6hRowb69euHBQsW4KWXXipVHzMzMzVWG1MoFLC3t4evry8CAgIwadIkNGnSpFRtVLaBAwfi+vXr2LBhA3755RfcuXMHmZmZcHZ2RoMGDdCnTx9MmTIFnp6eWmX/7//+D61atcLZs2dx//59PHnyBGq1Gi+++CJatmyJoUOHYvTo0TqfZYm1tTUOHTqErVu3Yvv27bh27Rqys7NRv359DBgwAO+//77OtitK7969cefOHWzcuBE//fQToqOjkZKSAltbWzRu3BgdO3bE4MGD0bt3b41yc+bMQZMmTfDrr7/i1q1bSEpKQmpqKpycnFC3bl34+/tj7NixaNGihd62FQoFtm3bhv79++Pzzz/HpUuXkJ6eDm9vb7z88suYPXs26tWrV2ZjHT16NADg888/x9WrV/Hw4UONORvQnMPT0tKQlpZmUhsff/wxfv75Z/z222+4e/cukpKSkJ2dDTc3NzRo0ADdu3fHuHHj4OPjo7N80fZ1bZtblK6tm43h6uqKM2fOYO3atdi1axdu3bqFgoICNG3aFEFBQZg5c6bO7Z49PT2xdu1anD59Gn/++ScePXqE5ORk2NjYoE6dOujUqRPGjRuHzp07l6hfRERERERERPT8UAjx/9dCJyIiIiIiohLLzs5GbGws6tSpYzAwgeh5ULt2bcTHxyM8PLzcg7qIiIiISDf+DUJERERERBXNrLI7QERERERERERERERERERERERERFUbA82IiIiIiIiIiIiIiIiIiIiIiIjIIAaaERERERERERERERERERERERERkUEWld0BIiIiIiIiItLt/v378PPzM6lMzZo1cf78+XLqERFR+fDy8jK5TEJCQjn0hIiIiIiIiIiI9GGgGREREREREVEVVVBQgMTERJPK2NjYlFNv/icuLq7c2yCifxdT5zoiIiIiIiIiIqp4DDQjIiIiIiIiqqJq164NIURld4OIqNxxriMiIiIiIiIiqvrMKrsDREREREREREREREREREREREREVLUx0IyIiIiIiIiIiIiIiIiIiIiIiIgMYqAZERERERERERERERERERERERERGcRAMyIiIiIiIiIiIiIiIiIiIiIiIjKIgWZERERERERlSAhR2V0gIiIiIqJ/Af7tQUREREREFY2BZkRERERERGXAzKzwz6uCgoJK7gkREREREf0bSH97SH+LEBERERERlTf+9UFERERERFQGLC0tYWlpiYyMjMruChERERER/Qukp6fLf4cQERERERFVBAaaERERERERlQGFQgFHR0ekpqZCpVJVdneIiIiIiOg5plKpkJaWBkdHRygUisruDhERERER/UsohBCisjtBRERERET0PCgoKMD9+/eRk5MDJycnODo6wtzcnF/8EBERERFRqQkhUFBQgPT0dKSlpcHa2ho1a9aEubl5ZXeNiIiIiIj+JRhoRkREREREVIYKCgrw+PFjpKenIy8vr7K7Q0REREREzxlLS0s4OjrCw8ODQWZERERERFShGGhGRERERERUDoQQyMvLg1qtruyuEBERERHRc8LMzAyWlpZcNZmIiIiIiCoFA82IiIiIiIiIiIiIiIiIiIiIiIjIILPK7gARERERERERERERERERERERERFVbQw0IyIiIiIiIiIiIiIiIiIiIiIiIoMYaEZEREREREREREREREREREREREQGMdCMiIiIiIiIiIiIiIiIiIiIiIiIDGKgGRERERERERERERERERERERERERnEQDMiIiIiIiIiIiIiIiIiIiIiIiIyiIFmREREREREREREREREREREREREZND/A9eQmxPtCV70AAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%matplotlib inline\n", "\n", "import matplotlib.pyplot as plt\n", "import xarray as xr\n", "import numpy as np\n", "import matplotlib.ticker as ticker\n", "from matplotlib.ticker import MultipleLocator\n", "from matplotlib.lines import Line2D\n", "\n", "fig = plt.figure(figsize=(30,15))\n", "\n", "# Change the layout/number of subplots based off number of variables desired\n", "rows = 2\n", "cols = 3\n", "gs = fig.add_gridspec(rows, cols, hspace=.3, wspace=.2)\n", "\n", "# Rough subset for Lab Sea\n", "w = -63.5+360\n", "e = -47.5+360\n", "s = 53.5\n", "n = 65.5\n", "subset = {\"s\":s,\"n\":n,\"e\":e,\"w\":w}\n", "\n", "# Add more colors as needed for number of test cases\n", "# ** Baseline is already added as green dashed line in plotting function **\n", "# matplotlib colors here: https://matplotlib.org/stable/gallery/color/named_colors.html\n", "colors = [\"k\", \"aqua\", \"orange\", \"b\", \"magenta\", \"goldenrod\", \"slategrey\", \"rosybrown\"]\n", "\n", "# Setup plotting\n", "#---------------\n", "\n", "# Loop over variables:\n", "for i,var in enumerate(ts_var_list):\n", " \n", " print(\"Plotting variable:\",var)\n", " \n", " if var == \"RESTOM\":\n", " ax = plt.subplot(gs[0, 0])\n", " if var == \"TS\":\n", " ax = plt.subplot(gs[0, 1])\n", " if var == \"ICEFRAC\":\n", " ax = plt.subplot(gs[0, 2])\n", "\n", " # Grab baseline case:\n", " #--------------------\n", "\n", " if var == \"RESTOM\": \n", " avg_base_FSNT,yrs_base,unit = _data_calcs(data_ts_loc,'FSNT')\n", " avg_base_FLNT,_,_ = _data_calcs(data_ts_loc,\"FLNT\")\n", " if len(yrs_base) < 5:\n", " print(f\"Not a lot of climo years for {data_name}, only doing 1-yr avg for RESTOM...\")\n", " FSNT_base = avg_base_FSNT\n", " FLNT_base = avg_base_FLNT\n", " else:\n", " FSNT_base = avg_base_FSNT.rolling(time=60,center=True).mean()\n", " FLNT_base = avg_base_FLNT.rolling(time=60,center=True).mean()\n", "\n", " avg_base = FSNT_base - FLNT_base\n", " \n", " if (var == \"TS\" or var == \"SST\"):\n", " avg_base,yrs_base,unit = _data_calcs(data_ts_loc,var)\n", " \n", " if var == \"ICEFRAC\":\n", " avg_base,yrs_base,unit = _data_calcs(data_ts_loc,var,subset)\n", " \n", " # Get int of years for plotting on x-axis\n", " yrs_base_int = yrs_base.astype(int)\n", "\n", " # Create yearly averages\n", " vals_base = [avg_base.sel(time=i).mean() for i in yrs_base]\n", " \n", " # Plot baseline data\n", " color_dict = {\"color\":\"g\",\"marker\":\"--\"}\n", " ax = ts_plot(ax, data_name, vals_base, yrs_base_int, unit, color_dict)\n", "\n", " # Loop over test cases:\n", " #----------------------\n", " # Create lists to hold all sets of years (for each case) and\n", " # sets of var data (for each case)\n", " vals_cases = []\n", " yrs_cases = []\n", " for case_idx, case_name in enumerate(case_names):\n", "\n", " if var == \"RESTOM\":\n", " avg_case_FSNT,yrs_case,unit = _data_calcs(case_ts_locs[case_idx],'FSNT')\n", " avg_case_FLNT,_,_ = _data_calcs(case_ts_locs[case_idx],\"FLNT\")\n", " if len(yrs_case) < 5:\n", " print(f\"Not a lot of climo years for {case_name}, only doing 1-yr avg for RESTOM...\")\n", " FSNT_case = avg_case_FSNT\n", " FLNT_case = avg_case_FLNT\n", " color_dict = {\"color\":colors[case_idx],\"marker\":\"-*\"}\n", " else:\n", " FSNT_case = avg_case_FSNT.rolling(time=60,center=True).mean()\n", " FLNT_case = avg_case_FLNT.rolling(time=60,center=True).mean()\n", " color_dict = {\"color\":colors[case_idx],\"marker\":\"-\"}\n", "\n", " avg_case = FSNT_case - FLNT_case\n", "\n", " if var == \"TS\":\n", " avg_case,yrs_case,unit = _data_calcs(case_ts_locs[case_idx],var)\n", " color_dict = {\"color\":colors[case_idx],\"marker\":\"-\"}\n", " \n", " if var == \"ICEFRAC\":\n", " avg_case,yrs_case,unit = _data_calcs(case_ts_locs[case_idx],var,subset)\n", " color_dict = {\"color\":colors[case_idx],\"marker\":\"-\"}\n", " \n", " # Get yearly averages for all available years\n", " vals_case = [avg_case.sel(time=i).mean() for i in yrs_case]\n", " vals_cases.append(vals_case)\n", " \n", " # Get int of years for plotting on x-axis\n", " yrs_case_int = yrs_case.astype(int)\n", " yrs_cases.append(yrs_case_int)\n", " \n", " # Add case to plot (ax)\n", " ax = ts_plot(ax, case_name, vals_case, yrs_case_int, unit, color_dict)\n", "\n", " # End for (case names)\n", "\n", " # Get variable details\n", " ax = plot_var_details(ax, var, vals_cases, vals_base)\n", "\n", " #Grab all unique years and find min/max years\n", " uniq_yrs = sorted(x for v in yrs_cases for x in v)\n", " max_year = int(max(uniq_yrs))\n", " min_year = int(min(uniq_yrs))\n", "\n", " last_year = max_year - max_year % 5\n", " if (max_year > 5) and (last_year < max_year):\n", " last_year += 5\n", "\n", " first_year = min_year - min_year % 5\n", " if min_year < 5:\n", " first_year = 0\n", "\n", " ax.set_xlim(first_year, last_year)\n", " ax.set_xlabel(\"Years\",fontsize=15,labelpad=20)\n", " # Set the x-axis plot limits\n", " # to guarantee data from all cases (including baseline) are on plot\n", " ax.set_xlim(min_year, max_year+1)\n", "\n", " # x-axis ticks and numbers\n", " if max_year-min_year > 120:\n", " ax.xaxis.set_major_locator(MultipleLocator(20))\n", " ax.xaxis.set_minor_locator(MultipleLocator(10))\n", " if 10 <= max_year-min_year <= 120:\n", " ax.xaxis.set_major_locator(MultipleLocator(5))\n", " ax.xaxis.set_minor_locator(MultipleLocator(1))\n", " if 0 < max_year-min_year < 10:\n", " ax.xaxis.set_major_locator(MultipleLocator(1))\n", " ax.xaxis.set_minor_locator(MultipleLocator(1))\n", " \n", " # End for (case loop)\n", "# End for (variables loop)\n", "\n", "# Set up legend\n", "# Gather labels based on case names and plotted line format (color, style, etc)\n", "lines_labels = [ax.get_legend_handles_labels() for ax in fig.axes]\n", "lines, labels = [sum(lol, []) for lol in zip(*lines_labels)]\n", "fig.legend(lines[:case_names_len+1], labels[:case_names_len+1],\n", " loc=\"center left\",fontsize=18,\n", " bbox_to_anchor=(0.365, 0.4,.02,.05)) #bbox_to_anchor(x0, y0, width, height)\n", "\n", "fig.show()\n", "\n", "#plt.savefig(\"TimeSeries_ANN.png\", facecolor='w',bbox_inches=\"tight\")" ] }, { "cell_type": "code", "execution_count": null, "id": "7b037d2f-85c0-4849-a8f1-f4a18d3ddc31", "metadata": { "papermill": { "duration": 0.018197, "end_time": "2024-01-18T18:30:07.922331", "exception": false, "start_time": "2024-01-18T18:30:07.904134", "status": "completed" }, "tags": [] }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "cupid-analysis" }, "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.11.4" }, "papermill": { "duration": 89.181675, "end_time": "2024-01-18T18:30:11.557374", "exception": null, "input_path": "/glade/derecho/scratch/hannay/tmp/tmpoj2lihxf.ipynb", "output_path": "/glade/u/home/hannay/CUPiD/examples/adf-mom6/computed_notebooks/adf-quick-run/adf_quick_run.ipynb", "parameters": { "adf_path": "../../externals/ADF", "config_fil_str": "config_f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae.001.yaml", "config_path": ".", "product": "/glade/u/home/hannay/CUPiD/examples/adf-mom6/computed_notebooks/adf-quick-run/adf_quick_run.ipynb", "sname": "adf-quick-run", "subset_kwargs": {}, "test_global_param": "hello" }, "start_time": "2024-01-18T18:28:42.375699" } }, "nbformat": 4, "nbformat_minor": 5 }