Skip to main content
I have a workbench developed in FME2012 which, given a set of lines representing a river network, generates a parallel line to the left and right of each bit of river.

 

 

My workflow is to use the normal polygon buffering on each river line to generate the geometries for each river line separately. Then I need to get rid of the bits that are inside the "overall" buffer so I intersect the buffer outlines with one another and use a spatial filter to remove the intersected parts that are "within" the dissolved overall buffer polygon itself. 

 

 

This works absolutely fine in FME 2012. In FME 2013, at seemingly random locations it fails in that some of the buffer outline portions are found by the spatial filter to be inside the buffer polygon. These are the SAME geometry! 

 

 

I have noticed similar problems on other occasions. Given a general workflow of take a feature, do something with it, match the unaffected portion of the geometry back to the original - this generally seems to fail and a snapper or similar is required to get them to match again. This is annoying by itself but here something has definitely changed for the worse between 2012 and 2013.

 

 

How can I get around this without having to go through tediously snapping every line back to itself every time?
There is a new option on the Dissolver (Assume Input Is Clean) - try turning this on and off again.

 

 

Do you have a small example of two rivers giving the error? And also the Transformer-workflow that fails with these rivers?
Harry - if EXACTLY the same workspace runs very differently in 2012 and 2013 (without having swapped out any Transformers) then that is an example of an issue you should directly escalate to Safe as a support ticket. It sounds like there is something fundamentally different.

 

 

You can request support at the top of this page. They will need your workspace, some sample data and the build numbers of the two FME versions.
Thanks,

 

 

Actually I was using the old Dissolver, from FME2012.

 

 

(In fact I hadn't realised there was a difference, having not previously used one workbench across multiple versions. This seems very confusing, being able to have a transformer on the workbench that isn't the same as what you get if you drag a new copy if it from the gallery! How on earth do we keep track of that!)

 

 

Anyway, I tried replacing with the new one in 2013 and got the same results. I guess this talk of cleaning the geometry in the Dissolver gives some clue what might be wrong; but there is no reason why the unaffected portions that are way outside of any cleaning tolerance should have their vertices affected; and therefore the CONTAINS predicate should clearly not fire because that would imply that all vertices have changed.

 

 

I can certainly provide an example but I can't see any means of attaching a file on this forum??

 

 

Dave - yes, I have now tried running the workbench in 2012, saving it, opening it in 2013, changing nothing but the output feature type names, and re-running, with different results. I will open a support ticket.

 

 

However in doing this I have noticed a second issue with this workbench that I hadn't spotted before. I am using the OffsetCurveGenerator to generate small offset line left and right of each of the input rivers, and then using these to allocate Left and Right bank to the results from the Buffering workflow. However, it seems that on occasions the OffsetCurveGenerator is generating null geometries. The right number of features are output but some geometries are null. Is this a known issue?

 

 

Thanks,

 

Harry
Regarding the OffsetCurveGenerator - is it possible that this Transformer gets POINTS as INPUT and that its not possible to generate left and right to these, and hence the NULL Geometries? Havent used it much unfortunately - just a suggestion.

Reply