import sqlalchemy
from sqlalchemy import (create_engine, Column, String, Integer, Float, MetaData,
Table, type_coerce, ForeignKey, case)
from sqlalchemy.orm import mapper, create_session, relationship, aliased, Session
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import case
import numpy as np
from sqlalchemy.ext.automap import automap_base
import matplotlib.pyplot as plt
import sqlalchemy.types as types
from sqlalchemy.sql import and_, or_, not_, func
from sqlalchemy.sql import select
import os
from os.path import isfile
import pandas as pd
import netCDF4 as nc
import datetime as dt
from salishsea_tools import evaltools as et, viz_tools
import datetime
import glob
import gsw
%matplotlib inline
PATH= '/data/eolson/MEOPAR/SS36runs/CedarRuns/ISink/'
start_date = datetime.datetime(2015,1,1)
end_date = datetime.datetime(2015,5,30)
flen=10
namfmt='long'
filemap={'nitrate':'ptrc_T','silicon':'ptrc_T','diatoms':'ptrc_T','ciliates':'ptrc_T',
'flagellates':'ptrc_T'}
fdict={'ptrc_T':1,'grid_T':1}
df1=et.loadDFO()
df1.head()
Year | Month | Day | Hour | Lat | Lon | Pressure | Depth | Ammonium | Ammonium_units | Chlorophyll_Extracted | Chlorophyll_Extracted_units | N | Si | Silicate_units | AbsSal | ConsT | Z | dtUTC | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 1982.0 | 7.0 | 16.0 | 1.35 | 49.25 | -123.943 | NaN | 12.0 | NaN | None | 5.28 | mg/m^3 | 6.6 | 13.6 | umol/L | NaN | NaN | 12.0 | 1982-07-16 01:21:00 |
1 | 1982.0 | 7.0 | 16.0 | 1.35 | 49.25 | -123.943 | NaN | 21.5 | NaN | None | 0.61 | mg/m^3 | 21.2 | 45.0 | umol/L | NaN | NaN | 21.5 | 1982-07-16 01:21:00 |
2 | 1982.0 | 7.0 | 16.0 | 1.35 | 49.25 | -123.943 | NaN | 30.5 | NaN | None | NaN | mg/m^3 | 23.5 | 47.4 | umol/L | NaN | NaN | 30.5 | 1982-07-16 01:21:00 |
3 | 1982.0 | 7.0 | 16.0 | 1.35 | 49.25 | -123.943 | NaN | 52.3 | NaN | None | NaN | mg/m^3 | 28.0 | 50.2 | umol/L | NaN | NaN | 52.3 | 1982-07-16 01:21:00 |
4 | 1982.0 | 7.0 | 16.0 | 1.35 | 49.25 | -123.943 | NaN | 75.4 | NaN | None | NaN | mg/m^3 | 26.5 | 49.1 | umol/L | NaN | NaN | 75.4 | 1982-07-16 01:21:00 |
data=et.matchData(df1,filemap, fdict, start_date, end_date, namfmt, PATH, flen)
fig, ax = plt.subplots(figsize = (6,6))
viz_tools.set_aspect(ax, coords = 'map')
ax.plot(data['Lon'], data['Lat'], 'ro',label='data')
ax.plot(data.loc[(data.Lon < -123.5) & (data.Lat < 48.6),['Lon']],
data.loc[(data.Lon < -123.5) & (data.Lat < 48.6),['Lat']],
'bo', label = 'Juan de Fuca')
ax.plot(data.loc[data.Si>75,['Lon']],data.loc[data.Si>75,['Lat']],'*',color='y',label='high Si')
iSaa=(data.Lon>-123.7)&(data.Lon<-123.3)&(data.Lat>48.5)&(data.Lat<48.7)
ax.plot(data.loc[iSaa,['Lon']],data.loc[iSaa,['Lat']],'*',color='m',label='Saanich')
grid = nc.Dataset('/data/vdo/MEOPAR/NEMO-forcing/grid/bathymetry_201702.nc')
viz_tools.plot_coastline(ax, grid, coords = 'map')
ax.set_ylim(48, 50.5)
ax.legend()
ax.set_xlim(-125.7, -122.5);
data.drop(data.loc[iSaa].index.values,inplace=True)
N_s, modmean_s, obsmean_s, bias_s, RMSE_s, WSS_s = et.stats(data.loc[data.Z<15,['N']],data.loc[data.Z<15,['mod_nitrate']])
N_i, modmean_i, obsmean_i, bias_i, RMSE_i, WSS_i = et.stats(data.loc[(data.Z>=15)&(data.Z<22),['N']],data.loc[(data.Z>=15)&(data.Z<22),['mod_nitrate']])
N_d, modmean_d, obsmean_d, bias_d, RMSE_d, WSS_d = et.stats(data.loc[data.Z>=22,['N']],data.loc[data.Z>=22,['mod_nitrate']])
N, modmean, obsmean, bias, RMSE, WSS = et.stats(data.loc[:,['N']],data.loc[:,['mod_nitrate']])
print('Nitrate')
print('z<15 m:')
print(' N: {}\n bias: {}\n RMSE: {}\n WSS: {}'.format(N_s,bias_s,RMSE_s,WSS_s))
print('15 m<=z<22 m:')
print(' N: {}\n bias: {}\n RMSE: {}\n WSS: {}'.format(N_i,bias_i,RMSE_i,WSS_i))
print('z>=22 m:')
print(' N: {}\n bias: {}\n RMSE: {}\n WSS: {}'.format(N_d,bias_d,RMSE_d,WSS_d))
print('all:')
print(' N: {}\n bias: {}\n RMSE: {}\n WSS: {}'.format(N,bias,RMSE,WSS))
Nitrate z<15 m: N: 76 bias: -2.7880771945809073 RMSE: 5.6853853925544895 WSS: 0.7633127129092379 15 m<=z<22 m: N: 24 bias: -1.7404224936167374 RMSE: 3.4188357884580998 WSS: 0.5908285326714213 z>=22 m: N: 228 bias: -3.056236578958078 RMSE: 3.4854615536997806 WSS: 0.7461024182826334 all: N: 328 bias: -2.897823008040824 RMSE: 4.0975012773676465 WSS: 0.8762318844327222
fig, ax = plt.subplots(figsize = (8,8))
ps=et.varvarPlot(ax,data,'N','mod_nitrate','Z',(15,22),'z','m',('mediumseagreen','darkturquoise','navy'))
ax.legend(handles=ps)
ax.set_xlabel('Obs')
ax.set_ylabel('Model')
ax.set_title('NO$_3$ ($\mu$M)')
<matplotlib.text.Text at 0x7f194a8d57b8>
fig, ax = plt.subplots(1,4,figsize = (24,6))
yy=2015
for axi in ax:
axi.plot(np.arange(0,30),np.arange(0,30),'k-')
ps=et.varvarPlot(ax[0],data.loc[(data.Z<15)&(data.dtUTC<=dt.datetime(yy,4,1)),:],'N','mod_nitrate',cols=('crimson','darkturquoise','navy'))
ax[0].set_title('Feb-Mar')
ii1=(data.Z < 15)&(data.dtUTC<=dt.datetime(yy,5,1))&(data.dtUTC>dt.datetime(yy,4,1))
ps=et.varvarPlot(ax[1],data.loc[ii1,:],'N','mod_nitrate',cols=('crimson','darkturquoise','navy'))
ax[1].set_title('April')
ii2=(data.Z < 15)&(data.dtUTC<=dt.datetime(yy,9,1))&(data.dtUTC>dt.datetime(yy,5,1))
ps=et.varvarPlot(ax[2],data.loc[ii2,:],'N','mod_nitrate',cols=('crimson','darkturquoise','navy'))
ax[2].set_title('May-Aug')
ii3=(data.Z < 15)&(data.dtUTC<=dt.datetime(yy,12,1))&(data.dtUTC>dt.datetime(yy,9,1))
ps=et.varvarPlot(ax[3],data.loc[ii3,:],'N','mod_nitrate',cols=('crimson','darkturquoise','navy'))
ax[3].set_title('Sep-Nov')
print('Nitrate, z<15')
print('Feb-Mar:')
et.printstats(data.loc[(data.Z<15)&(data.dtUTC<=dt.datetime(yy,4,1)),:],'N','mod_nitrate')
print('April:')
et.printstats(data.loc[ii1,:],'N','mod_nitrate')
print('May-Jun:')
et.printstats(data.loc[ii2,:],'N','mod_nitrate')
print('Sep-Oct:')
et.printstats(data.loc[ii3,:],'N','mod_nitrate')
fig,ax=plt.subplots(1,1,figsize=(24,1))
plt.plot(data.dtUTC,np.ones(np.shape(data.dtUTC)),'k.')
Nitrate, z<15 Feb-Mar: N: 8 bias: -1.689829902648924 RMSE: 4.030407130591838 WSS: 0.5983486896736766 April: N: 67 bias: -2.8231060936379784 RMSE: 5.784050320202453 WSS: 0.7301890764029948 May-Jun: N: 1 bias: -9.22711929321289 RMSE: 9.22711929321289 WSS: 0.0 Sep-Oct: N: 0 bias: nan RMSE: nan WSS: nan
/home/eolson/anaconda3/envs/python36/lib/python3.6/site-packages/numpy/core/fromnumeric.py:2957: RuntimeWarning: Mean of empty slice. out=out, **kwargs) /home/eolson/anaconda3/envs/python36/lib/python3.6/site-packages/numpy/core/_methods.py:80: RuntimeWarning: invalid value encountered in double_scalars ret = ret.dtype.type(ret / rcount) /data/eolson/results/MEOPAR/tools/SalishSeaTools/salishsea_tools/evaltools.py:917: RuntimeWarning: invalid value encountered in double_scalars RMSE=np.sqrt(np.sum((mod-obs)**2)/N) /data/eolson/results/MEOPAR/tools/SalishSeaTools/salishsea_tools/evaltools.py:918: RuntimeWarning: invalid value encountered in double_scalars WSS=1.0-np.sum((mod-obs)**2)/np.sum((np.abs(mod-obsmean)+np.abs(obs-obsmean))**2)
[<matplotlib.lines.Line2D at 0x7f194a7d1160>]
fig, ax = plt.subplots(figsize = (8,8))
viz_tools.set_aspect(ax, coords = 'map')
ax.plot(data['Lon'], data['Lat'], 'ro',label='data')
dJDF=data.loc[(data.Lon<-123.6)&(data.Lat<48.6)]
ax.plot(dJDF['Lon'],dJDF['Lat'],'b.',label='JDF')
dSJGI=data.loc[(data.Lon>=-123.6)&(data.Lat<48.9)]
ax.plot(dSJGI['Lon'],dSJGI['Lat'],'c.',label='SJGI')
dSOG=data.loc[(data.Lat>=48.9)&(data.Lon>-124.0)]
ax.plot(dSOG['Lon'],dSOG['Lat'],'y.',label='SOG')
dNSOG=data.loc[(data.Lat>=48.9)&(data.Lon<=-124.0)]
ax.plot(dNSOG['Lon'],dNSOG['Lat'],'m.',label='NSOG')
grid = nc.Dataset('/data/vdo/MEOPAR/NEMO-forcing/grid/bathymetry_201702.nc')
viz_tools.plot_coastline(ax, grid, coords = 'map')
ax.set_ylim(48, 50.5)
ax.legend()
ax.set_xlim(-125.7, -122.5);
dNSOGN=data.loc[(data.Lat>=49.7)&(data.Lon<=-124.0)]
dNSOGS=data.loc[(data.Lat<49.7)&(data.Lat>=49.1)&(data.Lon<=-124.0)]
dNSOGW=data.loc[(data.Lat>=49.1)&(data.Lon<=-124.5)]
dNSOGE=data.loc[(data.Lat>=49.1)&(data.Lon>-124.5)&(data.Lon<=-124.0)]
dBaynes=data.loc[(data.Lat>=49.35)&(data.Lat<49.7)&(data.Lon<-124.65)&(data.Lon>-125.0)]
ax.plot(dNSOGE['Lon'],dNSOGE['Lat'],'go',ms=12,alpha=.03,label='NSOGE')
ax.plot(dNSOGN['Lon'],dNSOGN['Lat'],'kx',ms=8,label='NSOGE')
ax.plot(dBaynes['Lon'],dBaynes['Lat'],'k+',ms=8,label='Baynes')
[<matplotlib.lines.Line2D at 0x7f194b3f5908>]
fig, ax = plt.subplots(figsize = (8,8))
ps1=et.varvarPlot(ax,dJDF,'N','mod_nitrate',cols=('b','darkturquoise','navy'),lname='SJDF')
ps2=et.varvarPlot(ax,dSJGI,'N','mod_nitrate',cols=('c','darkturquoise','navy'),lname='SJGI')
ps3=et.varvarPlot(ax,dSOG,'N','mod_nitrate',cols=('y','darkturquoise','navy'),lname='SOG')
ps4=et.varvarPlot(ax,dNSOG,'N','mod_nitrate',cols=('m','darkturquoise','navy'),lname='NSOGF')
ax.legend(handles=[ps1[0][0],ps2[0][0],ps3[0][0],ps4[0][0]])
ax.set_xlabel('Obs')
ax.set_ylabel('Model')
ax.set_title('NO$_3$ ($\mu$M)')
ax.set_xlim(0,35)
ax.set_ylim(0,35)
(0, 35)
fig, ax = plt.subplots(1,2,figsize = (17,8))
cols=('crimson','red','orangered','darkorange','gold','chartreuse','green','lightseagreen','cyan','darkturquoise','royalblue',
'lightskyblue','blue','darkblue','mediumslateblue','blueviolet','darkmagenta','fuchsia','deeppink','pink')
ii0=start_date
for ii in range(0,int((end_date-start_date).days/30)):
iii=(data.dtUTC>=(start_date+dt.timedelta(days=ii*30)))&(data.dtUTC<(start_date+dt.timedelta(days=(ii+1)*30)))
ax[0].plot(data.loc[iii,['mod_nitrate']].values-data.loc[iii,['N']].values, data.loc[iii,['Z']].values,
'.', color = cols[ii],label=str(ii))
ax[1].plot(data.loc[iii,['mod_silicon']].values-data.loc[iii,['Si']].values, data.loc[iii,['Z']].values,
'.', color = cols[ii],label=str(ii))
for axi in (ax[0],ax[1]):
axi.legend(loc=4)
axi.set_ylim(400,0)
axi.set_ylabel('depth (m)')
ax[0].set_xlabel('model - obs N')
ax[0].set_xlim(-20,20)
ax[1].set_xlabel('model - obs Si')
ax[1].set_xlim(-40,20)
(-40, 20)
print('Nitrate')
print('z<15 m:')
et.printstats(data.loc[data.Z<15,:],'Si','mod_silicon')
print('15 m<=z<22 m:')
et.printstats(data.loc[(data.Z>=15)&(data.Z<22),:],'Si','mod_silicon')
print('z>=22 m:')
et.printstats(data.loc[data.Z>=22,:],'Si','mod_silicon')
print('all:')
et.printstats(data,'Si','mod_silicon')
print('obs Si < 50:')
et.printstats(data.loc[data.Si<50,:],'Si','mod_silicon')
Nitrate z<15 m: N: 76 bias: -0.17663343479758709 RMSE: 9.205546465679362 WSS: 0.7889228481979149 15 m<=z<22 m: N: 24 bias: 1.198184906641643 RMSE: 6.3276894086130415 WSS: 0.7120188792564173 z>=22 m: N: 228 bias: -3.526008158232031 RMSE: 5.763415481133185 WSS: 0.9018266437156519 all: N: 328 bias: -2.4042608639089096 RMSE: 6.756843102962755 WSS: 0.9125335804016701 obs Si < 50: N: 240 bias: -0.669873097896577 RMSE: 6.24813919933905 WSS: 0.8561078326156601
fig, ax = plt.subplots(figsize = (8,8))
ps=et.varvarPlot(ax,data,'Si','mod_silicon','Z',(15,22),'z','m',('mediumseagreen','darkturquoise','navy'))
ax.legend(handles=ps)
ax.set_xlabel('Obs')
ax.set_ylabel('Model')
ax.set_title('dSi ($\mu$M)')
ax.set_xlim(0,80)
ax.set_ylim(0,80)
(0, 80)
obsvar='Si'; modvar='mod_silicon'
fig, ax = plt.subplots(1,4,figsize = (24,6))
for axi in ax:
axi.plot(np.arange(0,70),np.arange(0,70),'k-')
ps=et.varvarPlot(ax[0],data.loc[(data.Z<15)&(data.dtUTC<=dt.datetime(yy,4,1)),:],obsvar,modvar,cols=('crimson','darkturquoise','navy'))
ax[0].set_title('Feb-Mar')
ii1=(data.Z < 15)&(data.dtUTC<=dt.datetime(yy,5,1))&(data.dtUTC>dt.datetime(2017,4,1))
ps=et.varvarPlot(ax[1],data.loc[ii1,:],obsvar,modvar,cols=('crimson','darkturquoise','navy'))
ax[1].set_title('April')
ii2=(data.Z < 15)&(data.dtUTC<=dt.datetime(yy,9,1))&(data.dtUTC>dt.datetime(2017,5,1))
ps=et.varvarPlot(ax[2],data.loc[ii2,:],obsvar,modvar,cols=('crimson','darkturquoise','navy'))
ax[2].set_title('May-Jun')
ii3=(data.Z < 15)&(data.dtUTC<=dt.datetime(yy,12,1))&(data.dtUTC>dt.datetime(2017,9,1))
ps=et.varvarPlot(ax[3],data.loc[ii3,:],obsvar,modvar,cols=('crimson','darkturquoise','navy'))
ax[3].set_title('Sep-Oct')
ii4=(data.Z < 15)&(data.dtUTC<=dt.datetime(yy,4,1))&(data.dtUTC>dt.datetime(yy,2,1))
ps=et.varvarPlot(ax[0],data.loc[ii4,:],obsvar,modvar,cols=('darkturquoise','navy'))
ii5=(data.Z < 15)&(data.dtUTC<=dt.datetime(yy,5,1))&(data.dtUTC>dt.datetime(yy,4,1))
ps=et.varvarPlot(ax[1],data.loc[ii5,:],obsvar,modvar,cols=('darkturquoise','navy'))
print('Silicate, z<15')
print('Feb-Mar:')
et.printstats(data.loc[(data.Z<15)&(data.dtUTC<=dt.datetime(yy,4,1)),:],obsvar,modvar)
print('April:')
et.printstats(data.loc[ii1,:],obsvar,modvar)
print('May-Jun:')
et.printstats(data.loc[ii2,:],obsvar,modvar)
print('Sep-Oct:')
et.printstats(data.loc[ii3,:],obsvar,modvar)
fig,ax=plt.subplots(1,1,figsize=(24,1))
plt.plot(data.dtUTC,np.ones(np.shape(data.dtUTC)),'k.')
Silicate, z<15 Feb-Mar: N: 8 bias: -3.499762077331546 RMSE: 5.873158827025997 WSS: 0.7429703895563348 April: N: 0 bias: nan RMSE: nan WSS: nan May-Jun: N: 0 bias: nan RMSE: nan WSS: nan Sep-Oct: N: 0 bias: nan RMSE: nan WSS: nan
/home/eolson/anaconda3/envs/python36/lib/python3.6/site-packages/numpy/core/fromnumeric.py:2957: RuntimeWarning: Mean of empty slice. out=out, **kwargs) /home/eolson/anaconda3/envs/python36/lib/python3.6/site-packages/numpy/core/_methods.py:80: RuntimeWarning: invalid value encountered in double_scalars ret = ret.dtype.type(ret / rcount) /data/eolson/results/MEOPAR/tools/SalishSeaTools/salishsea_tools/evaltools.py:917: RuntimeWarning: invalid value encountered in double_scalars RMSE=np.sqrt(np.sum((mod-obs)**2)/N) /data/eolson/results/MEOPAR/tools/SalishSeaTools/salishsea_tools/evaltools.py:918: RuntimeWarning: invalid value encountered in double_scalars WSS=1.0-np.sum((mod-obs)**2)/np.sum((np.abs(mod-obsmean)+np.abs(obs-obsmean))**2)
[<matplotlib.lines.Line2D at 0x7f194a9e7eb8>]
fig, ax = plt.subplots(figsize = (8,8))
ps1=et.varvarPlot(ax,dJDF,obsvar,modvar,cols=('b','darkturquoise','navy'),lname='SJDF')
ps2=et.varvarPlot(ax,dSJGI,obsvar,modvar,cols=('c','darkturquoise','navy'),lname='SJGI')
ps3=et.varvarPlot(ax,dSOG,obsvar,modvar,cols=('y','darkturquoise','navy'),lname='SOG')
ps4=et.varvarPlot(ax,dNSOG,obsvar,modvar,cols=('m','darkturquoise','navy'),lname='NSOG')
ax.legend(handles=[ps1[0][0],ps2[0][0],ps3[0][0],ps4[0][0]])
ax.set_xlabel('Obs')
ax.set_ylabel('Model')
ax.set_title('Si ($\mu$M)')
ax.set_xlim(0,80)
ax.set_ylim(0,80)
(0, 80)
fig,ax=plt.subplots(1,2,figsize=(16,7))
p1=ax[0].plot(dJDF['N'],dJDF['Si'],'b.',label='SJDF')
p2=ax[0].plot(dSJGI['N'],dSJGI['Si'],'c.',label='SJGI')
p3=ax[0].plot(dSOG['N'],dSOG['Si'],'y.',label='SOG')
p4=ax[0].plot(dNSOG['N'],dNSOG['Si'],'m.',label='NSOG')
ax[0].set_title('Observed')
ax[0].set_xlabel('N')
ax[0].set_ylabel('Si')
ax[0].set_xlim(0,40)
ax[0].set_ylim(0,85)
ax[0].legend()
p5=ax[1].plot(dJDF['mod_nitrate'],dJDF['mod_silicon'],'b.',label='SJDF')
p6=ax[1].plot(dSJGI['mod_nitrate'],dSJGI['mod_silicon'],'c.',label='SJGI')
p7=ax[1].plot(dSOG['mod_nitrate'],dSOG['mod_silicon'],'y.',label='SOG')
p8=ax[1].plot(dNSOG['mod_nitrate'],dNSOG['mod_silicon'],'m.',label='NSOG')
ax[1].set_title('Model')
ax[1].set_xlabel('N')
ax[1].set_ylabel('Si')
ax[1].set_xlim(0,40)
ax[1].set_ylim(0,85)
ax[1].legend()
ax[0].plot(np.arange(0,35),1.3*np.arange(0,35),'k-')
ax[1].plot(np.arange(0,35),1.3*np.arange(0,35),'k-')
[<matplotlib.lines.Line2D at 0x7f194a93f7f0>]
fig,ax=plt.subplots(1,2,figsize=(16,7))
p1=ax[0].plot(dJDF['N'],dJDF['Si'],'b.',label='SJDF')
p2=ax[0].plot(dSJGI['N'],dSJGI['Si'],'c.',label='SJGI')
p3=ax[0].plot(dSOG['N'],dSOG['Si'],'y.',label='SOG')
p4=ax[0].plot(dNSOGN['N'],dNSOGN['Si'],'r.',label='NSOG_N')
p4=ax[0].plot(dNSOGS['N'],dNSOGS['Si'],'g.',label='NSOG_S')
p4=ax[0].plot(dBaynes['N'],dBaynes['Si'],'.',color='purple',label='Baynes')
ax[0].set_title('Observed')
ax[0].set_xlabel('N')
ax[0].set_ylabel('Si')
ax[0].set_xlim(0,40)
ax[0].set_ylim(0,85)
ax[0].legend()
p5=ax[1].plot(dJDF['mod_nitrate'],dJDF['mod_silicon'],'b.',label='SJDF')
p6=ax[1].plot(dSJGI['mod_nitrate'],dSJGI['mod_silicon'],'c.',label='SJGI')
p7=ax[1].plot(dSOG['mod_nitrate'],dSOG['mod_silicon'],'y.',label='SOG')
p8=ax[1].plot(dNSOGN['mod_nitrate'],dNSOGN['mod_silicon'],'r.',label='NSOG_N')
p8=ax[1].plot(dNSOGS['mod_nitrate'],dNSOGS['mod_silicon'],'g.',label='NSOG_S')
p8=ax[1].plot(dBaynes['mod_nitrate'],dBaynes['mod_silicon'],'.',color='purple',label='Baynes')
ax[1].set_title('Model')
ax[1].set_xlabel('N')
ax[1].set_ylabel('Si')
ax[1].set_xlim(0,40)
ax[1].set_ylim(0,85)
ax[1].legend()
ax[0].plot(np.arange(0,35),1.3*np.arange(0,35),'k-')
ax[1].plot(np.arange(0,35),1.3*np.arange(0,35),'k-')
[<matplotlib.lines.Line2D at 0x7f194a7a2630>]
fig,ax=plt.subplots(1,2,figsize=(16,7))
p1=ax[0].plot(dJDF['N'],dJDF['Si'],'b.',label='SJDF')
p2=ax[0].plot(dSJGI['N'],dSJGI['Si'],'c.',label='SJGI')
p3=ax[0].plot(dSOG['N'],dSOG['Si'],'y.',label='SOG')
p4=ax[0].plot(dNSOGE['N'],dNSOGE['Si'],'r.',label='NSOG_E')
p4=ax[0].plot(dNSOGW['N'],dNSOGW['Si'],'g.',label='NSOG_W')
ax[0].set_title('Observed')
ax[0].set_xlabel('N')
ax[0].set_ylabel('Si')
ax[0].set_xlim(0,40)
ax[0].set_ylim(0,85)
ax[0].legend()
p5=ax[1].plot(dJDF['mod_nitrate'],dJDF['mod_silicon'],'b.',label='SJDF')
p6=ax[1].plot(dSJGI['mod_nitrate'],dSJGI['mod_silicon'],'c.',label='SJGI')
p7=ax[1].plot(dSOG['mod_nitrate'],dSOG['mod_silicon'],'y.',label='SOG')
p8=ax[1].plot(dNSOGE['mod_nitrate'],dNSOGE['mod_silicon'],'r.',label='NSOG_E')
p8=ax[1].plot(dNSOGW['mod_nitrate'],dNSOGW['mod_silicon'],'g.',label='NSOG_W')
ax[1].set_title('Model')
ax[1].set_xlabel('N')
ax[1].set_ylabel('Si')
ax[1].set_xlim(0,40)
ax[1].set_ylim(0,85)
ax[1].legend()
ax[0].plot(np.arange(0,35),1.3*np.arange(0,35),'k-')
ax[1].plot(np.arange(0,35),1.3*np.arange(0,35),'k-')
[<matplotlib.lines.Line2D at 0x7f194b42add8>]
data.loc[data.Si>65,['Month','Lat','Lon','Z','Si']]
Month | Lat | Lon | Z | Si | |
---|---|---|---|---|---|
211 | 4.0 | 49.029667 | -123.436500 | 248.620295 | 67.85 |
212 | 4.0 | 49.029667 | -123.436500 | 298.724014 | 73.00 |
213 | 4.0 | 49.029667 | -123.436500 | 312.485544 | 74.76 |
227 | 4.0 | 49.163333 | -123.551500 | 249.310468 | 68.35 |
228 | 4.0 | 49.163333 | -123.551500 | 297.928316 | 69.99 |
229 | 4.0 | 49.163333 | -123.551500 | 348.217366 | 76.12 |
246 | 4.0 | 49.318833 | -123.799667 | 299.211146 | 66.73 |
247 | 4.0 | 49.318833 | -123.799667 | 346.826687 | 70.58 |
261 | 4.0 | 49.401833 | -124.156000 | 248.710873 | 65.86 |
262 | 4.0 | 49.401833 | -124.156000 | 269.604692 | 70.17 |
276 | 4.0 | 49.443333 | -124.337167 | 248.808959 | 68.77 |
277 | 4.0 | 49.443333 | -124.337167 | 298.712730 | 70.83 |
278 | 4.0 | 49.443333 | -124.337167 | 314.651658 | 77.02 |
311 | 4.0 | 49.591667 | -124.637833 | 162.832911 | 70.41 |
324 | 4.0 | 49.726500 | -124.680333 | 198.887917 | 65.16 |
325 | 4.0 | 49.726500 | -124.680333 | 248.703513 | 69.50 |
326 | 4.0 | 49.726500 | -124.680333 | 298.012014 | 73.43 |
327 | 4.0 | 49.726500 | -124.680333 | 348.298456 | 80.74 |
341 | 4.0 | 49.882500 | -124.993833 | 249.096075 | 75.41 |
342 | 4.0 | 49.882500 | -124.993833 | 309.392440 | 80.29 |
352 | 4.0 | 49.962500 | -125.147167 | 124.882272 | 66.16 |
353 | 4.0 | 49.962500 | -125.147167 | 152.920744 | 68.27 |
data['l10_obsChl']=np.log10(data['Chlorophyll_Extracted']+0.01)
data['l10_modChl']=np.log10(2*(data['mod_diatoms']+data['mod_ciliates']+data['mod_flagellates'])+0.01)
data['mod_Chl']=2*(data['mod_diatoms']+data['mod_ciliates']+data['mod_flagellates'])
print('log10[Chl+0.01]')
print('z<15 m:')
et.printstats(data.loc[data.Z<15,:],'l10_obsChl','l10_modChl')
print('z>=15 m:')
et.printstats(data.loc[data.Z>=15,:],'l10_obsChl','l10_modChl')
print('all:')
et.printstats(data,'l10_obsChl','l10_modChl')
print('\n')
print('Chl')
print('z<15 m:')
et.printstats(data.loc[data.Z<15,:],'Chlorophyll_Extracted','mod_Chl')
print('z>=15 m:')
et.printstats(data.loc[data.Z>=15,:],'Chlorophyll_Extracted','mod_Chl')
print('all:')
et.printstats(data,'Chlorophyll_Extracted','mod_Chl')
log10[Chl+0.01] z<15 m: N: 50 bias: 0.06874266587202998 RMSE: 0.5010812521292989 WSS: 0.5398107217473685 z>=15 m: N: 22 bias: -0.0335685587064455 RMSE: 0.21336765567331373 WSS: 0.739622435132758 all: N: 72 bias: 0.03748090280638469 RMSE: 0.4339048747597358 WSS: 0.7106096863758413 Chl z<15 m: N: 50 bias: 0.05790611280202862 RMSE: 4.785705585972614 WSS: 0.5556877162076209 z>=15 m: N: 22 bias: -0.1307793293080547 RMSE: 0.6526755926285418 WSS: 0.6185038403925129 all: N: 72 bias: 0.00025222771283628376 RMSE: 4.004373611064325 WSS: 0.6227692495119259
fig, ax = plt.subplots(1,2,figsize = (14,6))
ax[0].plot(np.arange(-.6,1.6,.1),np.arange(-.6,1.6,.1),'k-')
ps=et.varvarPlot(ax[0],data,'l10_obsChl','l10_modChl','Z',(5,10,15,20,25),'z','m',('crimson','darkorange','lime','mediumseagreen','darkturquoise','navy'))
ax[0].legend(handles=ps)
ax[0].set_xlabel('Obs')
ax[0].set_ylabel('Model')
ax[0].set_title('log10[Chl ($\mu$g/L)+0.01]')
ax[1].plot(np.arange(0,35),np.arange(0,35),'k-')
ps=et.varvarPlot(ax[1],data,'Chlorophyll_Extracted','mod_Chl','Z',(5,10,15,20,25),'z','m',('crimson','darkorange','lime','mediumseagreen','darkturquoise','navy'))
ax[1].legend(handles=ps)
ax[1].set_xlabel('Obs')
ax[1].set_ylabel('Model')
ax[1].set_title('Chl ($\mu$g/L)')
<matplotlib.text.Text at 0x7f194b7382b0>
PATH= '/data/eolson/MEOPAR/SS36runs/CedarRuns/ISink/'
ftest=nc.Dataset(PATH+'SalishSea_1h_20150501_20150530_ptrc_T_20150521-20150530.nc')
fspin=nc.Dataset('/results/SalishSea/spinup.201905/21may15/SalishSea_1h_20150521_20150521_ptrc_T.nc')
fig,ax=plt.subplots(1,2,figsize=(10,8))
ax[0].pcolormesh(fspin.variables['diatoms'][0,0,:,:])
ax[1].pcolormesh(ftest.variables['diatoms'][0,0,:,:])
<matplotlib.collections.QuadMesh at 0x7f194b02a710>
test=data.loc[(data['Chlorophyll_Extracted']>=0)&(data.Lon<-123.6)&(data.Lat<48.6)]
test.loc[:,['Year','Month','Day','Lat','Lon','Z','Chlorophyll_Extracted','mod_Chl']]
Year | Month | Day | Lat | Lon | Z | Chlorophyll_Extracted | mod_Chl | |
---|---|---|---|---|---|---|---|---|
25 | 2015.0 | 2.0 | 11.0 | 48.300833 | -124.000333 | 6.544340 | 2.57 | 0.960437 |
31 | 2015.0 | 2.0 | 11.0 | 48.300833 | -124.000333 | 30.439317 | 0.42 | 0.546162 |
75 | 2015.0 | 4.0 | 2.0 | 48.499833 | -124.733167 | 1.586497 | 3.43 | 0.494309 |
77 | 2015.0 | 4.0 | 2.0 | 48.499833 | -124.733167 | 11.997578 | 2.52 | 0.411824 |
78 | 2015.0 | 4.0 | 2.0 | 48.499833 | -124.733167 | 21.020086 | 1.06 | 0.712107 |
89 | 2015.0 | 4.0 | 2.0 | 48.469000 | -124.548500 | 1.883969 | 4.69 | 1.830897 |
91 | 2015.0 | 4.0 | 2.0 | 48.469000 | -124.548500 | 11.501857 | 1.19 | 1.190068 |
92 | 2015.0 | 4.0 | 2.0 | 48.469000 | -124.548500 | 20.920999 | 0.67 | 0.595168 |
103 | 2015.0 | 4.0 | 2.0 | 48.308167 | -124.066500 | 1.685682 | 7.15 | 3.278023 |
105 | 2015.0 | 4.0 | 2.0 | 48.308167 | -124.066500 | 11.204568 | 9.42 | 1.825634 |
116 | 2015.0 | 4.0 | 3.0 | 48.260833 | -123.720167 | 1.685690 | 11.13 | 1.291974 |
118 | 2015.0 | 4.0 | 3.0 | 48.260833 | -123.720167 | 11.601229 | 4.99 | 1.020297 |
import cmocean
fig, ax = plt.subplots(figsize = (6,6))
viz_tools.set_aspect(ax, coords = 'map')
m=ax.scatter(test['Lon']+0.2*np.random.rand(len(test['Lon'])), test['Lat']+0.2*np.random.rand(len(test['Lon'])), c=test['mod_Chl']-test['Chlorophyll_Extracted'],vmin=-10,vmax=10,cmap=cmocean.cm.balance)
viz_tools.plot_coastline(ax, grid, coords = 'map')
plt.colorbar(m)
<matplotlib.colorbar.Colorbar at 0x7f1930be4dd8>
test=et.loadDFO()
test2=test.loc[(test['Chlorophyll_Extracted']>=0)&(test.Lon<-123.6)&(test.Lat<48.6)&(test.Month==6)]
test2
Year | Month | Day | Hour | Lat | Lon | Pressure | Depth | Ammonium | Ammonium_units | Chlorophyll_Extracted | Chlorophyll_Extracted_units | N | Si | Silicate_units | AbsSal | ConsT | Z | dtUTC | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
11 | 2008.0 | 6.0 | 20.0 | 11.473056 | 48.470000 | -124.547167 | 2.0 | NaN | NaN | None | 5.30 | mg/m^3 | 21.30 | 37.70 | umol/L | 31.731979 | 9.648685 | 1.983125 | 2008-06-20 11:28:23 |
13 | 2008.0 | 6.0 | 20.0 | 11.473056 | 48.470000 | -124.547167 | 9.9 | NaN | NaN | None | 3.51 | mg/m^3 | 25.00 | 39.90 | umol/L | 31.827200 | 9.083090 | 9.816280 | 2008-06-20 11:28:23 |
14 | 2008.0 | 6.0 | 20.0 | 11.473056 | 48.470000 | -124.547167 | 19.5 | NaN | NaN | None | 1.91 | mg/m^3 | 26.80 | 42.10 | umol/L | 31.946372 | 8.948434 | 19.334645 | 2008-06-20 11:28:23 |
25 | 2008.0 | 6.0 | 20.0 | 13.969167 | 48.501167 | -124.734667 | 2.0 | NaN | NaN | None | 4.37 | mg/m^3 | 21.80 | 37.00 | umol/L | 31.779231 | 9.465428 | 1.983119 | 2008-06-20 13:58:09 |
27 | 2008.0 | 6.0 | 20.0 | 13.969167 | 48.501167 | -124.734667 | 9.7 | NaN | NaN | None | 3.69 | mg/m^3 | 23.30 | 37.30 | umol/L | 31.845634 | 9.169437 | 9.617948 | 2008-06-20 13:58:09 |
28 | 2008.0 | 6.0 | 20.0 | 13.969167 | 48.501167 | -124.734667 | 20.2 | NaN | NaN | None | 0.76 | mg/m^3 | 29.40 | 45.90 | umol/L | 32.482873 | 8.245013 | 20.028618 | 2008-06-20 13:58:09 |
925 | 2009.0 | 6.0 | 21.0 | 2.736389 | 48.260333 | -123.721333 | 2.0 | NaN | NaN | None | 4.97 | mg/m^3 | 20.20 | 34.60 | umol/L | 31.818120 | 9.778811 | 1.983163 | 2009-06-21 02:44:11 |
927 | 2009.0 | 6.0 | 21.0 | 2.736389 | 48.260333 | -123.721333 | 10.3 | NaN | NaN | None | 5.27 | mg/m^3 | 20.60 | 34.80 | umol/L | 31.831216 | 9.726881 | 10.213083 | 2009-06-21 02:44:11 |
928 | 2009.0 | 6.0 | 21.0 | 2.736389 | 48.260333 | -123.721333 | 20.6 | NaN | NaN | None | 4.97 | mg/m^3 | 22.10 | 36.50 | umol/L | 31.990000 | 9.281489 | 20.425656 | 2009-06-21 02:44:11 |
937 | 2009.0 | 6.0 | 21.0 | 5.835833 | 48.309833 | -124.067667 | 1.9 | NaN | NaN | None | 17.64 | mg/m^3 | 14.80 | 25.80 | umol/L | 31.855916 | 10.077544 | 1.883997 | 2009-06-21 05:50:09 |
939 | 2009.0 | 6.0 | 21.0 | 5.835833 | 48.309833 | -124.067667 | 10.1 | NaN | NaN | None | 10.68 | mg/m^3 | 17.20 | 29.40 | umol/L | 31.855544 | 10.077846 | 10.014730 | 2009-06-21 05:50:09 |
940 | 2009.0 | 6.0 | 21.0 | 5.835833 | 48.309833 | -124.067667 | 20.5 | NaN | NaN | None | 13.34 | mg/m^3 | 17.30 | 28.50 | umol/L | 31.930037 | 9.960018 | 20.326415 | 2009-06-21 05:50:09 |
950 | 2009.0 | 6.0 | 21.0 | 9.702500 | 48.470167 | -124.548500 | 1.7 | NaN | NaN | None | 12.89 | mg/m^3 | 12.80 | 22.70 | umol/L | 31.797204 | 10.447325 | 1.685657 | 2009-06-21 09:42:09 |
952 | 2009.0 | 6.0 | 21.0 | 9.702500 | 48.470167 | -124.548500 | 9.7 | NaN | NaN | None | 20.82 | mg/m^3 | 13.40 | 22.00 | umol/L | 32.227928 | 10.043882 | 9.617975 | 2009-06-21 09:42:09 |
953 | 2009.0 | 6.0 | 21.0 | 9.702500 | 48.470167 | -124.548500 | 20.0 | NaN | NaN | None | 0.94 | mg/m^3 | 26.30 | 42.30 | umol/L | 32.455806 | 8.610200 | 19.830381 | 2009-06-21 09:42:09 |
964 | 2009.0 | 6.0 | 21.0 | 12.248611 | 48.500667 | -124.734333 | 1.8 | NaN | NaN | None | 14.93 | mg/m^3 | 8.30 | 14.70 | umol/L | 32.114649 | 10.288480 | 1.784808 | 2009-06-21 12:14:55 |
966 | 2009.0 | 6.0 | 21.0 | 12.248611 | 48.500667 | -124.734333 | 10.9 | NaN | NaN | None | 4.22 | mg/m^3 | 23.40 | 37.00 | umol/L | 32.238194 | 9.025464 | 10.807766 | 2009-06-21 12:14:55 |
967 | 2009.0 | 6.0 | 21.0 | 12.248611 | 48.500667 | -124.734333 | 20.1 | NaN | NaN | None | 7.72 | mg/m^3 | 16.00 | 24.50 | umol/L | 32.655002 | 9.332093 | 19.929473 | 2009-06-21 12:14:55 |
1365 | 2010.0 | 6.0 | 23.0 | 17.985556 | 48.501167 | -124.733833 | 2.1 | NaN | NaN | None | 1.21 | mg/m^3 | 21.90 | 36.20 | umol/L | 31.192511 | 10.693282 | 2.082275 | 2010-06-23 17:59:08 |
1367 | 2010.0 | 6.0 | 23.0 | 17.985556 | 48.501167 | -124.733833 | 10.7 | NaN | NaN | None | 1.97 | mg/m^3 | 22.20 | 36.00 | umol/L | 31.734785 | 10.334393 | 10.609463 | 2010-06-23 17:59:08 |
1368 | 2010.0 | 6.0 | 23.0 | 17.985556 | 48.501167 | -124.733833 | 20.7 | NaN | NaN | None | 1.67 | mg/m^3 | 22.90 | 36.60 | umol/L | 31.796463 | 9.924836 | 20.524351 | 2010-06-23 17:59:08 |
1381 | 2010.0 | 6.0 | 23.0 | 21.547500 | 48.469167 | -124.543833 | 1.8 | NaN | NaN | None | 2.70 | mg/m^3 | 19.70 | 34.10 | umol/L | 31.625980 | 10.839667 | 1.784813 | 2010-06-23 21:32:51 |
1383 | 2010.0 | 6.0 | 23.0 | 21.547500 | 48.469167 | -124.543833 | 10.8 | NaN | NaN | None | 2.35 | mg/m^3 | 21.30 | 35.20 | umol/L | 31.735047 | 10.256759 | 10.708646 | 2010-06-23 21:32:51 |
1384 | 2010.0 | 6.0 | 23.0 | 21.547500 | 48.469167 | -124.543833 | 21.1 | NaN | NaN | None | 0.79 | mg/m^3 | 24.60 | 38.20 | umol/L | 31.941687 | 9.245623 | 20.920998 | 2010-06-23 21:32:51 |
1395 | 2010.0 | 6.0 | 24.0 | 3.106111 | 48.309333 | -124.065667 | 1.8 | NaN | NaN | None | 1.05 | mg/m^3 | 21.60 | 35.90 | umol/L | 30.990361 | 10.610546 | 1.784839 | 2010-06-24 03:06:22 |
1396 | 2010.0 | 6.0 | 24.0 | 3.106111 | 48.309333 | -124.065667 | 5.9 | NaN | NaN | None | 1.13 | mg/m^3 | 21.60 | 36.10 | umol/L | 30.974905 | 10.626953 | 5.850249 | 2010-06-24 03:06:22 |
1397 | 2010.0 | 6.0 | 24.0 | 3.106111 | 48.309333 | -124.065667 | 10.9 | NaN | NaN | None | 1.09 | mg/m^3 | 22.20 | 36.40 | umol/L | 31.032588 | 10.504902 | 10.807956 | 2010-06-24 03:06:22 |
1398 | 2010.0 | 6.0 | 24.0 | 3.106111 | 48.309333 | -124.065667 | 20.4 | NaN | NaN | None | 0.72 | mg/m^3 | 22.50 | 35.90 | umol/L | 31.393976 | 9.616825 | 20.227267 | 2010-06-24 03:06:22 |
1408 | 2010.0 | 6.0 | 24.0 | 7.188333 | 48.259500 | -123.717000 | 1.7 | NaN | NaN | None | 0.80 | mg/m^3 | 21.10 | 35.80 | umol/L | 30.778134 | 10.567536 | 1.685690 | 2010-06-24 07:11:18 |
1410 | 2010.0 | 6.0 | 24.0 | 7.188333 | 48.259500 | -123.717000 | 10.9 | NaN | NaN | None | 0.83 | mg/m^3 | 21.80 | 36.00 | umol/L | 30.830208 | 10.494354 | 10.808005 | 2010-06-24 07:11:18 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
14308 | 2008.0 | 6.0 | 20.0 | 5.140833 | 48.260333 | -123.721500 | 20.1 | NaN | NaN | None | 1.61 | mg/m^3 | 27.40 | 43.60 | umol/L | 31.988824 | 8.653933 | 19.929912 | 2008-06-20 05:08:27 |
14317 | 2008.0 | 6.0 | 20.0 | 7.683333 | 48.310500 | -124.068167 | 2.0 | NaN | NaN | None | 3.47 | mg/m^3 | 22.30 | 39.30 | umol/L | 31.309083 | 9.425148 | 1.983154 | 2008-06-20 07:41:00 |
14319 | 2008.0 | 6.0 | 20.0 | 7.683333 | 48.310500 | -124.068167 | 9.9 | NaN | NaN | None | 4.06 | mg/m^3 | 26.20 | 42.60 | umol/L | 31.743512 | 8.860797 | 9.816423 | 2008-06-20 07:41:00 |
14320 | 2008.0 | 6.0 | 20.0 | 7.683333 | 48.310500 | -124.068167 | 19.7 | NaN | NaN | None | 3.50 | mg/m^3 | 26.60 | 42.80 | umol/L | 31.809192 | 8.801711 | 19.533226 | 2008-06-20 07:41:00 |
44511 | 2016.0 | 6.0 | 6.0 | 9.816944 | 48.299333 | -123.998833 | 3.9 | NaN | NaN | None | 1.27 | mg/m^3 | 22.49 | 37.04 | umol/L | 31.670660 | 10.022609 | 3.867136 | 2016-06-06 09:49:01 |
44524 | 2016.0 | 6.0 | 16.0 | 14.563333 | 48.500500 | -124.734500 | 3.6 | NaN | NaN | None | 2.65 | mg/m^3 | 18.35 | 32.96 | umol/L | 30.709232 | 11.719243 | 3.569601 | 2016-06-16 14:33:48 |
44526 | 2016.0 | 6.0 | 16.0 | 14.563333 | 48.500500 | -124.734500 | 10.1 | NaN | NaN | None | 1.90 | mg/m^3 | 18.44 | 32.84 | umol/L | 30.708073 | 11.512623 | 10.014555 | 2016-06-16 14:33:48 |
44527 | 2016.0 | 6.0 | 16.0 | 14.563333 | 48.500500 | -124.734500 | 19.6 | NaN | NaN | None | 0.81 | mg/m^3 | 21.04 | 35.14 | umol/L | 31.396285 | 10.166112 | 19.433738 | 2016-06-16 14:33:48 |
44538 | 2016.0 | 6.0 | 16.0 | 17.624444 | 48.470500 | -124.547667 | 1.9 | NaN | NaN | None | 2.11 | mg/m^3 | 19.27 | 34.28 | umol/L | 31.017351 | 11.385460 | 1.883969 | 2016-06-16 17:37:28 |
44541 | 2016.0 | 6.0 | 16.0 | 17.624444 | 48.470500 | -124.547667 | 10.0 | NaN | NaN | None | 0.79 | mg/m^3 | 22.84 | 37.42 | umol/L | 31.641506 | 9.680428 | 9.915431 | 2016-06-16 17:37:28 |
44542 | 2016.0 | 6.0 | 16.0 | 17.624444 | 48.470500 | -124.547667 | 20.1 | NaN | NaN | None | 0.60 | mg/m^3 | 23.86 | 38.61 | umol/L | 31.809808 | 9.492293 | 19.929528 | 2016-06-16 17:37:28 |
44554 | 2016.0 | 6.0 | 16.0 | 22.022500 | 48.309667 | -124.066833 | 1.6 | NaN | NaN | None | 1.90 | mg/m^3 | 17.74 | 30.80 | umol/L | 30.605620 | 11.778187 | 1.586525 | 2016-06-16 22:01:21 |
44556 | 2016.0 | 6.0 | 16.0 | 22.022500 | 48.309667 | -124.066833 | 9.9 | NaN | NaN | None | 1.44 | mg/m^3 | 18.90 | 32.78 | umol/L | 30.697195 | 10.994266 | 9.816424 | 2016-06-16 22:01:21 |
44557 | 2016.0 | 6.0 | 16.0 | 22.022500 | 48.309667 | -124.066833 | 20.2 | NaN | NaN | None | 0.96 | mg/m^3 | 20.82 | 34.94 | umol/L | 30.989751 | 10.216089 | 20.028970 | 2016-06-16 22:01:21 |
44567 | 2016.0 | 6.0 | 17.0 | 1.200833 | 48.260000 | -123.720333 | 2.7 | NaN | NaN | None | 1.17 | mg/m^3 | 15.95 | 30.01 | umol/L | 30.376460 | 11.775605 | 2.677265 | 2016-06-17 01:12:03 |
44570 | 2016.0 | 6.0 | 17.0 | 1.200833 | 48.260000 | -123.720333 | 10.0 | NaN | NaN | None | 1.15 | mg/m^3 | 17.07 | 30.69 | umol/L | 30.488583 | 10.947426 | 9.915622 | 2016-06-17 01:12:03 |
44571 | 2016.0 | 6.0 | 17.0 | 1.200833 | 48.260000 | -123.720333 | 19.8 | NaN | NaN | None | 1.14 | mg/m^3 | 17.07 | 30.58 | umol/L | 31.216834 | 10.073979 | 19.632465 | 2016-06-17 01:12:03 |
46099 | 2017.0 | 6.0 | 5.0 | 11.983333 | 48.300333 | -124.003167 | 5.1 | 5.0 | NaN | None | 1.40 | mg/m^3 | 19.31 | 32.86 | umol/L | 30.776208 | 10.253985 | 5.000000 | 2017-06-05 11:59:00 |
46877 | 2017.0 | 6.0 | 22.0 | 17.129167 | 48.500000 | -124.734500 | 1.3 | 1.3 | NaN | None | 2.20 | mg/m^3 | 15.08 | 29.00 | umol/L | 30.576887 | 12.066188 | 1.300000 | 2017-06-22 17:07:45 |
46881 | 2017.0 | 6.0 | 22.0 | 17.129167 | 48.500000 | -124.734500 | 9.3 | 9.2 | NaN | None | 2.25 | mg/m^3 | 15.81 | 29.75 | umol/L | 30.765576 | 11.704150 | 9.200000 | 2017-06-22 17:07:45 |
46882 | 2017.0 | 6.0 | 22.0 | 17.129167 | 48.500000 | -124.734500 | 20.0 | 19.8 | NaN | None | 1.23 | mg/m^3 | 20.54 | 34.35 | umol/L | 31.277714 | 10.277012 | 19.800000 | 2017-06-22 17:07:45 |
46893 | 2017.0 | 6.0 | 22.0 | 20.935000 | 48.469500 | -124.546000 | 0.6 | 0.6 | NaN | None | 2.80 | mg/m^3 | 12.56 | 26.56 | umol/L | 30.585129 | 12.390519 | 0.600000 | 2017-06-22 20:56:06 |
46897 | 2017.0 | 6.0 | 22.0 | 20.935000 | 48.469500 | -124.546000 | 10.2 | 10.1 | NaN | None | 1.77 | mg/m^3 | 20.24 | 34.21 | umol/L | 30.611670 | 10.915805 | 10.100000 | 2017-06-22 20:56:06 |
46898 | 2017.0 | 6.0 | 22.0 | 20.935000 | 48.469500 | -124.546000 | 19.7 | 19.5 | NaN | None | 1.18 | mg/m^3 | 21.17 | 34.89 | umol/L | 30.809728 | 10.235778 | 19.500000 | 2017-06-22 20:56:06 |
46910 | 2017.0 | 6.0 | 23.0 | 1.790556 | 48.310667 | -124.067000 | 1.1 | 1.1 | NaN | None | 1.41 | mg/m^3 | 20.19 | 34.47 | umol/L | 30.600015 | 11.502959 | 1.100000 | 2017-06-23 01:47:26 |
46912 | 2017.0 | 6.0 | 23.0 | 1.790556 | 48.310667 | -124.067000 | 10.2 | 10.1 | NaN | None | 1.25 | mg/m^3 | 19.92 | 34.01 | umol/L | 30.703519 | 10.774795 | 10.100000 | 2017-06-23 01:47:26 |
46913 | 2017.0 | 6.0 | 23.0 | 1.790556 | 48.310667 | -124.067000 | 20.6 | 20.4 | NaN | None | 1.01 | mg/m^3 | 20.97 | 35.16 | umol/L | 30.779220 | 10.450065 | 20.400000 | 2017-06-23 01:47:26 |
46923 | 2017.0 | 6.0 | 23.0 | 4.822778 | 48.259667 | -123.719333 | 1.2 | 1.2 | NaN | None | 1.25 | mg/m^3 | 19.69 | 33.36 | umol/L | 30.498009 | 10.782388 | 1.200000 | 2017-06-23 04:49:22 |
46926 | 2017.0 | 6.0 | 23.0 | 4.822778 | 48.259667 | -123.719333 | 10.1 | 10.0 | NaN | None | 1.19 | mg/m^3 | 19.70 | 33.31 | umol/L | 30.527568 | 10.725600 | 10.000000 | 2017-06-23 04:49:22 |
46927 | 2017.0 | 6.0 | 23.0 | 4.822778 | 48.259667 | -123.719333 | 20.6 | 20.4 | NaN | None | 1.17 | mg/m^3 | 20.49 | 33.75 | umol/L | 30.961474 | 10.351940 | 20.400000 | 2017-06-23 04:49:22 |
187 rows × 19 columns