The goal of this Google Summer of Code project was to create a bridge between Ilwis-objects and the 52°North WPS by adding Ilwis-objects as a processing backend. With this WPS extension, users can carry out ILWIS commands on a remote server via the WPS service interface.
To achieve this, I first created the Java API, a Java bridge for Ilwis-objects. This is described in my midterm post and source code is available in the GitHub repository.
During the second half of summer, I created the IlwisProcessRepository project. Just like other backends (Grass, Sextante), this WPS extension allows the execution of geospatial analysis functions within the 52°North WPS framework. More concretely, it
- loads and initializes Ilwis-objects,
- creates WPS-compatible descriptions from ILWIS operations,
- loads and prepares the input values and files,
- executes ILWIS operations, and
- packs and sends back the results.
Developing the ILWIS process repository went smoother than the Java API, since I had more specific goals. After understanding the conception of the Sextante repository, the coding was quite straightforward. However many of the ILWIS operations had not been tested before, which required some additional efforts in the second half.
A full list of working operations is available here.
The following screenshots outline what the client interaction with an ILWIS-based WPS process looks like. First the client can request an operation description, then it executes the operation. The example below shows the addition of two rasters or blurring of an image.
The WPS operation “n52.wps.server.ilwis.gaussianblurfilter”, which is based on the Ilwis operation “guassianblurfilter” was used to blur the raster. The two inputs shown in the execute request are a reference to the image and a parameter to configure the blurriness.
Please check
- Demo server: gsoc-wps-ilwis
- Video
Future work
Vector operations and ILWIS scripts are under active development within Ilwis-objects. The Java API and process repository should be updated accordingly so that new ILWIS features can be used via the WPS.
Personal summary
As a student, it was challenging to collaborate with two different projects and communities. The project was complex and I had to look at a lot of code and documentation, but it was interesting and rewarding at the same time. I learned a lot about “open source”, as well as different tools and programming tricks. I also enjoyed working on part of a large project with required a lot of wiki-reading and code-understanding. This summer was a big learning process for me. I would like to thank the 52°North Community and GSOC2015. I recommend it for everyone who is looking for a great summer experience and real working expertise.
Leave a Reply