A pyWPS wrapper has bene made for the python pyodv toolbox. The rationale of pyWPSodv is the same as used in the OGC WxS services as SOS and WFS: subsequent requests dig deeper:
odvGetCDI
> odvGetParameters
> odv2map, odv2profile, odv2timeseries
.
odvGetCDI
is meant to inquire which odv files are available at the server.odvGetCDI
returns a table with 3 columns:EDMO_code
for the institute where the data originate,LOCAL_CDI_ID
for the unique local identifier at the data centre andsuffix
for the suffix added to the file name in case where theLOCAL_CDI_ID
has been split into temporal or spatial tiles. The filenames are reconstructed at the server to be$ROOT$/data/<EDMO_code>/<LOCAL_CDI_ID><suffix>.txt
. The files downloaded from SeaDataNet only have to be inserted into a folder with the name of theEDMO_code
.odvGetCDI
also returns 3 meta-data columns: the meta-data time and location (lon,lat).
odvGetCDI
returns the table in efficientjson
format for fast machine processing.. http://localhost/cgi-bin/pywps.cgi?service=wps&request=Execute&Identifier=odvGetCDI&DataInputs=[]l&version=1.0.0
A working example on our test server is (note this url may be dysfunctional now and then, as it is a test server) http://dtvirt5.deltares.nl/wps?service=wps&request=Execute&Identifier=odvGetCDI&DataInputs=[]&version=1.0.0]}}
odvGetParameters
is meant to inquire files to find which variables are available in one file returned byodvGetCDI
. It returns the P01 quantity code insdn_name
, the P06 units insdn_units
and the column name incolumn_name
. Thecolumn_name
has to be used in the subsequent plotting processes, it is equal to (i) thesdn_code
for data columns, (ii) 'QV:" +sdn_code
for flag columns and (iii) the standardized odv column name for the first 8 meta-data columns.
odvGetParameters
can return the table in efficientjson
(default) for fast machine processing, or in human readablehtml
format, by adding&responsedocument=Parameters=@mimetype=text/html
to the url.A working example on our test server is (note this url may be dysfunctional now and then, as it is a test server)http://dtvirt5.deltares.nl/wps?service=wps&request=Execute&Identifier=odvGetParameters&DataInputs=[EDMO_code=632;LOCAL_CDI_ID=world_N50W10N40E0;suffix=_20060101_20070101]&version=1.0.0
http://dtvirt5.deltares.nl/wps?service=wps&request=Execute&Identifier=odvGetParameters&DataInputs=[EDMO_code=x;LOCAL_CDI_ID=y&suffix=z]&version=1.0.0
http://dtvirt5.deltares.nl/wps?service=wps&request=Execute&Identifier=odvGetParameters&DataInputs=[EDMO_code=x;LOCAL_CDI_ID=y&suffix=z]&responsedocument=Parameters=@mimetype=text/html&version=1.0.0
The remaining WPS wrappers for plotting one odv file/folder have the same name as the associated pydov functions. They have
- common parameters names for specifying a plot:
EDMO_code
,LOCAL_CDI_ID
andsuffix
to select a fileparameter
for the columnclim0
,clim1
for the (x/y/color) axis limits of the chosen parameterlog10
for plotting the paramter on log scale.
- specific parameter which differ per function:
odv2map
to be applied to one available column from a remote odv file. It has a specific optional argumentcolormap
to select a colormap. A working example on our test server is (note this url may be dysfunctional now and then, as it is a test server)
http://dtvirt5.deltares.nl/wps?service=wps&request=Execute&Identifier=odv2map&DataInputs=[EDMO_code=632;LOCAL_CDI_ID=world_N50W10N40E0_20070101_20080101;parameter=PSSTTS01;clim0=10;clim1=20;colormap=jet;]&version=1.0.0
http://dtvirt5.deltares.nl/wps?service=wps&request=Execute&Identifier=odv2map&DataInputs=[EDMO_code=632;LOCAL_CDI_ID=world_N50W10N40E0_20070101_20080101;parameter=PSSTTS01;clim0=10;clim1=20;colormap=jet;]&version=1.0.0
odv2profile
to be applied to one available column from a remote odv file. It has specific optional argumentz
to select the y-axis, otherwise the index is the y-axis. A working example on our test server is (note this url may be dysfunctional now and then, as it is a test server)
http://dtvirt5.deltares.nl/wps?service=wps&request=Execute&Identifier=odv2profile&DataInputs=[EDMO_code=630;LOCAL_CDI_ID=CTDCAST_79___42_20110223_120541;parameter=PSALPR02;z=PRESPS01;clim0=30;clim1=36]&version=1.0.0
odv2timeseries
to be applied to one available column from a remote odv file. A working example on our test server is (note this url may be dysfunctional now and then, as it is a test server)
http://dtvirt5.deltares.nl/wps?service=wps&request=Execute&Identifier=odv2timeseries&DataInputs=[EDMO_code=632;LOCAL_CDI_ID=world_N50W10N40E0;suffix=_20070101_20080101;parameter=PSSTTS01;clim0=10;clim1=20;]&version=1.0.0
The above processes and the input/output arguments can be inquired with the general WPS getCapabilites
request
http://dtvirt5.deltares.nl/wps?service=wps&request=GetCapabilities
:
<wps:ProcessOfferings> <wps:Process wps:processVersion="$ version $"> <ows:Identifier>odvGetCDI</ows:Identifier> <ows:Title>...</ows:Title> <ows:Abstract>odvGetCDI returns the data contents of a remote server as json or html</ows:Abstract> </wps:Process> <wps:Process wps:processVersion="$ version $"> <ows:Identifier>odvGetParameters</ows:Identifier> <ows:Title>...</ows:Title> <ows:Abstract>odvGetParameters returns the contents of a remote ODV file as json or html</ows:Abstract> </wps:Process> <wps:Process wps:processVersion="$ version $"> <ows:Identifier>odv2map</ows:Identifier> <ows:Title>...</ows:Title> <ows:Abstract>odv2map returns a planview plot of a remote ODV file or folder as png and kmz</ows:Abstract> </wps:Process> <wps:Process wps:processVersion="$ version $"> <ows:Identifier>odv2profile</ows:Identifier> <ows:Title>...</ows:Title> <ows:Abstract>odv2profile returns a scatter/profile plot of one parameter from a remote ODV file as png</ows:Abstract> </wps:Process> <wps:Process wps:processVersion="$ version $"> <ows:Identifier>odv2timeseries</ows:Identifier> <ows:Title>...</ows:Title> <ows:Abstract>odv2timeseries returns a scatter/profile plot of one parameter from a remote ODV file as png</ows:Abstract> </wps:Process>