Tutorial¶
Using the WPS application included in Weaver¶
Install Weaver (see: Installation) and make sure all required components are started and running (see: Configuration).
Then, execute the desired WPS request according to desired operation mode and version.
For all following examples, ${WEAVER_URL}
is used to specify your application URL endpoint configuration.
By default, this value should be localhost:4001
.
WPS-1/2 requests¶
Specifying the appropriate version=<1.0.0|2.0.0>
parameter in the URL as required.
Run a WPS-1/WPS-2 GetCapabilities
request:
$ curl -k "${WEAVER_URL}/ows/wps?service=wps&request=getcapabilities"
You should receive an XML response listing service details and available processes.
Run a WPS-1/WPS-2 DescribeProcess
request (built-in process jsonarray2netcdf
):
$ curl -k "${WEAVER_URL}/ows/wps?service=wps&request=describeprocess&identifier=jsonarray2netcdf&version=1.0.0"
This will provide you with an XML response listing the specific process details such and inputs/outputs and description.
We can now use the process to execute a WPS request. To do so, we will need some input data files to call it. First, let’s create a JSON file with some dummy NetCDF file reference for demonstration purpose.
$ echo 'Test WPS' > /tmp/test.nc
$ echo '["file:///tmp/test.nc"]' > /tmp/test.json
Then, run the WPS-1/WPS-2 Execute
request (built-in process jsonarray2netcdf
) as follow:
$ curl -k "${WEAVER_URL}/ows/wps?service=wps&request=execute&identifier=jsonarray2netcdf&version=1.0.0 \
&DataInputs=input=file:///tmp/test.json"
The execution of the process should read the JSON list with our dummy NetCDF file and make it available (as a copy)
on the output parameter named output
with a path matching the configured output WPS path of the application.
WPS-3 requests¶
All previous operations for listing available processes (GetCapabilities
), describing or executing a WPS-1/2
process can also be accomplished using the WPS-3 REST JSON interface. For instance, listing processes is done like so:
$ curl -k "${WEAVER_URL}/processes"
Individual process details (DescribeProcess
) can be obtained with the following method
(e.g.: built-in process jsonarray2netcdf
in this case):
$ curl -k "${WEAVER_URL}/processes/jsonarray2netcdf"
And execution of this process can be accomplished with the following request:
$ curl -X POST "${WEAVER_URL}/processes/jsonarray2netcdf/jobs" \
-H "Content-Type: application/json" \
-d '{"inputs": [{"id": "input", "href": "file:///tmp/test.json"}],
"outputs": [{"id": "output", "transmissionMode": "reference"}],
"response": "document",
"mode": "async"}'
The JSON response should provide a location
field specifying where the job status can be verified.
Upon successful job completion, an output
reference URL should have been generated just as with
the WPS-1/2 example.
The WPS-3 interface allows further operations such as job monitoring, specific output listing, log reporting, etc.
For all available operations and specific details about them, please refer to the OpenAPI schemas that will be
rendered on route ${WEAVER_URL}/api
when running Weaver application.
Managing WPS processes included in Weaver ADES/EMS¶
Register a new WPS process¶
Todo
complete demo docs
Access a registered process¶
Todo
complete demo docs, stuff about process visibility