lunes, 19 de junio de 2017

Ráster de atenuación de ruido obtenido mediante PyQGIS para una fuente lineal

En el post anterior se consideró la obtención de un ráster de atenuación de ruido obtenido mediante PyQGIS para una fuente puntual. En éste se tomará en cuenta una fuente lineal de ruido; tal como corresponde a una autopista con mucho tráfico donde los valores pueden ser tan altos como de 90 dBA (Id1) a una distancia d1 de sólo 1 m.

domingo, 18 de junio de 2017

Ráster de atenuación de ruido obtenido mediante PyQGIS para una fuente puntual

La atenuación del ruido, tal como ya se ha señalado con anterioridad, depende de si la fuente emisora es puntual o lineal. En ausencia de obstáculos, se refiere que cada vez que se dobla la distancia con relación a una fuente puntual el sonido se atenua en 6 dBA (decibelios), mientras que en el segundo caso, cada vez que se dobla la distancia con relación a una fuente lineal (por ejemplo, una autopista con mucho tráfico automotor) la atenuación del sonido será sólo de 3 dBA. Generalmente, los reportes de Tabla para la intensidad del sónido (Id1) producida por una determinada fuente puntual se hacen con base a una distancia fija que denominaremos d1. Por tanto, para una taladradora de construcción, es común que se reporte que produce una intensidad de 110 dBA (Id1) a una distancia d1 de 10 m.

miércoles, 14 de junio de 2017

Obtener el valor de un atributo de una capa vectorial mediante un click del ratón con PyQGIS

Esto puede ser realizado mediante la clase QgsMapToolEmitPoint la cual permite generar, al inicio, las coordenadas de un punto a cada click del ratón en la Map View de QGIS. Estas coordenadas se emplean para generar un QgsPoint y comprobar posteriormente si está dentro o fuera de algún rasgo del vectorial. Si está dentro del feature, se recupera su id para acceder entonces al value del atributo empleando el nombre del campo correspondiente. El código completo se tiene a continuación:

viernes, 26 de mayo de 2017

Leer el valor de un ráster y cambiarlo según condiciones dadas mediante PyQGIS

El código que se presenta a continuación lee todos los valores de un ráster mediante un objeto de la clase QgsRasterBlock y los cambia según condiciones establecidas para imprimirlos en un nuevo ráster. Para facilitar la ubicación de tales valores, complementariamente, se crean memory layers de puntos, según cada condición, y se colocan en el medio de las celdas del ráster.

miércoles, 24 de mayo de 2017

Dividiendo círculos en 12 secciones mediante PyQGIS

Para dividir un círculo en 12 doce secciones se puede recurrir a la obtención de un buffer con 12 lados, de un vectorial de punto, para luego producir cada una de las divisiones empleando las coordenadas de los puntos exteriores y las de su centroide (este último común a todas ellas). Como la visualización de la capa resultante no es enteramente circular, paralelamente mediante el método buffer de QgsGeometry, se produce un buffer algo menor para que al ser intersectado con cada rasgo 1/12 se obtenga el efecto deseado.

lunes, 15 de mayo de 2017

Instalar fiona y geopandas en un sistema GNU/Debian estable recien instalado

Recientemente, me vi en la necesidad de instalar un nuevo sistema GNU/Debian estable (Debian 8) porque la actualización de su predecesor transcurrió con un corte de energía eléctrica y los daños fueron irrecuperables. Posteriormente, cuando en consola (como superusuario) me dispuse a instalar fiona y geopandas con easy_install, el cual se encuentra disponible en el paquete setuptools de Debian, se produjo un error inesperado. Es de hacer notar que el único paquete SIG que había instalado hasta el momento era QGIS a través de su repositorio respectivo.

jueves, 30 de marzo de 2017

Contar el número de celdas de cada tipo por bloque en QGIS

En una pregunta de gis.stackexchange.com se consideró la forma de contar el número de celdas de cada tipo por bloque; pero referido al software ArcGis. Obviamente, una manera de hacer esto es con código y para ello se pueden usar las prestaciones del módulo python de GDAL o las clases de PyQGIS. Sin embargo, lo que me llamó la atención fue la ingeniosa solución aritmética de esta respuesta.

miércoles, 29 de marzo de 2017

Interpolación de colores con PyQGIS

La interpolación de colores es un aspecto importante en la simbolización de capas vectoriales y raster porque permite visualizar rasgos (features) o píxeles según un color asignado a la clase a la que pertenecen. El método de interpolación más sencillo que existe es el lineal, sin embargo, para rampas con sólo dos colores, tiene la dificultad (sobre todo para ráster) de establecer buenas gradaciones entre ambos. No obstante, esto se puede mitigar con la incorporación de un color intermedio y así mejorar la gradación.

sábado, 25 de marzo de 2017

Corrigiendo geometrías con PyQGIS: segunda parte

En el post anterior se consideró la corrección de una geometría con problemas en el sentido de que no se podía generar el poligono correspondiente a partir de los rasgos de línea. Se determinó la existencia de varios gaps que fueron corregidos mediante v.clean de la Processing Tool Box. Sin embargo, esto no era la causa de los problemas.

miércoles, 22 de marzo de 2017

Corrigiendo geometrías con PyQGIS: primera parte

En un post anterior se escribió acerca de la validación y corrección de geometrías y de este link se puede bajar un shapefile de cierta zona de Malasia el cual no permite convertirlo adecuadamente en el polígono esperado a pesar de no presentar, aparentemente, problemas de geometría. Sin embargo, de manera subyacente, presenta muchas inconsistencias.

viernes, 17 de marzo de 2017

Validando y corrigiendo geometrías con PyQGIS y plugin Processing LWGEOM Provider en GNU/Linux Debian

La validación de las geometrías es fácilmente realizable en PyQGIS con el método 'isGeosValid' de QgsGeometry. Sin embargo, la corrección una vez detectados los problemas no es tan directa porque los procedimientos disponibles en Processing a veces no funcionan. Un método que es prácticamente infalible es ST_MakeValid de PostGis; pero cuenta con la necesidad de que hay que tener instalado PostgreSQL+PostGis en el sistema.

jueves, 16 de marzo de 2017

Selección de features de puntos con distancia mínima a features tipo polígono en PyQGIS

Estos pueden ser seleccionados mediante la función 'distance' de QgsGeometry para las sucesivas interacciones entre rasgos en un double loop. La condición de distancia mínima se incluye en el loop (en este caso 10000 m = 10 km) lo que sirve para poblar las listas con las distancias y los ids (o los nombres) de los rasgos seleccionados.

miércoles, 15 de marzo de 2017

Cómo colocar puntos a lo largo de una línea usando una lista de distancias con PyQGIS

Existe un procedimiento en processing (qgis:createpointsalonglines) que permite realizar la tarea y, posiblemente, se pueda programar para diferentes separaciones. No obstante, a continuación, expondré un código muy sencillo que emplea PyQGIS. La base del mismo es el método 'interpolate' de QgsGeometry. Se usa para generar puntos irregularmente espaciados sobre una línea con base en una lista de separaciones entre los puntos. Por tanto, las distancias se determinan como suma de las respectivas separaciones.

martes, 14 de marzo de 2017

Cómo imprimir un punto a cada click del ratón sobre el Map Canvas con PyQGIS

La impresión de un punto a cada click del ráton es una acción muy útil que puede ser aprovechada, por ejemplo, para conformar un vectorial de puntos con el plugin QuickWKT, determinar los índices de (fila, columna) de un ráster o posicionar el cursor en una determinada posición del Map Canvas. Emplea objetos y métodos de la clase QgsMapToolEmitPoint para conectar a una función que permite desplegar las coordenadas de tales puntos en unidades de mapa, coordenadas de Map Canvas o coordenadas globales.

domingo, 12 de marzo de 2017

Cómo copiar a una columna el nombre del color para un vectorial con Graduated Symbol Renderer en PyQGIS

En esta pregunta de gis.stackexchange.com se indaga acerca de cómo guardar el color de un rasgo en un campo de la tabla de atributos para un vectorial que ha sido clasificado con un renderizado "Graduated Symbol". La razón de ésta se debe a que el script empleado directamente de otra pregunta no funciona porque es válido para un Categorized Symbol Renderer.

sábado, 11 de marzo de 2017

Uso de processing gdalogr:cliprasterbymasklayer con PyQGIS

Cortar (clip) un ráster por máscara (vectorial tipo polígono) es otra de las opciones también disponibles en processing a través del método gdalogr:cliprasterbymasklayer. Sin embargo, no produce una capa perfectamente alineada con el ráster base; algo que posteriormente habría que solucionar en el parámetro 'EXTRA'.

jueves, 9 de marzo de 2017

Uso de processing 'grass:r.lake.coords' con PyQGIS

El algoritmo de processing 'grass:r.lake.coords' permite generar el espejo de agua de un lago a partir de un ráster dem utilizando principalmente como parámetros de entrada la cota de llenado y las coordenadas de un punto dentro del referido espejo de agua. Para que la ejecución del algoritmo tenga sentido es necesario que el ráster dem incluya un relieve encajante, es decir, que evite que el agua se "derrame" y abarque toda la superficie del ráster.

miércoles, 8 de marzo de 2017

Determinación del rasgo central (feature) con base en la suma de distancias en PyQGIS

En el post anterior se consideró un algoritmo que permite reducir el tiempo de cómputo de la suma de distancias porque las realiza sólo en la porción triangular superior de la matriz de distancias. En este post el referido algoritmo se incluye en un codigo que permite determinar el feature central para la capa activa. Se ha escogido una capa de puntos con 700 rasgos; tal como se observa a continuación:

martes, 7 de marzo de 2017

Suma de distancias en matriz triangular de distancias con Python

La suma de distancias entre rasgos es un elemento que puede ser usado para establecer el rasgo central de una capa porque es la que presenta el valor mínimo. En los SIGs estas distancias generalmente se determinan, por defecto, para capas tipo punto; aunque cualquier geometría es admisible. Sin embargo, cuando el número de features es muy elevado, el tiempo de computo de las distancias se incrementa considerablemente.

lunes, 6 de marzo de 2017

Usando processing gdalogr:rastercalculator para determinar NDVI con PyQGIS

El empleo de cocientes o índices para identificar masas vegetales tiene su base en que una masa vegetal en óptimas condiciones posee una firma espectral que se caracteriza, en especial, por un claro contraste entre la banda del rojo (0.6 a 0.7 µm) y el infrarrojo cercano (0.7 a 1.1 µm). Esto se debe a que la mayor parte de la radiación solar recibida por la planta en el visible es absorbida por los pigmentos de las hojas y éstos apenas afectan a la radiación recibida en el infrarrojo cercano. En el caso del NDVI (Indice de Vegetación de Diferencias Normalizadas; por sus siglas en inglés), éste se determina dividiendo la diferencia de la banda infrarroja (NIR) menos la roja (RED) entre la suma de ambas (NIR+RED); expresadas en términos de reflectividad.

domingo, 5 de marzo de 2017

Algoritmo de Ramer–Douglas–Peucker con PyQGIS

El algoritmo de Ramer–Douglas–Peucker (RDP)1, 2 permite reducir el número de puntos utilizados en la aproximación de una curva. Se fundamenta en la búsqueda de puntos críticos a partir de una tolerancia lineal. La primera línea base corresponde al primer (anclaje) y último punto (flotante) de la línea original. Luego se calculan las distancias perpendiculares de todos los puntos intermedios. Si ninguna de estas distancias es mayor a la tolerancia sólo quedarán retenidos los puntos inicial y final de la línea. Sí se supera la tolerancia el punto con mayor distancia será retenido como punto crítico subdividiendo la línea original en dos secciones. En cada una se repite el proceso de manera independiente y así, sucesivamente, hasta que no haga falta efectuar subdivisión alguna de las líneas.

viernes, 3 de marzo de 2017

Cambiando la capa activa en una Combo Box (PyQGIS)

Aunque existe un método directo y automático para seleccionar capas en la programación con PyQGIS, mediante el uso de un objeto QgsMapLayerComboBox, también es útil conocer cómo puede realizarse ésto empleando un objeto Qt representado por una QComboBox.

martes, 28 de febrero de 2017

Usando Processing qgis:creategrid con PyQGIS

En este post se van a probar diferentes opciones correspondientes a la creacción de retículas mediante el método 'creategrid' de QGIS Processing. Para ello se va usar como base para la obtención de la extensión un ráster que no necesita estar cargado en la Map View de QGIS porque la referencia al objeto se obtiene a partir de una URI (uniform resource identifier) mediante el método 'getObjectFromUri' de processing.

domingo, 26 de febrero de 2017

Estadística zonal con rasgos que se solapan usando PyQGIS

Para determinar la estadística zonal en un vectorial cuyos rasgos se solapan sobre un ráster, se pueden usar los métodos 'unary_union' y 'polygonize' del módulo 'shapely' de Python. El uso combinado de estos métodos permite individualizar las zonas solapadas y facilitar el cálculo de las estadísticas. Para probar esta aproximación se usaron el shapefile y el ráster que se viasualizan en la imagen siguiente:

Graphic Modeler en QGIS para determinar cuantiles y reclasificar un ráster con base en ellos

El Graphic Modeler de QGIS permite crear modelos complejos combinando los algoritmos que ya se encuentran en la Processing Toolbox. Este presenta un Canvas hacia donde la estructura del modelo y el flujo de trabajo puede añadirse según los 9 parámetros de entrada y los algoritmos que se encuentran en la parte izquierda del Canvas. Los elementos de entrada y los algoritmos se añaden con doble click y los primeros se nombran de la manera adecuada para que al usarse dentro de estos últimos se créen los enlaces correspondientes dentro del esquema.

viernes, 24 de febrero de 2017

Processing taudem:peukerdouglas en GNU/Linux Debian

La instalación y ejecución de algoritmos TauDEM en Windows fue considerada en un post anterior. En Linux, la instalación puede ser automatizada utilizando el script obtenido de esta página. A pesar de que el nombre del script sugiera que sólo puede instalarse en Ubuntu, si miran dentro del script verán que fue desarrollado inicialmente para Debian y es de validez universal para cualquier sistema derivado de Debian.

jueves, 23 de febrero de 2017

Buffering pixels en un array de python

En esta pregunta de gis.stackexchange se indaga sobre la posibilidad de un algoritmo que permita producir un anillo de ceros (buffer) alrededor de cada cero en un ráster binario (values 0 y 1). Una vía posible para hacer esto es generar todas las tuplas de índices para los cuales se desean los ceros, almacenarlos en una lista (sin repetición) y luego usar esta para cambiar los unos por ceros en una matriz con values 1 generada con la misma dimensión del array original.

martes, 21 de febrero de 2017

Processing taudem:d8flowdirections para determinar mapas de pendiente y dirección de flujo

TauDEM (Terrain Analysis Using Digital Elevation Models) es una suite de herramientas para Modelos de Elevación Digital (DEM por sus siglas en inglés) que permite la extracción y análisis de información hidrólogica de la topografía que viene representada por el DEM. A pesar de que viene supuestamente disponible para ser usada directamente en Processing de QGIS, lo cierto es que debe ser instalada previamente, habilitada en las opciones de Processing y establecidas las rutas correspondientes a las herramientas y sus dependencias.

lunes, 20 de febrero de 2017

Rotación de vectoriales con processing grass:v.transform en PyQGIS

El comando grass:v.transform de processing permite, mediante una transformación afin, realizar translaciones y rotaciones de archivos vectoriales; independientemente de su tipo y número de rasgos. Las translaciones pueden implementarse de una manera directa pero las rotaciones involucran un grado de complejidad adicional. Ello se debe a que las rotaciones se realizan con relación al eje (0,0) y para implementarlas con relación a otro eje (por ejemplo el centroide de un vectorial) es necesario un cambio del sistema vectorial de referencia.

sábado, 18 de febrero de 2017

Usando grass:v.buffer.distance en PyQGIS

El comando grass:v.buffer.distance es otra de las opciones de GRASS disponible en 'processing' de QGIS y sus parámetros, donde la interpretación de algunos de ellos puede encontrarse en el manual en línea, se visualizan en la imagen siguiente:

viernes, 17 de febrero de 2017

Processing gdalogr:cliprasterbyextent en PyQGIS para cortar un ráster por extensión

En esta ocasión se va a probar en PyQGIS el método de processing gdalogr:cliprasterbyextent para cortar un ráster por extensión. Para el "corte" se va a emplear la extensión de un vectorial tipo polígono; tal como se presenta en la imagen siguiente:

jueves, 16 de febrero de 2017

Utilizando gdalogr:translate en PyQGIS para convertir values a nodata

Continuando con los métodos de Processing, hoy se van a considerar los de GDAL/OGR para trabajar por vez primera en estos posts con archivos de tipo ráster. En este caso, se va a probar el método 'gdalogr:translate' para transformar en 'no data' los values iguales a cero en un ráster de 20 x 20 con values aleatorios entre 0 y 10. El plugin de 'Processing Information' (ver imagen siguiente) permite corroborar la presencia de 44 geoalgoritmos en este renglon; entre los cuales se encuentra el de nuestro interés: 'gdalogr:translate' (número 42).

Utilizando grass:v.voronoi en PyQGIS

Siguiendo con los métodos de Processing, hoy se van a considerar los de GRASS. Estos tienen la particularidad de que para hacerlos funcionar adecuadamente hay que saber cómo introducir el parámetro correspondiente a la región de GRASS; que no es más que una simple extensión. En la imagen siguiente se despliegan, a través del plugin, los 160 algoritmos que de GRASS se tienen a la disposición en 'processing'.

miércoles, 15 de febrero de 2017

Utilizando saga:linepolygonintersection en PyQGIS

Siguiendo con los métodos de Processing, hoy se va a considerar 'linepolygonintersection'. Este produce, a diferencia del anterior, un vectorial de línea. No obstante, se va a cambiar la forma de visualizar la capa automatizando la carga al Map Canvas. Para ello, se utiliza el paso generado alaeatoriamente cuando se usa como parámetro None en la opción correspondiente.

martes, 14 de febrero de 2017

Utilizando saga:polygonlineintersection en PyQGIS

Una de las situaciones que nos obliga a no explorar con más detalle las opciones que ofrece 'Processing' en QGIS es la dificultad que supone el acceso a su documentación. Aunque existe, ésta es muy escueta y se limita a unos pocos ejemplos. Por otra parte, la documentación que ofrece la ayuda de la Python Consola a través de la ejecución de los comandos 'processing.alglist' y 'processing.alghelp' tiene el inconveniente de que no pueden ser asignadas a una variable; a menos que se redirija el flujo de salida estándar. Esto último facilitaría la evaluación de los posibles métodos de 'Processing' mediante el módulo de expresiones regulares.

domingo, 12 de febrero de 2017

Redirigiendo la escritura de la salida estándar por defecto (consola) en Python a una variable

La mayoría de los resultados que en Python imprimimos a través de la consola pueden ser redireccionados facilmente a una variable, a un archivo en memoria o en disco, o a un objeto de visualización de PyQt4; como por ejemplo una QTextBrowser. No obstante, existen algunos pocos comandos que, por defecto, no lo hacen y hay que definir la salida estándar (stdout). Entre ellos tenemos la salida, en la Python Consola de QGIS, del comando 'processing.alglist()'; que requiere importar primero el módulo 'processing'.

miércoles, 8 de febrero de 2017

Obtener promedios ponderados por área usando PyQGIS

En la situación que se tiene en la imagen siguiente se desea obtener el promedio ponderado por área del campo 'val', perteneciente al vectorial tipo polígono, cuando se intersecta con el buffer del vectorial tipo línea.

martes, 7 de febrero de 2017

Estadística zonal con inclusión de píxeles recubiertos sólo parcialmente

La estadística zonal se refiere a la determinación de los parámetros estadísticos de un ráster que subyacen a un vectorial. Cuando el tamaño de estos últimos es comparable al tamaño de celda del ráster entonces los efectos de borde del vectorial que tienden a excluir el centroide de las celdas del ráster pueden llegar a ser importantes porque sus values no serán considerados en las estadísticas.

miércoles, 1 de febrero de 2017

Intersecciones con método 'overlay' de GeoPandas

El método 'overlay' de GeoPandas permite realizar intersecciones (y otras operaciones de geoproceso) en la misma capa (auto intersección) o en capas diferentes; aunque en la misma capa puede ser difícil de interpretar. Por tanto, para comenzar, se va a realizar la operación con los shapefiles de la imagen siguiente:

domingo, 29 de enero de 2017

Intersecciones en la misma capa con GeoPandas

Cuando se desea efectuar la intersección entre rasgos de la misma capa es conveniente, primero, usar el método 'combinations' del módulo 'itertools' para excluir las repeticiones. La situación que se va a considerar se encuentra a continuación; donde la capa tiene 50 % de transparencia para facilitar la observación de los solapamientos.

sábado, 28 de enero de 2017

Muestreo ráster con el módulo rasterio (python)

El módulo python 'rasterio' es una librería que simplifica la manipulación con archivos ráster. Aunque en ambientes Windows puede ser difícil tenerla disponible en la Python Console de QGIS, en mi GNU/Linux Debian se instala fácilmente a través de 'easy_install'.

sábado, 21 de enero de 2017

Cómo crear un geodataframe con GeoPandas empleando rasgos aislados

Una de las principales facetas del módulo python 'GeoPandas' es la facilidad con la que se pueden realizar ciertas tareas. Sin embargo, en el manual a veces no aparecen las cosas que se nos ocurren y toca averiguarlas en otra parte. Por ejemplo, con PyQGIS, si queremos visualizar las capas producto de nuestros geoprocesos se puede recurrir a una memory layer. No obstante, esto puede considerarse como un procedimiento algo laborioso que amerita conocer varios métodos de diferentes clases. Con GeoPandas prácticamente se realiza en una sola línea.

Cómo dibujar pentágonos (o cualquier polígono) con PyQGIS

Dibujar pentágonos (o cualquier otro polígono) es un procedimiento sencillo, independientemente de la proyección, empleando el método 'linspace' del módulo 'numpy'. El código siguiente ejemplifica el proceso. Permite dibujar un pentagono alrededor del punto (-3.055975, 47.601177), ubicado al centro-oeste de Francia, con un diámetro de 3 º.

viernes, 20 de enero de 2017

Cómo crear nuevos campos en una geodataframe con GeoPandas y modificar sus valores

GeoPandas es un módulo python que facilita la manipulación de datos espaciales a través de instrucciones muy concisas. En este caso tocará introducir un nuevo campo al vectorial de la imagen siguiente (con un sólo campo en su tabla de atributos) cuando lo carguemos en memoria como geodataframe.

jueves, 19 de enero de 2017

Cómo seleccionar polígonos que contienen al menos un punto con 'sjoin' de GeoPandas

Si se tiene instalado el módulo GeoPandas de Python es muy sencillo realizar este proceso mediante el método 'sjoin' y su parámetro (opción) 'intersects'. Con el ejemplo de la imagen siguiente:

miércoles, 18 de enero de 2017

Union espacial con GeoPandas (método 'sjoin')

Las uniones espaciales en GeoPandas son posibles mediante el método 'sjoin'. Sin embargo, esto requiere además el concurso del módulo Python 'Rtree' (instalado con easy_install) y la librería libspatialindex tomada de los repositorios de mi Debian.

martes, 17 de enero de 2017

Lista por comprensión en python para eliminar elementos repetidos

Eliminar los elementos repetidos en una lista python es posible mediante el siguiente algoritmo; donde se declara inicialmente una lista que se llena a medida que se cumple la condición establecida en el if del bucle que recorre la lista original.

lunes, 16 de enero de 2017

Reproyectar puntos con módulo pyproj

La reproyección con pyproj es muy fácil y directa. En este caso hay que usar el contructor de la clase 'Proj' y el método 'transform' para la reproyección. El constructor admite varias sintaxis pero, en el ejemplo a continuación, se va a utilizar aquella que hace referencia al código EPSG (European Petroleum Survey Group). Otro aspecto importante a mencionar es que si el datum de origen viene expresado en unidades diferentes a metros, es imprescindible emplear el modificador 'preserve_units = True' en el método 'Proj' para evitar resultados erróneos.

domingo, 15 de enero de 2017

Reproyectar un archivo vectorial mediante GeoPandas

Como se ha señalado con anterioridad, GeoPandas es un módulo python que extiende los 'datatypes' usados por 'pandas' para permitir operaciones sobre geometrías; las cuales son realizadas con el módulo 'shapely'. Además, GeoPandas depende adicionalmente de 'fiona' para el acceso a los archivos y 'descartes' y 'matplotlib' para graficar.

sábado, 14 de enero de 2017

Cómo importar y exportar archivos vectoriales con GeoPandas

GeoPandas es un módulo python que extiende los 'datatypes' usados por 'pandas' para permitir operaciones sobre geometrías; las cuales son realizadas con el módulo 'shapely'. Además, GeoPandas depende adicionalmente de 'fiona' para el acceso a los archivos y 'descartes' y 'matplotlib' para graficar.

viernes, 6 de enero de 2017

Cómo escoger rasgos dentro de una cierta distancia de un rasgo seleccionado (vectorial de línea) mediante PyQGIS

Si se quieren determinar todos los ragos (features) que están dentro de 100 m de un rasgo seleccionado (de un vectorial de línea) se puede usar el código siguiente: