0

I'm new to QGIS and I'm using it as a small part of a project I'm developing, so I need some help if possible. I have this layer:

enter image description here

What I need is to define a variable to serve as a perimeter and give some lat/long coordinates and define a circle around that point with perimeter = variable. I don't need this to all the points on the layer, just a few that I will then select. Also, the perimeter should be a constant. The main goal is to count the number of red/yellow/blue "points" within the range of each circle.

2 Answers2

1

First off, if you don't have a point layer already built with the geographic coordinates of your evaluation points, build it from a csv list. You then need to add a field in that layer with the variable that will serve as the radius value you need if it wasn't already in your csv list.

You can achieve what you want with two tools accessible from the vector menu. The first thing is to use Buffer, found in geoprocessing tools. In the distance parameters, you can use a data defined override and provide a field to control the radius. See here.

If you need only certain points counted according to their attributes, use select features by value from the main toolbar. You get a list of each field where you can type the value you are looking to select with. On the right, there is a drop down menu where you can set your query operator (equal to, contains, etc.). After executing the selection, run the count points in polygon tool, found in the analysis tools menu within the vector menu. Set your polygon and points layers, make sure you tick the Selected features only checkbox and then run the tool. It will output a new polygon layer with an additional field named NUMPOINTS (by default - you can rename the field in the tool) where the point count will be located. See here.

You'll need to repeat the process for each of your evaluated variables (once if you are only looking for african or european as your values). Then you can merge the attribute fields into one polygon layer.

Gabriel
  • 3,136
  • 13
  • 33
  • I've now done that. I had previously loaded a csv layer and the buffer created circles around every point of the layer. Now I have to load another layer with more points and calculate for each circle of the buffer the number of points within each circle according to a variable that is in the csv.

    I want something like (pseudo code): for each circle of buffer count number of points with x = y from layer1 and count number of points with x = y from layer2

    – Paulo Sergio Jun 22 '18 at 15:52
  • Do you need to do this programmatically or are the different values of your x variable low in count enough that you could just select by attributes and then run the count points in polygon tool while ticking the selected entities only checkbox? – Gabriel Jun 22 '18 at 16:06
  • I don't need to do it programmatically. And yes, they are low, maximum of 15 per zone. The layer has the format: field1 field2 field3 field4. field1 and field2 corresponde to lat and long field3 doesn't matter field4 has two different values: european or african What I want is to calculate for each circle of the buffer the number of european and african points. I don't know how to do it using the count points in polygon tool – Paulo Sergio Jun 22 '18 at 16:10
  • I edited the answer after I took a look at the buffer tool which has the ability to use a field to set distance.

    I'll edit again to make the steps easier to understand for the point count.

    – Gabriel Jun 22 '18 at 16:20
0

You're looking for "buffer" and "join attributes by location", both in the vector menu. Make sure that your data is in a utm-projection before buffering it, otherwise it will be hard to set a reasonable value for your buffer.

Erik
  • 16,269
  • 1
  • 24
  • 43