Question

Points being written as area error


Badge
I have a dataset of approximately 3.5 millions points that I pass in a pointOnAreaOverlayer and send to a MapInfo Writer.

 

 

However, I have a bunch of warnings that say: Below feature has too few coordinates -- a region feature needs more than 3 coordinate pairs

 

 

It seems, the writer is mixed with the geometry type, and is trying to write them as area, but there is only points. I even do a geometryFilter before the writer to filter only the Points.

 

 

What is the problem? What can I do? I am using FME 2014 SP4 build 14430 Win 32

 

 

13 replies

Userlevel 4
Hi,

 

 

try inserting a GeometryCoercer set to fme_point before the writer.

 

 

David
Badge +3
Are you sure the warning is not for the input of the areaOnarea overlayer?

 

Points and or lines entering the area input?
Badge
@David R. I have the same problem even with the geometryCoercer just before the writer

 

@Gio : I confirm it is in the writer that the problem occur.

 

 

I dont know if it could tell something but the input dataset is in the FFS format and if I use an ESRI Shape writer with shape_point geometry, all the features are wrote correctly. The problem is realy within the MapInfo TAB writer.
Badge
The problem is probably coming from the pointOnAreaOverlayer because if I bypass this transformer and send the data directly to the writer I dont have any warning. I'll test with spatialRelator instead, but I would prefer using the pointOnAreaOverlayer because it is faster with the Area First option.
Userlevel 4
Hi,

 

 

insert an inspection point (http://docs.safe.com/fme/html/FME_Workbench/Default.htm#about_feature_inspection.htm) just before the Mapinfo output and check the geometry properties there. In particular You could also try to add a GeometryValidator before the writer.

 

 

David
Badge
Hi David.

 

 

The fme_geometry and fme_type attributes are fme_point but curiously the features that trigger the warning have an addition attribute mapinfo_type set ti mapinfo_region. For those features the fme_geometry is set to fme_point. I think this is the cause of my problem but I dont know why those feature have this mapinfo_type attribute and how to prevent this problem.
Badge
The pointOnAreaOverlayer pass the mapinfo_type attribute of the area to the point and then the mapInfo Writer take this attribute to define the geometry of the feature. Its weird! It would not be better to use the fme_type in the writer instead of the mapinfo_type? And the pointOnAreaOverlayer should not pass format attributes.

 

 

It seems like a bug to me. To prevent it, I expose the mapinfo_type in the area features and then i use an attriubteRemover before the pointOnAreaOverlayer. Like this, I dont have warning anymore and every features are written as point.
Userlevel 4
It't not a bug, it's like that by design. It works the same way with e.g. ArcGIS feature datasets, search for "geodb_feature_dataset" here and you'll see several posts of the same nature. This was due to behaviour that was changed in FME2013 (initial release).

 

 

David
Badge
Ok but the bug in my opinion is that the pointOnAreaOverlayer pass its mapinfo_type attribute from the area to the points. But curiously, this happen not to all points but to approximately 20% of them.
Badge +3
In that case u could block the attribute and have it by-pass the AoA?

 

 

Merge them to area's after Aoa.

 

 

Or remove them from the points after the Aoa.
Badge
Yes, that's what I am telling in my previous comment but in my opinion, this is not normal. I was using this process since 2 years now and I never had this problem before. Maybe it's a bug in the SP4 of FME 2014
Userlevel 4
If you think it's a bug (could well be, particularly if it changed recently or it only happens in some cases), please consider reporting it to Safe support so that it'll get fixed. Either way, you'll get the definitive answer whether it's a bug or not, rather than us speculating :-)
Badge
I dont know if this would make sense to someone, but I tryed to put a geometryValidator on the areas before the PoAo and the problem stopped. I thought the problem could be in an invalid geometry but curiously all areas was in the valid output of the geometryValidator (no invalid or repaired geometries).

Reply