Tengo una capa de polígono con un valor de atributo adjunto que representa el recuento de individuos dentro de un polígono. Estoy usando QGIS 3.0.
Necesito visualizar los recuentos como una cuadrícula de puntos dentro de un polígono (es decir, 1 punto = 100 ranas, coloreado por especie). Los puntos no necesariamente necesitan ocupar un polígono completo, y preferiblemente deben dibujarse alrededor de un centroide con espaciado predefinido (es decir, 300 m), para que puedan representar una cuadrícula ordenada en una resolución específica.
La solución actual que encontré es usar "Puntos regulares", con el parámetro recuentos, para crear cuadrículas dentro de la extensión dibujada en un mapa, luego eliminar los puntos adicionales creados por el algoritmo (el algoritmo se redondea a una cuadrícula y puede obtener 20 puntos en lugar de 17 en entrada). Esto produce el resultado deseado, pero requiere dibujar la extensión del área para los puntos regulares para cada polígono, así como la entrada manual de atributos y la limpieza de los puntos creados. Además, como estoy ejecutando "Puntos regulares" con recuento especificado, en lugar de espaciado, cada polígono obtiene puntos espaciados de manera diferente.
En pocas palabras: puntos regulares (número definido de puntos, extensión dibujada) para cada polígono (lote)> Eliminar puntos adicionales> asignar valores de atributo a los puntos #
Alternativa (evita el espaciado irregular, pero requiere aún más manipulaciones):
Puntos regulares (espaciado definido, es decir, 300 m) en la extensión de la capa completa> Recortar a la extensión de los polígonos> Eliminar puntos adicionales en cada polígono hasta obtener el número deseado de puntos> asignar valores de atributo a los puntos.
El principal problema con mis soluciones es el procesamiento de polígono por polígono, lo que dificulta la actualización de los datos y el trabajo con un mayor número de polígonos.
Se hizo una pregunta análoga como Creación de un número de puntos definidos y separados regularmente dentro del polígono en QGIS , pero los detalles son diferentes.
fuente
Respuestas:
QGIS 3 viene con un nuevo método de desplazamiento en el renderizador de clúster llamado grid. Parece que esto es más o menos lo que necesitas. Simplemente cree el número de puntos deseados en el centroide de su polígono.
No conozco un método para generar los puntos solo con una herramienta GUI, pero un script de Python relativamente simple debería hacerlo.
Si quieres volverte loco, envuélvelo en un algoritmo de procesamiento personalizado.
fuente
Puede ser otra manera inspiradora por la respuesta de Sarath SRK:
Sin embargo, tendrás algo como esto
Utilice un modelador gráfico para crear un nuevo campo con el comando "@row_number"
Ejecute el modelo con una iteración en la capa de almacenamiento intermedio
Fusionar todas las capas nuevas
Elimine todo el punto con un campo ID_pt más grande que la suma de su campo ("Ranas" + "Gatos" + "Diplodocs")
fuente
Podrías usar generadores de geometría para esto.
fuente
Una solución podría ser crear una capa de puntos con puntos en el centroide de cada polígono. Entonces, por ejemplo, tienes en el centroide de Edmonton 25 puntos superpuestos: 5 con un atributo de rana, 20 puntos con cat y 0 con diplodocs.
Luego, utilizando el renderizador de desplazamiento de puntos con el método de Colocación establecido como cuadrícula, debería poder obtener el efecto.
La dificultad es crear la capa de puntos ...
fuente
¿Una alternativa muy simple podría ser utilizar el gráfico circular disponible en las propiedades de la capa? Los atributos y tamaños pueden ser dictados por una expresión.
fuente
Puede generar los puntos en una ruta en espiral a partir del centroide del polígono. La siguiente publicación de Stack Overflow tiene un código de Python para crear puntos equidistantes, pero no puedo probarlo en este momento dada mi falta de tiempo libre.
fuente
En tu caso,
fuente