[Zoo-discuss] [ZOO-Discuss] FOSS4G 2010 ZOO Workshop Problem

Christian Rüh christian.rueh at uni-rostock.de
Fri Nov 29 02:08:22 PST 2013


Hi Gerald,

thanks for your fast answer again :-)
This solves the error but the next one is right around the corner:
<ows:ExceptionText>
TRACE : object of type 'Geometry' has no len()
TRACE : <type 'exceptions.TypeError'>
Unable to run your python process properly. Please check the following messages : ['  File "/usr/lib/cgi-bin/ogr_ws_service_provider.py", line 70, in Union\n    while i < len(geometry1):\n']
</ows:ExceptionText>
Sure enough the "http://localhost:8082/geoserver/ows/?SERVICE=WFS&REQUEST=GetFeature&VERSION=1.0.0&typename=topp:states&SRS=EPSG:4326&FeatureID=states.15" part returns a valid polygon. I even tried a request like this:
<wps:Execute service="WPS" version="1.0.0" xmlns:wps="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" xsi:schemaLocation="http://www.opengis.net/wps/1.0.0
../wpsExecute_request.xsd">
     <ows:Identifier>Union</ows:Identifier>
     <wps:DataInputs>
          <wps:Input>
               <ows:Identifier>InputEntity1</ows:Identifier>
               <ows:Title>Playground area</ows:Title>
               <wps:data>
               <wps:complexdata mimeType="application/json"> {"type":"Point","coordinates": [-108.753206,47.913145]} </wps:complexdata>
               </wps:data>
          </wps:Input>
          <wps:Input>
               <ows:Identifier>InputEntity2</ows:Identifier>
               <ows:Title>Playground area</ows:Title>
               <wps:data>
               <wps:complexdata mimeType="application/json"> {"type":"Point","coordinates": [-109.753206,46.913145]} </wps:complexdata>
               </wps:data>
          </wps:Input>
     </wps:DataInputs>
     <wps:ResponseForm>
          <wps:ResponseDocument>
               <wps:Output>
                    <ows:Identifier>Result</ows:Identifier>
                    <ows:Title>Area serviced by playground.</ows:Title>
                    <ows:Abstract>Area within which most users of this playground will live.</ows:Abstract>
               </wps:Output>
          </wps:ResponseDocument>
     </wps:ResponseForm>
</wps:Execute>

But the error message is still the same.

Cheers and thanks in adavance,
Christian
________________________________________
Von: Fenoy Gerald [gerald.fenoy at geolabs.fr]
Gesendet: Mittwoch, 27. November 2013 11:29
An: Christian Rüh
Cc: ZOO-discuss
Betreff: Re: [ZOO-Discuss] FOSS4G 2010 ZOO Workshop Problem

Hi Christian,
sorry for the delay in answering your question.

The answer is the same as the previous one but it is unfortunate that you have to modify the JavaScript to make it working. Note that with newer version of the ZOO-Kernel all this kind of issue has been solved. There is even a mimeType detection (which may vary from the one provided by the User when sending its request) which was introduced in revision 446 [1].

But as we are stuck as older version, let’s try to make it working this way.

For each Reference node in your XML request you will have to add a mimeType attribute. For the first one for instance it should become like in the following:

> <wps:Reference mimeType="text/xml" xlink:href="http://localhost:8082/geoserver/ows/?SERVICE=WFS&REQUEST=GetFeature&VERSION=1.0.0&typename=topp:states&SRS=EPSG:4326&FeatureID=states.15"/>


I hope you can confirm that solve your issue,
waiting for your feedback,
Best regards,

Gérald Fenoy
gerald.fenoy at geolabs.fr

[1] http://zoo-project.org/trac/changeset/446#file5

Le 26 nov. 2013 à 20:31, Christian Rüh <christian.rueh at uni-rostock.de> a écrit :

> Hi Gerald,
>
> I rearranged the whole layer thing and now am at the point where I can select multiple polygons from the WFS layer and can execute the simple processing functions on a polygon :-)
> However, I am stuck at the Union function. You can find my zcfd and py as attachment.
> I use the test_services.html of the workshop to perform a POST request which is:
> <wps:Execute service="WPS" version="1.0.0" xmlns:wps="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" xsi:schemaLocation="http://www.opengis.net/wps/1.0.0
> ../wpsExecute_request.xsd">
>     <ows:Identifier>Union</ows:Identifier>
>     <wps:DataInputs>
>          <wps:Input>
>               <ows:Identifier>InputEntity1</ows:Identifier>
>               <ows:Title>Playground area</ows:Title>
>               <wps:Reference xlink:href="http://localhost:8082/geoserver/ows/?SERVICE=WFS&REQUEST=GetFeature&VERSION=1.0.0&typename=topp:states&SRS=EPSG:4326&FeatureID=states.15"/>
>          </wps:Input>
>          <wps:Input>
>               <ows:Identifier>InputEntity2</ows:Identifier>
>               <ows:Title>Playground area</ows:Title>
>               <wps:Reference xlink:href="http://localhost:8082/geoserver/ows/?SERVICE=WFS&REQUEST=GetFeature&VERSION=1.0.0&typename=topp:states&SRS=EPSG:4326&FeatureID=states.1"/>
>          </wps:Input>
>     </wps:DataInputs>
>     <wps:ResponseForm>
>          <wps:ResponseDocument>
>               <wps:Output>
>                    <ows:Identifier>Result</ows:Identifier>
>                    <ows:Title>Area serviced by playground.</ows:Title>
>                    <ows:Abstract>Area within which most users of this playground will live.</ows:Abstract>
>               </wps:Output>
>          </wps:ResponseDocument>
>     </wps:ResponseForm>
> </wps:Execute>
> The error message I get is:
> <ows:ExceptionText>
> TRACE : ('mimeType',)
> TRACE : <type 'exceptions.KeyError'>
> Unable to run your python process properly. Please check the following messages : ['  File "/usr/lib/cgi-bin/ogr_ws_service_provider.py", line 60, in Union\n    geometry2=extractInputs(inputs["InputEntity2"])\n', '  File "/usr/lib/cgi-bin/ogr_ws_service_provider.py", line 13, in extractInputs\n    if obj["mimeType"]=="application/json":\n']
> </ows:ExceptionText>
>
> I don't know why it's stuck at JSON format since the input polygons come from a wfs (and they really do because it works with the other functions).
>
> Cheers and thanks in advance,
> Christian
> ________________________________________
> Von: Fenoy Gerald [gerald.fenoy at geolabs.fr]
> Gesendet: Donnerstag, 21. November 2013 16:14
> An: Christian Rüh
> Cc: ZOO-discuss
> Betreff: Re: [ZOO-Discuss] FOSS4G 2010 ZOO Workshop Problem
>
> Hi Christian,
> thanks for insisting.
>
> In fact the explanation text is probably not clear enough as you should not have to select multiple polygons. In fact, once you run a single geometry service, then you can select another feature nearby (the best would be one which overlay the first result) then you can run, once the second feature is selected, the « multiple features » services.
>
> So a good example to use is the following:
> * you select for instance the Texas feature,
> * then, you run Buffer service on the selected feature,
> * select the New Mexico / Oklahoma / Colorado or Kansas feature then you run for instance Intersection
>
> At the last step you get two features « selected » the first one is the resulting feature created by the service and the second one is the latest feature selected.
>
> I hope this is clear enough and it helps you, in other case please do not hesitate to ask any question you may have.
>
> Best regards,
>
> Gérald Fenoy
> gerald.fenoy at geolabs.fr
>
> Le 21 nov. 2013 à 10:19, Christian Rüh <christian.rueh at uni-rostock.de> a écrit :
>
>> Hi Gerald,
>>
>> I'm just beginning with the Exercise part of the workshop (with the multiProcessing() function). My initial problem is: For these function multiple polygons have to be selected and then they will be processed. But how can I select multiple polygons in the OpenLayers page (zoo-ogr.html)?
>> I guess the "multi" layer should be used for that but that layer does nothing for me.
>> I looked into examples from OpenLayers (e.g. http://dev.openlayers.org/releases/OpenLayers-2.13.1/examples/select-feature-multilayer.html) but even when I used code like this:
>> selectControl = new OpenLayers.Control.SelectFeature(
>>                //{protocol: OpenLayers.Protocol.WFS.fromWMSLayer(layer)},
>>        layer,
>>                {
>>                    clickout: true, toggle: false,
>>                    multiple: false, hover: false,
>>                    toggleKey: "ctrlKey", // ctrl key removes from selection
>>                    multipleKey: "shiftKey" // shift key adds to selection
>>                }
>>            );
>> map.addControl(selectControl);
>> It still does not let me select multiple polygons.
>>
>> I know this is not a ZOO question but I just want to finish the ZOO workshop from start till finish.
>>
>> Cheers and thanks so much again,
>> Christian
>>
>> Am 19.11.2013 15:28, schrieb Fenoy Gerald:
>>> Hi Christian,
>>> ok, so if you want to use this ZOO-Kernel version you will have to slightly modify the source code of the HTML file on line 82 you should add just before &.
>>> So the line 82 is currently:
>>>
>>>  url += '&RawDataOutput=Result at mimeType=application/json’;
>>>
>>> but should be
>>>
>>>  url += ‘@mimeType=text/xml&RawDataOutput=Result at mimeType=application/json’;
>>>
>>> I guess you may try using the ZOO-Kernel 1.3.0 version and give it a try, I’m pretty sure it will work smoothly with the same services. But I can also understand that you don’t wasting time on compiling your own new version. Nevertheless, I think that now it is straightforward enough to be done. Anyway, you may probably have to issue with linked libraries.
>>>
>>> Hope you can confirm that the solution worked on your side.
>>>
>>> Best regards,
>>>
>>>
>>>
>>>
>>> Le 19 nov. 2013 à 15:37, Christian Rüh
>>> <christian.rueh at uni-rostock.de>
>>> a écrit :
>>>
>>>
>>>> Hi Gerald,
>>>>
>>>> thanks for your answer :-)
>>>>
>>>> I think I'm using 1.0 because for this workshop version 3.0 of the OSGeo live disk was suggested.
>>>>
>>>> Anyway, your request works and I saw the problem. Somehow in the request of the buffer function
>>>> "@mimeType=text/xml"
>>>> turns up right before the "&RawDataOutput=" part. This seems to cause the problem but I just can't find the spot where this is added to the url String in the "zoo-ogr.html".
>>>> I attached the zoo-ogr.html maybe you can point me to the problem, thank you very much in advance :-)
>>>>
>>>> Cheers and thanks again,
>>>> Christian
>>>> ________________________________________
>>>> Von: Fenoy Gerald [
>>>> gerald.fenoy at geolabs.fr
>>>> ]
>>>> Gesendet: Dienstag, 19. November 2013 00:14
>>>> An: Christian Rüh
>>>> Cc: ZOO-discuss
>>>> Betreff: Re: [ZOO-Discuss] FOSS4G 2010 ZOO Workshop Problem
>>>>
>>>> Hi Christian,
>>>> thanks for providing feedbacks.
>>>>
>>>> I’m wondering what is the version of ZOO-Kernel you are using. Indeed, I noticed nothing wrong in both your query and the ZCFG file.
>>>>
>>>> So I guess there is some issue with the ZOO-Kernel version you are using for running the workshop. May I invite you to try the following request and see if anything change [1] ?
>>>>
>>>>
>>>> If it solves the issue, then I would invite your to try with 1.3.0 version or SVN trunk version [2],
>>>>
>>>> Hope this helps,
>>>> Best regards
>>>>
>>>> [1]
>>>> http://localhost/zoo/?request=Execute&service=WPS&version=1.0.0&Identifier=Buffer&DataInputs=BufferDistance=1@datatype=interger;InputPolygon=Reference@xlink:href=http%3A%2F%2Flocalhost%3A8082%2Fgeoserver%2Fows%3FSERVICE%3DWFS%26REQUEST%3DGetFeature%26VERSION%3D1.0.0%26typename%3Dtopp%3Astates%26SRS%3DEPSG%3A4326%26FeatureID%3Dstates.25@mimeType=text/xml&RawDataOutput=Result@mimeType=application/json
>>>>
>>>> [2]
>>>> http://zoo-project.org/site/Downloads#Fordevelopers
>>>>
>>>>
>>>> Gérald Fenoy
>>>>
>>>> gerald.fenoy at geolabs.fr
>>>>
>>>>
>>>>
>>>> Le 18 nov. 2013 à 16:48, Christian Rüh
>>>> <christian.rueh at uni-rostock.de>
>>>> a écrit :
>>>>
>>>>
>>>>> Hi Gerald,
>>>>>
>>>>> ah, no need to apologize, I'm happy for your fast answer :-)
>>>>>
>>>>> The initial error is resolved and for a query like this:
>>>>>
>>>>> http://localhost/cgi-bin/zoo_loader.cgi?request=Execute&service=WPS&version=1.0.0&Identifier=Buffer&DataInputs=InputPolygon=Reference@xlink:href=http%3A%2F%2Flocalhost%3A8082%2Fgeoserver%2Fows%3FSERVICE%3DWFS%26REQUEST%3DGetFeature%26VERSION%3D1.0.0%26typename%3Dtopp%3Astates%26SRS%3DEPSG%3A4326%26FeatureID%3Dstates.15
>>>>>
>>>>> I get a satisfying result.
>>>>>
>>>>> However, if i want to use the OpenLayers application I run into problems (maybe the kind you suggested with "Note that with this version of the Python service you will have to use the Polygon and MultiPolygon.").
>>>>> For the request
>>>>>
>>>>> http://localhost/zoo/?request=Execute&service=WPS&version=1.0.0&Identifier=Buffer&DataInputs=BufferDistance=1@datatype=interger;InputPolygon=Reference@xlink:href=http%3A%2F%2Flocalhost%3A8082%2Fgeoserver%2Fows%3FSERVICE%3DWFS%26REQUEST%3DGetFeature%26VERSION%3D1.0.0%26typename%3Dtopp%3Astates%26SRS%3DEPSG%3A4326%26FeatureID%3Dstates.25&RawDataOutput=Result@mimeType=application/json
>>>>>
>>>>> I get the error:
>>>>> <ows:ExceptionText>
>>>>> TRACE : ('mimeType',)
>>>>> TRACE : <type 'exceptions.KeyError'>
>>>>> Unable to run your python process properly. Please check the following messages : ['  File "/usr/lib/cgi-bin/ogr_ws_service_provider.py", line 48, in Buffer\n    geometry=extractInputs(inputs["InputPolygon"])\n', '  File "/usr/lib/cgi-bin/ogr_ws_service_provider.py", line 13, in extractInputs\n    if obj["mimeType"]=="application/json":\n']
>>>>> </ows:ExceptionText>
>>>>>
>>>>> I looked into the zcfg and it's InputPolygon there, application/json is also spelled correctly everywhere as far as I can see.
>>>>>
>>>>> Since I haven't changed a thing in ogr_ws_service_provider.py I've only attached the Buffer.zcfg.
>>>>>
>>>>> Cheers and thanks again,
>>>>> Christian
>>>>>
>>>>> ________________________________________
>>>>> Von: Fenoy Gerald [
>>>>> gerald.fenoy at geolabs.fr
>>>>> ]
>>>>> Gesendet: Montag, 18. November 2013 14:57
>>>>> An: ZOO-discuss
>>>>> Cc: Christian Rüh
>>>>> Betreff: Re: [ZOO-Discuss] FOSS4G 2010 ZOO Workshop Problem
>>>>>
>>>>> Hi Christian,
>>>>> sorry for answering your email so late.
>>>>>
>>>>> I found an issue in the ZCFG file the output was not named « Result » but « BufferedPolygon ».
>>>>>
>>>>> I guess that once you updated the ZCFG file everything should run smoothly.
>>>>>
>>>>> Note that with this version of the Python service you will have to use the Polygon and MultiPolygon.
>>>>>
>>>>> Hope this helps you,
>>>>> Best regards,
>>>>>
>>>>> Gérald Fenoy
>>>>>
>>>>> gerald.fenoy at geolabs.fr
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> Le 18 nov. 2013 à 14:51, Christian Rüh
>>>>> <christian.rueh at uni-rostock.de>
>>>>> a écrit :
>>>>>
>>>>>
>>>>>> Hi Gerald,
>>>>>>
>>>>>> thank you for the fast answer that helped me a lot :-)
>>>>>> I was able to fix the problem with your hint.
>>>>>>
>>>>>> However, the next problem was right around the corner. After the ConvexHull and Centroid functions worked fine the Buffer function won't.
>>>>>>
>>>>>> I get the following error:
>>>>>> <ows:ExceptionText>
>>>>>> TRACE : ('Result',)
>>>>>> TRACE : <type 'exceptions.KeyError'>
>>>>>> Unable to run your python process properly. Please check the following messages : ['  File "/usr/lib/cgi-bin/ogr_ws_service_provider.py", line 54, in Buffer\n    outputResult(outputs["Result"],rgeom)\n']
>>>>>> </ows:ExceptionText>
>>>>>>
>>>>>> I've looked into keyerrors and python but wasn't able to resolve this issue. Especially since the line (54)
>>>>>> "outputResult(outputs["Result"],rgeom)"
>>>>>> was used in all the other functions as well and worked fine there.
>>>>>>
>>>>>> I attached my Buffer.zcfg and ogr_ws_service_provider.py.
>>>>>>
>>>>>> I really hope you can help me with this problem, too, and am thankful in advance :-)
>>>>>>
>>>>>> Cheers and thanks,
>>>>>> Christian
>>>>>>
>>>>>> ________________________________________
>>>>>> Von: Fenoy Gerald [
>>>>>> gerald.fenoy at geolabs.fr
>>>>>> ]
>>>>>> Gesendet: Freitag, 15. November 2013 16:18
>>>>>> An: ZOO-discuss
>>>>>> Cc: Christian Rüh
>>>>>> Betreff: Re: [ZOO-Discuss] FOSS4G 2010 ZOO Workshop Problem
>>>>>>
>>>>>> Hi Christian,
>>>>>> it seems that the issue is only in the Python service code.
>>>>>>
>>>>>> I noticed a strange thing in the error message, it seems that there is a tabulation ("\t") which was inserted by mistake in the ogr_ws_service_provider.py file on line 18.
>>>>>>
>>>>>> Check the expression on line 18 and remove any tabulation located near the "name()=\’Multipolygon\’"
>>>>>>
>>>>>> Hope this solve your issue.
>>>>>>
>>>>>> Best regards,
>>>>>>
>>>>>>
>>>>>> Le 15 nov. 2013 à 15:24, Sickboy
>>>>>> <christian.rueh at uni-rostock.de>
>>>>>> a écrit :
>>>>>>
>>>>>>
>>>>>>> Hi there,
>>>>>>>
>>>>>>> I tried to do the above workshop
>>>>>>> (
>>>>>>> http://www.zoo-project.org/site/ZooWorkshop2010/Content
>>>>>>> ) and got stuck at
>>>>>>> step 3.3.1.2 (Creating WPS compliant OGR based Web Services -> Implementing
>>>>>>> single geometry processes -> Boundary -> Python version). I wasn't able to
>>>>>>> compile the C version (I'm don't really know anything about C and Linux
>>>>>>> which might be the problem) so I went for the Python version. If I try one
>>>>>>> of the URLs given to test the process I get:
>>>>>>> <ows:ExceptionReport xsi:schemaLocation=
>>>>>>> "http://www.opengis.net/ows/1.1
>>>>>>> http://schemas.opengis.net/ows/1.1.0/owsExceptionReport.xsd"
>>>>>>> xml:lan="en"
>>>>>>> service="WPS" version="1.0.0">
>>>>>>> <ows:Exception exceptionCode="NoApplicableCode">
>>>>>>> <ows:ExceptionText>
>>>>>>> TRACE : xmlXPathEval() failed
>>>>>>> TRACE : <class 'libxml2.xpathError'>
>>>>>>> Unable to run your python process properly. Please check the following
>>>>>>> messages : ['  File "/usr/lib/cgi-bin/ogr_ws_service_provider.py", line 18,
>>>>>>> in Boundary\n
>>>>>>> geometry=createGeometryFromWFS(inputs["InputPolygon"]["value"])\n', '  File
>>>>>>> "/usr/lib/cgi-bin/ogr_ws_service_provider.py", line 7, in
>>>>>>> createGeometryFromWFS\n
>>>>>>> res=ctxt.xpathEval("/*/*/*/*/*[local-name()=\'Polygon\' or
>>>>>>> local-\tname()=\'MultiPolygon\']")\n', '  File
>>>>>>> "/usr/lib/pymodules/python2.6/libxml2.py", line 4894, in xpathEval\n    if
>>>>>>> ret is None:raise xpathError(\'xmlXPathEval() failed\')\n']
>>>>>>> </ows:ExceptionText>
>>>>>>> </ows:Exception>
>>>>>>> </ows:ExceptionReport>
>>>>>>>
>>>>>>> There seems to be a problem with the libxml2 library but even with googling
>>>>>>> I was not able to fix it.
>>>>>>>
>>>>>>> The Geoserver was started when the document told me to (but this does not
>>>>>>> matter as I've tested it without a running Geoserver, too).
>>>>>>> I'm using the OSGeo Live disk 3.0 because the README
>>>>>>> (
>>>>>>> http://zoo-project.org/trac/attachment/wiki/ZooWorkshop2010/Content/README
>>>>>>> )
>>>>>>> indicated that.
>>>>>>> I guess it ain't important but I'm using it with VMWare Player 5 on Windows
>>>>>>> 7 x64.
>>>>>>>
>>>>>>> Help would be greatly appreciated since I'm needing this for a seminar with
>>>>>>> my students in 2 weeks.
>>>>>>>
>>>>>>> Cheers and thanks in advance for any help,
>>>>>>> Christian
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> View this message in context:
>>>>>>> http://zoo-discuss.1049523.n5.nabble.com/FOSS4G-2010-ZOO-Workshop-Problem-tp5706683.html
>>>>>>>
>>>>>>> Sent from the ZOO-Discuss mailing list archive at
>>>>>>> Nabble.com
>>>>>>> .
>>>>>>> _______________________________________________
>>>>>>> Zoo-discuss mailing list
>>>>>>>
>>>>>>> Zoo-discuss at gisws.media.osaka-cu.ac.jp
>>>>>>> http://gisws.media.osaka-cu.ac.jp/mailman/listinfo.cgi/zoo-discuss
>>>>>> Gérald Fenoy
>>>>>>
>>>>>> gerald.fenoy at geolabs.fr
>>>>>>
>>>>>>
>>>>>> <Buffer.zcfg><ogr_ws_service_provider.py>
>>>>>>
>>>>> <Buffer.zcfg>
>>>>>
>>>> <zoo-ogr.html>
>>>>
>>> Gérald Fenoy
>>>
>>> gerald.fenoy at geolabs.fr
>>>
>>>
>>>
>>
>> <zoo-ogr.html>
>
> <ogr_ws_service_provider.py><Union.zcfg>



More information about the Zoo-discuss mailing list