# Buffering by percentage instead of distance?

473
8
05-07-2021 06:31 AM
New Contributor II

Pretty simple question. I have a shapefile of different-sized polygons, but I don't want to buffer them by a uniform distance. I want to reverse buffer them by a percentage. An example would be buffering each polygon by -50%.

I don't know if this is already a built-in option. Or do I need to calculate a field in my attribute table with this value, and then set the buffer option to "field" instead of by "distance"?

Thoughts?

Tags (4)
8 Replies
MVP Esteemed Contributor

50% of what?

can't wait to retire....
New Contributor II

50% of the existing polygon's area. So instead of buffering by a constant distance (eg. 50 meters), you would buffer by a percentage (eg. each polygon would get 50% bigger). so the distance would obviously change depending each polygon's existing area size).

MVP Esteemed Contributor

You are mixing apples and oranges here:  a buffer distance is a linear distance measurement:  " I want to create a buffer around my polygons that extends 25 feet from the edge.

Area of a polygon is in square units of measurement:  " I have a polygon that is 500 square feet:  50% of 500 square feet is 250 square feet".

What is the equation to enlarge an irregularly shaped polygon such that the original shape is maintained?  I'm not smart enough to figure that out.  Maybe somebody else can...

@DanPatterson : you are a way better mathematician than I'll ever hope to be...

can't wait to retire....
New Contributor II

All I'm asking is this - when you open the Buffer geoprocessing tool, you have to input a linear unit (meters, feet, yards, whatever) to buffer all of your polygons by. But I don't want to buffer all my polygons by a constant value. I want them buffered by a percentage. Let's say 10%. So this way, in my output shapefile, a polygon that was originally 50sq meters will now be 55sq meters. While a polygon that was originally 1,000sq meters will now be 1,100sq meters. One is buffered by 5 meters and the other is buffered by 100 meters.

So is there an option to do this in the Buffer tool?

Like I said, there's an option to buffer by field.  So I'm guessing  I have to run that calculation out into field attributes, and then buffer by that field.

MVP Honored Contributor

@JoeBorgione ... I did a blog post (somewhere) of buffering.  I have a toolset that does an offset buffer (aka, no rounded corners) when I wanted to just increase the size of a polygon by a percentage.

If you want the rounded corners, you need to iterate through buffer increments until you narrow down the buffer to your acceptable tolerance.

I never pursued it much or put it into my Free Tools toolbox since the "market" was pretty well limit3d to educational esoterica.

... sort of retired...
MVP Esteemed Contributor