[postgis-users] ST_Intersection very slow

Mark Wynter mark at dimensionaledge.com
Thu Feb 26 02:06:33 PST 2015


John, I've got a variation in mind that works solely using lc_class32 - should take same time as what I sent through earlier. I'm guessing 2 minutes!!!  A different SQL statement in the data prep stage - it is now becoming very clear to me as to how to tile lc_class32 in the purest sense. Which means universal application for other use cases. let me test version 2 before sharing.

Sent from my iPhone

> On 26 Feb 2015, at 4:19 am, John Abraham <jea at hbaspecto.com> wrote:
> 
> Wow guys.  131 seconds is a lot faster than 10 days.
> 
> Remi, if you can work out a fast intersection method that uses points and lines as a preprocessor to dealing with the polygons, I think it would be a great addition to PostGIS.  ST_Intersection in PostGIS is often quite a bit slower than the implementation in Geomedia, Mapinfo, and (I hear) ArcGIS, so any functionality that results in speed improvements would be great.
> 
> Mark, I can't wait to figure out why your system was fast!  I was following your (preliminary) tutorial and gridding the data was progressing very slowly.  
> 
> I have a provincial boundary file but there seems to be much ambiguity in GIS representations of the provincial boundary, so I won't send you the one I have.  I can try to assemble one from other sources.
> 
> --
> John Abraham
> jea at hbaspecto.com
> 403-232-1060
> 
>> On Feb 25, 2015, at 6:28 AM, Mark Wynter <mark at dimensionaledge.com> wrote:
>> 
>> Hi John
>> 
>> I’ve just crunched your whole dataset.  The process takes 131 seconds for the vector tiling (using a 16 CPU machine).  Plus another 170 seconds for data prep at the start including making the poly's valid.
>> For a 2 CPU machine, it will take circa 15 minutes, or double that using a single CPU.
>> 
>> Only one small issue outstanding - and that relates to clipping the regular grid prior to tiling.  For clipping I used the union of the abmiw2wlcv_48tiles as supplied with the data - the problem is the abmiw2wlcv_48tiles are rough and ready, which produces voids. The voids using my method unfortunately get the same feature class as lc_class = 32.  You’ll see this clearly on second screenshot.
>> The way around this is to clip the regular grid using a high-res shapefile of the Alberta state boundary prior to the tile crunching the lancover_polygons_2010 table.  This is easily done - I just didn’t have the state boundary data.
>> 
>> I need to get some sleep. John, Remi,  I will share with you the code tomorrow.  For others, I’ll be posting a tutorial that steps through the methods touched upon in this thread..
>> 
>> John, the only difference between my tutorial and its application to your land cover data was a few tweaks to the data prep stage. Otherwise the same code pattern (no modification at all needed to the worker_function).  It was great to test the code with your data.
>> 
>> Speak tomorrow.
>> Mark
>> 
>> 
>> 
>> 
>> <Screen Shot 2015-02-25 at 11.29.15 pm.png>
>> 
>> 
>> <Screen Shot 2015-02-25 at 11.39.04 pm.png>
>> 
>> 
>> <Screen Shot 2015-02-25 at 11.41.41 pm.png>
> 


More information about the postgis-users mailing list