{ "cells": [ { "cell_type": "markdown", "id": "1ca2a6f5-bd5a-4520-8380-baf5cb536d41", "metadata": { "papermill": { "duration": 0.018473, "end_time": "2023-10-18T22:47:31.877048", "exception": false, "start_time": "2023-10-18T22:47:31.858575", "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.09786, "end_time": "2023-10-18T22:47:32.017705", "exception": false, "start_time": "2023-10-18T22:47:31.919845", "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": "2023-10-18T22:47:32.151894Z", "iopub.status.busy": "2023-10-18T22:47:32.151626Z", "iopub.status.idle": "2023-10-18T22:47:32.158495Z", "shell.execute_reply": "2023-10-18T22:47:32.158009Z" }, "papermill": { "duration": 0.099403, "end_time": "2023-10-18T22:47:32.165922", "exception": false, "start_time": "2023-10-18T22:47:32.066519", "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.034359, "end_time": "2023-10-18T22:47:32.296276", "exception": false, "start_time": "2023-10-18T22:47:32.261917", "status": "completed" }, "tags": [] }, "source": [ "#### Paths" ] }, { "cell_type": "code", "execution_count": 2, "id": "9e627890-a0a9-42d9-bb23-302abfedd944", "metadata": { "execution": { "iopub.execute_input": "2023-10-18T22:47:32.416666Z", "iopub.status.busy": "2023-10-18T22:47:32.416338Z", "iopub.status.idle": "2023-10-18T22:47:32.421093Z", "shell.execute_reply": "2023-10-18T22:47:32.420493Z" }, "papermill": { "duration": 0.082633, "end_time": "2023-10-18T22:47:32.424084", "exception": false, "start_time": "2023-10-18T22:47:32.341451", "status": "completed" }, "tags": [] }, "outputs": [], "source": [ "### default parameters\n", "# adf_path = \"./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": "2023-10-18T22:47:32.520701Z", "iopub.status.busy": "2023-10-18T22:47:32.520456Z", "iopub.status.idle": "2023-10-18T22:47:32.523201Z", "shell.execute_reply": "2023-10-18T22:47:32.522739Z" }, "papermill": { "duration": 0.061496, "end_time": "2023-10-18T22:47:32.525221", "exception": false, "start_time": "2023-10-18T22:47:32.463725", "status": "completed" }, "tags": [ "parameters" ] }, "outputs": [], "source": [ "# cell to insert parameters" ] }, { "cell_type": "code", "execution_count": 4, "id": "20aeb948", "metadata": { "execution": { "iopub.execute_input": "2023-10-18T22:47:32.640604Z", "iopub.status.busy": "2023-10-18T22:47:32.640361Z", "iopub.status.idle": "2023-10-18T22:47:33.042854Z", "shell.execute_reply": "2023-10-18T22:47:33.042282Z" }, "papermill": { "duration": 0.467335, "end_time": "2023-10-18T22:47:33.044695", "exception": false, "start_time": "2023-10-18T22:47:32.577360", "status": "completed" }, "tags": [ "injected-parameters" ] }, "outputs": [], "source": [ "# Parameters\n", "test_global_param = \"hello\"\n", "sname = \"adf-quick-run\"\n", "adf_path = \"./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", "subset_kwargs = {}\n", "product = \"/glade/u/home/eromashkova/codes/test-combined-diags/computed_notebooks/adf-quick-run/adf_quick_run.ipynb\"\n" ] }, { "cell_type": "markdown", "id": "a88e305c-5473-4de6-9aa5-bf674ecd899f", "metadata": { "papermill": { "duration": 0.019243, "end_time": "2023-10-18T22:47:33.079114", "exception": false, "start_time": "2023-10-18T22:47:33.059871", "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": "2023-10-18T22:47:33.166006Z", "iopub.status.busy": "2023-10-18T22:47:33.165772Z", "iopub.status.idle": "2023-10-18T22:47:33.170923Z", "shell.execute_reply": "2023-10-18T22:47:33.170396Z" }, "papermill": { "duration": 0.070195, "end_time": "2023-10-18T22:47:33.172128", "exception": false, "start_time": "2023-10-18T22:47:33.101933", "status": "completed" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "current working directory = /glade/u/home/eromashkova/codes/test-combined-diags/nblibrary\n", "ADF path = ./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": "2023-10-18T22:47:33.274393Z", "iopub.status.busy": "2023-10-18T22:47:33.274162Z", "iopub.status.idle": "2023-10-18T22:47:33.633991Z", "shell.execute_reply": "2023-10-18T22:47:33.633398Z" }, "papermill": { "duration": 0.387163, "end_time": "2023-10-18T22:47:33.635596", "exception": false, "start_time": "2023-10-18T22:47:33.248433", "status": "completed" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The lib scripts live here, right? ./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": "2023-10-18T22:47:33.703541Z", "iopub.status.busy": "2023-10-18T22:47:33.703306Z", "iopub.status.idle": "2023-10-18T22:47:33.713352Z", "shell.execute_reply": "2023-10-18T22:47:33.708380Z" }, "papermill": { "duration": 0.069069, "end_time": "2023-10-18T22:47:33.715074", "exception": false, "start_time": "2023-10-18T22:47:33.646005", "status": "completed" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The plotting scripts live here, right? ./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.054868, "end_time": "2023-10-18T22:47:33.818081", "exception": false, "start_time": "2023-10-18T22:47:33.763213", "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": "2023-10-18T22:47:33.894490Z", "iopub.status.busy": "2023-10-18T22:47:33.894258Z", "iopub.status.idle": "2023-10-18T22:47:33.898050Z", "shell.execute_reply": "2023-10-18T22:47:33.897384Z" }, "papermill": { "duration": 0.056164, "end_time": "2023-10-18T22:47:33.901021", "exception": false, "start_time": "2023-10-18T22:47:33.844857", "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": "2023-10-18T22:47:34.039034Z", "iopub.status.busy": "2023-10-18T22:47:34.038802Z", "iopub.status.idle": "2023-10-18T22:47:42.183484Z", "shell.execute_reply": "2023-10-18T22:47:42.182900Z" }, "papermill": { "duration": 8.198358, "end_time": "2023-10-18T22:47:42.185178", "exception": false, "start_time": "2023-10-18T22:47:33.986820", "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": "2023-10-18T22:47:42.234762Z", "iopub.status.busy": "2023-10-18T22:47:42.234446Z", "iopub.status.idle": "2023-10-18T22:47:43.318037Z", "shell.execute_reply": "2023-10-18T22:47:43.317518Z" }, "papermill": { "duration": 1.112588, "end_time": "2023-10-18T22:47:43.319615", "exception": false, "start_time": "2023-10-18T22:47:42.207027", "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.028494, "end_time": "2023-10-18T22:47:43.354632", "exception": false, "start_time": "2023-10-18T22:47:43.326138", "status": "completed" }, "tags": [] }, "source": [ "### ADF Standard Work Flow" ] }, { "cell_type": "markdown", "id": "1b1d075b-232d-4466-a6be-192c457ae5a9", "metadata": { "papermill": { "duration": 0.076348, "end_time": "2023-10-18T22:47:43.473817", "exception": false, "start_time": "2023-10-18T22:47:43.397469", "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": "2023-10-18T22:47:43.537078Z", "iopub.status.busy": "2023-10-18T22:47:43.536834Z", "iopub.status.idle": "2023-10-18T22:47:58.521511Z", "shell.execute_reply": "2023-10-18T22:47:58.519381Z" }, "papermill": { "duration": 15.017616, "end_time": "2023-10-18T22:47:58.523134", "exception": false, "start_time": "2023-10-18T22:47:43.505518", "status": "completed" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", " Generating CAM time series files...\n", "\t Processing time series for case 'f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae_numcin3.001' :\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "WARNING: TROP_T is not in the file /glade/derecho/scratch/hannay/archive/f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae_numcin3.001/atm/hist/f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae_numcin3.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", "\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" ] }, { "name": "stdout", "output_type": "stream", "text": [ "WARNING: AODDUSTdn is not in the file /glade/derecho/scratch/hannay/archive/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/derecho/scratch/hannay/archive/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.03056, "end_time": "2023-10-18T22:47:58.570578", "exception": false, "start_time": "2023-10-18T22:47:58.540018", "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": "2023-10-18T22:47:58.633268Z", "iopub.status.busy": "2023-10-18T22:47:58.633000Z", "iopub.status.idle": "2023-10-18T22:47:59.890566Z", "shell.execute_reply": "2023-10-18T22:47:59.890013Z" }, "papermill": { "duration": 1.291433, "end_time": "2023-10-18T22:47:59.892064", "exception": false, "start_time": "2023-10-18T22:47:58.600631", "status": "completed" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", " Calculating CAM climatologies...\n", "\t Calculating climatologies for case 'f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae_numcin3.001' :\n", "\t INFO: Found climo file and clobber is False, so skipping AODDUSTdn and moving to next variable.\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/scratch/richling/adf-output/ADF-data/timeseries/f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae_numcin3.001/1995-2005. The glob pattern was f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae_numcin3.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", "\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 '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/scratch/richling/adf-output/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/scratch/richling/adf-output/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", "\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" ] }, { "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 'f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae_numcin3.001' :\n", "\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.070282, "end_time": "2023-10-18T22:47:59.970207", "exception": false, "start_time": "2023-10-18T22:47:59.899925", "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": "2023-10-18T22:48:00.078721Z", "iopub.status.busy": "2023-10-18T22:48:00.078459Z", "iopub.status.idle": "2023-10-18T22:48:08.577384Z", "shell.execute_reply": "2023-10-18T22:48:08.576821Z" }, "papermill": { "duration": 8.584069, "end_time": "2023-10-18T22:48:08.578803", "exception": false, "start_time": "2023-10-18T22:47:59.994734", "status": "completed" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", " Regridding CAM climatologies...\n", "\t Regridding case 'f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae_numcin3.001' :\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.051566, "end_time": "2023-10-18T22:48:08.657824", "exception": false, "start_time": "2023-10-18T22:48:08.606258", "status": "completed" }, "tags": [] }, "source": [ "#### Run statistics on Time Series files" ] }, { "cell_type": "markdown", "id": "e40c90be-b041-46b6-b268-3f3f02ea855a", "metadata": { "papermill": { "duration": 0.087854, "end_time": "2023-10-18T22:48:08.777228", "exception": false, "start_time": "2023-10-18T22:48:08.689374", "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.030419, "end_time": "2023-10-18T22:48:08.841345", "exception": false, "start_time": "2023-10-18T22:48:08.810926", "status": "completed" }, "tags": [] }, "source": [ "#### Create Plots" ] }, { "cell_type": "markdown", "id": "31c8782b-1492-4260-bfea-48a69169e30a", "metadata": { "papermill": { "duration": 0.055564, "end_time": "2023-10-18T22:48:08.952810", "exception": false, "start_time": "2023-10-18T22:48:08.897246", "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.055509, "end_time": "2023-10-18T22:48:09.069746", "exception": false, "start_time": "2023-10-18T22:48:09.014237", "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.04713, "end_time": "2023-10-18T22:48:09.167360", "exception": false, "start_time": "2023-10-18T22:48:09.120230", "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.025136, "end_time": "2023-10-18T22:48:09.256393", "exception": false, "start_time": "2023-10-18T22:48:09.231257", "status": "completed" }, "tags": [] }, "source": [ "---" ] }, { "cell_type": "markdown", "id": "29b2605d-519c-4305-ab2b-47c5c053a00c", "metadata": { "papermill": { "duration": 0.081982, "end_time": "2023-10-18T22:48:09.351216", "exception": false, "start_time": "2023-10-18T22:48:09.269234", "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.081487, "end_time": "2023-10-18T22:48:09.449945", "exception": false, "start_time": "2023-10-18T22:48:09.368458", "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": "2023-10-18T22:48:09.521821Z", "iopub.status.busy": "2023-10-18T22:48:09.521559Z", "iopub.status.idle": "2023-10-18T22:48:09.526690Z", "shell.execute_reply": "2023-10-18T22:48:09.526096Z" }, "papermill": { "duration": 0.051653, "end_time": "2023-10-18T22:48:09.529495", "exception": false, "start_time": "2023-10-18T22:48:09.477842", "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", " '__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", " '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": "2023-10-18T22:48:09.639334Z", "iopub.status.busy": "2023-10-18T22:48:09.639092Z", "iopub.status.idle": "2023-10-18T22:48:09.643050Z", "shell.execute_reply": "2023-10-18T22:48:09.642516Z" }, "papermill": { "duration": 0.037565, "end_time": "2023-10-18T22:48:09.645534", "exception": false, "start_time": "2023-10-18T22:48:09.607969", "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.016393, "end_time": "2023-10-18T22:48:09.744463", "exception": false, "start_time": "2023-10-18T22:48:09.728070", "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.038077, "end_time": "2023-10-18T22:48:09.832548", "exception": false, "start_time": "2023-10-18T22:48:09.794471", "status": "completed" }, "tags": [] }, "source": [ "#### Basic Info Section" ] }, { "cell_type": "code", "execution_count": 16, "id": "e3904cb9-a618-43af-9605-e6fcd4e7fd59", "metadata": { "execution": { "iopub.execute_input": "2023-10-18T22:48:09.998145Z", "iopub.status.busy": "2023-10-18T22:48:09.997907Z", "iopub.status.idle": "2023-10-18T22:48:10.003053Z", "shell.execute_reply": "2023-10-18T22:48:10.002441Z" }, "papermill": { "duration": 0.047072, "end_time": "2023-10-18T22:48:10.004349", "exception": false, "start_time": "2023-10-18T22:48:09.957277", "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.041697, "end_time": "2023-10-18T22:48:10.129641", "exception": false, "start_time": "2023-10-18T22:48:10.087944", "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": "2023-10-18T22:48:10.228832Z", "iopub.status.busy": "2023-10-18T22:48:10.228590Z", "iopub.status.idle": "2023-10-18T22:48:10.232915Z", "shell.execute_reply": "2023-10-18T22:48:10.232431Z" }, "papermill": { "duration": 0.072449, "end_time": "2023-10-18T22:48:10.234088", "exception": false, "start_time": "2023-10-18T22:48:10.161639", "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_numcin3.001\n", "cam_hist_loc: /glade/derecho/scratch/hannay/archive/${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}/${diag_cam_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: ${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.058773, "end_time": "2023-10-18T22:48:10.322226", "exception": false, "start_time": "2023-10-18T22:48:10.263453", "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": "2023-10-18T22:48:10.428992Z", "iopub.status.busy": "2023-10-18T22:48:10.428756Z", "iopub.status.idle": "2023-10-18T22:48:10.433306Z", "shell.execute_reply": "2023-10-18T22:48:10.432744Z" }, "papermill": { "duration": 0.077528, "end_time": "2023-10-18T22:48:10.434514", "exception": false, "start_time": "2023-10-18T22:48:10.356986", "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/derecho/scratch/hannay/archive/${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: ${climo_loc}${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: ${ts_loc}${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.065621, "end_time": "2023-10-18T22:48:10.525818", "exception": false, "start_time": "2023-10-18T22:48:10.460197", "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.052724, "end_time": "2023-10-18T22:48:10.632957", "exception": false, "start_time": "2023-10-18T22:48:10.580233", "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": "2023-10-18T22:48:10.738101Z", "iopub.status.busy": "2023-10-18T22:48:10.737855Z", "iopub.status.idle": "2023-10-18T22:48:10.742812Z", "shell.execute_reply": "2023-10-18T22:48:10.742357Z" }, "papermill": { "duration": 0.058166, "end_time": "2023-10-18T22:48:10.744002", "exception": false, "start_time": "2023-10-18T22:48:10.685836", "status": "completed" }, "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "['f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae_numcin3.001']\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.038512, "end_time": "2023-10-18T22:48:10.847603", "exception": false, "start_time": "2023-10-18T22:48:10.809091", "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": "2023-10-18T22:48:10.963378Z", "iopub.status.busy": "2023-10-18T22:48:10.963140Z", "iopub.status.idle": "2023-10-18T22:48:10.970730Z", "shell.execute_reply": "2023-10-18T22:48:10.970253Z" }, "papermill": { "duration": 0.06608, "end_time": "2023-10-18T22:48:10.973324", "exception": false, "start_time": "2023-10-18T22:48:10.907244", "status": "completed" }, "tags": [] }, "outputs": [ { "data": { "text/plain": [ "(['/glade/scratch/richling/adf-output/ADF-data/climos/f.cam6_3_119.FLTHIST_ne30.r328_gamma0.33_soae_numcin3.001/1995-2005/'],\n", " '/glade/scratch/richling/adf-output/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.043232, "end_time": "2023-10-18T22:48:11.112752", "exception": false, "start_time": "2023-10-18T22:48:11.069520", "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": "2023-10-18T22:48:11.198485Z", "iopub.status.busy": "2023-10-18T22:48:11.198243Z", "iopub.status.idle": "2023-10-18T22:48:11.202504Z", "shell.execute_reply": "2023-10-18T22:48:11.202032Z" }, "papermill": { "duration": 0.058062, "end_time": "2023-10-18T22:48:11.203693", "exception": false, "start_time": "2023-10-18T22:48:11.145631", "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.037038, "end_time": "2023-10-18T22:48:11.308264", "exception": false, "start_time": "2023-10-18T22:48:11.271226", "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": "2023-10-18T22:48:11.434694Z", "iopub.status.busy": "2023-10-18T22:48:11.434444Z", "iopub.status.idle": "2023-10-18T22:48:11.440115Z", "shell.execute_reply": "2023-10-18T22:48:11.439642Z" }, "papermill": { "duration": 0.0859, "end_time": "2023-10-18T22:48:11.441418", "exception": false, "start_time": "2023-10-18T22:48:11.355518", "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.050272, "end_time": "2023-10-18T22:48:11.560364", "exception": false, "start_time": "2023-10-18T22:48:11.510092", "status": "completed" }, "tags": [] }, "source": [ "---" ] }, { "cell_type": "markdown", "id": "4e847946-aed1-4226-be42-46b46fc945ea", "metadata": { "papermill": { "duration": 0.070528, "end_time": "2023-10-18T22:48:11.691656", "exception": false, "start_time": "2023-10-18T22:48:11.621128", "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.024067, "end_time": "2023-10-18T22:48:11.774334", "exception": false, "start_time": "2023-10-18T22:48:11.750267", "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": "2023-10-18T22:48:11.899618Z", "iopub.status.busy": "2023-10-18T22:48:11.899347Z", "iopub.status.idle": "2023-10-18T22:48:11.960853Z", "shell.execute_reply": "2023-10-18T22:48:11.960192Z" }, "papermill": { "duration": 0.100577, "end_time": "2023-10-18T22:48:11.964645", "exception": false, "start_time": "2023-10-18T22:48:11.864068", "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.069944, "end_time": "2023-10-18T22:48:12.068895", "exception": false, "start_time": "2023-10-18T22:48:11.998951", "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": "2023-10-18T22:48:12.179658Z", "iopub.status.busy": "2023-10-18T22:48:12.179378Z", "iopub.status.idle": "2023-10-18T22:48:12.194474Z", "shell.execute_reply": "2023-10-18T22:48:12.193853Z" }, "papermill": { "duration": 0.071222, "end_time": "2023-10-18T22:48:12.195859", "exception": false, "start_time": "2023-10-18T22:48:12.124637", "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": "2023-10-18T22:48:12.316550Z", "iopub.status.busy": "2023-10-18T22:48:12.316312Z", "iopub.status.idle": "2023-10-18T22:48:12.325980Z", "shell.execute_reply": "2023-10-18T22:48:12.325406Z" }, "papermill": { "duration": 0.064451, "end_time": "2023-10-18T22:48:12.327238", "exception": false, "start_time": "2023-10-18T22:48:12.262787", "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": "2023-10-18T22:48:12.425813Z", "iopub.status.busy": "2023-10-18T22:48:12.425521Z", "iopub.status.idle": "2023-10-18T22:48:12.430675Z", "shell.execute_reply": "2023-10-18T22:48:12.430064Z" }, "papermill": { "duration": 0.073845, "end_time": "2023-10-18T22:48:12.434510", "exception": false, "start_time": "2023-10-18T22:48:12.360665", "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": "2023-10-18T22:48:12.538776Z", "iopub.status.busy": "2023-10-18T22:48:12.538524Z", "iopub.status.idle": "2023-10-18T22:48:12.557962Z", "shell.execute_reply": "2023-10-18T22:48:12.557422Z" }, "papermill": { "duration": 0.067967, "end_time": "2023-10-18T22:48:12.567376", "exception": false, "start_time": "2023-10-18T22:48:12.499409", "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.080674, "end_time": "2023-10-18T22:48:12.708111", "exception": false, "start_time": "2023-10-18T22:48:12.627437", "status": "completed" }, "tags": [] }, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "1fa7a0d8-6d8f-45e1-b606-9507a11764dc", "metadata": { "papermill": { "duration": 0.071899, "end_time": "2023-10-18T22:48:12.822661", "exception": false, "start_time": "2023-10-18T22:48:12.750762", "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": "2023-10-18T22:48:12.911348Z", "iopub.status.busy": "2023-10-18T22:48:12.911106Z", "iopub.status.idle": "2023-10-18T22:48:12.918318Z", "shell.execute_reply": "2023-10-18T22:48:12.917663Z" }, "papermill": { "duration": 0.087714, "end_time": "2023-10-18T22:48:12.923392", "exception": false, "start_time": "2023-10-18T22:48:12.835678", "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": "2023-10-18T22:48:13.071723Z", "iopub.status.busy": "2023-10-18T22:48:13.071480Z", "iopub.status.idle": "2023-10-18T22:50:24.106929Z", "shell.execute_reply": "2023-10-18T22:50:24.106313Z" }, "papermill": { "duration": 131.126956, "end_time": "2023-10-18T22:50:24.108262", "exception": false, "start_time": "2023-10-18T22:48:12.981306", "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" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAACYcAAAMHCAYAAABo8nrKAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/P9b71AAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdZ3gV1fr38d9OJwmE3gOhSQARAemggDTpICCIQCgqikcUAWnSDyBFUUEs9KIgSJUioPTekRIIHWk5tCSU9Hle8M882aTtNFL4fq5rLnZm1rpnzW7MvWfNWhbDMAwBAAAAAAAAAAAAAAAAADIVu7RuAAAAAAAAAAAAAAAAAAAg5dE5DAAAAAAAAAAAAAAAAAAyITqHAQAAAAAAAAAAAAAAAEAmROcwAAAAAAAAAAAAAAAAAMiE6BwGAAAAAAAAAAAAAAAAAJkQncMAAAAAAAAAAAAAAAAAIBOicxgAAAAAAAAAAAAAAAAAZEJ0DgMAAAAAAAAAAAAAAACATIjOYQAAAAAAAAAAAAAAAACQCdE57DkzcuRIWSwWWSwWbd26Na2bgxTi5eUli8UiLy+vtG5KhrB161bzczBy5MhMs6/EimpX3bp107opAAAANiOnyZzIaRKHnOYJchoAAJARkdNkTuQ0qWvu3Lnm52bu3Llp3RwAADIcOoelc5cuXTJPdpK78GNp7B4+fKjZs2erbdu2Kl68uLJmzSoHBwd5eHjI29tbzZs31/Dhw/Xnn3/q8ePHad3c51ZERITWrl2rfv36qVq1aipSpIjc3Nzk4uKifPnyqVKlSurevbtmz56tO3fupHVzEYvoF5WeXuzs7OTh4aFSpUqpXbt2mj9/vs2ft6R+J96/fz/OmHfv3tW3336rZs2aydPTU25ubnJ0dFSOHDn04osvqm3btho7dqy2b9+usLAws170BDW5S3wX3sLDw7V8+XL16tVLL774ovLkySMnJyfly5dPL7/8sj766COtX79ehmHY9BxG/0EqavH19bWpriTVqlXLqm5G+QHE399fTk5OZrubNGmSqPp169a1Ou7+/fvbVK927dpmnUuXLsVaJurHpKhl2rRpNsUuXLiwWQcA0gtymtRHTpMxkNNkTKl9jp/U3CM9O3LkiNVx9+7dO1H1U/Nc+OnX5I8//kgwbnh4eIbLdQAAKYucJvWR06RP0c/L4vodM6O7du2axo8fr4YNG6pgwYLKkiWLnJyclCtXLr388svq2LGjJk2apAMHDigyMjKtm5umov8ebmvH1sjISK1bt06ffPKJXnnlFRUqVEguLi5yc3NT4cKF1ahRI33xxRc6fvx4nDGSmpO1bt061niJjfPyyy8nqk329vbKnj27ypYtq86dO2v58uUKDw+36fl6WoUKFcy4OXLkSNb334MHD7RgwQL5+PioXLlyyps3r5ycnOTh4aESJUrozTff1Ndff60bN24keR/P2scff2z13O/du9fmuk9fs3R3d9fNmzcTrLd582azjo+PT6xlnn5/eHp62vTazZw5M97fD4DkckjrBgBpaf369erVq5euX78eY1tgYKACAwN15swZrV27VpJUtWpV7du371k387m3aNEijRo1Sn5+frFu9/f3l7+/v44cOaK5c+fq/fffV7t27TRs2DCVK1fuGbcWSWEYhvmZO3funH7//XeNGjVKixcvVpUqVZ5pW+bPn6++ffvG2nns/v37un//vk6ePKkVK1ZIkjp06KAlS5Y8s/atWrVKAwYMiPXzEPVZOHbsmKZPn65KlSpp6tSpqlOnTqL3M3v2bE2cODHBcmfOnNHu3bsTHT89mDdvntUFtk2bNunKlSsqUqRIkuJNmzZNH3/8cZLrx2f06NHq1q2bsmbNmuKxAQAZGzlNxkBOg9ik99wjqWbOnGn196+//qqvvvpKrq6uSYqXmufCgwYNUtOmTWVnx/2zAACkFXIapJWJEydqxIgRCg4OjrHt7t27unv3ro4dO2aegw8cOFBffvnls25mhrVy5UoNGTJEp0+fjnX7o0ePdO3aNW3atEljx45V9erVNX78+AzfiTYyMlIBAQEKCAjQ6dOn9csvv6hixYpaunSpSpQoYXOcAwcOWHWau3//vpYvX67OnTsnqj0RERGaMmWKJk2apNu3b8fYHhYWpsDAQF24cEHLly9X//791aFDB40dOzZR7X3WQkJCtGjRIqt1s2bNUvXq1ZMU7+HDhxo1apRmzJiREs2z8u+//+rbb7/V559/nuKxgcSgc1g6lzdvXvNHwNicOHFCX3zxhSSpXLlyGjt2bJxlc+fOrdq1a9PT9P+sXbtWrVu3NntrFytWTG3atFG5cuWULVs2PXz4UJcvX9aBAwf0999/69GjR4qIiEjjVscus96xERISog8++EBz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BmndunXJjgskWhp3TkMypeYdKZIMDw8PY/fu3THKnThxwnBxcTHvYChRooRRpEgR4+zZszHKbt682Yz34osvxtqu69evm3dyeHh4GH/99Vec5V566SXzzpTTp08neMyxCQoKMnLnzm22K0+ePMaoUaOMo0ePGhEREYmOd+zYMfMuDU9PT+Po0aOxlvP19TUKFy5sSDKyZs0a68g00e9IkWS0bt3aePz4cbz7T+iOlPXr1xsWi8WQZLz00kvGhQsXYi23e/du866iokWLGmFhYVbb+/TpY7ZrzZo1cbYnMjLS2LZtW7xtjk/evHnN/ezcuTPJceKS0F32kZGR5vtM/9fzO+rOq+iWL19ujpxkb28f690e0fel/+vFHttn7+7du1Y90vv06RNr2/fv329cu3Yt3uNbuHChYWdnZ0gyevbsGWc5W7470mLksMjISKN169Zm2Xr16sUbN/rzmxyXL182nJyczFheXl7G5MmTjTNnziQrbnRJGVXgrbfeMuuMHDkySfuN/r3y+eefx9uun3/+2TAMw5g5c6a5LrY7kMqVK2d150pGuZv+5MmTZjtr1aplte38+fPmd2WFChUSjPX0yGGGYRj79u0z15UsWTLW746kjBxmGE/uekzoM8TIYQAyInIachrDIKdJLHKaJ551ThObpJzjP4vc41mLPopu1F3XUf766y9zW6tWrRKMlZrnwlHbo0YOMwzDmDhxotVn5WkZJdcBAKQdchpyGsPIfDmNYaTMyGGbNm0yHj58GOf2sLAwq2NasGBBrOWij8QjycibN69x4sSJGOWuXLlilChRwiwX2yjJe/bssYr14osvGjNmzDAuXbqUpGP84YcfzFj169c3/P39Yy23cuVKM/96+rfpKCmZLz3rkcOi54NxvY5JkZFHDgsODrZ6XhIaJTE8PNwcKTJLlixGQECAuS0yMtL8TDo6Ohq3bt2KNUZQUJD5/pBkXL16NUnHmF61b9/ePLZNmzZZbevSpYu5bcWKFfHGiW3kMMMwjKZNm8b7G0JSRg4zjCcjnpUvXz7ezxAjhyG1ceUwg0vtpCO+YXV79uxpVXb79u1xln399dfj/U/o008/NbevWrUq3mPw9fU1h4rt3bt3vGXjs2LFiliHd3V3dzdeffVV49NPPzWWLl1q3L59O8FYbdq0MROhw4cPx1s2+n8aEyZMiLE9etJR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TutmpbnevXvryy+/1I0bN7Rw4UINHDhQL774ork9KChIS5culSTZ29tryJAhNk0T/NNPP+nGjRvatWuXfH195e3tbW778MMPNWXKFIWEhGjDhg3atWuX1Sw1GU30a2Ldu3dXkSJFEqyzceNG7dmzR48ePdKvv/6q999/P9H7dXFx0ahRo9SzZ09FRkZq8ODB6tu3b6LjxCZ//vzq16+fxowZo6CgII0ZMybe32OAlMDIYUhz9vb2eueddyRJISEhqXpSHOX27dvm9GK2WLVqlfm4SJEiVr31c+fObXZauXnzZrob+rFSpUrmXSKHDx/Wr7/+mqr7ixq2WFKSp19wdXW16tDy7rvvPtO7fdq1a2c+njJlSrzH8c0335jDE7ds2VKOjo5xlr1//75mzpwZ5/Zr166Zr4+Li0uMzlDR5wyP786YxYsX69SpU3FuzyiifxdE3VmRmm7dupWo8tG/F6KfyKeG0aNHy8HhSX/u2bNna9GiRTbVGzdunP766y9JUrZs2fT5558naf8tWrRQvXr1VK1aNVWrVk19+vRJUpy0Ej1x+OCDDzRy5MgEl3HjxqlGjRqSnnw2//zzzyTt29HRUf/9738lPemsN3DgwOQf0P/JmTNnqg1rDABIHHKa1EVOk3jkNOlbes49EiP6efbgwYNtOs+eNm2aeef13r17k/w6p+a58AsvvGB2WkuP34kAAKQGcprUlRFzmpQQdf5//vz5eEerHT16dKLa6evra3Uz89MOHz6sv//+W9KTUcOifueNkpLn42+88Yby5s0rSVqxYkWypvDL6PmSxWIxfwuXnlzXsaUjX5SAgAD16NEjNZqWppydndW/f39JT64RPH2969dffzWniWzcuLFGjx5tU27l4+Njxpg9e7ZVzEKFCpmjLRuGobfffluXL1+2uc2nT5/WsGHDknK4Ke7s2bPauXOnpCdTPc6YMcOm52fkyJFmjOSMzNatWzeVK1dOkvTHH39o+/btyTqe6AYMGKA8efJIkn788UedP38+xWIDsaFzGNKFIUOGKGfOnJKe9HT+/PPPY9wFEt3jx481Z84cq/mFE2PZsmXy9vbWDz/8oLt378ZbdsuWLfr000/Nv2MbcWbs2LHmndPDhg3TN998E++JbkBAgKZOnWp150JqsVgsmjhxojlcb69evRJ83m7duqXRo0fr+PHjVuv79etn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dmxVtWrVihV7KzVapWirtLS1ae1VLdpSLVVURVUbe5YKEVvsPWITRCSy1/n9kZ/zbRokJJxI3s/H4zyc3Pd1X+dzpze97nPe57qeZNmyZcTGxuLu7k7t2rVTfZytra1p1jIRERERkczMwtwFiIiIiIiIiIiIiIiISOZTsmRJAK5cuUJcXNwj21y8eDFJ26f1cEnJt99+G4PB8Ex9iIiIiIhkZgqHiYiIiIiIiIiIiIiISLqrVKkS1tbWREVF4e/vn2x/bGws+/fvB6B69epP3f+FCxfYvXs3kBgOExERERGR5BQOExERERERERERERERkXTn5OREo0aNAJg/f36y/cuXLyc0NJRcuXJRr169p+5/8eLFAFSrVo3SpUunqVYRERERkcxK4TARERERERERERERERF5LkaOHInBYODnn39m6dKlpu1Hjhzhs88+A2DIkCHY2NiY9s2cORN3d3c6d+78xL6XLFkCwDvvvPMcKhcRERERyRwUDssgZs+eTdmyZZM9qlatau7SREREREREREREREREnkmtWrUYP348CQkJdO3aleLFi1OhQgUqV65MYGAgLVq04PPPP09yzP3797l8+TK3bt16bL+7d+/m/PnzWFtbpxgiExERERHJyqzMXYAk6tevH/369Uu2PTQ0FGdnZzNUJCIiIiIiIiIiIiIiknYjR46kQoUKzJgxg4MHD3Lr1i1ee+01evbsSf/+/bG0tHzqPh8uKdm0aVNcXV3Tu2QRERERkUzDYDQajeYuQh7vYTgsJCQEJycnc5cjIiIiImKisaqkRNeIiIiIiGRkGq9KSnSNiIiIiEhGltrxqpaVFBERERERERERERERERERERERyYQUDhMREREREREREREREREREREREcmEFA4TERERERERERERERERERERERHJhBQOExERERERERERERERERERERERyYQUDhMREREREREREREREREREREREcmEFA4TERERERERERERERERERERERHJhBQOExERERERERERERERERERERERyYQUDhMREREREREREREREREREREREcmErMxdgIgkunr1KtOmTcPW1hZbW1tsbGxMzx/1SGn/v9tYWCgHKiIiIiIiIiIiIiIiIiIiIpLVKBwmkkHcuHGD77///rn0bWVlleaAWXqE1P79sLS0fC7nKiIiIiIiIiIiIiIiIiIiIiKJFA4TySDy5cvHyJEjiY6OTvKIiYlJti2lNjExMUn6jouLIy4ujvDwcDOdXXKWlpZJwmMlSpSgc+fOdOrUiTx58pi7PBEREREREREREREREREREZGXnsFoNBrNXYTA7NmzmT17drLt8fHxnD17lpCQEJycnMxQmbyMjEZjksDYswTMnqVNSvtTw9LSksaNG9O1a1fatm2Lo6Pjc/5tiYiIyLMKDQ3F2dlZY1V5LF0jIiIiIpKRabwqKdE1IiIiIiIZWWrHqwqHZXC68ZDMwmg0Ehsb+8gAWWRkJNu3b2fJkiUcOHDAdIy9vT1t2rShW7duNGnSBGtrazOegYiIiPyXxqqSEl0jIiIiIpKRabwqKdE1IiIiIiIZmcJhmYRuPCSrOXv2LF5eXixZsoTz58+btufKlYuOHTvSrVs3atasiYWFhRmrFBEREdBYVVKma0REREREMjKNVyUlukZEREREJCNL7XhV6QoRyVBKlSrFmDFjOHv2LPv27WPAgAHkzZuXoKAgfvzxR+rUqUOxYsUYPnw4x48fN3e5IiIiIiIiIiIiIiIiIiIiIhmWwmEikiEZDAaqVq3KzJkzuXbtGps3b+bdd98le/bsXL58mSlTpvDaa69RoUIFpk6dypUrV8xdsoiIiIiIiIiIiIiIiIiIiEiGonCYiGR4VlZWeHp6snDhQgIDA/njjz9o06YN1tbWHD16lGHDhlGkSBE8PDz46aefuHfvnrlLFhERERERERERERERERERETE7hcNE5KVib29Px44dWblyJYGBgcydOxcPDw8AduzYwYcffoibmxutW7dm2bJlREREmLliEREREREREREREREREREREfNQOExEXlo5c+akT58++Pj4cOXKFb766isqVKhAbGwsa9asoXPnzuTNm5fu3buzadMm4uLizF2yiIiIiIiIiIiIiIiIiIiIyAujcJiIZAqFChVi8ODBHD58mOPHjzNixAjc3d0JCwtj8eLFNG3alAIFCvDJJ5+wd+9ejEajuUsWERERERERERERERERERERea4UDhORTOfVV19l4sSJXLx4ET8/Pz766CNcXV25ffs233//PTVq1KBkyZJ8+eWXnDlzxtzlioiIiIiIiIiIiIiIiIiIiDwXCoeJSKZlMBioWbMms2fP5saNG6xbt45u3bqRLVs2Lly4wPjx4ylTpgxVqlRh+vTp3Lhxw9wli4iIiIiIiIiIiIiIiIiIiKQbg1Frq2VooaGhODs7ExISgpOTk7nLEckUwsPDWbVqFV5eXmzatIm4uDggMUzWoEEDunbtSocOHXB2djZzpSIvD6PRyP3797l06VKyx9WrV3FycqJgwYIUKFAg2Z9ubm5YWlqa+xRE5BlorCop0TUiIiIiIhmZxquSEl0jIiIiIpKRpXa8qnBYBqcbD5Hn686dOyxfvhwvLy/8/PxM221tbWnRogXdunWjefPm2NnZmbFKEfN7Uvjr4SM0NPSZ+ra0tMTNze2x4bGHf+rvoUjGo7GqpETXiIiIiIhkZBqvSkp0jYiIiIhIRqZwWCahGw+RFycgIIClS5eyZMkSTp48adru7OxMhw4d6NatGx4eHprhSDKt/4a/AgICnjr8lTdvXtzd3ZM8ChYsSGhoKNevX+fatWtJ/rx58ybx8fGpqi9XrlwUKFDgiQGyHDlyYDAY0vqrEJFU0lhVUqJrREREREQyMo1XJSW6RkREREQkI1M4LJPQjYfIi2c0Gjl69ChLlixh6dKlXLt2zbQvf/78dO7cmW7dulGpUiWFUOSlktLMXyEhISn2kSdPniTBr6JFi5qeFy5cmGzZsj1VTfHx8QQGBj4yOPbvPyMjI1PVX7Zs2Z4YHitYsCB58uRRyFMknWisKinRNSIiIiIiGZnGq5ISXSMiIiIikpEpHPaSmT17NrNnz062PT4+nrNnz+rGQ8RMEhIS8PX1xcvLi+XLlxMcHGzaV6ZMGbp27UrXrl0pXry4GasUSRQSEvLIGb/SEv7696NIkSJPHf5KDw+XtHxSeOz69evcu3cvVf1ZWlqSP3/+J4bI8ufPr2UsRVJBb5JLSnSNiIiIiEhGpvGqpETXiIiIiIhkZAqHZRK68RDJOKKjo9m4cSNeXl6sXr2aqKgo074aNWrQtWtX3nrrLfLkyWPGKiUzexj+etzj/v37KfaRO3fuJ8785eDg8PxP5DmJjIzk+vXrTwyQ3bx5k4SEhFT15+rqmiw09t8gmZOTk2YQlCxNY1VJia4REREREcnINF6VlOgaEREREZGMTOGwTEI3HiIZU2hoKCtWrMDLy4stW7aYwiaWlpY0atSIbt260bZtW7Jnz27mSuVlEhISwuXLlx8789ezhL/+O/PXyxz+Sg9xcXEEBgamOAvZv8OfT+Lg4PDEJSwLFixI3rx5n/NZiZiPxqqSEl0jIiIiIpKRabwqKdE1IiIiIiIZmcJhmYRuPEQyvlu3brFs2TK8vLzYt2+fabu9vT2tW7emW7duNGnSBBsbGzNWKRlBaGjoE2f++veypY/j6ur6yOBX0aJFFf5KJ0ajkeDg4BQDZKn575U7d25u3779AqoWMQ+NVSUlukZEREREJCPTeFVSomtERERERDIyhcMyCd14iLxczp07h5eXF0uWLOHcuXOm7S4uLnTs2JFu3bpRq1YtLCwszFilvEhBQUEsX74cLy8vfH19U2z/uPDXw5m/HB0dX0DVkhoRERFPDI9dv36dfPnyceDAAXOXKvLcaKwqKdE1IiIiIiIZmcarkhJdIyIiIiKSkSkclknoxkPk5WQ0Gjl48CBLlizh999/59atW6Z9hQsXpkuXLnTr1o3XXnvNjFXK8xIREcHq1atZsmQJGzduJC4uzrQvV65cT5z5S+GvzCUhIUFhUMnUNFaVlOgaEREREZGMTONVSYmuERERERHJyFI7XtWnlSIiz4HBYKBKlSrMmDGDa9eu8ffff9OzZ0+cnJy4cuUKU6dOpXz58rz22muMHj2aI0eOoKzuyy0uLo4NGzbwzjvvkCdPHrp06cLatWuJi4ujYsWKTJs2jStXrnD37l0OHDjAn3/+yddff03//v1p2bIlr776qoJhmZCCYSKZk9FoZOfOnQwePJgaNWqQI0cObGxsyJ8/Px06dGDbtm2PPfbBgweMGzeOSpUq4ejoiI2NDYULF6Zbt274+/s/9riYmBi+/fZbatSogbOzM9bW1uTLl4927drxzz//PPU5+Pj4YDAYnvj48ccfn7pfERERERGRx1m/fj2NGjXCxcUFBwcHKleuzPfff09CQsIz9/nHH3/QtGlT8ubNi62tLQUKFKBp06b88ssv6Vi5iIiIiMjLTTOHZXD6VopI5hIZGcm6devw8vJi3bp1xMTEmPYVK1aMdu3a0b59e2rUqKFQyUvAaDSyZ88evLy8WLZsGXfu3DHtK1q0KF27dqVr166ULVvWjFWKiDw/WXWsunXrVho1agQkhkBLlCiBg4MD586dIywsDIBRo0Yxfvz4JMfdvn2bOnXqcPbsWSwsLChatCiOjo5cuHCBsLAwLC0tWbx4MV26dElyXEREBI0aNWL37t0AuLu74+LiwsWLF7l//z4AU6dOZciQIak+Bx8fH+rXr4+Tk9NjZzIdPHgwbdq0SXWfj5JVrxEREREReTlovPriTJkyheHDhwOJ74M6Ojpy/PhxEhISaN26NStWrHiq90Ojo6Pp1KkTq1evNvWZK1cubt26xfXr16lUqRIHDhxIc926RkREREQkI9OykpmEbjxEMq/g4GDWrl2Lt7c3GzduJCoqyrTPzc2Ntm3b0q5dO+rXr4+1tbUZK5X/OnXqFEuWLMHLy4uAgADT9ty5c/PWW2/RtWtXatSogcFgMGOVIiLPX1Ydq27ZsoW+ffvy2Wef0blzZ3LmzAkkzu41ZswYJk+eDMCaNWto2bKl6bjevXszf/58SpcuzcqVKylTpgwA4eHhfPbZZ8ydOxcnJyeuXr2a5Pc5YcIEvvjiC3Lnzs2aNWuoXr06ALGxsUyaNIkxY8ZgaWnJ6dOnKVGiRKrO4WE4zMPDAx8fn/T4tTxSVr1GREREROTloPHqi7F7925q1aqFwWDgt99+M30h5siRIzRp0oTAwECmTZvGoEGDUt1n165dWbp0KXXr1mXu3LmULl3atO/OnTscOnSIxo0bp7l2XSMiIiIikpEpHJZJ6MZDJGsIDw9n06ZNeHt7s3btWkJCQkz7cuTIQatWrWjXrh1NmjQhW7ZsZqw067p27Rq///47S5Ys4fDhw6btDg4OtGvXjm7dutGwYUMF+UQkS8mqY9XQ0FCyZcuGlZXVI/c3b96cDRs20Lp1a1atWmXani9fPm7dusXq1atp1apVkmPi4uLIly8fd+/eZf369TRr1sy074033mDPnj189913fPzxx8ler1KlShw+fJgffviBvn37puocFA4TEREREdF49UVp0aIF69ev5/333+enn35Kss/Ly4tu3bqRK1cubt68mar31jZu3EizZs0oU6YM/v7+2NvbP6/SdY2IiIiISIaW2vGq1iwTEckAHBwcaN++Pb/99hu3b99m48aNvP/+++TJk4f79++zePFi2rdvj6urq6ndw2Wk5Pm5d+8e8+bNo379+hQuXJjBgwdz+PBhrKysaNWqFUuXLuX27dssXryYpk2bKhgmIpJFODk5PTYYBuDp6QnA2bNnk2yPjIwEEpc7+S8rKyuKFCkCJAbFUnscQPHixR95nIiIiIiIiLmFhoayZcsWAHr16pVsf8eOHXFyciIoKIht27alqs+ZM2cCMGrUqOcaDBMRERERySwUDhMRyWBsbGxo0qQJP/30Ezdu3MDX15fPPvsMd3d3IiMjWbFiBe+88w65c+c2tbt165a5y840IiMj+eOPP2jbti1ubm68//77+Pj4YDQaqVOnDj/++KNp1pfOnTtrJjcREUnm4VLR//2Qonz58gDs2rUr2TH37t3j9OnTWFlZUbFixVQfFx0dzcGDBwGoWrXqU9d65coVevToQcOGDWnVqhXDhw9PMkOmiIiIiIhIWhw6dIiYmBjs7OyoXLlysv3W1tame5m9e/em2F9kZCRbt27FYDDQokULfHx86NWrFw0bNqRDhw7MnDmTBw8epPt5iIiIiIi8zB7/dXcRETE7S0tLateuTe3atfn66685cuQI3t7eeHt7c+LECTZv3szmzZvp27cvNWvWpF27drRr1+6xM4vIo8XFxfHPP/+wZMkSVqxYkeQNpPLly9O1a1e6dOlC4cKFzViliIi8DIxGI8uXLwegVq1aSfaNGTOGpk2bMnjwYKysrGjevDmOjo4cPnyYwYMHEx4ezqhRoyhUqFCS44YNG8aKFSuYNm0auXLl4q233sLFxYUzZ84watQoLl26xNtvv02NGjWeut6AgAACAgJMP69du5YpU6bQr18/vv32WywtLZ/htyAiIiIiIpLo3LlzABQuXPixMzAXK1aMrVu3mto+yZEjR4iLi6NAgQJMnTqVKVOmJNnv7e3NtGnTWLduXbIv3oiIiIiIZFWaOUxE5CVhMBioWLEi48aN4/jx45w5c4YpU6ZQrVo1jEYjfn5+DBo0iOLFi1OpUiVTO6PRaO7SMySj0cjevXsZMGAABQsWpEmTJvz66688ePCAIkWKMHz4cI4dO8aRI0cYOnSogmEiIpIq8+bN49ChQ9jY2DBw4MAk+xo0aMDff/9N+fLlee+993Bzc8PR0ZHatWtz8+ZNfvvtN8aPH5+sz7Jly+Ln54enpyeDBg2iYMGCZMuWjUqVKrFnzx6+//57Fi1a9FR12tvb07NnT7Zu3cr169eJjo7m1KlTDBw4EIPBwOzZsxk6dOgT+4iOjiY0NDTFh4iIiIiIZF3BwcEA5MyZ87FtHu572PZJbt68CcDt27eZMmUKrVq14vTp00RHR7Nv3z4qV67MjRs3aNOmDWFhYU/sS/c0IiIiIpJVaOawDGL27NnMnj072fb4+HgzVCMiL4NSpUoxdOhQhg4dyrVr11i5ciUrVqxg+/btHD58mMOHDzN69GhKlChB+/btadeuHdWqVcPCImvngs+cOYOXlxdeXl6cP3/etD1Xrlx06tSJrl27UrNmzSz/exIRkafn7+/PgAEDAJgwYQLFixdP1iYgIIDbt29jMBgoXLgwTk5OnD9/nkuXLvHzzz9Tq1Yt3N3dkx135coVAgMDMRqN5M+fnzx58nD+/HmCgoJYsGABtWvXfqpvxVevXp3q1asn2VamTBlmzJiBu7s7AwcOZObMmfTr14+iRYs+so/JkyczduzYVL+miIiIiIhkPVFRUQDY2Ng8to2trS2QuGRkSsLDwwGIjY2lWLFi/PXXX1hbWwNQtWpV1q1bR/Hixbly5QoLFizg448/fmxfuqcRERERkaxCn3xnEP369ePkyZPJHvv37zd3aSLyEihYsCD9+/dn69at3Lp1i19++YVWrVpha2vL+fPn+eqrr3jjjTcoVKiQqV1sbKy5y35hbty4wfTp06lSpQplypRh3LhxnD9/nmzZstGlSxfWrl3LzZs3+eGHH6hdu7aCYSIi8tQCAgJo2bIlUVFRdO3alUGDBiVrM3nyZHr27InBYODw4cNcunSJo0ePcvv2bXr16oWPjw+1atUiJCQkyXFLliyhdevWXL9+HR8fH65fv86hQ4cICgpi1KhR+Pv7U7du3STLQ6ZF//79KViwIPHx8axevfqx7YYPH05ISMgTH1evXk2XmkRERERE5OVkZ2cHQExMzGPbREdHA4kzHKe2P4CPPvrIFAx7yM3Njc6dOwOwcePGJ/alexoRERERySo0c5iISCbj6upKz5496dmzJw8ePGDjxo14e3uzbt06bty4YZqp0MXFhVatWtG+fXs8PT1T9ebLy+T+/ft4e3uzZMkStm3bZlpe09LSkiZNmtC1a1fatGmDo6OjmSsVEZGX3a1bt/D09OTmzZu0aNGChQsXYjAYkrS5ffs248aNA2DhwoWUL1/etM/R0ZEff/yR3bt3c/LkSX744QeGDx8OJH4b/vPPP8doNDJz5kw8PDxMx9nY2DB+/Hj27dvH5s2bmTJlCj/99FOaz8fS0pJq1apx7dq1JLNs/petra3pG/4iIiIiIiKPkpolI1Oz9OR/+4PE2Y8f5ZVXXgHg0qVLT+xL9zQiIiIiklUoHCYikollz56djh070rFjR6Kjo9m6dSve3t6sWrWKu3fvsmjRIhYtWoSDgwPNmjWjffv2NG/eHGdnZ3OX/kyioqJYt24dXl5erFu3zvStQ4CaNWvSrVs3OnbsSO7cuc1YpYiIZCb37t3D09OTCxcu4OHhwfLly5N9cx3gwIEDREVF4ejoSLVq1ZLtt7Kyol69epw8eZIDBw6Ytp87d47AwEAAGjZs+MgaGjVqxObNm5Mcl1YPzyEuLi7d+hQRERERkaynZMmSAFy5coW4uDisrJJ/LHXx4sUkbZ+kdOnSpuePC3Y93B4fH//U9YqIiIiIZEYKh4mIZBG2trY0b96c5s2b8+OPP+Ln54e3tzcrVqzg6tWr/Pnnn/z5559YW1vTqFEj2rdvT+vWrcmTJ4+5S3+i+Ph4fHx8WLJkCX/99RehoaGmfWXLlqVbt2506dKFokWLmrFKERHJjMLCwmjevDnHjx+natWqrFmz5rEzcT548CDF/h7OchkVFZXm49LqxIkTQOLS1SIiIiIiIs+qUqVKWFtbExUVhb+/f7Ivy8TGxrJ//34AqlevnmJ/BQsWpFChQly9etUUKvuvh9sLFCiQxupFRERERDIHC3MXICIiL56VlRUeHh58++23XL58mf379zNixAjKlClDbGwsGzZsoE+fPuTLlw8PDw9mzpzJ5cuXzV22idFo5MCBA3z22WcUKlSIRo0asWDBAkJDQylYsCBDhgzh8OHDHD9+nBEjRigYJiIi6S46Opo2bdqwd+9eXn31VTZu3Ej27Nkf2/7hN+DDwsLYt29fsv1xcXFs374dgFKlSpm2Fy9e3LRE5datWx/Z95YtW5IdlxabN2/m+PHjQOKsZCIiIiIiIs/KycnJdF8xf/78ZPuXL19OaGgouXLlol69eqnqs2PHjgD8+uuvyfZFRUWxbNkyABo0aPCMVYuIiIiIZC4Kh4mIZHEGg4EqVaowceJETp06xcmTJ5k4cSKvv/46CQkJ7Nixg08//RR3d3def/11UztzOHfuHGPHjqVMmTJUrVqVGTNmcPPmTXLmzMn777/P9u3buXz5MlOnTqVChQqmD9NFRETSU3x8PJ07d+aff/6hePHi/P3337i4uDzxmEqVKlG2bFkAevTowdGjR037Hjx4wIcffsjJkycBePvtt037XF1dadKkCQADBw5kx44dpn0xMTF88cUX/P333wC88847SV5zz549uLu74+7unqyeh/UnJCSYthmNRlasWEHnzp0BaNy4caq+uS8iIiIiIvIkI0eOxGAw8PPPP7N06VLT9iNHjvDZZ58BMGTIEGxsbEz7Zs6cibu7u+n+5N8GDx6Mo6Mjfn5+TJw40XRfExkZyYcffpjk/UIREREREQGD8eEaJJlYjx49WLRo0RPbREZGYmdn91T97t69mylTprBr1y7CwsIoWrQoXbp0YfDgwU/d1+OEhobi7OxMSEgITk5O6dKniEhqXb58mZUrV+Lt7c3OnTuTfIBcunRp2rdvT7t27ahSpcpzC2LdunWLZcuWsWTJEtMU8wB2dna0adOGrl270rRp0yRvHomIyIuRVceqS5cupWvXrkDijGCPW4I5X758LF++3PSzv78/jRo1Ijg4GIPBQJEiRXBycuLcuXNERkYCMGHCBEaOHJmkn8uXL1O3bl2uXLkCJC6Nkjt3bi5cuGBadrJPnz7MnTs3yXE+Pj7Ur18f+N/Skw/lyJGDkJAQHBwcKFGiBLa2tgQEBHDnzh0Aqlatyvr163F1dX2m39FDWfUaEREREZGXg8arL87EiRMZNWoUAMWKFcPR0ZHjx4+TkJBAixYtWLVqFZaWlqb2Y8aMYezYsXh4eODj45OsvzVr1vDmm28SExND3rx5KVy4MGfPniUkJIRs2bKxYsUKGjdunOa6dY2IiIiISEaW2vGq1Qusyeye9MGNhcXTTaK2ZMkS3n33XeLj4ylQoACFChXi+PHjfPnll6xZswYfHx+yZcuWHmWLiJhNkSJFGDBgAAMGDOD27dusXr2aFStW8Pfff3PmzBkmT57M5MmTKVSoEG3btqV9+/bUrl0bK6u0/e8lNDQUb29vvLy82Lp1qymUZmFhgaenJ926daNt27ZPXL5LRETkeYmOjjY9P3fuHOfOnXtkuyJFiiT5uXLlyhw/fpxvvvmGjRs3EhAQwPXr18mdOzfNmzenX79+pjDXf/s5cuQIM2fOZPXq1Zw7d47AwEBy5sxJ7dq16d27N+3bt3+qc5gyZQo+Pj4cOXKEK1eu8ODBA3LkyEHDhg3p3Lkz7777LtbW1k/Vp4iIiIiIyOOMHDmSChUqMGPGDA4ePMitW7d47bXX6NmzJ/37908SDEuNVq1aceDAASZNmoSPjw+HDx8md+7ctGnThuHDh1OmTJnndCYiIiIiIi+fLDVz2IIFC+jRo0ea+7t06RJlypQhOjqar776ikGDBmEwGLh8+TJNmjThzJkz9OvXj1mzZqX5tfStFBHJiEJCQli/fj0rVqxg/fr1hIeHm/blypWLNm3a0L59exo2bJjqmRSjo6PZsGEDXl5erFmzhqioKNO+GjVq0LVrVzp16kTevHnT/XxEROTZaKwqKdE1IiIiIiIZmcarkhJdIyIiIiKSkaV2vPp002UJANOmTSM6OprGjRszePBg01JqRYoU4ZdffgFg7ty5BAYGmrNMEZHnxtnZmS5duvDHH39w584dVq9eTY8ePXBxcSEoKIhffvmFli1bkjt3bjp37swff/xhWvbq3xISEvDx8aFPnz64ubnRrl07li9fTlRUFGXKlGH8+PGcP3+e3bt38/HHHysYJiIiIiIiIiLyHGSB75CLiIiIiIhkWVlqWcn0YDQaWbFiBQC9evVKtr9mzZqUKVOG06dPs2rVKt5///0XXaKIyAtlb29Pq1ataNWqFXFxcezYsQNvb29WrFjBjRs3WLZsGcuWLcPW1hZPT0/atWvHK6+8gre3N0uXLuX69eumvvLnz0+XLl3o1q0bFStWNIVvRUREREREREQk/SQYEzh08xCbLmxi7bG15LyTkwFvDKBx48bmLk1ERERERETSWZYKh/3555+sXLmS0NBQ8uTJQ61atejevTvOzs6p7uPKlSvcvHkTgFq1aj2yTa1atTh9+jR79+5VOExEshQrKysaNGhAgwYN+O6779i/fz/e3t54e3tz/vx51q5dy9q1a5MckyNHDt588026du1K3bp1sbS0NFP1IiIiIiIiIiKZX3BIMCUHlyToVBAEADcAI4TWDlU4TEREREREJBPKUuGwdevWJfl52bJljB49Gi8vL5o2bZqqPs6dOweAra0t+fPnf2SbYsWKJWn7ONHR0URHRz+xTWhoaKrqEhHJaCwsLKhevTrVq1dnypQpnDhxwjSj2Pnz52natCldu3alefPm2NramrtcEREREREREZFMJSY+ht1Xd7P62GqOHjxK1Ziq+Pj4sH//fuLi4pK0LVSkEOXKlcNoNGomdxERERERkUzmmcNhfn5+/Pnnn1y4cAELCwvKlClDp06dqFy5corHnjt3jiZNmmAwGLhw4cKzlpBqxYsXZ9KkSbRo0YKiRYtiMBjYvXs3X3zxBXv37qVt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zZo1M+1744032LNnD9999x0ff/xxsterVKkShw8f5ocffqBv376pOofly5fTqVMncuXKRUBAQJJg0oMHDyhatChBQUF4e3vTrl27VPX5KC/bNWI0GvH392fBggV4eXkRHBxs2lerVi169OhBp06dUjyXB9EPAMhumzTw9ddff9G7d2/u379P9uzZmTNnDt26dUv/ExERERGRVHnZxqsvqxYtWrB+/Xref/99fvrppyT7vLy86NatG7ly5eLmzZtYW1s/ppdH27JlC56envTt25c8efIwduxYhcNEREREJMtI7Xg1bYu4i4iIiIiIZDFOTk6PDYYBeHp6AnD27Nkk2yMjI4HEJVT+y8rKiiJFigCJQbHUHgdQvHjxRx73JN7e3gB06tQp2YxV2bNnp2PHjkBiiCwrMRgMvP7668yaNYubN2/yxx9/0Lx5cywsLPDz86NPnz64ubnxzjvv8M8//5CQkPDIfrLbZk8SDIuIiODDDz/kzTff5P79+1StWpVDhw4pGCYiIiIimV5oaChbtmwBoFevXsn2d+zYEScnJ4KCgti2bdtT9R0VFWUKhU2aNCld6hURERERyYwUDhMREREREUlHUVFRANjb2yfZXr58eQB27dqV7Jh79+5x+vRprKysqFixYqqPi46O5uDBgwBUrVo11TXu2bMHSJwN61Eebt+7d2+q+8xsbG1t6dixI+vWrePq1atMnTqVMmXKEBkZyW+//UbDhg0pVqwYo0eP5uLFi4/t59ixY1StWtU0Q8LQoUPZuXOnKdQnIiIiIpKZHTp0iJiYGOzs7KhcuXKy/dbW1qZ7mae9/5gwYQLnz59n2rRp5MiRIz3KFRERERHJlBQOExERERERSSdGo9E029Z/g1djxozB2tqawYMHs2DBAgIDAwkPD8fPz4+WLVsSHh7OsGHDKFSoUJLjhg0bhqOjI9OmTWP69Olcv36dyMhIDh8+TIcOHbh06RJvv/02NWrUSFWNMTExXLlyBXj8bGQPt1+6dInY2Nin+h1kRvnz52fIkCGcPHmSPXv28OGHH+Ls7Mzly5cZN24cxYsXx8PDg4ULFxIWFgYkXguzZ8+matWqnDx5Ejc3N/7++2+mTJmCjY2Nmc9IREREROTFOHfuHACFCxd+7AzMD+8/HrZNjVOnTjFt2jTq1KlD9+7d016oiIiIiEgm9vi1UERERERE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KyQkRL6+vho7dqz+9Kc/yeFwHFd/vEcDAAAAdI7JMAyjq4M41c466yxt2LBBnp6eio6OVmhoqAoKCpxveIwbN06rVq1SUFBQp/t85513dOONN8putysmJkbh4eHKyMhQY2Ojxo8fr7Vr18rHx+eEY7darQoMDFRlZaUCAgJOuD8AAADgZOmt96qrV6/W9OnTJUlubm7q37+/fH19lZmZqerqaknSo48+qmeeeabVccXFxTr77LO1d+9eubm5qV+/fvLz89O+fftUXV0td3d3vfXWW7rmmmtaHTdnzhwVFBS0G0ttba22bdsmSfriiy80c+bMTo9j586dOvvss1VWVqbAwEAlJSVp3759qqysVGhoqNavX6/Bgwd3ur/29NbnCAAAAHoG7ldPn2effVbz58+XJCUmJsrPz08ZGRlyOBy65JJL9NFHH8nNrfPrGfAeDQAAAND5+9VesXLYrbfeqjVr1qiqqkr79+9XamqqDh06pI0bN6pv377aunWrFixY0On+Dhw4oHnz5slut+v3v/+9Dh48qLS0NGVmZmrQoEFKTU3Vww8/fApHBAAAAKCrGIah/v376+WXX1ZJSYn27NmjtLQ0lZaWOt/sWLhwoT7//PNWxz3yyCPau3evBg0apB07digrK0vbt29XYWGhbr/9dtntdt15552yWq2tjlu2bJnWr1/f7uOuu+6SJEVFRem8887r9BjsdrvmzJmjsrIyXXHFFcrPz9fWrVuVl5enyy+/XKWlpfr5z39+3J/gBwAAAIAWGzdu1COPPCI3Nze9++672rdvn9LT05WWlqaIiAh9+umneuGFFzrdH+/RAAAAAMemV6wcdiTLli3TVVddpejo6E5vnZKSkqKXX35ZM2fO1BdffNGq7rvvvtPkyZNlsVh08OBBRUREnFB8fCoFAAAA3VVvvVe1Wq3y8fGR2Wxut37WrFlasWKFLrnkEn3yySfO8qioKBUWFurTTz/Vz372s1bHNDU1KSoqSiUlJVq+fLkuvPDCTsUydepUrVu3Tg888ICef/75To+hZR4UGhqq7Oxs+fv7O+uqqqrUr18/lZaW6sMPP9Ts2bM73e//6q3PEQAAAPQM3K+eHhdddJGWL1+u22+/XX/9619b1b377ru69tprnTu+WCyWo/bHezQAAABAM1YO66SWbVJqa2s71d4wDH300UeSpHnz5rWp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SLfccot8fX0VHBysTp066bPPPpNku25c6mpejy5937dv365evXqpSpUq8vX1VfPmzfXee+/ZtFm3bp3uvPNOVa5cWT4+PmrdurU+/vhjp/tQkv23ZoDs3LmzbrvtNrvygQMHmmvoihUrnG6nuPKey//880+J2pfG2ipJ69evV79+/VS9enV5eHgoICBAN954o+666y4tWLDAbu6w+uuvv/T444+rbt268vb2VkBAgFq0aKEZM2Y4zZokSXv37tWMGTPUoUMHhYWFycvLSxUqVFDbtm318ssvF+oa27dvn0aOHKk6derIx8dHfn5+atasmaZMmaLz588X+1hcyvrZcsuWLUpMTNSUKVPUoEEDeXt7q2LFirrnnnu0a9cuh223bNliti9sH/m1P3DggAYNGqQbbrhB3t7eatiwoRYsWKCsrCyzzU8//WTOs15eXmrcuLHefPNNGYaR7xgOHz6sJ554Qo0aNZK/v7/8/PxUv359DRw4UJ9//rldljtnY46KijLLoqKiFB0drTFjxqh27dry8vJSSEiIBg4cqMjIyHzHk9+xuvXWWyUV7/r54osvlJiYKEl67rnn7MqDgoL02GOPSZI+//xzJScn25R/+OGHys7Olp+fn5mdM68bb7xRAwYMkCStXLnSrrykn2UBAACAa0pZR6cBAAAAQFnhX3SXjjVr1hghISFGUFCQmT0jJCTEfPTt27fAbaxYscLMBCXJ8PDwMAIDA83nkox9+/bZtLH+y37rIzAw0HBxcbF5vn37dof9Wdv++9//Nrp27Wr26evra7b38/Mzdu/ebZw/f95o3ry5Icnw8vIyMxDo/2dTOnHihN32lyxZYkgy3N3djcTExGId19I2ceJEc9wxMTGXpY+SZlsobOawl19+2dyXuLg4p/Vq1qxpSDJ69uxZ5LGQOSxXo0aNDElGu3btCrEHBbvcmcOs+9KxY0dj3rx5hsViMSwWi1GhQgXDYrGYfXfu3Nlh9jrDMIydO3caISEhZl1XV1czs4kkw2KxGHPmzCnW+O677z5zfrk0W8nkyZMNSYa/v7/TsUVHR5vjeOedd4rUt/WcCQsLM1577TXzeAQGBhru7u5Fum5LOp+MHz/ekGT4+vrale3atavQmcN8fX2NpKSkIvd/qaSkJKNDhw4273lQUJB5jCZPnmxen46uoat5Pcr7vr/77ruGi4uL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WVlZNq//97//Nf8ubLa1wmRidHNzU5MmTfTRRx+pUqVKeuONNzRgwAAdOXLEJouLdcwFbdNant8+5qdixYrFCpYsyXwSExOjLl266M8//1RISIg2b96s6tWrO6x78uRJ9enTR6mpqXr//ff1r3/9yyyrX7++pk2bppo1a+qhhx7SkiVL9MADDzjNWlQY586dk/S/gBJnqlWrplOnTjksu5rXo9LYft46jrZf3P3P219+533esuKe93lZLBZVr15ds2bNUosWLdS/f389/vjjuvXWW9WsWbMC21+utbVChQpavXq1Bg8erIMHD+qpp56SJAUGBqpDhw564IEHNGDAAJvA57wZ9KpVq+Z029brLSsrS7GxsWaAUkpKiu655x5FRESYdT08PBQcHGz2Exsbq8zMTLv3zzpnpqamFio7Z2lmri3uuXq5+y/JtVSSz8SFUZrHzNPTU23bttUPP/ygPn366Ouvv9aQIUP066+/FikYy9/fX7GxscVa9wo7f+Q9b0tj/gAAAACuVWQOAwAAAIB8WCwW+fr6lqvH1fgv6Is6po0bN5o/RI8ePVq///670tPTFRsba2b2sN4erCwyGeX9gbZhw4YO67i7u5tZXEozm4Yzo0ePlqenp5KSkop8W6mrkZubm1auXKn169dr8ODBatSokWrWrKm2bdtqzpw52rdvn/mDYL169cp4tOVTrVq1NGHCBG3dutUMclq6dGkZj6r4srOzJeVm1iooE5v10alTpyL1YZ2XTp06pe+//96mzBqcdPr06Xy3YS0vKJjJGUe3tCyqoswnMTExuuOOO3To0CFVqVJFP/74oxo0aOC0/ptvvqnU1FQFBwfbBIblNXLkSPM2gJ9//nnxd0T/WyMKWoecrSVX+3p0uZVk//Oew/md93nLinveO9OvXz+FhYUpJydH7733XpHbl/ba2rVrVx0/flwrVqzQ8OHDVbduXSUkJOibb77R0KFD1bx58wLniILkPddnz56tiIgIeXt7a9GiRTpx4oTS0tJ04cIF8/2zZpy69P2zzpmPPfZYoebLqKioEo37enE1fk53xmKxmJlc9+zZo3379hWpfWHWvZSUFDNTa97r39/f3wz2Kqv5AwAAALiWEBwGAAAAACgz1gwbx48fL1K7NWvWSJK6deumN998U40bN7YLeLBmYCgLTZs2Nf/O70e+wgYllAYv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\n", "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.080944, "end_time": "2023-10-18T22:50:24.199964", "exception": false, "start_time": "2023-10-18T22:50:24.119020", "status": "completed" }, "tags": [] }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "NPL 2023a", "language": "python", "name": "npl-2023a" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.16" }, "papermill": { "duration": 187.354872, "end_time": "2023-10-18T22:50:26.969767", "exception": null, "input_path": "/glade/scratch/eromashkova/tmp/tmpvu4zfwtu.ipynb", "output_path": "/glade/u/home/eromashkova/codes/test-combined-diags/computed_notebooks/adf-quick-run/adf_quick_run.ipynb", "parameters": { "adf_path": "./ADF", "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", "config_path": ".", "product": "/glade/u/home/eromashkova/codes/test-combined-diags/computed_notebooks/adf-quick-run/adf_quick_run.ipynb", "sname": "adf-quick-run", "subset_kwargs": {}, "test_global_param": "hello" }, "start_time": "2023-10-18T22:47:19.614895" } }, "nbformat": 4, "nbformat_minor": 5 }