El blog de José Guerrero

Especialmente sobre Python y PyQGIS

lunes, 30 de agosto de 2021

Cómo determinar el área de un triángulo 3D en Python

›
Las estimaciones de áreas 3D pasan por generar puntos triangulados 3D utilizando como base un modelo digital de elevación. Una vez generado...
miércoles, 6 de enero de 2021

Cómo desplegar un QProgressDialog object con PyQGIS 3

›
Los objetos del tipo QProgressDialog permiten mostrar en tiempo real el desarrollo de un proceso y observar si éste se está desarrollando ...
jueves, 31 de diciembre de 2020

Adaptar un plugin plantilla tipo botón checkeable para desplegar atributos y áreas de features (capas vectoriales) como tooltip en QGIS 3

›
En un post anterior se adaptó un plugin, de QGIS 2 a QGIS 3, para desplegar ráster values como tooltip . En este post se va a adaptar ese...
martes, 29 de diciembre de 2020

Adaptar un plugin plantilla tipo botón checkeable para producir círculos por dragado del Map Canvas en QGIS 3

›
En el post anterior se adaptó un plugin plantilla , tipo botón checkeable, para producir rectángulos por dragado del Map Canvas en QGIS 3....
lunes, 28 de diciembre de 2020

Adaptar un plugin plantilla tipo botón checkeable para producir rectángulos por dragado del Map Canvas en QGIS 3

›
En el post anterior se produjo un plugin plantilla tipo botón checkeable para PyQGIS 3. Ahora lo vamos a adaptar para producir rectángulos...
domingo, 27 de diciembre de 2020

Cómo producir un plugin plantilla tipo botón checkeable para PyQGIS 3

›
En esta respuesta de gis.stackexchange.com se propone un plugin tipo botón checkeable con la antigua versión de QGIS 2 y que permite desp...
viernes, 25 de diciembre de 2020

Producir polígonos por dragado del Map Canvas con PyQGIS 3

›
En posts anteriores ( 1 , 2 ) se introdujo la producción de rectángulos y círculos por dragado del Map Canvas con PyQgis 3. En el actual ge...
miércoles, 23 de diciembre de 2020

Producir círculos por dragado del Map Canvas con PyQGIS 3

›
En el post anterior se consideró la produción de rectángulos por dragado del Map Canvas con PyQGIS 3. La geometría de los rectángulos se c...
martes, 22 de diciembre de 2020

Producir rectángulos por dragado del Map Canvas con PyQGIS 3

›
Modificando el código de la respuesta que se encuentra en este link es posible construir capas vectoriales tipo polígono, con forma rectáng...
lunes, 21 de diciembre de 2020

Cómo obtener la proyección a partir de la Status Bar de QGIS 3 mediante PyQGIS?

›
La proyección es un elemento importante a la hora de producir capas vectoriales o ráster porque hará que estas se desplieguen de la manera a...
lunes, 3 de agosto de 2020

Cómo producir rejillas (grid) triangulares mediante PyQGIS 3

›
En posts pasados ( 1 , 2 ) se consideró la manera de producir rejillas hexagonales mediante PyQGIS 3 y en este le toca el turno a las triang...
domingo, 2 de agosto de 2020

Cortando una rejilla (grid) hexagonal creada con PyQGIS 3

›
En el post anterior se consideró la creación de una rejilla hexagonal. Esta contenía unos “salientes” laterales y en las partes superior e ...
sábado, 1 de agosto de 2020

Cómo producir rejillas (grid) hexagonales mediante PyQGIS 3

›
En un post anterior se introdujo un código para producir rejillas hexagonales mediante la versión previa de PyQGIS, es decir, con Python 2....
domingo, 14 de junio de 2020

Conectando multipolígonos con líneas utilizando la distancia más corta como parámetro con PyQGIS 3

›
El ejemplo que se refiere a continuación permite conectar multipolígonos con líneas utilizando la distancia más corta como parámetro con PyQ...
sábado, 13 de junio de 2020

Dividiendo polígonos irregulares en dos partes con diferentes proporciones y con diferente orientación de la línea de corte con PyQGIS

›
Un requerimiento común en las opciones de geoproceso es la división de polígonos irregulares en diferentes proporciones y con diferente orie...
jueves, 27 de febrero de 2020

Conectando multipolígonos con líneas utilizando la distancia más corta como parámetro con PyQGIS 2

›
A pesar de que QGIS 2 ya no tiene mantenimiento en versiones de esta rama, todavía existen usuarios que se niegan a actualizar a QGIS 3 para...
lunes, 27 de enero de 2020

Clase plantilla con QDialog que contiene función para producir polilíneas a partir de rasgos adyacentes seleccionados

›
En posts anteriores ( 1 , 2 ) se consideró la intersección de rasgos (features) adyacentes de polígonos seleccionados en PyQGIS para crear u...
sábado, 25 de enero de 2020

Cómo producir buffers, alrededor de puntos, con diferente número de lados en PyQGIS 3

›
En un post anterior se consideró la producción de buffers, alrededor de puntos, con diferente número de lados en la antigua versión de QGIS...
martes, 21 de enero de 2020

Clase plantilla con QDialog para usar segundo tab de un QTabWidget como contenedor de un QTableWidget para desplegar nombres de campos de capas vectoriales en QGIS 3

›
En el post anterior se propuso una clase plantilla con QDialog para usar objetos del tipo QTabWidget como contenedores de QTableWidget e...
domingo, 19 de enero de 2020

Clase plantilla con QDialog para usar objetos del tipo QTabWidget como contenedores de QTableWidget en QGIS 3

›
En el post anterior se propuso una clase plantilla con QDialog para crear objetos del tipo QTabWidget en QGIS 3. En éste se va a usar el ...
sábado, 18 de enero de 2020

Clase plantilla con QDialog para crear objetos del tipo QTabWidget en QGIS 3

›
En este post se va a continuar con la clase plantilla con QDialog pero, en este caso, para crear objetos del tipo QTabWidget los cuales, a...
jueves, 16 de enero de 2020

Clase plantilla con QDialog para crear círculos

›
En el post anterior se introdujo una Clase plantilla con QDialog para crear puntos (como memory layers) a partir de las coordenadas del Ma...
domingo, 12 de enero de 2020

Clase plantilla con QDialog para crear puntos

›
En el post anterior se introdujo una Clase plantilla con QDialog para visualizar las coordenadas del Map Canvas de QGIS con un click del r...

Clase plantilla con QDialog para visualizar las coordenadas del Map Canvas de QGIS con un click del ratón

›
En posts anteriores ( 1 , 2 , 3 ) se hizo referencia a la obtención de las coordenadas del Map Canvas de QGIS con un click del ratón mediant...
sábado, 11 de enero de 2020

Plantilla para visualizar elementos de un QDialog con PyQGIS

›
Aunque con la Python Console es posible visualizar de manera independiente muchos de los diferentes elementos Qt presentes en QGIS, con muy ...
miércoles, 8 de enero de 2020

Matriz de distancia con puntos en el orden correcto

›
Algunos algoritmos de QGIS, aunque funcionan, no producen los resultados esperados en cuanto a los índices espaciales. Es lo que se desprend...
domingo, 24 de noviembre de 2019

Creando un "buffer" en diferentes direcciones sin solapamiento con el shapefile inicial utilizando PyQGIS 3

›
En esta pregunta de gis.stackexchange.com se solicita una manera de generar una especie de "buffer" en diferentes direcciones si...
sábado, 23 de noviembre de 2019

Obtener las coordenadas de pantalla a partir de las coordenadas del Map Canvas en un plugin con PyQGIS 3

›
En el código que se presenta a continuación se pretende, cada vez que se lance un plugin para QGIS 3, que éste aparezca alineado con el vért...
viernes, 22 de noviembre de 2019

Extraer el punto máximo de un ráster para una rejilla de 4x4 con los métodos de GDAL Python en QGIS 3

›
Esto puede realizarse con el método 'ReadAsArray' del módulo Python de GDAL empleando una ventana de 4x4 y almacenando cada punto do...
sábado, 16 de noviembre de 2019

Cómo rotar un ráster con el módulo python de GDAL/OGR

›
En este hilo de gis.stackexchange.com se refiere la necesidad de rotar un ráster 90 grados en sentido antihorario debido a que los product...
miércoles, 2 de octubre de 2019

Sumando rásteres que se solapan sólo en cierta extensión con rasterio

›
Cuando los rásteres no se solapan adecuadamente en toda su extensión no es posible hacer álgebra de mapas porque al estar almacenados los va...
sábado, 21 de septiembre de 2019

Creando un ráster de distancia a la línea costera con PyQGIS 3 y GDAL/OGR

›
Con PyQGIS , cada centro de celda de un ráster puede ser calculado en un doble loop como un punto y, su distancia a la línea costera, evalua...
sábado, 7 de septiembre de 2019

Cómo acceder a los PyQt5.QtWidgets.QLineEdit de los Objetos QgsRasterHistogramWidget para colocar valores máximos y mínimos de capas ráster con PyQGIS 3

›
En un post anterior se utilizaron objetos de la clase QgsRasterHistogramWidget para obtener histogramas de capas ráster con PyQGIS 3 . En ...
jueves, 5 de septiembre de 2019

Cómo hacer clipping de un ráster por rasgos individuales de un shapefile tipo polígono con GDAL/OGR en Python

›
En este post se incluye un procedimiento para hacer clipping de un ráster por rasgos individuales de un shapefile tipo polígono mediante los...
lunes, 2 de septiembre de 2019

Objetos QgsRasterHistogramWidget para obtener histogramas de capas ráster con PyQGIS 3

›
En la imagen siguiente se observa la generación de los histogramas de un ráster con 4 bandas (las tres RGB más el canal alfa) donde práctica...
sábado, 31 de agosto de 2019

Additional No Data Values en capas Raster con PyQGIS 3

›
Los No Data Values en las capas ráster se adicionan a través de los métodos de la clase QgsRasterDataProvider . Cuando se emplea sólo el mét...
viernes, 30 de agosto de 2019

Cómo añadir un diagrama tipo pie (torta) a una capa vectorial con PyQGIS 3

›
En el post anterior se consideró la adición de un diagrama tipo histograma a una capa vectorial con PyQGIS 3. Como las clases QgsHistogram...

Cómo añadir un diagrama (histograma) a una capa vectorial con PyQGIS 3

›
Investigando algunos aspectos relacionados con la generación de histogramas de capas ráster me encontré este post de gis.stackexchange.com ...
sábado, 17 de agosto de 2019

Proyectar la longitud de polígonos sobre segmentos de rectas con PyQGIS 3

›
Para proyectar la longitud de un polígono sobre una recta es necesario encontrar el ángulo que ésta mantiene con el eje X (será negativo si ...
viernes, 16 de agosto de 2019

Convex Hull con QgsGeometry en PyQGIS 3 (sin Processing)

›
En el post anterior se determinó la oriented minimum bounding box utilizando el método disponible en la clase QgsGeometry . Una ligera man...
jueves, 15 de agosto de 2019

Oriented minimum bounding box con QgsGeometry en PyQGIS 3 (sin Processing)

›
En el post anterior se determinó la oriented minimum bounding box utilizando el algoritmo correspondiente. No obstante, además de en Proce...

Oriented minimum bounding box con PyQGIS 3

›
Las oriented minimum bounding box ya se encuentran disponibles como oferta en QGIS 3 a través de la ToolBox de Processing. Sin embargo, los...

Cómo pasar de Multi Part a Single Part utilizando PyQGIS 3

›
En un post anterior se consideró este aspecto con PyQGIS 2. Hoy lo planteamos de nuevo con PyQGIS 3 porque QGIS 3 considera y graba por def...
miércoles, 14 de agosto de 2019

Determinando ángulos de rotación de polígonos con base en segmentos rectos de referencia

›
En los dos posts anteriores se consideraron la rotación de rasgos de una capa vectorial (a partir de un punto de rotación), en sentido horar...
sábado, 10 de agosto de 2019

Utilizando "boundingboxes" en PyQGIS 3 Processing

›
En el post anterior se consideró la rotación de rasgos de una capa vectorial, en sentido horario, un angulo determinado a partir de un punt...

Utilizando "native:rotatefeatures" en PyQGIS 3 Processing

›
A medida que ha ido avanzando el desarrollo de QGIS 3 a través de sus diferentes versiones (ya vamos por la 8), es cada vez más sencillo pro...
sábado, 3 de agosto de 2019

Cómo rasterizar rasgos individuales de un shapefile tipo polígono con GDAL/OGR en Python

›
En este post se incluye un procedimiento para rasterizar rasgos individuales de un shapefile tipo polígono mediante los módulos Python de GD...
miércoles, 31 de julio de 2019

Crear un shapefile tipo polilínea mediante la librería pyshp

›
En esta entrada se va a considerar la creación de un shapefile tipo polilínea mediante la librería pyshp . Los valores a ser introducidos en...
domingo, 13 de enero de 2019

Crear polígono regular de área específica, a partir de puntos, con PyQGIS 3

›
La creación de polígonos ya ha sido tratada en Cómo producir buffers, alrededor de puntos, con diferentes números de lados en PyQGIS para l...
sábado, 12 de enero de 2019

Creando buffers rectangulares alrededor de puntos con PyQGIS 3

›
En un post anterior se consideró el mismo tema con la versión previa de QGIS. No obstante, la portabilidad del código allí propuesto a PyQG...

Ejecutar la Processing tool UI en PyGIS 2 y 3

›
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. ...
viernes, 11 de enero de 2019

Determinando polygon self-intersection con PyQGIS 3

›
Las self-intersection en polígonos pueden ser determinadas en PyQGIS con el método "saga:polygonselfintersection" que se encuentra...

Cómo obtener la señal cuando cambia el renderizado con PyQGIS 3

›
Aunque el renderizado se asocia generalmente a una capa vectorial o ráster, como el método 'renderComplete' pertenece a la clase Qgs...
jueves, 3 de enero de 2019

Otras funciones de edición de capas vectoriales de QgsVectorLayerTools en PyQGIS 3

›
Los métodos para el inicio y finalización de la edición de capas vectoriales, 'startEditing' y 'commitChanges', se encuentra...
miércoles, 2 de enero de 2019

Añadiendo nuevo campo con rumbos (bearings), en grados, minutos y segundos, mediante PyQGIS 3

›
En el post anterior se trató un tema similar pero con la versión anterior de QGIS. No obstante, el código allí presentado no funciona en QG...
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 conte...
sábado, 22 de diciembre de 2018

QgisFeatureRequest para ordenamiento múltiple de rasgos en PyQGIS 3

›
La clase QgisFeatureRequest puede usarse para seleccionar rasgos ordenados por varios campos. En este post se va a considerar el shapefile ...
jueves, 20 de diciembre de 2018

Adaptación de un plugin, de QGIS 2 a QGIS 3, para desplegar ráster values como tooltip

›
Una reserva que impide cambiar rápidamente desde QGIS 2 a QGIS 3 es la imposibilidad de adaptar en un tiempo perentorio todas aquellas aplic...
lunes, 17 de diciembre de 2018

Cómo colocar un plugin "Always On Top" en QGIS 3

›
En versiones anteriores de QGIS el comportamiento por defecto era mantener el plugin "Always On Top" pero esta situación cambió en...
sábado, 1 de diciembre de 2018

Uso de la clase QgsMapToolIdentifyFeature para obtener los atributos de un archivo vectorial y resaltarlos mediante objetos de la clase QgsRubberBand

›
La clase QgsMapToolIdentifyFeature permite, mediante un click del ratón, obtener información acerca de los rasgos de un archivo vectorial y...
domingo, 4 de noviembre de 2018

Reproyección punto a punto de un archivo vectorial con PyQGIS 3

›
En un post previo se consideró una forma de reproyectar un shapefile tipo polígono utilizando la versión 2 de PyQGIS. En éste, se va a modi...
lunes, 22 de octubre de 2018

Selección avanzada de rasgos con objetos de QgsExpression en PyQGIS 3

›
En el post anterior se trató el tópico relativo a la selección avanzada de rasgos con objetos de QgsFeatureRequest en PyQGIS 3. Allí, para...
domingo, 21 de octubre de 2018

Selección avanzada de rasgos con objetos de QgsFeatureRequest en PyQGIS 3

›
El método 'getFeatures' de QgsVectorLayer también admite como argumento un objeto de la clase QgsFeatureRequest sobre el cual se l...
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 í...
jueves, 12 de julio de 2018

Cómo usar GDAL para leer archivos GRIB en Python y determinar la estadística de las bandas

›
GRIB (GRIdded Binary o General Regularly-distributed Information in Binary form) es un formato ráster soportado por GDAL el cual es comunmen...
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 person...
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 ...
lunes, 19 de marzo de 2018

Utilizando gdal:translate (PyQGIS Processing) para convertir values a nodata en QGIS 3

›
En un post anterior se usó el comando de PyQGIS Processing gdalogr:translate para convertir values a nodata en la versión previa de QGIS...
sábado, 17 de marzo de 2018

Utilizando grass7:v.voronoi en PyQGIS 3 Processing

›
En un post anterior se consideró un tema similar para la versión previa de QGIS 3 y GRASS 6. La forma elegida de pasarle los parámetros es ...
jueves, 15 de marzo de 2018

Usando Processing qgis:creategrid en QGIS 3 (Linux)

›
En un post anterior ya se probó este método con la versión previa de QGIS y en QGIS 2.99 uno similar (qgis:creategridpolygon) que no sobr...
lunes, 12 de marzo de 2018

Dividir vectoriales tipo línea en partes de igual longitud mediante algoritmo basado en azimuths con PyQGIS 3

›
En un post anterior se consideró la división de vectoriales tipo línea en partes iguales mediante un algoritmo basado en azimuths. Sin emba...
domingo, 11 de marzo de 2018

Dividir vectoriales tipo línea con puntos mediante algoritmo basado en azimuths con PyQGIS 3

›
En un post anterior se implementó un código para dividir vectoriales tipo línea con puntos mediante un algoritmo basado en azimuths. El ref...
jueves, 8 de marzo de 2018

Cómo conectar una QComboBox para actualizar adecuadamente las capas en un plugin con QGIS 3

›
En un post anterior se trataba el mismo tema para la versión anterior de QGIS . Empleaba la clase QgsLegendInterface que actualmente fue ...
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 p...
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...
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 correspondiente...
sábado, 3 de marzo de 2018

Memory layers de líneas en PyQGIS3

›
A diferencia de las memory layers de puntos que se consideraron en el post anterior , el código que había sido probado en la version 2 de QG...
viernes, 2 de marzo de 2018

Memory layers de puntos en PyQGIS 3

›
Después de estar luchando con la adaptación de un plugin, desde QGIS2 a QGIS3, para rotar rasgos de diferente geometría y no tener éxito me ...
jueves, 1 de marzo de 2018

Plugin para extraer tiles georreferenciados de alta resolución con Google Satellite y PyQGIS3

›
En un post anterior se introdujo un procedimiento para conectarse al servicio de Google Satellite (que incluía la nueva versión de QGIS3), ...
miércoles, 28 de febrero de 2018

Plugin para producir rásteres con valores enteros aleatorios en QGIS 3

›
En la versión anterior de QGIS se produjo un complemento (plugin) que permitía producir rásteres con valores enteros aleatorios y cuyo algor...

QgsMapLayerComboBox con filtros en QGIS 3

›
En el post anterior se consideró la inclusión de objetos Qt del tipo QFileDialog porque hasta ese momento había comprobado que era uno de ...

QFileDialog del tipo 'getSaveFileName' en un plugin con PyQGIS3

›
En estos primeros días de trabajo con PyQGIS3 se ha podido comprobar que si no se asume una estrategia de "divide y vencerás" tend...
martes, 27 de febrero de 2018

Compilando recursos para PyQGIS3 mediante pyrcc4

›
En un post precedente referí la imposibilidad de compilar los recursos para PyQGIS3 en Windows porque la utilidad pyrcc5 no estaba disponi...

Creando buffers cuadrados alrededor de puntos con PyQGIS3

›
Este es un tópico que ya sido considerado aquí pero con la versión anterior de QGIS. Lo rescato en este momento para que se observe que no ...
lunes, 26 de febrero de 2018

Primer plugin funcional en QGIS3

›
Como es bien sabido por los usuarios de QGIS, el viernes 23/02/2018 fue liberada la versión 3 (Girona). No obstante, sólo ayer 25/02/2018 es...
domingo, 18 de febrero de 2018

Moviendo bounding box de imagen, basada en el centroide, hasta la posición contigua con PyQGIS

›
En post anteriores ( 1 , 2 ) se consideró la conexión al servicio de Google Satellite y la automatización en un plugin con el fin de obtener...
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...
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...
2 comentarios:
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 pr...

Introducción de objetos tipo polígono (círculos, cuadrados, rectángulos) y texto en imágenes con OpenCV

›
En este artículo se adaptó un código para incrementar el contraste de una imagen RGB y mejorar su nitidez. Se tiene en mente como objetivo ...
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 ...
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 de...
sábado, 20 de enero de 2018

Tratamiento de imágenes con openCV en Python

›
El post anterior incluye una referencia de la cual adapté el procedimiento para obtener los subarrays a los cuales allí se hacía mención y...
miércoles, 17 de enero de 2018

Cómo acceder a los subarrays de píxeles vecinos, en bloques 5x5, mediante el módulo cv2 de OpenCV

›
OpenCV es una biblioteca libre de visión artificial originalmente desarrollada por Intel. Se ha utilizado en infinidad de aplicaciones que ...
jueves, 4 de enero de 2018

Determinando área superficial a partir de un DEM con Python mediante el gradiente de la pendiente (Slope Gradient)

›
En esta referencia también existe una descripción para aproximar el área superficial, por píxel, de un ráster DEM mediante el gradiente de ...
miércoles, 3 de enero de 2018

Determinando área superficial a partir de un DEM con Python mediante el procedimiento SHR (surface to horizontal area ratio)

›
En esta referencia existe una descripción más o menos pormenorizada de cómo aproximar el área superficial, por píxel, de un ráster DEM medi...
viernes, 8 de diciembre de 2017

Reproyectando y guardando un shapefile tipo polígono con GDAL/OGR

›
El codigo siguiente corrige los problemas de ejecución que presenta este otro para reproyectar un shapefile con base en el sistema de refer...
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....
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 rasg...
sábado, 2 de diciembre de 2017

Empleando Processing gdal:cliprasterbymasklayer en QGIS 2.99

›
Para finalizar esta visión exploratoria de Processing en QGIS 2.99 voy a seleccionar gdal:cliprasterbymasklayer porque no aparece en la ofe...
1 comentario:
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í...
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 (s...
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 d...
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 adelant...
viernes, 24 de noviembre de 2017

Moviendo geometría con Python shapely

›
El código siguiente usa el método 'translate', de shapely.affinity , para mover una geometría que está solapando dos linestrings (ve...
jueves, 23 de noviembre de 2017

Crear ruta de mínimo costo con GDAL/Python

›
En la documentación de Python GDAL/OGR Cookbook 1.0 existe un procedimiento para crear una ruta de mínimo costo empleando un ráster DEM. Pa...
martes, 21 de noviembre de 2017

Estadística zonal robusta con PyQGIS

›
Uno de los problemas con las herramientas de estadística zonal que vienen generalmente incorporadas con los SIGs es que producen resultados ...
lunes, 20 de noviembre de 2017

Cómo reclasificar un ráster basado en cuantiles y descartando los no data values con Python

›
En el código siguiente los nodata values del array de un ráster se convierten en valores NaN (Not a Number) para aprovechar el método ...
domingo, 19 de noviembre de 2017

Comparando datos en una matriz con Python

›
En esta pregunta de stackoverflow.com se requiere asistencia para comparar datos en una matriz con Python con el fin de seleccionar los ra...
sábado, 18 de noviembre de 2017

Rasterizando con el modulo GDAL/OGR de Python modificando el valor por defecto para los nodata values

›
En el post anterior se consideró la rasterización de capas vectoriales, con uno o varios rasgos, donde el valor por defecto más allá de ést...
viernes, 17 de noviembre de 2017

Rasterizando con el modulo GDAL/OGR de Python

›
Con el módulo GDAL/OGR es posible acceder a una herramienta para rasterizar capas vectoriales y usarlas como máscaras ráster. El código que...
jueves, 16 de noviembre de 2017

Generando elipse con sus ecuaciones paramétricas y PyQGIS

›
En un post anterior se generaron buffers empleando las ecuaciones parámetricas de la circunferencia. Las de la elipse son muy similares y b...
miércoles, 15 de noviembre de 2017

Cómo configurar un QFileDialog en un plugin de QGIS para que sólo solicite el directorio

›
En un post anterior se implementó un QFileDialog con QtDesigner para QGIS . Éste permitía solicitar el nombre del archivo con el cual se ...
martes, 14 de noviembre de 2017

Cómo poblar una QTableWidget con items en PyQGIS

›
Las QTableWidget son objetos Qt que pueden ser incorporados fácilmente en los Dialog a través del QtDesigner . Una vez añadidas restaría añ...
lunes, 13 de noviembre de 2017

Generando buffer con ecuaciones paramétricas de la circunferencia y PyQGIS

›
En el artículo anterior se consideró como un ejercicio de programación la generación de un buffer empleando las ecuaciones cartesianas de l...
domingo, 12 de noviembre de 2017

Generando buffer "cartesiano" con PyQGIS

›
La circunferencia es el lugar geométrico de los puntos de un plano que equidistan de otro punto fijo llamado centro. Su ecuación general, en...
sábado, 11 de noviembre de 2017

Cómo recuperar puntos rasterizados con el orden como value y construir una bounding box orientada

›
En la imagen a continuación se tienen unos puntos rasterizados con una resolución 10x10 donde como value se ha incorporado el orden de los p...
viernes, 10 de noviembre de 2017

Reproyectando un ráster con processing gdalogr:warpreproject

›
Una forma expedita de reproyectar un ráster con PyQGIS es mediante la herramienta gdalogr:warpreproject de Processing. La información sobr...
sábado, 4 de noviembre de 2017

Suma de rásteres con pygeoprocessing evitando la generación de nodata values

›
Generalmente, cuando se utiliza cualquier versión de Raster Calculator (processing, pygeoprocessing, etc) proveniente del software libre uno...
viernes, 3 de noviembre de 2017

Extrayendo valores ráster dentro de shapefile con pygeoprocessing, gdal, shapely y fiona

›
El módulo "third party" pygeoprocessing de python facilita algunas funciones que pueden realizarse con GDAL e internamente emple...
miércoles, 1 de noviembre de 2017

Cómo desactivar el Dialog de introducción de valores de atributos mediante PyQGIS

›
Cuando estamos digitando una capa y necesitamos apremio en la introducción de los puntos, nodos o vértices, se nos presenta un Dialog de int...
lunes, 30 de octubre de 2017

Usando pygeoprocessing.geoprocessing.raster_calculator

›
El módulo pygeoprocessing de python tiene la opción de códificar una herramienta de cálculo ráster (raster_calculator) de una manera mucho ...
jueves, 26 de octubre de 2017

Cómo conectar una QComboBox para actualizar adecuadamente las capas mediante PyQGIS en un plugin

›
La actualización automática de las capas (vectoriales o ráster) en objetos del tipo Combo Box ("persiana desplegable") puede reali...
lunes, 9 de octubre de 2017

Cómo detectar solapamiento en conjunto de glóbulos de apariencia circular

›
La necesidad de esta tarea surge de una pregunta realizada en el site de gis.stackexchange.com referida a una imagen. La imagen es binaria...
domingo, 8 de octubre de 2017

Cómo calcular la diferencia máxima en elevación entre un punto y las direcciones cardinales a su alrededor

›
El código que se presenta a continuación permite determinar la diferencia en elevación entre un punto y las direcciones cardinales a su alre...
lunes, 2 de octubre de 2017

Cómo acceder a los subarrays de píxeles vecinos, en bloques 3x3, mediante ndimage del módulo scipy

›
En un artículo anterior se hizo mención a una manera expedita para determinar la estadística de píxeles vecinos, en bloques 3x3, mediante n...
viernes, 29 de septiembre de 2017

Campos múltiples con qgis:fieldcalculator de PyQGIS Proccessing

›
La generación múltiple de campos es posible a través de qgis:fieldcalculator de PyQGIS Processing; donde las opciones de los parámetros pue...
martes, 26 de septiembre de 2017

Determinación de la sinuosidad de una línea con PyQGIS Processing

›
La sinuosidad de una línea se define como el cociente de su distancia total y la distancia euclidiana entre su punto de comienzo y su punto ...
sábado, 9 de septiembre de 2017

Estadística de píxeles vecinos, en bloques 3x3, mediante ndimage del módulo scipy

›
Cuando se requiere determinar las estadísticas de píxeles vecinos en un ráster, el efecto a considerar cuando se recorre cada uno de los píx...
viernes, 1 de septiembre de 2017

Generando y rotando rectángulos a partir de puntos con atributos largo, ancho y ángulo de rotación mediante PyQGIS

›
Cuando se quiere generar y rotar rectángulos con base a parámetros que se encuentran en la tabla de atributos de un vectorial de puntos una ...
jueves, 31 de agosto de 2017

Generando memory layer de bordes, para capa tipo polígono, e información de interacciones en tabla de atributos

›
El código que se presenta a continuación produce como salida una memory layer tipo MultiLineString para cada uno de los features que repres...
domingo, 27 de agosto de 2017

Plugin para dividir líneas por puntos o por partes iguales

›
En diferentes posts anteriores ( 1 , 2 , 3 ) se exploró la posibilidad de dividir líneas por puntos o en partes iguales. En este se va a con...
martes, 15 de agosto de 2017

Creación de buffer en coordenadas geográficas con shapely y pyproj

›
Por alguna razón, varios usuarios de SIGs se rehusan a reprojectar su data en coordenadas geográficas a proyecciones en metros (o pies) y lu...
domingo, 13 de agosto de 2017

Porcentaje de intersección de areas de polígonos mediante fiona y shapely con Python3 en Debian

›
Continuando con la ejecución de código compatible con Python3 en SIGs se va a considerar el porcentaje de intersección de áreas de polígonos...

Dividir vectoriales tipo línea en partes iguales mediante algoritmo basado en azimuths con Python3 en Debian

›
Con el advenimiento de QGIS 3 el próximo 29 de septiembre de 2017, si se cumple exactamente el cronograma de liberación, habrán varios camb...
sábado, 12 de agosto de 2017

Dividir vectoriales tipo línea en partes iguales mediante algoritmo basado en azimuths

›
En el post anterior se consideró la división de vectoriales tipo línea con puntos mediante un algoritmo basado en azimuths. En éste se va t...
miércoles, 9 de agosto de 2017

Dividir vectoriales tipo línea con puntos mediante algoritmo basado en azimuths

›
En el post anterior se consideró un algoritmo para agrupar puntos por segmentos de recta mediante listas Python. En éste lo vamos a complem...
martes, 8 de agosto de 2017

Algoritmo para agrupar puntos por segmentos de recta mediante listas Python

›
Si Uds buscan en Processing de QGIS se darán cuenta que no encontrarán una aplicación para dividir rectas mediante puntos. La aplicación que...
sábado, 22 de julio de 2017

Grid hexagonal con MMQGIS

›
El plugin MMQGIS es multifuncional y permite, entre otras, producir rejillas (grids) hexagonales. La interface pide como parámetros valores ...
viernes, 14 de julio de 2017

Snapping puntos de un rasgo a otro en un vectorial tipo polígono mediante PyQGIS

›
Una forma para realizar esto es generando primero todo los vértices para cada rasgo debido a que el método 'moveVertex' de QgsVector...
jueves, 13 de julio de 2017

Ejemplo de QgsFieldComboBox.setFilters() en la creación de un plugin con PyQGIS

›
Los objetos de QgsFieldComboBox (menús tipo persiana para campos de archivos vectoriales) aceptan filtros de la clase QgsFieldProxyModel p...
domingo, 9 de julio de 2017

Establecer estilo de borde a 'no pen' empleando un QgsGraduatedSymbolRendererV2 con PyQGIS

›
Aunque puedan parecer similares los objetos QgsGraduatedSymbolRendererV2 , a diferencia de los QgsCategorizedSymbolRendererV2 , no pueden s...
sábado, 8 de julio de 2017

Añadiendo opción de 'offset', al renderer de líneas que se solapan en la misma capa, con PyQGIS

›
Cuando se tienen rasgos solapados en una misma capa la opción que funciona para separarlos es mediante un renderer de tipo QgsCategorizedSym...
jueves, 6 de julio de 2017

Clase personalizada en PyQGIS para generar tooltips con values de ráster y registros de tablas atributivas de vectoriales

›
Con base en esta respuesta de gis.stackexchange.com , modifiqué la clase para incorporar como funcionalidades adicionales la posibilidad de...
sábado, 1 de julio de 2017

Obtener coordenadas de un click del ratón mediante una clase personalizada en PyQGIS

›
En un post anterior se hizo mención a la forma de recuperar las coordenadas de un punto mediante un click del ratón empleando la clase QgsM...
jueves, 22 de junio de 2017

Cómo medir la distancia media entre puntos, para un radio fijo, mediante PyQGIS

›
El código siguiente permite determinar la distancia media, en un radio de 500 m, para todos los rasgos de un vectorial de puntos. Para evita...
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...
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 o...
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...
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ú...
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 lue...
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 tr...
1 comentario:
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 sof...
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 (fe...
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 correspo...
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 zo...
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 cor...
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 do...
1 comentario:
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...
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 d...
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 ...
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 ...
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 p...
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 ...
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...
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 fir...
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 fundam...
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 QgsMapLayerC...
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 QGI...
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...

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 ...
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 automati...
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) alre...
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 ...
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 vecto...
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 ...
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 ...
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 archivo...

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...
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, ...
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 qu...
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 arch...
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 a...
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...
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 intersec...
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ó...
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 se...
›
Inicio
Ver versión web
Con la tecnología de Blogger.