En esta pregunta de gis.stackexchange.com se responde la manera de ejecutar la Processing tool UI en PyGIS 2 y en esta otra en PyQGIS 3. Para ejemplificar cómo funciona, ya que el segundo caso adolece del código completo, se va a probar con el procedimiento del post anterior.
sábado, 12 de enero de 2019
martes, 1 de enero de 2019
Añadiendo nuevo campo con rumbos (bearings), en grados, minutos y segundos, mediante PyQGIS
En este post se va desarrollar un script que permite crear y actualizar en tiempo de ejecución el campo de un vectorial tipo línea que contendrá el rumbo (grados, minutos y segundos) de los segmentos de recta que constituyen sus rasgos (features). El script es el siguiente:
sábado, 25 de agosto de 2018
Dividir vectoriales tipo línea con puntos mediante algoritmo basado en azimuths con inserción directa del punto de corte en la posición correspondiente
En un post anterior desarrollé un procedimiento para dividir vectoriales tipo línea con puntos mediante un algoritmo basado en azimuths e índices de todos los puntos sin inserción directa de los puntos de corte en la lista final. Aunque funciona de la manera esperada tratando de adaptarlo al lenguaje R me di cuenta que el algoritmo tiene un bucle innecesario y es demasiado complejo para una adaptación expedita.
sábado, 24 de marzo de 2018
Obtener coordenadas del movimiento del ratón mediante una clase personalizada en PyQGIS en un plugin de QGIS 3
En un post anterior se consideró la forma de obtener las coordenadas del Map Canvas mediante un click del ratón utilizando una clase personalizada en PyQGIS. Este procedimiento fue conducido a través de la Python Console. Sin embargo, en un plugin hay que saber ubicar la clase dentro del plugin y modificar los parámetros de entrada para que en lugar de imprimir a la Python Console lo haga, por ejemplo, en un elemento Qt como una QTextBrowser.
viernes, 23 de marzo de 2018
Manejando píxeles con solapamiento parcial para realizar estadística zonal con PyQGIS en QGIS 3
El manejo de píxeles con solapamiento parcial para realizar estadística zonal robusta con PyQGIS ya había sido tratado en esta pregunta de https://gis.stackexchange.com. No obstante, el planteamiento en ésta otra es algo diferente pero el código puede adaptarse para satisfacer el requerimiento. Se presenta a continuación:
miércoles, 7 de marzo de 2018
Método 'writeAsVectorFormat' de QgsVectorFileWriter en QGIS 3
En este post me toca referir el método 'writeAsVectorFormat' de QgsVectorFileWriter debido a que en la adaptación de un plugin se produjo un error en este método debido a que se estaban pasando los parámetros en el orden equivocado. La sintaxis considerada era prácticamente idéntica a la que se encontraba ejemplificada en el PyQGIS Cookbook de la versión 2.x porque, como verifiqué que la clase existía en QGIS 3, asumí erróneamente que los parámetros podrían ser los mismos.
lunes, 5 de marzo de 2018
Memory layers de polígonos en PyQGIS3
La inclusión de la clase QgsPointXY ha impuesto nuevos métodos en QgsGeometry y a la que más ha afectado a la hora de hacer funcionar el código es a las geometrías tipo polígono. Esto es así, en mi caso, porque he implementado mis propios procedimientos para rotar y mover geometrías (para comprender mejor las operaciones) en lugar de usar las propias clases de PyQGIS para estos procedimientos; donde los formatos WKT son los que traerían los menores problemas en lugar de las listas de puntos.
domingo, 4 de marzo de 2018
Rasgos (features) en el orden en el cual son seleccionados mediante PyQGIS3
En esta pregunta de gis.stackexchange.com se plantea cómo almacenar en una variable externa a la función los valores de id correspondientes a los rasgos (features) que han sido seleccionados y en el orden estricto de su selección. Este requerimiento se basa en el hecho de que si se seleccionan todos los rasgos en un orden determinado y se imprimen sus ids la lista de valores corresponde, contrariamente a lo esperado, al orden en que fueron digitalizados.
domingo, 18 de febrero de 2018
sábado, 17 de febrero de 2018
Plugin de QGIS para extraer tiles georreferenciados de alta resolución con Google Satellite
En el post anterior se introdujo un procedimiento para conectarse al servicio de Google Satellite, grabar una imagen de alta resolución del Map Canvas y, posteriormente, georreferenciarla de forma adecuada mediante gdal_translate.
lunes, 12 de febrero de 2018
Añadiendo Google Maps Satellite Service con PyQGIS
Añadir el servicio de Google Maps Satellite a través de código PyQGIS es muy sencillo; tal como se evidencia a continuación. Los detalles de la conexión pueden visualizarlos en este link.
jueves, 8 de febrero de 2018
Espesor mínimo de un polígono no convexo con agujeros mediante PyQGIS
En este hilo de gis.stackexchange.com se consideran, aparentemente sin éxito o con un tiempo de cómputo excesivamente largo, diferentes procedimientos para determinar el espesor mínimo de un polígono no convexo con agujeros.
lunes, 29 de enero de 2018
Cómo manipular objetos QgsScaleComboBox con PyQGIS
En esta pregunta de gis.stackexchange.com se refiere un comportamiento extraño de los objetos del tipo QgsScaleComboBox en el sentido de que las escalas supuestamente añadidas no podían ser seleccionadas.
miércoles, 24 de enero de 2018
Reordenar rasgos en un vectorial de línea mediante PyQGIS
El vectorial de línea de la imagen siguiente es de partes sencillas (singleparts) con la particularidad de que sus rasgos, de izquierda a derecha y en orden ascendente, no están ordenados secuencialmente como se espera. Esta falta de secuencia puede producir errores a la hora de ejecutar ciertas consultas o algoritmos.
jueves, 7 de diciembre de 2017
Cómo dividir una línea mediante método 'splitFeatures' de QgsVectorlayer con PyQGIS
El método 'splitFeatures' de QgsVectorLayer usa una lista de QgsPoint de una línea de corte para dividir, por ejemplo, otra línea. La división se hará en el punto de intersección de ambas. Para probarlo se utilizarán las capas que se visualizan en la imagen siguiente:
domingo, 3 de diciembre de 2017
Usando getFeatureForm de QgisInterface (iface) en PyQGIS
En QGIS existen varias formas prediseñadas que pueden ser invocadas con código PyQGIS. Una de ellas es la que se utiliza para obtener rasgos (features) y se se llama mediante el método 'getFeatureForm' de QgisInterface (iface). Corresponde a un objeto del tipo QgsAttributeDialog al cual se le pasan como parámetros la capa vectorial y el rasgo que se desee explorar.
jueves, 30 de noviembre de 2017
Usando Processing qgis:intersection en QGIS 2.99 (Windows)
Siguiendo con las pruebas en QGIS 2.99 con Windows hoy le toca el turno a Processing qgis:intersection. Escogí esta herramienta porque tenía unos parámetros (INPUT_FIELDS y OVERLAY_FIELDS) novedosos para mi que imaginé se pasaban como lista y así fue.
El conjunto completo de parámetros a usar es el siguiente:miércoles, 29 de noviembre de 2017
Usando Processing qgis:creategridpolygon en QGIS 2.99 (Windows)
En post anteriores he estado haciendo pruebas con la versión preliminar 2.99 de QGIS en Windows antes de que salga la versión definitiva (supuestamente casi exenta de errores) 3.0.0. He podido comprobar, por ahora, que no está suficientemente madura como para la producción de plugins. Sin embargo, se pueden probar por separado los algoritmos que estarán dentro de los futuros plugins una vez se resuelvan los problemas de estabilidad.
martes, 28 de noviembre de 2017
Creando plugin para capturar coordenadas del Map Canvas con un click del ratón en QGIS 2.99
En un post anterior se publicó el procedimiento completo para crear un plugin que permitía capturar, en unidades de mapa, las coordenadas del Map Canvas con un click del ratón en QGIS 2.x. En este se va a explorar la factibilidad de hacer lo mismo en QGIS 2.99 (para Windows); a pocas semanas de la liberación definitiva de QGIS 3.0.0.
domingo, 26 de noviembre de 2017
Usando algunas funcionalidades de PyQGIS en QGIS 3 (2.99) para Windows
Como es del conocimiento general y si se cumple la hoja de ruta, el próximo 18 de diciembre será el lanzamiento de QGIS 3.0.0. Para adelantarme a este acontecimiento y saber a que atenerme en el futuro con relación a PyQGIS, bajé e instalé la versión actual de QGIS 2.99 para Windows.
Ya había leido al respecto de que los cambios son numerosos y el reto es ahora afrontarlos. Con relación a la transición de Python 2.7.x a Python 3.0.x algunas cosas he hecho en este Blog y probablemente allí no radicará la dificultad.