I think I see similarity to GEOS #380:

http://osgeo-org.1803224.n2.nabble.com/GEOS-380-Buffer-Geometry-0-deletes-part-of-the-polygon-td5591698.html

BTW, 1.2.7 won't fix this, but does provide support for pip and
easy_install on Windows. I hope you'll give it a try when you can.

On Wed, Nov 10, 2010 at 8:17 AM, Howard Butler <[email protected]> wrote:
>
>
> On Tue, Nov 9, 2010 at 4:35 PM, D. A. Follensbee <[email protected]>
> wrote:
>>
>> Hello,
>>
>> I'm a relative newbie to Shapely, and I noticed in the documentation that
>> buffering a polygon to 0 -- ie: pPoly.buffer(0) -- can clean a polygon that
>> self intersects. I use the is_valid boolean to see if the polygon self
>> intersects and run the .buffer(0) when it does self intersect. I'm using
>> Shapely 1.2.5 and Python 2.5.4 on Windows 7.
>>
>> Passed a distance of 0, buffer() can be used to “clean” self-touching or
>> self-crossing polygons such as the classic “bowtie”.
>>
>> Buffering to 0 works very well 90% of the time, returning the
>> polygons that form the self intersecting polygon, ie bowtie. I've found that
>> if one of the resulting polygons is small - not sure what tolerance this is
>> -  it will not be returned by the buffer. In many cases, I want this to
>> occur. For example, if polygon self touches and creates a line in the
>> result, I'm okay with that vanishing. The problem is when I expect to
>> receive polygons, sometimes a resulting small polygon will vanish. Right
>> now, my polygon coordinates are rounded to 5 digits of precision.
>>
>> In the two WKT polygons below, the first polygon is the original polygon
>> and the second is the zero buffer version. Part of the resulting polygon is
>> dropped - on the southern edge of the feature. I've performed this same
>> operation with FME's self intersect transformer, and it preserves the sliver
>> portion of the polygon. In many situations, I'd like to keep and analyze
>> these slivers and make a decision based on it. I do not necessarily want to
>> remove it. I have attempted to adjust the resolution to many different
>> numbers and receive no change in the output.
>>
>> Is this the expected behavior, and if so, is there a size tolerance to the
>> features returned?
>>
>> Any help is appreciated!
>>
>>
>> POLYGON ((-75.5979600000000005 38.4566900000000018, -75.5979899999999958
>> 38.4569699999999983, -75.5980899999999991 38.4571499999999986,
>> -75.5981400000000008 38.4572100000000034, -75.5983499999999964
>> 38.4573699999999974, -75.5983700000000027 38.4574199999999990,
>> -75.5983999999999980 38.4574799999999968, -75.5984100000000012
>> 38.4575400000000016, -75.5983999999999980 38.4575999999999993,
>> -75.5983599999999996 38.4576599999999971, -75.5983099999999979
>> 38.4577099999999987, -75.5982099999999946 38.4577699999999965,
>> -75.5979099999999988 38.4579000000000022, -75.5974899999999934
>> 38.4580300000000008, -75.5973999999999933 38.4580899999999986,
>> -75.5973500000000058 38.4581500000000034, -75.5972900000000010
>> 38.4582800000000020, -75.5972699999999946 38.4584899999999976,
>> -75.5973599999999948 38.4588499999999982, -75.5973699999999980
>> 38.4589500000000015, -75.5973599999999948 38.4591800000000035,
>> -75.5973800000000011 38.4592400000000012, -75.5974700000000013
>> 38.4592799999999997, -75.5976200000000063 38.4593399999999974,
>> -75.5977100000000064 38.4593899999999991, -75.5978000000000065
>> 38.4594900000000024, -75.5978499999999940 38.4596200000000010,
>> -75.5978999999999957 38.4597800000000021, -75.5979099999999988
>> 38.4599499999999992, -75.5979099999999988 38.4599699999999984,
>> -75.5970700000000022 38.4624099999999984, -75.5967799999999954
>> 38.4636700000000005, -75.5962099999999992 38.4633600000000015,
>> -75.5944899999999933 38.4624299999999977, -75.5939199999999971
>> 38.4621199999999988, -75.5928499999999985 38.4615599999999986,
>> -75.5918599999999969 38.4610300000000009, -75.5896699999999981
>> 38.4598399999999998, -75.5885999999999996 38.4592699999999965,
>> -75.5880099999999970 38.4589500000000015, -75.5870800000000003
>> 38.4584499999999991, -75.5865600000000057 38.4581700000000026,
>> -75.5862300000000005 38.4579900000000023, -75.5856399999999979
>> 38.4576700000000002, -75.5854099999999960 38.4575499999999977,
>> -75.5850099999999969 38.4573400000000021, -75.5847200000000043
>> 38.4571800000000010, -75.5845000000000056 38.4570599999999985,
>> -75.5841400000000050 38.4568700000000021, -75.5838899999999967
>> 38.4567300000000003, -75.5835699999999946 38.4565500000000000,
>> -75.5832699999999988 38.4564700000000030, -75.5830500000000001
>> 38.4564000000000021, -75.5826699999999931 38.4562799999999996,
>> -75.5829599999999999 38.4561700000000002, -75.5835699999999946
>> 38.4561899999999994, -75.5839500000000015 38.4562000000000026,
>> -75.5843700000000069 38.4562099999999987, -75.5863200000000006
>> 38.4562700000000035, -75.5863400000000070 38.4562700000000035,
>> -75.5872600000000006 38.4562999999999988, -75.5872800000000069
>> 38.4562999999999988, -75.5875300000000010 38.4563100000000020,
>> -75.5875300000000010 38.4563100000000020, -75.5884099999999961
>> 38.4563300000000012, -75.5884099999999961 38.4563300000000012,
>> -75.5887500000000045 38.4563399999999973, -75.5889200000000017
>> 38.4563399999999973, -75.5890200000000050 38.4563199999999981,
>> -75.5892000000000053 38.4563699999999997, -75.5893499999999960
>> 38.4564000000000021, -75.5896500000000060 38.4564299999999974,
>> -75.5897400000000061 38.4564400000000006, -75.5904500000000041
>> 38.4564799999999991, -75.5915700000000044 38.4565199999999976,
>> -75.5918499999999938 38.4565300000000008, -75.5923999999999978
>> 38.4565399999999968, -75.5930900000000037 38.4565600000000032,
>> -75.5936700000000030 38.4565699999999993, -75.5945300000000060
>> 38.4565899999999985, -75.5945899999999966 38.4565899999999985,
>> -75.5945999999999998 38.4566099999999977, -75.5973199999999963
>> 38.4566700000000026, -75.5949200000000019 38.4566000000000017,
>> -75.5974400000000060 38.4566799999999986, -75.5975600000000014
>> 38.4566799999999986, -75.5976900000000001 38.4566900000000018,
>> -75.5977400000000017 38.4566900000000018, -75.5978999999999957
>> 38.4566900000000018, -75.5979600000000005 38.4566900000000018))
>>
>>
>> POLYGON ((-75.5979600000000005 38.4566900000000018, -75.5979899999999958
>> 38.4569699999999983, -75.5980899999999991 38.4571499999999986,
>> -75.5981400000000008 38.4572100000000034, -75.5983499999999964
>> 38.4573699999999974, -75.5983700000000027 38.4574199999999990,
>> -75.5983999999999980 38.4574799999999968, -75.5984100000000012
>> 38.4575400000000016, -75.5983999999999980 38.4575999999999993,
>> -75.5983599999999996 38.4576599999999971, -75.5983099999999979
>> 38.4577099999999987, -75.5982099999999946 38.4577699999999965,
>> -75.5979099999999988 38.4579000000000022, -75.5974899999999934
>> 38.4580300000000008, -75.5973999999999933 38.4580899999999986,
>> -75.5973500000000058 38.4581500000000034, -75.5972900000000010
>> 38.4582800000000020, -75.5972699999999946 38.4584899999999976,
>> -75.5973599999999948 38.4588499999999982, -75.5973699999999980
>> 38.4589500000000015, -75.5973599999999948 38.4591800000000035,
>> -75.5973800000000011 38.4592400000000012, -75.5974700000000013
>> 38.4592799999999997, -75.5976200000000063 38.4593399999999974,
>> -75.5977100000000064 38.4593899999999991, -75.5978000000000065
>> 38.4594900000000024, -75.5978499999999940 38.4596200000000010,
>> -75.5978999999999957 38.4597800000000021, -75.5979099999999988
>> 38.4599499999999992, -75.5979099999999988 38.4599699999999984,
>> -75.5970700000000022 38.4624099999999984, -75.5967799999999954
>> 38.4636700000000005, -75.5962099999999992 38.4633600000000015,
>> -75.5944899999999933 38.4624299999999977, -75.5939199999999971
>> 38.4621199999999988, -75.5928499999999985 38.4615599999999986,
>> -75.5918599999999969 38.4610300000000009, -75.5896699999999981
>> 38.4598399999999998, -75.5885999999999996 38.4592699999999965,
>> -75.5880099999999970 38.4589500000000015, -75.5870800000000003
>> 38.4584499999999991, -75.5865600000000057 38.4581700000000026,
>> -75.5862300000000005 38.4579900000000023, -75.5856399999999979
>> 38.4576700000000002, -75.5854099999999960 38.4575499999999977,
>> -75.5850099999999969 38.4573400000000021, -75.5847200000000043
>> 38.4571800000000010, -75.5845000000000056 38.4570599999999985,
>> -75.5841400000000050 38.4568700000000021, -75.5838899999999967
>> 38.4567300000000003, -75.5835699999999946 38.4565500000000000,
>> -75.5832699999999988 38.4564700000000030, -75.5830500000000001
>> 38.4564000000000021, -75.5826699999999931 38.4562799999999996,
>> -75.5829599999999999 38.4561700000000002, -75.5835699999999946
>> 38.4561899999999994, -75.5839500000000015 38.4562000000000026,
>> -75.5843700000000069 38.4562099999999987, -75.5863200000000006
>> 38.4562700000000035, -75.5863400000000070 38.4562700000000035,
>> -75.5872600000000006 38.4562999999999988, -75.5872800000000069
>> 38.4562999999999988, -75.5875300000000010 38.4563100000000020,
>> -75.5884099999999961 38.4563300000000012, -75.5887500000000045
>> 38.4563399999999973, -75.5889200000000017 38.4563399999999973,
>> -75.5890200000000050 38.4563199999999981, -75.5892000000000053
>> 38.4563699999999997, -75.5893499999999960 38.4564000000000021,
>> -75.5896500000000060 38.4564299999999974, -75.5897400000000061
>> 38.4564400000000006, -75.5904500000000041 38.4564799999999991,
>> -75.5915700000000044 38.4565199999999976, -75.5918499999999938
>> 38.4565300000000008, -75.5923999999999978 38.4565399999999968,
>> -75.5930900000000037 38.4565600000000032, -75.5936700000000030
>> 38.4565699999999993, -75.5945300000000060 38.4565899999999985,
>> -75.5945899999999966 38.4565899999999985, -75.5945999999999998
>> 38.4566099999999977, -75.5966809638556327 38.4566559036144611,
>> -75.5974400000000060 38.4566799999999986, -75.5975600000000014
>> 38.4566799999999986, -75.5976900000000001 38.4566900000000018,
>> -75.5977400000000017 38.4566900000000018, -75.5978999999999957
>> 38.4566900000000018, -75.5979600000000005 38.4566900000000018))
>
> This is likely a robustness issue of GEOS/JTS, and not really a Shapely
> question (and the Shapely list doesn't have the experts to answer it
> either).  You will have more interested in your well posed question on the
> geos-devel list.   Because it comes with good examples of how to demonstrate
> the problem, it has a great chance at interesting some of those experts as
> well.
>
> Thanks,
>
> Howard
>
>
> _______________________________________________
> Community mailing list
> [email protected]
> http://lists.gispython.org/mailman/listinfo/community
>
>



-- 
Sean
_______________________________________________
Community mailing list
[email protected]
http://lists.gispython.org/mailman/listinfo/community

Reply via email to