Skip to main content

I've had some issues regarding this Transformer: Dissolver.

Using a dataset of polygons, after being worked, it is assumed that there are present a bunch of geo-issues as Gaps, Overlaps...

 

Firstly, for GAPs, as my First option, I start dissolving the entire dataset to then extract "holes" or gaps with the transformer: DonutHoleExtractor. Here is my input:

 

input_dataConsequently, and as I expected, all Holes were extracted and solved within the rest of the FME workbench, until I double-checked on the final output, where I mimic same transformer on Final Output, and surprisingly I got new Holes:

 

Example: (I know, there are a bunch of holes... :_( )

example1_initialFrom the first Dissolver output, I'd get the Green ones, and with last final check (remember, same Dissolver transformer), I get the red ones, green ones were solved:

example1_holesAlso, as you can appreciate, from the very beginning, there were green and red ones already on the dataset.

 

The Dissolver parameters:

Dissolver_transformer_param 

My Second option was to try, on the same Workbench, to rebuild the polygons with "Intersector" and "AreaBuilder" transformer. So, all new Areas created not being on the starting input dataset, would meant to be "Holes"... and voilà, two new "holes" appeared:

 

example1_wb 

My doubt here:

Shall I need to switch ALWAYS the way that I've extracted holes until now, due to Dissolver instability?

Any hints?

 

EDIT:

I've added the Workbench including the FGDB and SHP used as input too. All Zipped. 

 

Thanks!

Juanma,

Put a snapper in there with the tolerance set to the maximum distances for a gap you measure in the inspector.

 

If you have a preferred polygon to snap by; test them out and use them as the anchor in an anchored snapper.

 

Should get rid of all the holes/overlaps and clean up the edges nicely.


Put a snapper in there with the tolerance set to the maximum distances for a gap you measure in the inspector.

 

If you have a preferred polygon to snap by; test them out and use them as the anchor in an anchored snapper.

 

Should get rid of all the holes/overlaps and clean up the edges nicely.

Hi @jlbaker2779​ , Thanks for the suggestion, unfortunately I'd need more control on the features that I need to align/snap to, and AnchoredSnapper does not give me the control needed. As you said, setting a known tolerance would get rid of any of those undesired gaps.


Hi @jlbaker2779​ , Thanks for the suggestion, unfortunately I'd need more control on the features that I need to align/snap to, and AnchoredSnapper does not give me the control needed. As you said, setting a known tolerance would get rid of any of those undesired gaps.

What is your goal with the data? Reconcile the difference between the two layers? Identify gaps/slivers?


Hi @jlbaker2779​ , Thanks for the suggestion, unfortunately I'd need more control on the features that I need to align/snap to, and AnchoredSnapper does not give me the control needed. As you said, setting a known tolerance would get rid of any of those undesired gaps.

The goal is to clean Gaps (whichever shapes), and the second input used (the original source) is only taken into account if needed (not always). For that reason neither AnchoredSnapper or Snapper may be used.

Thanks,


Hi @jlbaker2779​ , Thanks for the suggestion, unfortunately I'd need more control on the features that I need to align/snap to, and AnchoredSnapper does not give me the control needed. As you said, setting a known tolerance would get rid of any of those undesired gaps.

How did you come up with the aligned data? Are you able to share that workbench and data? I think it would be easier to fix beforehand rather than after.

 

I say that because looking at the data in the area from your original screenshot, it looks like you did a clipping/areaonarea operation that created aggregates on both sides of the highway. The only thing I can think of doing here with this current set of data is to split the data and assign the polygon to a random neighbor and then smooth the arc to fit the curve of the road.

 

Capture2 

I also noticed the data just to the right where the arc turns to a zigzag pattern. Going to be a bumpy ride if that's the road. ;D

 

Capture4 


@juanmahere​  It does look like this might be a tolerance issue in Dissolver. Some very small gaps are not included as holes in the dissolved area.

Also, for those that might not be aware, Dissolver Remnants port outputs INTERIOR_LINE's and UNUSED_DATA.

fme_remnant_type UNUSED_DATA

UNUSED_DATA is often spikes with no area or duplicate segments. I've attached a test workspace based on Juanma's data and workspace.


Hi @jlbaker2779​ , Thanks for the suggestion, unfortunately I'd need more control on the features that I need to align/snap to, and AnchoredSnapper does not give me the control needed. As you said, setting a known tolerance would get rid of any of those undesired gaps.

Hi @jlbaker2779​ ,

Thanks for sharing your thoughts, and you're totally right, the alignment done produces such weird situations. I've been working on that, but as much as I enhance there are always situations where I cannot solve correctly. For that reason, I need to prepare a second step where all this geo-issues must be corrected.

As you've noticed, the Zig-zag representation is always a pain too due to thresholds used. I've not find the way to automatically adjust to the line perfectly (I may need to reconsider the logic behind). @Mark Stoakes​  has pointed to the "renmants" features, I'd look into that too.

Thanks for you help!

Juanma,


@juanmahere​  Some of your areas have self-intersections. Try running them through the GeometryValidator

transformerIt seemed to help


Reply