Current Implementations: Difference between revisions
(2 intermediate revisions by 2 users not shown) | |||
Line 36: | 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 ==== | ||
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. | 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 ==== | ||
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 | 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 ==== | ||
Line 77: | Line 82: | ||
==== 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).