Skip to main content

Hello,

 

What are possibilities and what would you suggest to optimize and have the best performance (time response) with spatial anaysis (SpatialFilter and/or neightbor(pair)finder) research ?

 

I work with an "Oracle Spatial DataBase" and at this time FME 2019.2

 

For exemple if I have a located punctual object with coordinates and need to find the closest street axis or all street axis in a buffer around this coordinates, but i don't want to read all my linear objects "street axis" in the database , otherwise each individual research will be quite slow and I need a high performance for time response

 

Thanks in advance for your help and suggestion

 

Regards

 

Frederic

You are correct that I/O can be a limiting factor. Best practice is to use the spatial functions in the database to extract only the features you need. Depending on the type of database / what you want / skills you can use a FeatureReader or a SQLExecutor. In both cases you feed it a request feature, for example a buffered point.

 

Using the FeatureReader you simply set the spatial filter as you need. Assuming you can take the advantage of a spatial index this works quite well. Please read the documentation:

...For readers that do not support a Spatial Index or when the relationship Disjoint is selected, all features are considered candidate features and so all features are read. Check the format’s Quick Facts section to see if the reader supports a Spatial Index...

 

If you need more advanced functions, using the SQLExecutor you can write your own specific request.


@frederic.haan​ FeatureReader should do this for you without any SQL. Buffer your points by an appropriate amount and then send them into the Initiator. The FeatureReader will do a bounding box query on your streets


Reply