[postgis-users] PostGIS analogues to ArcInfo geoprocessing functions

Chris Hermansen chris.hermansen at timberline.ca
Wed Jan 28 21:43:32 PST 2009


Following on from Paul's note about a function that would make the 
output of st_intersection() more immediately useful, I have a favourite 
whine to mention.

Some geoprocessing activities that are easy to do in ArcInfo are 
more-or-less as easy to do in PostGIS.  One, though, seems to me to be 
very difficult or slow or both, and that is the ArcInfo UNION function.

A simple example:  Let's say I have polygon theme "a" as (0 0, 2 0, 2 1, 
0 1, 0 0) and "b" as (1 0, 3 0, 3 1, 1 1, 1 0).  Then

UNION a b c

will produce polygon theme "c" with three polygons: (0 0, 1 0, 1 1, 0 1, 
0 0), (1 0, 2 0, 2 1, 1 1, 1 0), and (2 0, 3 0, 3 1, 2 1, 2 0).

In other words, the three polygons in "c" bound: the points unique to 
the polygon in "a"; the points common to the polygons in "a" and "b"; 
and the points unique to the polygon in "b".

This seems exceedingly difficult in PostGIS; for example, see the 
article at 
http://www.postgis.org/support/wiki/index.php?ExamplesOverlayTables

I can vouch from personal experience, at least following the approach 
recommended at the above link by Kevin, that this is not a particularly 
speed operation either.

And yet, so easy to do in ArcInfo.  And, a pretty useful and basic kind 
of geoprocessing function.  In my mind, it is a kind of spatial outer 
join, where output polygons have either the attributes from "a", the 
attributes from "b", or both.

Another way to think of this is to use the polygons from "b" to make 
holes in "a", putting the results in "c1".  Then use the polygons from 
"a" to make holes in "b", putting the results in "c2".  Finally, 
intersect "a" and "b" and put that in "c3".  Then append c1, c2, and c3 
together.

Please tell me I'm not the only one "out there" who's stuck on this 
problem; or, if I am, please tell me that function 
"st_something_i_havent_tried_yet()" that gives me the result I'm looking 
for - perhaps wrapped in "st_just_gimme_the_polygons()".

-- 
Regards,

Chris Hermansen         mailto:chris.hermansen at timberline.ca
tel+1.604.714.2878 · fax+1.604.733.0631 · mob+1.778.232.0644
Timberline Natural Resource Group · http://www.timberline.ca
401 · 958 West 8th Avenue  · Vancouver BC · Canada · V5Z 1E5




More information about the postgis-users mailing list