[GRASS-dev] GRASS GIS 7 and QGIS connected using the Web Processing Service (WPS)

Soeren Gebbert soerengebbert at googlemail.com
Fri Apr 15 12:29:24 EDT 2011


Hello Moritz,

2011/4/15 Moritz Lennert <mlennert at club.worldonline.be>:
> On 15/04/11 12:56, Soeren Gebbert wrote:
>>
>> Hi Moritz,
>> please use the latest pywps and wps-grass-bridge svn versions.
>
> That seems to have solved it. I had used the install script for pywps, but
> this installed the FOSS4G2010 branch. Now I've installed the latest trunk
> and everything seems to work.
>
> Sorry for the noise !

Thanks for testing this solution, feedback is very important!

>
> A few rapid remarks for future development from my first usage:
>
> - Flags are all True by default. I think they should be False by default. I
> see that e.g. for v.buffer, the v_buffer.py process file contains:
>
> self.addLiteralInput(identifier = '-s', title = 'Make outside corners
> straight', minOccurs = 0, maxOccurs = 1, type = type(True), default = False,
> allowedValues = [True, False])
>
> so one would expect it to be False by default. This probably means that the
> problem is in the QGIS plugin, or ?
>
> - It is not clear where the order of parameter in the GUI comes from:
> notably those that are not directly defined by the model (e.g. ns and ew
> resolution), but it would make for a better experience to have them more
> logically grouped.

When generating the GRASS module WPS XML process description and based
upon this the PyWPS processes i had in mind that for literal boolean
inputs "False" should be the default. And i had in mind that the input
order is adapted from the GRASS command line interface, i.e: the ns
and ew resolution as well as the band number are the last entries for
inputs. But the WPS server seems to have its own order logic (dicts?)
and i do not want to implement input/output ordering in QGIS plugin
because the logic of the order of  is GRASS module specific.

>
> - When running v.buffer, I get the following error:
>
>                <ows:Exception exceptionCode="NoApplicableCode">
>                    <ows:ExceptionText>Failed to execute WPS process
> [v.buffer]: Error while executing the grass module. The following error
> message was logged:
> Buffering lines...
> 2%...5%...etc
> [snip]
> Deleting boundaries...
>   2%...   5%...etc
> </ows:ExceptionText>
> </ows:Exception>
>
> So, it seems to catch all the output of G_percent and G_message and
> interpret it as an error...

This should not happen. In case a module does not run correctly
(decision is made based on the return value) and exception will be
raised and the stderr output of the module will be attached.  Seems
like a bug in wps-grass-bridge to me.

>
> - The WPS plugin shouldn't be modular, i.e. you should be able to use other
> commands with the plugin open (e.g. add another layer)

Yes indeed, this is an important missing feature. There are many
features missing i.e: non blocking waiting for long running processes,
a status bar for long running processes, efficient vector data
handling, GUI enhancement, better text/plain output handling, better
error handling and so on ... . Unfortunately i am not a QGIS nor a QT4
programmer, so i do not have the knowledge to implement such important
features by myself, so any help is appreciated.

Best regards
Soeren

>
> Once again, thanks for all the work and for your support !
>
> Moritz
>
>


More information about the grass-dev mailing list