[geos-devel] TopologyException: found non-noded intersection

Martin Davis mbdavis at refractions.net
Tue Jun 22 11:58:24 EDT 2010


By the way, I tried the sample dataset you posted here in JTS 1.12 (alpha):

http://www.giovanniallegri.it/share/postgis_selection.zip

and it processes fine.  Actually it also works fine in JTS 1.11 (before the bug fix I mentioned).  

If this is a one-off case, you can always extract your data and process it in JTS.  Or if it's an on-going need, you can check out JEQL for a way to run spatial operations using JTS on data from a variety of data sources.

http://tsusiatsoftware.net/jeql/main.html

Martin



Martin Davis wrote:
> Unfortunately the polygon overlay operations in GEOS/JTS aren't 
> perfectly robust, so it's possible that there is some pair of polygons 
> computed during the union which causes a robustness error.
>
> Also, there was a bug uncovered recently in JTS which has the effect 
> of not performing some robustness improvement steps during 
> CascadedUnion.  It's a simple fix, so perhaps someone (strk?) will be 
> able to implement it in GEOS.
>
> It looks like your geometries are fairly low precision, so rounding 
> probably won't help.  You might try translating your dataset so that 
> it lies around the origin.
>
> Martin
>
> G. Allegri wrote:
>> I'm using Postgis 1.5.1 to compute a Union on a quite large
>> multipolygons dataset (some hundreds of thousands of features), but
>> I'm facing the following error:
>>
>> NOTICE:  TopologyException: found non-noded intersection between
>> LINESTRING (1.7318e+006 4.77959e+006, 1.7318e+006 4.77958e+006) and
>> LINESTRING (1.7318e+006 4.77958e+006, 1.73174e+006 4.77954e+006) at
>> 1.7318e+006 4.77958e+006
>>
>> ERROR:  GEOS union() threw an error!
>>
>> I know it's a known issue, but I haven't been able to find a good,
>> replicable, solution. The input geometries result valid (in simple
>> feature meaning).
>> What is causing this? I have overlapping polygons, but I thought the
>> cascaded union algorithm computed the necessary noding on the
>> linestrings.
>> I've supposed it depends on tolerances/precision model, but I don't if
>> it makes sense and how, eventually, tune it.
>>
>> Thanks a lot,
>> Giovanni
>> _______________________________________________
>> geos-devel mailing list
>> geos-devel at lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/geos-devel
>>
>>   
>

-- 
Martin Davis
Senior Technical Architect
Refractions Research, Inc.
(250) 383-3022



More information about the geos-devel mailing list