I know this is not the typical stuff one would like to mention in a post, since it is mostly about improving functionality that theoretically is already there. However, since the QGIS WPS (Web Processing Service) client still doesn't have a public control version system nor a bug tracker, and since it lacks of announcements for each new version, I think it is worth informing users of recent changes.
These contributions are intended to make the QGIS WPS client more WPS-universal, as it seemed to be tailored for PyWPS processes. For issues related to the OGC-WPS specification itself, I've been assisted by Bastian Schäffer, the 52n Geoprocessing community leader.
Without further ado, the following is the list of improvements:
- GML schemas are retrieved from the server, they are no longer hard-coded.
- In the Execute request, the storeExecuteResponse attribute of the ResponseDocument element was changed from "true" to "false". This is to ensure that the response includes the ProcessOutputs element, otherwise it does not happen because asynchronous execution is triggered (see WPS specification, table 50, note (a)).
- If there is no encoding or schema for the data, those parameters are not sent in the execute request anymore.
- Some servers provide results as URLs that are redirected to real resources. The capability to handle such redirections was added to the client.
- Support for GML3 is tested in the OGR library of the user machine as well as in the server.
- If support for GML3 is not found, support for GML2 is checked, if not supported, the default schema "text/xml" is selected (this maintains compatibility with QGIS WPS client default servers, which are PyWPS-based). The user is informed if the aforementioned formats are not supported by the server.
- Major GML versions are tested (i.e., v.2 or v.3) and if they are supported, the first minor version (e.g. v.3.1.1) found is chosen as input data type.
RASTER OUTPUT HANDLING
- The client was decoding all the raster files it was getting as process results, which yielded an unexpected behaviour when loading results to the map. Now, it reads the output encoding from the execute response document and decodes only when encoding is 'base64'.
- Related to the previous item, now the client informs the user location and type of the result file, in the case it cannot be loaded to the map. This way, the user is always aware of the file location, which is downloaded anyway.
- Related to the previous item, downloaded files no longer always get a "gml" extension, but the extension is assigned according to their mime types.
- 52n demo server was included in the default server list.
- Bug fixes and code formatting.
All of these changes have been applied in versions 0.8.3, 0.8.5 and 0.8.6 of the QGIS WPS client.
I hope this post clarifies the new capabilities of the QGIS WPS client, which can be installed from the QGIS plugin installer. Give it a try!