Question

Bufferer Generating OGC Invalid Geometry

  • 29 March 2024
  • 5 replies
  • 75 views

Badge +2

I have a set of line data that I wish to buffer for a client.

The requirements of their GIS system are such that the shapes must not be 2D reentrant, lack donut holes, and be OGC Simple + OGC 1.2 compliant.

I buffered the lines to .0003 ground units (coordinate system is in degrees)

Input feature qty is 9287.

The validator only passes 8175 of them.

Every failure reported from the listConcatenator is “Fails OGC Compliant,Fails OGC Simple”.

Is there something that I’m doing wrong?


5 replies

Userlevel 1
Badge +11

Hi @alexortziply Can you see why the remaining 1112 polygons fail the GeometryValidator?  Do you get better results if you change the Buffer Distance Units to feet or meters? Buffering in decimal degrees is not ideal...

Userlevel 3
Badge +16

Those errors can happen when the bufferer outputs a null geometry. Null outputs can happen when buffering lines by an amount which is orders of magnitude greater than the line length (especially if the lines are invalid to begin with). Try buffering by 1 with ground units of Meters. As a rule you shouldn’t buffer by degrees since you’ll get a different result depending where you are in the world (vertical and horizontal will vary).

Badge +2

Some new testing has happened using the suggestions made above. Dataset is 9307 lines total (database always changes). None of the geometries that fail are null.

  1. I’ve made sure that these lines have been cleared by the geometry validator beforehand.
  2. Buffering in meters, by 1 meter yielded 8880/9307 passing validation post buffer; the failures all have “Fails OGC Compliant,Fails OGC Simple” in the list concatenation of _issues{}.issue_found.
  3. Buffering in feet, by 1 foot yielded 9250/9307 passing validation post buffer; the failures all have “Fails OGC Compliant,Fails OGC Simple” in the list concatenation of _issues{}.issue_found.
  4. Buffering in feet, by 100 feet yielded 8094/9307 passing validation post buffer; the failures all have “Fails OGC Compliant,Fails OGC Simple” in the list concatenation of _issues{}.issue_found.

So, seems like what I’m seeing is an exponential increase in the number of failures as the buffer size increases.

Userlevel 1
Badge +11

Can you see why they are failing “Fails OGC Compliant,Fails OGC Simple” ? Are you able to share any data here? thanks

Badge +2

Absolutely, it doesn’t show much in any of the concatenated lists. I’ve included the data before and after buffering.

Reply