Question

Hello , I am trying to find a smart way to do a bulk process. I have a geodatabase with over a million records of feature type line. All of the records are to be selected by a unique id. this unique id is the same for more than one feature in the dat

  • 21 December 2021
  • 3 replies
  • 0 views

Badge +1

the ultimate goal is to have two outputs, the selected line or lines based on an attribute value and the neighbouring/adjacent lines within a 100m buffer. So am wondering what would be the best way to loop through the million records selecting features by attribute value then run the process and then the next batch so on ...? any help in decoding this will be highly appreciated.


3 replies

Userlevel 5
Badge +29

FMEs GroupBy functionality will help here. In FME looping is not a common requirement and has its limitations. Often what you're trying to achieve with looping can be achieved using other methods

 

https://docs.safe.com/fme/html/FME_Desktop_Documentation/FME_Transformers/Group_Based_Transformers.htm

https://community.safe.com/s/article/groups-and-group-based-blocking-transformers

Badge +1

FMEs GroupBy functionality will help here. In FME looping is not a common requirement and has its limitations. Often what you're trying to achieve with looping can be achieved using other methods

 

https://docs.safe.com/fme/html/FME_Desktop_Documentation/FME_Transformers/Group_Based_Transformers.htm

https://community.safe.com/s/article/groups-and-group-based-blocking-transformers

hello @hkingsbury​ many thanks for the answer, i may have missed saying a very important aspect of the question, I am comparing this lines in geodatabase say .gdbA to similar lines from another geodatabase say .gdbB. At the moment i use a tester where i select manually by a unique Id for features in .gdbA and run the lines through a line on line overlayer and i get lines from both geodatabases then i filter out the adjacent lines within a distance using a buffer of 100m from the selected lines.

 

So the tester part is what i am trying to automate. Any idea please. I hope its clear as to what i am trying to achieve here.

 

best regards

Keller

Badge +2

@keller​ As @hkingsbury​ suggests, you shouldn't need to loop.

For your first set of lines, A, you should be able to use aa SQL IN clause - which is available on the File Geodb reader feature type. So you can pass in a list of the ID's you want to process. You can then use you're line on line overlayer or SpatialFilter to match the lines from file gedbB. Or you could try FeatureReader to read gdb B and use a spatial filter there.

Reply