Buffer polyline based on area (acres/hectares)

2673
3
Jump to solution
02-21-2012 09:39 AM
JeremyOlynik
New Contributor II
I have a polyline (or polygon if necessary) that I would like to buffer in one direction based on a set area, rather than distance.  The idea is to model the potential spatial extent of an aggregate quarry based on current rates of expansion into the future.  I would like to figure out a way to do this with vector data but I do have a spatial analyst extension - which I have a feeling I might have to use in this case.  The quarry can only expand in one direction.  Any ideas on how I can tackle this problem?

Thanks for any assistance,

Jeremy
Tags (2)
0 Kudos
1 Solution

Accepted Solutions
HardolphWasteneys
Occasional Contributor III
Jeremy,

If I read your requirements correctly, you have a set annual allowable extraction from the aggegate quarry that is proportional to the surface area and you want to know the WIDTH of a series of cuts.

This means you want to calculate the width of each annual cut by dividing the SET AREA by the length of the extraction face which will be the SHAPE_Leng field in your feature class (or shapefile; run Calculate Geometry in a new field to get this).   You can do this by adding the two fields (AREA and WIDTH) to the attribute table and then using Field Calculator to fill in the Width.  You could use buffers, but it would be simpler to just use the COPY_PARALLEL command in the Editor menu and make the line on one side only and input the width calculated in the attribute table (unless perhaps you have ArcINFO and the buffer one side only option works, but then you'd have to figure out the length of the new face anyway).

If the pit is expanding on a face of constant length you could just keep selecting the new face and running copy parallel with the same inputs (or do a multiple ring buffer with a constant linearly increasing series of distances).  If the face is expanding outwards radially you would have to recalculate the next width by selecting the new face line and run Field Calculator (with just that record shown) to find the new width and then revise the next COPY_PARALLEL input.  If some boundary conditions come along then just trim the new face line before calculating the next width.

Sorry I can't see a one shot approach to this (unless the face is straight and always the same length), but this is simple and works.

Hardolph

View solution in original post

0 Kudos
3 Replies
TheodorePeters
New Contributor III
Since I know of no tool that buffers by area, I would create a multiple ring buffer (based on best guess estimates), clip the buffers by your bounding requirements, then calculate area within those rings to come close to your expected outcome. You can manipulate the buffer as described in the tool help section.

Theodore
0 Kudos
HardolphWasteneys
Occasional Contributor III
Jeremy,

If I read your requirements correctly, you have a set annual allowable extraction from the aggegate quarry that is proportional to the surface area and you want to know the WIDTH of a series of cuts.

This means you want to calculate the width of each annual cut by dividing the SET AREA by the length of the extraction face which will be the SHAPE_Leng field in your feature class (or shapefile; run Calculate Geometry in a new field to get this).   You can do this by adding the two fields (AREA and WIDTH) to the attribute table and then using Field Calculator to fill in the Width.  You could use buffers, but it would be simpler to just use the COPY_PARALLEL command in the Editor menu and make the line on one side only and input the width calculated in the attribute table (unless perhaps you have ArcINFO and the buffer one side only option works, but then you'd have to figure out the length of the new face anyway).

If the pit is expanding on a face of constant length you could just keep selecting the new face and running copy parallel with the same inputs (or do a multiple ring buffer with a constant linearly increasing series of distances).  If the face is expanding outwards radially you would have to recalculate the next width by selecting the new face line and run Field Calculator (with just that record shown) to find the new width and then revise the next COPY_PARALLEL input.  If some boundary conditions come along then just trim the new face line before calculating the next width.

Sorry I can't see a one shot approach to this (unless the face is straight and always the same length), but this is simple and works.

Hardolph
0 Kudos
JeremyOlynik
New Contributor II
Thanks for the replies Hardolf/Theodore,

I ended up assuming that the quarry face was a straight line and then used the known expansion area (acres) to determine what distance to buffer each successive line radially.  Because I didn't need to be perfect I grouped together 3 to 4 years worth of expansion in each buffer set as the difference between their ideal buffers in linear distance was < 1ft.  As you mentioned I would then trim the ends and recalculate buffers.  A little time consuming but it worked in this instance!
0 Kudos