1 votos

Cómo extraer un shapefile con una expresión SQL de una base de datos de shapefiles utilizando PyQGIS u OGR

Tengo un shapefile Water_Districts.shp que consta de varios polígonos de distritos de agua. Estoy tratando de utilizar el script de abajo para 'extraer' un polígono específico con el nombre Cache La Poudre River que figuran en la lista de NAME en la columna Water_Districts.shp tabla de atributos. He estado usando el script de python de abajo, pero no estoy seguro de cómo incorporar la expresión SQL en el -where excepción de la ogr2ogr comando. Estoy recibiendo el error: FAILURE: SetAttributeFilter(NAME = Cache La Poudre River) on layer'Water_Districts' failed.

import gdal
import subprocess

directory = r"F:\IrrigatedLands\FC_test\Water_Districts\Water_Districts.shp"
output_shp = r"F:\IrrigatedLands\FC_qgis\boundary.shp"

subprocess.call(["ogr2ogr", "-where", "NAME = Cache La Poudre River", output_shp, directory])

1voto

Darren Puntos 31

El siguiente código funcionó sin errores:

import gdal
import subprocess

directory = r"F:\IrrigatedLands\FC_test\Water_Districts\Water_Districts.shp"
output_shp = r"F:\IrrigatedLands\FC_qgis\boundary.shp"

subprocess.call(["ogr2ogr", "-where", "NAME = 'Cache La Poudre River'", output_shp, directory])

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