Current Implementations: Difference between revisions

From OPeNDAP Documentation
⧼opendap2-jumptonavigation⧽
No edit summary
 
(16 intermediate revisions by 3 users not shown)
Line 2: Line 2:


==== Institution ====
==== Institution ====
The [http://www.iges.org/cola.html Center for Ocean-Land-Atmosphere Studies] of the [http://www.iges.org/aboutiges.html Institute for Global Environment and Society]
==== Documentation ====
==== Documentation ====
[http://www.iges.org/grads/gds/index.html Overview] and details about [http://www.iges.org/grads/gds/doc/user.html#2b server-side processing].
==== Implementation Details ====
==== Implementation Details ====
A Java Servlet implemented on top of the bespoke [http://grads.iges.org/anagram/ Anagram Framework] using the Java Runtime environment to execute the [http://www.iges.org/grads/grads.html GrADS] application to perform the data access and analysis and using the [http://www.opendap.org/swJava1.1/ Java OPeNDAP library] for DAP communication.
==== Functions ====
==== Functions ====
Any valid [[http://www.iges.org/grads/gadoc/expressions.html GrADS expression]].
==== Syntax ====
==== 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) ==
== The Ferret-Thredds Data Server (F-TDS) ==
Line 22: Line 36:
[[http://iridl.ldeo.columbia.edu/dochelp/Documentation/ Overview]]
[[http://iridl.ldeo.columbia.edu/dochelp/Documentation/ Overview]]
* [[http://iridl.ldeo.columbia.edu/dochelp/Documentation/funcmenu.html Function Menu]]
* [[http://iridl.ldeo.columbia.edu/dochelp/Documentation/funcmenu.html Function Menu]]
* [http://iridl.ldeo.columbia.edu/ontologies/functions.owl Function Ontology]
* [http://iridl.ldeo.columbia.edu/ontologies/functions_ingrid.owl Function Ontology with Ingrid Functions]
* [http://iridl.ldeo.columbia.edu/ontologies/browse.pl?node=http%3A%2F%2Firidl.ldeo.columbia.edu%2Fontologies%2Ffunctions.owl&repository=dl-owl Function Ontology Browse ]
==== Implementation Details ====
==== Implementation Details ====
Local code not under wide distribution.
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 ====
==== Functions ====
166 functions [[http://iridl.ldeo.columbia.edu/dochelp/Documentation/funcmenu.html detailed here]].
Any Ingrid expression, which is RPN grammer on top of a large library of words (i.e. functions). There are many functions which operate on variables/datasets of which currently 166 are documented [[http://iridl.ldeo.columbia.edu/dochelp/Documentation/funcmenu.html detailed here]].   This documentation is generated from a semantic framework which is intended to help map interoperable functions.
 
==== Syntax ====
==== Syntax ====
A URL-based (not in the query string) RPN notation.
A URL-based (not in the query string) RPN notation.
Line 38: Line 59:


[http://iridl.ldeo.columbia.edu/expert/SOURCES/.NOAA/.NCDC/.ERSST/.version2/.SST/X/%28170W%29%28120W%29RANGE/Y/%285S%29%285N%29RANGE%5BX/Y%5Daverage/  http://iridl.ldeo.columbia.edu/expert/SOURCES/.NOAA/.NCDC/.ERSST/.version2/.SST/X/(170W)(120W)RANGE/Y/(5S)(5N)RANGE[X/Y]average/]
[http://iridl.ldeo.columbia.edu/expert/SOURCES/.NOAA/.NCDC/.ERSST/.version2/.SST/X/%28170W%29%28120W%29RANGE/Y/%285S%29%285N%29RANGE%5BX/Y%5Daverage/  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 must be encoded.  See the link contents.)
(The actual URL is usually encoded.  See the link contents.)


SOURCES .NOAA .NCDC .ERSST .version2 .SST (The OPeDNAP data variable)
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)
X (170W) (120W) RANGE (A range in X of the data variable's underlying grid in world coordinates)
Line 48: Line 69:
[X Y]average (the dimensions to be operated on; the operation)
[X Y]average (the dimensions to be operated on; the operation)


Benno -- Is there also an index notation for the ranges?  If Y did not appear in the [X Y] then the average would be a line in Y from 5S to 5N, right?
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.


== pyDap ==
== pyDap ==


==== Institution ====
==== Institution ====
Independent implementation by Roberto De Almeida, initially developed at the [http://www.io.usp.br Oceanographic Institute] of the [http://www.usp.br University of São Paulo], and currently at the [http://www.cptec.inpe.br Center of Weather Forecast and Climate Studies].
==== Documentation ====
==== Documentation ====
Server-side functions are currently being implemented for the next major release of pydap (2.3), still under development. There's an [http://groups.google.com/group/pydap overview] of the planned implementation.
==== Implementation Details ====
==== Implementation Details ====
A WSGI stack with a pydap-aware middleware that handles server-side functions. The middleware converts OPeNDAP requests with server calls to regular data requests and pass them to the pydap server. The data returned by the server are used by the middleware to complete the function calls, with the result being passed back to the client.
==== Functions ====
==== Functions ====
geogrid and fill_value. Supports an auto-discovery mechanism for third-party functions installed separately.
==== Syntax ====
==== Syntax ====
Follows the DAP 2 spec: http://example.com/dataset?function(param_1,param_2,...,param_n).


== SWAMP ==
== SWAMP ==

Latest revision as of 19:59, 4 October 2007

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 many functions which operate on variables/datasets of which currently 166 are documented [detailed here]. This documentation is generated from a semantic framework which is intended to help map interoperable functions.

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.

pyDap

Institution

Independent implementation by Roberto De Almeida, initially developed at the Oceanographic Institute of the University of São Paulo, and currently at the Center of Weather Forecast and Climate Studies.

Documentation

Server-side functions are currently being implemented for the next major release of pydap (2.3), still under development. There's an overview of the planned implementation.

Implementation Details

A WSGI stack with a pydap-aware middleware that handles server-side functions. The middleware converts OPeNDAP requests with server calls to regular data requests and pass them to the pydap server. The data returned by the server are used by the middleware to complete the function calls, with the result being passed back to the client.

Functions

geogrid and fill_value. Supports an auto-discovery mechanism for third-party functions installed separately.

Syntax

Follows the DAP 2 spec: http://example.com/dataset?function(param_1,param_2,...,param_n).

SWAMP

Institution

Documentation

Implementation Details

Functions

Syntax