QGIS + Python Partie 1

――Depuis que je viens de commencer à étudier les SIG (QGIS), il y a beaucoup de doutes sur ma compréhension.

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

Préparation

--Sélectionnez "Python Console" dans "Plugins" dans la barre de menu QGIS.

Vérifier la version de Python

test.py


import platform
print(platform.python_version())

Vérifier le chemin d'exécution de Python

test.py


import os
print(os.getcwd())

Ajouter une couche vectorielle

test.py


filePath='C:/Users/xxxx/Documents/GIS DataBase/PyTest/lay01.shp'
iface.addVectorLayer(filePath,'test','ogr')

--Premier argument: chemin du fichier

Obtenir la couche active

--Sélectionnez le calque à l'avance avec une souris ou autre.

test.py


layer=iface.activeLayer()
print('\n'.join(dir(layer)))

Examiner le type de géométrie d'un calque

――Il semble que les points (points), les lignes (polylignes, lignes) et les polygones (faces) ne peuvent pas être mélangés dans la couche vectorielle de QGIS?.

--Les points, les lignes et les polygones sont appelés collectivement géométrie.

test.py


layer=iface.activeLayer()
type = layer.geometryType()
if type == QGis.Point :
    print('Point')
elif type == QGis.Line :
    print('Line')
elif type == QGis.Polygon:
    print('Polygon')

Sortie des attributs de l'entité sélectionnée (polygone sélectionné)

test.py


layer=iface.activeLayer()
features = layer.selectedFeatures()

for feature in features:
    print(feature['id'])

--Utilisez layer.getFeatures () si vous voulez cibler toutes les entités sur la couche active, avec ou sans sélection.

test.py


layer=iface.activeLayer()
features = layer.getFeatures()

for feature in features:
    print(feature['id'])

Sortie des coordonnées de sommet de l'entité (polygone)

test.py


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

layer=iface.activeLayer()

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

if layer.geometryType() != QGis.Polygon:
    print(u'Le type de géométrie du calque actif n'est pas un polygone.')

print(u'Couche active{0}Exécute le processus pour.'.format(layer.name()))
print('')

for feature in layer.getFeatures():

    print(u'ID={0}'.format(feature['id']))
    if feature.geometry().isMultipart():
        polygons = feature.geometry().asMultiPolygon()
    else:
        polygons = [ feature.geometry().asPolygon() ]
                
    for polygon in polygons:
        for vertices in polygon:
            for vertex in vertices:
                print('X={0:.9f}  Y={1:.9f}'.format(vertex.x(),vertex.y()))
 
    print('')

--Le sommet ci-dessus est une instance de class'qgis._core.QgsPoint'

Obtenir la boîte englobante d'un calque

--Obtenir la boîte englobante pour toutes les entités de la couche --La boîte englobante est la classe QgsRectangle

test.py


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

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

box = layer.extent()
print('xMinimum={0:.9f}'.format(box.xMinimum()))
print('xMaximum={0:.9f}'.format(box.xMaximum()))
print('yMinimum={0:.9f}'.format(box.yMinimum()))
print('yMaximum={0:.9f}'.format(box.yMaximum()))
print('width={0:.9f}'.format(box.width()))
print('height={0:.9f}'.format(box.height()))

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
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
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
Les bases de Python ⑤
Résumé Python
Python intégré
Technique Python
Homebrew Python Partie 3 - Programme de recherche de produits d'Amazon
Étudier Python
Compte à rebours Python 2.7
Mémorandum Python
Création d'interface graphique en python à l'aide de tkinter partie 1
astuces python
numpy partie 1
Modulation et démodulation AM avec Python Partie 2
Application de Python: visualisation de données Partie 3: divers graphiques
fonction python ①