Thanks Sean. I already posted on the issue.
JP

On Sun, Dec 28, 2014 at 12:53 AM, Sean Gillies <sean.gill...@gmail.com>
wrote:

> Hi JP,
>
> I'd love to be able to prevent this kind of breakage at installation. I've
> created https://github.com/Toblerity/Shapely/issues/218 to track the
> issue and welcome your comments there.
>
> On Fri, Dec 26, 2014 at 8:33 PM, Juan Pablo Caram <jpca...@gmail.com>
> wrote:
>>
>> Hi Sean,
>>
>> I've been finding more problems having to do with newer versions of
>> Shapely with older versions of GEOS. Please look at the following:
>>
>> In[23]: from shapely.wkt import dumps
>> In[24]: from shapely.geometry import Point
>> In[25]: dumps(Point(0,0))
>> Traceback (most recent call last):
>>   File
>> "/usr/local/lib/python2.7/dist-packages/IPython/core/interactiveshell.py",
>> line 2883, in run_code
>>     exec(code_obj, self.user_global_ns, self.user_ns)
>>   File "<ipython-input-25-6b5b1cef3aeb>", line 1, in <module>
>>     dumps(Point(0,0))
>>   File "/usr/local/lib/python2.7/dist-packages/shapely/wkt.py", line 22,
>> in dumps
>>     return geos.WKTWriter(geos.lgeos, trim=trim, **kw).write(ob)
>>   File "/usr/local/lib/python2.7/dist-packages/shapely/geos.py", line
>> 309, in __init__
>>     setattr(self, name, applied_settings[name])
>>   File "/usr/local/lib/python2.7/dist-packages/shapely/geos.py", line
>> 317, in __setattr__
>>     (self.__class__.__name__, name))
>> AttributeError: 'WKTWriter' object has no attribute 'trim'
>>
>> My environment is:
>>
>> Shapely 1.5.1
>> GEOS (3, 2, 2)
>>
>> I understand that my version of GEOS is quite old, but the problem is
>> that upgrading Shapely and keeping GEOS is breaking things. Can you
>> confirm? This is quite problematic when trying to install software which
>> requires Shapely. For example on Ubuntu, if I install the latest available
>> Shapely and the latest available GEOS I run into this situation, which
>> didn't happen with older versions of Shapely.
>>
>> Perhaps the way to go about this is to establish which is the minimum
>> version of GEOS required in a given version of Shapely and have Shapely
>> completely fail as early as possible (ideally on installation or on import
>> maybe?).
>>
>> Thanks,
>>
>> JP
>>
>> On Mon, Dec 15, 2014 at 3:10 PM, Juan Pablo Caram <jpca...@gmail.com>
>> wrote:
>>>
>>> Sean,
>>> I seems that it's all about a version of GEOS that it's too old. I will
>>> try upgrading to the latest and try again.
>>> Thanks a lot!
>>> JP
>>>
>>> On Mon, Dec 15, 2014 at 1:51 PM, Sean Gillies <sean.gill...@gmail.com>
>>> wrote:
>>>>
>>>> JP,
>>>>
>>>> Actually, you can call unary_union with an empty list in the latest
>>>> Shapely.
>>>>
>>>> >>> import shapely
>>>> >>> shapely.__version__
>>>> '1.5.1'
>>>> >>> import shapely.geos
>>>> >>> shapely.geos.geos_version
>>>> (3, 4, 2)
>>>> >>> from shapely.ops import unary_union
>>>> >>> unary_union([])
>>>> <shapely.geometry.collection.GeometryCollection object at 0x10c3b6050>
>>>>
>>>> In your case, the KeyError gets raised first (I believe because your
>>>> GEOS library is too old). Because cascaded_union has been aliased to
>>>> unary_union (in Shapely 1.4+), it's the same story there.
>>>>
>>>> On Mon, Dec 15, 2014 at 11:33 AM, Juan Pablo Caram <jpca...@gmail.com>
>>>> wrote:
>>>>>
>>>>> Hi Sean,
>>>>>
>>>>> Thanks for your response. What really concerns me here is that in case
>>>>> 1 (Newer GEOS and shapely) I cannot call cascaded_union (or unary_union)
>>>>> with an empty list. I could on earlier versions.
>>>>>
>>>>> Thanks,
>>>>>
>>>>> JP
>>>>>
>>>>> On Mon, Dec 15, 2014 at 12:15 PM, Sean Gillies <sean.gill...@gmail.com
>>>>> > wrote:
>>>>>>
>>>>>> Hi JP,
>>>>>>
>>>>>> As far as I can tell, the main difference between your cases is that
>>>>>> in case 2, the included GEOS lib has a version >= 3.3. GEOS 3.2.2 (which 
>>>>>> is
>>>>>> 4.5 years old, by the way) does not support unary union.
>>>>>>
>>>>>> See
>>>>>> https://github.com/Toblerity/Shapely/blob/master/shapely/geos.py#L721
>>>>>> <https://github.com/Toblerity/Shapely/blob/master/shapely/geos.py#L72>
>>>>>>
>>>>>> I admit that the KeyError is not the most helpful of errors.
>>>>>> NotSupported might be bettter. I'll create a new issue in the tracker.
>>>>>>
>>>>>> On Sat, Dec 13, 2014 at 3:18 PM, Juan Pablo Caram <jpca...@gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>> Could someone give me some light into this: I'm getting very
>>>>>>> different behavior between versions/platforms for cascaded_union and
>>>>>>> unary_union. I would like to know what it the expected/latest/correct
>>>>>>> behavior. These are the two cases:
>>>>>>>
>>>>>>> CASE 1
>>>>>>> ======
>>>>>>>
>>>>>>> Os: Ubuntu 12.04
>>>>>>> libgeos-c1: 3.2.2-3ubuntu1
>>>>>>> shapely: 1.5.1
>>>>>>> python: 2.7.3
>>>>>>>
>>>>>>> >>> cascaded_union([])
>>>>>>>
>>>>>>> ---------------------------------------------------------------------------
>>>>>>> ValueError                                Traceback (most recent
>>>>>>> call last)
>>>>>>> /home/jpcaram/flatcam/<ipython-input-4-0c768f786c71> in <module>()
>>>>>>> ----> 1 cascaded_union([])
>>>>>>>
>>>>>>> /usr/local/lib/python2.7/dist-packages/shapely/ops.pyc in
>>>>>>> cascaded_union(self, geoms)
>>>>>>>     128             subs[i] = g._geom
>>>>>>>     129         collection = lgeos.GEOSGeom_createCollection(6,
>>>>>>> subs, L)
>>>>>>> --> 130         return
>>>>>>> geom_factory(lgeos.methods['cascaded_union'](collection))
>>>>>>>     131
>>>>>>>     132     def unary_union(self, geoms):
>>>>>>>
>>>>>>> /usr/local/lib/python2.7/dist-packages/shapely/geometry/base.pyc in
>>>>>>> geom_factory(g, parent)
>>>>>>>      53     # Abstract geometry factory for use with topological
>>>>>>> methods below
>>>>>>>
>>>>>>>      54     if not g:
>>>>>>> ---> 55         raise ValueError("No Shapely geometry can be created
>>>>>>> from null value")
>>>>>>>      56     ob = BaseGeometry()
>>>>>>>      57     geom_type = geometry_type_name(g)
>>>>>>>
>>>>>>> ValueError: No Shapely geometry can be created from null value
>>>>>>>
>>>>>>> >>> unary_union([])
>>>>>>>
>>>>>>> ---------------------------------------------------------------------------
>>>>>>> KeyError                                  Traceback (most recent
>>>>>>> call last)
>>>>>>> /home/jpcaram/flatcam/<ipython-input-6-9089513baa4e> in <module>()
>>>>>>> ----> 1 unary_union([])
>>>>>>>
>>>>>>> /usr/local/lib/python2.7/dist-packages/shapely/ops.pyc in
>>>>>>> unary_union(self, geoms)
>>>>>>>     146             subs[i] = g._geom
>>>>>>>     147         collection = lgeos.GEOSGeom_createCollection(6,
>>>>>>> subs, L)
>>>>>>> --> 148         return
>>>>>>> geom_factory(lgeos.methods['unary_union'](collection))
>>>>>>>     149
>>>>>>>     150 operator = CollectionOperator()
>>>>>>>
>>>>>>> KeyError: 'unary_union'
>>>>>>>
>>>>>>> >>> cascaded_union([Point(0,0)])
>>>>>>> <shapely.geometry.point.Point at 0x201d510>
>>>>>>>
>>>>>>> >>> unary_union([Point(0,0)])
>>>>>>>
>>>>>>> ---------------------------------------------------------------------------
>>>>>>> KeyError                                  Traceback (most recent
>>>>>>> call last)
>>>>>>> /home/jpcaram/flatcam/<ipython-input-9-858a4018548e> in <module>()
>>>>>>> ----> 1 unary_union([Point(0,0)])
>>>>>>>
>>>>>>> /usr/local/lib/python2.7/dist-packages/shapely/ops.pyc in
>>>>>>> unary_union(self, geoms)
>>>>>>>     146             subs[i] = g._geom
>>>>>>>     147         collection = lgeos.GEOSGeom_createCollection(6,
>>>>>>> subs, L)
>>>>>>> --> 148         return
>>>>>>> geom_factory(lgeos.methods['unary_union'](collection))
>>>>>>>     149
>>>>>>>     150 operator = CollectionOperator()
>>>>>>>
>>>>>>> KeyError: 'unary_union'
>>>>>>>
>>>>>>>
>>>>>>> CASE 2:
>>>>>>> =======
>>>>>>>
>>>>>>> Os: Windows 7
>>>>>>> python: 2.7.6
>>>>>>> shapely: 1.3.0 (Installer came with geos)
>>>>>>>
>>>>>>> >>> cascaded_union([])
>>>>>>> <shapely.geometry.collection.GeometryCollection at 0x7708830>
>>>>>>>
>>>>>>> >>> unary_union([])
>>>>>>> <shapely.geometry.collection.GeometryCollection at 0x7708ab0>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> In CASE 1, everything is newer except for the python version. Has
>>>>>>> the behavior of shapely/geos changed?
>>>>>>>
>>>>>>> Thank You,
>>>>>>>
>>>>>>> JP
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Community mailing list
>>>>>>> Community@lists.gispython.org
>>>>>>> http://lists.gispython.org/mailman/listinfo/community
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Sean Gillies
>>>>>>
>>>>>> _______________________________________________
>>>>>> Community mailing list
>>>>>> Community@lists.gispython.org
>>>>>> http://lists.gispython.org/mailman/listinfo/community
>>>>>>
>>>>>>
>>>>> _______________________________________________
>>>>> Community mailing list
>>>>> Community@lists.gispython.org
>>>>> http://lists.gispython.org/mailman/listinfo/community
>>>>>
>>>>>
>>>>
>>>> --
>>>> Sean Gillies
>>>>
>>>> _______________________________________________
>>>> Community mailing list
>>>> Community@lists.gispython.org
>>>> http://lists.gispython.org/mailman/listinfo/community
>>>>
>>>>
>> _______________________________________________
>> Community mailing list
>> Community@lists.gispython.org
>> http://lists.gispython.org/mailman/listinfo/community
>>
>>
>
> --
> Sean Gillies
>
> _______________________________________________
> Community mailing list
> Community@lists.gispython.org
> http://lists.gispython.org/mailman/listinfo/community
>
>
_______________________________________________
Community mailing list
Community@lists.gispython.org
http://lists.gispython.org/mailman/listinfo/community

Reply via email to