4 votos

Editor de campos con Python: seleccionar por atributos y abrir la tabla (QGIS)

Quiero buscar en número de valores ( > , =, etc.) dentro de una columna y tabla abierta para el seleccionado. Es una tarea fácil dentro de la calculadora de campo, pero quiero ver cómo se acumulan con la sintaxis de python y, a continuación, ejecútelo. De que me ayudaría a entender. O debo ejecutarlo con esos bonos editor?

Mientras que esto es una expresión del atributo (de la población), no tengo la característica de la clase, ¿verdad?

Lo que quiero es algo como esto:

def "population" < 2000

def showAttributeTable() (but only for the selected ones)

5voto

Pervez Choudhury Puntos 1637

Hay varias manera de cómo hacerlo y depende de lo que quieras.

Solución 1 : con la selección asumiendo que ya has seleccione sus características :

# My layer test
Layer=QgsVectorLayer("path/to/shapefile.shp","Display name", "ogr")
# list of selected features
selected_features = [ feature for feature in layer.selectedFeatures()]

Solución 2 : con el querie builder :

# My layer test
Layer=QgsVectorLayer("path/to/shapefile.shp","Display name", "ogr")
# set a querie like querie builder in properties
Layer.setSubsetString(u'"population" < 2000')
list_of_features = [feature for feature in layer.getFeatures()]
# reset de querie
layer.setSubsetString("")

Me gustaría utilizar el primero para espacial de selección y el otro para las consultas en los atributos de campo

4voto

Mue Puntos 2469

Gran respuesta por @SIGIS! También se podría utilizar el siguiente para establecer su capa actual, establecer la expresión y la carga de la Tabla de Atributos con las características seleccionadas:

layer = qgis.utils.iface.activeLayer()
exp = QgsExpression( "\"population\"< 2000" )
ids = [i.id() for i in layer.getFeatures(QgsFeatureRequest(exp))]
layer.setSelectedFeatures(ids)
qgis.utils.iface.showAttributeTable(layer)

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