18 votos

¿Cuál es la mejor manera de producir un mapa de densidad de la ponderado de los puntos en QGIS?

Realmente me gustaría repetir la funcionalidad de ArcGIS Kernel de Densidad de la herramienta - ¿cómo podría hacer eso?

Me gustaría límite de respuestas a la fácil-a-instale libre y software de código abierto – es decir, de QGIS se instala fácilmente con la HIERBA en todas las plataformas, de modo que QGIS+HIERBA estaría bien, pero SAGA no (por desgracia, ya que tiene lo que puede ser la herramienta ideal).

Estoy tratando de producir mapas de densidad de la fauna silvestre a través de las áreas protegidas en QGIS. El mapa de densidad en el siguiente ejemplo se produjo en ArcGIS a partir de observaciones puntuales de la vida silvestre, con recuentos de tamaño de grupo (un campo en el archivo de vector) se utiliza para el peso que la densidad de cada celda de la cuadrícula en la Densidad de Kernel (SpatialAnalyst) de la herramienta, con un escogido radio de búsqueda y celda de la cuadrícula de tamaño:

Wildlife density in Kafue National Park with 5x5km grid cells and 7.5 km radius kernel density

En una anterior pregunta sobre la densidad, se sugirió el uso de la HIERBA v. kernel herramienta para imitar el ArcGIS Kernel de Densidad de la herramienta, pero v. kernel no hacer el mismo trabajo. Después de mirar el manual y (con éxito) la elaboración de un mapa de densidad, parece que el v. kernel función sólo funciona con la densidad de puntos, y no hay ninguna oportunidad para dar a una variable para cada punto (tales como recuentos) a el peso de cada punto.

ACTUALIZACIÓN

Parece ser que hay varios *.surf.* herramientas en la HIERBA que puede ayudar a crear una superficie de densidad - y estos no aceptar una columna de ponderación o valor de z, o se realizan en los rásteres. @underdark sugirió v. surf.primera - y la 'zcolumn' sería mi peso (recuento) de la variable - pero no puedo averiguar cómo pedir la herramienta para crear un cierto tamaño de la cuadrícula o el uso de un cierto radio.

Sugerencias sobre cómo utilizar v. surf.primero, o cualquier otro método?


Los datos de muestra

x,y,count
431250,8707500,0
418750,8707500,5
413750,8707500,3
411250,8707500,1
408750,8685000,0
411250,8685000,0
416250,8685000,0
416250,8682500,6
411250,8682500,3
418750,8680000,0
433750,8677500,3
421250,8677500,0
423750,8675000,1
431250,8672500,0
428750,8672500,2
426250,8672500,2
423750,8670000,0

11voto

Raoul Puntos 1113

Como usted pidió una mayor orientación sobre v. surf.primero, aquí están mis entradas

En primer lugar, sobre el tamaño de la cuadrícula - puedes utilizar el Plugin -> HIERBA -> Editar Actual de la HIERBA de la región y establezca la resolución de salida. A su salida de la v. de surf.primero se tiene que la resolución.

Para la radio, la 'tensión', parece ser el parámetro. No soy experto en este algoritmo, pero la lectura del manual, este parece ser el tbi

"... De alta tensión "aumenta las distancias entre los puntos" y reduce el rango de impacto de cada punto, de baja tensión "disminuye la la distancia" y los puntos de influencia de cada uno de los otros de más largo alcance).."

Así que usted podría utilizar el parámetro tensión más o menos como se podría utilizar el parámetro radio.

A partir de datos de ejemplo, el resultado de la v. de surf.primero se ve como el de abajo, y parece razonable dado que se está usando la cuenta como pesos para la interpolación

enter image description here

8voto

cjstehno Puntos 131

De acuerdo a su página de manual, la HIERBA de comandos de r.resamp.filtro va a hacer para los rásteres de representación de datos de punto exactamente lo ArcGIS hará por punto de capas: el uso de la filter=box opción para un "simple" de trama y el uso de la filter=gauss opción para el otro ArcGIS kernel. El uso de la -n bandera para evitar la propagación de valores nulos.


Tenga en cuenta que el kernel de estimaciones de densidad (también conocido como "mapas de calor") son no interpolaciones de los datos. El valor de KDE en un lugar x calcula la cantidad de un valor de "Z" por unidad de área, cerca de x. (La radio o el "ancho de banda" cuantifica lo "cerca" significa.) Los valores de Z no necesita ser definido en cada posible ubicación en el mapa. Por ejemplo, Z puede representar la presencia de algo, por ejemplo una persona, en cuyo caso el KDE da la densidad de la población. Ni los valores de Z necesidad de variar de forma continua en el mapa. Para la interpolación, se supone que Z está definida en todos los lugares y que los datos son observaciones de los valores de Z en los puntos especificados. El interpolador intenta predecir el observado valores de Z en todos los otros puntos. Esto tendría sentido cuando Z es, digamos, la temperatura o la presión, pero generalmente es absurdo cuando Z registros de la presencia de algo o cuando los datos son de un censo completo. (En el último caso, contemplar lo que una carretera mapa de densidad de una región se puede decir y cómo se podría hacer que la sensación de "interpolación" carreteras a través de la no-camino de las áreas).

3voto

Saqlain Puntos 133

La SAGA del módulo de 'Estimación de Densidad de Kernel" es lo que usted está buscando.

Instalar SAGA Módulo de interfaz de QGIS (en el menú: Plugins --> Fetch Python plugins..) y usar el módulo. Buena suerte!

1voto

Paul G Puntos 1615

Si usted acepta a hacer un poco de programación java fuera de qgis, usted podría simplemente utilizar este mapa de densidad generador de la biblioteca.

Utilizando el constructor HeatMapBuilder(int w, int h, int[][] pts, int[] weights), es posible dar un peso para cada uno de los puntos que usted necesita. La imagen de salida puede ser recuperada con la getImage() método y se guarda en su disco con un ImageIO.write("mymap.png").

Aquí es un ejemplo de la salida:

heat map with opencarto java library

Es posible cambiar la intensidad de suavizado y la paleta de colores.

0voto

o2genum Puntos 152

Una muy simplista método con GRASS GIS que es más cercana a la Densidad de puntos en ArcMap de Densidad de Kernel:

  1. Importar los puntos de un mapa raster con r.in.xyz utilizando el método=suma a una determinada resolución de la trama (conjunto con g.region).

  2. Uso r.neighbors para suavizar el mapa con el método de=promedio (que es el predeterminado) y use la opción de tamaño para ajustar el radio de búsqueda.

(No tengo acceso a la HIERBA en el momento, así que en realidad no se trate de esto!)

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X