Question

PointOnAreaOverlayer fails for some points which are definitely in a polygon


Badge +7

FME 207.1.1.1 (17652) on Windows Server 2012 R2 DataCenter.

I'm using PointOnAreaOverlayer to add point attributes to polygons which contain the points. It works for 721 out of 754 points, but the other 33 don't get assigned to a polygon. Some of these points are not in a polygon, but others, including the examples shown below are definitely inside a polygon. I have tried de-aggregating the polygon layer first and have also used the GeometryValidator - all tests except the 2 OGC ones - all features pass.

Any suggestions apart from trying FME 2018.0?

The second example below is actually one polygon. The Deaggregator appears to merge this into a single polygon with the wiggly internal boundary removed. Either way, I would still expect the polygon to pick up the point attributes.


6 replies

Userlevel 2
Badge +12

Are the points actually defined as points?

I have had a case where it was defined as a zero length line, and then the PointonAreaOverlayer will reject the "point" feature.

You can check this using an Inspector transformer.

Badge +7

Are the points actually defined as points?

I have had a case where it was defined as a zero length line, and then the PointonAreaOverlayer will reject the "point" feature.

You can check this using an Inspector transformer.

I added a Bufferer to create polygons for points that really weren't inside a polygon and this caught 1 point that had null geometry. I've now fixed that, and added a GeometryValidator and GeometryFilter to the point layer. All valid and all points.

 

 

Badge +7

OK. I think I'm on the way to a solution. I discovered that there are a few cases where there are 2 valid points in the same polygon. It appears that PointOnAreaOverlayer does not output duplicate polygons in this scenario but I can generate a list of point IDs for each polygon. So I think I can do something with ListElementCounter and Tester to find polygons with more than one point ID in the list, then maybe Cloner to duplicate the polygon the required number of times, then FeatureMerger to join on the attribute from the correct point.

The situation is further complicated by the fact that there are duplicates of a few polygons and some overlaps of polygons. This has made validation difficult because the final number of features doesn't always add up to the number of input points minus those I know aren't in a polygon!

I'm planning to use Aggregator to merge the overlapping polygons into a single feature as my goal is to generate index polygons for Data Driven Pages in ArcGIS.

Badge +7

OK. I think I'm on the way to a solution. I discovered that there are a few cases where there are 2 valid points in the same polygon. It appears that PointOnAreaOverlayer does not output duplicate polygons in this scenario but I can generate a list of point IDs for each polygon. So I think I can do something with ListElementCounter and Tester to find polygons with more than one point ID in the list, then maybe Cloner to duplicate the polygon the required number of times, then FeatureMerger to join on the attribute from the correct point.

The situation is further complicated by the fact that there are duplicates of a few polygons and some overlaps of polygons. This has made validation difficult because the final number of features doesn't always add up to the number of input points minus those I know aren't in a polygon!

I'm planning to use Aggregator to merge the overlapping polygons into a single feature as my goal is to generate index polygons for Data Driven Pages in ArcGIS.

How to get an item from a list using attribute (_copynum from Cloner) as the index number:

 

https://knowledge.safe.com/idea/33967/list-element-selection-when-element-number-is-an-a.html

 

Userlevel 2
Badge +12

OK. I think I'm on the way to a solution. I discovered that there are a few cases where there are 2 valid points in the same polygon. It appears that PointOnAreaOverlayer does not output duplicate polygons in this scenario but I can generate a list of point IDs for each polygon. So I think I can do something with ListElementCounter and Tester to find polygons with more than one point ID in the list, then maybe Cloner to duplicate the polygon the required number of times, then FeatureMerger to join on the attribute from the correct point.

The situation is further complicated by the fact that there are duplicates of a few polygons and some overlaps of polygons. This has made validation difficult because the final number of features doesn't always add up to the number of input points minus those I know aren't in a polygon!

I'm planning to use Aggregator to merge the overlapping polygons into a single feature as my goal is to generate index polygons for Data Driven Pages in ArcGIS.

If you create a list for the points in the polygons, you can use the ListExploder to get as many polygons as you have points (a one on one match).

 

 

Badge +7
If you create a list for the points in the polygons, you can use the ListExploder to get as many polygons as you have points (a one on one match).

 

 

Ah yes. Lovely! I had tried ListExploder before and didn't get the result I needed but I've made some other changes to the Workspace since and it's working perfectly now. Thank you :-)

 

 

Reply