MAST-467/667: Introduction to Arctic Oceanography (2021)

NASA's OMG stations 2020

Date: 10/20/2021
Author: Frederike Benz
close all
clear all
%load NASAs OMG data 2020
%load output.mat % [NASA (2021)]
load output_2020.dat
file = output_2020;
% variables
lon = file(:,1); % Longitude
lat = file(:,2); % Latitude
depth = file(:,3);
temp = file(:,4);
sal = file(:,5);
clf, plot(temp,depth);
clf, plot(sal,depth);
%% Data correction
% cut depth < 2 m
ind_depth = find(depth<=2);
depth(ind_depth) = NaN;
% temperature
temp(temp<-2) = NaN;
temp(temp>15) = NaN;
temp(ind_depth) = NaN;
clf,plot(temp,depth,'.')
set(gca,'ydir','reverse','linewidth',2,'fontsize',20)
% Salinity
sal(sal>50) = NaN;
sal(sal<0) = NaN;
sal(ind_depth) = NaN;
clf,plot(sal,depth,'.')
set(gca,'ydir','reverse','linewidth',2,'fontsize',20)
% Disko bay area
ind_disko = find(lat >= 68 & lat <= 72 & lon <= 90 & lon >= 50);
% Variables Disko bay
lon_disko = lon(ind_disko);
lat_disko = lat(ind_disko);
depth_disko = depth(ind_disko);
temp_disko = temp(ind_disko);
sal_disko = sal(ind_disko);
%% MAP Greenland with 2020 OMG stations (red) plus highlighted Disko Bay stations (blue)
clf, axis([-80 -5 55 90])
topoplot(axis,-5:1/8:0),hold on % [Lilly (2021)]
topoplot continents, latratio(55) % [Lilly (2021)]
a = plot(lon.*(-1),lat,'wo','markerfacecolor','r');
b = plot(lon_disko.*(-1),lat_disko,'wo','markerfacecolor','b');
hc=colorbar;hc.Label.String='Bathymetry [km]';
title('NASAs OMG Data 2020 (stations)');
ylabel('Latitude')
xlabel('Longitude')
legend([a b],'Stations','Disko Bay','location','southeast')
set(gca,'fontsize',15,'linewidth',2)
%% Zoom map Disko Bay
clf, axis([-65 -50 66 73])
topoplot(axis,-5:1/8:0) % [Lilly (2021)]
hold on
topoplot continents, latratio(55) % [Lilly (2021)]
b = plot(lon.*(-1),lat,'wo','markerfacecolor','r')
b =
Line with properties: Color: [1 1 1] LineStyle: 'none' LineWidth: 0.5000 Marker: 'o' MarkerSize: 6 MarkerFaceColor: [1 0 0] XData: [1×1438059 double] YData: [1×1438059 double] ZData: [1×0 double] Show all properties
c = plot(lon_disko.*(-1),lat_disko,'wo','markerfacecolor','b');
hc=colorbar;hc.Label.String='Bathymetry [km]';
title('Disko Bay - NASAs OMG Data 2020 (stations)');
ylabel('Latitude');
xlabel('Longitude');
set(gca,'fontsize',20,'linewidth',2);
% How many stations airborned XCTD profiles to we have in Disko Bay?
% [lat_disko_station,lon_disko_station,num] = hista(lat_disko,lon_disko,0.1);
% number_stations_disko = length(num)
lat_disko_station = unique(lat_disko,'stable');
lon_disko_station = unique(lon_disko),'stable';
lon_disko_station = 39×1
50.2077 50.5087 50.6596 50.8530 51.2437 51.3276 51.3933 51.6555 51.9380 51.9614
% find the profile and corresponding parameters
profile = 2;
ind = find(lon_disko == lon_disko_station(profile,1));
lat1 = lat_disko(ind);
lon1 = lon_disko(ind);
depth1 = depth_disko(ind);
temp1 = temp_disko(ind);
sal1 = sal_disko(ind);
% Where is that profile?
clf, axis([-65 -50 66 73])
topoplot(axis,-5:1/8:0) % [Lilly (2021)]
hold on
topoplot continents, latratio(55) % [Lilly (2021)]
e = plot(lon1.*(-1),lat1,'wo','markerfacecolor','b');
hc=colorbar;hc.Label.String='Bathymetry [km]';
title('Disko Bay - NASAs OMG Data 2020 (stations 2)');
ylabel('Latitude');
xlabel('Longitude');
set(gca,'fontsize',20,'linewidth',2);

Profiles

% temperature
clf, plot(temp1,depth1,'LineWidth',3)
xlabel('Temperature [degree C]')
ylabel('Depth [m]')
xlim([-2 3])
set(gca,'linewidth',2,'fontsize',20)
set(gca,'ydir','reverse')
% salinity
clf, plot(sal1,depth1,'linewidth',2)
xlabel('Salinity [ppt]')
ylabel('Depth [m]')
xlim([14 35])
set(gca,'ydir','reverse')
set(gca,'linewidth',2,'fontsize',20)
% Convert in-situ temperature t, salinity and depth z to pressure, absolute
% salinity SA and potential temperature pt
% The GSW toolbox of McDougall and Barker (2011) is used for the following compuations:
t = temp1;
s = sal1;
z = depth1;
% pressure
p = gsw_p_from_z(z*(-1),lat1);
clf, plot(p)
% absolute salinity
SA = gsw_SA_from_SP(s,p,lat1,lon1)
SA = 4760×1
NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
clf, plot(SA,p)
set(gca,'ydir','reverse')
% For the same profile, use the following routines to estimate potential
% density at both zero and 1000-dbar pressure as well as the freezing point
% potential temperature
pt = gsw_pt_from_t(SA,t,p,0)
pt = 4760×1
NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
clf, plot(pt,p)
set(gca,'ydir','reverse')
%3 use the following routines to estimate pot. density at both zero and
%1000-dbar pressure as well as the freezing point
% conservative temperature
CT = gsw_CT_from_t(SA,t,p)
CT = 4760×1
NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
clf, plot(CT,p)
set(gca,'ydir','reverse')
% potential density to zero pressure
r0 = gsw_sigma0(SA,CT)
r0 = 4760×1
NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
clf, plot(r0,p)
set(gca,'ydir','reverse')
% potential density to 1000m pressure
r1 = gsw_sigma1(SA,CT)
r1 = 4760×1
NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
clf, plot(r1,p)
set(gca,'ydir','reverse')
% freezing point
tf = gsw_CT_freezing_poly(SA,p,1)
tf = 4760×1
NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
clf, plot(tf,p)
set(gca,'ydir','reverse')
% Plot the profile to compare in-situ with pontential temperature
clf, plot(t,p,'linewidth',3)
hold on
plot(pt,p,'linewidth',3)
xlabel('Temperature [deg C]')
ylabel('Pressure [dbar]')
legend('in-situ','potential','location','southwest')
set(gca,'fontsize',20,'linewidth',2)
set(gca,'ydir','reverse')
% Plot the profile of absolute salinity... and potential density
clf, subplot(1,2,1)
plot(SA,p,'linewidth',3)
xlim([15 40])
xlabel('Absolute Salinity')
ylabel('Pressure [dbar]')
set(gca,'fontsize',20,'linewidth',2)
set(gca,'ydir','reverse')
subplot(1,2,2)
plot(r0,p,'linewidth',3)
hold on
plot(r1,p,'linewidth',3)
xlim([20 35])
xlabel('pot. density [kg/m^3]')
ylabel('Pressure [dbar]')
set(gca,'fontsize',20,'linewidth',2)
set(gca,'ydir','reverse')
legend('zero pressure','1000-m pressure','location','southwest')
% Estimate and plot a first metric on the heat-content within the water
% profile as the positive difference of the potential temperature and the
% freezing point temperature
T = abs(pt-tf);
clf, plot(T,p,'linewidth',3)
xlabel('pot temp - freezing point [deg C]')
ylabel('Pressure [dbar]')
set(gca,'linewidth',2,'fontsize',20)
set(gca,'ydir','reverse')

References:

Lilly, J. M. (2021), jLab: A data analysis package for Matlab, v.1.7.1, doi:10.5281/zenodo.4547006, http://www.jmlilly.net/software.
McDougall, T.J. and P.M. Barker, 2011: Getting started with TEOS-10 and the Gibbs Seawater (GSW) Oceanographic Toolbox, 28pp., SCOR/IAPSO WG127, ISBN 978-0-646-55621-5.
NASA (2021), Oceans Melting Greenland, https://omg.jpl.nasa.gov/portal/browse/products/urn:omg:OMG_Ocean_AXCTD_L1