Harasty, Daniel J
2012-02-29 11:47:20 UTC
Hi, all.
I'm an experienced Python user, and pretty comfortable with GIS concepts, too. I'm using Shapely for several tasks; a hearty "thank you" to Sean Gillies and the team that develops and supports that library!
In my current application, I'm using Shapely mainly for its ability to marshal to/from WKT.
I'm having a bit of trouble using Shapely for one task. I want to:
* Put a few (potentially overlapping) polygons in a single Shapely object
* I want the collection to preserve the "winding" of the polygons that I have carefully set.
A "MultiPolygon" won't work for me since my constituent polygons may overlap.
A "GeometryCollection" seems like the right object, but here are my two difficulties as I'm trying to use it:
* It doesn't seem to have a way to create it directly with constituents of my choice
o It only "comes about" after certain operations, like union() and cascaded_union()
o But I don't want a union - it would merge my polygons' borders. I wan't them to remain distinct.
* Plus, the union() operations don't necessarily preserve the "winding" that I have set.
Can anyone think of a way to use the current API to accomplish what I want?
If Shapely would require an update to support this new feature, what do you think a good API would be for it? I can think of two candidates; either:
* Allow GeometryCollection() to be created with a list of initial constituents:
o poly1 = Polygon(....); poly2 = Polygon(....); gcoll = GeometryCollection([poly1, poly2])
* Introduce a new operation like ".add()" or ".superpose()" which adds another thing to the collection without performing a "union()" operation.
o gcoll = GeometryCollection(); gcoll = gcoll.add(poly1); gcoll = gcoll.add(poly2)
Either approach also solves something else on my "wish list": I'd also sometimes like to collect a bunch of points in a GeometryCollection() -- even if they would "fit" just fine in a MultiPoint() object.
Thanks for your input and consideration.
-- Dan Harasty
dharasty at appcomsci.com<mailto:dharasty at appcomsci.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gispython.org/pipermail/community/attachments/20120229/f7993ae2/attachment.htm>
I'm an experienced Python user, and pretty comfortable with GIS concepts, too. I'm using Shapely for several tasks; a hearty "thank you" to Sean Gillies and the team that develops and supports that library!
In my current application, I'm using Shapely mainly for its ability to marshal to/from WKT.
I'm having a bit of trouble using Shapely for one task. I want to:
* Put a few (potentially overlapping) polygons in a single Shapely object
* I want the collection to preserve the "winding" of the polygons that I have carefully set.
A "MultiPolygon" won't work for me since my constituent polygons may overlap.
A "GeometryCollection" seems like the right object, but here are my two difficulties as I'm trying to use it:
* It doesn't seem to have a way to create it directly with constituents of my choice
o It only "comes about" after certain operations, like union() and cascaded_union()
o But I don't want a union - it would merge my polygons' borders. I wan't them to remain distinct.
* Plus, the union() operations don't necessarily preserve the "winding" that I have set.
Can anyone think of a way to use the current API to accomplish what I want?
If Shapely would require an update to support this new feature, what do you think a good API would be for it? I can think of two candidates; either:
* Allow GeometryCollection() to be created with a list of initial constituents:
o poly1 = Polygon(....); poly2 = Polygon(....); gcoll = GeometryCollection([poly1, poly2])
* Introduce a new operation like ".add()" or ".superpose()" which adds another thing to the collection without performing a "union()" operation.
o gcoll = GeometryCollection(); gcoll = gcoll.add(poly1); gcoll = gcoll.add(poly2)
Either approach also solves something else on my "wish list": I'd also sometimes like to collect a bunch of points in a GeometryCollection() -- even if they would "fit" just fine in a MultiPoint() object.
Thanks for your input and consideration.
-- Dan Harasty
dharasty at appcomsci.com<mailto:dharasty at appcomsci.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gispython.org/pipermail/community/attachments/20120229/f7993ae2/attachment.htm>