132 lines
4.1 KiB
Python
132 lines
4.1 KiB
Python
### St John Wind Speed Processing Code
|
|
# Alexander Rey, June 30, 2020
|
|
|
|
from erddapy import ERDDAP
|
|
import pandas as pd
|
|
import datetime
|
|
import matplotlib as mpl
|
|
import matplotlib.pyplot as plt
|
|
import numpy as np
|
|
import scipy as sc
|
|
import statsmodels.api as sm
|
|
|
|
# Import Offshore Buoy Data
|
|
e = ERDDAP(
|
|
server='https://www.smartatlantic.ca/erddap',
|
|
protocol='tabledap',
|
|
response='csv',
|
|
)
|
|
|
|
# Setup download for the buoy
|
|
e.dataset_id = 'SMA_saint_john'
|
|
e.constraints = {
|
|
'time>=': '2016-07-10T00:00:00Z',
|
|
'time<=': '2020-06-01T00:00:00Z',
|
|
}
|
|
e.variables = [
|
|
'time',
|
|
'wind_spd_avg',
|
|
'wind_dir_avg',
|
|
]
|
|
|
|
buoydat = e.to_pandas(
|
|
index_col='time (UTC)',
|
|
parse_dates=True,
|
|
).dropna()
|
|
|
|
# Setup download for the warf
|
|
e.dataset_id = 'SMA_saint_john_wharf'
|
|
e.constraints = {
|
|
'time>=': '2016-07-10T00:00:00Z',
|
|
'time<=': '2020-06-01T00:00:00Z',
|
|
}
|
|
e.variables = [
|
|
'time',
|
|
'wind_spd_avg',
|
|
'wind_dir_avg',
|
|
]
|
|
|
|
warfdat = e.to_pandas(
|
|
index_col='time (UTC)',
|
|
parse_dates=True,
|
|
).dropna()
|
|
|
|
# Setup download for the cruise terminal
|
|
e.dataset_id = 'SMA_saint_john_cruise_terminal'
|
|
e.constraints = {
|
|
'time>=': '2016-12-23T00:00:00Z',
|
|
'time<=': '2020-06-01T00:00:00Z',
|
|
}
|
|
|
|
e.variables = [
|
|
'time',
|
|
'wind_spd_avg',
|
|
'wind_dir_avg',
|
|
]
|
|
|
|
cruisedat = e.to_pandas(
|
|
index_col='time (UTC)',
|
|
parse_dates=True,
|
|
).dropna()
|
|
|
|
### Clean and process data
|
|
t_index = pd.date_range(start='2016-07-10T00:00:00Z', end='2020-06-01T00:00:00Z', freq='30Min')
|
|
|
|
# Set to 30 minute time series
|
|
buoy_resample = buoydat.resample('30Min').mean().reindex(t_index)
|
|
buoy_resample['wind_spd_avg (m s-1)'] = buoy_resample['wind_spd_avg (m s-1)'].interpolate('linear')
|
|
buoy_resample['wind_dir_avg (degree)'] = buoy_resample['wind_dir_avg (degree)'].interpolate('nearest')
|
|
|
|
warf_resample = warfdat.resample('30Min').mean().reindex(t_index)
|
|
warf_resample['wind_spd_avg (m s-1)'] = warf_resample['wind_spd_avg (m s-1)'].interpolate('linear')
|
|
warf_resample['wind_dir_avg (degree)'] = warf_resample['wind_dir_avg (degree)'].interpolate('nearest')
|
|
|
|
cruise_resample = cruisedat.resample('30Min').mean().reindex(t_index)
|
|
cruise_resample['wind_spd_avg (m s-1)'] = cruise_resample['wind_spd_avg (m s-1)'].interpolate('linear')
|
|
cruise_resample['wind_dir_avg (degree)'] = cruise_resample['wind_dir_avg (degree)'].interpolate('nearest')
|
|
|
|
|
|
|
|
|
|
# %% Make QQ plot
|
|
plt.figure()
|
|
# plt.scatter(buoy_resample['wind_spd_avg (m s-1)'], warf_resample['wind_spd_avg (m s-1)'],
|
|
# 1,buoy_resample['wind_dir_avg (degree)'],marker='.')
|
|
|
|
# sm.qqplot_2samples(warf_resample['wind_spd_avg (m s-1)'].loc[buoy_resample['wind_dir_avg (degree)'].isin([150, 220])],
|
|
# buoy_resample['wind_spd_avg (m s-1)'].loc[buoy_resample['wind_dir_avg (degree)'].isin([150, 220])],
|
|
# line='r',ylabel='Potash Terminal Quantiles',xlabel='Offshore Quantiles')
|
|
# plt.title('St John Wind (Potash Terminal) from 160-220 deg July 2016-June 2020')
|
|
|
|
|
|
sm.qqplot_2samples(cruise_resample['wind_spd_avg (m s-1)'].loc[buoy_resample['wind_dir_avg (degree)'].isin([160, 220])],
|
|
buoy_resample['wind_spd_avg (m s-1)'].loc[buoy_resample['wind_dir_avg (degree)'].isin([160, 220])],
|
|
line='r', ylabel='Cruise Terminal Quantiles', xlabel='Offshore Quantiles')
|
|
plt.title('St John Wind (Cruise Terminal) from 160-220 deg Dec 2016-June 2020')
|
|
|
|
# plt.scatter(buoy_resample['wind_spd_avg (m s-1)'].loc[buoy_resample['wind_dir_avg (degree)'].isin([90, 180])],
|
|
# warf_resample['wind_spd_avg (m s-1)'].loc[buoy_resample['wind_dir_avg (degree)'].isin([90, 180])],
|
|
# 10, marker='.')
|
|
|
|
plt.plot([0, 20], [0, 20], 'k-')
|
|
|
|
# plt.xlabel('Offshore Wind Speed (m/s)')
|
|
# plt.ylabel('Potash Terminal Wind Speed (m/s)')
|
|
# plt.title('St John Wind Speed Comparision July 2016-June 2020')
|
|
# plt.title('St John Wind Speed Comparision July 2016-June 2020, 90-180 deg')
|
|
|
|
plt.xlim(0, 20)
|
|
plt.ylim(0, 20)
|
|
|
|
# cmap = plt.get_cmap('hsv')
|
|
# norm = plt.Normalize(0, 360)
|
|
# color = cmap(norm(200.))
|
|
#
|
|
# cbar = plt.colorbar()
|
|
# cbar.ax.get_yaxis().labelpad = 15
|
|
# cbar.ax.set_ylabel('Offshore Wind Direction', rotation=270)
|
|
|
|
plt.savefig('St_John_Cruise_160_220.png')
|
|
# plt.savefig('St_John_all.png')
|
|
plt.show()
|