Convertir la capa de puntos en una cuadrícula ráster que muestra la frecuencia de puntos por celda usando QGIS

9

Tengo una capa de puntos que muestra la distribución de una especie.

¿Es posible en QGIS convertir esta capa de puntos en una cuadrícula ráster en la que el valor de cada celda se corresponde con la cantidad de puntos dentro de esa celda?

Hasta ahora, solo logré adjuntar valores de atributo a las celdas de la cuadrícula. Ya he agregado una columna en mi tabla de atributos que tiene el valor '1' para cada punto, con la esperanza de que haya una manera de usar una suma de atributos para cada celda de la cuadrícula.

Murphy
fuente
1
Solo una nota rápida sobre su lógica: si solo suma los valores de 1 para cada celda de la cuadrícula, es muy probable que esté sobreestimando la riqueza (si esto es lo que desea calcular) ya que este cálculo no verifica si una especie ya se ha agregado a una celda de cuadrícula.
Curlew
Tengo un patrón de distribución de especies, un punto por individuo observado. Quiero verificar la agregación y vincular la distribución de las especies al hábitat subyacente en SIG. Ahora, muchos puntos se encuentran arriba y muy cerca el uno del otro, por lo que para la visualización me gustaría 'simplificar' este patrón y usar una cuadrícula que muestre el número de individuos que se han observado por celda. Espero que esto lo explique un poco mejor.
Murphy

Respuestas:

10

Esto es un error, pero funciona, no he encontrado una manera de ir directamente de los puntos a la trama (¡pero espero que alguien dé una solución aquí!).

Comenzando con una cuadrícula de puntos (puntos aleatorios en el Serengeti desde la Vector|Research tools|Random pointsherramienta):

ingrese la descripción de la imagen aquí

Cree una cuadrícula poligonal de la misma extensión y tamaño de celda que el ráster que le gustaría tener (esto de Vector|Research tools|Vector grid):

ingrese la descripción de la imagen aquí

Uso Vector|Analysis tools|Points in polygon, usando la cuadrícula poligonal y la capa de puntos

ingrese la descripción de la imagen aquí

Esto le da una nueva cuadrícula (aquí codificada por color por el número de puntos en cada celda de polígono):

ingrese la descripción de la imagen aquí

Ahora use Raster|Conversion|Rasterizepara convertir esto en un ráster, usando el atributo PNTCNT para los valores de ráster y el mismo tamaño de celda que el elegido para la cuadrícula:

ingrese la descripción de la imagen aquí

... dando un ráster con valores según los puntos en cada celda:

ingrese la descripción de la imagen aquí

Simbamangu
fuente
2

La forma más fácil y directa:

  • Suponga que tiene una columna con un identificador de punto único (el nombre de la especie)
  • Divida su capa de puntos por este atributo (QGIS -> Gestión de datos -> Dividir)
  • Rasterice cada capa de puntos individual, por ejemplo, con la herramienta GDAL Rasterize o las herramientas SAGA o GRASS disponibles en Processing Toolbox. Asegúrese de utilizar el mismo tamaño de celda y la extensión resultante.
  • Simplemente resume todos los Rasterlayers generados. Por ejemplo con la función SAGA "Grids sum" o dentro de GRASS "r.sum". Ambas funciones también están disponibles en Processing Toolbox.

Para hacer esto automáticamente, le sugiero que escriba un script, un modelo de procesamiento o haga clic x veces en el procesamiento por lotes en la Caja de herramientas de procesamiento de QGIS. EDITAR: si es capaz de usar R, simplemente comience directamente desde aquí y adapte el código a sus necesidades (recorriendo puntos divididos).
O esperas un poco más. En mi tiempo libre, actualmente estoy en el proceso de escribir un nuevo complemento para QGIS (que trata con cálculos macroecológicos) y podría tener una función similar a la que necesita.

Zarapito
fuente
Creo que la pregunta se relaciona con una capa de una sola especie , que no puede (y no debe) dividirse para obtener una solución. OP necesita una solución de "suma de puntos en la celda ráster".
Simbamangu
Bueno, puede hacerlo sin dividir, pero esto requiere casi seguramente un bucle, respectivamente, una solución con script. Para una sola especie, su solución funciona, por supuesto, ya que simplemente muestra la densidad de ocurrencia agregada.
Curlew
-2

Encontré que esta falta de soporte en QGIS es muy molesta porque es un paso importante de geoprocesamiento que siempre necesito. Rasterizar a través de la red de pesca, como se sugirió anteriormente, es muy lento si tiene muchos puntos de datos (digamos 100.000) porque realiza una operación basada en vectores que consume su CPU. Además, la red es de gran tamaño en comparación con una elegante capa de trama.

GDAL tiene la funcionalidad para realizar esta operación en una cantidad mínima de tiempo de procesamiento, pero no se implementa en QGIS (desafortunadamente). Por el bien del medio ambiente y sus nervios, puede usar la función gdal, sin embargo, en la línea de comandos o en otros entornos de software. Prefiero usar R que tiene varios paquetes relacionados con GDAL. Se puede ver cómo hacerlo en I a al Rasterizar polígonos con la función "gdal_rasterize" en I .

joaoal
fuente