Question

How to test a multiline feature for the number of disjoint line segments ?

  • 29 March 2018
  • 2 replies
  • 6 views

Badge

Hi all,

I have an oracle SDO geometry table containing multiline features.

These features should be contiguous collections of point-pairs. i.e. all endpoints should touch another point-pair from the same feature. the features can form a string of point pairs ('~'), but also a 'Y' type of topology, or something more complex. However, the feature should not consist of sub-parts that are not connected to each other (e.g. '~ ~' ).

How can I test for this requirement to be met ?

I think I should somehow be able to count what Oracle calls the parts of the multiline object, but it is not clear to me if I can call these oracle constructs from FME, or what FME equivalent to use.

Can you point me to some example or helpful bit of information for this type of tests in FME ?

Regards,

Ronald


2 replies

Badge +3

You want to filter lines (2 vertices) form a multiline feature?

If you want to do that using fme you can simply deagregate them, count vertices where they number 2.

Geometrypartextractor with a test clause should also be possible afaik.

Userlevel 2
Badge +17

Hi @raalst, the NetworkTopologyCalculator adds ID which is unique for each connected network to the input line features. If I understand the requirement correctly, this might help you.

  1. Counter: Add sequential number attribute (e.g. "_temp_id") to the original features as temporary ID.
  2. Deaggregator: Decompose the original features into individual single lines.
  3. NetworkTopologyCalculator (Group By: _temp_id): Adds network ID attribute (e.g. "_network_id") to the line features.
  4. DuplicateFilter (Key Attributes: _temp_id, _network_id): Filter out duplicates on "_temp_id" and "_network".
  5. StatisticsCalculator (Group By: _temp_id, Attributes to Analyze: _network_id, Total Count Attribute: _count): If the value of "_count" in a resulting feature from the Summary port is two or more, the lines corresponding to the same "_temp_id" (i.e. an original feature) are not connected.

Reply