Current Implementations
The GrADS Data Server (GDS)
Institution
The Center for Ocean-Land-Atmosphere Studies of the Institute for Global Environment and Society
Documentation
Overview and details about server-side processing.
Implementation Details
A Java Servlet implemented on top of the bespoke Anagram Framework using the Java Runtime environment to execute the GrADS application to perform the data access and analysis and using the Java OPeNDAP library for DAP communication.
Functions
Any valid [GrADS expression].
Syntax
http://machine_name:9090/dods/_expr_ followed immediately by three sets of curly braces containing arguments, as follows:
{dataset1,dataset2,...}{expression}{x1:x2,y1:y2,z1:z2,t1:t2}
where the first set of braces contains a list of data sets to be used in the analysis, expression is any valid GrADS expression operating on the variables in the scope of the referenced data sets and the thirds set of braces is the boundaries for the evaluation of the expression in world coordinates.
The Ferret-Thredds Data Server (F-TDS)
Institution
Documentation
Implementation Details
Functions
Syntax
Ingrid
Institution
The [Data Library] of the [The International Research Institute for Climate and Society]
Documentation
[Overview]
Implementation Details
Mix of FORTRAN/C implementing a delayed-execution data-flow architecture. Supports a number of data formats/exchange protocols. Local code not under wide distribution.
Functions
Any Ingrid expression, which is RPN grammer on top of a large library of words (i.e. functions). There are any functions which operate on variables/datasets of which currently 166 are documented [detailed here].
Syntax
A URL-based (not in the query string) RPN notation.
For example:
http://iridl.ldeo.columbia.edu/expert/SOURCES/.NOAA/.NCEP/.CPC/.GMSM/.w/5/add/
SOURCES .NOAA .NCEP .CPC .GMSM .w (the OPeDNAP data variable)
5 add (the constant 5; the operation desired)
http://iridl.ldeo.columbia.edu/expert/SOURCES/.NOAA/.NCDC/.ERSST/.version2/.SST/X/(170W)(120W)RANGE/Y/(5S)(5N)RANGE[X/Y]average/ (The actual URL is usually encoded. See the link contents.)
SOURCES .NOAA .NCDC .ERSST .version2 .SST (The OPeNDAP data variable)
X (170W) (120W) RANGE (A range in X of the data variable's underlying grid in world coordinates)
Y (5S) (5N) RANGE (A range in Y of the data variable's underlying grid in world coordinates)
[X Y]average (the dimensions to be operated on; the operation)
In this case, the OPeNDAP variable is three dimensional (X Y T), so after averaging we are left with a one dimensional variable (depending on T).
If we had alternatively averaged only over X
[X] average
we would be left with a two-dimensional variable (depending on Y and T).
An OPeNDAP service is created at any point by appending dods, e.g. dods.das,dods.dds,dods.dods -- this is, of course, index-based subsetting. Users do not normally do index-based subsetting explicitly, though there are methods within the independent variables (first, second, secondtolast, last, valuetoindex, indextovalue) that would make it possible to do so.