2

I am using QGIS 3.1. I am wondering if there is a way to count points in polygons but by using both the weight and class.

For example, I have distributions of a number of species, each with a unique 'score'. I want to count each occurrence of a unique species (class - species), then weight each occurrence by its score (weight - score) in a grid.

Doing each of these is very simple using the count points in polygon feature but I can't do both at once.

0

1 Answer 1

1

You can achieve this using a virtual layer.

It would join the grid layer to the point layer based on spatial intersection, then sum the weights and divide by the count for each grid polygon.

Go to the menu Layer > Add Layer > Add/Edit Virtual Layer... and enter the following query. Replace the layer name for yours

select g.*, sum(p.weight) / count(*) from grid_layer g join points p on st_intersects(p.geometry,g.geometry) where p.class = 'species_abc' group by g.id 
2
  • I think it should be a double GROUP BY g.id, p.class, therefore each unique point class will be distinguished within a unique polygon Commented Jun 22, 2020 at 11:49
  • @NiBau To use other layers, change from grid_layer g join points p ==> from my_grid_layer g join my_point_layer p. If you have a different goal, feel free to ask a new question with enough details! Commented Jun 22, 2020 at 12:08

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.