Hi Dylan,

This is normal behaviour. ST_Intersection returns the intersection of two geometries. In your case involving two polygons, this can return a point, linestring, polygon, multipoint, multilinestring, multipolygon, or a collection of some or all of these. It totally depends on how your input geometries interact with eachother. If you think your output is in error, narrow down your input datasets to a simple test case. So we can help you further, post your input here in wkt format (if it's not too large) and let us know what you were expecting to see.

Cheers,
Kevin


Dylan Beaudette wrote:
Hi,

I have two imput tables with all polygon geometry types, all polygons are reported as valid. After performing an intersection, I am left with mixed polygon and multipolygon geometry types:

CREATE TABLE dwr.mapunit_dau as
SELECT m_polys.areasymbol, m_polys.mukey, d_polys.dau_id, ST_Intersection(d_polys.wkb_geometry, m_polys.wkb_geometry) as wkb_geometry
FROM
        (
        -- subset map unit polygons to certain survey areas
        -- 6.540 s
        SELECT wkb_geometry, areasymbol, mukey
        FROM mapunit_poly
        -- results in 21682 map unit polygons
        WHERE areasymbol in ('ca653', 'ca654', 'ca113')
        ) as m_polys
JOIN    
        (
        -- subset DAU polygons that overlap with specific survey areas
        --      512 ms
        SELECT dwr.dau.wkb_geometry, dau.dau3_d_id as dau_id
        FROM dwr.dau JOIN mapunit_bound_poly
        -- results in 58 DAU polygons
        ON mapunit_bound_poly.areasymbol in ('ca653', 'ca654', 'ca113')
        and dwr.dau.wkb_geometry && mapunit_bound_poly.wkb_geometry
        ) as d_polys
-- join condition: only those polygons which completely intersect
ON ST_Intersects(d_polys.wkb_geometry, m_polys.wkb_geometry);


--
--
--
Looking at the results, I have several geometry types with several total geometries per original feature:

SELECT DISTINCT GeometryType(wkb_geometry), ST_NumGeometries(wkb_geometry) from mapunit_dau;

geometrytype | st_numgeometries --------------+------------------
 MULTIPOLYGON |                2
 MULTIPOLYGON |                3
 MULTIPOLYGON |                4
 MULTIPOLYGON |                5
 MULTIPOLYGON |                6
 MULTIPOLYGON |                7
 MULTIPOLYGON |                8
 MULTIPOLYGON |                9
 MULTIPOLYGON |               10
 MULTIPOLYGON |               11
 MULTIPOLYGON |               12
 MULTIPOLYGON |               13
 MULTIPOLYGON |               14
 MULTIPOLYGON |               15
 MULTIPOLYGON |               16
 MULTIPOLYGON |               18
 MULTIPOLYGON |               21
 MULTIPOLYGON |               24
 MULTIPOLYGON |               26
 MULTIPOLYGON |               27
 MULTIPOLYGON |               32
 MULTIPOLYGON |               36
 MULTIPOLYGON |               41
 MULTIPOLYGON |               52
 MULTIPOLYGON |               56
 MULTIPOLYGON |               69
POLYGON | I have checked, and these multipolygons represent large features, not sliver-like artifacts that are commonly left-over from an intersection. Also, they contain useful information (non-overlapping polygons) as I traverse the geometry tree with GeometryN()...

Any ideas?

Cheers,

Dylan
_______________________________________________
postgis-users mailing list
[email protected]
http://postgis.refractions.net/mailman/listinfo/postgis-users

Reply via email to