Processing math: 100%

8 votos

¿Cómo construir una consulta/expresión para seleccionar puntos específicos dentro de un buffer? (en QGIS)

Tengo una capa de puntos en QGIS. Cada punto representa un árbol y cada árbol tiene información sobre su altura como atributo. Me gustaría construir una consulta/expresión para seleccionar todos aquellos árboles que tienen otro árbol de más de 7 metros de altura dentro de su buffer de 20 metros (20 metros de radio).

Conseguí hacerlo "manualmente" creando un buffer de 20 metros alrededor de todos los árboles de más de 7 metros (después de la selección de los árboles de más de 7 metros) y luego seleccioné los que estaban dentro del buffer pero me preguntaba si es posible con una consulta/expresión. (tal vez con uno un poco más complejo)

Lamentablemente no tengo PostGIS así que esto debe hacerse con Seleccionar por expresión ou Generador de consultas si es posible.

(También sería útil saber si es simplemente imposible)

0 votos

He publicado un respuesta anteriormente sobre un problema similar (bueno, no es exactamente lo mismo pero se puede modificar fácilmente para adaptarlo a su condición). Supongo que es posible con el constructor de consultas de QGIS, sin embargo no estoy muy acostumbrado a ello. Sin usar PostGIS puedes fácilmente poner tus datos en formato Spatialite (puedes crear una DB de memoria sólo para obtener el resultado de este cálculo) y hacer peticiones espacialmente habilitadas a través del gestor de DB de QGIS. Puedo publicar una consulta para SpatiaLite si usted está bien para cargar sus datos de esta manera.

11voto

Jay Bazuzi Puntos 194

Esto se puede hacer utilizando el Modelador Gráfico de Procesamiento para configurar una cadena personalizada. Aquí hay una foto:

enter image description here

De izquierda a derecha tenemos tres entradas - la capa del árbol (un objeto de entrada de capa vectorial), el tamaño del buffer (una entrada numérica) y la altura del árbol (una entrada de cadena). La capa de árboles se selecciona por su atributo de altura. Los árboles seleccionados se almacenan en el buffer por el valor del atributo buffer_width entrada - esto se guarda como una capa treebuff (elimine esa salida si no la necesita, yo sólo la usé para comprobarlo). A continuación, el proceso de selección por ubicación establece la selección de los árboles dentro de la región de la memoria intermedia (establecer la primera entrada a los árboles, la segunda a la memoria intermedia, y el predicado a "contiene")

Este es el resultado:

enter image description here

Los árboles grandes se dibujan grandes, y se puede ver la zona de amortiguación y la selección ahora incluye los árboles grandes y sus vecinos dentro del amortiguador.

0 votos

Puedes terminar el proceso borrando el treebuff capa una vez que se ha utilizado para producir inrange capa. Por cierto, ¿podría ser posible operar sólo una selección de árboles coincidentes dentro del tree ya que la pregunta menciona una selección de árboles y no una nueva capa que contenga árboles coincidentes?

0 votos

Si no quieres la capa de amortiguación, puedes eliminarla de la salida en el modelo. Yo lo puse como una salida extra para asegurarme de que la cosa estaba haciendo lo que esperaba. Buen punto sobre la selección sin embargo... Hay un operador "Seleccionar por..." que puede hacer intersecciones... Si tuviera una hora libre...

0 votos

@wiltomap encontró una hora :) ¡el modelo ahora devuelve una selección en lugar de una nueva capa!

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