#
`sodb_inpolygon` documentation

The `sodb_inpolygon` returns measured (not gridded) data for all SODB stations within a specified polygon.

## Contents

## Syntax

StationData = sodb_inpolygon(lat,lon) StationData = sodb_inpolygon(x,y) StationData = sodb_inpolygon

## Description

`StationData = sodb_inpolygon(lat,lon)` returns a structure array of SODB station data within the georeferenced polygon given by the arrays `lat,lon`. Variables in the structure array are as follows:

StationData.sta station station number StationData.lat latitude °N StationData.lon longitude °E StationData.t time datenum format StationData.dep depth meters StationData.prs pressure dbar StationData.gam neutral density kg/m3 StationData.ptm potential temp. °C StationData.sal salinity PSS78 StationData.tem measured temp. °C StationData.oxy oxygen umol/kg StationData.sil silicate umol/kg StationData.po4 phosphate umol/kg StationData.no3 nitrate umol/kg StationData.no2 nitrite ? StationData.f11 CFCs pmol/kg StationData.abs absolute sal. g/kg (Requires GSW toolbox) StationData.con conservative temp. °C (Requires GSW toolbox) StationData.dtm T-T_freeze °C (Requires GSW toolbox)

`StationData = sodb_inpolygon(x,y)` defines the polygon in polar stereographic (re: 71°S) eastings and northings in meters. If no point the first input array has an absolute value greater than 90, ps71 units are assumed.

`StationData = sodb_inpolygon` allows user to define a polygon by clicking on a current map.

## Example

Perhaps you're interested in the Amundsen Sea. For context, here's a 1000 kilometer wide map of the Amundsen Sea region:

mapzoom('amundsen sea',1000,'inset','ne') bedmap2 patchshelves bedmap2('patchgl','oceancolor',[0.0118 0.4431 0.6118]) scalebar

Where are the SODB stations? Let's plot them as red pentagrams:

sodb('stations','rp')

Now say you want all the SODB station data within some arbitrary polygon. Let's define that polygon and plot it on our map:

```
lat = [-71.49,-70.66,-69.81,-69.65,-70.25,-72.31,-74.6,-75.78,-76.65,-76.54,-75.72,-74.32];
lon = [-99.94,-101.3,-106.43,-112.75,-117.43,-122.11,-124,-121.54,-112.17,-103.32,-98.8,-98.58];
plotm(lat,lon,'y')
```

We can get all the SODB station data within the yellow polygon as a structure array `sd` with one simple command:

sd = sodb_inpolygon(lat,lon);

Structure arrays may be a little confusing if you haven't seen them before, but once you see how they work hopefully you'll think they aren't so bad. Here, we have `sd` which is a structure array containing all the station data within our polygon `lat,lon`. The latitudes of all the stations are given by `sd.lat,sd.lon`. To confirm that we've gotten all the data within our polygon, let's plot our station locations as yellow circles:

plotm(sd.lat,sd.lon,'yo') % sup

Now each measured variable has its own cell array within `sd`. For example, potential temperature is given by

ptm = sd.ptm;

If you check your variable workspace you'll see that `ptm` is a 1x95 cell array. That's one entry for each of the 95 stations inside our polygon. So for the first of the 95 stations, a temperature profile is given by `ptm{1}` or more directly, `sd.ptm{1}`. The temperature profile at the second station is found in `sd.ptm{2}` and so on.

There are a few ways we can plot the data for our 95 stations. One way is to loop through each of the 95 stations. Let's do that as we plot temperature profiles:

figure hold on for k = 1:length(sd.sta) plot(sd.ptm{k},sd.dep{k},'b.') end set(gca,'YDir','Reverse') xlabel 'potential temperature ({\circ}C)' ylabel 'depth (m)'

If you do not need to keep track of which stations are which, you can concatenate all station data for each variable into a single array to make for easy plotting. Here we concatenate potential temperature, depth, and salinity:

ptm = cell2mat(sd.ptm(:)); d = cell2mat(sd.dep(:)); sal = cell2mat(sd.sal(:));

With potential temperature, depth, and salinity each concatenated into their own arrays, we can make a T-S diagram using the `scatter` command:

figure scatter(sal,ptm,10,d,'filled') ylabel 'potential temperature ({\circ}C)' xlabel 'salinity (PSS 78)' axis tight cb = colorbar; ylabel(cb,'depth (m)') set(cb,'ydir','reverse')

## Citing these datasets

If you use SODB data, please cite: Orsi, A. H., T. Whitworth III, Hydrographic Atlas of the World Ocean Circulation Experiment (WOCE). Volume 1: Southern Ocean (eds. M. Sparrow, P. Chapman, and J. Gould), International WOCE Project Office, Southampton, U.K. More info on SODB here: http://wocesoatlas.tamu.edu/

If you use any of the datasets which use GSW conversions, cite IOC, SCOR and IAPSO, 2010: The international thermodynamic equation of seawater - 2010: Calculation and use of thermodynamic properties. Intergovernmental Oceanographic Commission, Manuals and Guides No. 56, UNESCO (English), 196 pp. More info on GSW & TEOS-10 here: http://www.TEOS-10.org

## Author Info:

This function and supporting documentation were written by Chad A. Greene of the Institute for Geophysics at the University of Texas in Austin and David E. Gwyther of the Institute for Marine and Antarctic Studies, University of Tasmania in July 2015.