QGIS + Python Partie 2

Environnement de vérification des opérations d'exécution

Ajout de champs (colonnes / colonnes) dans la table attributaire

test.py


# -*- coding: utf-8 -*- 
from PyQt4.QtCore import QVariant 
layer=iface.activeLayer()

if layer is None :
    print(u'Il n'y a pas de couche active.')
    
layer.startEditing()
layer.dataProvider().addAttributes( [
    QgsField('TestString', QVariant.String),
    QgsField('TestInt',  QVariant.Int),
    QgsField('TestDouble', QVariant.Double)
    ] )
layer.updateFields()
layer.commitChanges()

--from PyQt4.QtCore import QVariant est requis pour QVariant.String --Travailler sans layer.startEditing ()

Définir les attributs des entités

test.py


# -*- coding: utf-8 -*- 
from PyQt4.QtCore import QVariant 
layer=iface.activeLayer()

if layer is None :
    print(u'Il n'y a pas de couche active.')
    
attributeName='TestString'
layer.startEditing()
for feature in layer.getFeatures():
    feature[attributeName]='ABC'
    layer.updateFeature(feature)
layer.commitChanges()

--Dans ce qui précède, définissez la valeur du champ TestString de toutes les entités de la couche sur ABC (écrasement) --A la place de feature [attributeName] = 'ABC', vous pouvez utiliser feature.setAttribute (attributeName,' ABC ')

Obtenez des fonctionnalités qui correspondent à des conditions d'attributs spécifiques à l'aide de l'expression

--L' "expression" est ici une expression décrite dans le générateur d'expression (↓↓). - Image2.png

test.py


# -*- coding: utf-8 -*- 
layer=iface.activeLayer()

if layer is None :
    print(u'Il n'y a pas de couche active.')

req = QgsFeatureRequest().setFilterExpression( u'"id" = \'A14_000_1234\'' )
features = layer.getFeatures( req )

attributeName='TestString'
layer.startEditing()
for feature in features:
    feature.setAttribute(attributeName, 'XYZ')
    layer.updateFeature(feature)
layer.commitChanges()

Règles de description d'expression

--Le ** nom ** du champ (colonne / colonne / attribut) est décrit entre guillemets. --La ** valeur (chaîne de caractères) ** du champ est décrite entre guillemets simples.

Sélectionnez des fonctionnalités qui correspondent à des conditions d'attributs spécifiques

test.py


# -*- coding: utf-8 -*- 
layer=iface.activeLayer()

if layer is None :
    print(u'Il n'y a pas de couche active.')
    
req = QgsFeatureRequest().setFilterExpression( u'"TestInt" > 2000' )
features = layer.getFeatures( req )
layer.setSelectedFeatures([featur.id() for featur in features])

--Dans l'argument de setSelectedFeatures (), définissez la ** liste d'identifiants ** de la fonctionnalité, pas la liste d'entités (d'instances) de la fonctionnalité. - void QgsVectorLayer::setSelectedFeatures ( const QgsFeatureIds & ids )

Obtenez l'entité de couche à partir du nom de la couche

test.py


# -*- coding: utf-8 -*- 

layerName = 'test lay01 Polygon'
layer = None
for layer_ in QgsMapLayerRegistry.instance().mapLayers().values():
    if layer_.name() == layerName:
        layer = layer_
        break

if layer is None :
    print(u'couche"{0}"N'existe pas.'.format(layerName))

Articles Similaires

Matériel de référence

Recommended Posts

QGIS + Python Partie 2
QGIS + Python Partie 1
Python: grattage partie 1
Python3 commence la partie 1
Python: grattage, partie 2
Mémorandum de base Python partie 2
Mémo de base Python - Partie 2
Mémo de base Python - Partie 1
Traitement d'image avec Python (partie 2)
Etudier Python avec freeCodeCamp part1
Images en bordure avec python Partie 1
Application Python: Pandas Partie 1: Basique
Application Python: Pandas Partie 2: Série
Grattage avec Selenium + Python Partie 1
Python: prévision de survie de navire, partie 2
Python
Python: Apprentissage supervisé: Hyper Paramètres Partie 1
Mémo de grammaire de base Python (1)
Python: prévision de survie des navires, partie 1
Etudier Python avec freeCodeCamp part2
Traitement d'image avec Python (partie 1)
Résolution de Nampre avec Python (partie 2)
Traitement d'image avec Python (3)
Python: prévision de survie des navires, partie 3
Python: prévision du cours de l'action, partie 2
UI Automation Partie 2 en Python
Python: apprentissage supervisé: Hyper Paramètre partie 2
Grattage avec Selenium + Python Partie 2
Principes de base de Python x SIG (1)
Python: prévision du cours de l'action partie 1
Translocation de fichiers CSV avec Python Partie 1
Principes de base de Python x SIG (3)
Jouez des nombres manuscrits avec Python Partie 1
objet perl et classe python partie 2.
Application de Python: Nettoyage des données Partie 1: Notation Python
[Automatisé avec python! ] Partie 1: fichier de configuration
Application Python: Traitement des données # 3: Format des données
Introduction à Python Hands On Partie 1
Etudier Python Part.1 Créer un environnement
Application Python: Numpy Partie 3: Double tableau
Principes de base de Python x SIG (partie 2)
objet perl et classe python partie 1.
Automatisez des tâches simples avec Python Part0
Application Python: visualisation de données partie 1: basique
[Automatisé avec python! ] Partie 2: Fonctionnement des fichiers
python kafka
datetime partie 1
Les bases de Python ⑤
Résumé Python
Python intégré
Notation d'inclusion Python
Technique Python
Homebrew Python Partie 3 - Programme de recherche de produits d'Amazon
Étudier Python
Compte à rebours Python 2.7
Mémorandum Python
Python FlowFishMaster