6

This may be a continuation of a closed thread.

I want to sum the areas of polygons over categories in a large data set (avian species ranges), like this:

select sciname,
       sum(ST_Area(the_geom::geography)) / 1000000 as km2
from gis.aviandists_pl
group by sciname
order by sciname;

Some rows trigger 'ERROR: BOOM! Could not generate outside point!'. I've isolated a row that is causing this problem, but haven't found a way to upload it here. Based on the thread linked to above, I thought it might be a globe-spanning polygon, but it doesn't appear that way (see image below). This represents a single row from a geometry table, which surprises me because I would have thought that the multiple polygons that I'm observing would have to be represented by multiple records. Could this actually be a global polygon with small holes? More importantly, how can I work around this? The query covers over 10k rows, and I have no idea how many may pose this problem or how to find them. I'd be happy to share a shapefile of the problem data if that would help, but I haven't found a way to attach one here.

screen capture

1
  • 4
    ERROR: BOOM! - you have to give some credit to developers for their sense of humour in reporting errors ;]
    – radek
    May 2, 2012 at 22:06

1 Answer 1

1

Yah that's Paul Ramsey's error message. I laugh every time I see that error posted :)

If you can output the ST_AsText of one of the offending rows here, that would be helpful.

Alternatively you can post to the PostGIS newsgroup.

http://postgis.refractions.net/mailman/listinfo/postgis-users where you can attach at least a small SQL file.

There were also a couple of BOOM errors fixed I think in the last release.

Do a SELECT postgis_full_version();

and make sure you are running PostGIS 1.5.4 or PostGIS 2.0.0+

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.