I have a shapefile that has lat/long points data of specific facilities in the US. This data is joined with census blocks group population data because eventually I want to calculate how many people live within a 1 mile and 3 mile radius of each facility.

The issue I am having is I do not want just a uniform point for each facility. I want each point to be represented by how many acres the facility is (I have acreage data in the table).

Now in QGIS, I can arrange the size of each point based on acreage, but its not geographically accurate. It just shows that small acre plots are 1 pixel in width, and big acre lots are >1 pixel in width. (I did this by using the "Assistant | Symbol Size" tool in the "Symbols" tab of "Layer Properties"

How can I get each point to physically be the acre size, and then create the 1 and 3 mile buffers around that? So if there is a plot of land that is 25 acres, I want a circle that is exactly 25 acres in size. THEN place a 1 mile and 3 mile boundary on that.

Some photos to help explain what is going on.

Here, the points are all uniform (with the 1 mile boundary in purple, 3 mile boundary in blue), but I would like them to be based on the actual acreage. Like if the plot of land was 25 acres, I want a circle that is exactly 25 acres in size.

enter image description here

I can adjust the points like this, but its not physically and geographically real to the size of the acre. Now I understand that maybe the boundary of these plots of land are not uniformly circular, but that is an assumption I am making to make the analysis possible.

enter image description here

My methodology. need help with step 2

enter image description here

I am using QGIS.


enter image description here

1 Answer 1


You could use the Variable Distance Buffer tool, and reverse-compute the radius to be used for such buffers using the acres.

  1. Add a new attribute to your table for the radiuses : R = sqrt(A / pi)
  2. Run the Variable Distance Buffer tool, with the radiuses as input. You should perhaps use a big enough number of segments to have shapes that are close enough to circles.
  3. Run the regular Buffer tool twice more to generate those 1 and 3 miles buffer.

Although, be careful with your units, and first make sure that your points aren't in a geodetic system like WGS84. If I understand correctly, they currently are just lat/long objects ? You might want to convert them first, and work with a local CRS (otherwise your parameters might be interpreted as degrees, and nobody wants a buffer that's some degrees wide in radius...)

  • Thanks GHRF. I spent some time working out your solution but still get stuck on a few things. I installed MMQGIS as my main method of creating buffers. What units does your new radius equation result in? I went ahead and made a new attribute to my table for sq miles (Sqmi = Acres/640), but when I create the buffer I get left with the attached image. The data should be much more scaled down, but its instead as if one site is taking up 3/4 of the county, haha. I tried reprojecting away from WGS84 but not sure what to project to. Apr 30, 2018 at 15:35
  • The radius returned by the expression will be in a similar unit to the input Area's unit. If your area is square miles, you will get miles. If it's square meters you'll get square meters. The fact that the buffers end up taking up 3/4th of a county could indicate either an issue with the unit or the projection system. Since you're working with data in the US. Depending on where your data is (although it seems like you're covering the entirety of the US) you could look into UTM Zones, or NAD83
    – GHRF
    May 4, 2018 at 8:51
  • Although, as a side note, UTM and NAD83 both use meters as their units, so you'll have to convert your data before using the buffer tool.
    – GHRF
    May 4, 2018 at 8:58

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.