From e02d92133bcf0597d6a4911308ba4b4aef56b03d Mon Sep 17 00:00:00 2001 From: Laura Szczyrba Date: Mon, 15 Aug 2022 13:14:52 -0400 Subject: [PATCH 1/5] created swash 1D example notebook, minor changes to get data and prepdata --- .gitmodules | 2 +- .idea/cmtb.iml | 2 +- .idea/misc.xml | 5 +- .idea/other.xml | 2 +- README.md | 2 +- notebooks/cshore/cshore_example.ipynb | 3 +- notebooks/cshore/cshore_test_multiple.ipynb | 2 +- notebooks/ww3/ww3_example.ipynb | 91 ++++++++++++++------- testbedutils | 2 +- 9 files changed, 71 insertions(+), 40 deletions(-) diff --git a/.gitmodules b/.gitmodules index 770389c..8d7475c 100644 --- a/.gitmodules +++ b/.gitmodules @@ -6,4 +6,4 @@ url = git@github.com:SBFRF/testbedutils.git [submodule "prepdata"] path = prepdata - url = git@github.com:SBFRF/prepdata.git + url = https://github.com/l-szczyrba/prepdata.git diff --git a/.idea/cmtb.iml b/.idea/cmtb.iml index 34ddd3f..e07acc1 100644 --- a/.idea/cmtb.iml +++ b/.idea/cmtb.iml @@ -8,7 +8,7 @@ - + diff --git a/.idea/misc.xml b/.idea/misc.xml index 789e113..5f45815 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,8 +1,7 @@ - + - - + \ No newline at end of file diff --git a/.idea/other.xml b/.idea/other.xml index a847ac6..c46ee1f 100644 --- a/.idea/other.xml +++ b/.idea/other.xml @@ -5,4 +5,4 @@ - + \ No newline at end of file diff --git a/README.md b/README.md index bf2fc5e..35921b0 100644 --- a/README.md +++ b/README.md @@ -43,7 +43,7 @@ The test bed is established at the USACE CHL Field REsearch Facility in Duck, No - conda install conda install -c conda-forge cartopy - * netCDF4, pyproj, utm, wavespectra, progressbar, opencv-python + * netCDF4, pyproj, utm, wavespectra, progressbar, opencv-python, xarray - there's likely more, please add as you find!! :-[] diff --git a/notebooks/cshore/cshore_example.ipynb b/notebooks/cshore/cshore_example.ipynb index bfd4899..3388bb1 100644 --- a/notebooks/cshore/cshore_example.ipynb +++ b/notebooks/cshore/cshore_example.ipynb @@ -8,6 +8,7 @@ "source": [ "import sys\n", "sys.path.insert(0, '/Users/rdchlth9/Codes/cmtb_refactor/')\n", + "\n", "from getdatatestbed import getDataFRF\n", "from prepdata.prepDataLib import PrepDataTools as preptools\n", "from prepdata import inputOutput\n", @@ -501,7 +502,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.5" + "version": "3.8.8" } }, "nbformat": 4, diff --git a/notebooks/cshore/cshore_test_multiple.ipynb b/notebooks/cshore/cshore_test_multiple.ipynb index 9f25300..923d4b7 100644 --- a/notebooks/cshore/cshore_test_multiple.ipynb +++ b/notebooks/cshore/cshore_test_multiple.ipynb @@ -307,7 +307,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.5" + "version": "3.8.8" } }, "nbformat": 4, diff --git a/notebooks/ww3/ww3_example.ipynb b/notebooks/ww3/ww3_example.ipynb index 83d2e54..67fe75f 100644 --- a/notebooks/ww3/ww3_example.ipynb +++ b/notebooks/ww3/ww3_example.ipynb @@ -2,12 +2,12 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "import sys\n", - "sys.path.insert(0, '/Users/rdchlth9/Codes/cmtb_refactor/')\n", + "sys.path.insert(0, '/Users/lszcz/Documents/CMTB/cmtb/')\n", "from getdatatestbed import getDataFRF\n", "from prepdata.prepDataLib import PrepDataTools as preptools\n", "from prepdata import inputOutput\n", @@ -18,15 +18,15 @@ "import netCDF4 as nc4\n", "import os\n", "import f90nml\n", - "from plotting import operationalPlots\n", + "# from plotting import operationalPlots\n", "from testbedutils import fileHandling\n", - "import py2netCDF as p2nc\n", + "# import py2netCDF as p2nc\n", "%matplotlib inline" ] }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -47,7 +47,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ @@ -56,23 +56,40 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 7, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "https://chldata.erdc.dren.mil/thredds/dodsC/frf/oceanography/waterlevel/eopNoaaTide/2016/FRF-ocean_waterlevel_eopNoaaTide_201608.nc\n" + ] + } + ], "source": [ "rawWL = go.getWL()" ] }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 8, "metadata": {}, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/lszcz/Documents/CMTB/cmtb\\getdatatestbed\\getDataFRF.py:463: UserWarning: WARNING: getWaveSpec is depreciated, update to use getWaveData, spec=True\n", + " warnings.warn(\"WARNING: getWaveSpec is depreciated, update to use getWaveData, spec=True\")\n" + ] + }, { "name": "stdout", "output_type": "stream", "text": [ - " Removing Duplicates from FRF 8m Array\n" + "https://chldata.erdc.dren.mil/thredds/dodsC/frf/oceanography/waves/waverider-26m/2016/FRF-ocean_waves_waverider-26m_201608.nc\n", + " Removing Duplicates from FRF 26m Datawell Waverider Buoy\n" ] } ], @@ -82,9 +99,17 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 9, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "https://chldata.erdc.dren.mil/thredds/dodsC/frf/meteorology/wind/derived/2016/FRF-met_wind_derived_201608.nc\n" + ] + } + ], "source": [ "rawwind = go.getWind()" ] @@ -98,16 +123,16 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ - "outtime = np.arange(d1,d2,dt.timedelta(minutes=30))" + "\n" ] }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 10, "metadata": {}, "outputs": [], "source": [ @@ -116,7 +141,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 11, "metadata": {}, "outputs": [], "source": [ @@ -127,7 +152,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 12, "metadata": {}, "outputs": [], "source": [ @@ -144,7 +169,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 13, "metadata": {}, "outputs": [ { @@ -161,22 +186,22 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 12, + "execution_count": 14, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -197,14 +222,20 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 15, "metadata": {}, "outputs": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - " -- 48 wind records with 0 interpolated\n" + "ename": "AssertionError", + "evalue": "time data types must be the same (for comparison)", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mAssertionError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mwind\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mprepdata\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mprep_wind\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mrawwind\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mwindTimeList\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mmodel\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m'ww3'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[1;32m/Users/lszcz/Documents/CMTB/cmtb\\prepdata\\prepDataLib.py\u001b[0m in \u001b[0;36mprep_wind\u001b[1;34m(self, rawwind, timerecord, **kwargs)\u001b[0m\n\u001b[0;32m 1175\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1176\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mmodel\u001b[0m \u001b[1;33m==\u001b[0m \u001b[1;34m'ww3'\u001b[0m\u001b[1;33m:\u001b[0m \u001b[1;31m# operates in global coordinate system instead of local coordinate system\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1177\u001b[1;33m [_, avgspeed, avgDir, flagOut] = self.polartimeavg(timerecord, windTime, windDir,\n\u001b[0m\u001b[0;32m 1178\u001b[0m windSpeed, radin=False)\n\u001b[0;32m 1179\u001b[0m \u001b[0mstdirec\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0manglesLib\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mangle_correct\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mavgDir\u001b[0m\u001b[1;33m+\u001b[0m\u001b[1;36m180\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mrad\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;32mFalse\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;31m# correct angles to 0-360\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m/Users/lszcz/Documents/CMTB/cmtb\\prepdata\\prepDataLib.py\u001b[0m in \u001b[0;36mpolartimeavg\u001b[1;34m(self, trtm, trD, dirD, spdD, radin, interp)\u001b[0m\n\u001b[0;32m 93\u001b[0m \"\"\"\n\u001b[0;32m 94\u001b[0m \u001b[1;32mfrom\u001b[0m \u001b[0mscipy\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0minterpolate\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 95\u001b[1;33m \u001b[1;32massert\u001b[0m \u001b[0misinstance\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mtrD\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mfloat\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;33m==\u001b[0m \u001b[0misinstance\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mtrtm\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mfloat\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m'time data types must be the same (for comparison)'\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 96\u001b[0m \u001b[0mflagLoc\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mzeros\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mnp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msize\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mtrtm\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;31m# alloccating for x avgDir\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 97\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mnp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msize\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mtrtm\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;33m==\u001b[0m \u001b[1;36m1\u001b[0m \u001b[1;32mand\u001b[0m \u001b[0mtype\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mtrtm\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;32mis\u001b[0m \u001b[1;32mnot\u001b[0m \u001b[0mlist\u001b[0m \u001b[1;32mand\u001b[0m \u001b[0mtype\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mtrtm\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;32mis\u001b[0m \u001b[1;32mnot\u001b[0m \u001b[0mnp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mndarray\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mAssertionError\u001b[0m: time data types must be the same (for comparison)" ] } ], @@ -914,9 +945,9 @@ ], "metadata": { "kernelspec": { - "display_name": "cmtb", + "display_name": "Python 3", "language": "python", - "name": "cmtb" + "name": "python3" }, "language_info": { "codemirror_mode": { @@ -928,7 +959,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.5" + "version": "3.8.8" } }, "nbformat": 4, diff --git a/testbedutils b/testbedutils index b12bbba..6de568d 160000 --- a/testbedutils +++ b/testbedutils @@ -1 +1 @@ -Subproject commit b12bbba4803d0a9cb3935c7f138ed3226c3390d7 +Subproject commit 6de568dd6e881aa4e864f533133fe77ad66940cc From 4f3bf4f5d509fa98a02d3e20a4fe094c71f38983 Mon Sep 17 00:00:00 2001 From: Laura Szczyrba Date: Tue, 23 Aug 2022 13:18:02 -0400 Subject: [PATCH 2/5] new swash notebooks for SWASH 1D --- notebooks/swash/swash_example.ipynb | 749 ++++++++++++++++++ notebooks/swash/swash_example_highlevel.ipynb | 306 +++++++ 2 files changed, 1055 insertions(+) create mode 100644 notebooks/swash/swash_example.ipynb create mode 100644 notebooks/swash/swash_example_highlevel.ipynb diff --git a/notebooks/swash/swash_example.ipynb b/notebooks/swash/swash_example.ipynb new file mode 100644 index 0000000..dd80c4e --- /dev/null +++ b/notebooks/swash/swash_example.ipynb @@ -0,0 +1,749 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "cd1aa9ea", + "metadata": {}, + "source": [ + "# Coastal Model Test Bed (CMTB) SWASH 1D Example " + ] + }, + { + "cell_type": "markdown", + "id": "93d32e7d", + "metadata": {}, + "source": [ + "#### This notebook walks through the CMTB SWASH 1D Workflow\n", + " CMTB sets this up as a \"skinny\" 2D simulation that is effectively 1D\n", + " Notebook users will have to download CMTB from github and install the required python packages\n", + " Users select simulation settings in the User Input Cell and can walk through the rest of the code\n", + " Once CMTB writes the input files, users will run SWASH separately in a command line interface \n", + " (commands listed at end of notebook)" + ] + }, + { + "cell_type": "markdown", + "id": "b1a304a5", + "metadata": {}, + "source": [ + "## Load packages and libraries" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "7797d0ff", + "metadata": {}, + "outputs": [], + "source": [ + "import sys\n", + "sys.path.insert(0, '/Users/lszcz/Documents/CMTB/cmtb/')\n", + "\n", + "# CMTB \n", + "from prepdata.prepDataLib import PrepDataTools as preptools\n", + "from getdatatestbed import getDataFRF\n", + "from getdatatestbed.getDataFRF import getDataTestBed\n", + "from prepdata import writeRunRead as wrr\n", + "from testbedutils import waveLib as sbwave\n", + "\n", + "# Standard utilities\n", + "import datetime as dt\n", + "import numpy as np\n", + "import os\n", + "import matplotlib\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "markdown", + "id": "7d8ae1d2", + "metadata": {}, + "source": [ + "## User Input Cell: Declare input settings" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "3f39ac02", + "metadata": {}, + "outputs": [], + "source": [ + "# Organizational settings\n", + "workingDir = '/Users/lszcz/Documents/CMTB/cmtb/data'\n", + "exe = '/Users/lszcz/Documents/CMTB/cmtb/data/swash.exe'\n", + "testName = 'swash1D_test'\n", + "versionPrefix='base' \n", + "\n", + "# Select simulated period\n", + "date_str = '2019-10-11' \n", + "startTime = dt.datetime(2019,10,11,15,0,0) # Start time, Year, month, day, hour\n", + "endTime = dt.datetime(2019,10,11,16,0,0) # Stop time, 1 hour after start time, Year, month, day, hour\n", + "simulationDuration = 1 # length of time for simulated event (should be 1 hour)\n", + "spinup = 900 # initial spinup time before model output (in seconds)\n", + "\n", + "# Select bathymetric setting\n", + "bathy_loc = 'survey'\n", + "profile_num = 945 # FRF profile number\n", + "survey_date = dt.datetime(2019, 10, 15, 23) # Select survey date (always include 23 aka 11 pm to search for any profile collected that day)\n", + "xmin = 25 # Onshore extent in FRF coordinates\n", + "xmax = 915 # Offshore extent in FRF coordinates\n", + "dx = 1 # Resolution in x\n", + "dy = 1 # Resolution in y \n", + "fric_fac = 0.015\n", + "\n", + "# Select sensor for boundary conditions\n", + "sensor = '8m-array' # FRF Sensor used to pull wave conditions" + ] + }, + { + "cell_type": "markdown", + "id": "8e1ed2dd", + "metadata": {}, + "source": [ + "***\n", + "***\n", + "***" + ] + }, + { + "cell_type": "markdown", + "id": "094a9a32", + "metadata": {}, + "source": [ + "## Auto-format additional variables" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "2f784ad3", + "metadata": {}, + "outputs": [], + "source": [ + "runDuration = (endTime - startTime).total_seconds()\n", + "ymin = profile_num - dy # Extending selected transect for \"Psuedo 1D\" simulation, allowing for a skinny alongshore interpolated grid\n", + "ymax = profile_num + dy\n", + "\n", + "waveTimeList = preptools.timeLists(startTime,endTime,30*60) # dt in hours\n", + "wlTimeList = preptools.timeLists(startTime+dt.timedelta(minutes=30), # Finds 1 water level halfway through the target event\n", + " endTime,30*60) " + ] + }, + { + "cell_type": "markdown", + "id": "9486819c", + "metadata": {}, + "source": [ + "## Gather raw data" + ] + }, + { + "cell_type": "markdown", + "id": "6777efc8", + "metadata": {}, + "source": [ + "Waves and water levels" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "85167670", + "metadata": {}, + "outputs": [], + "source": [ + "go = getDataFRF.getObs(startTime,endTime) # initialize go command with simulated period" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "956cd954", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "https://chldata.erdc.dren.mil/thredds/dodsC/frf/oceanography/waves/8m-array/2019/FRF-ocean_waves_8m-array_201910.nc\n", + "https://chldata.erdc.dren.mil/thredds/dodsC/frf/oceanography/waterlevel/eopNoaaTide/2019/FRF-ocean_waterlevel_eopNoaaTide_201910.nc\n" + ] + } + ], + "source": [ + "wave_spec = go.getWaveData(sensor,spec=True) # grab raw spectra\n", + "wl = go.getWL() # grab raw water levels" + ] + }, + { + "cell_type": "markdown", + "id": "92e9e24e", + "metadata": {}, + "source": [ + "Bathymetry" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "e3d9696f", + "metadata": {}, + "outputs": [], + "source": [ + "gdTB = getDataTestBed(startTime, endTime) # initialize gdTB command with simulated period" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "d0c6e8a0", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "!!!Forced bathy date 2019-10-15 23:00:00\n", + "https://chldata.erdc.dren.mil/thredds/dodsC/cmtb/integratedBathyProduct/survey/survey.ncml\n", + "Bathymetry is taken as closest in HISTORY - operational\n" + ] + } + ], + "source": [ + "bathy_data = gdTB.getBathyIntegratedTransect(method=1, # Gathers relevant data (beyond designated bounds) to pass into prepbathy for interpolation\n", + " ForcedSurveyDate=survey_date, \n", + " ybounds=[ymin, ymax]) " + ] + }, + { + "cell_type": "markdown", + "id": "1a832afc", + "metadata": {}, + "source": [ + "Check out raw data" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "41bf8025", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure()\n", + "plt.plot(wave_spec['wavefreqbin'], wave_spec['fspec'])\n", + "plt.ylabel('E [$m^2/Hz$]')\n", + "plt.xlabel('Frequency [$Hz$]')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "15307d8d", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "rmesh, thetamesh = np.meshgrid(wave_spec['wavefreqbin'],wave_spec['wavedirbin'])\n", + "thetamesh = thetamesh*np.pi/180\n", + "fig, ax = plt.subplots(subplot_kw=dict(projection='polar'))\n", + "E_2D_plot = wave_spec['dWED'].T\n", + "ax.contourf(np.flip(thetamesh), rmesh,E_2D_plot,10)\n", + "ax.set_theta_zero_location(\"N\")\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "724859f6", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.plot(wl['time'], wl['WL'])\n", + "plt.ylabel('$\\eta$ [$m$]')\n", + "plt.xlabel('time [$s$]')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "1443e3f1", + "metadata": {}, + "source": [ + "## Format gathered raw data for SWASH input" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "0fd88a23", + "metadata": {}, + "outputs": [], + "source": [ + "prepdata = preptools() # initialize prepdata command" + ] + }, + { + "cell_type": "markdown", + "id": "c5eb10ff", + "metadata": {}, + "source": [ + "Process wave packet" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "9b7ce294", + "metadata": {}, + "outputs": [], + "source": [ + "good_freqs = wave_spec['wavefreqbin'][wave_spec['fspec'].mask == False] \n", + " # Above needed otherwise will interpolated frequencies beyond sensor range, skewing energy levels down to -999\n", + "wavePacket = prepdata.prep_spec_phaseResolved(rawspec=wave_spec, \n", + " version_prefix=versionPrefix, \n", + " grid='1D',\n", + " spinUpTime=spinup, \n", + " runDuration=runDuration,\n", + " freqRange=[min(good_freqs), max(good_freqs)]) # Filter down to \"good\" frequencies" + ] + }, + { + "cell_type": "markdown", + "id": "3675869c", + "metadata": {}, + "source": [ + "Process water level packet" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "70288ebf", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " -- 1 WL records with 0 interpolated points\n" + ] + } + ], + "source": [ + "wlPacket = prepdata.prep_WL(wl,wlTimeList)\n", + " # above returns multiple values when should return 1 for SWASH input" + ] + }, + { + "cell_type": "markdown", + "id": "bf8d31bf", + "metadata": {}, + "source": [ + "Process bathy packet" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "5a326907", + "metadata": {}, + "outputs": [], + "source": [ + "bathyPacket = prepdata.prep_SwashBathy(x0=xmin, \n", + " y0=profile_num-1, \n", + " bathy=bathy_data, \n", + " xBounds=[xmin, xmax+1], \n", + " yBounds = [ymin,ymax+1], \n", + " dx=dx, dy=dy)\n", + " # if 1D, ybounds should be numbers surrounding target profile number (established in user input cell)\n", + " # Xbounds and Ybounds plus 1 because python is 0-indexed" + ] + }, + { + "cell_type": "markdown", + "id": "2555ca09", + "metadata": {}, + "source": [ + "Check out processed data" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "835175e1", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "h = bathyPacket['elevation']\n", + "h = h[2,:] # Identify target profile\n", + "plt.figure()\n", + "plt.plot(bathyPacket['xFRF'], h)\n", + "plt.ylabel('h [$m$]')\n", + "plt.xlabel('x [$m$]')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "ae534253", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure()\n", + "plt.plot(wavePacket['freqbins'], wavePacket['fspec'])\n", + "plt.ylabel('E [$m^2/Hz$]')\n", + "plt.xlabel('Frequency [$Hz$]')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "ce937502", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure()\n", + "plt.plot(wl['time'],wl['WL'])\n", + "plt.plot(wlPacket['time'],wlPacket['avgWL'],marker=\"o\", markersize=20)\n", + "plt.ylabel('Water Level (m)')\n", + "plt.xlabel('Date')\n", + "plt.legend(('Raw WL','Input WL'))\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "811a4393", + "metadata": {}, + "source": [ + "## Setup the SWASH model" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "5514b05d", + "metadata": {}, + "outputs": [], + "source": [ + "swio = wrr.swashIO(WL=wlPacket['avgWL'], \n", + " equilbTime=wavePacket['spinUp'], \n", + " Hs=wavePacket['Hs'], \n", + " Tp=1/wavePacket['peakf'],\n", + " Dm=wavePacket['waveDm'],\n", + " workingDirectory=workingDir, \n", + " testName=testName, fileNameBase=date_str,\n", + " version_prefix=versionPrefix, \n", + " runTime=simulationDuration, \n", + " startTime=startTime, \n", + " endTime=endTime,\n", + " runFlag=True, \n", + " generateFlag=False,\n", + " readFlag=True)\n", + " # Above initializes swio command" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "6dfd3213", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "TODO: Replacing parameters.... whats left can be warned at the end of this process [wrr.swashIO_replaceDefaultParams]\n", + "still processing dict_keys([]) from 'modelSettings' in input file\n", + " TODO: check to make sure all data are in place and in required input dictionaries [wrr.preprocessCheck]\n" + ] + } + ], + "source": [ + "swio._replaceDefaultParams() # fill out swio command with default model settings\n", + "\n", + "swio._check_input() # final checks before writing\n", + "swio._preprocessCheck()\n", + "swio._generateRunStrings(exe)\n", + "\n", + "if not os.path.isdir(swio.workingDirectory): # make directory where input files stored\n", + " os.makedirs(swio.workingDirectory)" + ] + }, + { + "cell_type": "markdown", + "id": "7b1c7c4d", + "metadata": {}, + "source": [ + "Write the input files" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "34516143", + "metadata": {}, + "outputs": [], + "source": [ + "swio.write_spec1D(wavePacket['freqbins'], wavePacket['fspec']) # writes the SWASH forcing.BND file\n", + "swio.write_bot(bathyPacket['elevation']) # writes the SWASH bathy.BOT file\n", + "swio.write_sws(gridDict=bathyPacket, WLpacket=wlPacket) # writes the SWASH INPUT.sws file" + ] + }, + { + "cell_type": "markdown", + "id": "001b0e42", + "metadata": {}, + "source": [ + "## User runs SWASH separately: \n", + " Switch to command line, cd to the directory with input files, and run 'swash INPUT'" + ] + }, + { + "cell_type": "markdown", + "id": "31c1306c", + "metadata": {}, + "source": [ + "## Load in results" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "5d45b92d", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\lszcz\\anaconda3\\lib\\site-packages\\scipy\\io\\matlab\\mio.py:226: MatReadWarning: Duplicate variable name \"Xp\" in stream - replacing previous with new\n", + "Consider mio5.varmats_from_mat to split file into single variable files\n", + " matfile_dict = MR.get_variables(variable_names)\n", + "C:\\Users\\lszcz\\anaconda3\\lib\\site-packages\\scipy\\io\\matlab\\mio.py:226: MatReadWarning: Duplicate variable name \"Yp\" in stream - replacing previous with new\n", + "Consider mio5.varmats_from_mat to split file into single variable files\n", + " matfile_dict = MR.get_variables(variable_names)\n", + "C:\\Users\\lszcz\\anaconda3\\lib\\site-packages\\scipy\\io\\matlab\\mio.py:226: MatReadWarning: Duplicate variable name \"Botlev\" in stream - replacing previous with new\n", + "Consider mio5.varmats_from_mat to split file into single variable files\n", + " matfile_dict = MR.get_variables(variable_names)\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + " loading SWASH data takes: 2.58 seconds\n" + ] + } + ], + "source": [ + "os.chdir(swio.workingDirectory) # add path to results .mat file to directory\n", + "[dataDict, metaDict] = swio.loadSwash_Mat(testName+'.mat') # load in formatted results\n", + " # produces a benign error" + ] + }, + { + "cell_type": "markdown", + "id": "3c15b839", + "metadata": {}, + "source": [ + "Calculate some wave statistics" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "57f4c95f", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/lszcz/Documents/CMTB/cmtb\\testbedutils\\waveLib.py:492: UserWarning: neglected 1 freq bands (at highest frequency)\n", + " warnings.warn('neglected {} freq bands (at highest frequency)'.format(len(freqW) - max(avgIdxs)))\n" + ] + } + ], + "source": [ + "fspec, freqs = sbwave.timeSeriesAnalysis1D(dataDict['time'].squeeze(), dataDict['eta'].squeeze(), bandAvg=6)\n", + "Stats = sbwave.stats1D(fspec=fspec, frqbins=freqs, lowFreq=None, highFreq=None)\n", + "HsTS = 4 * np.std(dataDict['eta'].squeeze(), axis=0)" + ] + }, + { + "cell_type": "markdown", + "id": "318a36c1", + "metadata": {}, + "source": [ + "Check out processed data" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "b82ad6a3", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure()\n", + "plt.plot(dataDict['time'],dataDict['eta'][:,0,400])\n", + "plt.ylabel('$\\eta$ (m)')\n", + "plt.xlabel('Date')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "57084005", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure()\n", + "plt.plot(dataDict['xFRF'],HsTS)\n", + "plt.ylabel('$H_s$ (m)')\n", + "plt.xlabel('x (m)')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c166b886", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.8" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/notebooks/swash/swash_example_highlevel.ipynb b/notebooks/swash/swash_example_highlevel.ipynb new file mode 100644 index 0000000..5fefb71 --- /dev/null +++ b/notebooks/swash/swash_example_highlevel.ipynb @@ -0,0 +1,306 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "02a13233", + "metadata": {}, + "source": [ + "# High Level Coastal Model Test Bed (CMTB) SWASH 1D Example " + ] + }, + { + "cell_type": "markdown", + "id": "a974db70", + "metadata": {}, + "source": [ + "#### This notebook demonstrates CMTB integrated capabilities\n", + " CMTB sets this up as a \"skinny\" 2D simulation that is effectively 1D\n", + " Notebook users will have to download CMTB from github and install the required python packages\n", + " Users select simulation settings in the User Input Cell and can walk through the rest of the code\n", + " Once CMTB writes the input files, users will run SWASH separately in a command line interface \n", + " (commands listed at end of notebook)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "6e84ee98", + "metadata": {}, + "outputs": [], + "source": [ + "import sys\n", + "sys.path.insert(0, '/Users/lszcz/Documents/CMTB/cmtb/')\n", + "\n", + "from getdatatestbed import getDataFRF\n", + "from getdatatestbed.getDataFRF import getDataTestBed\n", + "from frontback import frontBackNEW\n", + "from prepdata import writeRunRead as wrr\n", + "\n", + "import datetime as dt" + ] + }, + { + "cell_type": "markdown", + "id": "f1f4c282", + "metadata": {}, + "source": [ + "## User Input Cell: Declare input settings" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "acfa5edf", + "metadata": {}, + "outputs": [], + "source": [ + "workingDir = '/Users/lszcz/Documents/CMTB/cmtb/data'\n", + "exe = '/Users/lszcz/Documents/CMTB/cmtb/data/swash.exe'\n", + "testName = 'swash1D_test_high'\n", + "versionPrefix='base'\n", + "\n", + "# Select simulated period\n", + "startTime = dt.datetime(2019,10,11,15,0,0)\n", + "date_str = '2019-10-11'\n", + "endTime = dt.datetime(2019,10,11,16,0,0)\n", + "simulationDuration = 1\n", + "spinup = 900 # initial spinup time before model output (in seconds)\n", + "\n", + "# Select bathymetric setting\n", + "bathy_loc = 'survey'\n", + "profile_num = 945\n", + "xmin = 25\n", + "xmax = 915\n", + "dx = 1\n", + "dy = 1\n", + "fric_fac = 0.015\n", + "\n", + "# Select sensor for boundary conditions\n", + "sensor = '8m-array'\n" + ] + }, + { + "cell_type": "markdown", + "id": "fbee3c73", + "metadata": {}, + "source": [ + "## Auto-format additional variables " + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "39cf1b97", + "metadata": {}, + "outputs": [], + "source": [ + "runDuration = (endTime - startTime).total_seconds()\n", + "ymin = profile_num - dy\n", + "ymax = profile_num + dy" + ] + }, + { + "cell_type": "markdown", + "id": "7bc228f1", + "metadata": {}, + "source": [ + "## Create input dictionary " + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "fe5df7f5", + "metadata": {}, + "outputs": [], + "source": [ + "Inputs = {}\n", + "Inputs['THREDDS'] = 'CHL'\n", + "Inputs['bathyLoc'] = 'integrated_bathy'\n", + "Inputs['startTime'] = dt.datetime.strftime(startTime,'%Y-%m-%dT%H:%M:%SZ')\n", + "Inputs['endTime'] = dt.datetime.strftime(endTime,'%Y-%m-%dT%H:%M:%SZ')\n", + "Inputs['modelSettings'] = {}\n", + "Inputs['modelSettings']['version_prefix'] = 'base'\n", + "Inputs['modelSettings']['yBounds'] = [ymin, ymax+1]\n", + "Inputs['modelSettings']['grid'] = '1D'\n", + "Inputs['modelSettings']['modelName'] = 'swash'\n", + "Inputs['profileNumber'] = profile_num\n", + "Inputs['simulationDuration'] = simulationDuration\n", + "Inputs['modelExecutable'] = '/Users/lszcz/Documents/CMTB/cmtb/data/swash.exe'\n", + "Inputs['workingDirectory'] = '/data'\n", + "Inputs['netCDFdir'] = '/data'\n", + "Inputs['logfileLoc'] = 'data'\n", + "Inputs['plotFlag'] = False\n", + "Inputs['generateFlag'] = True\n", + "Inputs['runFlag'] = True\n", + "Inputs['analyzeFlag'] = False" + ] + }, + { + "cell_type": "markdown", + "id": "5837c251", + "metadata": {}, + "source": [ + "## Gather data" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "5d841704", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "https://chldata.erdc.dren.mil/thredds/dodsC/frf/oceanography/waves/8m-array/2019/FRF-ocean_waves_8m-array_201910.nc\n", + "https://chldata.erdc.dren.mil/thredds/dodsC/frf/oceanography/waterlevel/eopNoaaTide/2019/FRF-ocean_waterlevel_eopNoaaTide_201910.nc\n", + "https://chldata.erdc.dren.mil/thredds/dodsC/frf/meteorology/wind/derived/2019/FRF-met_wind_derived_201910.nc\n" + ] + } + ], + "source": [ + "go = getDataFRF.getObs(startTime,endTime) # initialize go command\n", + "wave_spec = go.getWaveData(sensor,spec=True) # grab raw spectra\n", + "wl = go.getWL() # grab raw water levels\n", + "gdTB = getDataTestBed(startTime, endTime) # initialize gdTB command\n", + "rawwind = go.getWind(gaugenumber=0)" + ] + }, + { + "cell_type": "markdown", + "id": "baea545c", + "metadata": {}, + "source": [ + "## Initialize swio" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "620a73b2", + "metadata": {}, + "outputs": [], + "source": [ + "swio = wrr.swashIO(workingDirectory=workingDir, testName=testName,\n", + " versionPrefix=versionPrefix, startTime=startTime,\n", + " simulatedRunTime=simulationDuration,\n", + " endTime=endTime, runFlag=Inputs['runFlag'],\n", + " generateFlag=Inputs['generateFlag'], readFlag=Inputs['analyzeFlag'],\n", + " newModelParams=Inputs['modelSettings'])" + ] + }, + { + "cell_type": "markdown", + "id": "7d569842", + "metadata": {}, + "source": [ + "## Get AND prep bathy, prep wave and waterlevel packets formatted for SWASH input" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "fb005d9a", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "-\n", + "-\n", + "MASTER WorkFLOW for swash SIMULATIONS\n", + "-\n", + "-\n", + "\n", + "Batch Process Start: 2019-10-11 15:00:00 Finish: 2019-10-11 15:30:00 \n", + "The batch simulation is Run in /Users/lszcz/Documents/CMTB/cmtb/data\\swash1D_test_high Version\n", + "Check for simulation errors here None\n", + "------------------------------------\n", + "\n", + "************************************\n", + "\n", + "------------------------------------\n", + "\n", + "\n", + "simulation input/output files and plots will be place in /Users/lszcz/Documents/CMTB/cmtb/data\\swash1D_test_high folder\n", + "TODO: discussion - currently grabbing bathy in simSetup -- should i be? [frontBackNew.swashSimSetup]\n", + " -- 1 WL records with 0 interpolated points\n", + "https://chldata.erdc.dren.mil/thredds/dodsC/cmtb/integratedBathyProduct/survey/survey.ncml\n", + "Bathymetry is taken as closest in HISTORY - operational\n" + ] + } + ], + "source": [ + "wavePacket, windPacket, wlPacket, bathyPacket, swio = frontBackNEW.swashSimSetup(Inputs['startTime'],\n", + " inputDict=Inputs,\n", + " allWL=wl,\n", + " allWind=rawwind,\n", + " allWave=wave_spec,\n", + " wrr=swio)" + ] + }, + { + "cell_type": "markdown", + "id": "c456be67", + "metadata": {}, + "source": [ + "## Write SWASH files" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "e028a830", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "TODO: Replacing parameters.... whats left can be warned at the end of this process [wrr.swashIO_replaceDefaultParams]\n", + "still processing dict_keys(['version_prefix', 'yBounds', 'grid', 'modelName']) from 'modelSettings' in input file\n", + "writing all swash input files\n", + " TODO: calculate equlib time based on conditions [wrr.writeSWS]\n" + ] + } + ], + "source": [ + "swio.writeAllFiles(wavePacket=wavePacket,wlPacket=wlPacket,\n", + " bathyPacket=bathyPacket)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5c4c3da3", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.8" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} From a32b23978d840752eb986676a5a9ce9715fdb279 Mon Sep 17 00:00:00 2001 From: Laura Szczyrba Date: Wed, 31 Aug 2022 14:45:34 -0400 Subject: [PATCH 3/5] swash notebook updates --- notebooks/swash/swash_example.ipynb | 405 ++++++++++++++++++++++++---- 1 file changed, 348 insertions(+), 57 deletions(-) diff --git a/notebooks/swash/swash_example.ipynb b/notebooks/swash/swash_example.ipynb index dd80c4e..866e99d 100644 --- a/notebooks/swash/swash_example.ipynb +++ b/notebooks/swash/swash_example.ipynb @@ -17,8 +17,9 @@ " CMTB sets this up as a \"skinny\" 2D simulation that is effectively 1D\n", " Notebook users will have to download CMTB from github and install the required python packages\n", " Users select simulation settings in the User Input Cell and can walk through the rest of the code\n", - " Once CMTB writes the input files, users will run SWASH separately in a command line interface \n", - " (commands listed at end of notebook)" + " Once CMTB writes the input files, users can run SWASH separately in a command line interface \n", + " (commands listed at end of notebook) OR, if users have a SWASH mpiexec compiled (aka SWASH compiled in parallel mode), \n", + " users may run SWASH via CMTB" ] }, { @@ -31,7 +32,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 52, "id": "7797d0ff", "metadata": {}, "outputs": [], @@ -45,13 +46,16 @@ "from getdatatestbed.getDataFRF import getDataTestBed\n", "from prepdata import writeRunRead as wrr\n", "from testbedutils import waveLib as sbwave\n", + "from subprocess import check_output\n", + "from plotting.operationalPlots import generate_CrossShoreTimeseries\n", "\n", "# Standard utilities\n", "import datetime as dt\n", "import numpy as np\n", "import os\n", "import matplotlib\n", - "import matplotlib.pyplot as plt" + "import matplotlib.pyplot as plt\n", + "import netCDF4 as nc4" ] }, { @@ -64,15 +68,15 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 2, "id": "3f39ac02", "metadata": {}, "outputs": [], "source": [ "# Organizational settings\n", "workingDir = '/Users/lszcz/Documents/CMTB/cmtb/data'\n", - "exe = '/Users/lszcz/Documents/CMTB/cmtb/data/swash.exe'\n", - "testName = 'swash1D_test'\n", + "exe = '/mirror/swash/swash.exe'\n", + "testName = 'swash1D_test_mpi'\n", "versionPrefix='base' \n", "\n", "# Select simulated period\n", @@ -81,6 +85,7 @@ "endTime = dt.datetime(2019,10,11,16,0,0) # Stop time, 1 hour after start time, Year, month, day, hour\n", "simulationDuration = 1 # length of time for simulated event (should be 1 hour)\n", "spinup = 900 # initial spinup time before model output (in seconds)\n", + "ncores = 18 # number of cores to use\n", "\n", "# Select bathymetric setting\n", "bathy_loc = 'survey'\n", @@ -116,7 +121,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 3, "id": "2f784ad3", "metadata": {}, "outputs": [], @@ -148,7 +153,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 4, "id": "85167670", "metadata": {}, "outputs": [], @@ -158,7 +163,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 5, "id": "956cd954", "metadata": {}, "outputs": [ @@ -186,7 +191,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 6, "id": "e3d9696f", "metadata": {}, "outputs": [], @@ -196,7 +201,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 7, "id": "d0c6e8a0", "metadata": {}, "outputs": [ @@ -226,7 +231,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 8, "id": "41bf8025", "metadata": {}, "outputs": [ @@ -253,7 +258,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 9, "id": "15307d8d", "metadata": {}, "outputs": [ @@ -282,7 +287,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 10, "id": "724859f6", "metadata": {}, "outputs": [ @@ -316,7 +321,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 11, "id": "0fd88a23", "metadata": {}, "outputs": [], @@ -334,7 +339,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 12, "id": "9b7ce294", "metadata": {}, "outputs": [], @@ -359,7 +364,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 13, "id": "70288ebf", "metadata": {}, "outputs": [ @@ -373,7 +378,7 @@ ], "source": [ "wlPacket = prepdata.prep_WL(wl,wlTimeList)\n", - " # above returns multiple values when should return 1 for SWASH input" + " # Should return 1 record for SWASH input" ] }, { @@ -386,7 +391,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 14, "id": "5a326907", "metadata": {}, "outputs": [], @@ -411,7 +416,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 15, "id": "835175e1", "metadata": {}, "outputs": [ @@ -440,7 +445,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 16, "id": "ae534253", "metadata": {}, "outputs": [ @@ -467,7 +472,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 17, "id": "ce937502", "metadata": {}, "outputs": [ @@ -504,7 +509,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 18, "id": "5514b05d", "metadata": {}, "outputs": [], @@ -528,7 +533,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 19, "id": "6dfd3213", "metadata": {}, "outputs": [ @@ -537,20 +542,18 @@ "output_type": "stream", "text": [ "TODO: Replacing parameters.... whats left can be warned at the end of this process [wrr.swashIO_replaceDefaultParams]\n", - "still processing dict_keys([]) from 'modelSettings' in input file\n", - " TODO: check to make sure all data are in place and in required input dictionaries [wrr.preprocessCheck]\n" + "still processing dict_keys([]) from 'modelSettings' in input file\n" ] } ], "source": [ "swio._replaceDefaultParams() # fill out swio command with default model settings\n", "\n", - "swio._check_input() # final checks before writing\n", - "swio._preprocessCheck()\n", - "swio._generateRunStrings(exe)\n", - "\n", "if not os.path.isdir(swio.workingDirectory): # make directory where input files stored\n", - " os.makedirs(swio.workingDirectory)" + " os.makedirs(swio.workingDirectory)\n", + "os.chdir(swio.workingDirectory)\n", + "\n", + "swio._check_input() # final checks before writing" ] }, { @@ -563,10 +566,18 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 20, "id": "34516143", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " TODO: calculate equlib time based on conditions [wrr.writeSWS]\n" + ] + } + ], "source": [ "swio.write_spec1D(wavePacket['freqbins'], wavePacket['fspec']) # writes the SWASH forcing.BND file\n", "swio.write_bot(bathyPacket['elevation']) # writes the SWASH bathy.BOT file\n", @@ -578,44 +589,75 @@ "id": "001b0e42", "metadata": {}, "source": [ - "## User runs SWASH separately: \n", + "## -----------------------------------------------------------------------------------------\n", + "## (1) User runs SWASH separately: \n", " Switch to command line, cd to the directory with input files, and run 'swash INPUT'" ] }, { "cell_type": "markdown", - "id": "31c1306c", + "id": "61fd75b6", "metadata": {}, "source": [ - "## Load in results" + "## (2) User runs SWASH mpiexec in this notebook: \n", + " Can be applied if user has SWASH compiled in parallel mode on their machine and can call mpiexec" ] }, { "cell_type": "code", - "execution_count": 20, - "id": "5d45b92d", + "execution_count": 24, + "id": "3a26d524", + "metadata": {}, + "outputs": [], + "source": [ + "swio._generateRunStrings(exe)\n", + "# overwriting below to account for windows running ubuntu shell on windows machine\n", + "swio.runString1 = 'wsl mpiexec -n 18 /mirror/swash/swash.exe INPUT' " + ] + }, + { + "cell_type": "code", + "execution_count": 64, + "id": "f1e0302d", "metadata": {}, "outputs": [ { - "name": "stderr", + "name": "stdout", "output_type": "stream", "text": [ - "C:\\Users\\lszcz\\anaconda3\\lib\\site-packages\\scipy\\io\\matlab\\mio.py:226: MatReadWarning: Duplicate variable name \"Xp\" in stream - replacing previous with new\n", - "Consider mio5.varmats_from_mat to split file into single variable files\n", - " matfile_dict = MR.get_variables(variable_names)\n", - "C:\\Users\\lszcz\\anaconda3\\lib\\site-packages\\scipy\\io\\matlab\\mio.py:226: MatReadWarning: Duplicate variable name \"Yp\" in stream - replacing previous with new\n", - "Consider mio5.varmats_from_mat to split file into single variable files\n", - " matfile_dict = MR.get_variables(variable_names)\n", - "C:\\Users\\lszcz\\anaconda3\\lib\\site-packages\\scipy\\io\\matlab\\mio.py:226: MatReadWarning: Duplicate variable name \"Botlev\" in stream - replacing previous with new\n", - "Consider mio5.varmats_from_mat to split file into single variable files\n", - " matfile_dict = MR.get_variables(variable_names)\n" + " TODO: check to make sure all data are in place and in required input dictionaries [wrr.preprocessCheck]\n", + "Running swash Simulation starting at 2022-08-31 11:54:23.019465\n" ] - }, + } + ], + "source": [ + "swio._preprocessCheck()\n", + "init_t = dt.datetime.now()\n", + "print('Running {} Simulation starting at {}'.format(swio.modelName, init_t))\n", + "\n", + "_ = check_output(swio.runstring1, shell=False) # RUN COMMAND" + ] + }, + { + "cell_type": "markdown", + "id": "31c1306c", + "metadata": {}, + "source": [ + "## -----------------------------------------------------------------------------------------\n", + "## Load in results" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "id": "5d45b92d", + "metadata": {}, + "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - " loading SWASH data takes: 2.58 seconds\n" + " loading SWASH data takes: 2.32 seconds\n" ] } ], @@ -635,7 +677,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 54, "id": "57f4c95f", "metadata": {}, "outputs": [ @@ -664,13 +706,13 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 55, "id": "b82ad6a3", "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -691,13 +733,13 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 56, "id": "57084005", "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -716,10 +758,259 @@ "plt.show()" ] }, + { + "cell_type": "code", + "execution_count": 61, + "id": "9e292e14", + "metadata": {}, + "outputs": [], + "source": [ + "generate_CrossShoreTimeseries(workingDir+'/'+testName+'/img', np.mean(dataDict['eta'].squeeze(), axis=0), dataDict['elevation'], dataDict['xFRF'])" + ] + }, + { + "cell_type": "code", + "execution_count": 63, + "id": "e6b71fdf", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "execution_count": 63, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from IPython.display import Image\n", + "Image(workingDir+'/'+testName+'/img'+'.png')" + ] + }, + { + "cell_type": "markdown", + "id": "74c1f048", + "metadata": {}, + "source": [ + "## Save Results to netcdf" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "id": "d2870c8e", + "metadata": {}, + "outputs": [], + "source": [ + "ncfile = nc4.Dataset('/Users/lszcz/Documents/CMTB/cmtb/data/test4.nc',mode='w')\n" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "id": "43e22f57", + "metadata": {}, + "outputs": [], + "source": [ + "x_dim = ncfile.createDimension('x', len(dataDict['xFRF'])) \n", + "y_dim = ncfile.createDimension('y', len(dataDict['yFRF'])) \n", + "time_dim = ncfile.createDimension('time', len(dataDict['time'])) \n", + "eta_dim = ncfile.createDimension('eta', len(dataDict['eta']))\n" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "id": "4cc0b128", + "metadata": {}, + "outputs": [ + { + "ename": "SyntaxError", + "evalue": "invalid syntax (2052290495.py, line 2)", + "output_type": "error", + "traceback": [ + "\u001b[1;36m Input \u001b[1;32mIn [50]\u001b[1;36m\u001b[0m\n\u001b[1;33m y_dim = ncfile.createDimension('y', len(dataDict['yFRF'])\u001b[0m\n\u001b[1;37m ^\u001b[0m\n\u001b[1;31mSyntaxError\u001b[0m\u001b[1;31m:\u001b[0m invalid syntax\n" + ] + } + ], + "source": [ + "x_dim = ncfile.createDimension('x', len(dataDict['xFRF']) \n", + "y_dim = ncfile.createDimension('y', len(dataDict['yFRF']) \n", + "time_dim = ncfile.createDimension('time', len(dataDict['time']) \n", + "eta_dim = ncfile.createDimension('eta', len(dataDict['eta'])" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "id": "0742c734", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([ 25., 26., 27., 28., 29., 30., 31., 32., 33., 34., 35.,\n", + " 36., 37., 38., 39., 40., 41., 42., 43., 44., 45., 46.,\n", + " 47., 48., 49., 50., 51., 52., 53., 54., 55., 56., 57.,\n", + " 58., 59., 60., 61., 62., 63., 64., 65., 66., 67., 68.,\n", + " 69., 70., 71., 72., 73., 74., 75., 76., 77., 78., 79.,\n", + " 80., 81., 82., 83., 84., 85., 86., 87., 88., 89., 90.,\n", + " 91., 92., 93., 94., 95., 96., 97., 98., 99., 100., 101.,\n", + " 102., 103., 104., 105., 106., 107., 108., 109., 110., 111., 112.,\n", + " 113., 114., 115., 116., 117., 118., 119., 120., 121., 122., 123.,\n", + " 124., 125., 126., 127., 128., 129., 130., 131., 132., 133., 134.,\n", + " 135., 136., 137., 138., 139., 140., 141., 142., 143., 144., 145.,\n", + " 146., 147., 148., 149., 150., 151., 152., 153., 154., 155., 156.,\n", + " 157., 158., 159., 160., 161., 162., 163., 164., 165., 166., 167.,\n", + " 168., 169., 170., 171., 172., 173., 174., 175., 176., 177., 178.,\n", + " 179., 180., 181., 182., 183., 184., 185., 186., 187., 188., 189.,\n", + " 190., 191., 192., 193., 194., 195., 196., 197., 198., 199., 200.,\n", + " 201., 202., 203., 204., 205., 206., 207., 208., 209., 210., 211.,\n", + " 212., 213., 214., 215., 216., 217., 218., 219., 220., 221., 222.,\n", + " 223., 224., 225., 226., 227., 228., 229., 230., 231., 232., 233.,\n", + " 234., 235., 236., 237., 238., 239., 240., 241., 242., 243., 244.,\n", + " 245., 246., 247., 248., 249., 250., 251., 252., 253., 254., 255.,\n", + " 256., 257., 258., 259., 260., 261., 262., 263., 264., 265., 266.,\n", + " 267., 268., 269., 270., 271., 272., 273., 274., 275., 276., 277.,\n", + " 278., 279., 280., 281., 282., 283., 284., 285., 286., 287., 288.,\n", + " 289., 290., 291., 292., 293., 294., 295., 296., 297., 298., 299.,\n", + " 300., 301., 302., 303., 304., 305., 306., 307., 308., 309., 310.,\n", + " 311., 312., 313., 314., 315., 316., 317., 318., 319., 320., 321.,\n", + " 322., 323., 324., 325., 326., 327., 328., 329., 330., 331., 332.,\n", + " 333., 334., 335., 336., 337., 338., 339., 340., 341., 342., 343.,\n", + " 344., 345., 346., 347., 348., 349., 350., 351., 352., 353., 354.,\n", + " 355., 356., 357., 358., 359., 360., 361., 362., 363., 364., 365.,\n", + " 366., 367., 368., 369., 370., 371., 372., 373., 374., 375., 376.,\n", + " 377., 378., 379., 380., 381., 382., 383., 384., 385., 386., 387.,\n", + " 388., 389., 390., 391., 392., 393., 394., 395., 396., 397., 398.,\n", + " 399., 400., 401., 402., 403., 404., 405., 406., 407., 408., 409.,\n", + " 410., 411., 412., 413., 414., 415., 416., 417., 418., 419., 420.,\n", + " 421., 422., 423., 424., 425., 426., 427., 428., 429., 430., 431.,\n", + " 432., 433., 434., 435., 436., 437., 438., 439., 440., 441., 442.,\n", + " 443., 444., 445., 446., 447., 448., 449., 450., 451., 452., 453.,\n", + " 454., 455., 456., 457., 458., 459., 460., 461., 462., 463., 464.,\n", + " 465., 466., 467., 468., 469., 470., 471., 472., 473., 474., 475.,\n", + " 476., 477., 478., 479., 480., 481., 482., 483., 484., 485., 486.,\n", + " 487., 488., 489., 490., 491., 492., 493., 494., 495., 496., 497.,\n", + " 498., 499., 500., 501., 502., 503., 504., 505., 506., 507., 508.,\n", + " 509., 510., 511., 512., 513., 514., 515., 516., 517., 518., 519.,\n", + " 520., 521., 522., 523., 524., 525., 526., 527., 528., 529., 530.,\n", + " 531., 532., 533., 534., 535., 536., 537., 538., 539., 540., 541.,\n", + " 542., 543., 544., 545., 546., 547., 548., 549., 550., 551., 552.,\n", + " 553., 554., 555., 556., 557., 558., 559., 560., 561., 562., 563.,\n", + " 564., 565., 566., 567., 568., 569., 570., 571., 572., 573., 574.,\n", + " 575., 576., 577., 578., 579., 580., 581., 582., 583., 584., 585.,\n", + " 586., 587., 588., 589., 590., 591., 592., 593., 594., 595., 596.,\n", + " 597., 598., 599., 600., 601., 602., 603., 604., 605., 606., 607.,\n", + " 608., 609., 610., 611., 612., 613., 614., 615., 616., 617., 618.,\n", + " 619., 620., 621., 622., 623., 624., 625., 626., 627., 628., 629.,\n", + " 630., 631., 632., 633., 634., 635., 636., 637., 638., 639., 640.,\n", + " 641., 642., 643., 644., 645., 646., 647., 648., 649., 650., 651.,\n", + " 652., 653., 654., 655., 656., 657., 658., 659., 660., 661., 662.,\n", + " 663., 664., 665., 666., 667., 668., 669., 670., 671., 672., 673.,\n", + " 674., 675., 676., 677., 678., 679., 680., 681., 682., 683., 684.,\n", + " 685., 686., 687., 688., 689., 690., 691., 692., 693., 694., 695.,\n", + " 696., 697., 698., 699., 700., 701., 702., 703., 704., 705., 706.,\n", + " 707., 708., 709., 710., 711., 712., 713., 714., 715., 716., 717.,\n", + " 718., 719., 720., 721., 722., 723., 724., 725., 726., 727., 728.,\n", + " 729., 730., 731., 732., 733., 734., 735., 736., 737., 738., 739.,\n", + " 740., 741., 742., 743., 744., 745., 746., 747., 748., 749., 750.,\n", + " 751., 752., 753., 754., 755., 756., 757., 758., 759., 760., 761.,\n", + " 762., 763., 764., 765., 766., 767., 768., 769., 770., 771., 772.,\n", + " 773., 774., 775., 776., 777., 778., 779., 780., 781., 782., 783.,\n", + " 784., 785., 786., 787., 788., 789., 790., 791., 792., 793., 794.,\n", + " 795., 796., 797., 798., 799., 800., 801., 802., 803., 804., 805.,\n", + " 806., 807., 808., 809., 810., 811., 812., 813., 814., 815., 816.,\n", + " 817., 818., 819., 820., 821., 822., 823., 824., 825., 826., 827.,\n", + " 828., 829., 830., 831., 832., 833., 834., 835., 836., 837., 838.,\n", + " 839., 840., 841., 842., 843., 844., 845., 846., 847., 848., 849.,\n", + " 850., 851., 852., 853., 854., 855., 856., 857., 858., 859., 860.,\n", + " 861., 862., 863., 864., 865., 866., 867., 868., 869., 870., 871.,\n", + " 872., 873., 874., 875., 876., 877., 878., 879., 880., 881., 882.,\n", + " 883., 884., 885., 886., 887., 888., 889., 890., 891., 892., 893.,\n", + " 894., 895., 896., 897., 898., 899., 900., 901., 902., 903., 904.,\n", + " 905., 906., 907., 908., 909., 910., 911., 912., 913., 914.],\n", + " dtype=float32)" + ] + }, + "execution_count": 48, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dataDict['xFRF']" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "id": "603d912d", + "metadata": {}, + "outputs": [], + "source": [ + "parms = ncfile.createGroup('dataDict')" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "id": "a4266e58", + "metadata": {}, + "outputs": [ + { + "ename": "TypeError", + "evalue": "illegal data type for attribute b'time', must be one of dict_keys(['S1', 'i1', 'u1', 'i2', 'u2', 'i4', 'u4', 'i8', 'u8', 'f4', 'f8']), got O", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)", + "Input \u001b[1;32mIn [42]\u001b[0m, in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m k,v \u001b[38;5;129;01min\u001b[39;00m dataDict\u001b[38;5;241m.\u001b[39mitems():\n\u001b[1;32m----> 2\u001b[0m \u001b[38;5;28;43msetattr\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mparms\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mk\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mv\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[1;32msrc\\netCDF4\\_netCDF4.pyx:2986\u001b[0m, in \u001b[0;36mnetCDF4._netCDF4.Dataset.__setattr__\u001b[1;34m()\u001b[0m\n", + "File \u001b[1;32msrc\\netCDF4\\_netCDF4.pyx:2916\u001b[0m, in \u001b[0;36mnetCDF4._netCDF4.Dataset.setncattr\u001b[1;34m()\u001b[0m\n", + "File \u001b[1;32msrc\\netCDF4\\_netCDF4.pyx:1688\u001b[0m, in \u001b[0;36mnetCDF4._netCDF4._set_att\u001b[1;34m()\u001b[0m\n", + "\u001b[1;31mTypeError\u001b[0m: illegal data type for attribute b'time', must be one of dict_keys(['S1', 'i1', 'u1', 'i2', 'u2', 'i4', 'u4', 'i8', 'u8', 'f4', 'f8']), got O" + ] + } + ], + "source": [ + "for k,v in dataDict.items():\n", + " setattr(parms, k, v)" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "id": "9b99713a", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "\n", + "group /dataDict:\n", + " dimensions(sizes): \n", + " variables(dimensions): \n", + " groups: " + ] + }, + "execution_count": 43, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "parms\n" + ] + }, { "cell_type": "code", "execution_count": null, - "id": "c166b886", + "id": "4d872bf6", "metadata": {}, "outputs": [], "source": [] From e1734ed2737bbdeddec86daa339675db4eab18fa Mon Sep 17 00:00:00 2001 From: Laura Szczyrba Date: Wed, 31 Aug 2022 14:45:41 -0400 Subject: [PATCH 4/5] swash notebook updates --- notebooks/swash/swash_example_highlevel.ipynb | 93 +++++++++++++++++-- 1 file changed, 87 insertions(+), 6 deletions(-) diff --git a/notebooks/swash/swash_example_highlevel.ipynb b/notebooks/swash/swash_example_highlevel.ipynb index 5fefb71..b4677b3 100644 --- a/notebooks/swash/swash_example_highlevel.ipynb +++ b/notebooks/swash/swash_example_highlevel.ipynb @@ -17,8 +17,9 @@ " CMTB sets this up as a \"skinny\" 2D simulation that is effectively 1D\n", " Notebook users will have to download CMTB from github and install the required python packages\n", " Users select simulation settings in the User Input Cell and can walk through the rest of the code\n", - " Once CMTB writes the input files, users will run SWASH separately in a command line interface \n", - " (commands listed at end of notebook)" + " Once CMTB writes the input files, users can run SWASH separately in a command line interface \n", + " (commands listed at end of notebook) OR, if users have a SWASH mpiexec compiled (aka SWASH compiled in parallel mode), \n", + " users may run SWASH via CMTB" ] }, { @@ -55,8 +56,8 @@ "outputs": [], "source": [ "workingDir = '/Users/lszcz/Documents/CMTB/cmtb/data'\n", - "exe = '/Users/lszcz/Documents/CMTB/cmtb/data/swash.exe'\n", - "testName = 'swash1D_test_high'\n", + "exe = '/mirror/swash/swash.exe''\n", + "testName = 'swash1D_test_mpi'\n", "versionPrefix='base'\n", "\n", "# Select simulated period\n", @@ -65,6 +66,7 @@ "endTime = dt.datetime(2019,10,11,16,0,0)\n", "simulationDuration = 1\n", "spinup = 900 # initial spinup time before model output (in seconds)\n", + "ncores = 18 # number of cores to use\n", "\n", "# Select bathymetric setting\n", "bathy_loc = 'survey'\n", @@ -273,13 +275,92 @@ " bathyPacket=bathyPacket)" ] }, + { + "cell_type": "markdown", + "id": "5e9d0fbe", + "metadata": {}, + "source": [ + "## -----------------------------------------------------------------------------------------\n", + "## Run SWASH" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5a6691ad", + "metadata": {}, + "outputs": [], + "source": [ + "swio.runSimulation(exe)" + ] + }, + { + "cell_type": "markdown", + "id": "fb0c879f", + "metadata": {}, + "source": [ + "## -----------------------------------------------------------------------------------------\n", + "## Load in results" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5ba8cbe4", + "metadata": {}, + "outputs": [], + "source": [ + "os.chdir(swio.workingDirectory) # add path to results .mat file to directory\n", + "[dataDict, metaDict] = swio.loadSwash_Mat(testName+'.mat') # load in formatted results\n", + " # produces a benign error" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b4542723", + "metadata": {}, + "outputs": [], + "source": [ + "fspec, freqs = sbwave.timeSeriesAnalysis1D(dataDict['time'].squeeze(), dataDict['eta'].squeeze(), bandAvg=6)\n", + "Stats = sbwave.stats1D(fspec=fspec, frqbins=freqs, lowFreq=None, highFreq=None)\n", + "HsTS = 4 * np.std(dataDict['eta'].squeeze(), axis=0)" + ] + }, { "cell_type": "code", "execution_count": null, - "id": "5c4c3da3", + "id": "bb39c271", "metadata": {}, "outputs": [], - "source": [] + "source": [ + "plt.figure()\n", + "plt.plot(dataDict['xFRF'],HsTS)\n", + "plt.ylabel('$H_s$ (m)')\n", + "plt.xlabel('x (m)')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1bc3a28d", + "metadata": {}, + "outputs": [], + "source": [ + "generate_CrossShoreTimeseries(workingDir+'/'+testName+'/img', np.mean(dataDict['eta'].squeeze(), axis=0), dataDict['elevation'], dataDict['xFRF'])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b9b78c9a", + "metadata": {}, + "outputs": [], + "source": [ + "from IPython.display import Image\n", + "Image(workingDir+'/'+testName+'/img'+'.png')" + ] } ], "metadata": { From ca573167cbe5b91422bd42e996d779f7f1d26d71 Mon Sep 17 00:00:00 2001 From: Laura Szczyrba Date: Thu, 1 Sep 2022 16:50:50 -0400 Subject: [PATCH 5/5] updated swash_example notebook to include plots nad netcdf output --- notebooks/swash/swash_example.ipynb | 643 ++++++------------ notebooks/swash/swash_example_highlevel.ipynb | 111 +-- plotting/operationalPlots.py | 356 ++++++---- 3 files changed, 469 insertions(+), 641 deletions(-) diff --git a/notebooks/swash/swash_example.ipynb b/notebooks/swash/swash_example.ipynb index 866e99d..587710b 100644 --- a/notebooks/swash/swash_example.ipynb +++ b/notebooks/swash/swash_example.ipynb @@ -32,7 +32,7 @@ }, { "cell_type": "code", - "execution_count": 52, + "execution_count": null, "id": "7797d0ff", "metadata": {}, "outputs": [], @@ -45,17 +45,21 @@ "from getdatatestbed import getDataFRF\n", "from getdatatestbed.getDataFRF import getDataTestBed\n", "from prepdata import writeRunRead as wrr\n", + "from prepdata import inputOutput\n", "from testbedutils import waveLib as sbwave\n", "from subprocess import check_output\n", "from plotting.operationalPlots import generate_CrossShoreTimeseries\n", + "from plotting import operationalPlots as oP\n", + "from testbedutils import sblib as sb\n", "\n", "# Standard utilities\n", "import datetime as dt\n", + "import netCDF4 as nc\n", "import numpy as np\n", - "import os\n", + "import os, glob, makenc\n", "import matplotlib\n", "import matplotlib.pyplot as plt\n", - "import netCDF4 as nc4" + "import netCDF4 as nc" ] }, { @@ -68,16 +72,26 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "id": "3f39ac02", "metadata": {}, "outputs": [], "source": [ - "# Organizational settings\n", - "workingDir = '/Users/lszcz/Documents/CMTB/cmtb/data'\n", + "# Define various directories:\n", + "path_prefix = '/Users/lszcz/Documents/CMTB/cmtb' # core cmtb path\n", + "workingDir = '/Users/lszcz/Documents/CMTB/cmtb/data' \n", "exe = '/mirror/swash/swash.exe'\n", + "# choose location and name of netcdf file with results:\n", + "npath= '/Users/lszcz/Documents/CMTB/cmtb/data/swash1D_test_mpi/ncresults/results.nc' \n", + "# local path to swash_global.yml:\n", + "fieldYaml = '/Users/lszcz/Documents/CMTB/cmtb/yaml_files/WaveModels/swash/base/swash_global.yml' \n", + "# local path to swash_var.yml:\n", + "varYaml = '/Users/lszcz/Documents/CMTB/cmtb/yaml_files/waveModels/swash/swash_var.yml' \n", + "\n", + "# Define simulation\n", "testName = 'swash1D_test_mpi'\n", - "versionPrefix='base' \n", + "versionPrefix='base'\n", + "model = 'swash'\n", "\n", "# Select simulated period\n", "date_str = '2019-10-11' \n", @@ -121,7 +135,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "id": "2f784ad3", "metadata": {}, "outputs": [], @@ -153,7 +167,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "id": "85167670", "metadata": {}, "outputs": [], @@ -163,19 +177,10 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "id": "956cd954", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "https://chldata.erdc.dren.mil/thredds/dodsC/frf/oceanography/waves/8m-array/2019/FRF-ocean_waves_8m-array_201910.nc\n", - "https://chldata.erdc.dren.mil/thredds/dodsC/frf/oceanography/waterlevel/eopNoaaTide/2019/FRF-ocean_waterlevel_eopNoaaTide_201910.nc\n" - ] - } - ], + "outputs": [], "source": [ "wave_spec = go.getWaveData(sensor,spec=True) # grab raw spectra\n", "wl = go.getWL() # grab raw water levels" @@ -191,7 +196,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "id": "e3d9696f", "metadata": {}, "outputs": [], @@ -201,20 +206,10 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "id": "d0c6e8a0", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "!!!Forced bathy date 2019-10-15 23:00:00\n", - "https://chldata.erdc.dren.mil/thredds/dodsC/cmtb/integratedBathyProduct/survey/survey.ncml\n", - "Bathymetry is taken as closest in HISTORY - operational\n" - ] - } - ], + "outputs": [], "source": [ "bathy_data = gdTB.getBathyIntegratedTransect(method=1, # Gathers relevant data (beyond designated bounds) to pass into prepbathy for interpolation\n", " ForcedSurveyDate=survey_date, \n", @@ -231,23 +226,10 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "id": "41bf8025", "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "plt.figure()\n", "plt.plot(wave_spec['wavefreqbin'], wave_spec['fspec'])\n", @@ -258,23 +240,10 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "id": "15307d8d", "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "rmesh, thetamesh = np.meshgrid(wave_spec['wavefreqbin'],wave_spec['wavedirbin'])\n", "thetamesh = thetamesh*np.pi/180\n", @@ -287,23 +256,10 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "id": "724859f6", "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "plt.plot(wl['time'], wl['WL'])\n", "plt.ylabel('$\\eta$ [$m$]')\n", @@ -321,7 +277,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "id": "0fd88a23", "metadata": {}, "outputs": [], @@ -339,7 +295,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "id": "9b7ce294", "metadata": {}, "outputs": [], @@ -364,18 +320,10 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "id": "70288ebf", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " -- 1 WL records with 0 interpolated points\n" - ] - } - ], + "outputs": [], "source": [ "wlPacket = prepdata.prep_WL(wl,wlTimeList)\n", " # Should return 1 record for SWASH input" @@ -391,7 +339,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "id": "5a326907", "metadata": {}, "outputs": [], @@ -416,23 +364,10 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": null, "id": "835175e1", "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "h = bathyPacket['elevation']\n", "h = h[2,:] # Identify target profile\n", @@ -445,23 +380,10 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": null, "id": "ae534253", "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "plt.figure()\n", "plt.plot(wavePacket['freqbins'], wavePacket['fspec'])\n", @@ -472,23 +394,10 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": null, "id": "ce937502", "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "plt.figure()\n", "plt.plot(wl['time'],wl['WL'])\n", @@ -509,7 +418,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": null, "id": "5514b05d", "metadata": {}, "outputs": [], @@ -533,19 +442,10 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": null, "id": "6dfd3213", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "TODO: Replacing parameters.... whats left can be warned at the end of this process [wrr.swashIO_replaceDefaultParams]\n", - "still processing dict_keys([]) from 'modelSettings' in input file\n" - ] - } - ], + "outputs": [], "source": [ "swio._replaceDefaultParams() # fill out swio command with default model settings\n", "\n", @@ -566,18 +466,10 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": null, "id": "34516143", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " TODO: calculate equlib time based on conditions [wrr.writeSWS]\n" - ] - } - ], + "outputs": [], "source": [ "swio.write_spec1D(wavePacket['freqbins'], wavePacket['fspec']) # writes the SWASH forcing.BND file\n", "swio.write_bot(bathyPacket['elevation']) # writes the SWASH bathy.BOT file\n", @@ -590,8 +482,9 @@ "metadata": {}, "source": [ "## -----------------------------------------------------------------------------------------\n", - "## (1) User runs SWASH separately: \n", - " Switch to command line, cd to the directory with input files, and run 'swash INPUT'" + "# RUNING SWASH BELOW, TWO OPTIONS:\n", + "## (1) Run SWASH separately \n", + " Switch to command line, cd to the test directory with input files, and run 'swash INPUT'" ] }, { @@ -599,43 +492,34 @@ "id": "61fd75b6", "metadata": {}, "source": [ - "## (2) User runs SWASH mpiexec in this notebook: \n", - " Can be applied if user has SWASH compiled in parallel mode on their machine and can call mpiexec" + "## (2) User runs SWASH mpiexec via this notebook in the following cells: \n", + " Can be applied if user has SWASH compiled in parallel mode on their machine and can call mpiexec:" ] }, { "cell_type": "code", - "execution_count": 24, + "execution_count": null, "id": "3a26d524", "metadata": {}, "outputs": [], "source": [ - "swio._generateRunStrings(exe)\n", + "swio._generateRunStrings(exe) # default run string generated by cmtb: 'mpiexec -n 18 /USER/PATHTO.EXE INPUT'\n", "# overwriting below to account for windows running ubuntu shell on windows machine\n", "swio.runString1 = 'wsl mpiexec -n 18 /mirror/swash/swash.exe INPUT' " ] }, { "cell_type": "code", - "execution_count": 64, + "execution_count": null, "id": "f1e0302d", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " TODO: check to make sure all data are in place and in required input dictionaries [wrr.preprocessCheck]\n", - "Running swash Simulation starting at 2022-08-31 11:54:23.019465\n" - ] - } - ], + "outputs": [], "source": [ "swio._preprocessCheck()\n", "init_t = dt.datetime.now()\n", "print('Running {} Simulation starting at {}'.format(swio.modelName, init_t))\n", "\n", - "_ = check_output(swio.runstring1, shell=False) # RUN COMMAND" + "_ = check_output(swio.runString1, shell=False) # RUN COMMAND" ] }, { @@ -649,22 +533,14 @@ }, { "cell_type": "code", - "execution_count": 53, + "execution_count": null, "id": "5d45b92d", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " loading SWASH data takes: 2.32 seconds\n" - ] - } - ], + "outputs": [], "source": [ - "os.chdir(swio.workingDirectory) # add path to results .mat file to directory\n", - "[dataDict, metaDict] = swio.loadSwash_Mat(testName+'.mat') # load in formatted results\n", - " # produces a benign error" + "os.chdir(swio.workingDirectory) # switch to where .mat results stored (working directory)\n", + "[dataDict, metaDict] = swio.loadSwash_Mat(testName+'.mat') # load in and format results\n", + " # (produces a benign warning)" ] }, { @@ -677,52 +553,68 @@ }, { "cell_type": "code", - "execution_count": 54, + "execution_count": null, "id": "57f4c95f", "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/lszcz/Documents/CMTB/cmtb\\testbedutils\\waveLib.py:492: UserWarning: neglected 1 freq bands (at highest frequency)\n", - " warnings.warn('neglected {} freq bands (at highest frequency)'.format(len(freqW) - max(avgIdxs)))\n" - ] - } - ], + "outputs": [], "source": [ + "eta = dataDict['eta'].squeeze()\n", + "\n", "fspec, freqs = sbwave.timeSeriesAnalysis1D(dataDict['time'].squeeze(), dataDict['eta'].squeeze(), bandAvg=6)\n", "Stats = sbwave.stats1D(fspec=fspec, frqbins=freqs, lowFreq=None, highFreq=None)\n", + " # (produces a benign warning)\n", "HsTS = 4 * np.std(dataDict['eta'].squeeze(), axis=0)" ] }, + { + "cell_type": "code", + "execution_count": null, + "id": "efc5076f", + "metadata": {}, + "outputs": [], + "source": [ + "# We use 0.08 m for runup threshold\n", + "r_depth = 0.08 # 4.0 * np.nanmax(np.abs(h[runupInd][1:] - h[runupInd][:-1]))\n", + "\n", + "# Pre-allocate runup variable\n", + "runup = np.zeros(eta.shape[0])\n", + "x_runup = np.zeros_like(runup)\n", + "\n", + "for aa in range(runup.shape[0]):\n", + " # Water depth\n", + " wdepth = eta[aa, :] + dataDict['elevation']\n", + " # Find the runup contour (search from left to right)\n", + " wdepth_ind = np.argmin(abs(wdepth - r_depth)) # changed from Chuan's original code\n", + " # Store the water surface elevation in matrix\n", + " runup[aa] = eta[aa, wdepth_ind] # unrealistic values for large r_depth\n", + " # runup[aa]= -h[wdepth_ind]\n", + " # Store runup position\n", + " x_runup[aa] = dataDict['xFRF'][wdepth_ind]\n", + "maxRunup = np.amax(runup)" + ] + }, { "cell_type": "markdown", "id": "318a36c1", "metadata": {}, "source": [ - "Check out processed data" + "## Check out processed results" + ] + }, + { + "cell_type": "markdown", + "id": "b4fa1db9", + "metadata": {}, + "source": [ + "Plot eta" ] }, { "cell_type": "code", - "execution_count": 55, + "execution_count": null, "id": "b82ad6a3", "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "plt.figure()\n", "plt.plot(dataDict['time'],dataDict['eta'][:,0,400])\n", @@ -731,25 +623,20 @@ "plt.show()" ] }, + { + "cell_type": "markdown", + "id": "0d0da1bf", + "metadata": {}, + "source": [ + "Plot Hs" + ] + }, { "cell_type": "code", - "execution_count": 56, + "execution_count": null, "id": "57084005", "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "plt.figure()\n", "plt.plot(dataDict['xFRF'],HsTS)\n", @@ -758,262 +645,174 @@ "plt.show()" ] }, + { + "cell_type": "markdown", + "id": "dd08cf52", + "metadata": {}, + "source": [ + "Plot setup" + ] + }, { "cell_type": "code", - "execution_count": 61, - "id": "9e292e14", + "execution_count": null, + "id": "20736e05", "metadata": {}, "outputs": [], "source": [ - "generate_CrossShoreTimeseries(workingDir+'/'+testName+'/img', np.mean(dataDict['eta'].squeeze(), axis=0), dataDict['elevation'], dataDict['xFRF'])" + "if not os.path.exists(os.path.join(path_prefix, 'figures')):\n", + " os.makedirs(os.path.join(path_prefix, 'figures')) # make a directory 'figures' for the simulation plots\n", + "figurepath = workingDir+'/'+testName+'/'+'figures'" ] }, { "cell_type": "code", - "execution_count": 63, - "id": "e6b71fdf", + "execution_count": null, + "id": "d94caad4", "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkAAAAEgCAYAAABchszxAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAveUlEQVR4nO3dd5ycZ33v/c9v+uzOzjbtalUty7iBbdwNNphgE8CEmJJASCAxyUMUwoFQDsWOAwcfDiSUQ8lDIPYDBBJ6qLKpNsbYxk2yLVt9VS3J6mW1ZfrM7/ljRvJKliVZ2t17yvf9es1r5r7nnpnfpW1fXdd9X5e5OyIiIiKtJBR0ASIiIiJTTQFIREREWo4CkIiIiLQcBSARERFpOQpAIiIi0nIUgERERKTlKACJiIhIy1EAEhERkZajACQiIiItRwFIREREWo4CkIiIiLQcBSARERFpOQpAIiIi0nIUgERERKTlKACJiIhIy1EAEhERkZajACQiIiItRwFIREREWo4CkIiIiLQcBSARERFpOQpAIiIi0nIUgERERKTlKACJiIhIy1EAEhERkZajACQiIiItRwFIREREWo4CkIiIiLQcBSARERFpOQpAIiIi0nIUgERERKTlKACJiIhIy1EAEhERkZajACQiIiItRwFIREREWk4k6ALqXdu0bu+aNzPoMkRERKbEtodX7Hb3vqDrmGwKQMfQNW8mCxZ/P+gyREREpsRNds4TQdcwFTQEJiIiIi2nJQOQmYXN7FEzuy3oWkRERGTqtWQAAt4NrAy6CBEREQlGywUgM5sN/BHwlaBrERERkWC0XAACPg98EKgcz8Fh90ktRkRERKZeSwUgM3s1sNPdHz7GcQvMbLGZLe4rFPnjnTvpKhanqEoRERGZbC0VgIArgGvNbCPwXeAqM/vm4Qe5+y3ufrG7Xwxw1tgYb9uyhcv37QP1CImIiDS8lgpA7n6Du89293nAm4A73f0tx3qd1e5fNDTEn23fTrRyXKNnIiIiUqdaKgCdjAP/UKfkcrxtyxai5XKg9YiIiMiJa9kA5O53ufurT+S1qXKZN2/bpuEwERGRBtWyAehkGNBfLPK6HTsUgkRERBqQAtBJOD2b5cp9+4IuQ0RERJ4lBaCTdNn+/aR1ibyIiEhDUQCaAG/cvj3oEkRERORZUAA6SQb0lEpcoqEwERGRhqEANEFeMjRETJfGi4iINAQFoAkSAq7duTPoMkREROQ4KABNoFNzOWbkckGXISIiIsegADTBXr1rV9AliIiIyDEoAE0gA7pKJU7JZIIuRURERI5CAWgSXLN7d9AliIiIyFEoAE0wAzrKZU4fGwu6FBEREXkGCkCT5A/VCyQiIlK3FIAmgQGpSoXnjI4GXYqIiIgcgQLQJHHgZXv3Bl2GiIiIHIEC0CQ5cC7QgOYFEhERqTsKQJPs5ePOBTJ3opVKgNWIiIgIKABNKgOmF4ukSiUilQpv3raN6558EtyDLk1ERKSlRYIuoNkZ8IrduymEQszM5wE4c2yM1alUsIWJiIi0MPUATYH52Sxnj41xYK345w8PB1qPiIhIq1MAmgJWuw/X7mcXCkGVIiIiIigABSLsTl9tOExERESmXksFIDObY2a/NbOVZrbczN4dSB3ARfv3B/HRIiIiQuudBF0C/qe7P2JmHcDDZna7u6+Y6kJOy2an+iNFRESkpqV6gNx9m7s/Uns8AqwEZgVRS1ulQrRcPvaBIiIiMuFaKgCNZ2bzgAuABwP5fOD5+0eC+GgREZGW15IByMxSwA+B97j7065JN7MFZrbYzBbv3jvx5+o8lk+TrYTY9KTmAhIREQlCywUgM4tSDT/fcvcfHekYd7/F3S9294un9XROeA3nxIb5VbafP05uxwpaGkNERGSqtVQAMjMDvgqsdPfPBlVH2GB/JUJvuIitb6kvgYiISF1otb++VwB/CVxlZktqt1cFUcjlib3sKMc5o5wJ4uNFRERaWktdBu/u9/LUxMyBOj2a4Vujs3hD+1bWDs+llG61LCoiIhIc/dUNUEeoRMyczIZY0KWIiIi0FAWgAF2V2M2yQgdvTG4lUtCcQCIiIlNFAShAqVCZXeUY8yIZzlubgYoHXZKIiEhLUAAK2EuTe/j+2CxeltxN10pdEi8iIjIVFIDqwJvbt7BwbDoL2jYR2hR0NSIiIs1PAagOmMELE3vZVEpyZWYfXlZPkIiIyGRSAKoTfeEiKwopLo0PMToYD7ocERGRpqYAVEdektjN5lKCV9tOXCdEi4iITBoFoDqSDDkbim1cFh9i26q2oMsRERFpWgpAdeaFib3sKUe5yvdQ0alAIiIik0IBqM5EDbaUkrw6uYPlqyd+JXoRERFRAKpL58aGKRLiyuI+SuW6WLpMRESkqSgA1aGQweZSgre0b+aBwZ6gyxEREWk6CkB16rRIhmSowiW5YQol9QKJiIhMJAWgOmUGTxSTvL1jI/+9dBauq+JFREQmjAJQHTslmqUvXOBF5SFuXzc96HJERESahgJQnRsqR3hveh2Lt3SzZLuuChMREZkICkB1rjNU4jnRDP+QXs9PV81izZ72oEsSERFpeApAdc6s2gt0feca5oQzfGfpKQzuTgVdloiISENTAGoAXeESIYNP96zAge8sm8t9m3qDLktERKRhKQA1iJIbf9y2g1ckdwJw+/oBvvX4XLLFcMCViYiINB4FoAaRCpXZX47wqe7lRHHAWbs3xWfvP4Nfr53O/lw06BJFREQahgJQA+monRD9rvR6wACjXDHu39LL5x84nW89PpflO9PkivqyioiIHE0k6AKmmpm9EvgCEAa+4u7/EnBJxy1ksLcc5cauQW7LDDBYSuFUZ4m2Wo/Q2r0dGE5vW55TOjPMSmeZlc4yrS1PSBNKi4iIAC0WgMwsDPwb8IfAFmCRmS109xXBVnb8esJFRithbp62hKu3X0GlFoAOBCGohqE9mTi7M3Ee3lZdSywaqtDXniMdL5GMlAmHvHqz6s2BihsVP3D/zI/LDpWKUT743KHPV2uoVWW1vip7qkqzp+p86vmnnjOckFX3xcKVZ7wlI2US0TLJSIVEpEwyWiYS0pTZIiJybC0VgIBLgbXuvh7AzL4LvAZomAAEEMa5ND7EOzo28MWR+U97vnLYyKZRoeywdSTJ1pED++DEosKBoDWZQeOZqjt2F1YkVAtDtUCUjJRJRMokotXA9FRoeupxNFQ5GLhC1ELYwce1MHYgrKkXTUSkKbRaAJoFbB63vQW4LKBaTlgyVGFvOcpN3au4L9/DI4Wuox7vhJ62ltjJx5fJTgLH+/5OyJ7q/6o4jBUijBYiB3uWwHA/tJfsxB3aU3WkHiwO9GAdOP6wYw6ErcNfFxoXsp567wO9YYd+3uG9a8fzHBz6+IRaf8xvnGd+85P5njuZtfCO/dKj1Dypn3uU1zbgv/MzOfz77dBNP+IxTz9u/NFHdmjtR/oUkUO1WgA6rp8pM1sALACYM7Nvsms6IT3hInvLUb7Xt4grtl3Jzko86JIC8tSw2+Ec8Gd4rhYLj/jL+dn8sqwGK8APRI8D7/LMxz+7X86Hv9eRjw66Y8omqwg//q/Hga+lFg5+9ur5n+xEvq3quT2TYcJ/9M646KKJfst61GoBaAswZ9z2bGDr4Qe5+y3ALQAXnnt63f4sdYSKJD3Et/oW86odL6Soi/qeBaueP1W3X91n8sxhL0heB0Uo+DQnfVmPbcL/jbw1fppa7S/mIuB0MzvVzGLAm4CFAdd0wqIG+ytRLk/s41M9y4MuR0REmoMCULNx9xLwTuBXwErg++7e0MlhIJJnaynOgo4neGvqiaDLERERaQitNgSGu/8c+HnQdUykmbUQ9LmeZawsdvBgvifokkREROpaS/UANbOZkTxDlSjf7nuYgXAu6HJERETqmgJQE+kOFUhbke/2LSZGOehyRERE6pYCUBOJGmQ9zCXxIf61dynWGuexiYiIPGsKQE2mN1xkQzHJX6a28P/2PE6LnMwvIiLyrCgANaFTo1m2lBL8dcdmPpBeG3Q5IiIidUcBqEnNjuTYXorx0e7VXJvcFnQ5IiIidUUBqIkNRArsKUf5yrQlXBgbCrocERGRuqEA1OR6w0VyHmJh/4PMCGeDLkdERKQuKAC1gK5QkbZQmS/16qRoERERUABqCWGDohsvT+7iralNQZcjIiISOAWgFpEKldlTjvLp7uWcGRkJuhwREZFAKQC1kN5wkTLGf/Y9QpRK0OWIiIgEpq4XQzWzy4F5jKvT3f8zsIKaQJQK58RG+EDnGj6x/8ygyxEREQlE3QYgM/sv4DRgCRxc2MoBBaCTkAg5e8tRPtC5lp9mZrC8mA66JBERkSlXtwEIuBh4rrvrsqUJ1hMuMlIJ8+Xex3jp9isoayRURERaTD3/5VsGDARdRLOKUeGi+H7emV4fdCkiIiJTrp57gKYBK8zsISB/YKe7XxtcSc0jHnKGyhE+3DnIbZkB1pVSQZckIiIyZeo5AH006AKaXVe4RKYS4ivTlvCy7ZdrKExERFpG3f7Fc/ffAauAjtptZW2fTKAQzqXxId6bXhd0KSIiIlOmbgOQmb0ReAh4A/BG4EEz+9Ngq2o+iZCzrxzhhq41nBYZDbocERGRKVHPQ2A3Ape4+04AM+sD7gB+EGhVTai7NhT2xd7HuWbHCwELuiQREZFJVbc9QEDoQPip2UN919vQQjhXJvby5vYtQZciIiIy6eo5UPzSzH5lZm81s7cCPwN+HnBNTas6FBblX7pXMC2UP/YLREREGljdBiB3/wBwC3Ae8HzgFnf/0Im+n5l92sxWmdnjZvZjM+uaoFKbRne4SEeoxCe7lwddioiIyKSq2wAE4O4/dPf3uft73f3HJ/l2twPnuPt5wCBww8lX2HzyHuJNqa1cndgVdCkiIiKTpu4CkJndW7sfMbPhcbcRMxs+0fd191+7e6m2+QAweyLqbTapUJmhSoR/7X2cpJWP/QIREZEGVHcByN1fVLvvcPf0uFuHu0/Uyp1/A/xigt6r6aStxLxIli/1LsHQUmwiItJ86i4AHVBbDf6Y+w57/g4zW3aE22vGHXMjUAK+dZT3WWBmi81s8e69+0+mGQ0pZLC7HOWN7dv4x87BoMsRERGZcPU8D9Dzxm+YWQS46GgvcPeXHe15M7sOeDVw9dFWmXf3W6iegM2F557ekl0g08JFdpZi/GPXGpYW0izMzgi6JBERkQlTdz1AZnaDmY0A540//wfYAfz0JN73lcCHgGvdPTNB5Ta1/kiBXeUo/9+0JTw3esKnXwUiQiXoEkREpI7VXQBy93929w7g04ed/9Pr7idz5dYXqa4pdruZLTGzf5+YiptbX7hIBfh+3yK6Q4WgyzmqCBX+tO1JvtO3iH1zf87vB+7mQ52DnBJR3hURkUPV7RCYu99gZt3A6UBi3P67T/D9njNRtbWadiuTiOT4xrRHeN3OS+ty1fjuUIEf9C3iBYl97CzH+FFmBqdGMnyka5APdq7ln/adzZdHTg26TBERqRP195esxszeBtwN/Aq4qXb/0SBralVhg+FKhKuTu/lY16qgy3ma/lCeX0y/nwvi+3nfnufxYL6LVyV3cGFsP4OFNgaL7XymZznf6VtE2opBlysiInWgbgMQ8G7gEuAJd38pcAGg2fkCMi1cZHMpwbs713NdalPQ5Rw0PZTjVwP3MT+S4V17zuH6rjX8cdtO2kIVzOCMWIbzYiOsKrRzTXIn3+tfRBzNbyQi0urqOQDl3D0HYGZxd18FnBlwTS1tTiTHE6UkX+p9nL/r2BB0OcQo853+xcwK53jP3nP4VM8K+sNHPk/prNgYI5UIL4rv5Uf9D9FupSMeJyIiraGeA9CW2npdP6F64vJPga2BViScEsnyRDHJZ3uW8/702gArcT7fu4zL4kNcv++5fLpnOV2ho4eannCR3eUYL0rs5bbpDzAQzk1RrSIiUm/qNgC5++vcfcjdPwp8GPgq8NpAixIATolmeaKY4KbuVdzUtRICmC367zo2cl1qM5/bP59/7Bw8Zvg5oD9SYH8lwnmxYe4duIcXxvdOcqUiIlKP6jYAmdkXzOxyAHf/nbsvdPf6vg67hZwSzbGpmOD9nev4+rRH6Qvlp+yzr4zv5lPdK/hlpp/L4nuZEXl2n90bLpKrhHDgZ9Pv50XxPZNTqIiI1K26DUDAI8A/mdlaM/u0mV0cdEFyqLnRHOuLSa5t28ajM+/iL9s3M9m9QXPDGf6r72HWldp4opTg8sTQCb1PV7jEQDjPUCXKt/oWMyesuYJERFpJ3QYgd/+Gu78KuBQYBD5pZmsCLksOMz+aZaQSYXs5zr9Pe4zb+h+kZ5ImTOy0It/vX0TUnJtH5rGg4+SuRgsZ9IcKJKzC9/oX06YTo0VEWkbdBqBxngOcBcwD6m8SGmFauMjZsVGWF1K8MLGXB2f8jnd0rOfs6AjRCVqS4pRIhntn3MPZ0VFu2Hs2H+9aidnJv68Z5DzEOdFhvtT7OEGczyQiIlOvbmeCNrNPAq8H1gHfAz7m7kOBFiVH9bzYKPvKEUIGn+5ZAcBQJcKvsv38cGwmP8tOB559ark4to9v9z1Mm5V5x57zuKlrFcnQxK31NS1cZEMxyRvat7K0kOb/DmvScBGRZle3AQjYALzQ3XcHXYgcv+5wiaKXuDvXw/ZSnI5QiasTu/iz9q38LtfLP+w5l7Wl1HG/33WpTXy2Zxm7yzE+tO9svtCzdELDzwGnRrOsLrbz0a5VLCt28Kvs9An/DBERqR/1HIBuAf7CzOa7+/82s7nAgLs/FHRhcnRRgysTT11ePloJsTjfyfmx/Tw4826+PDyPJ8tJNpeSDBZTrC+1UTpsNDZlJd7fuZYPdK7lrmwvd+V6+FLvUiI2eUNUZ0bHeLIU5+vTHuUV21/I48XOSfssEREJVj0HoH8DKsBVwP8GRoAfUl0eQxpIKlTh4vh+MpUQqwop3tu5/pDnhyoRfpebxpJCJxuKbVwY389ftG9mWrjIN0dn02YlPto9Nee/D4Tz7KtE+cXA/bx2x2UsKnRPyeeKiMjUqucAdJm7X2hmjwK4+z4ziwVdlJy4tlCF8+PDrCq0s6HUTsWNUQ+TDhU5L7qf17RtB6Dgxm+yffwmN42/aH+SC+P7p6zGsEFXqMjuSpzbpj/AG3Zewt35aVP2+SIiMjXqOQAVzSxM7bIcM+uDCbqkSAJ1VmyMs2Jjh+wbq4RZVkixrpjiiVKC17dv55q2nYHUF7HqCvPby3G+37+IF297MWuexXlLIiJS/+o5AP0r8GOg38w+Dvwp8E/BliSTpT1U5pzYKOfERoMuBajOETQjnGfUw3yvfxFXbnsxo17PPy4iIvJs1O1vdHf/lpk9DFxN9drp17r7yoDLkhZiBnEqPCcyxs29S3jz7os4kcv4RUSk/tTdRIhm1nPgBuwEvgN8G9hR2ycyZWLmjFQivLZ9O7f2P8j0kFaQFxFpBvXYA/Qw1fN+jEOn5T2wPT+IoqR1dYVLbCi28YL4Xu6ZcQ/v2nMev8ppniARkUZWdz1A7n6qu88HTgP+F/D12vZLgD8PtDhpWadGM5QxCh7iv/sX8Zb2zUGXJCIiJ6HuAtA4/wa8gKdCzwjwxeDKkVbXESozL5JlSynJzdMe422pjUGXJCIiJ6ieA9Bl7v4/gBxU5wECNA+QBMoMTolmeaKU4Au9y/jXnsfpDhWCLktERJ6leg5AmgdI6tYpkRzLCyn+KrWZR2fexQc71xCnHHRZIiJynOo5AB0+D9C9wCdO9k3N7P1m5mam6X3lpDwvNsq+cpRNpST/q2s1D8y8m7e0b8aYvPXKRERkYtTjVWDA5MwDZGZzgD8ENk1AiSL0Rwr0RwqsLyYJ4dw87THemV7PR4fO4pdaUV5EpG7VbQACcPdVwKoJfMvPAR8EfjqB7ynC/GiWisPSQgdtVuaH/Yt4ON/J9fuey335HjSBoohIfanrADSRzOxa4El3f8xMf4xk4oUMzo2N4A4P5bo4JZrh9oH7uS/XzQ8yM7k1M8DWcjLoMkVEhCYLQGZ2BzBwhKduBP4RePlxvs8CYAHAnJl9E1aftAYzuDQxRNHh3lw3/eECn+1Zzmd7lvNovpOlxTQ/z/RzR66frIeDLldEpCWZe/OfsGlm5wK/ATK1XbOBrcCl7r79aK+98NzT/d6Fn5vkCqWZlR0eL6R5spSgN1zkrOgo3eEimUqIr42ewvfGZvFIoRMNk4lIXVhwUcUHH276/501VQ/QM3H3pUD/gW0z2whc7O67AytKWkbY4IL4MBfEh3GHvZUIv8v2gjlv79jIO9Mb2FJKcGtmgO+OzWJxoTvokkVEml5LBCCRemEGveESL0nuAWBzKcGKQgcxq3BdahN/n97IXdlevjRyKr/J9ZHTEJmIyKRoyQDk7vOCrkEEYE4kx5xIdYX5HeUYD2fbOSc2zPf7FzNWCfOb3DSWF9IMFlOsLqZYW2pnzFvyx1ZEZELpN6lInZgeLjA9WSBbMe7K9pDxCM+PDfNHyR2Ea6cHlR22lJOsKqb4RWY6t2Wns01XlomIPGsKQCJ1Jhly/iC5F4Cch1hW6GBbOcFIJUKJEJ2hImdEx/h87zI+zzIeyndxa2aAhZkB1pZSAVcvItIYFIBE6ljCKjw/PsLzGTlkf9nh4Xwn28px5kayfKx7FR/rXsWKQorbsgMsK6RZXUyxrNiBri4TEXk6BSCRBhQ2uCi+HwB3WF5IsbHURm+owPvS64hYdXqLTaUkN4/M47tjs9heTgRZsohIXVEAEmlwZtWFWZ8XGwVgfTHJ6mKKrIeZE8nx8e6VfLx7JQ/Whsq+OTqHXZV4wFWLiARLAUikycyPZpkfzR7cXl5IsaHUxtxIlv/TvYrrO9fwjdG5fGF4Pk/qBGoRaVEKQCJN7kDvkDusLLSztxLj7R0b+NuOjTyS72JxoYuFmQHuz/dQ0flCItIiFIBEWoQZnB0bA8bYUoqzsthBZ6jE2zqe4J3pDewqx/hZZjo/zMzkztw0dPK0iDQzBSCRFjQ7kmd2JI97dQLGZcU0Dry+fRtv7djM8kIHCzMD3JoZ4LFiGoUhEWk2CkAiLcwMBiIFBiLVZfH2lSPcl+smYs4HO9dwQ9caNpaS3FabZ0jDZCLSLBSAROSg7nCJy8P7AFhXbGOwmKI9VOJva4u2bi3F+eLIfH48NoNN5baAqxUROXEKQCJyRKdFM5wWzQCwrRRnWbGD6eECn+heyce6VvLjzAwWZmZwZ24a+ypRNEwmIo1EAUhEjmlGJM+M2jlDS/Md7PUoVyb28Kft2wDYUGxjUaGLfxk6ndWljoCrFRE5NgUgETluZnBuvLosx1glxL25Hp4sJZgeznNNcgd/0raVn2Zm8H+Hn8OSQmfA1YqIPDMFIBE5Ie2hCi9K7D24PVwJc2++h5cnd/L69m08Vkjzo7EZ3DwyjxGPBlipiMjThYIuQESaQzpU5iWJvZTcuDPbS9GNm7pXs3HO7Xyp9zH+ILGbS2L7OCs6cuw3ExGZZOoBEpEJ1RUucVVyD+6wptjGxlIbf96+hetSmw8e8x8jc/ife88hTzjASkWklSkAicikMIPToxlOj2bYUY7xYK6b3ZUY8yMZ/rpjM1ck9vKZ/c9hfyXKulI7K4spdCWZiEwVBSARmXTTwwWubd9xcHtTMUGblbll2mMH9/0+18ON+85mUaE7iBJFpMUoAInIlJsbzVF2uDPby65ynI5QiRfE93HXjN9zT66Hn2ZmsDAzoNXqRWTSKACJSCDCBlcl9xzczlaMe7Ld9EfyfKZnOZ/sXs7NI/P4wvBpbFEQEpEJpgAkInUhGXJenNxHxeHRfJoxD/P2jo28NbWJm0fm8ePMDJYUOinr4lURmQAt9ZvEzN5lZqvNbLmZfSroekTk6UIGF8SHeVFiH1tLcVYUO3hnegN3z/g9O+f+kg93riZOOegyRaTBtUwPkJm9FHgNcJ67582sP+iaROToZkfzzCbPpmKCFcUOElbh+q41/En7Vr42MpcSRtbD/GBspiZbFJFnpWUCEPD3wL+4ex7A3XcGXI+IHKe50RxzozkANhSTJKzMP/esPPj8p7qXc0euj1szM7gtM51hhSEROYZWCkBnAC82s48DOeD97r4o4JpE5Fk6NZql7PDbbC85D5O0MlkPcXFsiGvbdrCnHOXHmRksLaRZXOhmWaGDUmuN9ovIcWiqAGRmdwADR3jqRqpt7QZeAFwCfN/M5ru7H+F9FgALAObM7Ju8gkXkhIQNXjruCjKAnBsP5LqpAH/W/iRv69gEwPpiG58dPo2vj87FNdGiiNTYEf7+NyUz+yXVIbC7atvrgBe4+66jve7Cc0/3exd+bgoqFJGJsr0cZ30xybZygrOjozw3NsrqYjvfGJ3L10fmsl9DZCLPbMFFFR98uOnXqWmqHqBj+AlwFXCXmZ0BxIDdgVYkIpNiIJxnIJwHwB2WFTrIe4hPdK/kpq5V/DQzwOeGn8OSQmfAlYpIUFopAH0N+JqZLQMKwHVHGv4SkeZiBufEqivQryyk2FBq45rkTl7fto3vjc3ia6NzuS/fG3CVIjLVWiYAuXsBeEvQdYhIcM6OjXJ2bJR95QjLC528qm0Hf556kuWFDhZmBrg1M8BjxTRalFWk+bVMABIROaA7XOLS8H6GKmHuzvYQD1X4YOcabuhaw9JCBz/OzODeXC/353uoKAyJNCUFIBFpWV2hMlcm9wLVq8XWFNs5IzrGR7oGAdhVjvFQvpvf53v4wdhMLc4q0kQUgEREgPnRDPOjGcoOi/Od7KtUrxQ7IzrKH7Xt4CNdq/ni8Kl8cXg+uyrxgKsVkZOlACQiMk7Y4OL4/oPbOQ+xNJ+iQJj3pdfx3vQ6Npba+Hl2OgszAzygYTKRhqQAJCJyFAmrcG58FIAnikmWFNN0WokFHRt5V3oDO8sxfpaZzq2ZAX6bm0aBpp8+RaQpKACJiBynU6JZTolmAdhairOskCZkzp+0b+WvOzYzVgkzWEzxy2w/S4tpfpHpVyASqVMKQCIiJ2BmJM/MSHUi+b3lCHdmexnxCAOhPB/qXEPIYFMpyU9qC7SuKHawrxILuGoROUABSETkJPWES1w1bm2ywWI7W0sJYlbh7zo28A/p9VQc7sv38N2xWXxzdA5FLdAqEigFIBGRCXZGdIwzomMAPFmK83ghzahHeF50hC/2LuXj3StZlO/moXwXSwtp7sz1Mer6dSwylfQTJyIyiWZF8syqDZVVHB7Ld7CtkmB2OMf1taGyvIf4bXYa9+R7eSDfzUP5bl1ZJjLJFIBERKZIyOD58RGezwhFN9YU29lQaqOEcW5shFe27QSqgWhNsZ2VxQ5+Uluio6whM5EJpQAkIhKAqDlnxsY4M1YdKis6PJDrYn8lwv5KlP5wgasSu3hD+1ZWFVP85+gcdpdjrC+1s7Q2pCYiJ04/QSIidSBq8ILE0CH7hithHsx10Rkq8YnulQf3769E+PeReXxp+FR2a1ZqkROiACQiUqfSoTKXJYZwh/tyXewqxym7MTOS4wPptbw/vZb78j3cPDKPZYU0G0tturpM5DgpAImI1DkzuPyw3qGNxSTLih08NzrKN/seObh/ST7Nwmz1vKENpXYACm46h0jkMApAIiINaF40y7xolorD73PdrC6maAuVOT1SXc3+wIr2UB0y+4+RufwgM5NHC13BFS1SRxSAREQaWMjgisQ+rkjsA8AdBgttDJZSbC0ncODsyCjvSG/gPZ3ruSfXw8LalWWby23BFi8SIAUgEZEmYgZnxDKcEcscsn9LKc6GUht94QKf7lnBp3tW8Gi+k1uz07ktM8DKYofmHpKWogAkItICZkfyzI7kqTgsKXSwpZRkRjh/cLgs5yHuzE5jSaGT1cUUv831sUdrl0kTUwASEWkhIYPzYyOcHxvBHVYX2llbaifnYS6KD/GK5E7CBmWHe/O93JoZYEmhk8X5Ll1hJk1FAUhEpEWZcchkjAU3lhbS7CjHKWCcHsnwmZ7lB59bXkjzaKGT+/I9PFroZFUxBRo2kwalACQiIgDEzDk/Pnxwu+LwaD7NE6UkRULMi2R5fftW/qZjEwBbSgl+ne3nC8PzWVtKBVW2yAlRABIRkSMKGVwQH+aCWihyh+3lGI/kesl4mLZQhbekNnNdahO/zvZzR66PO7J9bCy1UdJwmdS5lglAZnY+8O9AAigB73D3hwItSkSkgZjBjEiBGZE9B/ftKMVYWUxxUXyIa2qLueY8xPpiG6uLKVYXOxgstVfvi+1ktIaZ1IlW+k78FHCTu//CzF5V2/6DYEsSEWls0yMFpkf2MlSJsCjfxcZSEseYFipwYXw/r2vffsjxa4rt3JaZzn+OzmVQw2YSoFYKQA6ka487ga0B1iIi0lS6QiUuiQ9xSXzo4L7RSpgl+Q52VBIMlyMUMeZGcrwzvYF/SK9nfamdjaU2tpYTDBZTrCqmWFpI82Q5GVxDpGW0UgB6D/ArM/sMEAIuD7YcEZHmlgqVOT8+Aowcsn9zKcGaYjtljN5QgYtiQ/SkigeffzTfyS+z/awqplhWTOtqM5kUTRWAzOwOYOAIT90IXA28191/aGZvBL4KvOwZ3mcBsABgzsy+SapWRKQ1zYnkmBPJAdXL6/dWYtyf62Z3JUbZYW4kxw1daw4en/cQ28pxBosplhXS3JoZYFGhC1cokpNg7h50DVPCzPYDXe7uZmbAfndPH+t1F557ut+78HOTX6CIiADVq81WFlNsKiXJe4j9lSh94QJzIxlOj44RM2dbKc6iQhf35HpZmJnBFg2bTZwFF1V88OFw0GVMtqbqATqGrcBLgLuAq4A1Rz1aREQCYQbPjY3y3NjoIfsLbmwuJVlXbCdszjnREa5t23FwXbOfZ/tZVkjzUKGb7eU4GjaTo2mlAPS3wBfMLALkqA1xiYhIY4iZc1o0w2nR6kKv2UqIJfk0W8oJZobz3Dhu2Gx/JcJgMcXqYor7890sK6R5WMNmMk7LBCB3vxe4KOg6RERkYiRDFc6PD3M+w9Vhs0KKLeUEu8oxElZhRjjPK5I7eUtqCwDbSnFuyw7w88x0dpTjrClpXqJWpq+8iIg0PDM4OzbK2Rw6bLarHOX3uW72lWO0hUr8RfsW/rbjiYPPbyvFKRBibbGd3+d7uDUzwIpiBxo+a34KQCIi0rT6wkX6wvsObu8qR7k328POcoyIOVGcmFWYH8nwka5BPtI1yL5ylIcKXSwtpHkg38ND+W72VGIBtkImgwKQiIi0jL5wkVckdz1tf9lhdaGddaU28h7mnNgIVyV2835bB8COcpxVxRQrCyluHjlVs1g3AQUgERFpeWGDM2NjnBkbA6pXnK0vtrG21E7eQ0TNmRXO8Vepzbw9/QSPFdJsLSXYUGpjZznO6mKKwVKKDcU28jT9FeRNQQFIRETkMDHzQwIRQMVhWznO3bk06VCJuZEML07sIRUqHzym4MbGUhuriil+kZ3OzzPT2V2JB9EEOQYFIBERkeMQMpgVyTMrsgt3yHqIreUk+woRdlbijFXCOEZPuMD5sWGubdtBuQdWFjt4KN/N47VzilYVUxQJBd2clqcAJCIi8iyZQZtVeE5oDKJPf77o8GCui12VGCkr88b2J/mbjk1AdY6iB/LdPFSbn2h7OU4FY1mhg4KGz6aMApCIiMgEixpclhg6uL27HOHRXDfbywlSVmJeJMsfdu4iNO5q+02lJN8enc03RuewuZzUpI2TTAFIRERkkk0Ll3jxuMvx8x5isJhiXbGNnZU4SSsxL5Ljg51ruL5rDdlKiD2VGPfne1ic72JhZoBN5bYAW9B8FIBERESmWNwqnBUb5azD1jvbWEzyQL4bB7pDRS6P7+UN7Vv5ZM8KhioR7sv18HChi1szAyzXhI0nRQFIRESkTsyLZpkXzR7cHqpEeDSfZnMpCQZnRkd5ZXInH+4aZGc5xu5yjG3lBI7RF85TcePLI/P4zthsKgpHR6UAJCIiUqe6QiUuiA9zQXwYgJyHGCy2s77UTsFDdIRKdIRKAOwtR5kdyXHLtMd4Z3oD9+Z62FJOMlKJcEe2T0Noh1EAEhERaRAJq3BWbIyzxs1PVHA7eMJ0lApLCmliVHhrahNtocrB4x4rpFmYGeDWzAArix0t30OkACQiItLAYuaAH9w+PzZMxWFDKcn6fDthnKyHGQjnubFzkA93DZL3EFtLCTIe5o5sHwuzAzyY726pK88UgERERJpMyOC0aJbTxp1P5A5rim2sKaUYq4SJGPSECvx9egPv7lxPthJixCOcaq2Rgszdj31UC+vp6ijPntlXPvaRU2vPvuFQb3e6cuwj65vaUV+apR3QPG1RO+pLM7ajHIpEhj1qO8txyhiV7U9QGdrd9CFIAahBmdlid7846DpOltpRX5qlHdA8bVE76ova0Ty0GImIiIi0HAUgERERaTkKQI3rlqALmCBqR31plnZA87RF7agvakeT0DlAIiIi0nLUAyQiIiItRwGoDpnZ18xsp5ktG7evx8xuN7M1tfvucc/dYGZrzWy1mb0imKqfzszmmNlvzWylmS03s3fX9jdUW8wsYWYPmdljtXbcVNvfUO04wMzCZvaomd1W227Udmw0s6VmtsTMFtf2NVxbzKzLzH5gZqtqPysvbLR2mNmZta/Dgduwmb2n0doBYGbvrf2cLzOz79R+/huxHe+utWG5mb2ntq/h2jGp3F23OrsBVwIXAsvG7fsUcH3t8fXAJ2uPnws8BsSBU4F1QDjoNtRqmwFcWHvcAQzW6m2otlBdbjlVexwFHgRe0GjtGNee9wHfBm5r1O+tWn0bgWmH7Wu4tgDfAN5WexwDuhqxHePaEwa2A6c0WjuAWcAGIFnb/j7w1gZsxznAMqCN6oTHdwCnN1o7JvumHqA65O53A3sP2/0aqr8oqd2/dtz+77p73t03AGuBS6eizmNx923u/kjt8QiwkuovmIZqi1eN1jajtZvTYO0AMLPZwB8BXxm3u+HacRQN1RYzS1P9D89XAdy94O5DNFg7DnM1sM7dn6Ax2xEBkmYWoRogttJ47TgbeMDdM+5eAn4HvI7Ga8ekUgBqHNPdfRtUgwXQX9s/C9g87rgttX11xczmARdQ7T1puLbUho2WADuB2929IdsBfB74IDB+JttGbAdUQ+ivzexhM1tQ29dobZkP7AL+ozYs+RUza6fx2jHem4Dv1B43VDvc/UngM8AmYBuw391/TYO1g2rvz5Vm1mtmbcCrgDk0XjsmlQJQ4zvSdOV1dWmfmaWAHwLvcffhox16hH110RZ3L7v7+cBs4FIzO+coh9dlO8zs1cBOd3/4eF9yhH2Bt2OcK9z9QuAa4H+Y2ZVHObZe2xKhOtz9ZXe/ABijOjTxTOq1HQCYWQy4FvjvYx16hH2Bt6N2TsxrqA4DzQTazewtR3vJEfYF3g53Xwl8Ergd+CXV4a3SUV5Sl+2YbApAjWOHmc0AqN3vrO3fQjXZHzCbapdtXTCzKNXw8y13/1Ftd0O2BaA2PHEX8Eoarx1XANea2Ubgu8BVZvZNGq8dALj71tr9TuDHVLvsG60tW4AttR5FgB9QDUSN1o4DrgEecfcdte1Ga8fLgA3uvsvdi8CPgMtpvHbg7l919wvd/Uqqp1SsoQHbMZkUgBrHQuC62uPrgJ+O2/8mM4ub2alUT3R7KID6nsbMjOq5DSvd/bPjnmqotphZn5l11R4nqf6SXEWDtcPdb3D32e4+j+owxZ3u/hYarB0AZtZuZh0HHgMvp9rt31BtcfftwGYzO7O262pgBQ3WjnH+nKeGv6Dx2rEJeIGZtdV+f11N9dzFRmsHZtZfu58LvJ7q16Xh2jGpgj4LW7en36h+o24DilST+f8D9AK/oZrifwP0jDv+Rqpn7a8Grgm6/nF1vYhqN+rjwJLa7VWN1hbgPODRWjuWAR+p7W+odhzWpj/gqavAGq4dVM+deax2Ww7c2MBtOR9YXPv++gnQ3aDtaAP2AJ3j9jViO26i+h+cZcB/Ub0yqhHbcQ/VMP0YcHWjfj0m86aZoEVERKTlaAhMREREWo4CkIiIiLQcBSARERFpOQpAIiIi0nIUgERERKTlKACJiIhIy1EAEhERkZajACQidcXMLjGzx80sUZvxefkx1l4TEXnWNBGiiNQdM/s/QAJIUl0r658DLklEmowCkIjUndqq4ouAHHC5u5cDLklEmoyGwESkHvUAKaCDak+QiMiEUg+QiNQdM1sIfBc4FZjh7u8MuCQRaTKRoAsQERnPzP4KKLn7t80sDNxnZle5+51B1yYizUM9QCIiItJydA6QiIiItBwFIBEREWk5CkAiIiLSchSAREREpOUoAImIiEjLUQASERGRlvP/A9JC5vmR0vv9AAAAAElFTkSuQmCC\n", - "text/plain": [ - "" - ] - }, - "execution_count": 63, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], + "source": [ + "generate_CrossShoreTimeseries(figurepath+'/setup', np.mean(dataDict['eta'].squeeze(), axis=0), dataDict['elevation'], dataDict['xFRF'])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0b411852", + "metadata": { + "scrolled": true + }, + "outputs": [], "source": [ "from IPython.display import Image\n", - "Image(workingDir+'/'+testName+'/img'+'.png')" + "Image(figurepath+'/setup'+'.png')" ] }, { "cell_type": "markdown", - "id": "74c1f048", + "id": "9c406888", "metadata": {}, "source": [ - "## Save Results to netcdf" + "Plot timeseries of eta" ] }, { "cell_type": "code", - "execution_count": 46, - "id": "d2870c8e", + "execution_count": null, + "id": "6c0a9477", "metadata": {}, "outputs": [], "source": [ - "ncfile = nc4.Dataset('/Users/lszcz/Documents/CMTB/cmtb/data/test4.nc',mode='w')\n" + "figureBaseFname = 'CMTB_waveModels_{}_{}_'.format(model, versionPrefix) # names the images generated" ] }, { "cell_type": "code", - "execution_count": 51, - "id": "43e22f57", + "execution_count": null, + "id": "0f27a622", "metadata": {}, "outputs": [], "source": [ - "x_dim = ncfile.createDimension('x', len(dataDict['xFRF'])) \n", - "y_dim = ncfile.createDimension('y', len(dataDict['yFRF'])) \n", - "time_dim = ncfile.createDimension('time', len(dataDict['time'])) \n", - "eta_dim = ncfile.createDimension('eta', len(dataDict['eta']))\n" + "# choose the subsample of timesteps to include in the gif\n", + "nSubSample = 2\n", + "# Choose frames per second of the generated gif ( fps = nSubSample*dt -->> default option)\n", + "fps = 20" ] }, { "cell_type": "code", - "execution_count": 50, - "id": "4cc0b128", + "execution_count": null, + "id": "f7f2bbcb", "metadata": {}, - "outputs": [ - { - "ename": "SyntaxError", - "evalue": "invalid syntax (2052290495.py, line 2)", - "output_type": "error", - "traceback": [ - "\u001b[1;36m Input \u001b[1;32mIn [50]\u001b[1;36m\u001b[0m\n\u001b[1;33m y_dim = ncfile.createDimension('y', len(dataDict['yFRF'])\u001b[0m\n\u001b[1;37m ^\u001b[0m\n\u001b[1;31mSyntaxError\u001b[0m\u001b[1;31m:\u001b[0m invalid syntax\n" - ] - } - ], + "outputs": [], "source": [ - "x_dim = ncfile.createDimension('x', len(dataDict['xFRF']) \n", - "y_dim = ncfile.createDimension('y', len(dataDict['yFRF']) \n", - "time_dim = ncfile.createDimension('time', len(dataDict['time']) \n", - "eta_dim = ncfile.createDimension('eta', len(dataDict['eta'])" + "for tidx in np.arange(0, len(dataDict['time']), nSubSample).astype(int):\n", + " ofPlotName = os.path.join(figurepath, figureBaseFname + 'TS_' + dataDict['time'][tidx].strftime('%Y%m%dT%H%M%S%fZ') +'.png')\n", + " oP.generate_CrossShoreTimeseries(ofPlotName, dataDict['eta'][tidx].squeeze(), -dataDict['elevation'], dataDict['xFRF'])" ] }, { "cell_type": "code", - "execution_count": 48, - "id": "0742c734", + "execution_count": null, + "id": "2fdc54d7", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array([ 25., 26., 27., 28., 29., 30., 31., 32., 33., 34., 35.,\n", - " 36., 37., 38., 39., 40., 41., 42., 43., 44., 45., 46.,\n", - " 47., 48., 49., 50., 51., 52., 53., 54., 55., 56., 57.,\n", - " 58., 59., 60., 61., 62., 63., 64., 65., 66., 67., 68.,\n", - " 69., 70., 71., 72., 73., 74., 75., 76., 77., 78., 79.,\n", - " 80., 81., 82., 83., 84., 85., 86., 87., 88., 89., 90.,\n", - " 91., 92., 93., 94., 95., 96., 97., 98., 99., 100., 101.,\n", - " 102., 103., 104., 105., 106., 107., 108., 109., 110., 111., 112.,\n", - " 113., 114., 115., 116., 117., 118., 119., 120., 121., 122., 123.,\n", - " 124., 125., 126., 127., 128., 129., 130., 131., 132., 133., 134.,\n", - " 135., 136., 137., 138., 139., 140., 141., 142., 143., 144., 145.,\n", - " 146., 147., 148., 149., 150., 151., 152., 153., 154., 155., 156.,\n", - " 157., 158., 159., 160., 161., 162., 163., 164., 165., 166., 167.,\n", - " 168., 169., 170., 171., 172., 173., 174., 175., 176., 177., 178.,\n", - " 179., 180., 181., 182., 183., 184., 185., 186., 187., 188., 189.,\n", - " 190., 191., 192., 193., 194., 195., 196., 197., 198., 199., 200.,\n", - " 201., 202., 203., 204., 205., 206., 207., 208., 209., 210., 211.,\n", - " 212., 213., 214., 215., 216., 217., 218., 219., 220., 221., 222.,\n", - " 223., 224., 225., 226., 227., 228., 229., 230., 231., 232., 233.,\n", - " 234., 235., 236., 237., 238., 239., 240., 241., 242., 243., 244.,\n", - " 245., 246., 247., 248., 249., 250., 251., 252., 253., 254., 255.,\n", - " 256., 257., 258., 259., 260., 261., 262., 263., 264., 265., 266.,\n", - " 267., 268., 269., 270., 271., 272., 273., 274., 275., 276., 277.,\n", - " 278., 279., 280., 281., 282., 283., 284., 285., 286., 287., 288.,\n", - " 289., 290., 291., 292., 293., 294., 295., 296., 297., 298., 299.,\n", - " 300., 301., 302., 303., 304., 305., 306., 307., 308., 309., 310.,\n", - " 311., 312., 313., 314., 315., 316., 317., 318., 319., 320., 321.,\n", - " 322., 323., 324., 325., 326., 327., 328., 329., 330., 331., 332.,\n", - " 333., 334., 335., 336., 337., 338., 339., 340., 341., 342., 343.,\n", - " 344., 345., 346., 347., 348., 349., 350., 351., 352., 353., 354.,\n", - " 355., 356., 357., 358., 359., 360., 361., 362., 363., 364., 365.,\n", - " 366., 367., 368., 369., 370., 371., 372., 373., 374., 375., 376.,\n", - " 377., 378., 379., 380., 381., 382., 383., 384., 385., 386., 387.,\n", - " 388., 389., 390., 391., 392., 393., 394., 395., 396., 397., 398.,\n", - " 399., 400., 401., 402., 403., 404., 405., 406., 407., 408., 409.,\n", - " 410., 411., 412., 413., 414., 415., 416., 417., 418., 419., 420.,\n", - " 421., 422., 423., 424., 425., 426., 427., 428., 429., 430., 431.,\n", - " 432., 433., 434., 435., 436., 437., 438., 439., 440., 441., 442.,\n", - " 443., 444., 445., 446., 447., 448., 449., 450., 451., 452., 453.,\n", - " 454., 455., 456., 457., 458., 459., 460., 461., 462., 463., 464.,\n", - " 465., 466., 467., 468., 469., 470., 471., 472., 473., 474., 475.,\n", - " 476., 477., 478., 479., 480., 481., 482., 483., 484., 485., 486.,\n", - " 487., 488., 489., 490., 491., 492., 493., 494., 495., 496., 497.,\n", - " 498., 499., 500., 501., 502., 503., 504., 505., 506., 507., 508.,\n", - " 509., 510., 511., 512., 513., 514., 515., 516., 517., 518., 519.,\n", - " 520., 521., 522., 523., 524., 525., 526., 527., 528., 529., 530.,\n", - " 531., 532., 533., 534., 535., 536., 537., 538., 539., 540., 541.,\n", - " 542., 543., 544., 545., 546., 547., 548., 549., 550., 551., 552.,\n", - " 553., 554., 555., 556., 557., 558., 559., 560., 561., 562., 563.,\n", - " 564., 565., 566., 567., 568., 569., 570., 571., 572., 573., 574.,\n", - " 575., 576., 577., 578., 579., 580., 581., 582., 583., 584., 585.,\n", - " 586., 587., 588., 589., 590., 591., 592., 593., 594., 595., 596.,\n", - " 597., 598., 599., 600., 601., 602., 603., 604., 605., 606., 607.,\n", - " 608., 609., 610., 611., 612., 613., 614., 615., 616., 617., 618.,\n", - " 619., 620., 621., 622., 623., 624., 625., 626., 627., 628., 629.,\n", - " 630., 631., 632., 633., 634., 635., 636., 637., 638., 639., 640.,\n", - " 641., 642., 643., 644., 645., 646., 647., 648., 649., 650., 651.,\n", - " 652., 653., 654., 655., 656., 657., 658., 659., 660., 661., 662.,\n", - " 663., 664., 665., 666., 667., 668., 669., 670., 671., 672., 673.,\n", - " 674., 675., 676., 677., 678., 679., 680., 681., 682., 683., 684.,\n", - " 685., 686., 687., 688., 689., 690., 691., 692., 693., 694., 695.,\n", - " 696., 697., 698., 699., 700., 701., 702., 703., 704., 705., 706.,\n", - " 707., 708., 709., 710., 711., 712., 713., 714., 715., 716., 717.,\n", - " 718., 719., 720., 721., 722., 723., 724., 725., 726., 727., 728.,\n", - " 729., 730., 731., 732., 733., 734., 735., 736., 737., 738., 739.,\n", - " 740., 741., 742., 743., 744., 745., 746., 747., 748., 749., 750.,\n", - " 751., 752., 753., 754., 755., 756., 757., 758., 759., 760., 761.,\n", - " 762., 763., 764., 765., 766., 767., 768., 769., 770., 771., 772.,\n", - " 773., 774., 775., 776., 777., 778., 779., 780., 781., 782., 783.,\n", - " 784., 785., 786., 787., 788., 789., 790., 791., 792., 793., 794.,\n", - " 795., 796., 797., 798., 799., 800., 801., 802., 803., 804., 805.,\n", - " 806., 807., 808., 809., 810., 811., 812., 813., 814., 815., 816.,\n", - " 817., 818., 819., 820., 821., 822., 823., 824., 825., 826., 827.,\n", - " 828., 829., 830., 831., 832., 833., 834., 835., 836., 837., 838.,\n", - " 839., 840., 841., 842., 843., 844., 845., 846., 847., 848., 849.,\n", - " 850., 851., 852., 853., 854., 855., 856., 857., 858., 859., 860.,\n", - " 861., 862., 863., 864., 865., 866., 867., 868., 869., 870., 871.,\n", - " 872., 873., 874., 875., 876., 877., 878., 879., 880., 881., 882.,\n", - " 883., 884., 885., 886., 887., 888., 889., 890., 891., 892., 893.,\n", - " 894., 895., 896., 897., 898., 899., 900., 901., 902., 903., 904.,\n", - " 905., 906., 907., 908., 909., 910., 911., 912., 913., 914.],\n", - " dtype=float32)" - ] - }, - "execution_count": 48, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "dataDict['xFRF']" + "outputs": [], + "source": [ + "imgList = sorted(glob.glob(os.path.join(figurepath, '*_TS_*.png')))\n", + "dt = np.median(np.diff(dataDict['time'])).microseconds / 1000000\n", + "sb.makeMovie(os.path.join(figurepath, figureBaseFname + 'TS_{}.avi'.format(date_str)), imgList, fps=fps)\n", + "tarOutFile = os.path.join(figurepath, figureBaseFname + 'TS.tar.gz')\n", + "sb.myTarMaker(tarOutFile, imgList)" ] }, { "cell_type": "code", - "execution_count": 41, - "id": "603d912d", - "metadata": {}, + "execution_count": null, + "id": "b367943e", + "metadata": { + "scrolled": true + }, "outputs": [], "source": [ - "parms = ncfile.createGroup('dataDict')" + "from IPython.display import Video\n", + "Video(figurepath+'/'+figureBaseFname + 'TS_{}.mp4'.format(date_str), embed=True)" ] }, { - "cell_type": "code", - "execution_count": 42, - "id": "a4266e58", + "cell_type": "markdown", + "id": "eb68069f", "metadata": {}, - "outputs": [ - { - "ename": "TypeError", - "evalue": "illegal data type for attribute b'time', must be one of dict_keys(['S1', 'i1', 'u1', 'i2', 'u2', 'i4', 'u4', 'i8', 'u8', 'f4', 'f8']), got O", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)", - "Input \u001b[1;32mIn [42]\u001b[0m, in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m k,v \u001b[38;5;129;01min\u001b[39;00m dataDict\u001b[38;5;241m.\u001b[39mitems():\n\u001b[1;32m----> 2\u001b[0m \u001b[38;5;28;43msetattr\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mparms\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mk\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mv\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[1;32msrc\\netCDF4\\_netCDF4.pyx:2986\u001b[0m, in \u001b[0;36mnetCDF4._netCDF4.Dataset.__setattr__\u001b[1;34m()\u001b[0m\n", - "File \u001b[1;32msrc\\netCDF4\\_netCDF4.pyx:2916\u001b[0m, in \u001b[0;36mnetCDF4._netCDF4.Dataset.setncattr\u001b[1;34m()\u001b[0m\n", - "File \u001b[1;32msrc\\netCDF4\\_netCDF4.pyx:1688\u001b[0m, in \u001b[0;36mnetCDF4._netCDF4._set_att\u001b[1;34m()\u001b[0m\n", - "\u001b[1;31mTypeError\u001b[0m: illegal data type for attribute b'time', must be one of dict_keys(['S1', 'i1', 'u1', 'i2', 'u2', 'i4', 'u4', 'i8', 'u8', 'f4', 'f8']), got O" - ] - } - ], - "source": [ - "for k,v in dataDict.items():\n", - " setattr(parms, k, v)" + "source": [ + "## Save Results to netcdf" + ] + }, + { + "cell_type": "markdown", + "id": "7980c432", + "metadata": {}, + "source": [ + "Format a data dictionary for proper netcdf storage" ] }, { "cell_type": "code", - "execution_count": 43, - "id": "9b99713a", + "execution_count": null, + "id": "e7e9f82b", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "\n", - "group /dataDict:\n", - " dimensions(sizes): \n", - " variables(dimensions): \n", - " groups: " - ] - }, - "execution_count": 43, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "parms\n" + "outputs": [], + "source": [ + "deet = np.median(np.diff(dataDict['time'])).microseconds / 1000000\n", + "tsTime = np.arange(0, len(dataDict['time'])*deet, deet)\n", + "spatial = {'time': nc.date2num(startTime, units='seconds since 1970-01-01 00:00:00'),\n", + " 'station_name': '{} Field Data'.format(model),\n", + " 'tsTime': tsTime,\n", + " 'waveHsIG': np.reshape(Stats['Hm0'], (1, len(dataDict['xFRF']))),\n", + " 'eta': np.swapaxes(dataDict['eta'], 0, 1),\n", + " 'totalWaterLevel': maxRunup,\n", + " 'totalWaterLevelTS': np.reshape(runup, (1, len(runup))),\n", + " 'velocityU': np.swapaxes(dataDict['velocityU'], 0, 1),\n", + " 'velocityV': np.swapaxes(dataDict['velocityV'], 0, 1),\n", + " 'waveHs': np.reshape(Stats['Hm0'], (1, len(dataDict['xFRF']))), # or from HsTS??\n", + " 'xFRF': dataDict['xFRF'],\n", + " 'yFRF': dataDict['yFRF'][0],\n", + " 'runTime': np.expand_dims(swio.simulationWallTime, axis=0),\n", + " 'DX': np.median(np.diff(dataDict['xFRF'])).astype(int),\n", + " 'DY': 1, # must be adjusted for 2D simulations\n", + " 'NI': len(dataDict['xFRF']),\n", + " 'NJ': dataDict['velocityU'].shape[1],} # should automatically adjust for 2D simulations" ] }, { "cell_type": "code", "execution_count": null, - "id": "4d872bf6", + "id": "3030a6b7", "metadata": {}, "outputs": [], - "source": [] + "source": [ + "flagfname = os.path.join(npath, 'Flags{}.out.txt'.format(date_str)) # the name of flag file\n", + "makenc.makenc_phaseresolved(data_lib=spatial, globalyaml_fname=fieldYaml, ofname=npath, flagfname=flagfname,\n", + " var_yaml_fname=varYaml)" + ] } ], "metadata": { diff --git a/notebooks/swash/swash_example_highlevel.ipynb b/notebooks/swash/swash_example_highlevel.ipynb index b4677b3..5095c0e 100644 --- a/notebooks/swash/swash_example_highlevel.ipynb +++ b/notebooks/swash/swash_example_highlevel.ipynb @@ -24,7 +24,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "id": "6e84ee98", "metadata": {}, "outputs": [], @@ -36,8 +36,13 @@ "from getdatatestbed.getDataFRF import getDataTestBed\n", "from frontback import frontBackNEW\n", "from prepdata import writeRunRead as wrr\n", + "from testbedutils import waveLib as sbwave\n", + "from plotting.operationalPlots import generate_CrossShoreTimeseries\n", "\n", - "import datetime as dt" + "import datetime as dt\n", + "import numpy as np\n", + "import os, glob, makenc\n", + "import matplotlib.pyplot as plt" ] }, { @@ -50,13 +55,13 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "id": "acfa5edf", "metadata": {}, "outputs": [], "source": [ "workingDir = '/Users/lszcz/Documents/CMTB/cmtb/data'\n", - "exe = '/mirror/swash/swash.exe''\n", + "exe = '/mirror/swash/swash.exe'\n", "testName = 'swash1D_test_mpi'\n", "versionPrefix='base'\n", "\n", @@ -91,7 +96,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "id": "39cf1b97", "metadata": {}, "outputs": [], @@ -111,7 +116,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "id": "fe5df7f5", "metadata": {}, "outputs": [], @@ -148,20 +153,10 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "id": "5d841704", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "https://chldata.erdc.dren.mil/thredds/dodsC/frf/oceanography/waves/8m-array/2019/FRF-ocean_waves_8m-array_201910.nc\n", - "https://chldata.erdc.dren.mil/thredds/dodsC/frf/oceanography/waterlevel/eopNoaaTide/2019/FRF-ocean_waterlevel_eopNoaaTide_201910.nc\n", - "https://chldata.erdc.dren.mil/thredds/dodsC/frf/meteorology/wind/derived/2019/FRF-met_wind_derived_201910.nc\n" - ] - } - ], + "outputs": [], "source": [ "go = getDataFRF.getObs(startTime,endTime) # initialize go command\n", "wave_spec = go.getWaveData(sensor,spec=True) # grab raw spectra\n", @@ -180,7 +175,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "id": "620a73b2", "metadata": {}, "outputs": [], @@ -203,39 +198,10 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": null, "id": "fb005d9a", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "-\n", - "-\n", - "MASTER WorkFLOW for swash SIMULATIONS\n", - "-\n", - "-\n", - "\n", - "Batch Process Start: 2019-10-11 15:00:00 Finish: 2019-10-11 15:30:00 \n", - "The batch simulation is Run in /Users/lszcz/Documents/CMTB/cmtb/data\\swash1D_test_high Version\n", - "Check for simulation errors here None\n", - "------------------------------------\n", - "\n", - "************************************\n", - "\n", - "------------------------------------\n", - "\n", - "\n", - "simulation input/output files and plots will be place in /Users/lszcz/Documents/CMTB/cmtb/data\\swash1D_test_high folder\n", - "TODO: discussion - currently grabbing bathy in simSetup -- should i be? [frontBackNew.swashSimSetup]\n", - " -- 1 WL records with 0 interpolated points\n", - "https://chldata.erdc.dren.mil/thredds/dodsC/cmtb/integratedBathyProduct/survey/survey.ncml\n", - "Bathymetry is taken as closest in HISTORY - operational\n" - ] - } - ], + "outputs": [], "source": [ "wavePacket, windPacket, wlPacket, bathyPacket, swio = frontBackNEW.swashSimSetup(Inputs['startTime'],\n", " inputDict=Inputs,\n", @@ -255,21 +221,10 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "id": "e028a830", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "TODO: Replacing parameters.... whats left can be warned at the end of this process [wrr.swashIO_replaceDefaultParams]\n", - "still processing dict_keys(['version_prefix', 'yBounds', 'grid', 'modelName']) from 'modelSettings' in input file\n", - "writing all swash input files\n", - " TODO: calculate equlib time based on conditions [wrr.writeSWS]\n" - ] - } - ], + "outputs": [], "source": [ "swio.writeAllFiles(wavePacket=wavePacket,wlPacket=wlPacket,\n", " bathyPacket=bathyPacket)" @@ -284,6 +239,17 @@ "## Run SWASH" ] }, + { + "cell_type": "code", + "execution_count": null, + "id": "48b7ce99", + "metadata": {}, + "outputs": [], + "source": [ + "# overwriting below to account for windows running ubuntu shell on windows machine\n", + "swio.runString1 = 'wsl mpiexec -n 18 /mirror/swash/swash.exe INPUT' " + ] + }, { "cell_type": "code", "execution_count": null, @@ -296,7 +262,7 @@ }, { "cell_type": "markdown", - "id": "fb0c879f", + "id": "54424000", "metadata": {}, "source": [ "## -----------------------------------------------------------------------------------------\n", @@ -306,19 +272,19 @@ { "cell_type": "code", "execution_count": null, - "id": "5ba8cbe4", + "id": "e89e40b0", "metadata": {}, "outputs": [], "source": [ "os.chdir(swio.workingDirectory) # add path to results .mat file to directory\n", "[dataDict, metaDict] = swio.loadSwash_Mat(testName+'.mat') # load in formatted results\n", - " # produces a benign error" + " # produces a benign warning" ] }, { "cell_type": "code", "execution_count": null, - "id": "b4542723", + "id": "d4c1febe", "metadata": {}, "outputs": [], "source": [ @@ -330,7 +296,7 @@ { "cell_type": "code", "execution_count": null, - "id": "bb39c271", + "id": "22309738", "metadata": {}, "outputs": [], "source": [ @@ -344,7 +310,7 @@ { "cell_type": "code", "execution_count": null, - "id": "1bc3a28d", + "id": "f2a38612", "metadata": {}, "outputs": [], "source": [ @@ -354,13 +320,10 @@ { "cell_type": "code", "execution_count": null, - "id": "b9b78c9a", + "id": "7ab6b88d", "metadata": {}, "outputs": [], - "source": [ - "from IPython.display import Image\n", - "Image(workingDir+'/'+testName+'/img'+'.png')" - ] + "source": [] } ], "metadata": { diff --git a/plotting/operationalPlots.py b/plotting/operationalPlots.py index a001b53..83b6dfb 100644 --- a/plotting/operationalPlots.py +++ b/plotting/operationalPlots.py @@ -4,7 +4,7 @@ from matplotlib import image, tri import matplotlib.dates as mdates import matplotlib.image as image -import os, math, glob +import os, math from scipy.interpolate import interpn, RectBivariateSpline from getdatatestbed.getDataFRF import getObs from testbedutils import sblib as sb @@ -12,8 +12,6 @@ import cartopy.crs as ccrs import os, pandas from testbedutils.sblib import statsBryant -import netCDF4 as nc -from matplotlib import colors def unstructuredSpatialPlot(outFname, fieldNc, variable='waveHs', **kwargs): """Plots unstructured data from open netCDF file @@ -85,31 +83,6 @@ def unstructuredSpatialPlot(outFname, fieldNc, variable='waveHs', **kwargs): plt.tight_layout() plt.savefig(outFname) -def makeCrossShoreTimeSeriesPlotAndMovie(ncfile, **kwargs): - figsize = kwargs.get('figsize', (8,4)) - pathBase = kwargs.get('plottingDirectory', '.') - nSubSample = kwargs.get('nSubSample', 5) # data are output at high rate, how often do we want to plot - version_prefix = kwargs.get('versionPrefix', 'base') - xBounds = kwargs.get('xBounds', None) - fnameBase = kwargs.get('fnameBase', f'CMTB_phaseResolved_TimeSeries_{version_prefix}') - time = ncfile['tsTime'][:] - eta = ncfile['eta'][:].squeeze() - bathy = ncfile['elevation'][:].squeeze() - xFRF = ncfile['xFRF'][:] - imgList = [] - for tidx in np.arange(0, len(time), nSubSample).astype(int): - ofPlotName = os.path.join(pathBase, fnameBase + f'_{time[tidx]:08}.png') - generate_CrossShoreTimeseries(ofPlotName, eta[tidx], bathy, xFRF, yBounds=xBounds, figsize=figsize) - imgList.append(ofPlotName) - # now make gif of waves moving across shore - dt = np.median(np.diff(time)) - outfname = os.path.join(pathBase, fnameBase + '.gif') - sb.makegif(imgList, outfname, dt=dt/nSubSample) - sb.myTarMaker(os.path.join(pathBase, fnameBase + '.tar.gz'), imgList) - if xBounds is not None: - imgList = sorted(glob.glob(os.path.join(pathBase, fnameBase+'*.png'))) - sb.makegif(imgList, imgList[0].split('.png')[0]+'.gif', dt=dt/nSubSample) - sb.myTarMaker(os.path.join(pathBase, fnameBase + '.tar.gz'), imgList) # these are all the ones that were formerly in plotFunctions.py def plotTripleSpectra(fnameOut, time, Hs, raw, rot, interp, full=False): @@ -533,36 +506,36 @@ def plotWaveProfile(x, waveHs, bathyToPlot, fname): plt.close() -# these are all the ones that were formerly in CSHORE_plotLib -def obs_V_mod_TS(ofname, p_dict, logo_path='ArchiveFolder/CHL_logo.png'): - """ - This script basically just compares two time series, under - the assmption that one is from the model and one a set of observations +def adjust_plot_ticks(p_dict): + """ This scripts adjusts the axis scale factor of the time series plot in obs_v_mod_ts. - :param file_path: this is the full file-path (string) to the location where the plot will be saved - :param p_dict: has 6 keys to it. - (1) a vector of datetimes ('time') - (2) vector of observations ('obs') - (3) vector of model data ('model') - (4) variable name (string) ('var_name') - (5) variable units (string!!) ('units') -> this will be put inside a tex math environment!!!! - (6) plot title (string) ('p_title') - :return: a model vs. observation time-series plot' - the dictionary of the statistics calculated + Args: - """ - # this function plots observed data vs. model data for time-series data and computes stats for it. + p_dict: has 6 keys to it. + 'time': a vector of datetimes - assert len(p_dict['time']) == len(p_dict['obs']) == len(p_dict['model']), "Your time, model, and observation arrays are not all the same length!" - assert sum([isinstance(p_dict['time'][ss], DT.datetime) for ss in range(0, len(p_dict['time']))]) == len(p_dict['time']), 'Your times input must be an array of datetimes!' + 'obs': vector of observations + + 'model': vector of model data + + 'var_name' (str): variable name + + 'units' (str): variable units -> this will be put inside a tex math environment!!!! + + 'p_title' (str): plot title""" + + assert len(p_dict['time']) == len(p_dict['obs']) == len( + p_dict['model']), "Your time, model, and observation arrays are not all the same length!" + assert sum([isinstance(p_dict['time'][ss], DT.datetime) for ss in range(0, len(p_dict['time']))]) == len( + p_dict['time']), 'Your times input must be an array of datetimes!' # calculate total duration of data to pick ticks for Xaxis on time series plot totalDuration = p_dict['time'][-1] - p_dict['time'][0] if totalDuration.days > 365: # this is a year + of data # mark 7 day increments with monthly major lables - majorTickLocator = mdates.MonthLocator(interval=3) # every 3 months - minorTickLocator = mdates.AutoDateLocator() # DayLocator(7) + majorTickLocator = mdates.MonthLocator(interval=3) # every 3 months + minorTickLocator = mdates.AutoDateLocator() # DayLocator(7) xfmt = mdates.DateFormatter('%Y-%m') - elif totalDuration.days > 30: # thie is months of data that is not a year + elif totalDuration.days > 30: # thie is months of data that is not a year # mark 12 hour with daily major labels majorTickLocator = mdates.DayLocator(1) minorTickLocator = mdates.HourLocator(12) @@ -574,30 +547,36 @@ def obs_V_mod_TS(ofname, p_dict, logo_path='ArchiveFolder/CHL_logo.png'): xfmt = mdates.DateFormatter('%Y-%m-%d %H:%M') else: # mark hourly with 6 hour labels major intervals - tickInterval = 12 # hours? + tickInterval = 6 # hours? majorTickLocator = mdates.HourLocator(interval=tickInterval) minorTickLocator = mdates.HourLocator(1) - xfmt = mdates.DateFormatter('%m/%d\n%H:%M') - # DLY notes 12/17/2018 - I think this tick selection section still needs work, - # it works fine in some cases but terrible in others + xfmt = mdates.DateFormatter('%Y-%m-%d %H:%M') - #################################################################################################################### - # Begin Plot - #################################################################################################################### - fig = plt.figure(figsize=(10, 10)) - if 'p_title' in p_dict.keys(): - fig.suptitle(p_dict['p_title'], fontsize=18, fontweight='bold', verticalalignment='top') + return xfmt, minorTickLocator, majorTickLocator - # time series - ax1 = plt.subplot2grid((2, 2), (0, 0), colspan=2) + +def determine_axis_scale_factor(p_dict): + """ This scripts determines the axis scale factor of the time series plot in obs_v_mod_ts. + + Args: + + p_dict: has 6 keys to it. + 'time': a vector of datetimes + + 'obs': vector of observations + + 'model': vector of model data + + 'var_name' (str): variable name + + 'units' (str): variable units -> this will be put inside a tex math environment!!!! + + 'p_title' (str): plot title""" + + # determine axis scale factor min_val = np.nanmin([np.nanmin(p_dict['obs']), np.nanmin(p_dict['model'])]) max_val = np.nanmax([np.nanmax(p_dict['obs']), np.nanmax(p_dict['model'])]) - if min_val < 0 and max_val > 0: - ax1.plot(p_dict['time'], np.zeros(len(p_dict['time'])), 'k--') - ax1.plot(p_dict['time'], p_dict['obs'], 'r.', label='Observed') - ax1.plot(p_dict['time'], p_dict['model'], 'b.', label='Model') - ax1.set_ylabel('%s [$%s$]' % (p_dict['var_name'], p_dict['units']), fontsize=16) - # determine axis scale factor + if min_val >= 0: sf1 = 0.9 else: @@ -606,24 +585,145 @@ def obs_V_mod_TS(ofname, p_dict, logo_path='ArchiveFolder/CHL_logo.png'): sf2 = 1.1 else: sf2 = 0.9 + + return min_val, max_val, sf1, sf2 + + +def plot_string_message(p_dict, stats_dict): + """ This script creates the statistics string used for the one:one plot in obs_v_mod_ts + + Args: + + p_dict: has 6 keys to it. + 'time': a vector of datetimes + + 'obs': vector of observations + + 'model': vector of model data + + 'var_name' (str): variable name + + 'units' (str): variable units -> this will be put inside a tex math environment!!!! + + 'p_title' (str): plot title""" + + + header_str = '%s Comparison \nModel to Observations:' % (p_dict['var_name']) + m_mean_str = '\n Model Mean $=%s$ $(%s)$' % ("{0:.2f}".format(stats_dict['m_mean']), p_dict['units']) + o_mean_str = '\n Observation Mean $=%s$ $(%s)$' % ("{0:.2f}".format(stats_dict['o_mean']), p_dict['units']) + bias_str = '\n Bias $=%s$ $(%s)$' % ("{0:.2f}".format(stats_dict['bias']), p_dict['units']) + RMSE_str = '\n RMSE $=%s$ $(%s)$' % ("{0:.2f}".format(stats_dict['RMSE']), p_dict['units']) + SI_str = '\n Similarity Index $=%s$' % ("{0:.2f}".format(stats_dict['scatterIndex'])) + sym_slp_str = '\n Symmetric Slope $=%s$' % ("{0:.2f}".format(stats_dict['symSlope'])) + corr_coef_str = '\n Correlation Coefficient $=%s$' % ("{0:.2f}".format(stats_dict['corr'])) + RMSE_Norm_str = '\n %%RMSE $=%s$ $(%s)$' % ("{0:.2f}".format(stats_dict['RMSEnorm']), p_dict['units']) + num_String = '\n Number of samples $= %s$' % len(stats_dict['residuals']) + plot_str = m_mean_str + o_mean_str + bias_str + RMSE_str + SI_str + sym_slp_str + corr_coef_str + RMSE_Norm_str + num_String + + return plot_str, header_str + +def statistics_dictionary_p_dict(p_dict): + """ This script calls statsBryant function and creates stats_dict (used in obs_v_mod_ts, + obs_v_mod_bathy, and obs_v_mod_bathy_TN) + + Args: + + p_dict: has 6 keys to it. + 'time': a vector of datetimes + + 'obs': vector of observations + + 'model': vector of model data + + 'var_name' (str): variable name + + 'units' (str): variable units -> this will be put inside a tex math environment!!!! + + 'p_title' (str): plot title""" + + stats_dict = {} + if isinstance(p_dict['obs'], np.ma.masked_array) and ~p_dict['obs'].mask.any(): + p_dict['obs'] = np.array(p_dict['obs']) + stats_dict = statsBryant(p_dict['obs'], p_dict['model']) + stats_dict['m_mean'] = np.nanmean(p_dict['model']) + stats_dict['o_mean'] = np.nanmean(p_dict['obs']) + del stats_dict['meta'] # remove meta key from stats_dict + + return stats_dict + + +def obs_V_mod_TS(ofname, p_dict, logo_path='ArchiveFolder/CHL_logo.png'): + """This script basically just compares two time series, under + the assmption that one is from the model and one a set of observations + + Args: + file_path: this is the full file-path (string) to the location where the plot will be saved + p_dict: has 6 keys to it. + 'time': a vector of datetimes + + 'obs': vector of observations + + 'model': vector of model data + + 'var_name' (str): variable name + + 'units' (str): variable units -> this will be put inside a tex math environment!!!! + + 'p_title' (str): plot title + + ofname: output file name + logo_path: path to a small logo to put at the bottom of the figure (Default value = 'ArchiveFolder/CHL_logo.png') + + Returns: + a model vs. observation time-series plot' + the dictionary of the statistics calculated + + """ + # this function plots observed data vs. model data for time-series data and computes stats for it. + + #################################################################################################################### + # Begin Plot + #################################################################################################################### + fig = plt.figure(figsize=(10, 10)) + fig.suptitle(p_dict['p_title'], fontsize=18, fontweight='bold', verticalalignment='top') + + # time series + ax1 = plt.subplot2grid((2, 2), (0, 0), colspan=2) + + min_val, max_val, sf1, sf2 = determine_axis_scale_factor(p_dict) + xfmt, minorTickLocator, majorTickLocator = adjust_plot_ticks(p_dict) + + if min_val < 0 and max_val > 0: + base_date = min(p_dict['time']) - DT.timedelta( + seconds=0.5 * (p_dict['time'][1] - p_dict['time'][0]).total_seconds()) + base_times = np.array( + [base_date + DT.timedelta(seconds=n * (p_dict['time'][1] - p_dict['time'][0]).total_seconds()) for n in + range(0, len(p_dict['time']) + 1)]) + ax1.plot(base_times, np.zeros(len(base_times)), 'k--') + + plt.grid() + ax1.scatter(p_dict['time'], p_dict['obs'], s=75, c='r', marker='o', label='Observed') + ax1.scatter(p_dict['time'], p_dict['model'], s=75, c='b', marker='o', label='Model') + ax1.set_ylabel('%s [$%s$]' % (p_dict['var_name'], p_dict['units']), fontsize=16) + ax1.set_ylim([sf1 * min_val, sf2 * max_val]) - ax1.set_xlim([min(p_dict['time']) - DT.timedelta(seconds=0.5 * (p_dict['time'][1] - p_dict['time'][0]).total_seconds()), - max(p_dict['time']) + DT.timedelta(seconds=0.5 * (p_dict['time'][1] - p_dict['time'][0]).total_seconds())]) + ax1.set_xlim( + [min(p_dict['time']) - DT.timedelta(seconds=0.5 * (p_dict['time'][1] - p_dict['time'][0]).total_seconds()), + max(p_dict['time']) + DT.timedelta(seconds=0.5 * (p_dict['time'][1] - p_dict['time'][0]).total_seconds())]) # this is what you change for time-series x-axis ticks!!!!! - # # ax1.xaxis.set_major_locator(majorTickLocator) # ax1.xaxis.set_minor_locator(minorTickLocator) # ax1.xaxis.set_major_formatter(xfmt) + for tick in ax1.xaxis.get_major_ticks(): tick.label.set_fontsize(14) for tick in ax1.yaxis.get_major_ticks(): tick.label.set_fontsize(14) - ax1.minorticks_off() ax1.tick_params(labelsize=14) - plt.legend(bbox_to_anchor=(0., 1.02, 1., 0.102), loc=3, ncol=3, borderaxespad=0., fontsize=14) - fig.autofmt_xdate() + plt.legend(bbox_to_anchor=(0., 1.02, 1., .102), loc=3, ncol=3, borderaxespad=0., fontsize=14) + # Now working on the 1-1 comparison subplot one_one = np.linspace(min_val - 0.05 * (max_val - min_val), max_val + 0.05 * (max_val - min_val), 100) ax2 = plt.subplot2grid((2, 2), (1, 0), colspan=1) @@ -631,7 +731,7 @@ def obs_V_mod_TS(ofname, p_dict, logo_path='ArchiveFolder/CHL_logo.png'): if min_val < 0 and max_val > 0: ax2.plot(one_one, np.zeros(len(one_one)), 'k--') ax2.plot(np.zeros(len(one_one)), one_one, 'k--') - ax2.plot(p_dict['obs'], p_dict['model'], 'r*') + ax2.scatter(p_dict['obs'], p_dict['model'], s=75, c='r', marker='*') ax2.set_xlabel('Observed %s [$%s$]' % (p_dict['var_name'], p_dict['units']), fontsize=16) ax2.set_ylabel('Model %s [$%s$]' % (p_dict['var_name'], p_dict['units']), fontsize=16) ax2.set_xlim([min_val - 0.025 * (max_val - min_val), max_val + 0.025 * (max_val - min_val)]) @@ -643,45 +743,36 @@ def obs_V_mod_TS(ofname, p_dict, logo_path='ArchiveFolder/CHL_logo.png'): ax2.tick_params(labelsize=14) plt.legend(loc=0, ncol=1, borderaxespad=0.5, fontsize=14) - # stats and stats text - stats_dict = statsBryant(p_dict['obs'], p_dict['model']) - stats_dict['m_mean'] = np.nanmean(p_dict['model']) - stats_dict['o_mean'] = np.nanmean(p_dict['obs']) - - header_str = '%s Comparison \nModel to Observations:' % (p_dict['var_name']) - m_mean_str = '\n Model Mean $=%s$ $(%s)$' % ("{0:.2f}".format(stats_dict['m_mean']), p_dict['units']) - o_mean_str = '\n Observation Mean $=%s$ $(%s)$' % ("{0:.2f}".format(stats_dict['o_mean']), p_dict['units']) - bias_str = '\n Bias $=%s$ $(%s)$' % ("{0:.2f}".format(stats_dict['bias']), p_dict['units']) - RMSE_str = '\n RMSE $=%s$ $(%s)$' % ("{0:.2f}".format(stats_dict['RMSE']), p_dict['units']) - SI_str = '\n Similarity Index $=%s$' % ("{0:.2f}".format(stats_dict['scatterIndex'])) - sym_slp_str = '\n Symmetric Slope $=%s$' % ("{0:.2f}".format(stats_dict['symSlope'])) - corr_coef_str = '\n Correlation Coefficient $=%s$' % ("{0:.2f}".format(stats_dict['corr'])) - RMSE_Norm_str = '\n %%RMSE $=%s$ $(%s)$' % ("{0:.2f}".format(stats_dict['RMSEnorm']), p_dict['units']) + stats_dict = statistics_dictionary_p_dict(p_dict) + plot_str, header_str = plot_string_message(p_dict, stats_dict) - num_String = '\n Number of samples $= %s$' %len(stats_dict['residuals']) - plot_str = m_mean_str + o_mean_str + bias_str + RMSE_str + RMSE_Norm_str + SI_str + sym_slp_str + corr_coef_str + num_String ax3 = plt.subplot2grid((2, 2), (1, 1), colspan=1) + ax3.axis('off') ax4 = ax3.twinx() ax3.axis('off') - ax4.axis('off') + try: - CHL_logo = image.imread(logo_path) + ax4.axis('off') + CHL_logo = image.imread(os.path.join(logo_path)) ax4 = fig.add_axes([0.78, 0.02, 0.20, 0.20], anchor='SE', zorder=-1) ax4.imshow(CHL_logo) ax4.axis('off') except: print('Plot generated sans CHL Logo!') + ax3.axis('off') ax3.text(0.01, 0.99, header_str, verticalalignment='top', horizontalalignment='left', color='black', fontsize=18, fontweight='bold') ax3.text(0.01, 0.90, plot_str, verticalalignment='top', horizontalalignment='left', color='black', fontsize=16) fig.subplots_adjust(wspace=0.4, hspace=0.1) - # fig.tight_layout(pad=1, h_pad=2.5, w_pad=1, rect=[0.0, 0.0, 1.0, 0.925]) - fig.savefig(ofname, dpi=300) + fig.tight_layout(pad=1, h_pad=2.5, w_pad=1, rect=[0.0, 0.0, 1.0, 0.925]) + fig.savefig(ofname, dpi=80) plt.close() + return stats_dict + def bc_plot(ofname, p_dict): """ This is the script to plot some information about the boundary conditions that were put into the CSHORE infile.. @@ -995,7 +1086,8 @@ def obs_V_mod_bathy(ofname, p_dict, obs_dict, logo_path='ArchiveFolder/CHL_logo. plt.legend(loc=0, ncol=1, borderaxespad=0.5, fontsize=14) # stats and stats text - stats_dict = sb.statsBryant(models=p_dict['model'], observations=p_dict['obs']) + #stats_dict = sb.statsBryant(models=p_dict['model'], observations=p_dict['obs']) + stats_dict = statistics_dictionary_p_dict(p_dict) # volume change, shallow index_XXm = np.min(np.argwhere(p_dict[ @@ -2212,7 +2304,9 @@ def generate_CrossShoreTimeseries(ofname, dataIn, bottomIn, xIn, **kwargs): a plot """ - yBounds = kwargs.get('yBounds', None) + xmin = kwargs.get('xmin', np.min(xIn)) + xmax = kwargs.get('xmin', np.max(xIn)) + figsize = kwargs.get('figsize', (8,4)) beachColor = 'wheat' skyColor = 'aquamarine' @@ -2224,23 +2318,18 @@ def generate_CrossShoreTimeseries(ofname, dataIn, bottomIn, xIn, **kwargs): plt.figure(figsize=figsize) ax1 = plt.subplot(111) ax1.set_facecolor(skyColor) - ax1.plot(xIn, dataIn, color=waterColor) # plot water line + ax1.plot(xIn, dataIn) # plot water line ax1.plot(xIn, bottomIn, color=beachColor) # plot beach ax1.fill_betweenx(bottomIn, xIn, color=beachColor) # fill in beach ax1.fill_between(xIn, bottomIn, dataIn, color=waterColor) # fill in water - ax1.set_xlim([np.min(xIn), np.max(xIn)]) + ax1.set_xlim([xmin, xmax]) ax1.set_ylim([np.min(bottomIn), np.max(bottomIn) + 0.5]) - ax1.set_xlabel('x') - ax1.set_ylabel('elevation') + plt.savefig(ofname) - - if yBounds is not None: - ax1.set_xlim(yBounds) - plt.savefig(f"{ofname.split('.png')[0]}_yMin{yBounds[0]}_yMax{yBounds[-1]}.png") plt.close() -def plotCrossShoreSummaryTS(ofname, ncfile=None, **kwargs): +def plotCrossShoreSummaryTS(ofname, xFRF, bathy, totalStatisticDict, SeaSwellStats, IGstats, setup, WL, **kwargs): """ plots a 4 panel plot summary of cross-shore performance of model that can resolve IG Args: @@ -2261,25 +2350,9 @@ def plotCrossShoreSummaryTS(ofname, ncfile=None, **kwargs): """ obs = kwargs.get('obs', None) - + HsTS = kwargs.get('HsTs', None) fs = kwargs.get('fontSize', 12) var = kwargs.get('plotVar', 'Hm0') - if ncfile is None: - xFRF = kwargs.get('xFRF', None) - totalStatisticDict = kwargs.get('totalStatisticDict', None) - SeaSwellStats = kwargs.get('Hs_ss', None) - IGstats = kwargs.get('IGstats', None) - setup = kwargs.get('setup', None) - WL = kwargs.get('WL', None) - else: - xFRF = ncfile['xFRF'][:].squeeze() - bathy = ncfile['elevation'][:].squeeze() - Hs_total = ncfile['waveHs'][:].squeeze() - Hs_ss= kwargs.get('Hs_ss', np.ma.empty_like(xFRF)) - Hs_IG = ncfile['waveHsIG'][:].squeeze() - setup = np.nanmean(ncfile['eta'][:].squeeze(), axis=0) - WL = kwargs.get('WL', None) - beachColor = 'wheat' waterColor = 'aquamarine' setupColor = 'green' @@ -2291,23 +2364,24 @@ def plotCrossShoreSummaryTS(ofname, ncfile=None, **kwargs): ########### make Figure ######################## plt.figure(figsize=figsize); ax1 = plt.subplot(int(size + '1')) - - ax1.plot(xFRF, Hs_total, label='$Hs_{Total}$') - ax1.plot(xFRF, Hs_ss, label='$Hs_{seaSwell}$') - ax1.plot(xFRF, Hs_IG, label='$Hs_{IG}$') + if HsTS is not None: + ax1.plot(xFRF, HsTS, label='$Hs_{Ts}$') + ax1.plot(xFRF, totalStatisticDict[var], label='$Hs_{Total}$') + ax1.plot(xFRF, SeaSwellStats[var], label='$Hs_{seaSwell}$') + ax1.plot(xFRF, IGstats[var], label='$Hs_{IG}$') ax1.legend(loc='upper left', fontsize=fs) ax1.set_ylabel('Wave Height $[m]$', fontsize=fs) ax2 = plt.subplot(int(size + '2')) - ax2.plot(xFRF, Hs_IG, label='$Hs_{IG}$') + ax2.plot(xFRF, IGstats[var], label='$Hs_{IG}$') ax2.set_ylabel('IG wave Height', fontsize=fs) ax3 = plt.subplot(int(size + '3')) ax3.plot(xFRF, setup) - ax3.set_ylabel('$setup$', fontsize=fs) + ax3.set_ylabel('$\eta$', fontsize=fs) ax4 = plt.subplot(int(size + '4')) - ax4.plot(xFRF, bathy, '-', lw=7, color=beachColor) + ax4.plot(xFRF, -bathy,'-', lw=7, color=beachColor) ax4.plot(xFRF, np.tile(WL, (xFRF.shape[0])), color=waterColor, label='Water Level') ax4.plot(xFRF, setup, color=setupColor, label='TWL') ax4.set_ylabel('Z NAVD88 - [m]') @@ -2328,14 +2402,9 @@ def crossShoreSurfaceTS2D(ofname, eta, xFRF, time): Returns: """ - eta = eta.squeeze() + eta= eta.squeeze() plt.figure() - surf = plt.pcolormesh(xFRF, time, eta, cmap='RdBu', norm=colors.TwoSlopeNorm(vcenter=0)) - cbar = plt.colorbar(mappable=surf) - cbar.set_label('Water Elevation') - plt.xlabel('Cross-shore Position [m]') - plt.ylabel('time [s]') - plt.tight_layout() + plt.pcolormesh(xFRF, time, eta, cmap='RdBu', shading='auto') plt.savefig(ofname) plt.close() @@ -2354,15 +2423,12 @@ def crossShoreSpectrograph(ofname, xFRF, freqs, fspec, **kwargs): a plot """ - ylims = kwargs.get('ylims', (freqs[0], 0.4)) - plt.figure() + ylims = kwargs.get('ylims', (0, 0.4)) + plt.figure(); plt.pcolormesh(xFRF, freqs, fspec.T) - a = plt.colorbar() - plt.yscale('log') - a.set_label('Energy Density $[m^2/s]$') - plt.ylabel('Frequency', fontsize=12) - plt.xlabel('Cross-shore location', fontsize=12) + plt.colorbar() + plt.ylabel('frequency', fontsize=12) + plt.xlabel('cross-shore location', fontsize=12) plt.ylim(ylims) - plt.tight_layout() plt.savefig(ofname); plt.close();