84 lines
3.3 KiB
Python
84 lines
3.3 KiB
Python
#%% Scratch file to compare Delft3D input bounds
|
|
# Alexander Rey, Nay 16, 2023
|
|
|
|
#%% Import modules
|
|
import os
|
|
import numpy as np
|
|
import matplotlib.pyplot as plt
|
|
plt.close('all')
|
|
import dfm_tools as dfmt
|
|
import hydrolib.core.dflowfm as hcdfm
|
|
import pandas as pd
|
|
import datetime
|
|
from matplotlib import dates as mpl_dates
|
|
|
|
#%% Read in Salinity data
|
|
file_bc = r'\\ott-diomedes\Projects\11934.201_Newtown_Creek_TPP\Delft3D\Run169_2014HD_Sed_OrthoB_pliz_WorkingNoteNoMin_Wind.dsproj_data\FlowFM\input\Salinity.bc'
|
|
|
|
#Load .bc-file using HydroLib object ForcingModel.
|
|
m = hcdfm.ForcingModel(file_bc)
|
|
ForcingModel_object_out = hcdfm.ForcingModel()
|
|
|
|
# Create xarray object for SouthBound
|
|
salinityN_xr = dfmt.forcinglike_to_Dataset(m.forcing[0], convertnan=True)
|
|
salinityS_xr = dfmt.forcinglike_to_Dataset(m.forcing[2], convertnan=True)
|
|
|
|
#%% Read in Temperature data
|
|
file_bc = r'\\ott-diomedes\Projects\11934.201_Newtown_Creek_TPP\Delft3D\Run169_2014HD_Sed_OrthoB_pliz_WorkingNoteNoMin_Wind.dsproj_data\FlowFM\input\Temperature.bc'
|
|
|
|
#Load .bc-file using HydroLib object ForcingModel.
|
|
m = hcdfm.ForcingModel(file_bc)
|
|
ForcingModel_object_out = hcdfm.ForcingModel()
|
|
|
|
# Create xarray object for NorthBound and SouthBound
|
|
temperatureN_xr = dfmt.forcinglike_to_Dataset(m.forcing[0], convertnan=True)
|
|
temperatureS_xr = dfmt.forcinglike_to_Dataset(m.forcing[2], convertnan=True)
|
|
|
|
|
|
#%% Read in Water Level data
|
|
file_bc = r'\\ott-diomedes\Projects\11934.201_Newtown_Creek_TPP\Delft3D\Run169_2014HD_Sed_OrthoB_pliz_WorkingNoteNoMin_Wind.dsproj_data\FlowFM\input\WaterLevel.bc'
|
|
|
|
#Load .bc-file using HydroLib object ForcingModel.
|
|
m = hcdfm.ForcingModel(file_bc)
|
|
ForcingModel_object_out = hcdfm.ForcingModel()
|
|
|
|
# Create xarray object for NorthBound
|
|
waterlevelN_xr = dfmt.forcinglike_to_Dataset(m.forcing[0], convertnan=True)
|
|
waterlevelS_xr = dfmt.forcinglike_to_Dataset(m.forcing[2], convertnan=True)
|
|
|
|
|
|
#%% Plot Bound Data
|
|
|
|
# Set Time Bounds
|
|
dateMin = pd.to_datetime(datetime.datetime(2015, 7, 18, 0, 0, 0, 0))
|
|
dateMax = pd.to_datetime(datetime.datetime(2015, 7, 22, 0, 0, 0, 0))
|
|
|
|
fig, ax = plt.subplots(nrows=3, ncols=1, figsize=(12, 6), sharex=True)
|
|
|
|
# Plot a line for salinity for all times for midpoint layer
|
|
salinityN_xr.salinitybnd.isel(depth=9).plot.line(ax=ax[0], linestyle='--', color='r', label='North Top')
|
|
salinityS_xr.salinitybnd.isel(depth=9).plot.line(ax=ax[0], linestyle='-', color='r', label='South Top')
|
|
salinityN_xr.salinitybnd.isel(depth=0).plot.line(ax=ax[0], linestyle='--', color='b', label='North Bottom')
|
|
salinityS_xr.salinitybnd.isel(depth=0).plot.line(ax=ax[0], linestyle='-', color='b', label='South Bottom')
|
|
|
|
temperatureN_xr.temperaturebnd.isel(depth=9).plot.line(ax=ax[1], linestyle='--', color='r')
|
|
temperatureS_xr.temperaturebnd.isel(depth=9).plot.line(ax=ax[1], linestyle='-', color='r')
|
|
temperatureN_xr.temperaturebnd.isel(depth=0).plot.line(ax=ax[1], linestyle='--', color='b')
|
|
temperatureS_xr.temperaturebnd.isel(depth=0).plot.line(ax=ax[1], linestyle='-', color='b')
|
|
|
|
waterlevelN_xr.waterlevelbnd.plot.line(ax=ax[2], linestyle='--', color='r')
|
|
waterlevelS_xr.waterlevelbnd.plot.line(ax=ax[2], linestyle='-', color='r')
|
|
|
|
# Set y axis limits
|
|
ax[0].set_ylim(12, 27)
|
|
ax[1].set_ylim(15, 25)
|
|
ax[2].set_ylim(-2, 2)
|
|
|
|
ax[2].set_xlim(dateMin, dateMax)
|
|
ax[2].xaxis.set_major_formatter(
|
|
mpl_dates.ConciseDateFormatter(ax[2].xaxis.get_major_locator()))
|
|
|
|
ax[0].legend()
|
|
|
|
plt.show()
|