QGIS + Python Teil 1

――Da ich gerade angefangen habe, GIS (QGIS) zu studieren, gibt es viele Zweifel an meinem Verständnis.

Umgebung zur Überprüfung der Ausführungsoperation

Vorbereitung

--Wählen Sie "Python Console" aus "Plugins" in der QGIS-Menüleiste. --Wählen Sie die Editoranzeige über das Python-Konsolensymbol Image.png

Überprüfen Sie die Python-Version

test.py


import platform
print(platform.python_version())

Überprüfen Sie den Python-Ausführungspfad

test.py


import os
print(os.getcwd())

Vektorebene hinzufügen

test.py


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

Holen Sie sich aktive Ebene

--Wählen Sie die Ebene im Voraus mit einer Maus oder ähnlichem.

test.py


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

Untersuchen Sie den Geometrietyp einer Ebene

――Es scheint, dass Punkte (Punkte), Linien (Polylinien, Linien) und Polygone (Flächen) nicht in der Vektorebene von QGIS gemischt werden können.

--Punkte, Linien und Polygone werden gemeinsam als Geometrie bezeichnet.

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')

Ausgabe der Attribute des ausgewählten Features (ausgewähltes Polygon)

test.py


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

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

--Verwenden Sie "layer.getFeatures ()", wenn Sie alle Features auf dem aktiven Layer mit oder ohne Auswahl als Ziel festlegen möchten.

test.py


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

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

Geben Sie die Scheitelpunktkoordinaten des Features (Polygon) aus.

test.py


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

layer=iface.activeLayer()

if layer is None :
    print(u'Es gibt keine aktive Ebene.')

if layer.geometryType() != QGis.Polygon:
    print(u'Der Geometrietyp der aktiven Ebene ist kein Polygon.')

print(u'Aktive Schicht{0}Führt den Prozess für aus.'.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('')

Holen Sie sich den Begrenzungsrahmen einer Ebene

test.py


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

if layer is None :
    print(u'Es gibt keine aktive Ebene.')

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()))

Referenzmaterial

Recommended Posts

QGIS + Python Teil 2
QGIS + Python Teil 1
Python: Scraping Teil 1
Lösung Wenn Sie Python 3.6 oder höher verwenden, benötigen Sie die enum34-Bibliothek ebenfalls nicht. Deinstallieren Sie sie daher und verwenden Sie das Standard-Enum-Modul. Enum34 deinstallieren Führen Sie nach der Deinstallation von enum34 erneut `pip install optuna` aus und Sie haben Optuna erfolgreich installiert! Python, pip, Python3, enum, OptunaPython3 Beginn Teil 1
Python: Scraping Teil 2
Python Basic Memorandum Teil 2
Python-Grundnotiz - Teil 2
Python-Grundnotiz - Teil 1
Bildverarbeitung mit Python (Teil 2)
Python mit freeCodeCamp Teil1 studieren
Python-Anwendung: Pandas Teil 1: Basic
Python-Anwendung: Pandas Teil 2: Serie
Schaben mit Selen + Python Teil 1
Python: Schiffsüberlebensvorhersage Teil 2
Python
Python: Überwachtes Lernen: Hyperparameter Teil 1
Python-Grammatik-Grundnotiz (1)
Python: Schiffsüberlebensvorhersage Teil 1
Python studieren mit freeCodeCamp part2
Bildverarbeitung mit Python (Teil 1)
Nampre mit Python lösen (Teil 2)
Bildverarbeitung mit Python (3)
Python: Schiffsüberlebensvorhersage Teil 3
Python: Aktienkursprognose Teil 2
UI-Automatisierung Teil 2 in Python
Python: Überwachtes Lernen: Hyperparameter Teil 2
Schaben mit Selen + Python Teil 2
Python x GIS-Grundlagen (1)
Python: Aktienkursprognose Teil 1
Verschieben von CSV-Dateien mit Python Teil 1
Perl-Objekt und Python-Klasse Teil 2.
Anwendung von Python: Datenbereinigung Teil 1: Python-Notation
[Mit Python automatisiert! ] Teil 1: Datei einstellen
Python-Anwendung: Datenverarbeitung # 3: Datenformat
Einführung in Python Hands On Teil 1
Python studieren Teil 1 Erstellen einer Umgebung
Python-Anwendung: Numpy Teil 3: Double Array
Grundlagen von Python x GIS (Teil 2)
Perl-Objekt und Python-Klasse Teil 1.
Automatisieren Sie einfache Aufgaben mit Python Part0
Python-Anwendung: Datenvisualisierung Teil 1: Grundlegend
[Mit Python automatisiert! ] Teil 2: Dateivorgang
Kafka Python
Python-Grundlagen ⑤
Python-Zusammenfassung
Eingebaute Python
Python-Technik
Homebrew Python Teil 3 - Das Produktsuchprogramm von Amazon
Python studieren
Python 2.7 Countdown
Python-Memorandum
GUI-Erstellung in Python mit tkinter Teil 1
Python-Tipps
numpy Teil 1
AM-Modulation und Demodulation mit Python Part 2
Anwendung von Python: Datenvisualisierung Teil 3: Verschiedene Grafiken
Python-Funktion ①