Skip to main content
Question

Buffer process has stopped working


Forum|alt.badge.img+1

I have a negative buffer process that was created in Workbench 2017 that has stopped working properly. The input dissolved feature geometry (also created via an FME process) is being rejected in the Bufferer transformer. Nothing has changed with the data, we have updated Workbench to 2018 but the dissolve process no longer runs properly. Any ideas?

Thanks,

--gary

7 replies

chrisatsafe
Contributor
Forum|alt.badge.img+2
  • Contributor
  • January 8, 2019

Hi @bowlesg,

When you upgraded the workspace, did you also upgrade the transformer? If so, there may be a new parameter in the Bufferer that may have changed - Buffer Type.

Is the Buffer Type parameter set to Solid or Area (2D)? According to the 2018.1 Bufferer documentation, there are a couple of reasons why your feature may be rejected:

  • If the Buffer Type parameter is Solid, negative buffer amounts will cause a feature to be rejected.
  • If the Buffer Type parameter is Area (2D) and a negative buffer amount is too large to leave any part of a feature behind, the feature will be rejected.

The Bufferer accepts 2D point, curve (line), and area geometries when the Buffer Type is Area (2D). All geometry types are accepted when the Buffer Type is Solid.


Forum|alt.badge.img+1
  • Author
  • January 8, 2019
chrisatsafe wrote:

Hi @bowlesg,

When you upgraded the workspace, did you also upgrade the transformer? If so, there may be a new parameter in the Bufferer that may have changed - Buffer Type.

Is the Buffer Type parameter set to Solid or Area (2D)? According to the 2018.1 Bufferer documentation, there are a couple of reasons why your feature may be rejected:

  • If the Buffer Type parameter is Solid, negative buffer amounts will cause a feature to be rejected.
  • If the Buffer Type parameter is Area (2D) and a negative buffer amount is too large to leave any part of a feature behind, the feature will be rejected.

The Bufferer accepts 2D point, curve (line), and area geometries when the Buffer Type is Area (2D). All geometry types are accepted when the Buffer Type is Solid.

Buffer Type is 2D.

So if a smaller polygon in the original set of data has no part left after the buffer is applied, the entire set of data is rejected? Is this a new "improved" function with the 2018 upgrade? Is there something that i can do to have the data pushed through? Our dataset is property leases over a large area and there will be some smaller leases that will be completely eliminated after buffering - this is expected.

Thanks,

--gary


chrisatsafe
Contributor
Forum|alt.badge.img+2
  • Contributor
  • January 8, 2019
bowlesg wrote:

Buffer Type is 2D.

So if a smaller polygon in the original set of data has no part left after the buffer is applied, the entire set of data is rejected? Is this a new "improved" function with the 2018 upgrade? Is there something that i can do to have the data pushed through? Our dataset is property leases over a large area and there will be some smaller leases that will be completely eliminated after buffering - this is expected.

Thanks,

--gary

@bowlesg

By default, workbench is set to terminate the translation when a feature is rejected. You can set the Rejected Feature Handling to Continue Translation in the Navigator Pane > Workspace Parameters > Translation > Rejected Feature Handling.


Forum|alt.badge.img+1
  • Author
  • January 8, 2019

I tried above, and this results in the entire dataset being pushed to the Rejected port and nothing moving forward through the remaining transformers.

I want to be able to turn off the function that rejects the data if a part is eliminated due to the large buffer. We expect parts of the data to be eliminated by the buffer, that is the expected output. It appears that the upgraded buffer transformer now rejects the data if this happens. Is that true?

Thanks,

--gary


gio
Contributor
Forum|alt.badge.img+15
  • Contributor
  • January 8, 2019

@bowlesg

 

Do you get an error from the dissolver? Like index failure?

 

Assuming such..

I had some workspaces failing on previously working dissolvers.

I found that the dissolver chokes when geometry with really slim geometric parts where points are like at 9th decimals apart (I am not referring to small angle spikes, though they look it). More like cutting a piece of paper halfway, the cut is now a small/slender/slim cut-out.

Previously the dissolver would run even with the (recently elevated to) offending objects.

I resolved this by removing those, that is deconstruct polygons, remove offending points and rebuild.

 

Ah, I just read it being another problem, fully buffer related..


Forum|alt.badge.img+1
  • Author
  • January 8, 2019
gio wrote:

@bowlesg

 

Do you get an error from the dissolver? Like index failure?

 

Assuming such..

I had some workspaces failing on previously working dissolvers.

I found that the dissolver chokes when geometry with really slim geometric parts where points are like at 9th decimals apart (I am not referring to small angle spikes, though they look it). More like cutting a piece of paper halfway, the cut is now a small/slender/slim cut-out.

Previously the dissolver would run even with the (recently elevated to) offending objects.

I resolved this by removing those, that is deconstruct polygons, remove offending points and rebuild.

 

Ah, I just read it being another problem, fully buffer related..

I received no error from the dissolver.

--gary


fmelizard
Contributor
Forum|alt.badge.img+17
  • Contributor
  • January 8, 2019
bowlesg wrote:

I tried above, and this results in the entire dataset being pushed to the Rejected port and nothing moving forward through the remaining transformers.

I want to be able to turn off the function that rejects the data if a part is eliminated due to the large buffer. We expect parts of the data to be eliminated by the buffer, that is the expected output. It appears that the upgraded buffer transformer now rejects the data if this happens. Is that true?

Thanks,

--gary

I think that if an individual area would collapse to nothing via a negative buffer ONLY that feature would go out the rejected port. You can disable the translation terminating in such a case by doing as Chris pointed out below, or just connecting the Rejected port to a Logger or Cloner or some transformer you then ignore. Or if you want to route the features onward, connect them where they should go.

Now, it is reasonable to ask if this is what we should be doing. You are correct that when buffering with a negative distance it is 100% an expected outcome that some features will collapse to nothing. They should probably be output via the normal output port but with a null geometry -- does that seem reasonable to you?


Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings