Solved

Any way to exclude entries from one reader that don't have a matching value in another?

  • 15 February 2017
  • 4 replies
  • 8 views

I have a simple translation setup in FME to check if certain points are within a proper postcode polygon.

The guidelines I am checking against is that there should be one point per postcode and if the postcode of the point is "12555" then it should be in the "12555" polygon. Easy enough to check.

However, the problem I'm running into is there are PO boxes which have a postcode but do not have a polygon to go with it. I need to somehow filter out the points that do not have a matching polygon and then send the rest on to the PointOnAreaOverlayer and the tester.

I originally thought this would be possible with a TestFilter or Matcher but I'm not having any luck getting the result I need.

Anyone know what I need to use for this?

Thanks.

icon

Best answer by erik_jan 15 February 2017, 20:39

View original

4 replies

Userlevel 2
Badge +16

Easiest way is to use the FeatureMerger transformer and only use the features from the Merged output port. Those will be the points that have a matching polygon. The matching polygons will output from the Referenced port.

Badge +22

FeatureMerger would be one option.

Easiest way is to use the FeatureMerger transformer and only use the features from the Merged output port. Those will be the points that have a matching polygon. The matching polygons will output from the Referenced port.

 

Wouldn't that do the opposite of what I need by merging the ones with a matching postcode?

 

 

Edit: Ok makes more sense after the edit.

 

Userlevel 2
Badge +17

Hi @jaymartin, if the polygons won't overlap each other (in other words, a point cannot be within two or more polygons simultaneously), I think the Clipper (or the SpatialFilter) can also be used.

If it's guaranteed that all the polygon features (clippers) will have arrived at the transformer before any point feature (clippee), you can set "Clippers First" to the "Clipper Type" parameter, so that the transformer could work with best performance.

Reply