Question

Geometry errors in ESRI Geodatabase data when loaded to PostGIS and viewed in ArcMap

  • 14 March 2014
  • 1 reply
  • 1 view

I have some polygon data (279719 records) in ESRI Geodatabase format. I want to load this data into PostGIS, and then view the data in a variety of GIS packages (ArcGIS, QGIS, web GIS) from the PostGIS database.

 

 

I know that the data has geometry problems because if I run the Geometry Checker tool in ArcGIS it reports 576 errors. This data displays fine in ArcMap from the Geodatabase despite the geometry errors (it also loads fine in QGIS).

 

 

So I load the data into PostGIS via a GeometryValidator in FME. I have experimented with a lot of the different combinations of Issues. For this testing phase, I load the data into 3 seperate PostGIS tables (passed, repaired and failed). I also load the data into an ESRI Geodatabase just to check if this loads correctly into ArcGIS. 

 

 

The data in the Passed PostGIS table gives the following error when I open it in ArcMap:

 

 

"One or more layers failed to draw:

 

 

arc_test.basisdata_fkb.vann_f_fkb:  Linestring or poly boundary is self-intersecting"

 

 

If I run ST_IsValid in PostGIS, all records are returned as being valid. So the data seems ok, but ArcGIS still doesnt like it.

 

 

If I run the Repair Geometry tool in ArcGIS before I load the data to PostGIS using FME, the PostGIS data displays fine in ArcGIS.

 

 

My question is how can I get FME to do the same error fixing as ArcGIS does with the Repair Geometry tool. Ideally I do not want to run the data through Repair Geometry in ArcGIS before I then use FME to load it. I would like to do it all in one go with FME.

 

 

James

1 reply

Badge +2
There are at least two geometry cleaner transformers. One of which you are already utilising - GeometryValidator. There is also the MRFCleaner.

 

 

I'd recommend checking the precision of coordinates in the two formats. It may be that coordinate rounding is occurring that is causing ArcMap to deem the polygons are self intersecting. 

 

 

I'd also recommend checking the coordinate system being written to PostGres. Are you reprojecting or is the coordinate system the same as what it was in ArcGIS pre-translation?

 

 

I'd also suggest writing to a different format. e.g. SQL Server Express and seeing if the error symptoms are PostGRES specific. 

 

 

Utilisation of the ArcSDEGridSnapper may assist in a precision issue as ESRI uses their own grid and is a bit picky with geometry.

 

Reply