OPeNDAP is a network protocol that is widely used in the Earth Science community to subset and access NetCDF data over the Internet. SeaView uses a THREDDS server to distribute content from its collections using the OPeNDAP protocol.
One of the big advantages to accessing data through the THREDDS server is the sophisticated sub sampling capabilities of OPeNDAP. This is important when trying to navigate large, diverse collections like the ones that SeaView assembles. Another advantage to using the this method is the number of environments that support access to data through OPeNDAP. Here we briefly demonstrate accessing data through ODV, Matlab, Python, and R. A more complete list of client support can be found here. The THREDDS server allows users to browse what data are available and access the portions of the collections they are interested in on the platform of their choice.
Matlab provides built in netCDF support as of version R2011a. This includes basic access to netCDF data through OPeNDAP. Below is an example of how to investigate the metadata of the Pioneer collection and load the lat, lon, time, and temperature variables.
% Pull in the netCDF data from the follwing url url = 'http://www.seaviewdata.org/thredds/dodsC/Pioneer/CCHDO_BCO-DMO_R2R_ctd_Pioneer_Collection.nc'; % Load all the metadata into the variable 'metadata' metadata = ncinfo(url); % Variable names aren't always meaningful - display the % associated long names and units for i=1:numel(metadata.Variables) name = metadata.Variables(i).Name; long_name = metadata.Variables(i).Attributes(1).Value; units = metadata.Variables(i).Attributes(2).Value; fprintf('%s\t%s\t%s\n', name, long_name, units) end % Load specific variables % Variable names and dimensions can be found in metadata latitude = ncread(url, 'latitude'); longitude = ncread(url, 'longitude'); date_time = ncread(url, 'date_time'); temp = ncread(url, 'var24'); % Variable with long name 'Temperature'
Python users can interact with the THREDDS server using the pydap library. Pydap is easily installed through pip or Anaconda. Below is a basic example of how to look at the metadata of the Pioneer collection as well as load the time, lat, lon, and temperature variables into python arrays.
#!/usr/bin/env python # Install the pydap libraries # $ pip install pydap from pydap.client import open_url url = 'http://www.seaviewdata.org/thredds/dodsC/Pioneer/CCHDO_BCO-DMO_R2R_ctd_Pioneer_Collection.nc' dataset=open_url(url) # Get a list of variables in the collection print(dataset.keys()) # Variable names aren't always meaningful - get # associated 'long_name' and 'units' for var in dataset: long_name = var.attributes['long_name'] # Variable may not have units, eg 'Cruise' if ('units' in var.attributes): units = var.attributes['units'] print(var.name + "\t" + long_name + "\t" + units) else: print(var.name + "\t" + long_name) # Grab variables of interest time = dataset['date_time'][:] latitude = dataset['latitude'][:] longitude = dataset['longitude'][:] temp = dataset['var24'][:] # Variable associated with 'Temperature'
R users can interact with the THREDDS server using the ncdf4 library. Below is a basic example of how to look at the metadata of the Pioneer collection as well as load the variable associated with temperature in the collection.
# Install the required packages: # To install ncdf for linux, use the command: install.packages("ncdf4") # To install ncdf for Windows, you need to install a precompiled version by: # Menu->Packages->Install Package(s) from local zip files and select ncdf4.zip # Load the packages: library("ncdf4") # Load collection into data handle data <- nc_open("http://www.seaviewdata.org/thredds/dodsC/Pioneer/CCHDO_BCO-DMO_R2R_ctd_Pioneer_Collection.nc") # Look at the header column information print(data) # Grab temperature, for example temp <- ncvar_get(data, "var24") # Close the handle when you are done nc_close(data)
ODV users can download ODV collections on the download pages. In addition to the data, collections have styling and processing information within them. Users can also access data from these ODV collections directly from the THREDDS server from within ODV. To do this, navigate to the SeaView THREDDS Server and select a collection in which to explore. At the top of each collection landing page is a url to the data.
Within ODV remote collections can be accessed through this url. Navigate to File > Open Remote and insert this url into the text box that appears.
Select 'Okay' and follow any steps to confirm variables to be imported.