Gridded data works well for satellite images, model data, and data compilations such as the Reynolds data we've just looked at. Other data, such as data measured at a specific site, is not so readily stored in that form. DODS provides a data type called a Sequence to store this kind of data.
A Sequence can be thought of as a relational data table, with each column representing a different data value, and each row representing a different data "instance." For example, an ocean temperature profile can be stored as a Sequence of pressure and temperature pairs, and a weather station's data can be stored as a Sequence with time in one column, and each weather variable occupying another column.
Let's look at a couple of Sequences. The first one is a collection of CTD data (hydrographic data, including temperature, pressure, salinity, and so on):
http://dods.gso.uri.edu/cgi-bin/nph-jg/rlctd
The DAS
(append .das to the URL) for this data is pretty uninformative,
telling us only that all the data are stored as strings:
.dds to the URL):
We can get some idea of the data coverage by asking for some of the
time and location data, with a URL like this:
...rlctd.asc?cruiseid,station,year_s,month_s,day_s,lat_s,lon_s
This produces a response shown here.
After reviewing the data in the last request, perhaps we decide we only want to see data from one of the cruises listed, or maybe only data from the month of May. We can add a selection clause to the constraint expression to select only that data. For example:
...rlctd.asc?cruiseid,station,year_s,month_s,day_s,lat_s,lon_s&month_s=5
This produces a table containing all the rows from the last example where the month datum is May. Click here to see that table.
Selection clauses can be stacked endlessly against a URL, allowing all the flexibility most people need to sample data files. Here's an example of a URL that requests all the oxygen data in the file taken in May at a specific depth range:
...rlctd.asc?o2&month_s=5&pres>50&pres<100
The first clause in a constraint expression has a name, too. It is
the projection clause. This is the list of variables that you
wish to have returned, subject to the constraint of the selection
clause. In the previous example, the projection clause consiste only
of the o2 variable. In the one before that, the list was
longer, containing 7 variables.