[OWSLib-devel] [owslib-users] Bug in owslib?

Christopher Eykamp christopher.eykamp at tudor.lu
Mon Sep 9 05:56:01 PDT 2013


Hi Luca,

Thank you for your reply.  First off, you are right that I meant 
DescribeProcess.  My mind is ajumble with WxS soup.  It's easy to get 
mixed up!

I have a test service, implemented in pyWPS.  If I make the following 
request:

http://wps.iguess.tudor.lu/cgi-bin/pywps.cgi?SERVICE=WPS&VERSION=1.0.0&REQUEST=DescribeProcess&identifier=test_rand_map

I get back the following XML (excerpted):

<Output>
<ows:Identifier>num</ows:Identifier>
<ows:Title>A sample literal output.</ows:Title>
<LiteralOutput>
<ows:DataType 
ows:reference="http://www.w3.org/TR/xmlschema-2/#integer">integer</ows:DataType>
</LiteralOutput>
</Output>

A copy of the full output is available here:

http://pastebin.com/JFB603TD

This would suggest either a problem with pyWPS or owslib.

Chris


On 2013-09-07 00:32, Cinquini, Luca (3980) wrote:
> Hi Chris,
> 	it's been a while since I used the WPS client, so I might be totally wrong here, but...
>
> First of all, are you referring to the output of a WPS DescribeProcess request (not "DescribeCoverage") ? If so, I think the output contains "LiteralData" elements, not "LiteralOutput", for example you can run the following request straight out of the OWSlib package (see below). I don't see any "LiteralOutput" tag... But off course I could be wrong, in which case can you send an example request and response ?
>
> thanks a lot,
> Luca
>
> ==================================================================================================================
>
> brelay5:examples cinquini$ python wps-client.py -u http://rsg.pml.ac.uk/wps/vector.cgi -r DescribeProcess -i v.mkgrid -v
> ARGV      : ['-u', 'http://rsg.pml.ac.uk/wps/vector.cgi', '-r', 'DescribeProcess', '-i', 'v.mkgrid', '-v']
> OPTIONS   : [('-u', 'http://rsg.pml.ac.uk/wps/vector.cgi'), ('-r', 'DescribeProcess'), ('-i', 'v.mkgrid'), ('-v', '')]
> http://rsg.pml.ac.uk/wps/vector.cgi?identifier=v.mkgrid&version=1.0.0&request=DescribeProcess&service=WPS
> <?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
> <ns0:ProcessDescriptions xmlns:ns0="http://www.opengis.net/wps/1.0.0" xmlns:ows="http://www.opengis.net/ows/1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" service="WPS" version="1.0.0" xsi:schemaLocation="http://www.opengis.net/wps/1.0.0 http://schemas.opengis.net/wps/1.0.0/wpsDescribeProcess_response.xsd" xml:lang="en-CA">
>      <ProcessDescription statusSupported="true" storeSupported="true" ns0:processVersion="1">
>          <ows:Identifier>v.mkgrid</ows:Identifier>
>          <ows:Title>Creates a vector map of a user-defined grid.</ows:Title>
>          <ows:Abstract>http://grass.osgeo.org/grass70/manuals/html70_user/v.mkgrid.html</ows:Abstract>
>          <ows:Metadata xlink:href="http://earthserver.pml.ac.uk/wps/vector.cgi?service=WPS&request=DescribeProcess&version=1.0.0&identifier=v.mkgrid" xlink:title="vector" />
>          <ows:Metadata xlink:href="http://earthserver.pml.ac.uk/wps/vector.cgi?service=WPS&request=DescribeProcess&version=1.0.0&identifier=v.mkgrid" xlink:title="geometry" />
>          <DataInputs>
>              <Input maxOccurs="2" minOccurs="0">
>                  <ows:Identifier>box</ows:Identifier>
>                  <ows:Title>Width and height of boxes in grid</ows:Title>
>                  <LiteralData>
>                      <ows:DataType ows:reference="http://www.w3.org/TR/xmlschema-2/#float">float</ows:DataType>
>                      <ows:AnyValue />
>                  </LiteralData>
>              </Input>
>              <Input maxOccurs="2" minOccurs="0">
>                  <ows:Identifier>coor</ows:Identifier>
>                  <ows:Title>Lower left easting and northing coordinates of map</ows:Title>
>                  <LiteralData>
>                      <ows:DataType ows:reference="http://www.w3.org/TR/xmlschema-2/#float">float</ows:DataType>
>                      <ows:AnyValue />
>                  </LiteralData>
>              </Input>
>              <Input maxOccurs="1" minOccurs="0">
>                  <ows:Identifier>angle</ows:Identifier>
>                  <ows:Title>Angle of rotation (in degrees counter-clockwise)</ows:Title>
>                  <LiteralData>
>                      <ows:DataType ows:reference="http://www.w3.org/TR/xmlschema-2/#float">float</ows:DataType>
>                      <ows:AnyValue />
>                      <DefaultValue>0.0</DefaultValue>
>                  </LiteralData>
>              </Input>
>              <Input maxOccurs="1" minOccurs="0">
>                  <ows:Identifier>breaks</ows:Identifier>
>                  <ows:Title>Number of horizontal vertex points per grid cell</ows:Title>
>                  <LiteralData>
>                      <ows:DataType ows:reference="http://www.w3.org/TR/xmlschema-2/#integer">integer</ows:DataType>
>                      <ows:AnyValue />
>                      <DefaultValue>3</DefaultValue>
>                  </LiteralData>
>              </Input>
>              <Input maxOccurs="2" minOccurs="2">
>                  <ows:Identifier>grid</ows:Identifier>
>                  <ows:Title>Number of rows and columns in grid</ows:Title>
>                  <LiteralData>
>                      <ows:DataType ows:reference="http://www.w3.org/TR/xmlschema-2/#integer">integer</ows:DataType>
>                      <ows:AnyValue />
>                  </LiteralData>
>              </Input>
>              <Input maxOccurs="1" minOccurs="0">
>                  <ows:Identifier>-p</ows:Identifier>
>                  <ows:Title>Create grid of points instead of areas and centroids</ows:Title>
>                  <LiteralData>
>                      <ows:DataType ows:reference="http://www.w3.org/TR/xmlschema-2/#boolean">boolean</ows:DataType>
>                      <ows:AllowedValues>
>                              <ows:Value>True</ows:Value>
>                              <ows:Value>False</ows:Value>
>                      </ows:AllowedValues>
>                      <DefaultValue>False</DefaultValue>
>                  </LiteralData>
>              </Input>
>              <Input maxOccurs="1" minOccurs="0">
>                  <ows:Identifier>position</ows:Identifier>
>                  <ows:Title>Where to place the grid</ows:Title>
>                  <LiteralData>
>                      <ows:DataType ows:reference="http://www.w3.org/TR/xmlschema-2/#string">string</ows:DataType>
>                      <ows:AllowedValues>
>                              <ows:Value>region</ows:Value>
>                              <ows:Value>coor</ows:Value>
>                      </ows:AllowedValues>
>                      <DefaultValue>region</DefaultValue>
>                  </LiteralData>
>              </Input>
>          </DataInputs>
>          <ProcessOutputs>
>              <Output>
>                  <ows:Identifier>map</ows:Identifier>
>                  <ows:Title>Name for output vector map</ows:Title>
>                  <ComplexOutput>
>                      <Default>
>                          <Format>
>                              <MimeType>text/xml</MimeType>
>                              <Encoding>UTF-8</Encoding>
>                              <Schema>http://schemas.opengis.net/gml/3.1.1/base/gml.xsd</Schema>
>                          </Format>
>                      </Default>
>                      <Supported>
>                          <Format>
>                              <MimeType>text/xml</MimeType>
>                              <Encoding>UTF-8</Encoding>
>                              <Schema>http://schemas.opengis.net/gml/3.1.1/base/gml.xsd</Schema>
>                          </Format>
>                          <Format>
>                              <MimeType>application/xml</MimeType>
>                              <Encoding>UTF-8</Encoding>
>                              <Schema>http://schemas.opengis.net/gml/3.1.1/base/gml.xsd</Schema>
>                          </Format>
>                          <Format>
>                              <MimeType>text/xml</MimeType>
>                              <Encoding>UTF-8</Encoding>
>                              <Schema>http://schemas.opengis.net/gml/2.1.2/feature.xsd</Schema>
>                          </Format>
>                          <Format>
>                              <MimeType>application/xml</MimeType>
>                              <Encoding>UTF-8</Encoding>
>                              <Schema>http://schemas.opengis.net/gml/2.1.2/feature.xsd</Schema>
>                          </Format>
>                          <Format>
>                              <MimeType>text/xml</MimeType>
>                              <Encoding>UTF-8</Encoding>
>                              <Schema>http://schemas.opengis.net/kml/2.2.0/ogckml22.xsd</Schema>
>                          </Format>
>                      </Supported>
>                  </ComplexOutput>
>              </Output>
>          </ProcessOutputs>
>      </ProcessDescription>
> </ns0:ProcessDescriptions>
>   <class 'owslib.wps.Process'> : {'identifier': 'v.mkgrid', 'verbose': True, 'title': 'Creates a vector map of a user-defined grid.', '_root': <Element 'ProcessDescription' at 0x1007b1f10>, 'statusSupported': True, 'storeSupported': True, 'processVersion': None, 'abstract': 'http://grass.osgeo.org/grass70/manuals/html70_user/v.mkgrid.html'}
> 	Input:  <class 'owslib.wps.Input'> : {'minOccurs': 0, 'title': 'Width and height of boxes in grid', 'dataType': '//www.w3.org/TR/xmlschema-2/#float', 'defaultValue': None, 'supportedValues': [], 'allowedValues': ['AnyValue'], 'maxOccurs': 2, 'identifier': 'box'}
> 	Input:  <class 'owslib.wps.Input'> : {'minOccurs': 0, 'title': 'Lower left easting and northing coordinates of map', 'dataType': '//www.w3.org/TR/xmlschema-2/#float', 'defaultValue': None, 'supportedValues': [], 'allowedValues': ['AnyValue'], 'maxOccurs': 2, 'identifier': 'coor'}
> 	Input:  <class 'owslib.wps.Input'> : {'minOccurs': 0, 'title': 'Angle of rotation (in degrees counter-clockwise)', 'dataType': '//www.w3.org/TR/xmlschema-2/#float', 'defaultValue': '0.0', 'supportedValues': [], 'allowedValues': ['AnyValue'], 'maxOccurs': 1, 'identifier': 'angle'}
> 	Input:  <class 'owslib.wps.Input'> : {'minOccurs': 0, 'title': 'Number of horizontal vertex points per grid cell', 'dataType': '//www.w3.org/TR/xmlschema-2/#integer', 'defaultValue': '3', 'supportedValues': [], 'allowedValues': ['AnyValue'], 'maxOccurs': 1, 'identifier': 'breaks'}
> 	Input:  <class 'owslib.wps.Input'> : {'minOccurs': 2, 'title': 'Number of rows and columns in grid', 'dataType': '//www.w3.org/TR/xmlschema-2/#integer', 'defaultValue': None, 'supportedValues': [], 'allowedValues': ['AnyValue'], 'maxOccurs': 2, 'identifier': 'grid'}
> 	Input:  <class 'owslib.wps.Input'> : {'minOccurs': 0, 'title': 'Create grid of points instead of areas and centroids', 'dataType': '//www.w3.org/TR/xmlschema-2/#boolean', 'defaultValue': 'False', 'supportedValues': [], 'allowedValues': ['True', 'False'], 'maxOccurs': 1, 'identifier': '-p'}
> 	Input:  <class 'owslib.wps.Input'> : {'minOccurs': 0, 'title': 'Where to place the grid', 'dataType': '//www.w3.org/TR/xmlschema-2/#string', 'defaultValue': 'region', 'supportedValues': [], 'allowedValues': ['region', 'coor'], 'maxOccurs': 1, 'identifier': 'position'}
> 	Output:  <class 'owslib.wps.Output'> : {'mimeType': None, 'reference': None, 'title': 'Name for output vector map', 'dataType': 'ComplexData', 'defaultValue': <owslib.wps.ComplexData object at 0x1007b96d0>, 'supportedValues': [<owslib.wps.ComplexData object at 0x1007b9450>, <owslib.wps.ComplexData object at 0x1007b9590>, <owslib.wps.ComplexData object at 0x1007b9610>, <owslib.wps.ComplexData object at 0x1007b9690>, <owslib.wps.ComplexData object at 0x1007b9650>], 'allowedValues': [], 'identifier': 'map', 'data': []}
> WPS Process: identifier=v.mkgrid
> WPS Process: title=Creates a vector map of a user-defined grid.
> WPS Process: abstract=http://grass.osgeo.org/grass70/manuals/html70_user/v.mkgrid.html
> Process input: identifier=box, data type=//www.w3.org/TR/xmlschema-2/#float, minOccurs=0, maxOccurs=2
> Process input: identifier=coor, data type=//www.w3.org/TR/xmlschema-2/#float, minOccurs=0, maxOccurs=2
> Process input: identifier=angle, data type=//www.w3.org/TR/xmlschema-2/#float, minOccurs=0, maxOccurs=1
> Process input: identifier=breaks, data type=//www.w3.org/TR/xmlschema-2/#integer, minOccurs=0, maxOccurs=1
> Process input: identifier=grid, data type=//www.w3.org/TR/xmlschema-2/#integer, minOccurs=2, maxOccurs=2
> Process input: identifier=-p, data type=//www.w3.org/TR/xmlschema-2/#boolean, minOccurs=0, maxOccurs=1
> Process input: identifier=position, data type=//www.w3.org/TR/xmlschema-2/#string, minOccurs=0, maxOccurs=1
> Process output: identifier=map, data type=ComplexData
>
>
> On Sep 6, 2013, at 9:15 AM, Tom Kralidis wrote:
>
>> Hi Chris: FYI looks like this got sent to the old OWSLib sourceforge mailing list (which I should turn off).  I've cc'd owslib-devel at lists.osgeo.org, which is the list we are currently using (more info at http://lists.osgeo.org/mailman/listinfo/owslib-devel).
>>
>> I'm guessing Luca may have some comments per below.
>>
>> ..Tom
>>
>>
>> Date: Fri, 6 Sep 2013 16:17:12 +0200
>> From: christopher.eykamp at tudor.lu
>> To: owslib-users at lists.sourceforge.net
>> Subject: [owslib-users] Bug in owslib?
>>
>>
>>
>>
>>
>>
>>     Hello,
>>
>>
>>
>>     I sent this query to the owslib-devel list  a few weeks ago, and got
>>     no response.  I'm trying again here.  I've fixed this in my local
>>     copy of owslib, but want some reaffirmation that it is actually a
>>     bug, and that my fix makes sense.
>>
>>
>>
>>     Thanks,
>>
>>
>>
>>     Chris
>>
>>
>>
>>     -------------------
>>
>>
>>
>>     I found what might be a bug in owslib, and want to confirm it.
>>     Fortunately, if I am correct, it is a trivial fix.
>>
>>
>>
>>     So this is the issue:
>>
>>
>>
>>     I *think* that when parsing the results
>>     of a WPS DescribeCoverage request, literal outputs are included in
>>     the LiteralOutput tag. owslib seems to be looking for the
>>     LiteralData tag, which is used in the input.
>>
>>
>>
>>     So the fix would be to replace
>>
>>
>>
>>     self._parseLiteralData(outputElement, 'LiteralData')
>>
>>
>>
>>     with
>>
>>
>>
>>     self._parseLiteralData(outputElement, 'LiteralOutput')
>>
>>
>>
>>     in wps.py, line c. 979.
>>
>>
>>
>>     I can be more specific if there is consensus that this is indeed a
>>     problem.
>>
>>
>>
>>     Thanks!
>>
>>
>>
>>     Chris
>>
>>
>>
>>
>> ------------------------------------------------------------------------------
>> Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more!
>> Discover the easy way to master current and previous Microsoft technologies
>> and advance your career. Get an incredible 1,500+ hours of step-by-step
>> tutorial videos with LearnDevNow. Subscribe today and save!
>> http://pubads.g.doubleclick.net/gampad/clk?id=58041391&iu=/4140/ostg.clktrk
>> _______________________________________________
>> owslib-users mailing list
>> owslib-users at lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/owslib-users 		 	   		
>> _______________________________________________
>> OWSLib-devel mailing list
>> OWSLib-devel at lists.osgeo.org
>> http://lists.osgeo.org/cgi-bin/mailman/listinfo/owslib-devel

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/owslib-devel/attachments/20130909/7dfbf79d/attachment-0001.html>


More information about the OWSLib-devel mailing list