Skip to main content
Question

Buffer/expand point contained inside another polygon without losing area from the buffer

  • December 11, 2023
  • 8 replies
  • 149 views

I have points contained by polygons. I want to buffer these with a spesific buffer of 2500 square meters. And I want these buffers to not cross or expand outside of the polygon.

I need apply this to a lot of points with a single operation.

The polygons look like this (there are hundreds in the project), and you can see the points inside:

Skjermbilde 2023-12-11 130613Skjermbilde 2023-12-11 130638This is how I want it to look (the shape of the buffer is customized to the polygon): 

Skjermbilde 2023-12-11 130655I got some help help here previously: Buffer/expand point contained inside another polygon

But this method does not work on irregular polygons. It only works on squares.

8 replies

nielsgerrits
VIP
Forum|alt.badge.img+54

I think the printscreens are missing and essential, because I do not understand your question.


nielsgerrits wrote:

I think the printscreens are missing and essential, because I do not understand your question.

Fixed it now

 


dustin
Influencer
Forum|alt.badge.img+30
  • Influencer
  • December 11, 2023

I think we need a better explanation of the buffer. If the buffer should be 2500m, and the buffer should be square, how are you measuring the distance? Are you measuring 2500m to each corner of the square? If so, how should the square be oriented? The square buffer doesn't jive with the screenshots of your desired result, so it's a bit confusing.

 

That's one hurdle. The second hurdle I think will be a little easier once you have your buffers built. You would feed your polygons and buffers into the Clipper transformer. The polygons would be your Clipper, and the buffers would be the Clippee. You desired result would be output from the Inside port.


dustin wrote:

I think we need a better explanation of the buffer. If the buffer should be 2500m, and the buffer should be square, how are you measuring the distance? Are you measuring 2500m to each corner of the square? If so, how should the square be oriented? The square buffer doesn't jive with the screenshots of your desired result, so it's a bit confusing.

 

That's one hurdle. The second hurdle I think will be a little easier once you have your buffers built. You would feed your polygons and buffers into the Clipper transformer. The polygons would be your Clipper, and the buffers would be the Clippee. You desired result would be output from the Inside port.

My mistake. The shape of the buffer is not important. But it needs to be 2500 square meters. The shape is irrelevant as long it is within the polygon.


dustin
Influencer
Forum|alt.badge.img+30
  • Influencer
  • December 11, 2023
larsanders1997 wrote:

My mistake. The shape of the buffer is not important. But it needs to be 2500 square meters. The shape is irrelevant as long it is within the polygon.

If that's the case, your workflow would look something like this:

imageEDIT: Just saw where you said square meters as the total area. You would need to calculate the radius of the buffer based on 2500sq meters using A=πr^2. So the number you feed into the buffer would be roughly 28.284m.

 

But of course, that's the area before you clip the buffer to the polygons. Not sure you would be able to get a finalized area of 2500m^2, since you wouldn't know how much is outside the polygons.

 


larsanders1997 wrote:

My mistake. The shape of the buffer is not important. But it needs to be 2500 square meters. The shape is irrelevant as long it is within the polygon.

This is the conundrum. To adapt the buffer within the polygon. It is possible ref: the link I posted. But how we do it to all kinds of polygons, is not clear to me.

 

 


nampreetatsafe
Safer
Forum|alt.badge.img+12
larsanders1997 wrote:

My mistake. The shape of the buffer is not important. But it needs to be 2500 square meters. The shape is irrelevant as long it is within the polygon.

@larsanders1997​, this might be a tough one to do with FME alone. Throwing out one idea here. Building off of @dustin​'s ideas above, if the clipped buffers are less than 2500 sq. meters, create a process to iterate /loop them through the following:

  • Create a buffer with a Buffer Distance of [Current Buffer Distance] + [some increment]
  • Clip the buffer polygon to the boundary
  • Calculate the Area of the resulting buffer
  • If the polygon is less than 2500 sq. meters, repeat.

Let us know if you have any luck.


geomancer
Evangelist
Forum|alt.badge.img+47
  • Evangelist
  • December 14, 2023
larsanders1997 wrote:

My mistake. The shape of the buffer is not important. But it needs to be 2500 square meters. The shape is irrelevant as long it is within the polygon.

Maybe the MultiBufferer from FME Hub can be of help here.


Reply


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