Greenland sunset

Welcome!

I am a physical oceanographer interested in how ocean water is mixed and transformed. I am a Research Scientist at the Bedford Institute of Oceanography in Halifax, Nova Scotia.

Recent Posts:

RBR-equipped Alamo float in Alex Honnold's 'Arctic Ascent' 2024-06-09 Introduction An RBR Alamo float, freshly dropped into a Greenlandic fjord The other day, for “Friday Family Movie and Pizza Night”, we decided to throw on Arctic Ascent with Alex Honnold. Having watched his previous film, Free Solo a couple years ago, I knew that it was going to be about climbing. But what I didn’t know was that for the expedition to an unclimbed sea cliff in Greenland, he brought along glaciologist Heidi Sevestre so that they could take some unique data along the way. ...
Playing with WireWalker data 2023-10-01 Introduction I need to write a proper intro here, but this is just a placeholder to see if my long-neglected Hugo site is still going to compile and build properly. For some reason, and I’m not sure that this is a new issue, the “home page preview” of the most recent posts really mangles any code chunks that show up in it. Hawaiian Ocean Timeseries WireWalker data library(oce) ## Loading required package: gsw library(readr) library(cmocean) d <- read_csv('HOT297_data_L1_v1_0. ...
Solving the Blasius laminar boundary layer equation 2022-06-22 Introduction I’ve been working on a project related to measurement errors due to thermal boundary layers as a sensor moves through oceanic vertical temperature gradients. It’s a very similar problem to that discussed by Lueck (1990)1, Lueck and Picklo (1990)2, and Morison et al (1994)3 (except applied to an RBR external-field inductive CTD), however I am trying to extend the theory to make the model of the error a little more accurate. ...
First try running MITgcm 2022-01-21 I first tried running the well-known numerical ocean model MITgcm about 12 years ago when I was thinking of trying to run some numerical simulations of shoaling nonlinear internal waves for my thesis work. As it turned out, I had more observational data than even I was going to be able to look at, so I shelved the modeling part of the project and moved on to pure data analysis. ...
Forking and syncing branches with git and Github 2021-11-28 NOTE: This post originally appeared on my (very) old Wordpress blog, and never got migrated to either my Jekyll or Hugo sites. This is just a re-posting to keep it together with other useful things. Introduction When forking a branch on github, it was not entirely clear to me how to sync branches other than master (e.g. to make a pull request). The following eventually seemed to work: ...
Fetching a Github pull request for testing 2021-06-10 One of my primary research programs is to use ocean gliders (a type of autonomous underwater sampling vehicle) to monitor ocean conditions on the Scotian Shelf near my home of Halifax, NS. As part of that work, I have been exploring ways to build a pipeline for converting the raw data into a consistently-formatted netCDF file with all the relevant data and metadata. I recently starting learning some python, with the goal of using the pyglider toolbox developed by my colleague Jody Klymak as part of his C-PROOF project. ...
A fast time series plotting function for R/oce 2021-04-13 Introduction The other day I wrote a quick post about a few tricks for speeding up plots in R, and specifically in “base” R (i.e. not ggplot). However after writing that post my brain didn’t stop thinking about it, particularly since the third solution I provided there (to just subsample the data before plotting) didn’t really sit well with me, since there’s a good chance that it could produce a plot that looks different from one made with the entire dataset, due to subsampling away the variability that gives a plot it’s “character”. ...
Speeding up plotting of large data in base R 2021-04-11 Introduction I love R (obviously). And I even love base graphics – it’s refreshingly dumb about so many things, that it means that you don’t (usually) have to fight it to get it to do what you want for a complicated plot (see e.g. legend()). The ggplot2 system is great – especially for those who find themselves adrift in the tidyverse, but in my experiments of plotting oceanographic data with ggplot I have found it to be very slow (and I’m not the only one). ...
Fitting an error function interface model to data 2021-01-26 In the spirit of continuing blog posts, this post follows from the last one: “Functions to model ocean interfaces”, in which I explored the “error function” as a nice model for a diffusive interface between two homogenous layers. Often I use these kinds of idealized interfaces for synthetic gradients, to simulate ocean sensor responses as they profile through a dynamic environment (see e.g. this recent paper by Martini et al. ...
Functions to model ocean interfaces 2021-01-24 A while ago, I found a beautiful CTD profile in our AZMP data archive, that was a nearly perfect fit to one of my favourite functions, the \(\tanh\) function: A perfect CTD profile. library(oce) ctd <- read.oce('D19002034.ODF') ## Warning in read.odf(file = file, columns = columns, exclude = exclude, debug = ## debug - : "CRAT_01" should be unitless, but the file states the unit as "S/m" so ## that is retained in the object metadata. ...