import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import datetime as dt
from salishsea_tools import evaltools as et, viz_tools
import os
import datetime as dt
import gsw
import matplotlib.gridspec as gridspec
import matplotlib as mpl
import matplotlib.dates as mdates
import cmocean as cmo
import scipy.interpolate as sinterp
import cmocean
import json
import f90nml
from collections import OrderedDict
fs=16
mpl.rc('xtick', labelsize=fs)
mpl.rc('ytick', labelsize=fs)
mpl.rc('legend', fontsize=fs)
mpl.rc('axes', titlesize=fs)
mpl.rc('axes', labelsize=fs)
mpl.rc('figure', titlesize=fs)
mpl.rc('font', size=fs)
mpl.rc('font', family='sans-serif', weight='normal', style='normal')
import warnings
#warnings.filterwarnings('ignore')
from IPython.display import Markdown, display
%matplotlib inline
Import IOS Zooplankton data and create dataframe
ls '/ocean/ksuchy/MOAD/observe/Data and Code files for KS 2020dec11/2020_05_21 1995-2011 SoG VNH.csv'
/ocean/ksuchy/MOAD/observe/Data and Code files for KS 2020dec11/2020_05_21 1995-2011 SoG VNH.csv
df=pd.read_csv('/ocean/ksuchy/MOAD/observe/Data and Code files for KS 2020dec11/2020_05_21 2012-2015 SoG VNH.csv',
encoding = "ISO-8859-1")
df
Key | region_name | Station | PROJECT | lon | lat | Date | STN_TIME | Twilight | Net_Type | ... | Phylum: | Class: | Order: | Family: | Name | Abundance(#/m3) | Biomass(mg/m3) | NumberOfSpecies | Station Diversity | Station Equitability | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | IOS2012005000901 | Northern Strait of Georgia | 22 | Str. Geo. | -124.272 | 49.670 | 6/14/2012 | 7:32 | Daylight | SCOR VNH | ... | Arthropoda | Branchiopoda | Diplostraca | Podonidae | Podon *sp. s1 | 12.22541 | 0.06113 | 51 | 2.63 | 0.67 |
1 | IOS2012005000901 | Northern Strait of Georgia | 22 | Str. Geo. | -124.272 | 49.670 | 6/14/2012 | 7:32 | Daylight | SCOR VNH | ... | Arthropoda | Cirripedia | Thecostraca | NaN | Cirripedia *sp. nauplii s1 | 30.56351 | 1.22254 | 51 | 2.63 | 0.67 |
2 | IOS2012005000901 | Northern Strait of Georgia | 22 | Str. Geo. | -124.272 | 49.670 | 6/14/2012 | 7:32 | Daylight | SCOR VNH | ... | Arthropoda | Malacostraca | Amphipoda | Hyperiidae | Themisto pacifica juvenile s1 | 6.11270 | 1.44871 | 51 | 2.63 | 0.67 |
3 | IOS2012005000901 | Northern Strait of Georgia | 22 | Str. Geo. | -124.272 | 49.670 | 6/14/2012 | 7:32 | Daylight | SCOR VNH | ... | Arthropoda | Malacostraca | Decapoda | NaN | Caridea *sp. zoea s1 | 3.05635 | 0.07030 | 51 | 2.63 | 0.67 |
4 | IOS2012005000901 | Northern Strait of Georgia | 22 | Str. Geo. | -124.272 | 49.670 | 6/14/2012 | 7:32 | Daylight | SCOR VNH | ... | Arthropoda | Malacostraca | Decapoda | Hippolytidae | Hippolytidae *sp. mysis s2 | 0.09551 | 0.06017 | 51 | 2.63 | 0.67 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
60225 | SOO2015095000801 | Tidal Mixed | MAC41 | Citizen Science | -123.409 | 48.402 | 7/27/2015 | 13:00 | Daylight | SCOR VNH | ... | Ctenophora | Tentaculata | Cydippida | Pleurobrachiidae | Pleurobrachia bachei s2 | 0.25316 | 0.31797 | 44 | 2.56 | 0.67 |
60226 | SOO2015095000801 | Tidal Mixed | MAC41 | Citizen Science | -123.409 | 48.402 | 7/27/2015 | 13:00 | Daylight | SCOR VNH | ... | Ectoprocta | Gymnolaemata | NaN | NaN | Bryozoa *sp. cyphonautes s1 | 48.60759 | 0.06319 | 44 | 2.56 | 0.67 |
60227 | SOO2015095000801 | Tidal Mixed | MAC41 | Citizen Science | -123.409 | 48.402 | 7/27/2015 | 13:00 | Daylight | SCOR VNH | ... | Mollusca | Bivalvia | Pholadomyoida | NaN | Bivalvia *sp. veligers s1 | 21.60338 | 0.01296 | 44 | 2.56 | 0.67 |
60228 | SOO2015095000801 | Tidal Mixed | MAC41 | Citizen Science | -123.409 | 48.402 | 7/27/2015 | 13:00 | Daylight | SCOR VNH | ... | Mollusca | Cephalopoda | Teuthida | Gonatidae | Berryteuthis magister s2 | 0.08439 | 0.46414 | 44 | 2.56 | 0.67 |
60229 | SOO2015095000801 | Tidal Mixed | MAC41 | Citizen Science | -123.409 | 48.402 | 7/27/2015 | 13:00 | Daylight | SCOR VNH | ... | Mollusca | Gastropoda | NaN | NaN | Gastropoda *sp. veligers s1 | 10.80169 | 0.02808 | 44 | 2.56 | 0.67 |
60230 rows × 29 columns
df.keys()
Index(['Key', 'region_name', 'Station', 'PROJECT', 'lon', 'lat', 'Date', 'STN_TIME', 'Twilight', 'Net_Type', 'Mesh_Size(um)', 'Net_Mouth_Dia(m)', 'DEPTH_STRT1', 'DEPTH_END1', 'Bottom Depth(m)', 'Volume Filtered(m3)', 'CTD', 'NOTES', 'PI', 'Phylum:', 'Class:', 'Order:', 'Family:', 'Name', 'Abundance(#/m3)', 'Biomass(mg/m3)', 'NumberOfSpecies', 'Station Diversity', 'Station Equitability'], dtype='object')
df['Abundance(#/m3)'][2200:2300]
2200 5.51249 2201 2.75624 2202 33.07494 2203 49.61240 2204 5.51249 ... 2295 17.61982 2296 22.42523 2297 36.84145 2298 1.60180 2299 0.80090 Name: Abundance(#/m3), Length: 100, dtype: float64
Convert date to proper format
df['Date'][0],df['STN_TIME'][0]
('6/14/2012', '7:32')
df['Date'][1000:1020]
1000 6/15/2012 1001 6/15/2012 1002 6/15/2012 1003 6/15/2012 1004 6/15/2012 1005 6/15/2012 1006 6/15/2012 1007 6/15/2012 1008 6/15/2012 1009 6/15/2012 1010 6/15/2012 1011 6/15/2012 1012 6/15/2012 1013 6/15/2012 1014 6/15/2012 1015 6/15/2012 1016 6/15/2012 1017 6/15/2012 1018 6/15/2012 1019 6/15/2012 Name: Date, dtype: object
df['Date'][0].split('/')
['6', '14', '2012']
dateslist=list()
for el in df['Date']:
dateslist.append(el.split('/'))
timeslist=list()
for el in df['STN_TIME']:
timeslist.append(el.split(':'))
dts=list()
for ii,jj in zip(dateslist,timeslist):
dts.append(dt.datetime(int(ii[2]),int(ii[0]),int(ii[1]),int(jj[0]),int(jj[1])))
df.loc[df.Twilight=='Daylight']['STN_TIME'].unique()
array(['7:32', '7:52', '3:30', '7:42', '7:49', '15:09', '16:30', '22:09', '22:27', '19:36', '19:53', '9:21', '9:35', '13:29', '13:45', '19:25', '19:43', '5:26', '5:43', '5:45', '5:47', '5:56', '5:59', '8:38', '8:39', '8:40', '8:41', '8:57', '11:10', '11:44', '11:45', '11:47', '11:48', '11:49', '12:40', '12:42', '15:14', '15:15', '15:16', '15:17', '15:18', '17:54', '17:55', '17:57', '17:58', '17:59', '5:39', '6:05', '14:47', '15:02', '19:13', '19:30', '14:32', '14:49', '20:04', '20:24', '20:27', '20:47', '9:37', '9:48', '13:57', '14:17', '19:41', '19:59', '7:18', '7:53', '9:25', '12:57', '13:09', '7:30', '7:45', '13:33', '13:36', '13:38', '10:00', '10:30', '11:00', '11:30', '12:30', '13:00', '13:30', '16:00', '17:00', '9:29', '10:26', '11:19', '13:39', '9:16', '10:04', '10:42', '11:03', '9:00', '9:41', '10:17', '10:40', '12:00', '9:33', '10:13', '11:11', '12:02', '12:32', '13:22', '9:57', '10:35', '10:02', '12:08', '13:18', '14:50', '17:45', '18:45', '8:30', '9:30', '11:41', '12:37', '13:03', '14:05', '9:20', '11:56', '13:43', '9:32', '11:22', '11:52', '7:27', '19:08', '9:45', '16:38', '16:57', '16:04', '16:26', '13:31', '13:35', '7:12', '16:12', '16:14', '16:18', '16:20', '16:22', '3:48', '4:04', '15:20', '15:35', '21:28', '21:42', '4:33', '4:45', '11:38', '11:55', '18:18', '18:29', '10:12', '12:55', '10:16', '11:20', '13:08', '11:07', '12:19', '12:58', '14:42', '15:37', '12:10', '12:23', '13:24', '14:33', '10:32', '12:39', '9:49', '10:53', '12:49', '11:36', '14:11', '9:51', '11:24', '13:04', '13:19', '9:24', '10:15', '11:53', '12:51', '12:50', '16:11', '6:15', '17:15', '11:16', '12:17', '13:10', '13:59', '11:21', '12:01', '12:35', '9:58', '10:41', '11:29', '9:05', '9:50', '8:49', '9:55', '11:14', '12:14', '9:10', '10:20', '10:50', '11:25', '11:50', '19:52', '20:32', '6:20', '5:58', '20:29', '5:20', '20:10', '15:52', '6:43', '20:12', '7:22', '21:03', '21:55', '14:56', '10:08', '20:01', '11:33', '15:22', '16:40', '23:15', '8:51', '12:12', '15:12', '10:57', '7:03', '8:03', '14:22', '23:06', '4:05', '6:25', '9:26', '11:28', '13:27', '15:11', '15:53', '15:54', '15:56', '15:59', '18:06', '19:45', '9:40', '20:11', '7:10', '14:34', '11:42', '13:28', '17:12', '9:04', '14:10', '16:17', '8:02', '10:31', '15:27', '17:01', '16:43', '10:46', '13:15', '14:43', '9:44', '13:55', '15:44', '16:59', '18:41', '8:18', '11:13', '8:28', '15:43', '18:08', '7:40', '10:56', '10:33', '12:52', '14:55', '7:43', '12:13', '13:44', '7:41', '16:56', '8:17', '9:13', '11:12', '15:40', '18:27', '10:07', '12:06', '16:07', '16:41', '10:52', '16:33', '17:48', '7:48', '11:09', '15:08', '8:31', '12:22', '14:39', '12:03', '14:30', '17:31', '14:15', '18:16', '7:55', '17:38', '6:36', '18:22', '7:15', '9:17', '12:44', '18:54', '12:43', '18:44', '7:08', '13:02', '7:19', '16:36', '8:25', '8:33', '13:25', '17:20', '17:26', '13:42', '18:37', '18:43', '13:21', '14:53', '17:24', '9:38', '7:06', '9:31', '12:20', '15:28', '11:01', '11:57', '14:12', '15:10', '7:35', '14:38', '16:06', '8:08', '16:05', '16:52', '17:47', '8:21', '9:19', '16:35', '8:10', '8:59', '10:21', '14:41', '16:09', '18:26', '11:23', '8:14', '10:10', '11:27', '13:26', '11:15', '13:11', '9:18', '12:04', '10:45', '12:25', '13:56', '10:22', '13:53', '9:28', '11:06', '11:32', '10:34', '14:08', '11:18', '12:48', '14:01', '12:07', '14:07', '11:08', '14:04', '10:06', '11:43', '13:40', '10:18', '13:34', '16:27', '10:28', '15:26', '9:14', '12:15', '15:23', '8:23', '14:58', '9:08', '10:43', '14:29', '8:44', '9:52', '8:13', '14:27', '14:46', '14:16', '10:11', '14:51', '8:32', '10:37'], dtype=object)
df['dtUTC']=et.pac_to_utc(dts) #convert from Pac time to UTC
df['Order:'].unique()
array(['Diplostraca', 'Thecostraca', 'Amphipoda', 'Decapoda', 'Euphausiacea', 'Calanoida', 'Cyclopoida', 'Poecilostomatoida', 'Halocyprida', 'Aphragmophora', 'Copelata', 'Leptothecate', 'Siphonophorae', 'Trachylina', 'Cydippida', nan, 'Pholadomyoida', 'Neotaenioglossa', 'Thecosomata', 'Aciculata', 'Canalipalpata', 'Osmeriformes', 'Perciformes', 'Beroida', 'Teuthida', 'Gymnosomata', 'Isopoda', 'Siphonostomatoida', 'Anthoathecatae', 'Scorpaeniformes', 'Phragmophora', 'Clupeiformes', 'Ophiurida', 'Gadiformes', 'Semaeostomeae', 'Cumacea', 'Echinoida', 'Harpacticoida', 'Pleuronectiformes', 'Tricladida', 'Myodocopida', 'Phaeogromia', 'Noctilucales', 'Octopoda', 'Actiniaria', 'Foraminiferida', 'Monstrilloida', 'Oligotrichida', 'Mysida', 'Acariformes', 'Lophogastrida', 'Ophidiiformes', 'Thalassocalycida', 'Doliolida', 'Lepadomorpha', 'Cephalaspidea', 'Sygnathiformes'], dtype=object)
SpeciesNames = df['Name'].unique()[1:1000]
SpeciesNames.sort()
print(SpeciesNames)
['Acartia *sp. 1' 'Acartia *sp. 2' 'Acartia *sp. 3' 'Acartia *sp. 4' 'Acartia hudsonica 5' 'Acartia hudsonica 6F' 'Acartia hudsonica 6M' 'Acartia longiremis 3' 'Acartia longiremis 4' 'Acartia longiremis 5' 'Acartia longiremis 6F' 'Acartia longiremis 6M' 'Aegina citrea s1' 'Aegina citrea s2' 'Aegina citrea s3' 'Aeginidae *sp. s1' 'Aequorea *sp. s1' 'Aequorea *sp. s2' 'Aequorea *sp. s3' 'Aetideidae *sp. 1' 'Aetideidae *sp. 2' 'Aetideidae *sp. 3' 'Aetideus *sp. 1' 'Aetideus *sp. 2' 'Aetideus *sp. 3' 'Aetideus *sp. 4' 'Aetideus *sp. 5' 'Aetideus divergens 2' 'Aetideus divergens 3' 'Aetideus divergens 4' 'Aetideus divergens 5' 'Aetideus divergens 6F' 'Aetideus divergens 6M' 'Aetideus pacificus 5' 'Aetideus pacificus 6F' 'Aetideus pacificus 6M' 'Aglantha digitale s1' 'Aglantha digitale s2' 'Aglantha digitale s3' 'Alacia *sp. s1' 'Alacia minor s1' 'Alacia pseudoalata s1' 'Ammodytes hexapterus flexion s2' 'Ammodytes hexapterus postflexion s3' 'Amphicaryon acaule nectophore s1' 'Amphicaryon acaule nectophore s2' 'Amphicaryon ernesti nectophore s1' 'Anomura *sp. megalops s1' 'Anomura *sp. zoea s1' 'Anomura *sp. zoea s2' 'Anoplarchus *sp. postflexion s3' 'Anthomedusae *sp. s1' 'Artedius fenestralis flexion s2' 'Artedius fenestralis preflexion s1' 'Artedius harringtoni flexion s2' 'Artedius harringtoni preflexion s1' 'Ascidiacea *sp. tadpole s1' 'Asteroidea *sp. bipinnaria s1' 'Asteroidea *sp. brachiolaria s1' 'Asteroidea *sp. juvenile s1' 'Atrophia minuta 5' 'Atrophia minuta 6F' 'Atrophia minuta 6M' 'Augaptilus glacialis 6F' 'Aurelia *sp. s2' 'Aurelia *sp. s3' 'Aurelia *sp. ephyra s1' 'Axiidae *sp. s1' 'Axiidae *sp. mysis s2' 'Axiidae *sp. zoea s1' 'Axiidae *sp. zoea s2' 'Bathyagonus infraspinatus flexion s2' 'Bathylagus *sp. eggs s1' 'Beroe *sp. s3' 'Beroe abyssicola s2' 'Beroe abyssicola s3' 'Beroe cucumis s3' 'Berryteuthis *sp. s1' 'Berryteuthis *sp. s2' 'Berryteuthis magister s2' 'Bivalvia *sp. veligers s1' 'Bosmina *.sp s1' 'Bougainvillia *sp. s1' 'Bougainvillia *sp. s2' 'Bougainvillia multitentaculata s1' 'Bougainvillia multitentaculata s2' 'Bougainvillia superciliaris s1' 'Brachyura *sp. megalops s1' 'Brachyura *sp. zoea s1' 'Bradyidius *sp. 4' 'Bradyidius saanichi 6F' 'Brosmophycis marginata postflexion s3' 'Bryozoa *sp. cyphonautes s1' 'Calanoida *sp. 1' 'Calanoida *sp. 2' 'Calanoida *sp. 3' 'Calanoida *sp. 4' 'Calanoida *sp. 6M' 'Calanus *sp. 1' 'Calanus *sp. 2' 'Calanus *sp. 3' 'Calanus *sp. 4' 'Calanus *sp. nauplii s1' 'Calanus marshallae 2' 'Calanus marshallae 3' 'Calanus marshallae 4' 'Calanus marshallae 5' 'Calanus marshallae 6F' 'Calanus marshallae 6M' 'Calanus pacificus 2' 'Calanus pacificus 3' 'Calanus pacificus 4' 'Calanus pacificus 5' 'Calanus pacificus 6F' 'Calanus pacificus 6M' 'Caligus clemensi 6F' 'Caligus clemensi 6M' 'Caligus clemensi copepodite s1' 'Caligus clemensi subadult male 5M' 'Calliopius *sp. s1' 'Calliopius *sp. s2' 'Calliopius *sp. s3' 'Calliopius pacificus s1' 'Calliopius pacificus s2' 'Calliopius pacificus s3' 'Cancer *sp. megalops s1' 'Cancer *sp. zoea s1' 'Cancer *sp. zoea s2' 'Cancer magister megalops s2' 'Cancer magister zoea s1' 'Cancer magister zoea s2' 'Cancer oregonensis megalops s1' 'Cancer oregonensis megalops s2' 'Cancer productus megalops s1' 'Cancer productus megalops s2' 'Cancer productus zoea s1' 'Cancer productus zoea s2' 'Candacia *sp. 1' 'Candacia *sp. 2' 'Candacia *sp. 3' 'Candacia *sp. 4' 'Candacia bipinnata 6M' 'Candacia columbiae 5' 'Candacia columbiae 6F' 'Candacia columbiae 6M' 'Caridea *sp. s3' 'Caridea *sp. mysis s1' 'Caridea *sp. mysis s2' 'Caridea *sp. mysis s3' 'Caridea *sp. zoea s1' 'Caridea *sp. zoea s2' 'Castanellidae *sp. s1' 'Catablema *sp. s2' 'Catablema *sp. s3' 'Catablema multicirrata s3' 'Catablema nodulosa s1' 'Catablema nodulosa s2' 'Catablema nodulosa s3' 'Centropages *sp. 3' 'Centropages abdominalis 1' 'Centropages abdominalis 2' 'Centropages abdominalis 3' 'Centropages abdominalis 4' 'Centropages abdominalis 5' 'Centropages abdominalis 6F' 'Centropages abdominalis 6M' 'Cephalopoda *sp. eggs s1' 'Chaetognatha *sp. s3' 'Chaetognatha *sp. juvenile s1' 'Chaetognatha *sp. juvenile s2' 'Chaetopterus *sp. larvae s1' 'Chelophyes appendiculata nectophore s3' 'Chionoecetes *sp. megalops s1' 'Chionoecetes *sp. megalops s2' 'Chionoecetes *sp. zoea s1' 'Chiridius *sp. 2' 'Chiridius *sp. 3' 'Chiridius *sp. 4' 'Chiridius gracilis 2' 'Chiridius gracilis 3' 'Chiridius gracilis 4' 'Chiridius gracilis 5' 'Chiridius gracilis 6F' 'Chiridius gracilis 6M' 'Chiridius pacificus 5' 'Chirundina streetsi 6F' 'Cirripedia *sp. cyprids s1' 'Cirripedia *sp. nauplii s1' 'Citharichthys *sp. eggs s1' 'Citharichthys *sp. preflexion s1' 'Citharichthys sordidus flexion s2' 'Citharichthys sordidus preflexion s1' 'Citharichthys stigmaeus flexion s2' 'Citharichthys stigmaeus preflexion s1' 'Clausocalanus arcuicornis 5' 'Clausocalanus arcuicornis 6F' 'Clausocalanus arcuicornis 6M' 'Clausocalanus lividus 6F' 'Clausocalanus parapergens 5' 'Clausocalanus parapergens 6F' 'Clausocalanus pergens 5' 'Clausocalanus pergens 6F' 'Cleonardo *sp. s2' 'Clevelandia ios flexion s2' 'Clevelandia ios preflexion s1' 'Clione *sp. larvae s1' 'Clione limacina s2' 'Clione limacina s3' 'Clione limacina juvenile s1' 'Clione limacina polytroch s0' 'Clupea pallasii flexion s2' 'Clupea pallasii postflexion s3' 'Clupea pallasii preflexion s1' 'Clupeiformes *sp. preflexion s1' 'Clytemnestra scutellata 6F' 'Clytia gregaria s1' 'Clytia gregaria s2' 'Clytia gregaria s3' 'Conchoecia lophura s1' 'Conchoecia rudjakovi s1' 'Conchoecinae *sp. s1' 'Copepoda *sp. eggs s1' 'Copepoda *sp. nauplii s1' 'Corycaeus anglicus 3' 'Corycaeus anglicus 4' 'Corycaeus anglicus 5' 'Corycaeus anglicus 6F' 'Corycaeus anglicus 6M' 'Cottidae *sp. flexion s2' 'Cottidae *sp. preflexion s1' 'Crangonidae *sp. mysis s1' 'Crangonidae *sp. mysis s2' 'Crangonidae *sp. mysis s3' 'Crangonidae *sp. zoea s1' 'Crangonidae *sp. zoea s2' 'Cryptacanthodes aleutensis postflexion s3' 'Ctenocalanus vanus 4' 'Ctenocalanus vanus 5' 'Ctenocalanus vanus 6F' 'Ctenophora *sp. s1' 'Ctenophora *sp. s2' 'Ctenophora *sp. s3' 'Cumacea *sp. s1' 'Cumacea *sp. s2' 'Cuninidae *sp. s2' 'Cyanea *sp. ephrya s2' 'Cyanea capillata s3' 'Cyclopoida *sp. 3' 'Cyclopoida *sp. 5' 'Cyclopoida *sp. 6F' 'Cyclopoida *sp. 6M' 'Cyphocaris *sp. s1' 'Cyphocaris challengeri s1' 'Cyphocaris challengeri s2' 'Cyphocaris challengeri s3' 'Decapoda *sp. zoea s1' 'Dimophyes arctica eudoxid s1' 'Dimophyes arctica eudoxid s2' 'Dimophyes arctica nectophore s1' 'Dimophyes arctica nectophore s2' 'Dimophyes arctica nectophore s3' 'Discoconchoecia elegans s1' 'Dolioletta gegenbauri s1' 'Dolioletta gegenbauri s2' 'Echinodermata *sp. auricularia s1' 'Echinodermata *sp. bipinaria s1' 'Echinodermata *sp. juvenile s1' 'Echinodermata *sp. pluteus s1' 'Echinoid *sp. pluteus s1' 'Engraulis mordax eggs s1' 'Engraulis mordax flexion s2' 'Engraulis mordax postflexion s3' 'Engraulis mordax preflexion s1' 'Epicarid *sp. larvae s1' 'Epilabidocera *sp. 1' 'Epilabidocera *sp. 2' 'Epilabidocera *sp. 3' 'Epilabidocera *sp. 4' 'Epilabidocera *sp. nauplii s1' 'Epilabidocera longipedata 1' 'Epilabidocera longipedata 3' 'Epilabidocera longipedata 4' 'Epilabidocera longipedata 5' 'Epilabidocera longipedata 6F' 'Epilabidocera longipedata 6M' 'Eualus *sp. s2' 'Eualus *sp. s3' 'Eucalanus *sp. 1' 'Eucalanus *sp. 2' 'Eucalanus *sp. 3' 'Eucalanus *sp. nauplii s1' 'Eucalanus bungii 3' 'Eucalanus bungii 4' 'Eucalanus bungii 4F' 'Eucalanus bungii 4M' 'Eucalanus bungii 5F' 'Eucalanus bungii 5M' 'Eucalanus bungii 6F' 'Eucalanus bungii 6M' 'Eucalanus californicus 5F' 'Eucalanus californicus 6F' 'Euchaetidae *sp. 1' 'Euchaetidae *sp. 2' 'Euchaetidae *sp. 3' 'Euchaetidae *sp. 4' 'Euchaetidae *sp. nauplii s1' 'Euchirella *sp. 4' 'Euchirella curticauda 5' 'Euchirella grandicornis 5' 'Euchirella pseudopulchra 5' 'Euchirella pseudopulchra 6F' 'Euchirella pseudopulchra 6M' 'Eucopia grimaldii M' 'Eukrohnia hamata s2' 'Eukrohnia hamata s3' 'Euphausia pacifica F' 'Euphausia pacifica M' 'Euphausia pacifica s2' 'Euphausia pacifica s3' 'Euphausia pacifica eggs s1' 'Euphausia pacifica nauplii s1' 'Euphausia pacifica zoea s1' 'Euphausiacea *sp. s2' 'Euphausiidae *sp. eggs s1' 'Euphausiidae *sp. nauplii s1' 'Euphausiidae *sp. protozoea (or calyptopis) s1' 'Euphausiidae *sp. zoea (or furcilia) s1' 'Euphysa *sp. s1' 'Euphysa *sp. s2' 'Euphysa japonica s1' 'Euphysa japonica s2' 'Euphysa japonica s3' 'Euphysa tentaculata s2' 'Eurytemora *sp. 4' 'Eurytemora *sp. 6M' 'Eurytemora americana 6M' 'Eutonina indicans s2' 'Eutonina indicans s3' 'Evadne *sp. s1' 'Fabia subquadrata megalops s1' 'Facetotecta *sp. nauplii s1' 'Fish *sp. eggs s1' 'Fish *sp. flexion s2' 'Fish *sp. juvenile s3' 'Fish *sp. preflexion s1' 'Foersteria purpurea s2' 'Foersteria purpurea s3' 'Foraminiferida *sp. s1' 'Fritillaria borealis s1' 'Gadidae *sp. eggs s1' 'Gadidae *sp. flexion s2' 'Gadidae *sp. preflexion s1' 'Gadus macrocephalus preflexion s1' 'Gaetanus *sp. 1' 'Gaetanus *sp. 2' 'Gaetanus *sp. 3' 'Gaetanus *sp. 4' 'Gaetanus *sp. 5' 'Gaetanus *sp. 6F' 'Gaetanus minutus 3' 'Gaetanus minutus 4' 'Gaetanus minutus 5' 'Gaetanus minutus 6F' 'Gaetanus minutus 6M' 'Gaetanus pungens 6F' 'Gaetanus simplex 3' 'Gaetanus simplex 4' 'Gaetanus simplex 5' 'Gaetanus simplex 6F' 'Gaetanus simplex 6M' 'Gaetanus tenuispinus 6F' 'Galatheidae *sp. zoea s1' 'Galatheidae *sp. zoea s2' 'Gammaridea *sp. s1' 'Gammaridea *sp. s2' 'Gastropoda *sp. echinospira larvae s1' 'Gastropoda *sp. prosobranch and ophistobranch s1' 'Gastropoda *sp. veligers s1' 'Gastropteron pacificum s1' 'Gastropteron pacificum s2' 'Geomackiea zephyrolata s1' 'Glyptocephalus *sp. eggs s1' 'Glyptocephalus *sp. flexion s2' 'Gonatidae *sp. paralarvae s2' 'Gonatus *sp. s2' 'Gonatus onyx s2' 'Grapsidae *sp. megalops s1' 'Grapsidae *sp. zoea s1' 'Halacaridae *sp. s1' 'Halitholus *sp. s1' 'Halitholus *sp. s2' 'Halitholus *sp. s3' 'Halocypris *sp. s1' 'Harpacticoida *sp. 15' 'Harpacticoida *sp. 56' 'Harpacticoida *sp. 6F' 'Harpacticoida *sp. 6M' 'Hemicylops *sp. 2' 'Hemicylops *sp. 5' 'Hemicylops *sp. 6F' 'Hemigrapsus *sp. megalops s1' 'Hemigrapsus *sp. zoea s1' 'Hemilepidotus hemilepidotus flexion s2' 'Heptacarpus stylus mysis s3' 'Heterorhabdus *sp. 3' 'Heterorhabdus *sp. 4' 'Heterorhabdus *sp. 5' 'Heterorhabdus tanneri 4' 'Heterorhabdus tanneri 5' 'Heterorhabdus tanneri 6F' 'Heterorhabdus tanneri 6M' 'Heterostylites longicornis 6F' 'Hippoglossoides *sp. eggs s1' 'Hippoglossoides elassodon eggs s1' 'Hippoglossoides elassodon flexion s2' 'Hippoglossoides elassodon postflexion s3' 'Hippolytidae *sp. mysis s2' 'Hippolytidae *sp. mysis s3' 'Hippolytidae *sp. zoea s1' 'Holmesiella anomala M' 'Holmesiella anomala s2' 'Holophryxus alaskensis s1' 'Holothuroidea *sp. auricularia s1' 'Holothuroidea *sp. doliolaria s1' 'Holothuroidea *sp. pentacula s1' 'Hormiphora *sp. s2' 'Hormiphora *sp. s3' 'Hybocodon *sp. s1' 'Hybocodon prolifer s1' 'Hyperia medusarum F' 'Hyperia medusarum M' 'Hyperia medusarum s1' 'Hyperia medusarum s2' 'Hyperoche *sp. s1' 'Hyperoche mediterranea F' 'Hyperoche mediterranea M' 'Hyperoche medusarum F' 'Hyperoche medusarum M' 'Hyperoche medusarum s1' 'Hyperoche medusarum s2' 'Insecta *sp. adult s1' 'Insecta *sp. adult s2' 'Insecta *sp. adult s3' 'Insecta *sp. larvae s1' 'Insecta *sp. nymph s2' 'Insecta *sp. pupa s1' 'Invertebrate *sp. eggs s1' 'Isopoda *sp. s1' 'Isopsetta isolepis preflexion s1' 'Labidocera *sp. 3' 'Labidocera *sp. 4' 'Labidocera *sp. 5' 'Labidocera *sp. 6M' 'Lebbeus *sp. mysis s2' 'Lensia achilles nectophore s2' 'Lensia achilles nectophore s3' 'Lensia conoidea nectophore s2' 'Lensia conoidea nectophore s3' 'Lepas *sp. cyprids s1' 'Lepeophtheirus salmonis nauplii s1' 'Lepidogobius lepidus preflexion s1' 'Lepidopsetta bilineata flexion s2' 'Lepidopsetta bilineata postflexion s3' 'Lepidopsetta bilineata preflexion s1' 'Leuckartiara *sp. s1' 'Leuckartiara *sp. s2' 'Leuroglossus schmidti eggs s1' 'Leuroglossus schmidti flexion s2' 'Leuroglossus schmidti postflexion s3' 'Leuroglossus schmidti preflexion s1' 'Limacina helicina s0' 'Limacina helicina s1' 'Limacina helicina s2' 'Liparis *sp. flexion s2' 'Liparis fucensis flexion s2' 'Liparis fucensis postflexion s3' 'Liparis fucensis preflexion s1' 'Lithodidae *sp. megalops s1' 'Lithodidae *sp. zoea s1' 'Lithodidae *sp. zoea s2' 'Littorina *sp. egg cases s1' 'Loligo *sp. s2' 'Lophopanopeus *sp. megalops s1' 'Lubbockia *sp. 4' 'Lubbockia *sp. 5' 'Lubbockia *sp. 6M' 'Lubbockia wilsonae 4' 'Lubbockia wilsonae 5' 'Lubbockia wilsonae 6F' 'Lubbockia wilsonae 6M' 'Lucicutia ovalis 6F' 'Lyopsetta exilis eggs s1' 'Lyopsetta exilis flexion s2' 'Lyopsetta exilis postflexion s3' 'Lyopsetta exilis preflexion s1' 'Lysianassidae *sp. flexion s2' 'Magelonidae *sp. larvae s1' 'Magelonidae *sp. larvae s2' 'Majidae *sp. megalops s1' 'Majidae *sp. megalops s2' 'Majidae *sp. zoea s1' 'Mallotus villosus flexion s2' 'Maupasia coeca s1' 'Medusae *sp. s0' 'Medusae *sp. s1' 'Medusae *sp. s2' 'Medusae *sp. s3' 'Melicertum octocostatum s1' 'Melicertum octocostatum s2' 'Melphidippa *sp. s3' 'Merluccius productus eggs s1' 'Merluccius productus flexion s2' 'Merluccius productus postflexion s3' 'Merluccius productus preflexion s1' 'Mesosagitta decipiens s2' 'Mesosagitta decipiens s3' 'Mesosagitta minima s2' 'Meterythrops robusta M' 'Meterythrops robusta s1' 'Metridia *sp. 1' 'Metridia *sp. 2' 'Metridia *sp. 3' 'Metridia *sp. 4' 'Metridia *sp. 5' 'Metridia *sp. 6F' 'Metridia *sp. 6M' 'Metridia pacifica 3' 'Metridia pacifica 4' 'Metridia pacifica 5F' 'Metridia pacifica 5M' 'Metridia pacifica 6F' 'Metridia pacifica 6M' 'Metridia pseudopacifica 5' 'Metridia pseudopacifica 6F' 'Metridia pseudopacifica 6M' 'Microcalanus *sp. 3' 'Microcalanus *sp. 4' 'Microcalanus *sp. 5' 'Microcalanus pusillus 4' 'Microcalanus pusillus 5' 'Microcalanus pusillus 6F' 'Microcalanus pusillus 6M' 'Microcalanus pygmaeus 3' 'Microcalanus pygmaeus 4' 'Microcalanus pygmaeus 5' 'Microcalanus pygmaeus 6F' 'Microcalanus pygmaeus 6M' 'Microgadus proximus flexion s2' 'Microgadus proximus preflexion s1' 'Microniscus *sp. larvae s1' 'Microsetella *sp. 5' 'Microsetella norvegica 6F' 'Microsetella rosea 5' 'Microsetella rosea 6F' 'Microstomus pacificus eggs s1' 'Microstomus pacificus flexion s2' 'Mikroconchoecia stigmatica s1' 'Mitrocoma cellularia s2' 'Mitrocoma cellularia s3' 'Mitrocomella *sp. s1' 'Mitrocomella *sp. s2' 'Monstrilla wandelii F' 'Monstrilloida *sp. 56' 'Monstrilloida *sp. F' 'Monstrilloida *sp. M' 'Muggiaea atlantica eudoxid s1' 'Muggiaea atlantica nectophore s1' 'Muggiaea atlantica nectophore s2' 'Muggiaea atlantica nectophore s3' 'Munida *sp. zoea s1' 'Munida *sp. zoea s2' 'Munida quadrispina megalops s2' 'Munida quadrispina megalops s3' 'Munnopsis *sp. s1' 'Mysidacea *sp. juvenile s1' 'Nanomia bijuga nectophore s1' 'Nanomia bijuga nectophore s2' 'Nanomia bijuga pneumatophore s1' 'Nanomia bijuga pneumatophore s2' 'Nanomia bijuga pneumatophore s3' 'Narcomedusae *sp. larvae s1' 'Nectoliparis pelagicus flexion s2' 'Nectoliparis pelagicus postflexion s3' 'Nematoda *sp. s1' 'Nematoda *sp. s2' 'Nematoscelis difficilis F' 'Nematoscelis difficilis M' 'Nematoscelis difficilis s3' 'Nemertea *sp. larvae s1' 'Nemertea *sp. larvae s2' 'Nemertea *sp. pilidium s1' 'Neocalanus *sp. 4' 'Neocalanus *sp. eggs s1' 'Neocalanus *sp. nauplii s1' 'Neocalanus cristatus 2' 'Neocalanus cristatus 3' 'Neocalanus cristatus 4' 'Neocalanus cristatus 5' 'Neocalanus cristatus 6F' 'Neocalanus cristatus 6M' 'Neocalanus plumchrus 1' 'Neocalanus plumchrus 2' 'Neocalanus plumchrus 3' 'Neocalanus plumchrus 4' 'Neocalanus plumchrus 5' 'Neocalanus plumchrus 6F' 'Neocalanus plumchrus 6M' 'Neomysis *sp. s2' 'Neomysis rayii F' 'Neomysis rayii M' 'Neomysis rayii s2' 'Neotrypaea *sp. mysis s1' 'Neotrypaea *sp. mysis s2' 'Neotrypaea *sp. zoea s1' 'Neotrypaea *sp. zoea s2' 'Neoturris breviconis s2' 'Neoturris breviconis s3' 'Nereidae *sp. nectochaete s1' 'Noctiluca *sp. s1' 'Obelia *sp. s1' 'Octopoda *sp. larvae s1' 'Octopus rubescens larvae s1' 'Octopus rubescens larvae s2' 'Odontopyxis trispinosa flexion s2' 'Oedicerotidae *sp. s1' 'Oedicerotidae *sp. s2' 'Oikopleura *sp. s1' 'Oikopleura *sp. s2' 'Oikopleura dioica s1' 'Oikopleura dioica s2' 'Oikopleura labradoriensis s1' 'Oikopleura labradoriensis s2' 'Oikopleura labradoriensis s3' 'Oithona *sp. 1' 'Oithona *sp. 14' 'Oithona *sp. 2' 'Oithona *sp. 3' 'Oithona *sp. 4' 'Oithona atlantica 3' 'Oithona atlantica 4' 'Oithona atlantica 5' 'Oithona atlantica 6F' 'Oithona atlantica 6M' 'Oithona similis 2' 'Oithona similis 3' 'Oithona similis 4' 'Oithona similis 5' 'Oithona similis 6F' 'Oithona similis 6M' 'Oncaea prolata 5' 'Oncaea prolata 6F' 'Oncaea prolata 6M' 'Oncaeidae *sp. 2' 'Oncaeidae *sp. 3' 'Oncaeidae *sp. 4' 'Oncaeidae *sp. 5' 'Oncaeidae *sp. 6F' 'Oncaeidae *sp. 6M' 'Ophiuroid *sp. juvenile s1' 'Ophiuroid *sp. pluteus s1' 'Orchomenella *sp. s2' 'Orchomenella *sp. s3' 'Oregonia *sp. megalops s1' 'Osmeridae *sp. flexion s2' 'Ostracoda *sp. s1' 'Oweniidae *sp. larvae s1' 'Pacifacanthomysis nephrophthalma s2' 'Paguridae *sp. megalops s1' 'Paguridae *sp. megalops s2' 'Paguridae *sp. zoea s1' 'Paguridae *sp. zoea s2' 'Pandalidae *sp. mysis s2' 'Pandalidae *sp. mysis s3' 'Pandalidae *sp. zoea s1' 'Pandalidae *sp. zoea s2' 'Pandalopsis dispar s2' 'Pandalopsis dispar s3' 'Pandalus danae s2' 'Pandalus danae s3' 'Pandalus eous s3' 'Pandalus jordani s2' 'Pandalus jordani s3' 'Pandalus stenolepis s1' 'Pandalus stenolepis s2' 'Pandalus stenolepis s3' 'Pandalus tridens s2' 'Pandalus tridens s3' 'Paracalanus *sp. 1' 'Paracalanus *sp. 2' 'Paracalanus *sp. 3' 'Paracalanus *sp. 4' 'Paracalanus *sp. 5' 'Paracalanus *sp. 6F' 'Paracalanus *sp. 6M' 'Paracalanus indicus 3' 'Paracalanus indicus 4' 'Paracalanus indicus 5' 'Paracalanus indicus 6F' 'Paracalanus indicus 6M' 'Paracalanus parvus 4' 'Paracalanus parvus 5' 'Paracalanus parvus 6F' 'Paracalanus parvus 6M' 'Paracalanus quasimodo 5' 'Paracalanus quasimodo 6F' 'Paracalanus quasimodo 6M' 'Paradulichia *sp. s1' 'Paraeuchaeta *sp. 4' 'Paraeuchaeta elongata 4' 'Paraeuchaeta elongata 5F' 'Paraeuchaeta elongata 5M' 'Paraeuchaeta elongata 6F' 'Paraeuchaeta elongata 6M' 'Parasagitta elegans s2' 'Parasagitta elegans s3' 'Parasagitta elegans juvenile s1' 'Parasagitta euneritica s2' 'Parasagitta euneritica s3' 'Paroithona *sp. 5' 'Parophrys vetulus eggs s1' 'Parophrys vetulus flexion s2' 'Parophrys vetulus postflexion s3' 'Parophrys vetulus preflexion s1' 'Pasiphaea pacifica F' 'Pasiphaea pacifica M' 'Pasiphaea pacifica s2' 'Pasiphaea pacifica s3' 'Pasiphaea pacifica larvae s1' 'Peachia *sp. s1' 'Peachia *sp. s2' 'Pectinariidae *sp. larvae s1' 'Pelagobia longicirrata s1' 'Perciformes *sp. postflexion s3' 'Phalacrophorus pictus s1' 'Phalacrophorus pictus s2' 'Philomedidae *sp. s1' 'Pholidae *sp. postflexion s3' 'Phoronidae *sp. actinotrocha s1' 'Phoxocephalidae *sp. s1' 'Phoxocephalidae *sp. s2' 'Phronima sedentaria M' 'Phyllodocida *sp. s2' 'Phyllodocida *sp. larvae s1' 'Pinnixa *sp. megalops s1' 'Pinnotheres *sp. megalops s1' 'Pinnotheridae *sp. megalops s1' 'Pinnotheridae *sp. megalops s2' 'Pinnotheridae *sp. zoea s1' 'Pinnotheridae *sp. zoea s2' 'Pisidae zoea zoea s1' 'Planaria *sp. s1' 'Plectobranchus evides flexion s2' 'Pleurobrachia bachei s1' 'Pleurobrachia bachei s2' 'Pleurobrachia bachei s3' 'Pleuromamma abdominalis 6M' 'Pleuromamma indica 6F' 'Pleuromamma scutullata 6F' 'Pleuronectidae *sp. eggs s0' 'Pleuronectidae *sp. eggs s1' 'Pleuronectidae *sp. flexion s2' 'Pleuronectidae *sp. preflexion s1' 'Pleuronichthys *sp. eggs s1' 'Pleuronichthys coenosus eggs s1' 'Pleuronichthys coenosus preflexion s1' 'Plotocnide borealis s1' 'Polychaeta *sp. s1' 'Polychaeta *sp. s2' 'Polychaeta *sp. s3' 'Polychaeta *sp. larvae s1' 'Polychaeta *sp. trochophores s1' 'Polygordius *sp. larvae s1' 'Polynoidae *sp. larvae s1' 'Polynoidae *sp. larvae s2' 'Porcellanidae *sp. megalops s1' 'Porcellanidae *sp. zoea s1' 'Porcellanidae *sp. zoea s2' 'Primno *sp. s1' 'Primno abyssalis F' 'Primno abyssalis M' 'Primno abyssalis s1' 'Primno abyssalis s2' 'Primno brevidens s1' 'Proboscidactyla *sp. s1' 'Proboscidactyla flavicirrata s1' 'Proboscidactyla flavicirrata s2' 'Proneomysis wailesi s2' 'Psettichthys melanostictus postflexion s3' 'Pseudocalanus *sp. 1' 'Pseudocalanus *sp. 2' 'Pseudocalanus *sp. 3' 'Pseudocalanus *sp. 4' 'Pseudocalanus mimus 4' 'Pseudocalanus mimus 5F' 'Pseudocalanus mimus 5M' 'Pseudocalanus mimus 6F' 'Pseudocalanus mimus 6M' 'Pseudocalanus minutus 4' 'Pseudocalanus minutus 5' 'Pseudocalanus minutus 5F' 'Pseudocalanus minutus 5M' 'Pseudocalanus minutus 6F' 'Pseudocalanus minutus 6M' 'Pseudocalanus moultoni 4' 'Pseudocalanus moultoni 5' 'Pseudocalanus moultoni 5F' 'Pseudocalanus moultoni 5M' 'Pseudocalanus moultoni 6F' 'Pseudocalanus moultoni 6M' 'Pseudocalanus newmani 4' 'Pseudocalanus newmani 5F' 'Pseudocalanus newmani 5M' 'Pseudocalanus newmani 6F' 'Pseudocalanus newmani 6M' 'Pseudosagitta *sp. s3' 'Pseudosagitta scrippsae s2' 'Pseudosagitta scrippsae s3' 'Ptychogena lactea s2' 'Ptychogena lactea s3' 'Pugettia *sp. megalops s1' 'Racovitzanus antarcticus 4' 'Racovitzanus antarcticus 5' 'Racovitzanus antarcticus 6F' 'Radulinus *sp. preflexion s1' 'Radulinus asprellus flexion s2' 'Rathkea *sp. s1' 'Rhincalanus nasutus 4' 'Rhincalanus nasutus 6F' 'Rhinogobiops nicholsii flexion s2' 'Rhinogobiops nicholsii preflexion s1' 'Rhinolithodes wosnessenskii zoea s3' 'Rhizocephala *sp. nauplii s1' 'Rhopalonematidae *sp. s1' 'Rhynchonereella angelina s2' 'Rhynchonereella angelina s3' 'Ronquilus jordani flexion s2' 'Ronquilus jordani preflexion s1' 'Rotifera *sp. s1' 'Ruscarius meanyi flexion s2' 'Ruscarius meanyi postflexion s3' 'Ruscarius meanyi preflexion s1' 'Sarsia *sp. s1' 'Sarsia *sp. s2' 'Sarsia *sp. s3' 'Sarsia japonica s2' 'Sarsia princeps s2' 'Sarsia princeps s3' 'Scaphocalanus *sp. 3' 'Scaphocalanus *sp. 4' 'Scaphocalanus *sp. 5' 'Scaphocalanus *sp. 6M' 'Scaphocalanus brevicornis 5' 'Scaphocalanus brevicornis 6F' 'Scaphocalanus brevicornis 6M' 'Scaphocalanus echinatus 5' 'Scaphocalanus echinatus 6F' 'Scina *sp. s1' 'Scina *sp. s2' 'Scina borealis F' 'Scina borealis M' 'Scina borealis s1' 'Scina borealis s2' 'Scleroconcha trituberculata s1' 'Scolecithricella globulosa 5' 'Scolecithricella minor 2' 'Scolecithricella minor 3' 'Scolecithricella minor 4' 'Scolecithricella minor 5' 'Scolecithricella minor 6F' 'Scolecithricella minor 6M' 'Scolecithricidae *sp. 6M' 'Scorpaenichthys marmoratus flexion s2' 'Scottocalanus persecans 6F' 'Scyphozoa medusae s3' 'Scyphozoa medusae ephyra s1' 'Scyphozoa medusae ephyra s2' 'Sebastes *sp. flexion s2' 'Sebastes *sp. postflexion s3' 'Sebastes *sp. preflexion s1' 'Sergestes *sp. mysis s1' 'Sergestes *sp. mysis s2' 'Sergestes *sp. zoea s1' 'Sergestes similis F' 'Siphonophora *sp. bracts s1' 'Siphonophora *sp. eudoxid s1' 'Siphonophora *sp. gas floats s1' 'Siphonophora *sp. gas floats s2' 'Siphonophora *sp. gas floats s3' 'Siphonophora *sp. larvae s1' 'Siphonophora *sp. nectophore s1' 'Siphonophora *sp. nectophore s2' 'Siphonophora *sp. nectophore s3' 'Solmissus *sp. s3' 'Spinocalanus *sp. 3' 'Spinocalanus *sp. 4' 'Spinocalanus *sp. 5' 'Spinocalanus *sp. 6M' 'Spinocalanus brevicaudatus 5' 'Spinocalanus brevicaudatus 6F' 'Spinocalanus brevicaudatus 6M' 'Spinocalanus longicornis 5' 'Spionidae *sp. s3' 'Spionidae *sp. larvae s1' 'Spionidae *sp. larvae s2' 'Spirontocaris *sp. s2' 'Stichaeidae *sp. flexion s2' 'Stichaeidae *sp. postflexion s3' 'Stilipes distinctus s2' 'Stilipes distinctus s3' 'Stomotoca *sp. s1' 'Stomotoca atra s1' 'Stomotoca atra s2' 'Stomotoca atra s3' 'Syllidae *sp. s1' 'Syllidae *sp. s2' 'Syllidae *sp. s3' 'Syngnathus leptorhynchus postflexion s3' 'Tessarabrachion oculatum F' 'Teuthida *sp. larvae s1' 'Teuthida *sp. larvae s2' 'Thalassocalyce inconstans s2' 'Thaleichthys pacificus flexion s2' 'Tharybis fultoni 3' 'Tharybis fultoni 4' 'Tharybis fultoni 5' 'Tharybis fultoni 6F' 'Tharybis fultoni 6M' 'Themisto *sp. s1' 'Themisto pacifica F' 'Themisto pacifica M' 'Themisto pacifica s2' 'Themisto pacifica juvenile s1' 'Theragra chalcogramma eggs s1' 'Theragra chalcogramma flexion s2' 'Theragra chalcogramma postflexion s3' 'Theragra chalcogramma preflexion s1' 'Thysanoessa *sp. s1' 'Thysanoessa *sp. s2' 'Thysanoessa *sp. nauplii s1' 'Thysanoessa *sp. zoea s1' 'Thysanoessa longipes F' 'Thysanoessa longipes M' 'Thysanoessa longipes s2' 'Thysanoessa longipes s3' 'Thysanoessa longipes zoea s1' 'Thysanoessa raschii F' 'Thysanoessa raschii M' 'Thysanoessa raschii s2' 'Thysanoessa raschii zoea s1' 'Thysanoessa spinifera F' 'Thysanoessa spinifera M' 'Thysanoessa spinifera s2' 'Thysanoessa spinifera s3' 'Thysanoessa spinifera eggs s1' 'Thysanoessa spinifera nauplii s1' 'Thysanoessa spinifera zoea s1' 'Tiaropsidium kelseyi s2' 'Tiaropsidium kelseyi s3' 'Tintinnida *sp. s1' 'Tomopteris *sp. s1' 'Tomopteris *sp. s2' 'Tomopteris *sp. s3' 'Tomopteris elegans s1' 'Tomopteris elegans s2' 'Tomopteris pacifica s2' 'Tomopteris pacifica s3' 'Tomopteris septentrionalis s1' 'Tomopteris septentrionalis s2' 'Tomopteris septentrionalis s3' 'Tortanus *sp. eggs s1' 'Tortanus *sp. nauplii s1' 'Tortanus discaudatus 1' 'Tortanus discaudatus 2' 'Tortanus discaudatus 3' 'Tortanus discaudatus 4' 'Tortanus discaudatus 5' 'Tortanus discaudatus 6F' 'Tortanus discaudatus 6M' 'Triconia borealis 4' 'Triconia borealis 5' 'Triconia borealis 6F' 'Triconia borealis 6M' 'Triconia conifera 6F' 'Triconia conifera 6M' 'Trochophore *sp. larvae s1' 'Tryphana malmi F' 'Tryphana malmi M' 'Turbellaria *sp. s1' 'Typhloscolex muelleri s1' 'Typhloscolex muelleri s2' 'Typhloscolex muelleri s3' 'Unclassified *sp. eggs s1' 'Xanthidae *sp. megalops s1' 'Xanthidae *sp. zoea s1' 'Xenacanthomysis pseudomacropsis F' 'Xenacanthomysis pseudomacropsis M' 'Xenacanthomysis pseudomacropsis s2' 'Xeneretmus latifrons flexion s2' 'Xeneretmus leiops postflexion s3']
colList=('Anomura *sp. megalops s1',
'Anomura *sp. zoea s1' ,'Anomura *sp. zoea s2', 'Axiidae *sp. s1', 'Axiidae *sp. mysis s2',
'Axiidae *sp. zoea s1' ,'Axiidae *sp. zoea s2','Brachyura *sp. zoea s1',
'Calanoida *sp. 1', 'Calanoida *sp. 2' ,'Calanoida *sp. 3',
'Calanoida *sp. 4' ,'Calanoida *sp. 6M', 'Calanus *sp. 1',
'Calanus *sp. 2', 'Calanus *sp. 3' ,'Calanus *sp. 4',
'Calanus *sp. nauplii s1', 'Calanus marshallae 2' ,'Calanus marshallae 3',
'Calanus marshallae 4' ,'Calanus marshallae 5' ,'Calanus marshallae 6F',
'Calanus marshallae 6M' ,'Calanus pacificus 2' ,'Calanus pacificus 3',
'Calanus pacificus 4' ,'Calanus pacificus 5', 'Calanus pacificus 6F',
'Calanus pacificus 6M','Calliopius *sp. s1' ,'Calliopius *sp. s2', 'Calliopius *sp. s3',
'Calliopius pacificus s1' ,'Calliopius pacificus s2',
'Calliopius pacificus s3', 'Cancer *sp. megalops s1',
'Cancer *sp. zoea s1' ,'Cancer *sp. zoea s2', 'Cancer magister megalops s2',
'Cancer magister zoea s1' ,'Cancer magister zoea s2',
'Cancer oregonensis megalops s1', 'Cancer oregonensis megalops s2',
'Cancer productus megalops s1' ,'Cancer productus megalops s2',
'Cancer productus zoea s1' ,'Cancer productus zoea s2','Caridea *sp. s3' ,'Caridea *sp. mysis s1',
'Caridea *sp. mysis s2', 'Caridea *sp. mysis s3' ,'Caridea *sp. zoea s1',
'Caridea *sp. zoea s2', 'Chaetognatha *sp. s3' ,'Chaetognatha *sp. juvenile s1',
'Chaetognatha *sp. juvenile s2','Chionoecetes *sp. megalops s1',
'Chionoecetes *sp. megalops s2', 'Chionoecetes *sp. zoea s1','Corycaeus anglicus 3',
'Corycaeus anglicus 4' ,'Corycaeus anglicus 5' ,'Corycaeus anglicus 6F',
'Corycaeus anglicus 6M' ,'Crangonidae *sp. mysis s1',
'Crangonidae *sp. mysis s2' ,'Crangonidae *sp. mysis s3',
'Crangonidae *sp. zoea s1', 'Crangonidae *sp. zoea s2','Cyphocaris *sp. s1',
'Cyphocaris challengeri s1' ,'Cyphocaris challengeri s2',
'Cyphocaris challengeri s3', 'Decapoda *sp. zoea s1','Eucalanus *sp. 1',
'Eucalanus *sp. 2' ,'Eucalanus *sp. 3' ,'Eucalanus *sp. nauplii s1',
'Eucalanus bungii 3', 'Eucalanus bungii 4', 'Eucalanus bungii 4F',
'Eucalanus bungii 4M', 'Eucalanus bungii 5F', 'Eucalanus bungii 5M',
'Eucalanus bungii 6F', 'Eucalanus bungii 6M',
'Eucalanus californicus 5F', 'Eucalanus californicus 6F','Euphausia pacifica F',
'Euphausia pacifica M' ,'Euphausia pacifica s2', 'Euphausia pacifica s3',
'Euphausia pacifica eggs s1' ,'Euphausia pacifica nauplii s1',
'Euphausia pacifica zoea s1', 'Euphausiacea *sp. s2',
'Euphausiidae *sp. eggs s1', 'Euphausiidae *sp. nauplii s1',
'Euphausiidae *sp. protozoea (or calyptopis) s1',
'Euphausiidae *sp. zoea (or furcilia) s1','Galatheidae *sp. zoea s1', 'Galatheidae *sp. zoea s2',
'Gammaridea *sp. s1', 'Gammaridea *sp. s2','Grapsidae *sp. megalops s1', 'Grapsidae *sp. zoea s1','Hemigrapsus *sp. megalops s1'
,'Hemigrapsus *sp. zoea s1','Hyperia medusarum F', 'Hyperia medusarum M',
'Hyperia medusarum s1', 'Hyperia medusarum s2' ,'Limacina helicina s0',
'Limacina helicina s1' ,'Limacina helicina s2','Lithodidae *sp. megalops s1',
'Lithodidae *sp. zoea s1', 'Lithodidae *sp. zoea s2','Lophopanopeus *sp. megalops s1','Majidae *sp. megalops s1',
'Majidae *sp. megalops s2', 'Majidae *sp. zoea s1','Metridia *sp. 1',
'Metridia *sp. 2', 'Metridia *sp. 3' ,'Metridia *sp. 4',
'Metridia *sp. 5', 'Metridia *sp. 6F', 'Metridia *sp. 6M',
'Metridia pacifica 3' ,'Metridia pacifica 4' ,'Metridia pacifica 5F',
'Metridia pacifica 5M' 'Metridia pacifica 6F' 'Metridia pacifica 6M'
'Metridia pseudopacifica 5', 'Metridia pseudopacifica 6F',
'Metridia pseudopacifica 6M' ,'Munida *sp. zoea s1' ,'Munida *sp. zoea s2',
'Munida quadrispina megalops s2', 'Munida quadrispina megalops s3','Neocalanus *sp. 4',
'Neocalanus *sp. eggs s1', 'Neocalanus *sp. nauplii s1',
'Neocalanus cristatus 2', 'Neocalanus cristatus 3',
'Neocalanus cristatus 4', 'Neocalanus cristatus 5',
'Neocalanus cristatus 6F' ,'Neocalanus cristatus 6M',
'Neocalanus plumchrus 1', 'Neocalanus plumchrus 2',
'Neocalanus plumchrus 3', 'Neocalanus plumchrus 4',
'Neocalanus plumchrus 5', 'Neocalanus plumchrus 6F',
'Neocalanus plumchrus 6M' ,'Neotrypaea *sp. mysis s1',
'Neotrypaea *sp. mysis s2', 'Neotrypaea *sp. zoea s1',
'Neotrypaea *sp. zoea s2', 'Oikopleura *sp. s1', 'Oikopleura *sp. s2',
'Oikopleura dioica s1' ,'Oikopleura dioica s2',
'Oikopleura labradoriensis s1', 'Oikopleura labradoriensis s2',
'Oikopleura labradoriensis s3', 'Oregonia *sp. megalops s1','Paguridae *sp. megalops s1' ,'Paguridae *sp. megalops s2',
'Paguridae *sp. zoea s1', 'Paguridae *sp. zoea s2',
'Pandalidae *sp. mysis s2', 'Pandalidae *sp. mysis s3',
'Pandalidae *sp. zoea s1', 'Pandalidae *sp. zoea s2',
'Pandalopsis dispar s2' ,'Pandalopsis dispar s3' ,'Pandalus danae s2',
'Pandalus danae s3', 'Pandalus eous s3', 'Pandalus jordani s2',
'Pandalus jordani s3', 'Pandalus stenolepis s1',
'Pandalus stenolepis s2', 'Pandalus stenolepis s3',
'Pandalus tridens s2' ,'Pandalus tridens s3','Parasagitta elegans s2', 'Parasagitta elegans s3',
'Parasagitta elegans juvenile s1', 'Parasagitta euneritica s2',
'Parasagitta euneritica s3','Pinnixa *sp. megalops s1', 'Pinnotheres *sp. megalops s1',
'Pinnotheridae *sp. megalops s1', 'Pinnotheridae *sp. megalops s2',
'Pinnotheridae *sp. zoea s1' ,'Pinnotheridae *sp. zoea s2',
'Pisidae zoea zoea s1', 'Porcellanidae *sp. megalops s1', 'Porcellanidae *sp. zoea s1',
'Porcellanidae *sp. zoea s2', 'Primno *sp. s1', 'Primno abyssalis F',
'Primno abyssalis M', 'Primno abyssalis s1', 'Primno abyssalis s2',
'Primno brevidens s1' ,'Pugettia *sp. megalops s1', 'Themisto *sp. s1',
'Themisto pacifica F', 'Themisto pacifica M', 'Themisto pacifica s2',
'Themisto pacifica juvenile s1', 'Thysanoessa *sp. s1',
'Thysanoessa *sp. s2', 'Thysanoessa *sp. nauplii s1',
'Thysanoessa *sp. zoea s1', 'Thysanoessa longipes F',
'Thysanoessa longipes M', 'Thysanoessa longipes s2',
'Thysanoessa longipes s3' ,'Thysanoessa longipes zoea s1',
'Thysanoessa raschii F', 'Thysanoessa raschii M',
'Thysanoessa raschii s2' ,'Thysanoessa raschii zoea s1',
'Thysanoessa spinifera F', 'Thysanoessa spinifera M',
'Thysanoessa spinifera s2', 'Thysanoessa spinifera s3',
'Thysanoessa spinifera eggs s1', 'Thysanoessa spinifera nauplii s1',
'Thysanoessa spinifera zoea s1','Xanthidae *sp. megalops s1',
'Xanthidae *sp. zoea s1')
df.keys()
Index(['Key', 'region_name', 'Station', 'PROJECT', 'lon', 'lat', 'Date', 'STN_TIME', 'Twilight', 'Net_Type', 'Mesh_Size(um)', 'Net_Mouth_Dia(m)', 'DEPTH_STRT1', 'DEPTH_END1', 'Bottom Depth(m)', 'Volume Filtered(m3)', 'CTD', 'NOTES', 'PI', 'Phylum:', 'Class:', 'Order:', 'Family:', 'Name', 'Abundance(#/m3)', 'Biomass(mg/m3)', 'NumberOfSpecies', 'Station Diversity', 'Station Equitability', 'dtUTC'], dtype='object')
dtsutc=et.pac_to_utc(dts)
df.loc[0]
Key IOS2012005000901 region_name Northern Strait of Georgia Station 22 PROJECT Str. Geo. lon -124.272 lat 49.67 Date 6/14/2012 STN_TIME 7:32 Twilight Daylight Net_Type SCOR VNH Mesh_Size(um) 236 Net_Mouth_Dia(m) 0.56 DEPTH_STRT1 50 DEPTH_END1 0 Bottom Depth(m) 352 Volume Filtered(m3) 10.47 CTD 8.0 NOTES Flowmeter reading may be incorrect. Value ente... PI Dave Mackas Phylum: Arthropoda Class: Branchiopoda Order: Diplostraca Family: Podonidae Name Podon *sp. s1 Abundance(#/m3) 12.22541 Biomass(mg/m3) 0.06113 NumberOfSpecies 51 Station Diversity 2.63 Station Equitability 0.67 dtUTC 2012-06-14 14:32:00 Name: 0, dtype: object
towIDlist=['Key', 'region_name', 'Station', 'lon', 'lat','Date', 'dtUTC', 'Twilight', 'Net_Type', 'Mesh_Size(um)', 'DEPTH_STRT1', 'DEPTH_END1', 'Bottom Depth(m)']
towIDlist2=['Key', 'region_name', 'Station', 'lon', 'lat','Date', 'dtUTC', 'Twilight', 'Net_Type', 'Mesh_Size(um)', 'DEPTH_STRT1', 'DEPTH_END1', 'Bottom Depth(m)','CTD']
len(df.groupby(towIDlist)),len(df.groupby(towIDlist2)),len(df.groupby(['Key']))
(654, 12694, 654)
# Key is a unique identifier for each tow
# do not group by CTD due to NaN values
biomassDF=df.groupby(towIDlist,as_index=False).first()\
.loc[:,towIDlist].copy(deep=True)
biomassDF
Key | region_name | Station | lon | lat | Date | dtUTC | Twilight | Net_Type | Mesh_Size(um) | DEPTH_STRT1 | DEPTH_END1 | Bottom Depth(m) | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | IOS2012005000901 | Northern Strait of Georgia | 22 | -124.272 | 49.670 | 6/14/2012 | 2012-06-14 14:32:00 | Daylight | SCOR VNH | 236 | 50 | 0 | 352 |
1 | IOS2012005001001 | Northern Strait of Georgia | 22 | -124.272 | 49.670 | 6/14/2012 | 2012-06-14 14:52:00 | Daylight | SCOR VNH | 236 | 345 | 0 | 352 |
2 | IOS2012005002101 | Northern Strait of Georgia | 11 | -124.722 | 49.710 | 6/14/2012 | 2012-06-14 07:00:00 | Night | SCOR VNH | 236 | 50 | 0 | 307 |
3 | IOS2012005002201 | Northern Strait of Georgia | 11 | -124.722 | 49.710 | 6/14/2012 | 2012-06-14 07:05:00 | Night | SCOR VNH | 236 | 300 | 0 | 307 |
4 | IOS2012005002901 | Northern Strait of Georgia | CPF2 | -124.499 | 49.466 | 6/15/2012 | 2012-06-15 10:00:00 | Night | SCOR VNH | 236 | 50 | 0 | 325 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
649 | SOO2015095000101 | Tidal Mixed | CLO-42 | -123.345 | 48.394 | 4/27/2015 | 2015-04-27 17:37:00 | Daylight | SCOR VNH | 236 | 58 | 0 | 72 |
650 | SOO2015095000401 | Tidal Mixed | CB01 | -123.318 | 48.344 | 4/30/2015 | 2015-04-30 19:00:00 | Daylight | SCOR VNH | 236 | 54 | 0 | 64 |
651 | SOO2015095000501 | Tidal Mixed | CLO-41 | -123.345 | 48.395 | 7/9/2015 | 2015-07-09 19:25:00 | Daylight | SCOR VNH | 236 | 42 | 0 | 64 |
652 | SOO2015095000701 | Tidal Mixed | CB01 | -123.318 | 48.344 | 7/27/2015 | 2015-07-27 19:06:00 | Daylight | SCOR VNH | 236 | 28 | 0 | 60 |
653 | SOO2015095000801 | Tidal Mixed | MAC41 | -123.409 | 48.402 | 7/27/2015 | 2015-07-27 20:00:00 | Daylight | SCOR VNH | 236 | 49 | 0 | 62 |
654 rows × 13 columns
#### Get abundance column to input into biomassDF as these abundance values will be multiplied by carbon conversion equations
#for icol in colList:
# biomassDF[icol]=[getabundance(icol,ikey,df,'Name') for ikey in biomassDF['Key']]
#for icol in colList:
# biomassDF[icol]=[getabundance(icol,ikey,df) for ikey in biomassDF['Key']]
def getabundance(colname,key,origdf):
abundanceArray=origdf.loc[(origdf.Key==key)&(origdf['Name']==colname),
['Abundance(#/m3)']]
if len(abundanceArray)>1:
print(len(abundanceArray),colname,key)
abundance=np.nansum(abundanceArray)
return abundance
for icol in colList:
biomassDF[icol]=[getabundance(icol,ikey,df) for ikey in biomassDF['Key']]
biomassDF.loc[biomassDF.Key=='IOS2012005000901',['Calanus *sp. 1']]
Calanus *sp. 1 | |
---|---|
0 | 3.05635 |
biomassDF
Key | region_name | Station | lon | lat | Date | dtUTC | Twilight | Net_Type | Mesh_Size(um) | ... | Thysanoessa raschii zoea s1 | Thysanoessa spinifera F | Thysanoessa spinifera M | Thysanoessa spinifera s2 | Thysanoessa spinifera s3 | Thysanoessa spinifera eggs s1 | Thysanoessa spinifera nauplii s1 | Thysanoessa spinifera zoea s1 | Xanthidae *sp. megalops s1 | Xanthidae *sp. zoea s1 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | IOS2012005000901 | Northern Strait of Georgia | 22 | -124.272 | 49.670 | 6/14/2012 | 2012-06-14 14:32:00 | Daylight | SCOR VNH | 236 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
1 | IOS2012005001001 | Northern Strait of Georgia | 22 | -124.272 | 49.670 | 6/14/2012 | 2012-06-14 14:52:00 | Daylight | SCOR VNH | 236 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
2 | IOS2012005002101 | Northern Strait of Georgia | 11 | -124.722 | 49.710 | 6/14/2012 | 2012-06-14 07:00:00 | Night | SCOR VNH | 236 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
3 | IOS2012005002201 | Northern Strait of Georgia | 11 | -124.722 | 49.710 | 6/14/2012 | 2012-06-14 07:05:00 | Night | SCOR VNH | 236 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
4 | IOS2012005002901 | Northern Strait of Georgia | CPF2 | -124.499 | 49.466 | 6/15/2012 | 2012-06-15 10:00:00 | Night | SCOR VNH | 236 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
649 | SOO2015095000101 | Tidal Mixed | CLO-42 | -123.345 | 48.394 | 4/27/2015 | 2015-04-27 17:37:00 | Daylight | SCOR VNH | 236 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
650 | SOO2015095000401 | Tidal Mixed | CB01 | -123.318 | 48.344 | 4/30/2015 | 2015-04-30 19:00:00 | Daylight | SCOR VNH | 236 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
651 | SOO2015095000501 | Tidal Mixed | CLO-41 | -123.345 | 48.395 | 7/9/2015 | 2015-07-09 19:25:00 | Daylight | SCOR VNH | 236 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
652 | SOO2015095000701 | Tidal Mixed | CB01 | -123.318 | 48.344 | 7/27/2015 | 2015-07-27 19:06:00 | Daylight | SCOR VNH | 236 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
653 | SOO2015095000801 | Tidal Mixed | MAC41 | -123.409 | 48.402 | 7/27/2015 | 2015-07-27 20:00:00 | Daylight | SCOR VNH | 236 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
654 rows × 250 columns
biomassDF.keys()[1:100]
Index(['region_name', 'Station', 'Lon', 'Lat', 'Date', 'dtUTC', 'Twilight', 'Net_Type', 'Mesh_Size(um)', 'Z_lower', 'Z_upper', 'Bottom Depth(m)', 'Anomura *sp. megalops s1', 'Anomura *sp. zoea s1', 'Anomura *sp. zoea s2', 'Axiidae *sp. s1', 'Axiidae *sp. mysis s2', 'Axiidae *sp. zoea s1', 'Axiidae *sp. zoea s2', 'Brachyura *sp. zoea s1', 'Calanoida *sp. 1', 'Calanoida *sp. 2', 'Calanoida *sp. 3', 'Calanoida *sp. 4', 'Calanoida *sp. 6M', 'Calanus *sp. 1', 'Calanus *sp. 2', 'Calanus *sp. 3', 'Calanus *sp. 4', 'Calanus *sp. nauplii s1', 'Calanus marshallae 2', 'Calanus marshallae 3', 'Calanus marshallae 4', 'Calanus marshallae 5', 'Calanus marshallae 6F', 'Calanus marshallae 6M', 'Calanus pacificus 2', 'Calanus pacificus 3', 'Calanus pacificus 4', 'Calanus pacificus 5', 'Calanus pacificus 6F', 'Calanus pacificus 6M', 'Calliopius *sp. s1', 'Calliopius *sp. s2', 'Calliopius *sp. s3', 'Calliopius pacificus s1', 'Calliopius pacificus s2', 'Calliopius pacificus s3', 'Cancer *sp. megalops s1', 'Cancer *sp. zoea s1', 'Cancer *sp. zoea s2', 'Cancer magister megalops s2', 'Cancer magister zoea s1', 'Cancer magister zoea s2', 'Cancer oregonensis megalops s1', 'Cancer oregonensis megalops s2', 'Cancer productus megalops s1', 'Cancer productus megalops s2', 'Cancer productus zoea s1', 'Cancer productus zoea s2', 'Caridea *sp. s3', 'Caridea *sp. mysis s1', 'Caridea *sp. mysis s2', 'Caridea *sp. mysis s3', 'Caridea *sp. zoea s1', 'Caridea *sp. zoea s2', 'Chaetognatha *sp. s3', 'Chaetognatha *sp. juvenile s1', 'Chaetognatha *sp. juvenile s2', 'Chionoecetes *sp. megalops s1', 'Chionoecetes *sp. megalops s2', 'Chionoecetes *sp. zoea s1', 'Corycaeus anglicus 3', 'Corycaeus anglicus 4', 'Corycaeus anglicus 5', 'Corycaeus anglicus 6F', 'Corycaeus anglicus 6M', 'Crangonidae *sp. mysis s1', 'Crangonidae *sp. mysis s2', 'Crangonidae *sp. mysis s3', 'Crangonidae *sp. zoea s1', 'Crangonidae *sp. zoea s2', 'Cyphocaris *sp. s1', 'Cyphocaris challengeri s1', 'Cyphocaris challengeri s2', 'Cyphocaris challengeri s3', 'Decapoda *sp. zoea s1', 'Eucalanus *sp. 1', 'Eucalanus *sp. 2', 'Eucalanus *sp. 3', 'Eucalanus *sp. nauplii s1', 'Eucalanus bungii 3', 'Eucalanus bungii 4', 'Eucalanus bungii 4F', 'Eucalanus bungii 4M', 'Eucalanus bungii 5F', 'Eucalanus bungii 5M', 'Eucalanus bungii 6F', 'Eucalanus bungii 6M'], dtype='object')
# define log transform function
def log(x):
return np.log10(x)
biomassDF['Neocalanus plumchrus 1']=(biomassDF['Neocalanus plumchrus 1']*(4.13*(0.9**3.28))*0.45)/1000
biomassDF['Neocalanus plumchrus 2']=(biomassDF['Neocalanus plumchrus 2']*(4.13*(1.1**3.28))*0.45)/1000
biomassDF['Neocalanus plumchrus 3']=(biomassDF['Neocalanus plumchrus 3']*(4.13*(1.75**3.28))*0.45)/1000
biomassDF['Neocalanus plumchrus 4']=(biomassDF['Neocalanus plumchrus 4']*(4.13*(2.6**3.28))*0.45)/1000
biomassDF['Neocalanus plumchrus 5']=(biomassDF['Neocalanus plumchrus 5']*(2.00*(3.8**3.92))*0.5)/1000
biomassDF['Neocalanus plumchrus 6F']=(biomassDF['Neocalanus plumchrus 6F']*(2.00*(4.5**3.92))*0.5)/1000
biomassDF['Neocalanus plumchrus 6M']=(biomassDF['Neocalanus plumchrus 6M']*(2.00*(4.5**3.92))*0.5)/1000
#check these lengths/regression equations
biomassDF['Calanoida *sp. 1']=(biomassDF['Calanoida *sp. 1']*(4.13*(0.5**3.28))*0.45)/1000
biomassDF['Calanoida *sp. 2']=(biomassDF['Calanoida *sp. 2']*(4.13*(0.8**3.28))*0.45)/1000
biomassDF['Calanoida *sp. 3']=(biomassDF['Calanoida *sp. 3']*(4.13*(1.2**3.28))*0.45)/1000
biomassDF['Calanoida *sp. 4']=(biomassDF['Calanoida *sp. 4']*(4.13*(1.4**3.28))*0.45)/1000
biomassDF['Calanoida *sp. 6M']=(biomassDF['Calanoida *sp. 6M']*(2.00*(2.1**3.92))*0.45)/1000
#check these lengths/regression equations
biomassDF['Calanus *sp. 1']=(biomassDF['Calanus *sp. 1']*(4.13*(0.5**3.28))*0.45)/1000
biomassDF['Calanus *sp. 2']=(biomassDF['Calanus *sp. 2']*(4.13*(0.8**3.28))*0.45)/1000
biomassDF['Calanus *sp. 3']=(biomassDF['Calanus *sp. 3']*(4.13*(1.2**3.28))*0.45)/1000
biomassDF['Calanus *sp. 4']=(biomassDF['Calanus *sp. 4']*(4.13*(1.4**3.28))*0.45)/1000
biomassDF['Calanus *sp. nauplii s1']=(biomassDF['Calanus *sp. nauplii s1']*(4.13*(0.4**3.28))*0.45)/1000
biomassDF['Calanus pacificus 2']=(biomassDF['Calanus pacificus 2']*(4.13*(0.8**3.28))*0.45)/1000
biomassDF['Calanus pacificus 3']=(biomassDF['Calanus pacificus 3']*(4.13*(1.1**3.28))*0.45)/1000
biomassDF['Calanus pacificus 4']=(biomassDF['Calanus pacificus 4']*(4.13*(1.4**3.28))*0.45)/1000
biomassDF['Calanus pacificus 5']=(biomassDF['Calanus pacificus 5']*(2.00*(1.8**3.92))*0.45)/1000
biomassDF['Calanus pacificus 6F']=(biomassDF['Calanus pacificus 6F']*(2.00*(2.2**3.92))*0.45)/1000
biomassDF['Calanus pacificus 6M']=(biomassDF['Calanus pacificus 6M']*(2.00*(2.1**3.92))*0.45)/1000
biomassDF['Calanus marshallae 2']=(biomassDF['Calanus marshallae 2']*(4.13*(0.8**3.28))*0.45)/1000
biomassDF['Calanus marshallae 3']=(biomassDF['Calanus marshallae 3']*(4.13*(1.6**3.28))*0.45)/1000
biomassDF['Calanus marshallae 4']=(biomassDF['Calanus marshallae 4']*(4.13*(2.0**3.28))*0.45)/1000
biomassDF['Calanus marshallae 5']=(biomassDF['Calanus marshallae 5']*(2.00*(2.5**3.92))*0.45)/1000
biomassDF['Calanus marshallae 6F']=(biomassDF['Calanus marshallae 6F']*(2.00*(2.8**3.92))*0.45)/1000
biomassDF['Calanus marshallae 6M']=(biomassDF['Calanus marshallae 6M']*(2.00*(2.6**3.92))*0.45)/1000
'Metridia sp. 2', 'Metridia sp. 3' ,'Metridia sp. 4', 'Metridia sp. 5', 'Metridia sp. 6F', 'Metridia sp. 6M', 'Metridia pseudopacifica 5', 'Metridia pseudopacifica 6F', 'Metridia pseudopacifica 6M'
biomassDF['Metridia *sp. 2']=(biomassDF['Metridia *sp. 2']*(4.13*(0.4**3.28))*0.45)/1000
biomassDF['Metridia *sp. 3']=(biomassDF['Metridia *sp. 3']*(4.13*(0.7**3.28))*0.45)/1000
biomassDF['Metridia *sp. 4']=(biomassDF['Metridia *sp. 4']*(4.13*(1.1**3.28))*0.45)/1000
biomassDF['Metridia *sp. 5']=(biomassDF['Metridia *sp. 5']*(4.13*(1.3**3.28))*0.45)/1000
biomassDF['Metridia *sp. 6F']=(biomassDF['Metridia *sp. 6F']*(4.13*(2.0**3.28))*0.45)/1000
biomassDF['Metridia *sp. 6M']=(biomassDF['Metridia *sp. 6M']*(4.13*(1.4**3.28))*0.45)/1000
biomassDF['Metridia pacifica 3']=(biomassDF['Metridia pacifica 3']*(4.13*(0.7**3.28))*0.45)/1000
biomassDF['Metridia pacifica 4']=(biomassDF['Metridia pacifica 4']*(4.13*(1.1**3.28))*0.45)/1000
biomassDF['Metridia pacifica 5F']=(biomassDF['Metridia pacifica 5F']*(4.13*(1.5**3.28))*0.45)/1000
#biomassDF['Metridia pacifica 5M']=biomassDF['Metridia pacifica 5M']*(4.13*(1.3**3.28))*0.45
#biomassDF['Metridia pacifica 6F']=biomassDF['Metridia pacifica 6F']*(4.13*(2.0**3.28))*0.45
#biomassDF['Metridia pacifica 6M']=biomassDF['Metridia pacifica 6M']*(4.13*(1.4**3.28))*0.45
biomassDF['Metridia *sp. 2'].unique()[1:20]
array([0.00260935, 0.02090429, 0.0086791 , 0.01314684, 0.00035168, 0.01081596, 0.00156882, 0.01201997, 0.00216238, 0.02722169, 0.00376946, 0.0137952 , 0.0034529 , 0.00916302, 0.00267991, 0.01073472, 0.00145261, 0.00274524, 0.00100394])
'Eucalanus sp. 1', 'Eucalanus sp. 2' ,'Eucalanus sp. 3' ,'Eucalanus sp. nauplii s1', 'Eucalanus californicus 5F', 'Eucalanus californicus 6F'
biomassDF['Eucalanus bungii 3']=(biomassDF['Eucalanus bungii 3']*(4.13*(2.6**3.28))*0.45)/1000
biomassDF['Eucalanus bungii 4']=(biomassDF['Eucalanus bungii 4']*(4.13*(3.2**3.28))*0.45)/1000
biomassDF['Eucalanus bungii 4F']=(biomassDF['Eucalanus bungii 4F']*(4.13*(3.2**3.28))*0.45)/1000
biomassDF['Eucalanus bungii 4M']=(biomassDF['Eucalanus bungii 4M']*(4.13*(3.2**3.28))*0.45)/1000
biomassDF['Eucalanus bungii 5F']=(biomassDF['Eucalanus bungii 5F']*(4.13*(4.6**3.28))*0.45)/1000
biomassDF['Eucalanus bungii 5M']=(biomassDF['Eucalanus bungii 5M']*(4.13*(4.4**3.28))*0.45)/1000
biomassDF['Eucalanus bungii 6F']=(biomassDF['Eucalanus bungii 6F']*(4.13*(6.2**3.28))*0.45)/1000
biomassDF['Eucalanus bungii 6M']=(biomassDF['Eucalanus bungii 6M']*(4.13*(6.1**3.28))*0.45)/1000
biomassDF['Calanus pacificus 5'].unique()[1:20]
array([0.03194719, 0.20475132, 0.05426117, 0.0515078 , 0. , 0.02195154, 0.02452752, 0.02647487, 0.56557544, 0.08391082, 0.1501332 , 0.13528053, 0.04986061, 0.00547231, 0.02444432, 0.00898015, 0.03032253, 0.00576887, 0.01201845])
'Euphausiacea *sp. s2',
'Thysanoessa sp. s1', 'Thysanoessa sp. s2', 'Thysanoessa *sp. zoea s1',
'Thysanoessa longipes F', 'Thysanoessa longipes M', 'Thysanoessa longipes s2', 'Thysanoessa longipes s3' ,'Thysanoessa longipes zoea s1',
'Thysanoessa raschii F', 'Thysanoessa raschii M', 'Thysanoessa raschii s2' ,'Thysanoessa raschii zoea s1',
'Thysanoessa spinifera F', 'Thysanoessa spinifera M', 'Thysanoessa spinifera s2', 'Thysanoessa spinifera s3', 'Thysanoessa spinifera zoea s1'
#Double check these regressions for the calyptopis and furcilia with BethElLee(4.13*[Length (mm)^3.28)*46.9%
biomassDF['Euphausiidae *sp. protozoea (or calyptopis) s1']=(biomassDF['Euphausiidae *sp. protozoea (or calyptopis) s1']*(4.13*(1.3**3.28)*.469))/1000
biomassDF['Euphausiidae *sp. zoea (or furcilia) s1']=(biomassDF['Euphausiidae *sp. zoea (or furcilia) s1']*(4.13*(3.0**3.28)*.469))/1000
biomassDF['Euphausia pacifica zoea s1']=(biomassDF['Euphausia pacifica zoea s1']*(4.13*(4.7**3.28)*.469))/1000
biomassDF['Euphausia pacifica s2']=(biomassDF['Euphausia pacifica s2']*(4.13*(8.0**3.28)*.469))/1000
biomassDF['Euphausia pacifica s3']=(biomassDF['Euphausia pacifica s3']*(4.13*(12.0**3.28)*.469))/1000
biomassDF['Euphausia pacifica F']=(biomassDF['Euphausia pacifica F']*(4.13*(18.1**3.28)*.469))/1000
biomassDF['Euphausia pacifica M']=(biomassDF['Euphausia pacifica M']*(4.13*(15.1**3.28)*.469))/1000
'Calliopius sp. s1' ,'Calliopius sp. s2', 'Calliopius *sp. s3', 'Calliopius pacificus s1' ,'Calliopius pacificus s2', 'Calliopius pacificus s3',
biomassDF['Themisto *sp. s1']=biomassDF['Themisto *sp. s1']*(0.0049*(3.5**2.957)*1000)*0.37/1000
biomassDF['Themisto pacifica juvenile s1']=biomassDF['Themisto pacifica juvenile s1']*(0.0049*(4.3**2.957)*1000)*0.37/1000
biomassDF['Themisto pacifica s2']=biomassDF['Themisto pacifica s2']*(0.0049*(6.2**2.957)*1000)*0.37/1000
biomassDF['Themisto pacifica F']=biomassDF['Themisto pacifica F']*(0.0049*(7.5**2.957)*1000)*0.37/1000
biomassDF['Themisto pacifica M']=biomassDF['Themisto pacifica M']*(0.0049*(5.9**2.957)*1000)*0.37/1000
biomassDF['Hyperia medusarum s1']=biomassDF['Hyperia medusarum s1']*(0.0049*(3.0**2.957)*1000)*0.37/1000
biomassDF['Hyperia medusarum s2']=biomassDF['Hyperia medusarum s2']*(0.0049*(6.0**2.957)*1000)*0.37/1000
biomassDF['Hyperia medusarum F']=biomassDF['Hyperia medusarum F']*(0.0049*(10.8**2.957)*1000)*0.37/1000
biomassDF['Hyperia medusarum M']=biomassDF['Hyperia medusarum M']*(0.0049*(10.4**2.957)*1000)*0.37/1000
biomassDF['Primno *sp. s1']=biomassDF['Primno *sp. s1']*(0.0049*(3.0**2.957)*1000)*0.37/1000
biomassDF['Primno brevidens s1']=biomassDF['Primno brevidens s1']*(0.0049*(3.0**2.957)*1000)*0.37/1000
biomassDF['Primno abyssalis s1']=biomassDF['Primno abyssalis s1']*(0.0049*(3.0**2.957)*1000)*0.37/1000
biomassDF['Primno abyssalis s2']=biomassDF['Primno abyssalis s2']*(0.0049*(7.5**2.957)*1000)*0.37/1000
biomassDF['Primno abyssalis F']=biomassDF['Primno abyssalis F']*(0.0049*(12.3**2.957)*1000)*0.37/1000
biomassDF['Primno abyssalis M']=biomassDF['Primno abyssalis M']*(0.0049*(11.8**2.957)*1000)*0.37/1000
biomassDF['Gammaridea *sp. s1']=biomassDF['Gammaridea *sp. s1']*(0.0049*(4.0**2.957)*1000)*0.37/1000
biomassDF['Gammaridea *sp. s2']=biomassDF['Gammaridea *sp. s2']*(0.0049*(6.5**2.957)*1000)*0.37/1000
biomassDF['Cyphocaris *sp. s1']=biomassDF['Cyphocaris *sp. s1']*((0.02 * (3.3)**2.1)*1000)*0.37/1000
biomassDF['Cyphocaris challengeri s1']=biomassDF['Cyphocaris challengeri s1']*((0.02 * (3.2)**2.1)*1000)*0.37/1000
biomassDF['Cyphocaris challengeri s2']=biomassDF['Cyphocaris challengeri s2']*((0.02 * (8.6)**2.1)*1000)*0.37/1000
biomassDF['Cyphocaris challengeri s3']=biomassDF['Cyphocaris challengeri s3']*((0.02 * (11.3)**2.1)*1000)*0.37/1000
biomassDF['Chaetognatha *sp. juvenile s1']=biomassDF['Chaetognatha *sp. juvenile s1']*0.0956*(3.5**2.9093)/1000
biomassDF['Chaetognatha *sp. juvenile s2']=biomassDF['Chaetognatha *sp. juvenile s2']*0.0956*(6.0**2.9093)/1000
biomassDF['Chaetognatha *sp. s3']=biomassDF['Chaetognatha *sp. s3']*0.0956*(15.0**2.9093)/1000
biomassDF['Parasagitta elegans juvenile s1']=biomassDF['Parasagitta elegans juvenile s1']*0.0956*(3.5**2.9093)/1000
biomassDF['Parasagitta elegans s2']=biomassDF['Parasagitta elegans s2']*0.0956*(7.5**2.9093)/1000
biomassDF['Parasagitta elegans s3']=biomassDF['Parasagitta elegans s3']*0.0956*(20.0**2.9093)/1000
biomassDF['Parasagitta euneritica s2']=biomassDF['Parasagitta euneritica s2']*0.0956*(7.5**2.9093)/1000
biomassDF['Parasagitta euneritica s3']=biomassDF['Parasagitta euneritica s3']*0.0956*(20.0**2.9093)/1000
biomassDF['Limacina helicina s0']=biomassDF['Limacina helicina s0']*(2.6*(1.0**2.659))*0.22/1000
biomassDF['Limacina helicina s1']=biomassDF['Limacina helicina s1']*(2.6*(2.0**2.659))*0.22/1000
biomassDF['Limacina helicina s2']=biomassDF['Limacina helicina s2']*(2.6*(6.0**2.659))*0.22/1000
biomassDF['Oikopleura *sp. s1']=biomassDF['Oikopleura *sp. s1']*((38.8*(1.3**2.574))*0.46)/1000
biomassDF['Oikopleura dioica s1']=biomassDF['Oikopleura dioica s1']*((38.8*(4.6**2.574))*0.46)/1000
biomassDF['Oikopleura dioica s2']=biomassDF['Oikopleura dioica s2']*((38.8*(8.5**2.574))*0.46)/1000
biomassDF['Oikopleura labradoriensis s1']=biomassDF['Oikopleura labradoriensis s1']*((38.8*(4.6**2.574))*0.46)/1000
biomassDF['Oikopleura labradoriensis s2']=biomassDF['Oikopleura labradoriensis s2']*((38.8*(8.5**2.574))*0.46)/1000
biomassDF['Oikopleura labradoriensis s3']=biomassDF['Oikopleura labradoriensis s3']*((38.8*(18.5**2.574))*0.46)/1000
import netCDF4 as nc
ftemp=nc.Dataset('/data/eolson/results/MEOPAR/NEMO-forcing-new/grid/mesh_mask201702.nc')
ftemp.variables.keys()
dict_keys(['nav_lon', 'nav_lat', 'time_counter', 'tmask', 'umask', 'vmask', 'fmask', 'tmaskutil', 'umaskutil', 'vmaskutil', 'fmaskutil', 'glamt', 'glamu', 'glamv', 'glamf', 'gphit', 'gphiu', 'gphiv', 'gphif', 'e1t', 'e1u', 'e1v', 'e1f', 'e2t', 'e2u', 'e2v', 'e2f', 'ff', 'mbathy', 'misf', 'isfdraft', 'e3t_0', 'e3u_0', 'e3v_0', 'e3w_0', 'gdept_0', 'gdepu', 'gdepv', 'gdepw_0', 'gdept_1d', 'gdepw_1d', 'e3t_1d', 'e3w_1d'])
ftemp.variables['e3t_0']
<class 'netCDF4._netCDF4.Variable'> float64 e3t_0(t, z, y, x) _FillValue: nan standard_name: e3t_0 long_name: grid spacing on T-grid in w direction units: m unlimited dimensions: t current shape = (1, 40, 898, 398) filling on
ftemp.variables['e3t_1d'][:]
masked_array(data=[[ 1.00000115, 1.00000501, 1.00001253, 1.00002718, 1.0000557 , 1.00011125, 1.00021946, 1.0004302 , 1.00084067, 1.00164012, 1.0031971 , 1.00622914, 1.01213271, 1.02362358, 1.04597551, 1.08940061, 1.17356428, 1.33592899, 1.64636781, 2.22990285, 3.29248567, 5.11998508, 7.97451506, 11.8252972 , 16.10792044, 19.95870258, 22.81323256, 24.64073198, 25.70331479, 26.28684983, 26.59728865, 26.75965336, 26.84381704, 26.88724213, 26.90959407, 26.92108493, 26.9269885 , 26.93002054, 26.93157752, 26.93237697]], mask=False, fill_value=1e+20)
fdict={'ptrc_T':1,'grid_T':1}
start_date = dt.datetime(2014,1,1)
end_date = dt.datetime(2016,12,31)
flen=1 # number of days per model output file. always 1 for 201905 and 201812 model runs
namfmt='nowcast' # for 201905 and 201812 model runs, this should always be 'nowcast'
# filemap is dictionary of the form variableName: fileType, where variableName is the name
# of the variable you want to extract and fileType designates the type of
# model output file it can be found in (usually ptrc_T for biology, grid_T for temperature and
# salinity)
filemap={'microzooplankton':'ptrc_T','mesozooplankton':'ptrc_T'}
# fdict is a dictionary mappy file type to its time resolution. Here, 1 means hourly output
# (1h file) and 24 means daily output (1d file). In certain runs, multiple time resolutions
# are available
fdict={'ptrc_T':1,'grid_T':1}
PATH= '/results2/SalishSea/nowcast-green.201905/'
biomassDF.rename(columns={'lon':'Lon','lat':'Lat'},inplace=True)
biomassDF.keys()
Index(['Key', 'region_name', 'Station', 'Lon', 'Lat', 'Date', 'dtUTC', 'Twilight', 'Net_Type', 'Mesh_Size(um)', ... 'OtherCalanoids', 'Calanoids', 'CalanoidsDiaRemoved', 'Euphausiids', 'Themisto', 'Hyperia', 'Primno', 'Hyperiids', 'Gammariids', 'Total'], dtype='object', length=272)
biomassDF.rename(columns={'DEPTH_STRT1':'Z_lower','DEPTH_END1':'Z_upper'},inplace=True)
biomassDF['Year']=[ii.year for ii in biomassDF['dtUTC']]
biomassDF['Month']=[ii.month for ii in biomassDF['dtUTC']]
biomassDF['YD']=et.datetimeToYD(biomassDF['dtUTC'])
Need to convert biomass from mg C to N using a known C:N
#biomassDF['Amphipoda']=biomassDF['Amphipoda']*0.45/8.5
#biomassDF['Euphausiacea']=biomassDF['Euphausiacea']*0.45/8.5
#biomassDF['Calanoida']=biomassDF['Calanoida']*0.45/8.5
#biomassDF['Cyclopoida']=biomassDF['Cyclopoida']*0.45/8.5
#biomassDF['Poecilostomatoida']=biomassDF['Poecilostomatoida']*0.45/8.5
#biomassDF['Copelata']=biomassDF['Copelata']*0.45/8.5
#biomassDF['Harpacticoida']=biomassDF['Harpacticoida']*0.45/8.5
#biomassDF['Decapoda']=biomassDF['Decapoda']*0.45/8.5
biomassDF['Neocalanus']=(biomassDF['Neocalanus plumchrus 1']+biomassDF['Neocalanus plumchrus 2']+biomassDF['Neocalanus plumchrus 3']+biomassDF['Neocalanus plumchrus 4']+biomassDF['Neocalanus plumchrus 5']+biomassDF['Neocalanus plumchrus 6F']+biomassDF['Neocalanus plumchrus 6M'])
biomassDF['NeocalanusDiaRemoved']=(biomassDF['Neocalanus plumchrus 1']+biomassDF['Neocalanus plumchrus 2']+biomassDF['Neocalanus plumchrus 3']+biomassDF['Neocalanus plumchrus 4'])
biomassDF['Neocalanus'].unique()[1:20]
array([1.16228376e+00, 4.25664753e+00, 6.76832999e+00, 1.67322568e-02, 5.19182122e+00, 1.56416337e-02, 5.70440844e-02, 5.50394930e+00, 5.24904520e-02, 2.44223301e+00, 9.88737895e-02, 2.72848784e-01, 2.11242203e+01, 1.60857534e-02, 3.26710947e-01, 1.80099161e+00, 2.83673986e+01, 3.99770194e+01, 3.16960664e+01])
biomassDF['CalPacificus']=(biomassDF['Calanus pacificus 2']+biomassDF['Calanus pacificus 3']+biomassDF['Calanus pacificus 4']+biomassDF['Calanus pacificus 5']+biomassDF['Calanus pacificus 6F']+biomassDF['Calanus pacificus 6M'])
biomassDF['CalPacificusDiaRemoved']=(biomassDF['Calanus pacificus 2']+biomassDF['Calanus pacificus 3']+biomassDF['Calanus pacificus 4'])
biomassDF['CalMarsh']=(biomassDF['Calanus marshallae 2']+biomassDF['Calanus marshallae 3']+biomassDF['Calanus marshallae 4']+biomassDF['Calanus marshallae 5']+biomassDF['Calanus marshallae 6F']+biomassDF['Calanus marshallae 6M'])
biomassDF['CalMarshDiaRemoved']=(biomassDF['Calanus marshallae 2']+biomassDF['Calanus marshallae 3']+biomassDF['Calanus marshallae 4']+biomassDF['Calanus marshallae 5'])
biomassDF['Metridia']=(biomassDF['Metridia *sp. 2']+biomassDF['Metridia *sp. 3']+biomassDF['Metridia *sp. 4']+biomassDF['Metridia *sp. 5']+biomassDF['Metridia *sp. 6F']+biomassDF['Metridia *sp. 6M']+biomassDF['Metridia pacifica 3']+biomassDF['Metridia pacifica 4']+biomassDF['Metridia pacifica 5F'])
biomassDF['Eucalanus']=(biomassDF['Eucalanus bungii 3']+biomassDF['Eucalanus bungii 4']+biomassDF['Eucalanus bungii 4F']+biomassDF['Eucalanus bungii 4M']+biomassDF['Eucalanus bungii 5F']+biomassDF['Eucalanus bungii 5M']+biomassDF['Eucalanus bungii 6F']+biomassDF['Eucalanus bungii 6M'])
biomassDF['EucalanusDiaRemoved']=(biomassDF['Eucalanus bungii 3']+biomassDF['Eucalanus bungii 4']+biomassDF['Eucalanus bungii 4F']+biomassDF['Eucalanus bungii 4M'])
biomassDF['Metridia'].unique()[1:20]
array([0.05328713, 0.15333201, 0.15656956, 0.47845137, 0.04713698, 0.11257754, 0.0756802 , 0.11441692, 0.0672129 , 0.2762964 , 0.09263692, 0.07144549, 0.01643963, 0.07175813, 0.03725966, 0.06370595, 0.03816424, 0.08821852, 0.04425084])
biomassDF['OtherCalanoids']=(biomassDF['Calanoida *sp. 1']+biomassDF['Calanoida *sp. 2']+biomassDF['Calanoida *sp. 3']+biomassDF['Calanoida *sp. 4']+biomassDF['Calanoida *sp. 6M']+biomassDF['Calanus *sp. 1']+biomassDF['Calanus *sp. 2']+biomassDF['Calanus *sp. 3']+biomassDF['Calanus *sp. 4'])
biomassDF['Calanoids']=biomassDF['Neocalanus']+biomassDF['CalPacificus']+biomassDF['CalMarsh']+biomassDF['Metridia']+biomassDF['Eucalanus']+biomassDF['OtherCalanoids']
biomassDF['CalanoidsDiaRemoved']=biomassDF['NeocalanusDiaRemoved']+biomassDF['CalPacificusDiaRemoved']+biomassDF['CalMarshDiaRemoved']+biomassDF['EucalanusDiaRemoved']+biomassDF['OtherCalanoids']
biomassDF['Euphausiids']=(biomassDF['Euphausiidae *sp. protozoea (or calyptopis) s1']+biomassDF['Euphausiidae *sp. zoea (or furcilia) s1']+biomassDF['Euphausia pacifica zoea s1']+biomassDF['Euphausia pacifica s2']+biomassDF['Euphausia pacifica s3']+biomassDF['Euphausia pacifica F']+biomassDF['Euphausia pacifica M'])
biomassDF['Themisto']=(biomassDF['Themisto *sp. s1']+biomassDF['Themisto pacifica juvenile s1']+biomassDF['Themisto pacifica s2']+biomassDF['Themisto pacifica F']+biomassDF['Themisto pacifica M'])
biomassDF['Hyperia']=(biomassDF['Hyperia medusarum s1']+biomassDF['Hyperia medusarum s2']+biomassDF['Hyperia medusarum F']+biomassDF['Hyperia medusarum M'])
biomassDF['Primno']=(biomassDF['Primno *sp. s1']+biomassDF['Primno brevidens s1']+biomassDF['Primno abyssalis s1']+biomassDF['Primno abyssalis s2']+biomassDF['Primno abyssalis F']+biomassDF['Primno abyssalis M'])
biomassDF['Hyperiids']=biomassDF['Themisto']+biomassDF['Hyperia']+biomassDF['Primno']
biomassDF['Gammariids']=(biomassDF['Gammaridea *sp. s1']+biomassDF['Gammaridea *sp. s2'])
biomassDF['Total']=biomassDF['Calanoids']+biomassDF['Euphausiids']+biomassDF['Hyperiids']+biomassDF['Gammariids']
biomassDF['Hyperiids'].unique()[1:20]
array([0.36245896, 1.87300085, 3.0219189 , 8.89761441, 0.88179773, 2.20092374, 1.05748946, 2.39226072, 0.14470814, 1.42228345, 0.81166803, 0.79332675, 0.66087864, 0.17989049, 0.37087584, 1.05846975, 0.57754293, 0.05944203, 0.2487363 ])
biomassDF
Key | region_name | Station | lon | lat | Date | dtUTC | Twilight | Net_Type | Mesh_Size(um) | ... | OtherCalanoids | Calanoids | CalanoidsDiaRemoved | Euphausiids | Themisto | Hyperia | Primno | Hyperiids | Gammariids | Total | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | IOS2012005000901 | Northern Strait of Georgia | 22 | -124.272 | 49.670 | 6/14/2012 | 2012-06-14 14:32:00 | Daylight | SCOR VNH | 236 | ... | 0.115408 | 0.445351 | 0.237637 | 0.448822 | 0.827555 | 0.000000 | 0.000000 | 0.827555 | 0.0 | 1.721729 |
1 | IOS2012005001001 | Northern Strait of Georgia | 22 | -124.272 | 49.670 | 6/14/2012 | 2012-06-14 14:52:00 | Daylight | SCOR VNH | 236 | ... | 0.015486 | 3.666233 | 0.604391 | 0.172039 | 0.278596 | 0.000000 | 0.083863 | 0.362459 | 0.0 | 4.200731 |
2 | IOS2012005002101 | Northern Strait of Georgia | 11 | -124.722 | 49.710 | 6/14/2012 | 2012-06-14 07:00:00 | Night | SCOR VNH | 236 | ... | 0.004346 | 12.477846 | 1.859686 | 0.000000 | 1.635304 | 0.000000 | 0.237697 | 1.873001 | 0.0 | 14.350847 |
3 | IOS2012005002201 | Northern Strait of Georgia | 11 | -124.722 | 49.710 | 6/14/2012 | 2012-06-14 07:05:00 | Night | SCOR VNH | 236 | ... | 0.010369 | 14.173214 | 2.698241 | 12.270955 | 2.562381 | 0.000000 | 0.459538 | 3.021919 | 0.0 | 29.466088 |
4 | IOS2012005002901 | Northern Strait of Georgia | CPF2 | -124.499 | 49.466 | 6/15/2012 | 2012-06-15 10:00:00 | Night | SCOR VNH | 236 | ... | 0.051333 | 0.747524 | 0.051333 | 39.755211 | 7.895820 | 0.197026 | 0.804768 | 8.897614 | 0.0 | 49.400349 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
649 | SOO2015095000101 | Tidal Mixed | CLO-42 | -123.345 | 48.394 | 4/27/2015 | 2015-04-27 17:37:00 | Daylight | SCOR VNH | 236 | ... | 0.000146 | 0.496019 | 0.056654 | 0.000000 | 0.304123 | 0.000000 | 0.000000 | 0.304123 | 0.0 | 0.800142 |
650 | SOO2015095000401 | Tidal Mixed | CB01 | -123.318 | 48.344 | 4/30/2015 | 2015-04-30 19:00:00 | Daylight | SCOR VNH | 236 | ... | 0.006763 | 1.091657 | 0.180086 | 0.023474 | 1.761051 | 0.000000 | 0.000000 | 1.761051 | 0.0 | 2.876183 |
651 | SOO2015095000501 | Tidal Mixed | CLO-41 | -123.345 | 48.395 | 7/9/2015 | 2015-07-09 19:25:00 | Daylight | SCOR VNH | 236 | ... | 0.010097 | 0.141755 | 0.075749 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.000000 | 0.0 | 0.141755 |
652 | SOO2015095000701 | Tidal Mixed | CB01 | -123.318 | 48.344 | 7/27/2015 | 2015-07-27 19:06:00 | Daylight | SCOR VNH | 236 | ... | 0.029189 | 0.029189 | 0.029189 | 0.003526 | 0.168176 | 0.000000 | 0.000000 | 0.168176 | 0.0 | 0.200890 |
653 | SOO2015095000801 | Tidal Mixed | MAC41 | -123.409 | 48.402 | 7/27/2015 | 2015-07-27 20:00:00 | Daylight | SCOR VNH | 236 | ... | 0.399796 | 0.893605 | 0.655242 | 0.000000 | 0.731182 | 0.000000 | 0.000000 | 0.731182 | 0.0 | 1.624787 |
654 rows × 269 columns
biomassDF['Month']=[ii.month for ii in biomassDF['dtUTC']]
biomassDF.loc[biomassDF.Month==2,['Calanoids']]
Calanoids | |
---|---|
239 | 0.231678 |
240 | 0.262995 |
241 | 0.045065 |
242 | 0.011634 |
243 | 0.263927 |
244 | 0.210876 |
457 | 0.910112 |
458 | 1.208902 |
459 | 1.319525 |
589 | 0.150697 |
590 | 0.294798 |
591 | 0.441176 |
592 | 0.343120 |
logt_inv(np.mean(logt(biomassDF.loc[biomassDF.Month==2,['Calanoids']])))
Calanoids 0.25467 dtype: float64
data=et.matchData(biomassDF,filemap,fdict,start_date,end_date,'nowcast',PATH,1,quiet=False,method='vertNet');
Warning: lower limit is not an ocean value: i=265, j=388, k_upper=0, k_lower=27, k_seafloor=27 Lon=-123.311, Lat=48.898, dtUTC=2014-03-09 18:57:00 Warning: lower limit is not an ocean value: i=265, j=388, k_upper=0, k_lower=27, k_seafloor=27 Lon=-123.311, Lat=48.898, dtUTC=2014-03-09 18:57:00 Warning: lower limit is not an ocean value: i=159, j=645, k_upper=0, k_lower=34, k_seafloor=34 Lon=-124.72200000000001, Lat=49.706, dtUTC=2014-04-06 07:14:00 Warning: lower limit is not an ocean value: i=159, j=645, k_upper=0, k_lower=34, k_seafloor=34 Lon=-124.72200000000001, Lat=49.706, dtUTC=2014-04-06 07:14:00 Warning: lower limit is not an ocean value: i=201, j=382, k_upper=0, k_lower=22, k_seafloor=11 Lon=-123.62299999999999, Lat=48.751000000000005, dtUTC=2014-04-23 18:49:00 Warning: lower limit is not an ocean value: i=201, j=382, k_upper=0, k_lower=22, k_seafloor=11 Lon=-123.62299999999999, Lat=48.751000000000005, dtUTC=2014-04-23 18:49:00 Warning: lower limit is not an ocean value: i=202, j=382, k_upper=0, k_lower=22, k_seafloor=17 Lon=-123.62100000000001, Lat=48.751000000000005, dtUTC=2014-04-29 18:20:00 Warning: lower limit is not an ocean value: i=202, j=382, k_upper=0, k_lower=22, k_seafloor=17 Lon=-123.62100000000001, Lat=48.751000000000005, dtUTC=2014-04-29 18:20:00 Warning: lower limit is not an ocean value: i=205, j=381, k_upper=0, k_lower=23, k_seafloor=23 Lon=-123.605, Lat=48.755, dtUTC=2014-04-29 19:40:00 Warning: lower limit is not an ocean value: i=205, j=381, k_upper=0, k_lower=23, k_seafloor=23 Lon=-123.605, Lat=48.755, dtUTC=2014-04-29 19:40:00 Warning: lower limit is not an ocean value: i=203, j=378, k_upper=0, k_lower=22, k_seafloor=22 Lon=-123.602, Lat=48.74100000000001, dtUTC=2014-04-29 20:36:00 Warning: lower limit is not an ocean value: i=203, j=378, k_upper=0, k_lower=22, k_seafloor=22 Lon=-123.602, Lat=48.74100000000001, dtUTC=2014-04-29 20:36:00 Warning: lower limit is not an ocean value: i=201, j=382, k_upper=0, k_lower=19, k_seafloor=11 Lon=-123.62299999999999, Lat=48.751000000000005, dtUTC=2014-05-07 18:07:00 Warning: lower limit is not an ocean value: i=201, j=382, k_upper=0, k_lower=19, k_seafloor=11 Lon=-123.62299999999999, Lat=48.751000000000005, dtUTC=2014-05-07 18:07:00 Warning: lower limit is not an ocean value: i=211, j=382, k_upper=0, k_lower=24, k_seafloor=24 Lon=-123.574, Lat=48.77, dtUTC=2014-05-07 21:42:00 Warning: lower limit is not an ocean value: i=211, j=382, k_upper=0, k_lower=24, k_seafloor=24 Lon=-123.574, Lat=48.77, dtUTC=2014-05-07 21:42:00 Warning: lower limit is not an ocean value: i=202, j=382, k_upper=0, k_lower=18, k_seafloor=17 Lon=-123.62299999999999, Lat=48.751999999999995, dtUTC=2014-05-15 18:20:00 Warning: lower limit is not an ocean value: i=202, j=382, k_upper=0, k_lower=18, k_seafloor=17 Lon=-123.62299999999999, Lat=48.751999999999995, dtUTC=2014-05-15 18:20:00 Warning: lower limit is not an ocean value: i=205, j=381, k_upper=0, k_lower=23, k_seafloor=23 Lon=-123.605, Lat=48.755, dtUTC=2014-05-15 20:24:00 Warning: lower limit is not an ocean value: i=205, j=381, k_upper=0, k_lower=23, k_seafloor=23 Lon=-123.605, Lat=48.755, dtUTC=2014-05-15 20:24:00 Warning: lower limit is not an ocean value: i=211, j=382, k_upper=0, k_lower=24, k_seafloor=24 Lon=-123.572, Lat=48.771, dtUTC=2014-05-28 16:49:00 Warning: lower limit is not an ocean value: i=211, j=382, k_upper=0, k_lower=24, k_seafloor=24 Lon=-123.572, Lat=48.771, dtUTC=2014-05-28 16:49:00 Warning: lower limit is not an ocean value: i=202, j=382, k_upper=0, k_lower=21, k_seafloor=17 Lon=-123.62200000000001, Lat=48.751999999999995, dtUTC=2014-05-28 19:49:00 Warning: lower limit is not an ocean value: i=202, j=382, k_upper=0, k_lower=21, k_seafloor=17 Lon=-123.62200000000001, Lat=48.751999999999995, dtUTC=2014-05-28 19:49:00 Warning: lower limit is not an ocean value: i=207, j=376, k_upper=0, k_lower=25, k_seafloor=25 Lon=-123.575, Lat=48.736999999999995, dtUTC=2014-06-05 21:11:00 Warning: lower limit is not an ocean value: i=207, j=376, k_upper=0, k_lower=25, k_seafloor=25 Lon=-123.575, Lat=48.736999999999995, dtUTC=2014-06-05 21:11:00 Warning: lower limit is not an ocean value: i=122, j=628, k_upper=0, k_lower=23, k_seafloor=23 Lon=-124.86, Lat=49.568999999999996, dtUTC=2014-06-20 21:38:00 Warning: lower limit is not an ocean value: i=122, j=628, k_upper=0, k_lower=23, k_seafloor=23 Lon=-124.86, Lat=49.568999999999996, dtUTC=2014-06-20 21:38:00 Warning: lower limit is not an ocean value: i=120, j=621, k_upper=0, k_lower=23, k_seafloor=23 Lon=-124.84200000000001, Lat=49.537, dtUTC=2014-06-20 23:06:00 Warning: lower limit is not an ocean value: i=120, j=621, k_upper=0, k_lower=23, k_seafloor=23 Lon=-124.84200000000001, Lat=49.537, dtUTC=2014-06-20 23:06:00 Warning: lower limit is not an ocean value: i=123, j=606, k_upper=0, k_lower=23, k_seafloor=19 Lon=-124.77600000000001, Lat=49.483999999999995, dtUTC=2014-06-21 16:45:00 Warning: lower limit is not an ocean value: i=123, j=606, k_upper=0, k_lower=23, k_seafloor=19 Lon=-124.77600000000001, Lat=49.483999999999995, dtUTC=2014-06-21 16:45:00 Warning: lower limit is not an ocean value: i=136, j=606, k_upper=0, k_lower=23, k_seafloor=22 Lon=-124.713, Lat=49.50899999999999, dtUTC=2014-06-22 19:39:00 Warning: lower limit is not an ocean value: i=136, j=606, k_upper=0, k_lower=23, k_seafloor=22 Lon=-124.713, Lat=49.50899999999999, dtUTC=2014-06-22 19:39:00 Warning: lower limit is not an ocean value: i=134, j=639, k_upper=0, k_lower=23, k_seafloor=23 Lon=-124.831, Lat=49.635, dtUTC=2014-06-22 23:04:00 Warning: lower limit is not an ocean value: i=134, j=639, k_upper=0, k_lower=23, k_seafloor=23 Lon=-124.831, Lat=49.635, dtUTC=2014-06-22 23:04:00 Warning: lower limit is not an ocean value: i=125, j=635, k_upper=0, k_lower=23, k_seafloor=23 Lon=-124.866, Lat=49.604, dtUTC=2015-02-18 08:00:00 Warning: lower limit is not an ocean value: i=125, j=635, k_upper=0, k_lower=23, k_seafloor=23 Lon=-124.866, Lat=49.604, dtUTC=2015-02-18 08:00:00 Warning: lower limit is not an ocean value: i=211, j=382, k_upper=0, k_lower=24, k_seafloor=24 Lon=-123.575, Lat=48.77, dtUTC=2015-02-19 19:16:00 Warning: lower limit is not an ocean value: i=211, j=382, k_upper=0, k_lower=24, k_seafloor=24 Lon=-123.575, Lat=48.77, dtUTC=2015-02-19 19:16:00 Warning: lower limit is not an ocean value: i=201, j=381, k_upper=0, k_lower=21, k_seafloor=18 Lon=-123.62299999999999, Lat=48.75, dtUTC=2015-02-19 20:17:00 Warning: lower limit is not an ocean value: i=201, j=381, k_upper=0, k_lower=21, k_seafloor=18 Lon=-123.62299999999999, Lat=48.75, dtUTC=2015-02-19 20:17:00 Warning: lower limit is not an ocean value: i=207, j=376, k_upper=0, k_lower=25, k_seafloor=25 Lon=-123.574, Lat=48.738, dtUTC=2015-02-19 21:59:00 Warning: lower limit is not an ocean value: i=207, j=376, k_upper=0, k_lower=25, k_seafloor=25 Lon=-123.574, Lat=48.738, dtUTC=2015-02-19 21:59:00 Warning: lower limit is not an ocean value: i=202, j=379, k_upper=0, k_lower=22, k_seafloor=22 Lon=-123.60700000000001, Lat=48.74100000000001, dtUTC=2015-03-12 19:01:00 Warning: lower limit is not an ocean value: i=202, j=379, k_upper=0, k_lower=22, k_seafloor=22 Lon=-123.60700000000001, Lat=48.74100000000001, dtUTC=2015-03-12 19:01:00 Warning: lower limit is not an ocean value: i=202, j=382, k_upper=0, k_lower=22, k_seafloor=17 Lon=-123.62200000000001, Lat=48.751000000000005, dtUTC=2015-03-12 20:36:00 Warning: lower limit is not an ocean value: i=202, j=382, k_upper=0, k_lower=22, k_seafloor=17 Lon=-123.62200000000001, Lat=48.751000000000005, dtUTC=2015-03-12 20:36:00 Warning: lower limit is not an ocean value: i=124, j=605, k_upper=0, k_lower=24, k_seafloor=24 Lon=-124.76799999999999, Lat=49.483000000000004, dtUTC=2015-03-17 22:27:00 Warning: lower limit is not an ocean value: i=124, j=605, k_upper=0, k_lower=24, k_seafloor=24 Lon=-124.76799999999999, Lat=49.483000000000004, dtUTC=2015-03-17 22:27:00 Warning: lower limit is not an ocean value: i=211, j=382, k_upper=0, k_lower=24, k_seafloor=24 Lon=-123.573, Lat=48.769, dtUTC=2015-03-19 16:58:00 Warning: lower limit is not an ocean value: i=211, j=382, k_upper=0, k_lower=24, k_seafloor=24 Lon=-123.573, Lat=48.769, dtUTC=2015-03-19 16:58:00 Warning: lower limit is not an ocean value: i=202, j=381, k_upper=0, k_lower=23, k_seafloor=23 Lon=-123.618, Lat=48.75, dtUTC=2015-03-19 19:51:00 Warning: lower limit is not an ocean value: i=202, j=381, k_upper=0, k_lower=23, k_seafloor=23 Lon=-123.618, Lat=48.75, dtUTC=2015-03-19 19:51:00 Warning: lower limit is not an ocean value: i=149, j=594, k_upper=0, k_lower=25, k_seafloor=25 Lon=-124.60600000000001, Lat=49.485, dtUTC=2015-03-21 17:18:00 Warning: lower limit is not an ocean value: i=149, j=594, k_upper=0, k_lower=25, k_seafloor=25 Lon=-124.60600000000001, Lat=49.485, dtUTC=2015-03-21 17:18:00 Warning: lower limit is not an ocean value: i=211, j=382, k_upper=0, k_lower=24, k_seafloor=24 Lon=-123.575, Lat=48.769, dtUTC=2015-03-26 16:05:00 Warning: lower limit is not an ocean value: i=211, j=382, k_upper=0, k_lower=24, k_seafloor=24 Lon=-123.575, Lat=48.769, dtUTC=2015-03-26 16:05:00 Warning: lower limit is not an ocean value: i=211, j=382, k_upper=0, k_lower=24, k_seafloor=24 Lon=-123.574, Lat=48.769, dtUTC=2015-04-02 15:49:00 Warning: lower limit is not an ocean value: i=211, j=382, k_upper=0, k_lower=24, k_seafloor=24 Lon=-123.574, Lat=48.769, dtUTC=2015-04-02 15:49:00 Warning: lower limit is not an ocean value: i=203, j=378, k_upper=0, k_lower=22, k_seafloor=22 Lon=-123.60600000000001, Lat=48.74, dtUTC=2015-04-02 17:41:00 Warning: lower limit is not an ocean value: i=203, j=378, k_upper=0, k_lower=22, k_seafloor=22 Lon=-123.60600000000001, Lat=48.74, dtUTC=2015-04-02 17:41:00 Warning: lower limit is not an ocean value: i=202, j=382, k_upper=0, k_lower=20, k_seafloor=17 Lon=-123.62299999999999, Lat=48.751999999999995, dtUTC=2015-04-02 19:14:00 Warning: lower limit is not an ocean value: i=202, j=382, k_upper=0, k_lower=20, k_seafloor=17 Lon=-123.62299999999999, Lat=48.751999999999995, dtUTC=2015-04-02 19:14:00 Warning: lower limit is not an ocean value: i=202, j=382, k_upper=0, k_lower=19, k_seafloor=17 Lon=-123.62200000000001, Lat=48.751000000000005, dtUTC=2015-04-16 19:10:00 Warning: lower limit is not an ocean value: i=202, j=382, k_upper=0, k_lower=19, k_seafloor=17 Lon=-123.62200000000001, Lat=48.751000000000005, dtUTC=2015-04-16 19:10:00 Warning: lower limit is not an ocean value: i=126, j=636, k_upper=0, k_lower=23, k_seafloor=23 Lon=-124.867, Lat=49.608000000000004, dtUTC=2015-05-13 18:06:00 Warning: lower limit is not an ocean value: i=126, j=636, k_upper=0, k_lower=23, k_seafloor=23 Lon=-124.867, Lat=49.608000000000004, dtUTC=2015-05-13 18:06:00 Warning: lower limit is not an ocean value: i=149, j=594, k_upper=0, k_lower=25, k_seafloor=25 Lon=-124.605, Lat=49.485, dtUTC=2015-05-17 15:59:00 Warning: lower limit is not an ocean value: i=149, j=594, k_upper=0, k_lower=25, k_seafloor=25 Lon=-124.605, Lat=49.485, dtUTC=2015-05-17 15:59:00 Warning: lower limit is not an ocean value: i=202, j=382, k_upper=0, k_lower=19, k_seafloor=17 Lon=-123.62200000000001, Lat=48.751999999999995, dtUTC=2015-05-19 18:50:00 Warning: lower limit is not an ocean value: i=202, j=382, k_upper=0, k_lower=19, k_seafloor=17 Lon=-123.62200000000001, Lat=48.751999999999995, dtUTC=2015-05-19 18:50:00 Warning: lower limit is not an ocean value: i=159, j=646, k_upper=0, k_lower=34, k_seafloor=34 Lon=-124.72399999999999, Lat=49.707, dtUTC=2015-06-28 06:15:00 Warning: lower limit is not an ocean value: i=159, j=646, k_upper=0, k_lower=34, k_seafloor=34 Lon=-124.72399999999999, Lat=49.707, dtUTC=2015-06-28 06:15:00 Warning: lower limit is not an ocean value: i=239, j=329, k_upper=0, k_lower=31, k_seafloor=29 Lon=-123.249, Lat=48.615, dtUTC=2015-08-20 02:52:00 Warning: lower limit is not an ocean value: i=239, j=329, k_upper=0, k_lower=31, k_seafloor=29 Lon=-123.249, Lat=48.615, dtUTC=2015-08-20 02:52:00 Warning: lower limit is not an ocean value: i=149, j=594, k_upper=0, k_lower=25, k_seafloor=25 Lon=-124.605, Lat=49.485, dtUTC=2015-09-14 17:11:00 Warning: lower limit is not an ocean value: i=149, j=594, k_upper=0, k_lower=25, k_seafloor=25 Lon=-124.605, Lat=49.485, dtUTC=2015-09-14 17:11:00 Warning: lower limit is not an ocean value: i=251, j=457, k_upper=0, k_lower=28, k_seafloor=28 Lon=-123.61399999999999, Lat=49.141999999999996, dtUTC=2015-10-04 07:32:00 Warning: lower limit is not an ocean value: i=251, j=457, k_upper=0, k_lower=28, k_seafloor=28 Lon=-123.61399999999999, Lat=49.141999999999996, dtUTC=2015-10-04 07:32:00
data
Key | region_name | Station | Lon | Lat | Date | dtUTC | Twilight | Net_Type | Mesh_Size(um) | ... | Primno | Hyperiids | Gammariids | Total | j | i | mod_microzooplankton | mod_mesozooplankton | k_upper | k_lower | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | PBS2014016000801 | Juan de Fuca | JF03 | -124.051 | 48.388 | 3/7/2014 | 2014-03-07 19:01:00 | Daylight | Bongo VNH | 253 | ... | 0.000000 | 0.092604 | 0.0 | 10.554291 | 342 | 94 | 0.049066 | 0.286660 | 0 | 23 |
1 | PBS2014016004401 | Central Strait of Georgia | GS04 | -123.311 | 48.898 | 3/9/2014 | 2014-03-09 18:57:00 | Daylight | Bongo VNH | 253 | ... | 0.000000 | 0.025194 | 0.0 | 0.335986 | 388 | 265 | 0.065740 | 0.263313 | 0 | 27 |
2 | PBS2014016005201 | Central Strait of Georgia | GS08 | -123.580 | 49.045 | 3/9/2014 | 2014-03-09 23:57:00 | Daylight | Bongo VNH | 253 | ... | 0.158000 | 0.261419 | 0.0 | 1.316260 | 436 | 244 | 0.045737 | 0.193986 | 0 | 28 |
3 | IOS2014003000101 | Central Strait of Georgia | GEO1 | -123.744 | 49.250 | 3/9/2014 | 2014-03-10 02:08:00 | Daylight | SCOR VNH | 236 | ... | 0.068851 | 0.068851 | 0.0 | 1.469906 | 487 | 246 | 0.021994 | 0.094057 | 0 | 37 |
4 | PBS2014016011401 | Central Strait of Georgia | GS20 | -123.484 | 49.068 | 3/13/2014 | 2014-03-13 21:12:00 | Daylight | Bongo VNH | 253 | ... | 0.118801 | 0.286148 | 0.0 | 1.654707 | 433 | 261 | 0.059742 | 0.211711 | 0 | 28 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
461 | PSF2015097005001 | Northern Strait of Georgia | IS-3 | -124.287 | 49.655 | 10/5/2015 | 2015-10-05 18:43:00 | Daylight | Ring VNH | 250 | ... | 0.289586 | 0.623782 | 0.0 | 3.103821 | 604 | 217 | 0.057682 | 0.424223 | 0 | 28 |
462 | PSF2015098005701 | Northern Strait of Georgia | BS-3 | -124.666 | 49.692 | 10/5/2015 | 2015-10-05 19:15:00 | Daylight | Ring VNH | 250 | ... | 0.667453 | 1.180838 | 0.0 | 76.616760 | 639 | 166 | 0.058821 | 0.396426 | 0 | 28 |
463 | PSF2015098005801 | Baynes Sound | BS-1 | -124.867 | 49.608 | 10/5/2015 | 2015-10-05 20:38:00 | Daylight | Ring VNH | 250 | ... | 0.000000 | 0.000000 | 0.0 | 0.075827 | 636 | 126 | 0.194869 | 1.209480 | 0 | 22 |
464 | PSF2015097005101 | Nearshore-North East | IS-2 | -124.083 | 49.637 | 10/5/2015 | 2015-10-05 20:40:00 | Daylight | Ring VNH | 250 | ... | 0.000000 | 4.332255 | 0.0 | 4.409816 | 587 | 245 | 0.159315 | 1.060016 | 0 | 21 |
465 | PSF2015098005901 | Baynes Sound | BS-7 | -124.767 | 49.483 | 10/5/2015 | 2015-10-05 21:51:00 | Daylight | Ring VNH | 250 | ... | 0.000000 | 1.026601 | 0.0 | 1.921206 | 605 | 125 | 0.183379 | 1.091250 | 0 | 23 |
466 rows × 278 columns
cm1=cmocean.cm.thermal
with nc.Dataset('/ocean/ksuchy/MOAD/NEMO-forcing/grid/bathymetry_201702.nc') as bathy:
bathylon=np.copy(bathy.variables['nav_lon'][:,:])
bathylat=np.copy(bathy.variables['nav_lat'][:,:])
bathyZ=np.copy(bathy.variables['Bathymetry'][:,:])
# define log transform function with slight shift to accommodate zero values
def logt(x):
return np.log10(x+.001)
# define inverse log transform with same shift
def logt_inv(y):
return 10**y-.001
data['Euphausiids'].unique()[20:40]
array([3.5717944 , 4.38464013, 1.8619691 , 0.77795756, 0.07166609, 4.9216666 , 1.30426199, 0.04374841, 0.03221038, 1.42433184, 3.62682488, 6.55181683, 0.08520765, 1.18366988, 1.02939106, 0.29600866, 0.85211712, 1.79831119, 0.50258672, 0.07633187])
data['L10Calanoids']=logt(data['Calanoids'])
data['L10CalanoidsDiaRemoved']=logt(data['CalanoidsDiaRemoved'])
data['L10Euphausiids']=logt(data['Euphausiids'])
data['L10Hyperiids']=logt(data['Hyperiids'])
data['L10Gammariids']=logt(data['Gammariids'])
data['L10Neocalanus']=logt(data['Neocalanus'])
data['L10Total']=logt(data['Total'])
data['L10mod_mesozooplankton']=logt(data['mod_mesozooplankton']*5.7*14)
data['L10mod_microzooplankton']=logt(data['mod_microzooplankton']*5.7*14)
data['L10Neocalanus'].unique()[1:20]
array([-0.52201674, -1.2195666 , -1.11382969, -1.38807898, -1.43340323, -0.85816102, -1.08101945, -0.58318385, -0.48369823, 0.01373667, 0.08996821, -0.60699648, -0.23719985, 0.25433288, -0.02657255, -2.14076674, -1.40852969, -1.66178233, -1.95689915])
Figure showing observation locations of IOS zooplankton sampling
fig, ax = plt.subplots(1,1,figsize = (6,6))
with nc.Dataset('/ocean/ksuchy/MOAD/NEMO-forcing/grid/bathymetry_201702.nc') as grid:
viz_tools.plot_coastline(ax, grid, coords = 'map',isobath=.1)
colors=('teal','green','firebrick','darkorange','darkviolet','fuchsia',
'royalblue','darkgoldenrod','mediumspringgreen','deepskyblue')
datreg=dict()
for ind, iregion in enumerate(data.region_name.unique()):
datreg[iregion] = data.loc[data.region_name==iregion]
ax.plot(datreg[iregion]['Lon'], datreg[iregion]['Lat'],'.',
color = colors[ind], label=iregion)
ax.set_ylim(47,51)
ax.legend(bbox_to_anchor=[1,.6,0,0])
ax.set_xlim(-126, -120);
ax.set_title('Observation Locations');
ax.legend(bbox_to_anchor=(1.1, 1.05))
<matplotlib.legend.Legend at 0x7ff1a5e72310>
#look at data for individual years
View2012=data.loc[data.Year==2012]
View2013=data.loc[data.Year==2013]
View2014=data.loc[data.Year==2014]
View2015=data.loc[data.Year==2015]
# define log transform function with slight shift to accommodate zero values
def logt(x):
return np.log10(x+.001)
#look at data for a specific region
ViewCentralSoG=data.loc[data.region_name=='Central Strait of Georgia']
#look at data for an individual station
ViewGEO1=data.loc[data.Station=='GEO1']
#monthly mean and SEM for entire SoG
monthlymean=data.groupby(['Month']).mean()
monthlysem=data.groupby(['Month']).sem()
#monthly mean and SEM for Central SoG Only
monthlymeanCentral=ViewCentralSoG.groupby(['Month']).mean()
monthlysemCentral=ViewCentralSoG.groupby(['Month']).sem()
#monthly mean and SEM for station GEO1 only
monthlymeanGEO1=ViewGEO1.groupby(['Month']).mean()
monthlysemGEO1=ViewGEO1.groupby(['Month']).sem()
#look at data for an individual station
ViewBaynes=data.loc[data.Station=='BS-1']
#monthly mean and SEM for Baynes Sound Only
monthlymeanBaynes=ViewBaynes.groupby(['Month']).mean()
monthlymean2012=View2012.groupby(['Month']).mean()
monthlymean2013=View2013.groupby(['Month']).mean()
monthlymean2014=View2014.groupby(['Month']).mean()
monthlymean2015=View2015.groupby(['Month']).mean()
monthlysem2012=View2012.groupby(['Month']).sem()
monthlysem2013=View2013.groupby(['Month']).sem()
monthlysem2014=View2014.groupby(['Month']).sem()
monthlysem2015=View2015.groupby(['Month']).sem()
fig,ax=plt.subplots(1,4,figsize=(20,5))
fig.suptitle('Strait of Georgia', fontsize=24)
fig.subplots_adjust(top=0.8)
#ax[0].errorbar(monthlymean.index,logt_inv(monthlymean['L10Calanoids']),
# yerr=logt_inv(np.array([monthlymean['L10Calanoids']-monthlysem['L10Calanoids'],
# monthlymean['L10Calanoids']+monthlysem['L10Calanoids']])),
# fmt='ro',capsize=5)
ax[0].plot(logt_inv(monthlymean['L10Calanoids']),'b--')
#ax[1].errorbar(monthlymean.index,logt_inv(monthlymean['L10CalanoidsDiaRemoved']),
# yerr=logt_inv(np.array([monthlymean['L10CalanoidsDiaRemoved']-monthlysem['L10CalanoidsDiaRemoved'],
# monthlymean['L10CalanoidsDiaRemoved']+monthlysem['L10CalanoidsDiaRemoved']])),
# fmt='ro',capsize=5)
ax[1].plot(logt_inv(monthlymean['L10CalanoidsDiaRemoved']),'b--')
#ax[2].errorbar(monthlymean.index,logt_inv(monthlymean['L10Euphausiids']),
# yerr=logt_inv(np.array([monthlymean['L10Euphausiids']-monthlysem['L10Euphausiids'],
# monthlymean['L10Euphausiids']+monthlysem['L10Euphausiids']])),
# fmt='ro',capsize=5)
ax[2].plot(logt_inv(monthlymean['L10Euphausiids']),'b--')
#ax[3].errorbar(monthlymeanCentral.index,logt_inv(monthlymeanCentral['L10Hyperiids']),
# yerr=logt_inv(np.array([monthlymeanCentral['L10Hyperiids']-monthlysemCentral['L10Hyperiids'],
# monthlymeanCentral['L10Hyperiids']+monthlysemCentral['L10Hyperiids']])),
# fmt='ro',capsize=5)
ax[3].plot(logt_inv(monthlymean['L10Hyperiids']),'b--')
ax[0].set_title('Calanoids')
ax[1].set_title('Calanoids no Diapausers')
ax[2].set_title('Euphausiids')
ax[3].set_title('Amphipods')
ax[0].set_ylabel('Mean Biomass (mg/m3)')
ax[0].set_xlim(0,12)
ax[1].set_xlim(0,12)
ax[2].set_xlim(0,12)
ax[3].set_xlim(0,12)
ax[0].set_ylim(0,5)
ax[1].set_ylim(0,5)
ax[2].set_ylim(0,5)
ax[3].set_ylim(0,5)
fig,ax=plt.subplots(1,1,figsize=(12,2.5))
ax.plot(logt_inv(monthlymean['L10Total']),'--',color='blue',label='Total')
ax.plot(logt_inv(monthlymean['L10CalanoidsDiaRemoved']),'--',color='lightblue',label='Calanoids No Diapause')
ax.set_ylim(0,20)
ax.set_xlim(0,12)
ax.set_title('Strait of Georgia Observation Zooplankton Seasonal Cycle')
ax.set_ylabel('Mean Biomass (mg/m3)',fontsize=10)
ax.legend(fontsize=10)
<matplotlib.legend.Legend at 0x7ff1a5007850>
fig,ax=plt.subplots(1,4,figsize=(20,5))
fig.suptitle('Central', fontsize=24)
fig.subplots_adjust(top=0.8)
ax[0].plot(logt_inv(monthlymeanCentral['L10Calanoids']),'b--')
ax[1].plot(logt_inv(monthlymeanCentral['L10CalanoidsDiaRemoved']),'b--')
ax[2].plot(logt_inv(monthlymeanCentral['L10Euphausiids']),'b--')
ax[3].plot(logt_inv(monthlymeanCentral['L10Hyperiids']),'b--')
ax[0].set_title('Calanoids')
ax[1].set_title('Calanoids no Diapausers')
ax[2].set_title('Euphausiids')
ax[3].set_title('Amphipods')
ax[0].set_ylabel('Mean Biomass (mg/m3)')
ax[0].set_xlim(0,12)
ax[1].set_xlim(0,12)
ax[2].set_xlim(0,12)
ax[3].set_xlim(0,12)
ax[0].set_ylim(0,5)
ax[1].set_ylim(0,5)
ax[2].set_ylim(0,50)
ax[3].set_ylim(0,5)
(0.0, 5.0)
fig,ax=plt.subplots(1,4,figsize=(20,5))
fig.suptitle('Baynes', fontsize=24)
fig.subplots_adjust(top=0.8)
ax[0].plot(logt_inv(monthlymeanBaynes['L10Calanoids']),'b--')
ax[1].plot(logt_inv(monthlymeanBaynes['L10CalanoidsDiaRemoved']),'b--')
ax[2].plot(logt_inv(monthlymeanBaynes['L10Euphausiids']),'b--')
ax[3].plot(logt_inv(monthlymeanBaynes['L10Hyperiids']),'b--')
ax[0].set_title('Calanoids')
ax[1].set_title('Calanoids no Diapausers')
ax[2].set_title('Euphausiids')
ax[3].set_title('Amphipods')
ax[0].set_ylabel('Mean Biomass (mg/m3)')
ax[0].set_xlim(0,12)
ax[1].set_xlim(0,12)
ax[2].set_xlim(0,12)
ax[3].set_xlim(0,12)
ax[0].set_ylim(0,20)
ax[1].set_ylim(0,20)
ax[2].set_ylim(0,20)
ax[3].set_ylim(0,20)
(0.0, 20.0)
fig,ax=plt.subplots(1,1,figsize=(12,2.5))
ax.plot(logt_inv(monthlymean['L10Total']),'--',color='blue',label='Total')
ax.plot(logt_inv(monthlymean['L10CalanoidsDiaRemoved']),'--',color='lightblue',label='Calanoids No Diapause')
ax.set_ylim(0,60)
ax.set_xlim(0,12)
ax.set_title('Strait of Georgia Observation Zooplankton Seasonal Cycle')
ax.set_ylabel('Mean Biomass (mg/m3)',fontsize=10)
ax.legend(fontsize=10)
fig,ax=plt.subplots(1,1,figsize=(12,2.5))
ax.plot(logt_inv(monthlymean['L10mod_mesozooplankton']),'--',color='red',label='Model Microzoop')
ax.set_ylim(0,60)
ax.set_xlim(0,12)
ax.set_title('Model Mesozooplankton Seasonal Cycle')
ax.set_ylabel('Mean Biomass (mg/m3)',fontsize=10)
fig,ax=plt.subplots(1,1,figsize=(12,2.5))
ax.plot(logt_inv(monthlymean['L10mod_microzooplankton']),'--',color='darkorange',label='Model Microzoop')
ax.set_ylim(0,60)
ax.set_xlim(0,12)
ax.set_title('Model Microzooplankton Seasonal Cycle')
ax.set_ylabel('Mean Biomass (mg/m3)',fontsize=10)
Text(0, 0.5, 'Mean Biomass (mg/m3)')
data.keys()
Index(['Key', 'region_name', 'Station', 'Lon', 'Lat', 'Date', 'dtUTC', 'Twilight', 'Net_Type', 'Mesh_Size(um)', ... 'k_lower', 'L10Calanoids', 'L10CalanoidsDiaRemoved', 'L10Euphausiids', 'L10Hyperiids', 'L10Gammariids', 'L10Neocalanus', 'L10Total', 'L10mod_mesozooplankton', 'L10mod_microzooplankton'], dtype='object', length=287)
data['Calanoids']
0 1.157396 1 0.310793 2 0.292791 3 1.391521 4 0.855453 ... 461 0.346093 462 0.390772 463 0.075827 464 0.077561 465 0.894605 Name: Calanoids, Length: 466, dtype: float64
fig,ax=plt.subplots(2,2,figsize=(10,10))
fig.subplots_adjust(hspace=1)
ax=ax.flatten()
ax[0].plot(data['Calanoida']+data['Euphausiacea']+data['Amphipoda'],data['mod_mesozooplankton'],'k.')
ax[0].set_title('Copepods Euphausiids Amphipods ($\mu$M)')
ax[0].set_xlabel('Obs')
ax[0].set_ylabel('Model')
ax[0].plot((0,10),(0,10),'r-',alpha=.3)
ax[1].plot(logt(data['Calanoida']+data['Euphausiacea']+data['Amphipoda']),logt(data['mod_mesozooplankton']),'k.')
ax[1].set_title('Log10 Copepods Euphausiids Amphipods ($\mu$M)')
ax[1].set_xlabel('Obs')
ax[1].set_ylabel('Model')
ax[1].plot((-3,3),(-3,3),'r-',alpha=.3)
ax[2].plot(data['Calanoida']+data['Euphausiacea']+data['Amphipoda']+data['Decapoda']+data['Copelata'],data['mod_mesozooplankton'],'k.')
ax[2].set_title('Total ($\mu$M)')
ax[2].set_xlabel('Obs')
ax[2].set_ylabel('Model')
ax[2].plot((0,10),(0,10),'r-',alpha=.3)
ax[3].plot(logt(data['Calanoida']+data['Euphausiacea']+data['Amphipoda']+data['Decapoda']+data['Copelata']),logt(data['mod_mesozooplankton']),'k.')
ax[3].set_title('Log10 Total ($\mu$M)')
ax[3].set_xlabel('Obs')
ax[3].set_ylabel('Model')
ax[3].plot((-3,3),(-3,3),'r-',alpha=.3)
--------------------------------------------------------------------------- KeyError Traceback (most recent call last) ~/anaconda3/envs/py39/lib/python3.9/site-packages/pandas/core/indexes/base.py in get_loc(self, key, method, tolerance) 2897 try: -> 2898 return self._engine.get_loc(casted_key) 2899 except KeyError as err: pandas/_libs/index.pyx in pandas._libs.index.IndexEngine.get_loc() pandas/_libs/index.pyx in pandas._libs.index.IndexEngine.get_loc() pandas/_libs/hashtable_class_helper.pxi in pandas._libs.hashtable.PyObjectHashTable.get_item() pandas/_libs/hashtable_class_helper.pxi in pandas._libs.hashtable.PyObjectHashTable.get_item() KeyError: 'Calanoida' The above exception was the direct cause of the following exception: KeyError Traceback (most recent call last) <ipython-input-253-3e1f8b5907be> in <module> 2 fig.subplots_adjust(hspace=1) 3 ax=ax.flatten() ----> 4 ax[0].plot(data['Calanoida']+data['Euphausiacea']+data['Amphipoda'],data['mod_mesozooplankton'],'k.') 5 ax[0].set_title('Copepods Euphausiids Amphipods ($\mu$M)') 6 ax[0].set_xlabel('Obs') ~/anaconda3/envs/py39/lib/python3.9/site-packages/pandas/core/frame.py in __getitem__(self, key) 2904 if self.columns.nlevels > 1: 2905 return self._getitem_multilevel(key) -> 2906 indexer = self.columns.get_loc(key) 2907 if is_integer(indexer): 2908 indexer = [indexer] ~/anaconda3/envs/py39/lib/python3.9/site-packages/pandas/core/indexes/base.py in get_loc(self, key, method, tolerance) 2898 return self._engine.get_loc(casted_key) 2899 except KeyError as err: -> 2900 raise KeyError(key) from err 2901 2902 if tolerance is not None: KeyError: 'Calanoida'
#fig,ax=plt.subplots(1,1,figsize=(10,10))
#ax.plot((data['L10Calanoida']),(data['L10mod_mesozooplankton']),'k.')
#ax.set_title('Log10 Total ($\mu$M)')
#ax.set_xlabel('Obs')
#ax.set_ylabel('Model')
#ax.plot((-3,3),(-3,3),'r-',alpha=.3)
def yd(idt):
if type(idt)==dt.datetime:
yd=(idt-dt.datetime(idt.year-1,12,31)).days
else: # assume array or pandas
yd=[(ii-dt.datetime(ii.year-1,12,31)).days for ii in idt]
return yd
data['yd']=yd(data['dtUTC'])
data['Year']=[ii.year for ii in data['dtUTC']]
fig,ax=plt.subplots(1,1,figsize=(7,7))
m=ax.scatter(logt(data['Calanoida']+data['Euphausiacea']+data['Amphipoda']),logt(data['mod_mesozooplankton']),
c=data['yd'],s=5,cmap=cmocean.cm.phase)
ax.set_title('log10[ Copepods Amphipods Euphausiids + 0.001] By Year Day')
ax.set_xlabel('Obs')
ax.set_ylabel('Model')
ax.plot((-6,5),(-6,5),'r-',alpha=.3)
ax.set_xlim(-1.5,1.5)
ax.set_ylim(-1.5,1.5);
fig.colorbar(m)
data['Month']=[ii.month for ii in data['dtUTC']]
JF=data.loc[(data.Month==1)|(data.Month==2)]
MAM=data.loc[(data.Month==3)|(data.Month==4)|(data.Month==5)]
JJA=data.loc[(data.Month==6)|(data.Month==7)|(data.Month==8)]
SOND=data.loc[(data.Month==9)|(data.Month==10)|(data.Month==11)|(data.Month==12)]
def byRegion(ax,obsvar,modvar,lims):
SoG=[]
for ind, iregion in enumerate(data.region_name.unique()):
#ax.plot(datreg[iregion]['Lon'], datreg[iregion]['Lat'],'.',
#color = colors[ind], label=iregion)
SoG0=et.varvarPlot(ax,datreg[iregion],obsvar,modvar,
cols=(colors[ind],),lname=iregion)
SoG.append(SoG0)
l=ax.legend(handles=[ip[0][0] for ip in SoG])
ax.set_xlabel('Obs')
ax.set_ylabel('Model')
ax.plot(lims,lims,'k-',alpha=.5)
ax.set_xlim(lims)
ax.set_ylim(lims)
ax.set_aspect(1)
return SoG,l
def bySeason(ax,obsvar,modvar,lims):
for axi in ax:
axi.plot(lims,lims,'k-')
axi.set_xlim(lims)
axi.set_ylim(lims)
axi.set_aspect(1)
axi.set_xlabel('Obs')
axi.set_ylabel('Model')
SoG=et.varvarPlot(ax[0],JF,obsvar,modvar,cols=('crimson','darkturquoise','navy'))
ax[0].set_title('Winter')
SoG=et.varvarPlot(ax[1],MAM,obsvar,modvar,cols=('crimson','darkturquoise','navy'))
ax[1].set_title('Spring')
SoG=et.varvarPlot(ax[2],JJA,obsvar,modvar,cols=('crimson','darkturquoise','navy'))
ax[2].set_title('Summer')
SoG=et.varvarPlot(ax[3],SOND,obsvar,modvar,cols=('crimson','darkturquoise','navy'))
ax[3].set_title('Autumn')
return
#obsvar='L10Calanoida'
#modvar='L10mod_mesozooplankton'
fig, ax = plt.subplots(1,1,figsize = (16,7))
SoG,l=byRegion(ax,'L10Calanoida','L10mod_mesozooplankton',(-1.5,1.5))
ax.set_title('Log 10 Calanoida + 0.001 ($\mu$M) By Region')
ax.legend(bbox_to_anchor=(1.1, 1.05))
fig, ax = plt.subplots(1,4,figsize = (16,3.3))
bySeason(ax,'L10Calanoida','L10mod_mesozooplankton',(-1.5,1.5))
#obsvar='Euphausiacea'
#modvar='mod_mesozooplankton'
fig, ax = plt.subplots(1,1,figsize = (16,7))
SoG,l=byRegion(ax,'L10Euphausiacea','L10mod_mesozooplankton',(-1.5,1.5))
ax.set_title('Log 10 Euphausiacea + 0.001 ($\mu$M) By Region');
ax.legend(bbox_to_anchor=(1.1, 1.05))
fig, ax = plt.subplots(1,4,figsize = (16,3.3))
bySeason(ax,'L10Euphausiacea','L10mod_mesozooplankton',(-1.5,1.5))
fig, ax = plt.subplots(1,1,figsize = (16,7))
SoG,l=byRegion(ax,'L10Amphipoda','L10mod_mesozooplankton',(-1.5,1.5))
ax.set_title('Log 10 Amphipoda + 0.001 ($\mu$M) By Region');
ax.legend(bbox_to_anchor=(1.1, 1.05))
fig, ax = plt.subplots(1,4,figsize = (16,3.3))
bySeason(ax,'L10Amphipoda','L10mod_mesozooplankton',(-1.5,1.5))
fig, ax = plt.subplots(1,1,figsize = (16,7))
SoG,l=byRegion(ax,'L10Decapoda','L10mod_mesozooplankton',(-1.5,1.5))
ax.set_title('Log 10 Decapoda + 0.001 ($\mu$M) By Region');
ax.legend(bbox_to_anchor=(1.1, 1.05))
fig, ax = plt.subplots(1,4,figsize = (16,3.3))
bySeason(ax,'L10Decapoda','L10mod_mesozooplankton',(-1.5,1.5))
fig, ax = plt.subplots(1,1,figsize = (16,7))
SoG,l=byRegion(ax,'L10Copelata','L10mod_mesozooplankton',(-1.5,1.5))
ax.set_title('Log 10 Larvaceans + 0.001 ($\mu$M) By Region');
ax.legend(bbox_to_anchor=(1.1, 1.05))
fig, ax = plt.subplots(1,4,figsize = (16,3.3))
bySeason(ax,'L10Copelata','L10mod_mesozooplankton',(-1.5,1.5))
fig, ax = plt.subplots(1,1,figsize = (16,7))
SoG,l=byRegion(ax,'L10Cyclopoida','L10mod_mesozooplankton',(-1.5,1.5))
ax.set_title('Log 10 Cyclopoida + 0.001 ($\mu$M) By Region');
ax.legend(bbox_to_anchor=(1.1, 1.05))
fig, ax = plt.subplots(1,4,figsize = (16,3.3))
bySeason(ax,'L10Cyclopoida','L10mod_mesozooplankton',(-1.5,1.5))
fig, ax = plt.subplots(1,1,figsize = (16,7))
SoG,l=byRegion(ax,'L10Calanoida','L10mod_microzooplankton',(-1.5,1.5))
ax.set_title('Log10 Calanoida +0.001 ($\mu$M) By Region');
ax.legend(bbox_to_anchor=(1.1, 1.05))
fig, ax = plt.subplots(1,4,figsize = (16,3.3))
bySeason(ax,'L10Cyclopoida','L10mod_mesozooplankton',(-1.5,1.5))
fig, ax = plt.subplots(1,1,figsize = (16,7))
SoG,l=byRegion(ax,'L10Copelata','L10mod_microzooplankton',(-1.5,1.5))
ax.set_title('Log10 Larvaceans +0.001 ($\mu$M) By Region');
ax.legend(bbox_to_anchor=(1.1, 1.05))
fig, ax = plt.subplots(1,4,figsize = (16,3.3))
bySeason(ax,'L10Copelata','L10mod_microzooplankton',(-1.5,1.5))