{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"import datetime as dt\n",
"from salishsea_tools import evaltools as et, viz_tools\n",
"import os\n",
"import datetime as dt\n",
"import gsw\n",
"import matplotlib.gridspec as gridspec\n",
"import matplotlib as mpl\n",
"import matplotlib.dates as mdates\n",
"import cmocean as cmo\n",
"import scipy.interpolate as sinterp\n",
"import cmocean\n",
"import json\n",
"import f90nml\n",
"from collections import OrderedDict\n",
"\n",
"fs=16\n",
"mpl.rc('xtick', labelsize=fs)\n",
"mpl.rc('ytick', labelsize=fs)\n",
"mpl.rc('legend', fontsize=fs)\n",
"mpl.rc('axes', titlesize=fs)\n",
"mpl.rc('axes', labelsize=fs)\n",
"mpl.rc('figure', titlesize=fs)\n",
"mpl.rc('font', size=fs)\n",
"mpl.rc('font', family='sans-serif', weight='normal', style='normal')\n",
"\n",
"import warnings\n",
"#warnings.filterwarnings('ignore')\n",
"from IPython.display import Markdown, display\n",
"\n",
"%matplotlib inline\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Import IOS Zooplankton data and create dataframe"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"/ocean/ksuchy/MOAD/observe/Data and Code files for KS 2020dec11/2020_05_21 1995-2011 SoG VNH.csv\n"
]
}
],
"source": [
"ls '/ocean/ksuchy/MOAD/observe/Data and Code files for KS 2020dec11/2020_05_21 1995-2011 SoG VNH.csv'"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"df=pd.read_csv('/ocean/ksuchy/MOAD/observe/Data and Code files for KS 2020dec11/2020_05_21 2012-2015 SoG VNH.csv',\n",
" encoding = \"ISO-8859-1\")"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Index(['Key', 'region_name', 'Station', 'PROJECT', 'lon', 'lat', 'Date',\n",
" 'STN_TIME', 'Twilight', 'Net_Type', 'Mesh_Size(um)', 'Net_Mouth_Dia(m)',\n",
" 'DEPTH_STRT1', 'DEPTH_END1', 'Bottom Depth(m)', 'Volume Filtered(m3)',\n",
" 'CTD', 'NOTES', 'PI', 'Phylum:', 'Class:', 'Order:', 'Family:', 'Name',\n",
" 'Abundance(#/m3)', 'Biomass(mg/m3)', 'NumberOfSpecies',\n",
" 'Station Diversity', 'Station Equitability'],\n",
" dtype='object')"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.keys()"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"2200 5.51249\n",
"2201 2.75624\n",
"2202 33.07494\n",
"2203 49.61240\n",
"2204 5.51249\n",
" ... \n",
"2295 17.61982\n",
"2296 22.42523\n",
"2297 36.84145\n",
"2298 1.60180\n",
"2299 0.80090\n",
"Name: Abundance(#/m3), Length: 100, dtype: float64"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['Abundance(#/m3)'][2200:2300]"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Convert date to proper format"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"('6/14/2012', '7:32')"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['Date'][0],df['STN_TIME'][0]"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"1000 6/15/2012\n",
"1001 6/15/2012\n",
"1002 6/15/2012\n",
"1003 6/15/2012\n",
"1004 6/15/2012\n",
"1005 6/15/2012\n",
"1006 6/15/2012\n",
"1007 6/15/2012\n",
"1008 6/15/2012\n",
"1009 6/15/2012\n",
"1010 6/15/2012\n",
"1011 6/15/2012\n",
"1012 6/15/2012\n",
"1013 6/15/2012\n",
"1014 6/15/2012\n",
"1015 6/15/2012\n",
"1016 6/15/2012\n",
"1017 6/15/2012\n",
"1018 6/15/2012\n",
"1019 6/15/2012\n",
"Name: Date, dtype: object"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['Date'][1000:1020]"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['6', '14', '2012']"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['Date'][0].split('/')"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
"dateslist=list()"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
"for el in df['Date']:\n",
" dateslist.append(el.split('/'))"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [],
"source": [
"timeslist=list()\n",
"for el in df['STN_TIME']:\n",
" timeslist.append(el.split(':'))"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
"dts=list()\n",
"for ii,jj in zip(dateslist,timeslist):\n",
" dts.append(dt.datetime(int(ii[2]),int(ii[0]),int(ii[1]),int(jj[0]),int(jj[1])))"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array(['7:32', '7:52', '3:30', '7:42', '7:49', '15:09', '16:30', '22:09',\n",
" '22:27', '19:36', '19:53', '9:21', '9:35', '13:29', '13:45',\n",
" '19:25', '19:43', '5:26', '5:43', '5:45', '5:47', '5:56', '5:59',\n",
" '8:38', '8:39', '8:40', '8:41', '8:57', '11:10', '11:44', '11:45',\n",
" '11:47', '11:48', '11:49', '12:40', '12:42', '15:14', '15:15',\n",
" '15:16', '15:17', '15:18', '17:54', '17:55', '17:57', '17:58',\n",
" '17:59', '5:39', '6:05', '14:47', '15:02', '19:13', '19:30',\n",
" '14:32', '14:49', '20:04', '20:24', '20:27', '20:47', '9:37',\n",
" '9:48', '13:57', '14:17', '19:41', '19:59', '7:18', '7:53', '9:25',\n",
" '12:57', '13:09', '7:30', '7:45', '13:33', '13:36', '13:38',\n",
" '10:00', '10:30', '11:00', '11:30', '12:30', '13:00', '13:30',\n",
" '16:00', '17:00', '9:29', '10:26', '11:19', '13:39', '9:16',\n",
" '10:04', '10:42', '11:03', '9:00', '9:41', '10:17', '10:40',\n",
" '12:00', '9:33', '10:13', '11:11', '12:02', '12:32', '13:22',\n",
" '9:57', '10:35', '10:02', '12:08', '13:18', '14:50', '17:45',\n",
" '18:45', '8:30', '9:30', '11:41', '12:37', '13:03', '14:05',\n",
" '9:20', '11:56', '13:43', '9:32', '11:22', '11:52', '7:27',\n",
" '19:08', '9:45', '16:38', '16:57', '16:04', '16:26', '13:31',\n",
" '13:35', '7:12', '16:12', '16:14', '16:18', '16:20', '16:22',\n",
" '3:48', '4:04', '15:20', '15:35', '21:28', '21:42', '4:33', '4:45',\n",
" '11:38', '11:55', '18:18', '18:29', '10:12', '12:55', '10:16',\n",
" '11:20', '13:08', '11:07', '12:19', '12:58', '14:42', '15:37',\n",
" '12:10', '12:23', '13:24', '14:33', '10:32', '12:39', '9:49',\n",
" '10:53', '12:49', '11:36', '14:11', '9:51', '11:24', '13:04',\n",
" '13:19', '9:24', '10:15', '11:53', '12:51', '12:50', '16:11',\n",
" '6:15', '17:15', '11:16', '12:17', '13:10', '13:59', '11:21',\n",
" '12:01', '12:35', '9:58', '10:41', '11:29', '9:05', '9:50', '8:49',\n",
" '9:55', '11:14', '12:14', '9:10', '10:20', '10:50', '11:25',\n",
" '11:50', '19:52', '20:32', '6:20', '5:58', '20:29', '5:20',\n",
" '20:10', '15:52', '6:43', '20:12', '7:22', '21:03', '21:55',\n",
" '14:56', '10:08', '20:01', '11:33', '15:22', '16:40', '23:15',\n",
" '8:51', '12:12', '15:12', '10:57', '7:03', '8:03', '14:22',\n",
" '23:06', '4:05', '6:25', '9:26', '11:28', '13:27', '15:11',\n",
" '15:53', '15:54', '15:56', '15:59', '18:06', '19:45', '9:40',\n",
" '20:11', '7:10', '14:34', '11:42', '13:28', '17:12', '9:04',\n",
" '14:10', '16:17', '8:02', '10:31', '15:27', '17:01', '16:43',\n",
" '10:46', '13:15', '14:43', '9:44', '13:55', '15:44', '16:59',\n",
" '18:41', '8:18', '11:13', '8:28', '15:43', '18:08', '7:40',\n",
" '10:56', '10:33', '12:52', '14:55', '7:43', '12:13', '13:44',\n",
" '7:41', '16:56', '8:17', '9:13', '11:12', '15:40', '18:27',\n",
" '10:07', '12:06', '16:07', '16:41', '10:52', '16:33', '17:48',\n",
" '7:48', '11:09', '15:08', '8:31', '12:22', '14:39', '12:03',\n",
" '14:30', '17:31', '14:15', '18:16', '7:55', '17:38', '6:36',\n",
" '18:22', '7:15', '9:17', '12:44', '18:54', '12:43', '18:44',\n",
" '7:08', '13:02', '7:19', '16:36', '8:25', '8:33', '13:25', '17:20',\n",
" '17:26', '13:42', '18:37', '18:43', '13:21', '14:53', '17:24',\n",
" '9:38', '7:06', '9:31', '12:20', '15:28', '11:01', '11:57',\n",
" '14:12', '15:10', '7:35', '14:38', '16:06', '8:08', '16:05',\n",
" '16:52', '17:47', '8:21', '9:19', '16:35', '8:10', '8:59', '10:21',\n",
" '14:41', '16:09', '18:26', '11:23', '8:14', '10:10', '11:27',\n",
" '13:26', '11:15', '13:11', '9:18', '12:04', '10:45', '12:25',\n",
" '13:56', '10:22', '13:53', '9:28', '11:06', '11:32', '10:34',\n",
" '14:08', '11:18', '12:48', '14:01', '12:07', '14:07', '11:08',\n",
" '14:04', '10:06', '11:43', '13:40', '10:18', '13:34', '16:27',\n",
" '10:28', '15:26', '9:14', '12:15', '15:23', '8:23', '14:58',\n",
" '9:08', '10:43', '14:29', '8:44', '9:52', '8:13', '14:27', '14:46',\n",
" '14:16', '10:11', '14:51', '8:32', '10:37'], dtype=object)"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.loc[df.Twilight=='Daylight']['STN_TIME'].unique()"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [],
"source": [
"df['dtUTC']=et.pac_to_utc(dts) #convert from Pac time to UTC"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array(['Diplostraca', 'Thecostraca', 'Amphipoda', 'Decapoda',\n",
" 'Euphausiacea', 'Calanoida', 'Cyclopoida', 'Poecilostomatoida',\n",
" 'Halocyprida', 'Aphragmophora', 'Copelata', 'Leptothecate',\n",
" 'Siphonophorae', 'Trachylina', 'Cydippida', nan, 'Pholadomyoida',\n",
" 'Neotaenioglossa', 'Thecosomata', 'Aciculata', 'Canalipalpata',\n",
" 'Osmeriformes', 'Perciformes', 'Beroida', 'Teuthida',\n",
" 'Gymnosomata', 'Isopoda', 'Siphonostomatoida', 'Anthoathecatae',\n",
" 'Scorpaeniformes', 'Phragmophora', 'Clupeiformes', 'Ophiurida',\n",
" 'Gadiformes', 'Semaeostomeae', 'Cumacea', 'Echinoida',\n",
" 'Harpacticoida', 'Pleuronectiformes', 'Tricladida', 'Myodocopida',\n",
" 'Phaeogromia', 'Noctilucales', 'Octopoda', 'Actiniaria',\n",
" 'Foraminiferida', 'Monstrilloida', 'Oligotrichida', 'Mysida',\n",
" 'Acariformes', 'Lophogastrida', 'Ophidiiformes',\n",
" 'Thalassocalycida', 'Doliolida', 'Lepadomorpha', 'Cephalaspidea',\n",
" 'Sygnathiformes'], dtype=object)"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['Order:'].unique()"
]
},
{
"cell_type": "raw",
"metadata": {},
"source": [
"SpeciesNames = df['Name'].unique()[1:1000]\n",
"SpeciesNames.sort()\n",
"print(SpeciesNames)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Start by creating a group of zooplankton taxa of interest"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [],
"source": [
"colList=('Anomura *sp. megalops s1',\n",
" 'Anomura *sp. zoea s1' ,'Anomura *sp. zoea s2', 'Axiidae *sp. s1', 'Axiidae *sp. mysis s2',\n",
" 'Axiidae *sp. zoea s1' ,'Axiidae *sp. zoea s2','Brachyura *sp. zoea s1',\n",
"'Calanoida *sp. 1', 'Calanoida *sp. 2' ,'Calanoida *sp. 3',\n",
" 'Calanoida *sp. 4' ,'Calanoida *sp. 6M', 'Calanus *sp. 1',\n",
" 'Calanus *sp. 2', 'Calanus *sp. 3' ,'Calanus *sp. 4',\n",
" 'Calanus *sp. nauplii s1', 'Calanus marshallae 2' ,'Calanus marshallae 3',\n",
" 'Calanus marshallae 4' ,'Calanus marshallae 5' ,'Calanus marshallae 6F',\n",
" 'Calanus marshallae 6M' ,'Calanus pacificus 2' ,'Calanus pacificus 3',\n",
" 'Calanus pacificus 4' ,'Calanus pacificus 5', 'Calanus pacificus 6F',\n",
" 'Calanus pacificus 6M','Calliopius *sp. s1' ,'Calliopius *sp. s2', 'Calliopius *sp. s3',\n",
" 'Calliopius pacificus s1' ,'Calliopius pacificus s2',\n",
" 'Calliopius pacificus s3', 'Cancer *sp. megalops s1',\n",
" 'Cancer *sp. zoea s1' ,'Cancer *sp. zoea s2', 'Cancer magister megalops s2',\n",
" 'Cancer magister zoea s1' ,'Cancer magister zoea s2',\n",
" 'Cancer oregonensis megalops s1', 'Cancer oregonensis megalops s2',\n",
" 'Cancer productus megalops s1' ,'Cancer productus megalops s2',\n",
" 'Cancer productus zoea s1' ,'Cancer productus zoea s2','Caridea *sp. s3' ,'Caridea *sp. mysis s1',\n",
" 'Caridea *sp. mysis s2', 'Caridea *sp. mysis s3' ,'Caridea *sp. zoea s1',\n",
" 'Caridea *sp. zoea s2', 'Chaetognatha *sp. s3' ,'Chaetognatha *sp. juvenile s1',\n",
" 'Chaetognatha *sp. juvenile s2','Chionoecetes *sp. megalops s1',\n",
" 'Chionoecetes *sp. megalops s2', 'Chionoecetes *sp. zoea s1','Corycaeus anglicus 3',\n",
" 'Corycaeus anglicus 4' ,'Corycaeus anglicus 5' ,'Corycaeus anglicus 6F',\n",
" 'Corycaeus anglicus 6M' ,'Crangonidae *sp. mysis s1',\n",
" 'Crangonidae *sp. mysis s2' ,'Crangonidae *sp. mysis s3',\n",
" 'Crangonidae *sp. zoea s1', 'Crangonidae *sp. zoea s2','Cyphocaris *sp. s1',\n",
" 'Cyphocaris challengeri s1' ,'Cyphocaris challengeri s2',\n",
" 'Cyphocaris challengeri s3', 'Decapoda *sp. zoea s1','Eucalanus *sp. 1',\n",
" 'Eucalanus *sp. 2' ,'Eucalanus *sp. 3' ,'Eucalanus *sp. nauplii s1',\n",
" 'Eucalanus bungii 3', 'Eucalanus bungii 4', 'Eucalanus bungii 4F',\n",
" 'Eucalanus bungii 4M', 'Eucalanus bungii 5F', 'Eucalanus bungii 5M',\n",
" 'Eucalanus bungii 6F', 'Eucalanus bungii 6M',\n",
" 'Eucalanus californicus 5F', 'Eucalanus californicus 6F','Euphausia pacifica F',\n",
" 'Euphausia pacifica M' ,'Euphausia pacifica s2', 'Euphausia pacifica s3',\n",
" 'Euphausia pacifica eggs s1' ,'Euphausia pacifica nauplii s1',\n",
" 'Euphausia pacifica zoea s1', 'Euphausiacea *sp. s2',\n",
" 'Euphausiidae *sp. eggs s1', 'Euphausiidae *sp. nauplii s1',\n",
" 'Euphausiidae *sp. protozoea (or calyptopis) s1',\n",
" 'Euphausiidae *sp. zoea (or furcilia) s1','Galatheidae *sp. zoea s1', 'Galatheidae *sp. zoea s2',\n",
" 'Gammaridea *sp. s1', 'Gammaridea *sp. s2','Grapsidae *sp. megalops s1', 'Grapsidae *sp. zoea s1','Hemigrapsus *sp. megalops s1'\n",
" ,'Hemigrapsus *sp. zoea s1','Hyperia medusarum F', 'Hyperia medusarum M',\n",
" 'Hyperia medusarum s1', 'Hyperia medusarum s2' ,'Limacina helicina s0',\n",
" 'Limacina helicina s1' ,'Limacina helicina s2','Lithodidae *sp. megalops s1',\n",
" 'Lithodidae *sp. zoea s1', 'Lithodidae *sp. zoea s2','Lophopanopeus *sp. megalops s1','Majidae *sp. megalops s1',\n",
" 'Majidae *sp. megalops s2', 'Majidae *sp. zoea s1','Metridia *sp. 1',\n",
" 'Metridia *sp. 2', 'Metridia *sp. 3' ,'Metridia *sp. 4',\n",
" 'Metridia *sp. 5', 'Metridia *sp. 6F', 'Metridia *sp. 6M',\n",
" 'Metridia pacifica 3' ,'Metridia pacifica 4' ,'Metridia pacifica 5F',\n",
" 'Metridia pacifica 5M' 'Metridia pacifica 6F' 'Metridia pacifica 6M'\n",
" 'Metridia pseudopacifica 5', 'Metridia pseudopacifica 6F',\n",
" 'Metridia pseudopacifica 6M' ,'Munida *sp. zoea s1' ,'Munida *sp. zoea s2',\n",
" 'Munida quadrispina megalops s2', 'Munida quadrispina megalops s3','Neocalanus *sp. 4',\n",
" 'Neocalanus *sp. eggs s1', 'Neocalanus *sp. nauplii s1',\n",
" 'Neocalanus cristatus 2', 'Neocalanus cristatus 3',\n",
" 'Neocalanus cristatus 4', 'Neocalanus cristatus 5',\n",
" 'Neocalanus cristatus 6F' ,'Neocalanus cristatus 6M',\n",
" 'Neocalanus plumchrus 1', 'Neocalanus plumchrus 2',\n",
" 'Neocalanus plumchrus 3', 'Neocalanus plumchrus 4',\n",
" 'Neocalanus plumchrus 5', 'Neocalanus plumchrus 6F',\n",
" 'Neocalanus plumchrus 6M' ,'Neotrypaea *sp. mysis s1',\n",
" 'Neotrypaea *sp. mysis s2', 'Neotrypaea *sp. zoea s1',\n",
" 'Neotrypaea *sp. zoea s2', 'Oikopleura *sp. s1', 'Oikopleura *sp. s2',\n",
" 'Oikopleura dioica s1' ,'Oikopleura dioica s2',\n",
" 'Oikopleura labradoriensis s1', 'Oikopleura labradoriensis s2',\n",
" 'Oikopleura labradoriensis s3', 'Oregonia *sp. megalops s1','Paguridae *sp. megalops s1' ,'Paguridae *sp. megalops s2',\n",
" 'Paguridae *sp. zoea s1', 'Paguridae *sp. zoea s2',\n",
" 'Pandalidae *sp. mysis s2', 'Pandalidae *sp. mysis s3',\n",
" 'Pandalidae *sp. zoea s1', 'Pandalidae *sp. zoea s2',\n",
" 'Pandalopsis dispar s2' ,'Pandalopsis dispar s3' ,'Pandalus danae s2',\n",
" 'Pandalus danae s3', 'Pandalus eous s3', 'Pandalus jordani s2',\n",
" 'Pandalus jordani s3', 'Pandalus stenolepis s1',\n",
" 'Pandalus stenolepis s2', 'Pandalus stenolepis s3',\n",
" 'Pandalus tridens s2' ,'Pandalus tridens s3','Parasagitta elegans s2', 'Parasagitta elegans s3',\n",
" 'Parasagitta elegans juvenile s1', 'Parasagitta euneritica s2',\n",
" 'Parasagitta euneritica s3','Pinnixa *sp. megalops s1', 'Pinnotheres *sp. megalops s1',\n",
" 'Pinnotheridae *sp. megalops s1', 'Pinnotheridae *sp. megalops s2',\n",
" 'Pinnotheridae *sp. zoea s1' ,'Pinnotheridae *sp. zoea s2',\n",
" 'Pisidae zoea zoea s1', 'Porcellanidae *sp. megalops s1', 'Porcellanidae *sp. zoea s1',\n",
" 'Porcellanidae *sp. zoea s2', 'Primno *sp. s1', 'Primno abyssalis F',\n",
" 'Primno abyssalis M', 'Primno abyssalis s1', 'Primno abyssalis s2',\n",
" 'Primno brevidens s1' ,'Pugettia *sp. megalops s1', 'Themisto *sp. s1',\n",
" 'Themisto pacifica F', 'Themisto pacifica M', 'Themisto pacifica s2',\n",
" 'Themisto pacifica juvenile s1', 'Thysanoessa *sp. s1',\n",
" 'Thysanoessa *sp. s2', 'Thysanoessa *sp. nauplii s1',\n",
" 'Thysanoessa *sp. zoea s1', 'Thysanoessa longipes F',\n",
" 'Thysanoessa longipes M', 'Thysanoessa longipes s2',\n",
" 'Thysanoessa longipes s3' ,'Thysanoessa longipes zoea s1',\n",
" 'Thysanoessa raschii F', 'Thysanoessa raschii M',\n",
" 'Thysanoessa raschii s2' ,'Thysanoessa raschii zoea s1',\n",
" 'Thysanoessa spinifera F', 'Thysanoessa spinifera M',\n",
" 'Thysanoessa spinifera s2', 'Thysanoessa spinifera s3',\n",
" 'Thysanoessa spinifera eggs s1', 'Thysanoessa spinifera nauplii s1',\n",
" 'Thysanoessa spinifera zoea s1','Xanthidae *sp. megalops s1',\n",
" 'Xanthidae *sp. zoea s1')\n"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Index(['Key', 'region_name', 'Station', 'PROJECT', 'lon', 'lat', 'Date',\n",
" 'STN_TIME', 'Twilight', 'Net_Type', 'Mesh_Size(um)', 'Net_Mouth_Dia(m)',\n",
" 'DEPTH_STRT1', 'DEPTH_END1', 'Bottom Depth(m)', 'Volume Filtered(m3)',\n",
" 'CTD', 'NOTES', 'PI', 'Phylum:', 'Class:', 'Order:', 'Family:', 'Name',\n",
" 'Abundance(#/m3)', 'Biomass(mg/m3)', 'NumberOfSpecies',\n",
" 'Station Diversity', 'Station Equitability', 'dtUTC'],\n",
" dtype='object')"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.keys()"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [],
"source": [
"dtsutc=et.pac_to_utc(dts)"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Key IOS2012005000901\n",
"region_name Northern Strait of Georgia\n",
"Station 22\n",
"PROJECT Str. Geo.\n",
"lon -124.272\n",
"lat 49.67\n",
"Date 6/14/2012\n",
"STN_TIME 7:32\n",
"Twilight Daylight\n",
"Net_Type SCOR VNH\n",
"Mesh_Size(um) 236\n",
"Net_Mouth_Dia(m) 0.56\n",
"DEPTH_STRT1 50\n",
"DEPTH_END1 0\n",
"Bottom Depth(m) 352\n",
"Volume Filtered(m3) 10.47\n",
"CTD 8.0\n",
"NOTES Flowmeter reading may be incorrect. Value ente...\n",
"PI Dave Mackas\n",
"Phylum: Arthropoda\n",
"Class: Branchiopoda\n",
"Order: Diplostraca\n",
"Family: Podonidae\n",
"Name Podon *sp. s1\n",
"Abundance(#/m3) 12.22541\n",
"Biomass(mg/m3) 0.06113\n",
"NumberOfSpecies 51\n",
"Station Diversity 2.63\n",
"Station Equitability 0.67\n",
"dtUTC 2012-06-14 14:32:00\n",
"Name: 0, dtype: object"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.loc[0]"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [],
"source": [
"towIDlist=['Key', 'region_name', 'Station', 'lon', 'lat','Date', 'dtUTC', 'Twilight', 'Net_Type', 'Mesh_Size(um)', 'DEPTH_STRT1', 'DEPTH_END1', 'Bottom Depth(m)']"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [],
"source": [
"towIDlist2=['Key', 'region_name', 'Station', 'lon', 'lat','Date', 'dtUTC', 'Twilight', 'Net_Type', 'Mesh_Size(um)', 'DEPTH_STRT1', 'DEPTH_END1', 'Bottom Depth(m)','CTD']"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(654, 12694, 654)"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"len(df.groupby(towIDlist)),len(df.groupby(towIDlist2)),len(df.groupby(['Key']))"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [],
"source": [
"# Key is a unique identifier for each tow\n",
"# do not group by CTD due to NaN values"
]
},
{
"cell_type": "raw",
"metadata": {},
"source": [
"for el in df.loc[df['Order:']=='Calanoida','Name']:\n",
" print(el)"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [],
"source": [
"df['Month']=[ii.month for ii in df['dtUTC']]"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"13"
]
},
"execution_count": 34,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"len(df.loc[df.Month==2]['Key'].unique())"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {},
"outputs": [],
"source": [
"test=df.loc[(df.Month==2)&(df['Order:']=='Calanoida')].groupby(['Key']).sum()"
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" lon | \n",
" lat | \n",
" Mesh_Size(um) | \n",
" Net_Mouth_Dia(m) | \n",
" DEPTH_STRT1 | \n",
" DEPTH_END1 | \n",
" Bottom Depth(m) | \n",
" Volume Filtered(m3) | \n",
" CTD | \n",
" Abundance(#/m3) | \n",
" Biomass(mg/m3) | \n",
" NumberOfSpecies | \n",
" Station Diversity | \n",
" Station Equitability | \n",
" Month | \n",
"
\n",
" \n",
" Key | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" IOS2015001000201A | \n",
" -4067.085 | \n",
" 1604.262 | \n",
" 7788 | \n",
" 18.48 | \n",
" 6732 | \n",
" 0 | \n",
" 7491 | \n",
" 1574.43 | \n",
" 99.0 | \n",
" 228.25407 | \n",
" 5.45896 | \n",
" 1452 | \n",
" 65.34 | \n",
" 17.16 | \n",
" 66 | \n",
"
\n",
" \n",
" IOS2015001000701A | \n",
" -6820.110 | \n",
" 2656.500 | \n",
" 12980 | \n",
" 30.80 | \n",
" 9735 | \n",
" 0 | \n",
" 10285 | \n",
" 1885.95 | \n",
" 275.0 | \n",
" 80.92749 | \n",
" 3.33723 | \n",
" 2915 | \n",
" 176.00 | \n",
" 44.55 | \n",
" 110 | \n",
"
\n",
" \n",
" IOS2015008000501 | \n",
" -5808.025 | \n",
" 2292.190 | \n",
" 9400 | \n",
" 23.50 | \n",
" 2773 | \n",
" 0 | \n",
" 2820 | \n",
" 462.95 | \n",
" 188.0 | \n",
" 422.43662 | \n",
" 3.71556 | \n",
" 2538 | \n",
" 94.00 | \n",
" 23.97 | \n",
" 94 | \n",
"
\n",
" \n",
" IOS2015008000801 | \n",
" -3955.936 | \n",
" 1560.000 | \n",
" 6400 | \n",
" 16.00 | \n",
" 960 | \n",
" 0 | \n",
" 960 | \n",
" 158.08 | \n",
" 224.0 | \n",
" 398.78547 | \n",
" 1.77838 | \n",
" 1152 | \n",
" 72.00 | \n",
" 20.16 | \n",
" 64 | \n",
"
\n",
" \n",
" IOS2015008001201 | \n",
" -5191.452 | \n",
" 2047.416 | \n",
" 8400 | \n",
" 21.00 | \n",
" 2226 | \n",
" 0 | \n",
" 2394 | \n",
" 312.06 | \n",
" 462.0 | \n",
" 397.71195 | \n",
" 4.57015 | \n",
" 2016 | \n",
" 77.28 | \n",
" 20.16 | \n",
" 84 | \n",
"
\n",
" \n",
" IOS2015008001601 | \n",
" -5437.256 | \n",
" 2144.472 | \n",
" 8800 | \n",
" 22.00 | \n",
" 3080 | \n",
" 0 | \n",
" 3212 | \n",
" 473.44 | \n",
" 660.0 | \n",
" 461.98892 | \n",
" 5.28456 | \n",
" 2332 | \n",
" 87.12 | \n",
" 22.00 | \n",
" 88 | \n",
"
\n",
" \n",
" IOS2015099000101 | \n",
" -6328.692 | \n",
" 2528.733 | \n",
" 12036 | \n",
" 28.56 | \n",
" 10200 | \n",
" 0 | \n",
" 13464 | \n",
" 2135.37 | \n",
" 102.0 | \n",
" 262.04919 | \n",
" 15.79196 | \n",
" 2754 | \n",
" 131.58 | \n",
" 32.64 | \n",
" 102 | \n",
"
\n",
" \n",
" IOS2015099000201 | \n",
" -6558.644 | \n",
" 2610.356 | \n",
" 12508 | \n",
" 29.68 | \n",
" 13038 | \n",
" 0 | \n",
" 21200 | \n",
" 3302.43 | \n",
" 159.0 | \n",
" 170.91952 | \n",
" 14.82036 | \n",
" 3286 | \n",
" 126.67 | \n",
" 30.74 | \n",
" 106 | \n",
"
\n",
" \n",
" IOS2015099000301 | \n",
" -7981.952 | \n",
" 3181.120 | \n",
" 15104 | \n",
" 35.84 | \n",
" 16000 | \n",
" 0 | \n",
" 19136 | \n",
" 3584.64 | \n",
" 0.0 | \n",
" 205.39196 | \n",
" 8.40212 | \n",
" 4608 | \n",
" 159.36 | \n",
" 37.12 | \n",
" 128 | \n",
"
\n",
" \n",
" PSF2015098000101 | \n",
" -3119.175 | \n",
" 1237.075 | \n",
" 6250 | \n",
" 12.50 | \n",
" 1000 | \n",
" 0 | \n",
" 249975 | \n",
" 173.25 | \n",
" 0.0 | \n",
" 300.14424 | \n",
" 3.09494 | \n",
" 800 | \n",
" 64.00 | \n",
" 18.25 | \n",
" 50 | \n",
"
\n",
" \n",
" PSF2015098000201 | \n",
" -4370.310 | \n",
" 1736.140 | \n",
" 8750 | \n",
" 17.50 | \n",
" 1400 | \n",
" 0 | \n",
" 1400 | \n",
" 215.25 | \n",
" 0.0 | \n",
" 1202.27643 | \n",
" 12.38677 | \n",
" 1470 | \n",
" 78.40 | \n",
" 21.00 | \n",
" 70 | \n",
"
\n",
" \n",
" PSF2015098000301 | \n",
" -4731.000 | \n",
" 1879.746 | \n",
" 9500 | \n",
" 19.00 | \n",
" 4940 | \n",
" 0 | \n",
" 379962 | \n",
" 772.16 | \n",
" 0.0 | \n",
" 154.37984 | \n",
" 7.44550 | \n",
" 1862 | \n",
" 105.26 | \n",
" 26.98 | \n",
" 76 | \n",
"
\n",
" \n",
" PSF2015098000401 | \n",
" -4237.692 | \n",
" 1686.128 | \n",
" 8500 | \n",
" 17.00 | \n",
" 4420 | \n",
" 0 | \n",
" 339966 | \n",
" 737.80 | \n",
" 0.0 | \n",
" 166.26730 | \n",
" 4.97040 | \n",
" 1088 | \n",
" 80.24 | \n",
" 23.12 | \n",
" 68 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" lon lat Mesh_Size(um) Net_Mouth_Dia(m) \\\n",
"Key \n",
"IOS2015001000201A -4067.085 1604.262 7788 18.48 \n",
"IOS2015001000701A -6820.110 2656.500 12980 30.80 \n",
"IOS2015008000501 -5808.025 2292.190 9400 23.50 \n",
"IOS2015008000801 -3955.936 1560.000 6400 16.00 \n",
"IOS2015008001201 -5191.452 2047.416 8400 21.00 \n",
"IOS2015008001601 -5437.256 2144.472 8800 22.00 \n",
"IOS2015099000101 -6328.692 2528.733 12036 28.56 \n",
"IOS2015099000201 -6558.644 2610.356 12508 29.68 \n",
"IOS2015099000301 -7981.952 3181.120 15104 35.84 \n",
"PSF2015098000101 -3119.175 1237.075 6250 12.50 \n",
"PSF2015098000201 -4370.310 1736.140 8750 17.50 \n",
"PSF2015098000301 -4731.000 1879.746 9500 19.00 \n",
"PSF2015098000401 -4237.692 1686.128 8500 17.00 \n",
"\n",
" DEPTH_STRT1 DEPTH_END1 Bottom Depth(m) \\\n",
"Key \n",
"IOS2015001000201A 6732 0 7491 \n",
"IOS2015001000701A 9735 0 10285 \n",
"IOS2015008000501 2773 0 2820 \n",
"IOS2015008000801 960 0 960 \n",
"IOS2015008001201 2226 0 2394 \n",
"IOS2015008001601 3080 0 3212 \n",
"IOS2015099000101 10200 0 13464 \n",
"IOS2015099000201 13038 0 21200 \n",
"IOS2015099000301 16000 0 19136 \n",
"PSF2015098000101 1000 0 249975 \n",
"PSF2015098000201 1400 0 1400 \n",
"PSF2015098000301 4940 0 379962 \n",
"PSF2015098000401 4420 0 339966 \n",
"\n",
" Volume Filtered(m3) CTD Abundance(#/m3) \\\n",
"Key \n",
"IOS2015001000201A 1574.43 99.0 228.25407 \n",
"IOS2015001000701A 1885.95 275.0 80.92749 \n",
"IOS2015008000501 462.95 188.0 422.43662 \n",
"IOS2015008000801 158.08 224.0 398.78547 \n",
"IOS2015008001201 312.06 462.0 397.71195 \n",
"IOS2015008001601 473.44 660.0 461.98892 \n",
"IOS2015099000101 2135.37 102.0 262.04919 \n",
"IOS2015099000201 3302.43 159.0 170.91952 \n",
"IOS2015099000301 3584.64 0.0 205.39196 \n",
"PSF2015098000101 173.25 0.0 300.14424 \n",
"PSF2015098000201 215.25 0.0 1202.27643 \n",
"PSF2015098000301 772.16 0.0 154.37984 \n",
"PSF2015098000401 737.80 0.0 166.26730 \n",
"\n",
" Biomass(mg/m3) NumberOfSpecies Station Diversity \\\n",
"Key \n",
"IOS2015001000201A 5.45896 1452 65.34 \n",
"IOS2015001000701A 3.33723 2915 176.00 \n",
"IOS2015008000501 3.71556 2538 94.00 \n",
"IOS2015008000801 1.77838 1152 72.00 \n",
"IOS2015008001201 4.57015 2016 77.28 \n",
"IOS2015008001601 5.28456 2332 87.12 \n",
"IOS2015099000101 15.79196 2754 131.58 \n",
"IOS2015099000201 14.82036 3286 126.67 \n",
"IOS2015099000301 8.40212 4608 159.36 \n",
"PSF2015098000101 3.09494 800 64.00 \n",
"PSF2015098000201 12.38677 1470 78.40 \n",
"PSF2015098000301 7.44550 1862 105.26 \n",
"PSF2015098000401 4.97040 1088 80.24 \n",
"\n",
" Station Equitability Month \n",
"Key \n",
"IOS2015001000201A 17.16 66 \n",
"IOS2015001000701A 44.55 110 \n",
"IOS2015008000501 23.97 94 \n",
"IOS2015008000801 20.16 64 \n",
"IOS2015008001201 20.16 84 \n",
"IOS2015008001601 22.00 88 \n",
"IOS2015099000101 32.64 102 \n",
"IOS2015099000201 30.74 106 \n",
"IOS2015099000301 37.12 128 \n",
"PSF2015098000101 18.25 50 \n",
"PSF2015098000201 21.00 70 \n",
"PSF2015098000301 26.98 76 \n",
"PSF2015098000401 23.12 68 "
]
},
"execution_count": 49,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"test"
]
},
{
"cell_type": "code",
"execution_count": 65,
"metadata": {},
"outputs": [],
"source": [
"temp=df.loc[(df.Month==2)&(df['Order:']=='Calanoida'),['Name','Biomass(mg/m3)']].groupby('Name',as_index=False).sum().sort_values(['Biomass(mg/m3)'],ascending=False)"
]
},
{
"cell_type": "code",
"execution_count": 70,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"yes\n"
]
}
],
"source": [
"if 'Neocalanus plumchrus 1' in colList:\n",
" print('yes')"
]
},
{
"cell_type": "code",
"execution_count": 72,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0"
]
},
"execution_count": 72,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.sum(np.isnan(df['Biomass(mg/m3)']))"
]
},
{
"cell_type": "code",
"execution_count": 74,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Total: 91.05689\n",
"Acartia *sp. 1 0.1524709442635258\n",
"Acartia *sp. 3 0.29484666124661185\n",
"Acartia *sp. 4 0.3680829643973125\n",
"Acartia hudsonica 6F 0.4329025513610228\n",
"Acartia hudsonica 6M 0.49399644551884\n",
"Acartia longiremis 5 0.5431409967988144\n",
"Acartia longiremis 6F 0.5886318981463128\n",
"Acartia longiremis 6M 0.6190386032292559\n",
"Aetideidae *sp. 1 0.6439498427850984\n",
"Aetideidae *sp. 2 0.6671245855201072\n",
"Aetideus divergens 4 0.6864790791778634\n",
"Aetideus divergens 5 0.7047988351018797\n",
"Aetideus divergens 6F 0.7226583293147834\n",
"Aetideus divergens 6M 0.7390363321216001\n",
"Calanoida *sp. 1 0.7541849935792889\n",
"Calanoida *sp. 2 0.7665354044048726\n",
"Calanus *sp. 1 0.7788231071805769\n",
"Calanus *sp. 2 0.790237839223369\n",
"Calanus *sp. nauplii s1 0.8015660319608983\n",
"Calanus marshallae 5 0.8112372386098404\n",
"Calanus marshallae 6F 0.8207127434288607\n",
"Calanus marshallae 6M 0.829321427516358\n",
"Calanus pacificus 4 0.8376354606444388\n",
"Calanus pacificus 5 0.8458247366014807\n",
"Calanus pacificus 6F 0.8535784606744201\n",
"Calanus pacificus 6M 0.8607734131925657\n",
"Candacia *sp. 1 0.8679344308816171\n",
"Candacia columbiae 6F 0.8747362225966646\n",
"Centropages abdominalis 1 0.880900720417752\n",
"Centropages abdominalis 2 0.8866486654661718\n",
"Centropages abdominalis 3 0.8916313746274446\n",
"Centropages abdominalis 4 0.8963357962258539\n",
"Centropages abdominalis 5 0.9007499597229819\n",
"Centropages abdominalis 6F 0.9046806891823342\n",
"Centropages abdominalis 6M 0.9085288329087452\n",
"Chiridius *sp. 3 0.9121159310404736\n",
"Chiridius gracilis 3 0.9155190782377918\n",
"Chiridius gracilis 4 0.9188578700634294\n",
"Chiridius gracilis 5 0.922149987771381\n",
"Chiridius gracilis 6F 0.9253754438571316\n",
"Clausocalanus arcuicornis 5 0.9284623052687172\n",
"Clausocalanus arcuicornis 6F 0.9314462639784864\n",
"Clausocalanus arcuicornis 6M 0.9343421458826454\n",
"Clausocalanus parapergens 5 0.9371864117037162\n",
"Clausocalanus parapergens 6F 0.9399879569794224\n",
"Clausocalanus pergens 6F 0.9427879647547812\n",
"Ctenocalanus vanus 4 0.9452954081783376\n",
"Ctenocalanus vanus 5 0.9475569613677779\n",
"Ctenocalanus vanus 6F 0.9498129136630957\n",
"Epilabidocera *sp. nauplii s1 0.9518977641340486\n",
"Epilabidocera longipedata 5 0.9538723538658086\n",
"Eucalanus *sp. nauplii s1 0.9558418918107131\n",
"Eucalanus bungii 5F 0.9577635476019443\n",
"Eucalanus bungii 5M 0.9596218364145757\n",
"Eucalanus bungii 6F 0.9614208216423822\n",
"Eucalanus bungii 6M 0.9630263014693342\n",
"Eucalanus californicus 5F 0.9645543571716539\n",
"Eucalanus californicus 6F 0.9659662217762982\n",
"Euchaetidae *sp. 1 0.9673497524459708\n",
"Euchaetidae *sp. 2 0.9685823884387001\n",
"Euchaetidae *sp. 3 0.9697042145849697\n",
"Euchaetidae *sp. nauplii s1 0.9707633326813598\n",
"Euchirella *sp. 4 0.9718003766656207\n",
"Euchirella pseudopulchra 6M 0.9727906367107421\n",
"Gaetanus minutus 4 0.973688427092118\n",
"Gaetanus minutus 5 0.9745852290804133\n",
"Gaetanus minutus 6F 0.9754191033759225\n",
"Heterorhabdus *sp. 3 0.9762425446333606\n",
"Heterorhabdus *sp. 4 0.9770157974866042\n",
"Heterorhabdus tanneri 6F 0.9777780681945101\n",
"Metridia *sp. 1 0.978522987112782\n",
"Metridia *sp. 2 0.9792526408490341\n",
"Metridia *sp. 3 0.979977901727151\n",
"Metridia *sp. 4 0.9807012956405606\n",
"Metridia *sp. 5 0.9813971243691719\n",
"Metridia *sp. 6F 0.9820906468472622\n",
"Metridia pacifica 5F 0.9827817532533781\n",
"Metridia pacifica 5M 0.9834220123265796\n",
"Metridia pacifica 6F 0.9839754026301578\n",
"Metridia pacifica 6M 0.9845213250749064\n",
"Metridia pseudopacifica 6F 0.9850584618033847\n",
"Metridia pseudopacifica 6M 0.9855917547809946\n",
"Microcalanus *sp. 3 0.9861073665046104\n",
"Microcalanus *sp. 4 0.9865972800081355\n",
"Microcalanus pusillus 4 0.9870838988680593\n",
"Microcalanus pusillus 5 0.9875657954054877\n",
"Microcalanus pusillus 6F 0.9880469231927423\n",
"Microcalanus pusillus 6M 0.9885272822298237\n",
"Microcalanus pygmaeus 3 0.9890037975160365\n",
"Microcalanus pygmaeus 4 0.9894687815496445\n",
"Microcalanus pygmaeus 5 0.9899276155818633\n",
"Microcalanus pygmaeus 6F 0.9903856808639082\n",
"Microcalanus pygmaeus 6M 0.9908161809611551\n",
"Neocalanus *sp. eggs s1 0.9912303176618485\n",
"Neocalanus cristatus 6F 0.991639292754233\n",
"Neocalanus plumchrus 4 0.9920401410590676\n",
"Neocalanus plumchrus 5 0.9924279206109499\n",
"Neocalanus plumchrus 6F 0.9927969206943044\n",
"Neocalanus plumchrus 6M 0.9931437368440763\n",
"Paracalanus indicus 4 0.9934752878118285\n",
"Paracalanus indicus 5 0.9937899262757602\n",
"Paracalanus indicus 6F 0.9940953397376081\n",
"Paracalanus indicus 6M 0.994397019270041\n",
"Paracalanus parvus 5 0.9946788211194123\n",
"Paracalanus parvus 6F 0.9949577676109959\n",
"Paracalanus quasimodo 5 0.9952290266008427\n",
"Paracalanus quasimodo 6F 0.9954999561263295\n",
"Paracalanus quasimodo 6M 0.9957663829722276\n",
"Paraeuchaeta *sp. 4 0.9960321508894056\n",
"Paraeuchaeta elongata 4 0.9962944045200753\n",
"Paraeuchaeta elongata 5F 0.9965557795791181\n",
"Paraeuchaeta elongata 5M 0.9967816823087192\n",
"Paraeuchaeta elongata 6F 0.9969847421760175\n",
"Paraeuchaeta elongata 6M 0.9971824207921003\n",
"Pleuromamma indica 6F 0.9973601119036681\n",
"Pseudocalanus *sp. 1 0.9975172664034538\n",
"Pseudocalanus *sp. 2 0.9976716753669052\n",
"Pseudocalanus *sp. 3 0.9978228995082085\n",
"Pseudocalanus *sp. 4 0.9979725861491645\n",
"Pseudocalanus mimus 5F 0.9981151343956508\n",
"Pseudocalanus mimus 5M 0.9982552665701628\n",
"Pseudocalanus mimus 6F 0.9983936416014209\n",
"Pseudocalanus minutus 5F 0.9985239996665821\n",
"Pseudocalanus minutus 5M 0.9986469996943669\n",
"Pseudocalanus minutus 6F 0.9987699997221517\n",
"Pseudocalanus minutus 6M 0.9988843238551196\n",
"Pseudocalanus moultoni 5F 0.9989867872711226\n",
"Pseudocalanus moultoni 5M 0.9990847480075368\n",
"Pseudocalanus moultoni 6F 0.9991825989224978\n",
"Pseudocalanus moultoni 6M 0.9992677105488669\n",
"Pseudocalanus newmani 5F 0.9993470016382066\n",
"Pseudocalanus newmani 5M 0.9994149811178484\n",
"Pseudocalanus newmani 6F 0.9994764811317408\n",
"Pseudocalanus newmani 6M 0.9995352356092989\n",
"Racovitzanus antarcticus 4 0.9995854240134933\n",
"Rhincalanus nasutus 6F 0.9996324275955395\n",
"Scaphocalanus brevicornis 6M 0.9996775642128783\n",
"Scolecithricella globulosa 5 0.9997201749367896\n",
"Scolecithricella minor 3 0.9997611383389\n",
"Scolecithricella minor 4 0.9997937553105537\n",
"Scolecithricella minor 5 0.9998251642462203\n",
"Scolecithricella minor 6F 0.999854925860086\n",
"Scolecithricella minor 6M 0.9998805142587233\n",
"Spinocalanus brevicaudatus 5 0.9999061026573607\n",
"Spinocalanus brevicaudatus 6F 0.9999260901618757\n",
"Tortanus discaudatus 1 0.9999438812373231\n",
"Tortanus discaudatus 2 0.9999592562407963\n",
"Tortanus discaudatus 3 0.9999718857079348\n",
"Tortanus discaudatus 4 0.9999794633882181\n",
"Tortanus discaudatus 5 0.9999866017826877\n",
"Tortanus discaudatus 6F 0.9999937401771575\n",
"Tortanus discaudatus 6M 1.0\n",
"included: 45.85667\n",
"fraction included: 0.5036046146535424\n"
]
}
],
"source": [
"temp=df.loc[(df.Month==2)&(df['Order:']=='Calanoida'),['Name','Biomass(mg/m3)']].groupby('Name',as_index=False).sum()\\\n",
" .sort_values(['Biomass(mg/m3)'],ascending=False)\n",
"print('Total:',np.sum(temp['Biomass(mg/m3)']))\n",
"bsum=0\n",
"for i in range(0,len(temp)):\n",
" print(temp['Name'][i],np.sum(temp['Biomass(mg/m3)'][:(i+1)])/np.sum(temp['Biomass(mg/m3)']))\n",
" if temp['Name'][i] in colList:\n",
" bsum=bsum+temp['Biomass(mg/m3)'][(i+1)]\n",
"print('included:',bsum)\n",
"print('fraction included:',bsum/np.sum(temp['Biomass(mg/m3)']))"
]
},
{
"cell_type": "code",
"execution_count": 66,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'Acartia *sp. 1'"
]
},
"execution_count": 66,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"temp['Name'][0]"
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"5.784098014243127"
]
},
"execution_count": 45,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"10**(np.sum(np.log10(test['Biomass(mg/m3)']))/13)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"273.85192568125007"
]
},
"execution_count": 43,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"10**(np.sum(np.log10(test['Abundance(#/m3)']))/13)"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"5.097374999675256"
]
},
"execution_count": 44,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"10**(np.sum(np.log10(test['Abundance(#/m3)']))/13)*(4.13*(1.8**3.92))*0.45/1000"
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.05239622263482247"
]
},
"execution_count": 48,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"10**(np.sum(np.log10(test['Abundance(#/m3)']))/13)*4.13*(0.5**3.28)*0.45/1000"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Create an abundance dataframe"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [],
"source": [
"biomassDF=df.groupby(towIDlist,as_index=False).first()\\\n",
" .loc[:,towIDlist].copy(deep=True)"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Key | \n",
" region_name | \n",
" Station | \n",
" lon | \n",
" lat | \n",
" Date | \n",
" dtUTC | \n",
" Twilight | \n",
" Net_Type | \n",
" Mesh_Size(um) | \n",
" DEPTH_STRT1 | \n",
" DEPTH_END1 | \n",
" Bottom Depth(m) | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" IOS2012005000901 | \n",
" Northern Strait of Georgia | \n",
" 22 | \n",
" -124.272 | \n",
" 49.670 | \n",
" 6/14/2012 | \n",
" 2012-06-14 14:32:00 | \n",
" Daylight | \n",
" SCOR VNH | \n",
" 236 | \n",
" 50 | \n",
" 0 | \n",
" 352 | \n",
"
\n",
" \n",
" 1 | \n",
" IOS2012005001001 | \n",
" Northern Strait of Georgia | \n",
" 22 | \n",
" -124.272 | \n",
" 49.670 | \n",
" 6/14/2012 | \n",
" 2012-06-14 14:52:00 | \n",
" Daylight | \n",
" SCOR VNH | \n",
" 236 | \n",
" 345 | \n",
" 0 | \n",
" 352 | \n",
"
\n",
" \n",
" 2 | \n",
" IOS2012005002101 | \n",
" Northern Strait of Georgia | \n",
" 11 | \n",
" -124.722 | \n",
" 49.710 | \n",
" 6/14/2012 | \n",
" 2012-06-14 07:00:00 | \n",
" Night | \n",
" SCOR VNH | \n",
" 236 | \n",
" 50 | \n",
" 0 | \n",
" 307 | \n",
"
\n",
" \n",
" 3 | \n",
" IOS2012005002201 | \n",
" Northern Strait of Georgia | \n",
" 11 | \n",
" -124.722 | \n",
" 49.710 | \n",
" 6/14/2012 | \n",
" 2012-06-14 07:05:00 | \n",
" Night | \n",
" SCOR VNH | \n",
" 236 | \n",
" 300 | \n",
" 0 | \n",
" 307 | \n",
"
\n",
" \n",
" 4 | \n",
" IOS2012005002901 | \n",
" Northern Strait of Georgia | \n",
" CPF2 | \n",
" -124.499 | \n",
" 49.466 | \n",
" 6/15/2012 | \n",
" 2012-06-15 10:00:00 | \n",
" Night | \n",
" SCOR VNH | \n",
" 236 | \n",
" 50 | \n",
" 0 | \n",
" 325 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 649 | \n",
" SOO2015095000101 | \n",
" Tidal Mixed | \n",
" CLO-42 | \n",
" -123.345 | \n",
" 48.394 | \n",
" 4/27/2015 | \n",
" 2015-04-27 17:37:00 | \n",
" Daylight | \n",
" SCOR VNH | \n",
" 236 | \n",
" 58 | \n",
" 0 | \n",
" 72 | \n",
"
\n",
" \n",
" 650 | \n",
" SOO2015095000401 | \n",
" Tidal Mixed | \n",
" CB01 | \n",
" -123.318 | \n",
" 48.344 | \n",
" 4/30/2015 | \n",
" 2015-04-30 19:00:00 | \n",
" Daylight | \n",
" SCOR VNH | \n",
" 236 | \n",
" 54 | \n",
" 0 | \n",
" 64 | \n",
"
\n",
" \n",
" 651 | \n",
" SOO2015095000501 | \n",
" Tidal Mixed | \n",
" CLO-41 | \n",
" -123.345 | \n",
" 48.395 | \n",
" 7/9/2015 | \n",
" 2015-07-09 19:25:00 | \n",
" Daylight | \n",
" SCOR VNH | \n",
" 236 | \n",
" 42 | \n",
" 0 | \n",
" 64 | \n",
"
\n",
" \n",
" 652 | \n",
" SOO2015095000701 | \n",
" Tidal Mixed | \n",
" CB01 | \n",
" -123.318 | \n",
" 48.344 | \n",
" 7/27/2015 | \n",
" 2015-07-27 19:06:00 | \n",
" Daylight | \n",
" SCOR VNH | \n",
" 236 | \n",
" 28 | \n",
" 0 | \n",
" 60 | \n",
"
\n",
" \n",
" 653 | \n",
" SOO2015095000801 | \n",
" Tidal Mixed | \n",
" MAC41 | \n",
" -123.409 | \n",
" 48.402 | \n",
" 7/27/2015 | \n",
" 2015-07-27 20:00:00 | \n",
" Daylight | \n",
" SCOR VNH | \n",
" 236 | \n",
" 49 | \n",
" 0 | \n",
" 62 | \n",
"
\n",
" \n",
"
\n",
"
654 rows × 13 columns
\n",
"
"
],
"text/plain": [
" Key region_name Station lon lat \\\n",
"0 IOS2012005000901 Northern Strait of Georgia 22 -124.272 49.670 \n",
"1 IOS2012005001001 Northern Strait of Georgia 22 -124.272 49.670 \n",
"2 IOS2012005002101 Northern Strait of Georgia 11 -124.722 49.710 \n",
"3 IOS2012005002201 Northern Strait of Georgia 11 -124.722 49.710 \n",
"4 IOS2012005002901 Northern Strait of Georgia CPF2 -124.499 49.466 \n",
".. ... ... ... ... ... \n",
"649 SOO2015095000101 Tidal Mixed CLO-42 -123.345 48.394 \n",
"650 SOO2015095000401 Tidal Mixed CB01 -123.318 48.344 \n",
"651 SOO2015095000501 Tidal Mixed CLO-41 -123.345 48.395 \n",
"652 SOO2015095000701 Tidal Mixed CB01 -123.318 48.344 \n",
"653 SOO2015095000801 Tidal Mixed MAC41 -123.409 48.402 \n",
"\n",
" Date dtUTC Twilight Net_Type Mesh_Size(um) \\\n",
"0 6/14/2012 2012-06-14 14:32:00 Daylight SCOR VNH 236 \n",
"1 6/14/2012 2012-06-14 14:52:00 Daylight SCOR VNH 236 \n",
"2 6/14/2012 2012-06-14 07:00:00 Night SCOR VNH 236 \n",
"3 6/14/2012 2012-06-14 07:05:00 Night SCOR VNH 236 \n",
"4 6/15/2012 2012-06-15 10:00:00 Night SCOR VNH 236 \n",
".. ... ... ... ... ... \n",
"649 4/27/2015 2015-04-27 17:37:00 Daylight SCOR VNH 236 \n",
"650 4/30/2015 2015-04-30 19:00:00 Daylight SCOR VNH 236 \n",
"651 7/9/2015 2015-07-09 19:25:00 Daylight SCOR VNH 236 \n",
"652 7/27/2015 2015-07-27 19:06:00 Daylight SCOR VNH 236 \n",
"653 7/27/2015 2015-07-27 20:00:00 Daylight SCOR VNH 236 \n",
"\n",
" DEPTH_STRT1 DEPTH_END1 Bottom Depth(m) \n",
"0 50 0 352 \n",
"1 345 0 352 \n",
"2 50 0 307 \n",
"3 300 0 307 \n",
"4 50 0 325 \n",
".. ... ... ... \n",
"649 58 0 72 \n",
"650 54 0 64 \n",
"651 42 0 64 \n",
"652 28 0 60 \n",
"653 49 0 62 \n",
"\n",
"[654 rows x 13 columns]"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"biomassDF"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [],
"source": [
"#### Get abundance column to input into biomassDF as these abundance values will be multiplied by carbon conversion equations"
]
},
{
"cell_type": "raw",
"metadata": {},
"source": [
"def getabundance(colname,key,origdf,matchcol): \n",
" abundanceArray=origdf.loc[(origdf.Key==key)&(origdf[matchcol]==colname),\n",
" ['Abundance(#/m3)']]\n",
" abundance=np.nansum(abundanceArray)\n",
" \n",
" return abundance"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [],
"source": [
"#for icol in colList:\n",
"# biomassDF[icol]=[getabundance(icol,ikey,df,'Name') for ikey in biomassDF['Key']]"
]
},
{
"cell_type": "raw",
"metadata": {},
"source": [
"def getabundance(colname,key,origdf): \n",
" abundanceArray=df.loc[(origdf.Key==key)&(origdf['Order:']==colname)&(origdf['Family:']==colname)&(origdf['Name']==colname),\n",
" ['Abundance(#/m3)']]\n",
" abundance=np.nansum(abundanceArray)\n",
" \n",
" return abundance"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [],
"source": [
"#for icol in colList:\n",
"# biomassDF[icol]=[getabundance(icol,ikey,df) for ikey in biomassDF['Key']]"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [],
"source": [
"def getabundance(colname,key,origdf): \n",
" abundanceArray=origdf.loc[(origdf.Key==key)&(origdf['Name']==colname),\n",
" ['Abundance(#/m3)']]\n",
" if len(abundanceArray)>1:\n",
" print(len(abundanceArray),colname,key)\n",
" abundance=np.nansum(abundanceArray)\n",
" \n",
" return abundance"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [],
"source": [
"for icol in colList:\n",
" biomassDF[icol]=[getabundance(icol,ikey,df) for ikey in biomassDF['Key']]"
]
},
{
"cell_type": "raw",
"metadata": {},
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Calanus *sp. 1 | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 3.05635 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Calanus *sp. 1\n",
"0 3.05635"
]
},
"execution_count": 38,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"biomassDF.loc[biomassDF.Key=='IOS2012005000901',['Calanus *sp. 1']]"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Key | \n",
" region_name | \n",
" Station | \n",
" lon | \n",
" lat | \n",
" Date | \n",
" dtUTC | \n",
" Twilight | \n",
" Net_Type | \n",
" Mesh_Size(um) | \n",
" ... | \n",
" Thysanoessa raschii zoea s1 | \n",
" Thysanoessa spinifera F | \n",
" Thysanoessa spinifera M | \n",
" Thysanoessa spinifera s2 | \n",
" Thysanoessa spinifera s3 | \n",
" Thysanoessa spinifera eggs s1 | \n",
" Thysanoessa spinifera nauplii s1 | \n",
" Thysanoessa spinifera zoea s1 | \n",
" Xanthidae *sp. megalops s1 | \n",
" Xanthidae *sp. zoea s1 | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" IOS2012005000901 | \n",
" Northern Strait of Georgia | \n",
" 22 | \n",
" -124.272 | \n",
" 49.670 | \n",
" 6/14/2012 | \n",
" 2012-06-14 14:32:00 | \n",
" Daylight | \n",
" SCOR VNH | \n",
" 236 | \n",
" ... | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
"
\n",
" \n",
" 1 | \n",
" IOS2012005001001 | \n",
" Northern Strait of Georgia | \n",
" 22 | \n",
" -124.272 | \n",
" 49.670 | \n",
" 6/14/2012 | \n",
" 2012-06-14 14:52:00 | \n",
" Daylight | \n",
" SCOR VNH | \n",
" 236 | \n",
" ... | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
"
\n",
" \n",
" 2 | \n",
" IOS2012005002101 | \n",
" Northern Strait of Georgia | \n",
" 11 | \n",
" -124.722 | \n",
" 49.710 | \n",
" 6/14/2012 | \n",
" 2012-06-14 07:00:00 | \n",
" Night | \n",
" SCOR VNH | \n",
" 236 | \n",
" ... | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
"
\n",
" \n",
" 3 | \n",
" IOS2012005002201 | \n",
" Northern Strait of Georgia | \n",
" 11 | \n",
" -124.722 | \n",
" 49.710 | \n",
" 6/14/2012 | \n",
" 2012-06-14 07:05:00 | \n",
" Night | \n",
" SCOR VNH | \n",
" 236 | \n",
" ... | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
"
\n",
" \n",
" 4 | \n",
" IOS2012005002901 | \n",
" Northern Strait of Georgia | \n",
" CPF2 | \n",
" -124.499 | \n",
" 49.466 | \n",
" 6/15/2012 | \n",
" 2012-06-15 10:00:00 | \n",
" Night | \n",
" SCOR VNH | \n",
" 236 | \n",
" ... | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 649 | \n",
" SOO2015095000101 | \n",
" Tidal Mixed | \n",
" CLO-42 | \n",
" -123.345 | \n",
" 48.394 | \n",
" 4/27/2015 | \n",
" 2015-04-27 17:37:00 | \n",
" Daylight | \n",
" SCOR VNH | \n",
" 236 | \n",
" ... | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
"
\n",
" \n",
" 650 | \n",
" SOO2015095000401 | \n",
" Tidal Mixed | \n",
" CB01 | \n",
" -123.318 | \n",
" 48.344 | \n",
" 4/30/2015 | \n",
" 2015-04-30 19:00:00 | \n",
" Daylight | \n",
" SCOR VNH | \n",
" 236 | \n",
" ... | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
"
\n",
" \n",
" 651 | \n",
" SOO2015095000501 | \n",
" Tidal Mixed | \n",
" CLO-41 | \n",
" -123.345 | \n",
" 48.395 | \n",
" 7/9/2015 | \n",
" 2015-07-09 19:25:00 | \n",
" Daylight | \n",
" SCOR VNH | \n",
" 236 | \n",
" ... | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
"
\n",
" \n",
" 652 | \n",
" SOO2015095000701 | \n",
" Tidal Mixed | \n",
" CB01 | \n",
" -123.318 | \n",
" 48.344 | \n",
" 7/27/2015 | \n",
" 2015-07-27 19:06:00 | \n",
" Daylight | \n",
" SCOR VNH | \n",
" 236 | \n",
" ... | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
"
\n",
" \n",
" 653 | \n",
" SOO2015095000801 | \n",
" Tidal Mixed | \n",
" MAC41 | \n",
" -123.409 | \n",
" 48.402 | \n",
" 7/27/2015 | \n",
" 2015-07-27 20:00:00 | \n",
" Daylight | \n",
" SCOR VNH | \n",
" 236 | \n",
" ... | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
"
\n",
" \n",
"
\n",
"
654 rows × 250 columns
\n",
"
"
],
"text/plain": [
" Key region_name Station lon lat \\\n",
"0 IOS2012005000901 Northern Strait of Georgia 22 -124.272 49.670 \n",
"1 IOS2012005001001 Northern Strait of Georgia 22 -124.272 49.670 \n",
"2 IOS2012005002101 Northern Strait of Georgia 11 -124.722 49.710 \n",
"3 IOS2012005002201 Northern Strait of Georgia 11 -124.722 49.710 \n",
"4 IOS2012005002901 Northern Strait of Georgia CPF2 -124.499 49.466 \n",
".. ... ... ... ... ... \n",
"649 SOO2015095000101 Tidal Mixed CLO-42 -123.345 48.394 \n",
"650 SOO2015095000401 Tidal Mixed CB01 -123.318 48.344 \n",
"651 SOO2015095000501 Tidal Mixed CLO-41 -123.345 48.395 \n",
"652 SOO2015095000701 Tidal Mixed CB01 -123.318 48.344 \n",
"653 SOO2015095000801 Tidal Mixed MAC41 -123.409 48.402 \n",
"\n",
" Date dtUTC Twilight Net_Type Mesh_Size(um) ... \\\n",
"0 6/14/2012 2012-06-14 14:32:00 Daylight SCOR VNH 236 ... \n",
"1 6/14/2012 2012-06-14 14:52:00 Daylight SCOR VNH 236 ... \n",
"2 6/14/2012 2012-06-14 07:00:00 Night SCOR VNH 236 ... \n",
"3 6/14/2012 2012-06-14 07:05:00 Night SCOR VNH 236 ... \n",
"4 6/15/2012 2012-06-15 10:00:00 Night SCOR VNH 236 ... \n",
".. ... ... ... ... ... ... \n",
"649 4/27/2015 2015-04-27 17:37:00 Daylight SCOR VNH 236 ... \n",
"650 4/30/2015 2015-04-30 19:00:00 Daylight SCOR VNH 236 ... \n",
"651 7/9/2015 2015-07-09 19:25:00 Daylight SCOR VNH 236 ... \n",
"652 7/27/2015 2015-07-27 19:06:00 Daylight SCOR VNH 236 ... \n",
"653 7/27/2015 2015-07-27 20:00:00 Daylight SCOR VNH 236 ... \n",
"\n",
" Thysanoessa raschii zoea s1 Thysanoessa spinifera F \\\n",
"0 0.0 0.0 \n",
"1 0.0 0.0 \n",
"2 0.0 0.0 \n",
"3 0.0 0.0 \n",
"4 0.0 0.0 \n",
".. ... ... \n",
"649 0.0 0.0 \n",
"650 0.0 0.0 \n",
"651 0.0 0.0 \n",
"652 0.0 0.0 \n",
"653 0.0 0.0 \n",
"\n",
" Thysanoessa spinifera M Thysanoessa spinifera s2 \\\n",
"0 0.0 0.0 \n",
"1 0.0 0.0 \n",
"2 0.0 0.0 \n",
"3 0.0 0.0 \n",
"4 0.0 0.0 \n",
".. ... ... \n",
"649 0.0 0.0 \n",
"650 0.0 0.0 \n",
"651 0.0 0.0 \n",
"652 0.0 0.0 \n",
"653 0.0 0.0 \n",
"\n",
" Thysanoessa spinifera s3 Thysanoessa spinifera eggs s1 \\\n",
"0 0.0 0.0 \n",
"1 0.0 0.0 \n",
"2 0.0 0.0 \n",
"3 0.0 0.0 \n",
"4 0.0 0.0 \n",
".. ... ... \n",
"649 0.0 0.0 \n",
"650 0.0 0.0 \n",
"651 0.0 0.0 \n",
"652 0.0 0.0 \n",
"653 0.0 0.0 \n",
"\n",
" Thysanoessa spinifera nauplii s1 Thysanoessa spinifera zoea s1 \\\n",
"0 0.0 0.0 \n",
"1 0.0 0.0 \n",
"2 0.0 0.0 \n",
"3 0.0 0.0 \n",
"4 0.0 0.0 \n",
".. ... ... \n",
"649 0.0 0.0 \n",
"650 0.0 0.0 \n",
"651 0.0 0.0 \n",
"652 0.0 0.0 \n",
"653 0.0 0.0 \n",
"\n",
" Xanthidae *sp. megalops s1 Xanthidae *sp. zoea s1 \n",
"0 0.0 0.0 \n",
"1 0.0 0.0 \n",
"2 0.0 0.0 \n",
"3 0.0 0.0 \n",
"4 0.0 0.0 \n",
".. ... ... \n",
"649 0.0 0.0 \n",
"650 0.0 0.0 \n",
"651 0.0 0.0 \n",
"652 0.0 0.0 \n",
"653 0.0 0.0 \n",
"\n",
"[654 rows x 250 columns]"
]
},
"execution_count": 37,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"biomassDF"
]
},
{
"cell_type": "code",
"execution_count": 283,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Index(['region_name', 'Station', 'Lon', 'Lat', 'Date', 'dtUTC', 'Twilight',\n",
" 'Net_Type', 'Mesh_Size(um)', 'Z_lower', 'Z_upper', 'Bottom Depth(m)',\n",
" 'Anomura *sp. megalops s1', 'Anomura *sp. zoea s1',\n",
" 'Anomura *sp. zoea s2', 'Axiidae *sp. s1', 'Axiidae *sp. mysis s2',\n",
" 'Axiidae *sp. zoea s1', 'Axiidae *sp. zoea s2',\n",
" 'Brachyura *sp. zoea s1', 'Calanoida *sp. 1', 'Calanoida *sp. 2',\n",
" 'Calanoida *sp. 3', 'Calanoida *sp. 4', 'Calanoida *sp. 6M',\n",
" 'Calanus *sp. 1', 'Calanus *sp. 2', 'Calanus *sp. 3',\n",
" 'Calanus *sp. 4', 'Calanus *sp. nauplii s1', 'Calanus marshallae 2',\n",
" 'Calanus marshallae 3', 'Calanus marshallae 4',\n",
" 'Calanus marshallae 5', 'Calanus marshallae 6F',\n",
" 'Calanus marshallae 6M', 'Calanus pacificus 2',\n",
" 'Calanus pacificus 3', 'Calanus pacificus 4', 'Calanus pacificus 5',\n",
" 'Calanus pacificus 6F', 'Calanus pacificus 6M', 'Calliopius *sp. s1',\n",
" 'Calliopius *sp. s2', 'Calliopius *sp. s3',\n",
" 'Calliopius pacificus s1', 'Calliopius pacificus s2',\n",
" 'Calliopius pacificus s3', 'Cancer *sp. megalops s1',\n",
" 'Cancer *sp. zoea s1', 'Cancer *sp. zoea s2',\n",
" 'Cancer magister megalops s2', 'Cancer magister zoea s1',\n",
" 'Cancer magister zoea s2', 'Cancer oregonensis megalops s1',\n",
" 'Cancer oregonensis megalops s2', 'Cancer productus megalops s1',\n",
" 'Cancer productus megalops s2', 'Cancer productus zoea s1',\n",
" 'Cancer productus zoea s2', 'Caridea *sp. s3', 'Caridea *sp. mysis s1',\n",
" 'Caridea *sp. mysis s2', 'Caridea *sp. mysis s3',\n",
" 'Caridea *sp. zoea s1', 'Caridea *sp. zoea s2', 'Chaetognatha *sp. s3',\n",
" 'Chaetognatha *sp. juvenile s1', 'Chaetognatha *sp. juvenile s2',\n",
" 'Chionoecetes *sp. megalops s1', 'Chionoecetes *sp. megalops s2',\n",
" 'Chionoecetes *sp. zoea s1', 'Corycaeus anglicus 3',\n",
" 'Corycaeus anglicus 4', 'Corycaeus anglicus 5',\n",
" 'Corycaeus anglicus 6F', 'Corycaeus anglicus 6M',\n",
" 'Crangonidae *sp. mysis s1', 'Crangonidae *sp. mysis s2',\n",
" 'Crangonidae *sp. mysis s3', 'Crangonidae *sp. zoea s1',\n",
" 'Crangonidae *sp. zoea s2', 'Cyphocaris *sp. s1',\n",
" 'Cyphocaris challengeri s1', 'Cyphocaris challengeri s2',\n",
" 'Cyphocaris challengeri s3', 'Decapoda *sp. zoea s1',\n",
" 'Eucalanus *sp. 1', 'Eucalanus *sp. 2', 'Eucalanus *sp. 3',\n",
" 'Eucalanus *sp. nauplii s1', 'Eucalanus bungii 3',\n",
" 'Eucalanus bungii 4', 'Eucalanus bungii 4F', 'Eucalanus bungii 4M',\n",
" 'Eucalanus bungii 5F', 'Eucalanus bungii 5M', 'Eucalanus bungii 6F',\n",
" 'Eucalanus bungii 6M'],\n",
" dtype='object')"
]
},
"execution_count": 283,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"biomassDF.keys()[1:100]"
]
},
{
"cell_type": "code",
"execution_count": 177,
"metadata": {},
"outputs": [],
"source": [
"# define log transform function\n",
"def log(x):\n",
" return np.log10(x)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Convert Abundances to new Biomass values using Puget Sound LW Regressions"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Copepod Conversions"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Neocalanus conversion C (ug):"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {},
"outputs": [],
"source": [
"biomassDF['Neocalanus plumchrus 1']=(biomassDF['Neocalanus plumchrus 1']*(4.13*(0.9**3.28))*0.45)/1000\n",
"biomassDF['Neocalanus plumchrus 2']=(biomassDF['Neocalanus plumchrus 2']*(4.13*(1.1**3.28))*0.45)/1000\n",
"biomassDF['Neocalanus plumchrus 3']=(biomassDF['Neocalanus plumchrus 3']*(4.13*(1.75**3.28))*0.45)/1000\n",
"biomassDF['Neocalanus plumchrus 4']=(biomassDF['Neocalanus plumchrus 4']*(4.13*(2.6**3.28))*0.45)/1000\n",
"biomassDF['Neocalanus plumchrus 5']=(biomassDF['Neocalanus plumchrus 5']*(2.00*(3.8**3.92))*0.5)/1000\n",
"biomassDF['Neocalanus plumchrus 6F']=(biomassDF['Neocalanus plumchrus 6F']*(2.00*(4.5**3.92))*0.5)/1000\n",
"biomassDF['Neocalanus plumchrus 6M']=(biomassDF['Neocalanus plumchrus 6M']*(2.00*(4.5**3.92))*0.5)/1000"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Calanus Conversions C (ug):"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {},
"outputs": [],
"source": [
"#check these lengths/regression equations\n",
"biomassDF['Calanoida *sp. 1']=(biomassDF['Calanoida *sp. 1']*(4.13*(0.5**3.28))*0.45)/1000\n",
"biomassDF['Calanoida *sp. 2']=(biomassDF['Calanoida *sp. 2']*(4.13*(0.8**3.28))*0.45)/1000\n",
"biomassDF['Calanoida *sp. 3']=(biomassDF['Calanoida *sp. 3']*(4.13*(1.2**3.28))*0.45)/1000\n",
"biomassDF['Calanoida *sp. 4']=(biomassDF['Calanoida *sp. 4']*(4.13*(1.4**3.28))*0.45)/1000\n",
"biomassDF['Calanoida *sp. 6M']=(biomassDF['Calanoida *sp. 6M']*(2.00*(2.1**3.92))*0.45)/1000"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {},
"outputs": [],
"source": [
"#check these lengths/regression equations\n",
"biomassDF['Calanus *sp. 1']=(biomassDF['Calanus *sp. 1']*(4.13*(0.5**3.28))*0.45)/1000\n",
"biomassDF['Calanus *sp. 2']=(biomassDF['Calanus *sp. 2']*(4.13*(0.8**3.28))*0.45)/1000\n",
"biomassDF['Calanus *sp. 3']=(biomassDF['Calanus *sp. 3']*(4.13*(1.2**3.28))*0.45)/1000\n",
"biomassDF['Calanus *sp. 4']=(biomassDF['Calanus *sp. 4']*(4.13*(1.4**3.28))*0.45)/1000\n",
"biomassDF['Calanus *sp. nauplii s1']=(biomassDF['Calanus *sp. nauplii s1']*(4.13*(0.4**3.28))*0.45)/1000"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {},
"outputs": [],
"source": [
"biomassDF['Calanus pacificus 2']=(biomassDF['Calanus pacificus 2']*(4.13*(0.8**3.28))*0.45)/1000\n",
"biomassDF['Calanus pacificus 3']=(biomassDF['Calanus pacificus 3']*(4.13*(1.1**3.28))*0.45)/1000\n",
"biomassDF['Calanus pacificus 4']=(biomassDF['Calanus pacificus 4']*(4.13*(1.4**3.28))*0.45)/1000\n",
"biomassDF['Calanus pacificus 5']=(biomassDF['Calanus pacificus 5']*(2.00*(1.8**3.92))*0.45)/1000\n",
"biomassDF['Calanus pacificus 6F']=(biomassDF['Calanus pacificus 6F']*(2.00*(2.2**3.92))*0.45)/1000\n",
"biomassDF['Calanus pacificus 6M']=(biomassDF['Calanus pacificus 6M']*(2.00*(2.1**3.92))*0.45)/1000\n"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {},
"outputs": [],
"source": [
"biomassDF['Calanus marshallae 2']=(biomassDF['Calanus marshallae 2']*(4.13*(0.8**3.28))*0.45)/1000\n",
"biomassDF['Calanus marshallae 3']=(biomassDF['Calanus marshallae 3']*(4.13*(1.6**3.28))*0.45)/1000\n",
"biomassDF['Calanus marshallae 4']=(biomassDF['Calanus marshallae 4']*(4.13*(2.0**3.28))*0.45)/1000\n",
"biomassDF['Calanus marshallae 5']=(biomassDF['Calanus marshallae 5']*(2.00*(2.5**3.92))*0.45)/1000\n",
"biomassDF['Calanus marshallae 6F']=(biomassDF['Calanus marshallae 6F']*(2.00*(2.8**3.92))*0.45)/1000\n",
"biomassDF['Calanus marshallae 6M']=(biomassDF['Calanus marshallae 6M']*(2.00*(2.6**3.92))*0.45)/1000"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Metridia conversions C (ug):"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#need lengths for these groups. Should they be included?\n",
"'Metridia *sp. 2', 'Metridia *sp. 3' ,'Metridia *sp. 4',\n",
" 'Metridia *sp. 5', 'Metridia *sp. 6F', 'Metridia *sp. 6M',\n",
" 'Metridia pseudopacifica 5', 'Metridia pseudopacifica 6F',\n",
" 'Metridia pseudopacifica 6M'"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {},
"outputs": [],
"source": [
"biomassDF['Metridia *sp. 2']=(biomassDF['Metridia *sp. 2']*(4.13*(0.4**3.28))*0.45)/1000\n",
"biomassDF['Metridia *sp. 3']=(biomassDF['Metridia *sp. 3']*(4.13*(0.7**3.28))*0.45)/1000\n",
"biomassDF['Metridia *sp. 4']=(biomassDF['Metridia *sp. 4']*(4.13*(1.1**3.28))*0.45)/1000\n",
"biomassDF['Metridia *sp. 5']=(biomassDF['Metridia *sp. 5']*(4.13*(1.3**3.28))*0.45)/1000\n",
"biomassDF['Metridia *sp. 6F']=(biomassDF['Metridia *sp. 6F']*(4.13*(2.0**3.28))*0.45)/1000\n",
"biomassDF['Metridia *sp. 6M']=(biomassDF['Metridia *sp. 6M']*(4.13*(1.4**3.28))*0.45)/1000\n",
"biomassDF['Metridia pacifica 3']=(biomassDF['Metridia pacifica 3']*(4.13*(0.7**3.28))*0.45)/1000\n",
"biomassDF['Metridia pacifica 4']=(biomassDF['Metridia pacifica 4']*(4.13*(1.1**3.28))*0.45)/1000\n",
"biomassDF['Metridia pacifica 5F']=(biomassDF['Metridia pacifica 5F']*(4.13*(1.5**3.28))*0.45)/1000\n",
"#biomassDF['Metridia pacifica 5M']=biomassDF['Metridia pacifica 5M']*(4.13*(1.3**3.28))*0.45\n",
"#biomassDF['Metridia pacifica 6F']=biomassDF['Metridia pacifica 6F']*(4.13*(2.0**3.28))*0.45\n",
"#biomassDF['Metridia pacifica 6M']=biomassDF['Metridia pacifica 6M']*(4.13*(1.4**3.28))*0.45"
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([0.00260935, 0.02090429, 0.0086791 , 0.01314684, 0.00035168,\n",
" 0.01081596, 0.00156882, 0.01201997, 0.00216238, 0.02722169,\n",
" 0.00376946, 0.0137952 , 0.0034529 , 0.00916302, 0.00267991,\n",
" 0.01073472, 0.00145261, 0.00274524, 0.00100394])"
]
},
"execution_count": 45,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"biomassDF['Metridia *sp. 2'].unique()[1:20]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Eucalanus conversions C (ug):"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#need lengths for these groups if I will use them. Not including them for now.\n",
"'Eucalanus *sp. 1',\n",
" 'Eucalanus *sp. 2' ,'Eucalanus *sp. 3' ,'Eucalanus *sp. nauplii s1',\n",
" 'Eucalanus californicus 5F', 'Eucalanus californicus 6F'"
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {},
"outputs": [],
"source": [
"biomassDF['Eucalanus bungii 3']=(biomassDF['Eucalanus bungii 3']*(4.13*(2.6**3.28))*0.45)/1000\n",
"biomassDF['Eucalanus bungii 4']=(biomassDF['Eucalanus bungii 4']*(4.13*(3.2**3.28))*0.45)/1000\n",
"biomassDF['Eucalanus bungii 4F']=(biomassDF['Eucalanus bungii 4F']*(4.13*(3.2**3.28))*0.45)/1000\n",
"biomassDF['Eucalanus bungii 4M']=(biomassDF['Eucalanus bungii 4M']*(4.13*(3.2**3.28))*0.45)/1000\n",
"biomassDF['Eucalanus bungii 5F']=(biomassDF['Eucalanus bungii 5F']*(4.13*(4.6**3.28))*0.45)/1000\n",
"biomassDF['Eucalanus bungii 5M']=(biomassDF['Eucalanus bungii 5M']*(4.13*(4.4**3.28))*0.45)/1000\n",
"biomassDF['Eucalanus bungii 6F']=(biomassDF['Eucalanus bungii 6F']*(4.13*(6.2**3.28))*0.45)/1000\n",
"biomassDF['Eucalanus bungii 6M']=(biomassDF['Eucalanus bungii 6M']*(4.13*(6.1**3.28))*0.45)/1000\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([0.03194719, 0.20475132, 0.05426117, 0.0515078 , 0. ,\n",
" 0.02195154, 0.02452752, 0.02647487, 0.56557544, 0.08391082,\n",
" 0.1501332 , 0.13528053, 0.04986061, 0.00547231, 0.02444432,\n",
" 0.00898015, 0.03032253, 0.00576887, 0.01201845])"
]
},
"execution_count": 47,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"biomassDF['Calanus pacificus 5'].unique()[1:20]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Euphausiid Conversions"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Euphausia pacifica"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#Include these groups too?\n",
" 'Euphausiacea *sp. s2',\n",
" \n",
" 'Thysanoessa *sp. s1',\n",
" 'Thysanoessa *sp. s2',\n",
" 'Thysanoessa *sp. zoea s1', \n",
" \n",
" 'Thysanoessa longipes F',\n",
" 'Thysanoessa longipes M', 'Thysanoessa longipes s2',\n",
" 'Thysanoessa longipes s3' ,'Thysanoessa longipes zoea s1',\n",
" \n",
" 'Thysanoessa raschii F', 'Thysanoessa raschii M',\n",
" 'Thysanoessa raschii s2' ,'Thysanoessa raschii zoea s1',\n",
" \n",
" 'Thysanoessa spinifera F', 'Thysanoessa spinifera M',\n",
" 'Thysanoessa spinifera s2', 'Thysanoessa spinifera s3',\n",
" 'Thysanoessa spinifera zoea s1'\n",
" \n",
" ##### multiply by 3 to adjust for nighttime abundance"
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {},
"outputs": [],
"source": [
"#Double check these regressions for the calyptopis and furcilia with BethElLee(4.13*[Length (mm)^3.28)*46.9%\n",
"biomassDF['Euphausiidae *sp. protozoea (or calyptopis) s1']=(biomassDF['Euphausiidae *sp. protozoea (or calyptopis) s1']*(4.13*(1.3**3.28)*.469))/1000\n",
"biomassDF['Euphausiidae *sp. zoea (or furcilia) s1']=(biomassDF['Euphausiidae *sp. zoea (or furcilia) s1']*(4.13*(3.0**3.28)*.469))/1000\n",
"\n",
"biomassDF['Euphausia pacifica zoea s1']=(biomassDF['Euphausia pacifica zoea s1']*(4.13*(4.7**3.28)*.469))/1000\n",
"biomassDF['Euphausia pacifica s2']=(biomassDF['Euphausia pacifica s2']*(4.13*(8.0**3.28)*.469))/1000\n",
"biomassDF['Euphausia pacifica s3']=(biomassDF['Euphausia pacifica s3']*(4.13*(12.0**3.28)*.469))/1000\n",
"biomassDF['Euphausia pacifica F']=(biomassDF['Euphausia pacifica F']*(4.13*(18.1**3.28)*.469))/1000\n",
"biomassDF['Euphausia pacifica M']=(biomassDF['Euphausia pacifica M']*(4.13*(15.1**3.28)*.469))/1000\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Amphipod Conversions"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#Decide later if we include Calliopius (not in Puget Sound?) \n",
" 'Calliopius *sp. s1' ,'Calliopius *sp. s2', 'Calliopius *sp. s3',\n",
" 'Calliopius pacificus s1' ,'Calliopius pacificus s2',\n",
" 'Calliopius pacificus s3',\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Hyperiids"
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {},
"outputs": [],
"source": [
"biomassDF['Themisto *sp. s1']=biomassDF['Themisto *sp. s1']*(0.0049*(3.5**2.957)*1000)*0.37/1000\n",
"biomassDF['Themisto pacifica juvenile s1']=biomassDF['Themisto pacifica juvenile s1']*(0.0049*(4.3**2.957)*1000)*0.37/1000\n",
"biomassDF['Themisto pacifica s2']=biomassDF['Themisto pacifica s2']*(0.0049*(6.2**2.957)*1000)*0.37/1000\n",
"biomassDF['Themisto pacifica F']=biomassDF['Themisto pacifica F']*(0.0049*(7.5**2.957)*1000)*0.37/1000\n",
"biomassDF['Themisto pacifica M']=biomassDF['Themisto pacifica M']*(0.0049*(5.9**2.957)*1000)*0.37/1000"
]
},
{
"cell_type": "code",
"execution_count": 50,
"metadata": {},
"outputs": [],
"source": [
"biomassDF['Hyperia medusarum s1']=biomassDF['Hyperia medusarum s1']*(0.0049*(3.0**2.957)*1000)*0.37/1000\n",
"biomassDF['Hyperia medusarum s2']=biomassDF['Hyperia medusarum s2']*(0.0049*(6.0**2.957)*1000)*0.37/1000\n",
"biomassDF['Hyperia medusarum F']=biomassDF['Hyperia medusarum F']*(0.0049*(10.8**2.957)*1000)*0.37/1000\n",
"biomassDF['Hyperia medusarum M']=biomassDF['Hyperia medusarum M']*(0.0049*(10.4**2.957)*1000)*0.37/1000"
]
},
{
"cell_type": "code",
"execution_count": 51,
"metadata": {},
"outputs": [],
"source": [
"biomassDF['Primno *sp. s1']=biomassDF['Primno *sp. s1']*(0.0049*(3.0**2.957)*1000)*0.37/1000\n",
"biomassDF['Primno brevidens s1']=biomassDF['Primno brevidens s1']*(0.0049*(3.0**2.957)*1000)*0.37/1000\n",
"biomassDF['Primno abyssalis s1']=biomassDF['Primno abyssalis s1']*(0.0049*(3.0**2.957)*1000)*0.37/1000\n",
"biomassDF['Primno abyssalis s2']=biomassDF['Primno abyssalis s2']*(0.0049*(7.5**2.957)*1000)*0.37/1000\n",
"biomassDF['Primno abyssalis F']=biomassDF['Primno abyssalis F']*(0.0049*(12.3**2.957)*1000)*0.37/1000\n",
"biomassDF['Primno abyssalis M']=biomassDF['Primno abyssalis M']*(0.0049*(11.8**2.957)*1000)*0.37/1000"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Gammariids"
]
},
{
"cell_type": "code",
"execution_count": 52,
"metadata": {},
"outputs": [],
"source": [
"biomassDF['Gammaridea *sp. s1']=biomassDF['Gammaridea *sp. s1']*(0.0049*(4.0**2.957)*1000)*0.37/1000\n",
"biomassDF['Gammaridea *sp. s2']=biomassDF['Gammaridea *sp. s2']*(0.0049*(6.5**2.957)*1000)*0.37/1000"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Cyphocariids"
]
},
{
"cell_type": "code",
"execution_count": 53,
"metadata": {},
"outputs": [],
"source": [
"biomassDF['Cyphocaris *sp. s1']=biomassDF['Cyphocaris *sp. s1']*((0.02 * (3.3)**2.1)*1000)*0.37/1000\n",
"biomassDF['Cyphocaris challengeri s1']=biomassDF['Cyphocaris challengeri s1']*((0.02 * (3.2)**2.1)*1000)*0.37/1000\n",
"biomassDF['Cyphocaris challengeri s2']=biomassDF['Cyphocaris challengeri s2']*((0.02 * (8.6)**2.1)*1000)*0.37/1000\n",
"biomassDF['Cyphocaris challengeri s3']=biomassDF['Cyphocaris challengeri s3']*((0.02 * (11.3)**2.1)*1000)*0.37/1000"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Chaetognath Conversions"
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {},
"outputs": [],
"source": [
"biomassDF['Chaetognatha *sp. juvenile s1']=biomassDF['Chaetognatha *sp. juvenile s1']*0.0956*(3.5**2.9093)/1000\n",
"biomassDF['Chaetognatha *sp. juvenile s2']=biomassDF['Chaetognatha *sp. juvenile s2']*0.0956*(6.0**2.9093)/1000\n",
"biomassDF['Chaetognatha *sp. s3']=biomassDF['Chaetognatha *sp. s3']*0.0956*(15.0**2.9093)/1000\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 55,
"metadata": {},
"outputs": [],
"source": [
"biomassDF['Parasagitta elegans juvenile s1']=biomassDF['Parasagitta elegans juvenile s1']*0.0956*(3.5**2.9093)/1000\n",
"biomassDF['Parasagitta elegans s2']=biomassDF['Parasagitta elegans s2']*0.0956*(7.5**2.9093)/1000\n",
"biomassDF['Parasagitta elegans s3']=biomassDF['Parasagitta elegans s3']*0.0956*(20.0**2.9093)/1000\n",
"biomassDF['Parasagitta euneritica s2']=biomassDF['Parasagitta euneritica s2']*0.0956*(7.5**2.9093)/1000\n",
"biomassDF['Parasagitta euneritica s3']=biomassDF['Parasagitta euneritica s3']*0.0956*(20.0**2.9093)/1000"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Gastropod - Limacina Conversions"
]
},
{
"cell_type": "code",
"execution_count": 56,
"metadata": {},
"outputs": [],
"source": [
"biomassDF['Limacina helicina s0']=biomassDF['Limacina helicina s0']*(2.6*(1.0**2.659))*0.22/1000\n",
"biomassDF['Limacina helicina s1']=biomassDF['Limacina helicina s1']*(2.6*(2.0**2.659))*0.22/1000 \n",
"biomassDF['Limacina helicina s2']=biomassDF['Limacina helicina s2']*(2.6*(6.0**2.659))*0.22/1000 "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Larvaceans - Oikopleura Conversions"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#Need length for this category: 'Oikopleura *sp. s2',\n"
]
},
{
"cell_type": "code",
"execution_count": 57,
"metadata": {},
"outputs": [],
"source": [
"biomassDF['Oikopleura *sp. s1']=biomassDF['Oikopleura *sp. s1']*((38.8*(1.3**2.574))*0.46)/1000\n",
"biomassDF['Oikopleura dioica s1']=biomassDF['Oikopleura dioica s1']*((38.8*(4.6**2.574))*0.46)/1000\n",
"biomassDF['Oikopleura dioica s2']=biomassDF['Oikopleura dioica s2']*((38.8*(8.5**2.574))*0.46)/1000\n",
"biomassDF['Oikopleura labradoriensis s1']=biomassDF['Oikopleura labradoriensis s1']*((38.8*(4.6**2.574))*0.46)/1000\n",
"biomassDF['Oikopleura labradoriensis s2']=biomassDF['Oikopleura labradoriensis s2']*((38.8*(8.5**2.574))*0.46)/1000\n",
"biomassDF['Oikopleura labradoriensis s3']=biomassDF['Oikopleura labradoriensis s3']*((38.8*(18.5**2.574))*0.46)/1000"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Import model data for comparison with observations"
]
},
{
"cell_type": "code",
"execution_count": 199,
"metadata": {},
"outputs": [],
"source": [
"import netCDF4 as nc"
]
},
{
"cell_type": "code",
"execution_count": 200,
"metadata": {},
"outputs": [],
"source": [
"ftemp=nc.Dataset('/data/eolson/results/MEOPAR/NEMO-forcing-new/grid/mesh_mask201702.nc')"
]
},
{
"cell_type": "code",
"execution_count": 201,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"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'])"
]
},
"execution_count": 201,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ftemp.variables.keys()"
]
},
{
"cell_type": "code",
"execution_count": 202,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\n",
"float64 e3t_0(t, z, y, x)\n",
" _FillValue: nan\n",
" standard_name: e3t_0\n",
" long_name: grid spacing on T-grid in w direction\n",
" units: m\n",
"unlimited dimensions: t\n",
"current shape = (1, 40, 898, 398)\n",
"filling on"
]
},
"execution_count": 202,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ftemp.variables['e3t_0']"
]
},
{
"cell_type": "code",
"execution_count": 203,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"masked_array(data=[[ 1.00000115, 1.00000501, 1.00001253, 1.00002718,\n",
" 1.0000557 , 1.00011125, 1.00021946, 1.0004302 ,\n",
" 1.00084067, 1.00164012, 1.0031971 , 1.00622914,\n",
" 1.01213271, 1.02362358, 1.04597551, 1.08940061,\n",
" 1.17356428, 1.33592899, 1.64636781, 2.22990285,\n",
" 3.29248567, 5.11998508, 7.97451506, 11.8252972 ,\n",
" 16.10792044, 19.95870258, 22.81323256, 24.64073198,\n",
" 25.70331479, 26.28684983, 26.59728865, 26.75965336,\n",
" 26.84381704, 26.88724213, 26.90959407, 26.92108493,\n",
" 26.9269885 , 26.93002054, 26.93157752, 26.93237697]],\n",
" mask=False,\n",
" fill_value=1e+20)"
]
},
"execution_count": 203,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ftemp.variables['e3t_1d'][:]"
]
},
{
"cell_type": "code",
"execution_count": 204,
"metadata": {},
"outputs": [],
"source": [
"fdict={'ptrc_T':1,'grid_T':1}\n",
"start_date = dt.datetime(2014,1,1)\n",
"end_date = dt.datetime(2016,12,31)\n",
"flen=1 # number of days per model output file. always 1 for 201905 and 201812 model runs\n",
"namfmt='nowcast' # for 201905 and 201812 model runs, this should always be 'nowcast'\n",
"# filemap is dictionary of the form variableName: fileType, where variableName is the name\n",
"# of the variable you want to extract and fileType designates the type of \n",
"# model output file it can be found in (usually ptrc_T for biology, grid_T for temperature and \n",
"# salinity)\n",
"filemap={'microzooplankton':'ptrc_T','mesozooplankton':'ptrc_T'}\n",
"# fdict is a dictionary mappy file type to its time resolution. Here, 1 means hourly output\n",
"# (1h file) and 24 means daily output (1d file). In certain runs, multiple time resolutions \n",
"# are available\n",
"fdict={'ptrc_T':1,'grid_T':1}"
]
},
{
"cell_type": "code",
"execution_count": 205,
"metadata": {},
"outputs": [],
"source": [
"PATH= '/results2/SalishSea/nowcast-green.201905/'"
]
},
{
"cell_type": "code",
"execution_count": 206,
"metadata": {},
"outputs": [],
"source": [
"biomassDF.rename(columns={'lon':'Lon','lat':'Lat'},inplace=True)"
]
},
{
"cell_type": "code",
"execution_count": 207,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Index(['Key', 'region_name', 'Station', 'Lon', 'Lat', 'Date', 'dtUTC',\n",
" 'Twilight', 'Net_Type', 'Mesh_Size(um)',\n",
" ...\n",
" 'OtherCalanoids', 'Calanoids', 'CalanoidsDiaRemoved', 'Euphausiids',\n",
" 'Themisto', 'Hyperia', 'Primno', 'Hyperiids', 'Gammariids', 'Total'],\n",
" dtype='object', length=272)"
]
},
"execution_count": 207,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"biomassDF.keys()"
]
},
{
"cell_type": "code",
"execution_count": 208,
"metadata": {},
"outputs": [],
"source": [
"biomassDF.rename(columns={'DEPTH_STRT1':'Z_lower','DEPTH_END1':'Z_upper'},inplace=True)"
]
},
{
"cell_type": "code",
"execution_count": 209,
"metadata": {},
"outputs": [],
"source": [
"biomassDF['Year']=[ii.year for ii in biomassDF['dtUTC']]\n",
"biomassDF['Month']=[ii.month for ii in biomassDF['dtUTC']]\n",
"biomassDF['YD']=et.datetimeToYD(biomassDF['dtUTC'])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Need to convert biomass from mg C to N using a known C:N"
]
},
{
"cell_type": "code",
"execution_count": 210,
"metadata": {},
"outputs": [],
"source": [
"#biomassDF['Amphipoda']=biomassDF['Amphipoda']*0.45/8.5\n",
"\n",
"#biomassDF['Euphausiacea']=biomassDF['Euphausiacea']*0.45/8.5\n",
"#biomassDF['Calanoida']=biomassDF['Calanoida']*0.45/8.5\n",
"\n",
"\n",
"\n",
"#biomassDF['Cyclopoida']=biomassDF['Cyclopoida']*0.45/8.5\n",
"#biomassDF['Poecilostomatoida']=biomassDF['Poecilostomatoida']*0.45/8.5\n",
"#biomassDF['Copelata']=biomassDF['Copelata']*0.45/8.5\n",
"#biomassDF['Harpacticoida']=biomassDF['Harpacticoida']*0.45/8.5\n",
"#biomassDF['Decapoda']=biomassDF['Decapoda']*0.45/8.5\n"
]
},
{
"cell_type": "code",
"execution_count": 58,
"metadata": {},
"outputs": [],
"source": [
"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'])\n",
"biomassDF['NeocalanusDiaRemoved']=(biomassDF['Neocalanus plumchrus 1']+biomassDF['Neocalanus plumchrus 2']+biomassDF['Neocalanus plumchrus 3']+biomassDF['Neocalanus plumchrus 4'])"
]
},
{
"cell_type": "code",
"execution_count": 261,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([1.16228376e+00, 4.25664753e+00, 6.76832999e+00, 1.67322568e-02,\n",
" 5.19182122e+00, 1.56416337e-02, 5.70440844e-02, 5.50394930e+00,\n",
" 5.24904520e-02, 2.44223301e+00, 9.88737895e-02, 2.72848784e-01,\n",
" 2.11242203e+01, 1.60857534e-02, 3.26710947e-01, 1.80099161e+00,\n",
" 2.83673986e+01, 3.99770194e+01, 3.16960664e+01])"
]
},
"execution_count": 261,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"biomassDF['Neocalanus'].unique()[1:20]"
]
},
{
"cell_type": "code",
"execution_count": 59,
"metadata": {},
"outputs": [],
"source": [
"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'])\n",
"biomassDF['CalPacificusDiaRemoved']=(biomassDF['Calanus pacificus 2']+biomassDF['Calanus pacificus 3']+biomassDF['Calanus pacificus 4'])\n"
]
},
{
"cell_type": "code",
"execution_count": 60,
"metadata": {},
"outputs": [],
"source": [
"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'])\n",
"biomassDF['CalMarshDiaRemoved']=(biomassDF['Calanus marshallae 2']+biomassDF['Calanus marshallae 3']+biomassDF['Calanus marshallae 4']+biomassDF['Calanus marshallae 5'])\n"
]
},
{
"cell_type": "code",
"execution_count": 61,
"metadata": {},
"outputs": [],
"source": [
"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'])\n",
"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'])\n",
"biomassDF['EucalanusDiaRemoved']=(biomassDF['Eucalanus bungii 3']+biomassDF['Eucalanus bungii 4']+biomassDF['Eucalanus bungii 4F']+biomassDF['Eucalanus bungii 4M'])"
]
},
{
"cell_type": "code",
"execution_count": 62,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([0.05328713, 0.15333201, 0.15656956, 0.47845137, 0.04713698,\n",
" 0.11257754, 0.0756802 , 0.11441692, 0.0672129 , 0.2762964 ,\n",
" 0.09263692, 0.07144549, 0.01643963, 0.07175813, 0.03725966,\n",
" 0.06370595, 0.03816424, 0.08821852, 0.04425084])"
]
},
"execution_count": 62,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"biomassDF['Metridia'].unique()[1:20]"
]
},
{
"cell_type": "code",
"execution_count": 63,
"metadata": {},
"outputs": [],
"source": [
"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'])"
]
},
{
"cell_type": "code",
"execution_count": 64,
"metadata": {},
"outputs": [],
"source": [
"biomassDF['Calanoids']=biomassDF['Neocalanus']+biomassDF['CalPacificus']+biomassDF['CalMarsh']+biomassDF['Metridia']+biomassDF['Eucalanus']+biomassDF['OtherCalanoids']\n",
"biomassDF['CalanoidsDiaRemoved']=biomassDF['NeocalanusDiaRemoved']+biomassDF['CalPacificusDiaRemoved']+biomassDF['CalMarshDiaRemoved']+biomassDF['EucalanusDiaRemoved']+biomassDF['OtherCalanoids']"
]
},
{
"cell_type": "code",
"execution_count": 65,
"metadata": {},
"outputs": [],
"source": [
"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'])"
]
},
{
"cell_type": "code",
"execution_count": 66,
"metadata": {},
"outputs": [],
"source": [
"biomassDF['Themisto']=(biomassDF['Themisto *sp. s1']+biomassDF['Themisto pacifica juvenile s1']+biomassDF['Themisto pacifica s2']+biomassDF['Themisto pacifica F']+biomassDF['Themisto pacifica M'])\n",
"biomassDF['Hyperia']=(biomassDF['Hyperia medusarum s1']+biomassDF['Hyperia medusarum s2']+biomassDF['Hyperia medusarum F']+biomassDF['Hyperia medusarum M'])\n",
"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'])"
]
},
{
"cell_type": "code",
"execution_count": 67,
"metadata": {},
"outputs": [],
"source": [
"biomassDF['Hyperiids']=biomassDF['Themisto']+biomassDF['Hyperia']+biomassDF['Primno']"
]
},
{
"cell_type": "code",
"execution_count": 68,
"metadata": {},
"outputs": [],
"source": [
"biomassDF['Gammariids']=(biomassDF['Gammaridea *sp. s1']+biomassDF['Gammaridea *sp. s2'])"
]
},
{
"cell_type": "code",
"execution_count": 69,
"metadata": {},
"outputs": [],
"source": [
"\n",
"biomassDF['Total']=biomassDF['Calanoids']+biomassDF['Euphausiids']+biomassDF['Hyperiids']+biomassDF['Gammariids']"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 263,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([0.36245896, 1.87300085, 3.0219189 , 8.89761441, 0.88179773,\n",
" 2.20092374, 1.05748946, 2.39226072, 0.14470814, 1.42228345,\n",
" 0.81166803, 0.79332675, 0.66087864, 0.17989049, 0.37087584,\n",
" 1.05846975, 0.57754293, 0.05944203, 0.2487363 ])"
]
},
"execution_count": 263,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"biomassDF['Hyperiids'].unique()[1:20]"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 70,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Key | \n",
" region_name | \n",
" Station | \n",
" lon | \n",
" lat | \n",
" Date | \n",
" dtUTC | \n",
" Twilight | \n",
" Net_Type | \n",
" Mesh_Size(um) | \n",
" ... | \n",
" OtherCalanoids | \n",
" Calanoids | \n",
" CalanoidsDiaRemoved | \n",
" Euphausiids | \n",
" Themisto | \n",
" Hyperia | \n",
" Primno | \n",
" Hyperiids | \n",
" Gammariids | \n",
" Total | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" IOS2012005000901 | \n",
" Northern Strait of Georgia | \n",
" 22 | \n",
" -124.272 | \n",
" 49.670 | \n",
" 6/14/2012 | \n",
" 2012-06-14 14:32:00 | \n",
" Daylight | \n",
" SCOR VNH | \n",
" 236 | \n",
" ... | \n",
" 0.115408 | \n",
" 0.445351 | \n",
" 0.237637 | \n",
" 0.448822 | \n",
" 0.827555 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.827555 | \n",
" 0.0 | \n",
" 1.721729 | \n",
"
\n",
" \n",
" 1 | \n",
" IOS2012005001001 | \n",
" Northern Strait of Georgia | \n",
" 22 | \n",
" -124.272 | \n",
" 49.670 | \n",
" 6/14/2012 | \n",
" 2012-06-14 14:52:00 | \n",
" Daylight | \n",
" SCOR VNH | \n",
" 236 | \n",
" ... | \n",
" 0.015486 | \n",
" 3.666233 | \n",
" 0.604391 | \n",
" 0.172039 | \n",
" 0.278596 | \n",
" 0.000000 | \n",
" 0.083863 | \n",
" 0.362459 | \n",
" 0.0 | \n",
" 4.200731 | \n",
"
\n",
" \n",
" 2 | \n",
" IOS2012005002101 | \n",
" Northern Strait of Georgia | \n",
" 11 | \n",
" -124.722 | \n",
" 49.710 | \n",
" 6/14/2012 | \n",
" 2012-06-14 07:00:00 | \n",
" Night | \n",
" SCOR VNH | \n",
" 236 | \n",
" ... | \n",
" 0.004346 | \n",
" 12.477846 | \n",
" 1.859686 | \n",
" 0.000000 | \n",
" 1.635304 | \n",
" 0.000000 | \n",
" 0.237697 | \n",
" 1.873001 | \n",
" 0.0 | \n",
" 14.350847 | \n",
"
\n",
" \n",
" 3 | \n",
" IOS2012005002201 | \n",
" Northern Strait of Georgia | \n",
" 11 | \n",
" -124.722 | \n",
" 49.710 | \n",
" 6/14/2012 | \n",
" 2012-06-14 07:05:00 | \n",
" Night | \n",
" SCOR VNH | \n",
" 236 | \n",
" ... | \n",
" 0.010369 | \n",
" 14.173214 | \n",
" 2.698241 | \n",
" 12.270955 | \n",
" 2.562381 | \n",
" 0.000000 | \n",
" 0.459538 | \n",
" 3.021919 | \n",
" 0.0 | \n",
" 29.466088 | \n",
"
\n",
" \n",
" 4 | \n",
" IOS2012005002901 | \n",
" Northern Strait of Georgia | \n",
" CPF2 | \n",
" -124.499 | \n",
" 49.466 | \n",
" 6/15/2012 | \n",
" 2012-06-15 10:00:00 | \n",
" Night | \n",
" SCOR VNH | \n",
" 236 | \n",
" ... | \n",
" 0.051333 | \n",
" 0.747524 | \n",
" 0.051333 | \n",
" 39.755211 | \n",
" 7.895820 | \n",
" 0.197026 | \n",
" 0.804768 | \n",
" 8.897614 | \n",
" 0.0 | \n",
" 49.400349 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 649 | \n",
" SOO2015095000101 | \n",
" Tidal Mixed | \n",
" CLO-42 | \n",
" -123.345 | \n",
" 48.394 | \n",
" 4/27/2015 | \n",
" 2015-04-27 17:37:00 | \n",
" Daylight | \n",
" SCOR VNH | \n",
" 236 | \n",
" ... | \n",
" 0.000146 | \n",
" 0.496019 | \n",
" 0.056654 | \n",
" 0.000000 | \n",
" 0.304123 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.304123 | \n",
" 0.0 | \n",
" 0.800142 | \n",
"
\n",
" \n",
" 650 | \n",
" SOO2015095000401 | \n",
" Tidal Mixed | \n",
" CB01 | \n",
" -123.318 | \n",
" 48.344 | \n",
" 4/30/2015 | \n",
" 2015-04-30 19:00:00 | \n",
" Daylight | \n",
" SCOR VNH | \n",
" 236 | \n",
" ... | \n",
" 0.006763 | \n",
" 1.091657 | \n",
" 0.180086 | \n",
" 0.023474 | \n",
" 1.761051 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 1.761051 | \n",
" 0.0 | \n",
" 2.876183 | \n",
"
\n",
" \n",
" 651 | \n",
" SOO2015095000501 | \n",
" Tidal Mixed | \n",
" CLO-41 | \n",
" -123.345 | \n",
" 48.395 | \n",
" 7/9/2015 | \n",
" 2015-07-09 19:25:00 | \n",
" Daylight | \n",
" SCOR VNH | \n",
" 236 | \n",
" ... | \n",
" 0.010097 | \n",
" 0.141755 | \n",
" 0.075749 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.0 | \n",
" 0.141755 | \n",
"
\n",
" \n",
" 652 | \n",
" SOO2015095000701 | \n",
" Tidal Mixed | \n",
" CB01 | \n",
" -123.318 | \n",
" 48.344 | \n",
" 7/27/2015 | \n",
" 2015-07-27 19:06:00 | \n",
" Daylight | \n",
" SCOR VNH | \n",
" 236 | \n",
" ... | \n",
" 0.029189 | \n",
" 0.029189 | \n",
" 0.029189 | \n",
" 0.003526 | \n",
" 0.168176 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.168176 | \n",
" 0.0 | \n",
" 0.200890 | \n",
"
\n",
" \n",
" 653 | \n",
" SOO2015095000801 | \n",
" Tidal Mixed | \n",
" MAC41 | \n",
" -123.409 | \n",
" 48.402 | \n",
" 7/27/2015 | \n",
" 2015-07-27 20:00:00 | \n",
" Daylight | \n",
" SCOR VNH | \n",
" 236 | \n",
" ... | \n",
" 0.399796 | \n",
" 0.893605 | \n",
" 0.655242 | \n",
" 0.000000 | \n",
" 0.731182 | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.731182 | \n",
" 0.0 | \n",
" 1.624787 | \n",
"
\n",
" \n",
"
\n",
"
654 rows × 269 columns
\n",
"
"
],
"text/plain": [
" Key region_name Station lon lat \\\n",
"0 IOS2012005000901 Northern Strait of Georgia 22 -124.272 49.670 \n",
"1 IOS2012005001001 Northern Strait of Georgia 22 -124.272 49.670 \n",
"2 IOS2012005002101 Northern Strait of Georgia 11 -124.722 49.710 \n",
"3 IOS2012005002201 Northern Strait of Georgia 11 -124.722 49.710 \n",
"4 IOS2012005002901 Northern Strait of Georgia CPF2 -124.499 49.466 \n",
".. ... ... ... ... ... \n",
"649 SOO2015095000101 Tidal Mixed CLO-42 -123.345 48.394 \n",
"650 SOO2015095000401 Tidal Mixed CB01 -123.318 48.344 \n",
"651 SOO2015095000501 Tidal Mixed CLO-41 -123.345 48.395 \n",
"652 SOO2015095000701 Tidal Mixed CB01 -123.318 48.344 \n",
"653 SOO2015095000801 Tidal Mixed MAC41 -123.409 48.402 \n",
"\n",
" Date dtUTC Twilight Net_Type Mesh_Size(um) ... \\\n",
"0 6/14/2012 2012-06-14 14:32:00 Daylight SCOR VNH 236 ... \n",
"1 6/14/2012 2012-06-14 14:52:00 Daylight SCOR VNH 236 ... \n",
"2 6/14/2012 2012-06-14 07:00:00 Night SCOR VNH 236 ... \n",
"3 6/14/2012 2012-06-14 07:05:00 Night SCOR VNH 236 ... \n",
"4 6/15/2012 2012-06-15 10:00:00 Night SCOR VNH 236 ... \n",
".. ... ... ... ... ... ... \n",
"649 4/27/2015 2015-04-27 17:37:00 Daylight SCOR VNH 236 ... \n",
"650 4/30/2015 2015-04-30 19:00:00 Daylight SCOR VNH 236 ... \n",
"651 7/9/2015 2015-07-09 19:25:00 Daylight SCOR VNH 236 ... \n",
"652 7/27/2015 2015-07-27 19:06:00 Daylight SCOR VNH 236 ... \n",
"653 7/27/2015 2015-07-27 20:00:00 Daylight SCOR VNH 236 ... \n",
"\n",
" OtherCalanoids Calanoids CalanoidsDiaRemoved Euphausiids Themisto \\\n",
"0 0.115408 0.445351 0.237637 0.448822 0.827555 \n",
"1 0.015486 3.666233 0.604391 0.172039 0.278596 \n",
"2 0.004346 12.477846 1.859686 0.000000 1.635304 \n",
"3 0.010369 14.173214 2.698241 12.270955 2.562381 \n",
"4 0.051333 0.747524 0.051333 39.755211 7.895820 \n",
".. ... ... ... ... ... \n",
"649 0.000146 0.496019 0.056654 0.000000 0.304123 \n",
"650 0.006763 1.091657 0.180086 0.023474 1.761051 \n",
"651 0.010097 0.141755 0.075749 0.000000 0.000000 \n",
"652 0.029189 0.029189 0.029189 0.003526 0.168176 \n",
"653 0.399796 0.893605 0.655242 0.000000 0.731182 \n",
"\n",
" Hyperia Primno Hyperiids Gammariids Total \n",
"0 0.000000 0.000000 0.827555 0.0 1.721729 \n",
"1 0.000000 0.083863 0.362459 0.0 4.200731 \n",
"2 0.000000 0.237697 1.873001 0.0 14.350847 \n",
"3 0.000000 0.459538 3.021919 0.0 29.466088 \n",
"4 0.197026 0.804768 8.897614 0.0 49.400349 \n",
".. ... ... ... ... ... \n",
"649 0.000000 0.000000 0.304123 0.0 0.800142 \n",
"650 0.000000 0.000000 1.761051 0.0 2.876183 \n",
"651 0.000000 0.000000 0.000000 0.0 0.141755 \n",
"652 0.000000 0.000000 0.168176 0.0 0.200890 \n",
"653 0.000000 0.000000 0.731182 0.0 1.624787 \n",
"\n",
"[654 rows x 269 columns]"
]
},
"execution_count": 70,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"biomassDF"
]
},
{
"cell_type": "code",
"execution_count": 73,
"metadata": {},
"outputs": [],
"source": [
"biomassDF['Month']=[ii.month for ii in biomassDF['dtUTC']]"
]
},
{
"cell_type": "code",
"execution_count": 75,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Calanoids | \n",
"
\n",
" \n",
" \n",
" \n",
" 239 | \n",
" 0.231678 | \n",
"
\n",
" \n",
" 240 | \n",
" 0.262995 | \n",
"
\n",
" \n",
" 241 | \n",
" 0.045065 | \n",
"
\n",
" \n",
" 242 | \n",
" 0.011634 | \n",
"
\n",
" \n",
" 243 | \n",
" 0.263927 | \n",
"
\n",
" \n",
" 244 | \n",
" 0.210876 | \n",
"
\n",
" \n",
" 457 | \n",
" 0.910112 | \n",
"
\n",
" \n",
" 458 | \n",
" 1.208902 | \n",
"
\n",
" \n",
" 459 | \n",
" 1.319525 | \n",
"
\n",
" \n",
" 589 | \n",
" 0.150697 | \n",
"
\n",
" \n",
" 590 | \n",
" 0.294798 | \n",
"
\n",
" \n",
" 591 | \n",
" 0.441176 | \n",
"
\n",
" \n",
" 592 | \n",
" 0.343120 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Calanoids\n",
"239 0.231678\n",
"240 0.262995\n",
"241 0.045065\n",
"242 0.011634\n",
"243 0.263927\n",
"244 0.210876\n",
"457 0.910112\n",
"458 1.208902\n",
"459 1.319525\n",
"589 0.150697\n",
"590 0.294798\n",
"591 0.441176\n",
"592 0.343120"
]
},
"execution_count": 75,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"biomassDF.loc[biomassDF.Month==2,['Calanoids']]"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 224,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n",
"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\n"
]
}
],
"source": [
"data=et.matchData(biomassDF,filemap,fdict,start_date,end_date,'nowcast',PATH,1,quiet=False,method='vertNet');"
]
},
{
"cell_type": "code",
"execution_count": 225,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Key | \n",
" region_name | \n",
" Station | \n",
" Lon | \n",
" Lat | \n",
" Date | \n",
" dtUTC | \n",
" Twilight | \n",
" Net_Type | \n",
" Mesh_Size(um) | \n",
" ... | \n",
" Primno | \n",
" Hyperiids | \n",
" Gammariids | \n",
" Total | \n",
" j | \n",
" i | \n",
" mod_microzooplankton | \n",
" mod_mesozooplankton | \n",
" k_upper | \n",
" k_lower | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" PBS2014016000801 | \n",
" Juan de Fuca | \n",
" JF03 | \n",
" -124.051 | \n",
" 48.388 | \n",
" 3/7/2014 | \n",
" 2014-03-07 19:01:00 | \n",
" Daylight | \n",
" Bongo VNH | \n",
" 253 | \n",
" ... | \n",
" 0.000000 | \n",
" 0.092604 | \n",
" 0.0 | \n",
" 10.554291 | \n",
" 342 | \n",
" 94 | \n",
" 0.049066 | \n",
" 0.286660 | \n",
" 0 | \n",
" 23 | \n",
"
\n",
" \n",
" 1 | \n",
" PBS2014016004401 | \n",
" Central Strait of Georgia | \n",
" GS04 | \n",
" -123.311 | \n",
" 48.898 | \n",
" 3/9/2014 | \n",
" 2014-03-09 18:57:00 | \n",
" Daylight | \n",
" Bongo VNH | \n",
" 253 | \n",
" ... | \n",
" 0.000000 | \n",
" 0.025194 | \n",
" 0.0 | \n",
" 0.335986 | \n",
" 388 | \n",
" 265 | \n",
" 0.065740 | \n",
" 0.263313 | \n",
" 0 | \n",
" 27 | \n",
"
\n",
" \n",
" 2 | \n",
" PBS2014016005201 | \n",
" Central Strait of Georgia | \n",
" GS08 | \n",
" -123.580 | \n",
" 49.045 | \n",
" 3/9/2014 | \n",
" 2014-03-09 23:57:00 | \n",
" Daylight | \n",
" Bongo VNH | \n",
" 253 | \n",
" ... | \n",
" 0.158000 | \n",
" 0.261419 | \n",
" 0.0 | \n",
" 1.316260 | \n",
" 436 | \n",
" 244 | \n",
" 0.045737 | \n",
" 0.193986 | \n",
" 0 | \n",
" 28 | \n",
"
\n",
" \n",
" 3 | \n",
" IOS2014003000101 | \n",
" Central Strait of Georgia | \n",
" GEO1 | \n",
" -123.744 | \n",
" 49.250 | \n",
" 3/9/2014 | \n",
" 2014-03-10 02:08:00 | \n",
" Daylight | \n",
" SCOR VNH | \n",
" 236 | \n",
" ... | \n",
" 0.068851 | \n",
" 0.068851 | \n",
" 0.0 | \n",
" 1.469906 | \n",
" 487 | \n",
" 246 | \n",
" 0.021994 | \n",
" 0.094057 | \n",
" 0 | \n",
" 37 | \n",
"
\n",
" \n",
" 4 | \n",
" PBS2014016011401 | \n",
" Central Strait of Georgia | \n",
" GS20 | \n",
" -123.484 | \n",
" 49.068 | \n",
" 3/13/2014 | \n",
" 2014-03-13 21:12:00 | \n",
" Daylight | \n",
" Bongo VNH | \n",
" 253 | \n",
" ... | \n",
" 0.118801 | \n",
" 0.286148 | \n",
" 0.0 | \n",
" 1.654707 | \n",
" 433 | \n",
" 261 | \n",
" 0.059742 | \n",
" 0.211711 | \n",
" 0 | \n",
" 28 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 461 | \n",
" PSF2015097005001 | \n",
" Northern Strait of Georgia | \n",
" IS-3 | \n",
" -124.287 | \n",
" 49.655 | \n",
" 10/5/2015 | \n",
" 2015-10-05 18:43:00 | \n",
" Daylight | \n",
" Ring VNH | \n",
" 250 | \n",
" ... | \n",
" 0.289586 | \n",
" 0.623782 | \n",
" 0.0 | \n",
" 3.103821 | \n",
" 604 | \n",
" 217 | \n",
" 0.057682 | \n",
" 0.424223 | \n",
" 0 | \n",
" 28 | \n",
"
\n",
" \n",
" 462 | \n",
" PSF2015098005701 | \n",
" Northern Strait of Georgia | \n",
" BS-3 | \n",
" -124.666 | \n",
" 49.692 | \n",
" 10/5/2015 | \n",
" 2015-10-05 19:15:00 | \n",
" Daylight | \n",
" Ring VNH | \n",
" 250 | \n",
" ... | \n",
" 0.667453 | \n",
" 1.180838 | \n",
" 0.0 | \n",
" 76.616760 | \n",
" 639 | \n",
" 166 | \n",
" 0.058821 | \n",
" 0.396426 | \n",
" 0 | \n",
" 28 | \n",
"
\n",
" \n",
" 463 | \n",
" PSF2015098005801 | \n",
" Baynes Sound | \n",
" BS-1 | \n",
" -124.867 | \n",
" 49.608 | \n",
" 10/5/2015 | \n",
" 2015-10-05 20:38:00 | \n",
" Daylight | \n",
" Ring VNH | \n",
" 250 | \n",
" ... | \n",
" 0.000000 | \n",
" 0.000000 | \n",
" 0.0 | \n",
" 0.075827 | \n",
" 636 | \n",
" 126 | \n",
" 0.194869 | \n",
" 1.209480 | \n",
" 0 | \n",
" 22 | \n",
"
\n",
" \n",
" 464 | \n",
" PSF2015097005101 | \n",
" Nearshore-North East | \n",
" IS-2 | \n",
" -124.083 | \n",
" 49.637 | \n",
" 10/5/2015 | \n",
" 2015-10-05 20:40:00 | \n",
" Daylight | \n",
" Ring VNH | \n",
" 250 | \n",
" ... | \n",
" 0.000000 | \n",
" 4.332255 | \n",
" 0.0 | \n",
" 4.409816 | \n",
" 587 | \n",
" 245 | \n",
" 0.159315 | \n",
" 1.060016 | \n",
" 0 | \n",
" 21 | \n",
"
\n",
" \n",
" 465 | \n",
" PSF2015098005901 | \n",
" Baynes Sound | \n",
" BS-7 | \n",
" -124.767 | \n",
" 49.483 | \n",
" 10/5/2015 | \n",
" 2015-10-05 21:51:00 | \n",
" Daylight | \n",
" Ring VNH | \n",
" 250 | \n",
" ... | \n",
" 0.000000 | \n",
" 1.026601 | \n",
" 0.0 | \n",
" 1.921206 | \n",
" 605 | \n",
" 125 | \n",
" 0.183379 | \n",
" 1.091250 | \n",
" 0 | \n",
" 23 | \n",
"
\n",
" \n",
"
\n",
"
466 rows × 278 columns
\n",
"
"
],
"text/plain": [
" Key region_name Station Lon Lat \\\n",
"0 PBS2014016000801 Juan de Fuca JF03 -124.051 48.388 \n",
"1 PBS2014016004401 Central Strait of Georgia GS04 -123.311 48.898 \n",
"2 PBS2014016005201 Central Strait of Georgia GS08 -123.580 49.045 \n",
"3 IOS2014003000101 Central Strait of Georgia GEO1 -123.744 49.250 \n",
"4 PBS2014016011401 Central Strait of Georgia GS20 -123.484 49.068 \n",
".. ... ... ... ... ... \n",
"461 PSF2015097005001 Northern Strait of Georgia IS-3 -124.287 49.655 \n",
"462 PSF2015098005701 Northern Strait of Georgia BS-3 -124.666 49.692 \n",
"463 PSF2015098005801 Baynes Sound BS-1 -124.867 49.608 \n",
"464 PSF2015097005101 Nearshore-North East IS-2 -124.083 49.637 \n",
"465 PSF2015098005901 Baynes Sound BS-7 -124.767 49.483 \n",
"\n",
" Date dtUTC Twilight Net_Type Mesh_Size(um) ... \\\n",
"0 3/7/2014 2014-03-07 19:01:00 Daylight Bongo VNH 253 ... \n",
"1 3/9/2014 2014-03-09 18:57:00 Daylight Bongo VNH 253 ... \n",
"2 3/9/2014 2014-03-09 23:57:00 Daylight Bongo VNH 253 ... \n",
"3 3/9/2014 2014-03-10 02:08:00 Daylight SCOR VNH 236 ... \n",
"4 3/13/2014 2014-03-13 21:12:00 Daylight Bongo VNH 253 ... \n",
".. ... ... ... ... ... ... \n",
"461 10/5/2015 2015-10-05 18:43:00 Daylight Ring VNH 250 ... \n",
"462 10/5/2015 2015-10-05 19:15:00 Daylight Ring VNH 250 ... \n",
"463 10/5/2015 2015-10-05 20:38:00 Daylight Ring VNH 250 ... \n",
"464 10/5/2015 2015-10-05 20:40:00 Daylight Ring VNH 250 ... \n",
"465 10/5/2015 2015-10-05 21:51:00 Daylight Ring VNH 250 ... \n",
"\n",
" Primno Hyperiids Gammariids Total j i \\\n",
"0 0.000000 0.092604 0.0 10.554291 342 94 \n",
"1 0.000000 0.025194 0.0 0.335986 388 265 \n",
"2 0.158000 0.261419 0.0 1.316260 436 244 \n",
"3 0.068851 0.068851 0.0 1.469906 487 246 \n",
"4 0.118801 0.286148 0.0 1.654707 433 261 \n",
".. ... ... ... ... ... ... \n",
"461 0.289586 0.623782 0.0 3.103821 604 217 \n",
"462 0.667453 1.180838 0.0 76.616760 639 166 \n",
"463 0.000000 0.000000 0.0 0.075827 636 126 \n",
"464 0.000000 4.332255 0.0 4.409816 587 245 \n",
"465 0.000000 1.026601 0.0 1.921206 605 125 \n",
"\n",
" mod_microzooplankton mod_mesozooplankton k_upper k_lower \n",
"0 0.049066 0.286660 0 23 \n",
"1 0.065740 0.263313 0 27 \n",
"2 0.045737 0.193986 0 28 \n",
"3 0.021994 0.094057 0 37 \n",
"4 0.059742 0.211711 0 28 \n",
".. ... ... ... ... \n",
"461 0.057682 0.424223 0 28 \n",
"462 0.058821 0.396426 0 28 \n",
"463 0.194869 1.209480 0 22 \n",
"464 0.159315 1.060016 0 21 \n",
"465 0.183379 1.091250 0 23 \n",
"\n",
"[466 rows x 278 columns]"
]
},
"execution_count": 225,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data"
]
},
{
"cell_type": "code",
"execution_count": 226,
"metadata": {},
"outputs": [],
"source": [
"cm1=cmocean.cm.thermal\n",
"with nc.Dataset('/ocean/ksuchy/MOAD/NEMO-forcing/grid/bathymetry_201702.nc') as bathy:\n",
" bathylon=np.copy(bathy.variables['nav_lon'][:,:])\n",
" bathylat=np.copy(bathy.variables['nav_lat'][:,:])\n",
" bathyZ=np.copy(bathy.variables['Bathymetry'][:,:])"
]
},
{
"cell_type": "code",
"execution_count": 227,
"metadata": {},
"outputs": [],
"source": [
"# define log transform function with slight shift to accommodate zero values\n",
"def logt(x):\n",
" return np.log10(x+.001)"
]
},
{
"cell_type": "code",
"execution_count": 228,
"metadata": {},
"outputs": [],
"source": [
"# define inverse log transform with same shift\n",
"def logt_inv(y):\n",
" return 10**y-.001"
]
},
{
"cell_type": "code",
"execution_count": 266,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([3.5717944 , 4.38464013, 1.8619691 , 0.77795756, 0.07166609,\n",
" 4.9216666 , 1.30426199, 0.04374841, 0.03221038, 1.42433184,\n",
" 3.62682488, 6.55181683, 0.08520765, 1.18366988, 1.02939106,\n",
" 0.29600866, 0.85211712, 1.79831119, 0.50258672, 0.07633187])"
]
},
"execution_count": 266,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data['Euphausiids'].unique()[20:40]"
]
},
{
"cell_type": "code",
"execution_count": 230,
"metadata": {},
"outputs": [],
"source": [
"data['L10Calanoids']=logt(data['Calanoids'])\n",
"data['L10CalanoidsDiaRemoved']=logt(data['CalanoidsDiaRemoved'])\n",
"data['L10Euphausiids']=logt(data['Euphausiids'])\n",
"data['L10Hyperiids']=logt(data['Hyperiids'])\n",
"data['L10Gammariids']=logt(data['Gammariids'])\n",
"data['L10Neocalanus']=logt(data['Neocalanus'])\n",
"\n",
"data['L10Total']=logt(data['Total'])\n",
"\n",
"data['L10mod_mesozooplankton']=logt(data['mod_mesozooplankton']*5.7*14)\n",
"data['L10mod_microzooplankton']=logt(data['mod_microzooplankton']*5.7*14)"
]
},
{
"cell_type": "code",
"execution_count": 231,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([-0.52201674, -1.2195666 , -1.11382969, -1.38807898, -1.43340323,\n",
" -0.85816102, -1.08101945, -0.58318385, -0.48369823, 0.01373667,\n",
" 0.08996821, -0.60699648, -0.23719985, 0.25433288, -0.02657255,\n",
" -2.14076674, -1.40852969, -1.66178233, -1.95689915])"
]
},
"execution_count": 231,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data['L10Neocalanus'].unique()[1:20]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Figure showing observation locations of IOS zooplankton sampling"
]
},
{
"cell_type": "code",
"execution_count": 232,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 232,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"