Question

Clip 6 000 000 triangles against 20 areas

  • 20 March 2019
  • 6 replies
  • 0 views

Badge +21

How to speed up Clip 6 000 000 triangles against 20 areas. Have tried Clipper, Spatialrelator, spatialfilter. With no luck for speeding.

Using Postgres is an option, but would prefer a lightning-fast solution that only includes FME without a DB-backend :)


6 replies

Userlevel 1
Badge +10

How is your data stored? Have you tried a workspacerunner, running a workspace 20 times, once for each area with 7 concurrent FME processes?

Suggestion:

 

How about running CenterPointReplacer for 6 mill triangles before running them through clipper? When done you can run all passed Points through FaceReplacer. Not sure if this will decrease overall Runtime of Your script tho...

Badge +21

How is your data stored? Have you tried a workspacerunner, running a workspace 20 times, once for each area with 7 concurrent FME processes?

I am running with Featurecaching on and only that step - so its basically from FFS. For workspacerunner it still needs to check all the 6 000 000 - not sure if that will decrease using more processes. Thx

Userlevel 1
Badge +10

I am running with Featurecaching on and only that step - so its basically from FFS. For workspacerunner it still needs to check all the 6 000 000 - not sure if that will decrease using more processes. Thx

You can read FFS with a spatial filter - so not having to load all 6,000,000 for each run. Not tried it with as many features as you have, but where i've used it it's more efficient to use an area as a trigger for a featurereader to read the ffs, than to read everything in then clip/spatial relate etc.

It probably does vary quite a bit depending on machine, exact data though, no one size fits all solution

Badge +21

Suggestion:

 

How about running CenterPointReplacer for 6 mill triangles before running them through clipper? When done you can run all passed Points through FaceReplacer. Not sure if this will decrease overall Runtime of Your script tho...

This might work if I do a buffer on each - and then test only those within the buffer. So I guess the Point vs areas test is faster than the clipper. Then I will sort out the objects to clip. Thx!

Badge +21

Suggestion:

 

How about running CenterPointReplacer for 6 mill triangles before running them through clipper? When done you can run all passed Points through FaceReplacer. Not sure if this will decrease overall Runtime of Your script tho...

Using the SpatialFilter seems to be quite fast - so it sorts out atleast the features I want. However I still have a lot of features I need to clip. Another approach might be to SHRINK my area so I can use SpatialFilter to find out all points which are all outside my area or should be clipped. This way I only need to clip 500 000 features instead of 6 000 000. So that will speed things up a bit. Thanks for the help!

Reply