Solved

Filter polygons composed of line+arc (preserve geometry)

  • 15 April 2019
  • 2 replies
  • 30 views

Badge

I have a polygon dataset.

  • 90% of this dataset is polygons composed of lines
  • 10% of this dataset is polygons composed of lines+arcs.

How to I filter out the 10% lines+arcs records while keeping the geometry intact?

icon

Best answer by takashi 16 April 2019, 00:16

View original

2 replies

Userlevel 2
Badge +17

A possible way is:

  1. Add unique ID attribute to every polygon.
  2. Split the feature flow into two streams. On the first stream, extract geometry; On the second stream, convert arcs (if exists) to polylines then extract geometry.
  3. Use the FeatureMerger to merge the second stream to the first stream, grouping by ID and using the geometry as join key.

Polygon boundaries output from the Merged port only consist of Lines, others consist of Lines and Arcs.

0684Q00000ArJk6QAF.png

 

Alternatively, a PythonCaller with this script works as well.

def processFeature(feature):
    area = feature.getGeometry()
    feature.setAttribute('_is_linear', 'yes' if area.isBoundaryLinear() else 'no') 

0684Q00000ArJUzQAN.png

Badge

Thank you @takashi the python solution is elegant and exactly what I was looking for!

Reply