Skip to main content
Hi,

 

I am converting ESRI shape files into the Norwegian national spatial data format, SOSI. SOSI is very strict on overlapping geometry, double or unconnected nodes and double lines in polygon features.

 

 

I am new to FME, so I need a little help in figuring out how to collapse double vertices, how to remove "blind" nodes (nodes that are unconnected) and remove double line features in polygons.

 

 

Any suggestions?

 

 

Chris
Hi Chris,

 

 

If you're using FME2013, I would recommend looking into the GeometryValidator with the "Attempt repair" option. Note that you might need chain two of these after one another for certain types of errors. There is some info here.

 

 

One important thing to know about the GeometryValidator, is that the order of the operations matter. This is unfortunately not very clear in the user interface, but it can make a big difference. You can re-order the operations using the small triangle "buttons" on the upper right hand side of the list of checks to perform.

 

 

Also look at the SliverRemover and the  SpikeRemover. You might also want to look at the TopologyBuilder to reconstruct your nodes.

 

 

There are also some ideas in this recent thread.

 

 

Finally, there is a third-party plugin "MRFCleaner" that is quite powerful and well worth a look. You might be able to get an evalutation license from your local FME dealer if you ask nicely.

 

 

David

 

 


Hi Chris! We produce the SOSI-plugin (GDMMapper) so this is a known issue. Between Shape - SOSI - Shape.

 

 

Usualy you need to use a combination of Counters to get unique IDs, Matchers, FeatureMergers, GeometryValidators. FME2013 is far better than FME2012 in these cases.

 

 

For more information have a look at www.geoanalyse.no and you can also contact me directly: . 

 

 


Thank you both for constructive answers. I am definately a step closer!

 

 

A follow-up question: Many of my data sets have overlapping polygons that I would like not to overlap. How can I cut parts of a polygon (that part which overlaps with other polygons) and keep its attributes?

 

 

So far I have only managed to dissolve or merge overlapping polygons, which works fine when unique attributes and polygons are not required for the geometry.

 

 

Also, is it possible to sett a rule where overlapping polygons are split 50/50, say when two rectangles with unique attributes overlap and need to be split halfway?

 

 

Thanks

 

Chris
Sorry, my first question was a little bit vague. What I meant to ask was: How can I remove that part of one polygon that overlaps with another and still keep the attributes of the part that remains.

 

 

Chris
Hi again,

 

 

take a look at the AreaOnAreaOverlayer:

 

"Performs an area-on-area overlay so that all input areas are intersected against each other and resultant area features are created and output. The resultant areas have all the attributes of all the original features in which they are contained."

 

 

You might also consider the Intersector and the TopologyBuilder.

 

 

David

 

 


Those are the transformers I have been using, I probably just haven't set them up quite right. I will persevere. 🙂 Thanks for all your help!

 

 

Chris
Hi Chris,

 

 

these types of validations and corrections can sometimes be quite tricky, unfortunately.

 

 

Consider taking Sigbjørn up on his generous offer to contact him, I'm sure he has some good suggestions if all else fails.

 

 

Lykke til!

 

 

David

Reply