Skip to main content

Hi,

When trying to write I am receiving

"The error message from ArcObjects is: {Number of parts in shape is incorrect for its geometry type}"

FME 2018.1, Postgres 9.5.9, config keyword: PG_GEOMETRY

Isn't multipart writeable?

Same input data written to file geodatabase and copy/pasted to sde with arccatalog works.

Regards,

Richard

Must be one of the settings.

I was successful in loading your data. See screenshot.


Must be one of the settings.

I was successful in loading your data. See screenshot.

I was not using the PostGIS writer but the Esri Geodatabase (ArcSDE Geodb) writer as per title of the question.

 


Must be one of the settings.

I was successful in loading your data. See screenshot.

Ok, I can reproduce your situation. Maybe someone at Safe has an answer.

As a workaround you can write to a filegeodatabase and then use arccatalog to do the translation.


Yes, I've worked around with python caller using arcpy but better not to if possible.


Hi @tfsrichard: Thanks for your question! The feature it's failing on is pid=7166521. When I filter out this feature, all remaining features (including all other multipart polygons) are written successfully to the SDE. So I'm thinking the issue isn't quite related to multipart polygons.

The feature pid=7166521 contains 6 extremely narrow polygon parts. I believe the issue sent back from the SDE is caused by your database/SDE tolerance (i.e. vertices that are snapped to a particular tolerance may result in self-intersecting and/or duplicate vertices that affect the resulting geometry).

For example, the following coordinates are four vertices from one of the parts of the offending feature. If the tolerance was set to 0.001, you will find that the three of these vertices would be identical:

  • 508493.5333573815, 5431015.562052546
  • 508500.625289657, 5431014.372179839
  • 508493.53359999973, 5431015.562
  • 508493.5333573815, 5431015.562052546

To confirm this train of thought, I tried passing pid=7166521 through a GeometryValidator and setting the Tolerance parameters for Duplicate Consecutive Points and Self-intersections in 2D to 0.001:

pid=7166521 comes out the GeometryValidator's Failed port as a self-intersecting 2D object.


Hi @tfsrichard: Thanks for your question! The feature it's failing on is pid=7166521. When I filter out this feature, all remaining features (including all other multipart polygons) are written successfully to the SDE. So I'm thinking the issue isn't quite related to multipart polygons.

The feature pid=7166521 contains 6 extremely narrow polygon parts. I believe the issue sent back from the SDE is caused by your database/SDE tolerance (i.e. vertices that are snapped to a particular tolerance may result in self-intersecting and/or duplicate vertices that affect the resulting geometry).

For example, the following coordinates are four vertices from one of the parts of the offending feature. If the tolerance was set to 0.001, you will find that the three of these vertices would be identical:

  • 508493.5333573815, 5431015.562052546
  • 508500.625289657, 5431014.372179839
  • 508493.53359999973, 5431015.562
  • 508493.5333573815, 5431015.562052546

To confirm this train of thought, I tried passing pid=7166521 through a GeometryValidator and setting the Tolerance parameters for Duplicate Consecutive Points and Self-intersections in 2D to 0.001:

pid=7166521 comes out the GeometryValidator's Failed port as a self-intersecting 2D object.

FYI: I also tried writing it to a file geodatabase and then loading it into the SDE feature class. I ended up getting a similar error in ArcCatalog:


Reply