-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathfind_slacktide_offset.py
More file actions
136 lines (77 loc) · 2.87 KB
/
find_slacktide_offset.py
File metadata and controls
136 lines (77 loc) · 2.87 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
from __future__ import division,print_function
import matplotlib as mpl
import scipy as sp
from datatools import *
from gridtools import *
from plottools import *
from projtools import *
from misctools import *
import matplotlib.tri as mplt
import matplotlib.pyplot as plt
#from mpl_toolkits.basemap import Basemap
import os as os
import sys
np.set_printoptions(precision=8,suppress=True,threshold=sys.maxsize)
import scipy.signal as spsig
# Define names and types of data
name='kit4_kelp_20m_drag_0.018_2d_5min'
grid='kit4_kelp'
starttime=4608
endtime=starttime+1225#5503
regionname='douglas'
### load the .nc file #####
data = loadnc('runs/'+grid+'/'+name+'/output/',singlename=grid + '_0001.nc')
print('done load')
data = ncdatasort(data)
print('done sort')
region=regions(regionname)
savepath='figures/png/' + grid + '_' + '/slacktide_offset/'
if not os.path.exists(savepath): os.makedirs(savepath)
refloc={}
refloc['region']=np.array([-128.69,-128.69,53.95,53.95])
refloc=expand_region(refloc,[1000])
newloc={}
newloc['region']=np.array([-128.83,-128.83,53.59,53.59])
newloc=expand_region(newloc,[1500])
refeidx=get_elements(data,refloc)
neweidx=get_elements(data,newloc)
nidx=get_nodes(data,region)
#f=plt.figure()
#ax=f.add_axes([.125,.1,.775,.8])
#ax.triplot(data['trigrid'],lw=.15)
#plot_box(ax,refloc,'r',1.5)
#plot_box(ax,newloc,'b',1.5)
#prettyplot_ll(ax,setregion=region)
#f.savefig(savepath + grid + '_' +name+ '_'+regionname +'_slacktide_offset_locations.png',dpi=600)
#plt.close(f)
refspeed=speeder(data['ua'][starttime:endtime,refeidx],data['va'][starttime:endtime,refeidx])
newspeed=speeder(data['ua'][starttime:endtime,neweidx],data['va'][starttime:endtime,neweidx])
rzeta=data['zeta'][starttime:endtime,nidx].mean(axis=1)
time=(data['time'][starttime:endtime]-data['time'][starttime])*24*60
f=plt.figure()
ax=f.add_axes([.125,.335,.775,.6])
ax.plot(time,refspeed.mean(axis=1),'r',label=r'Mean Kitimat Speed')
ax.plot(time,newspeed.mean(axis=1),'b',label=r'Mean Sill Speed')
ax.plot(time,refspeed.max(axis=1),'r--',label=r'Max Kitimat Speed')
ax.plot(time,newspeed.max(axis=1),'b--',label=r'Max Sill Speed')
ax.legend(fontsize=6)
ax.grid()
ax.set_xlabel(r'Time (minutes)')
ax.set_ylabel(r'Speed (m/s)')
ax1=f.add_axes([.125,.05,.775,.2])
ax1.plot(time,rzeta,'k',label=r'Mean Elevation')
ax1.axhline(y=0,color='k')
ax1.xaxis.set_tick_params(labelbottom='off')
ax1.grid()
ax1.legend(fontsize=6)
ax1.set_ylabel(r'Elevation (m)')
f.savefig(savepath + grid + '_' +name+ '_'+regionname +'_slacktide_offset_speeds_in_boxes.png',dpi=600)
plt.close(f)
refms=refspeed.max(axis=1)
newms=newspeed.max(axis=1)
reftide=spsig.argrelmax(-refms,order=5)[0]
newtide=spsig.argrelmax(-newms,order=5)[0]
minlen=np.min([len(reftide),len(newtide)])
print (newtide[0:minlen]-reftide[0:minlen])*(np.diff(data['time'])[0])*24*60
for idx in newtide:
print newms[(idx-6):(idx+6)].max()