Mostrando entradas con la etiqueta shapely. Mostrar todas las entradas
Mostrando entradas con la etiqueta shapely. Mostrar todas las entradas

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 values en arrays de tipo matricial estas operaciones no pueden realizarse si las matrices no son conformes. Sin embargo, rasterio tiene disponible el método 'Window' que permite la lectura y escritura por ventanas de datos. Si se determina cuáles son las áreas coincidentes es posible hacer la lectura de los arrays en esas zonas específicas y aplicar sólo allí el álgebra de mapas.

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 (ver imagen siguiente) desde init_point hasta final_point; ambos especificados en el código.

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 emplea fiona y shapely por lo que si logran instalarlo sin problemas mediante pip tendrán acceso también a estos módulos.

Lo que si he podido detectar es que no tengo acceso a muchos de los métodos descritos en el manual por lo que sospecho que ha sido pensado más bien para Python 3 o debo forzar la instalación de la última versión con pip en Python 2.7.

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 condensar la información que permite la creación de un plugin que divide líneas por puntos o en partes iguales.

Como en el último caso se imprime la magnitud del intervalo se puede obtener un espaciamiento aproximado a alguno deseado mediante la técnica de ensayo y error.

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 luego, cuando se ven en la necesidad de determinar algunas propiedades geométricas (áreas, longitudes) o producir cierto tipo de capas como los buffer, se les presentan dificultades.

En el caso de los buffer, si se trabaja con coordenadas geográficas, es necesario pasar previamente las geometrías a coordenadas proyectadas y luego, una vez obtenida, reproyectar al sistema de origen.

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 empleando los módulos python fiona y shapely instalados mediante pip3. En este caso, la lógica del algoritmo sigue una sintaxis muy similar a la ejecutada en un sistema con PyQGIS.

La compatibilidad con Python 2.7.x se logra encerrando entre paréntesis el argumento de los 'print' correspondientes. No obstante, la primera ejecución arrojó el error siguiente:

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 cambios que afectarán la compatibilidad de todas las aplicaciones que hasta ahora se han realizado en QGIS 2.x. La razón principal es que QGIS dejará de usar Python 2.7.x en favor de Python 3.x y el framework Qt4/PyQt4 para dar paso a Qt5/PyQt5. Por tanto, conviene estar preparado.

Como en el post anterior se empleó un algoritmo basado en azimuths para dividir vectoriales tipo línea en partes iguales, el cual utilizaba una mezcla de librerías third party de python (fiona y shapely) conjuntamente con PyQGIS, se pensó adaptar dicho script para ser funcional con Python 3.

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 complementar con otro basado en azimuths para dividir rectas mediante puntos.

La lectura del archivo vectorial se va a realizar con fiona y las coordenadas y la geometría se conforman con shapely. El código completo se presenta a continuación e incluye los puntos de corte:

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: