In this primer we will demonstrate how to access and execute a remote prosessing service using the OGC Web Processing Service (WPS) protocol.
Find a WPS server
Find a data web source that hosts a WPS server
Request an overview of the capabilities of a WPS server
Ask for what the server has to offer
keyword |
value |
source |
---|---|---|
service |
WPS |
Mandatory WPS standard value |
version |
1.0.0 |
Optional for GetCapabilities |
request |
GetCapabilities |
Mandatory WPS standard value |
language |
Usually 'en' (English) |
Optional |
http://geoprocessing.demo.52north.org:8080/wps/WebProcessingService? Request=GetCapabilities& Service=WPS
This url will return an xml file that contains an inventory of the available processes.
Inspect the overview of the content of a WPS server
Look at which WPS processes the server has to offer. For each process there is a tag ows:identifier
with an identifier and title of the process, as shown in the reduced xml file example below:
<wps:Capabilities xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:wps="http://www.opengis.net/wps/1.0.0" xmlns:ows="http://www.opengis.net/ows/1.1"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" service="WPS" version="1.0.0" xml:lang="en-US" xsi:schemaLocation="http://www.opengis.net/wps/1.0.0 http://schemas.opengis.net/wps/1.0.0/wpsGetCapabilities_response.xsd" updateSequence="1"> <ows:ServiceIdentification> <ows:Title> 52°North WPS 3.1.1 </ows:Title> <ows:Abstract> Service based on the 52°North implementation of WPS 1.0.0 </ows:Abstract> ... <ows:ServiceType> WPS </ows:ServiceType> <ows:ServiceTypeVersion> 1.0.0 </ows:ServiceTypeVersion> ... </ows:ServiceProvider> <ows:OperationsMetadata> <ows:Operation name="GetCapabilities"> ... </ows:Operation> </ows:OperationsMetadata> <wps:ProcessOfferings> <wps:Process wps:processVersion="1.0.0"> <ows:Identifier> org.n52.wps.server.algorithm.spatialquery.TouchesAlgorithm </ows:Identifier> <ows:Title> org.n52.wps.server.algorithm.spatialquery.TouchesAlgorithm </ows:Title> </wps:Process> ... </wps:ProcessOfferings> <wps:Languages> <wps:Default> <ows:Language> en-US </ows:Language> </wps:Default> ... </wps:Languages> </wps:Capabilities>
Request a specific process of the WPS server
Where the GetCapabilities request returns a full summary of the server's capatbilities, the DescribeProcess request returns specific information on a single process.
keyword |
value |
source |
---|---|---|
service |
WPS |
Mandatory WPS standard value |
version |
1.0.0 |
Optional for GetCapabilities |
request |
DescribeProcess |
Mandatory WPS standard value |
identifer |
process name |
Mandatory parameter |
language |
Usually 'en' (English) |
Optional |
http://geoprocessing.demo.52north.org:8080/wps/WebProcessingService? Request=DescribeProcess& Service=WPS& version=1.0.0& identifier=org.n52.wps.server.algorithm.spatialquery.TouchesAlgorithm
This url will return an xml file that contains a description of the requested processes.
<wps:ProcessDescriptions xmlns:wps="http://www.opengis.net/wps/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ows="http://www.opengis.net/ows/1.1" xsi:schemaLocation="http://www.opengis.net/wps/1.0.0 http://schemas.opengis.net/wps/1.0.0/wpsDescribeProcess_response.xsd" xml:lang="en-US" service="WPS" version="1.0.0"><wps:ProcessDescriptions xmlns:wps="http://www.opengis.net/wps/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ows="http://www.opengis.net/ows/1.1" xsi:schemaLocation="http://www.opengis.net/wps/1.0.0 http://schemas.opengis.net/wps/1.0.0/wpsDescribeProcess_response.xsd" xml:lang="en-US" service="WPS" version="1.0.0"> <ProcessDescription statusSupported="true" storeSupported="true" wps:processVersion="1.0.0"> <ows:Identifier> org.n52.wps.server.algorithm.spatialquery.TouchesAlgorithm </ows:Identifier> <ows:Title> org.n52.wps.server.algorithm.spatialquery.TouchesAlgorithm </ows:Title> <DataInputs> <Input minOccurs="1" maxOccurs="1"> <ows:Identifier>LAYER1</ows:Identifier> <ows:Title>LAYER1</ows:Title> <ComplexData> <Default> <Format> ... <MimeType>text/xml</MimeType> <Schema> <Format> <MimeType>text/xml</MimeType> <Schema>http://www.opengeospatial.org/gmlpacket.xsd</Schema> </Format> </Schema> ... </Supported> </ComplexData> </Input> </DataInputs> <ProcessOutputs> <Output> <ows:Identifier>RESULT</ows:Identifier> <ows:Title>RESULT</ows:Title> <ows:Abstract>RESULT</ows:Abstract> <LiteralOutput> <ows:DataType ows:reference="xs:boolean"/> </LiteralOutput> </Output> </ProcessOutputs> </ProcessDescription> </wps:ProcessDescriptions> <ProcessDescription statusSupported="true" storeSupported="true" wps:processVersion="1.0.0">
Execute a specific process of the WPS server
After finding out the required input parameters for the specific process, the Execute request can be send.
keyword |
value |
source |
---|---|---|
service |
WPS |
Mandatory WPS standard value |
version |
1.0.0 |
Optional for GetCapabilities |
request |
Execute |
Mandatory WPS standard value |
identifer |
process name |
Mandatory parameter |
DataInputs |
inpute parameters |
Mandatory for Execute |
language |
Usually 'en' (English) |
Optional |