Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
Nächste ÜberarbeitungBeide Seiten der Revision
qgis:advanced:lernpfad-d:qgis-python-scripting [2019/09/03 17:47] – Externe Bearbeitung 127.0.0.1qgis:advanced:lernpfad-d:qgis-python-scripting [2020/02/23 07:37] admin
Zeile 1: Zeile 1:
-======QGIS3: Modellierung, PyQGIS und Plugin-Entwicklung======+======QGIS3: Modellierung, PyQGIS und Plugin-Entwicklung*======
  
 +QGIS bietet - wie die meißten OpenSource Programme - viele Möglichkeiten der Erweiterung. Findet man für eine Fragestellung oder ein Problem kein passendes Plugin, so kann man sich auf verschiedenen Wegen selbst daran machen, eigene Skripte und Erweiterungen zu schreiben. Für Nicht-Skripter gibt es die Möglichkeit, visuell mit Hilfe der **Prozessmodelierung** ([[qgis:advanced:lernpfad-d:grafische-modellierung-processing-modeler|]]) eigene Skripte oder Erweiterungen zu entwickeln. Bevor jedoch eine Erweiterung auch wirklich als Erweiterung allen anderen zur Verfügung steht, müssen strikte Vorgaben beachtet werden...
  
-QGIS bietet wie die meißten OpenSource Programme viele Möglichkeiten der ErweiterungFindet man für eine Fragestellung oder ein Problem kein passendes Plugin, so kann man sich auf verschiedenen Wegen selbst daran machen, eigene Skripte und Erweiterungen zu schreiben. Für Nicht-Skripter gibt es die Möglichkeitvisuell mit Hilfe des *Graphical Modeler* (Prozessmodelierung) eigene Skripte oder Erweiterungen zu entwickelnBevor jedoch eine Erweiterung auch wirklich als Erweiterung allen anderen zur Verfügung steht, müssen strikte Vorgaben beachtet werden...+=====Entwicklung von Arbeitsabläufen mit dem Graphical Modeler===== 
 +{{ :qgis:advanced:images:graphicalmodeler-py-export-310.png?direct|}} 
 +In der Lektion [[qgis:advanced:lernpfad-d:grafische-modellierung-processing-modeler|]] wird dargestelltwie man mit der Graphischen Modellierung ein einfaches Modell zum Ablussregime erstelltDieses steht über die Processing Toolbox zur Verfügung oder kann als *.model3-Datei abgespeichert und ausgetauscht werden. Hiermit lassen sich bereits manche Arbeitsabläufe erheblich erleichtern und optimieren
  
-=====Entwicklung von Abeitsabläufen mit dem Graphical Modeler=====+<WRAP tip> 
 +Seit QGIS 3.10 ist es wieder möglich, ein im Graphical Modeler erzeugtes Modell **in einen sauberen Python Code zu überführen**! Diese eröffnet viele Möglichkeiten: So kann man den Code //hübsch nachberabeiten// oder mit Hilfe des Plugin Builder zu einem Plugin weiterentwickeln! 
 +</WRAP>
  
  
-In der Lektion [[/courses/QGISADVANCED/document/learning_path/LP-IV-Spezialthemen/Grafische-Modellierung-Processing-Modeler.html|LP IV: Graphische Modellierung / Graphical Modeler ]]wird dargestellt, wie man mit der Graphischen Modellierung ein einfaches Modell zum Ablussregime erstellt. Dieses steht über die Processing Toolbox zur Verfügung oder kann als *.model3-Datei abgespeichert und ausgetauscht werden. Hiermit lassen sich bereits manche Arbeitsabläufe erheblich erleichtern und optimieren. +=====PyQGIS Scripting=====
  
-<WRAP info>**Hinweis: **Vor QGIS3 war es noch möglich, ein Modell als Python-Script zu speichern, welches man mit ein paar weiteren Arbeitsschritten zu einem Plugin weiterentwickeln konnteZur Zeit geht das nicht, ist aber "in Arbeit"(Stand 28.11.2018, QGIS 3.4.2)</WRAP>=====PyQGIS Scripting=====+Schon seit QGIS Version 0.9 baut QGIS auf Python. Die meisten Plugins sind in Python programmiert und über QGIS lassen sich Python-Scripte direkt über die Konsole schreiben, ausführen oder testen (Erweiterungen -> Python Konsole)(Abb1).
  
- +[{{:qgis:advanced:images:selection-005.png?direct|**Abb. 1:** Die Pyhton Konsole von QGIS3.4}}] 
-Schon seit QGIS Version 0.9 baut QGIS auf Python. Die meißten Plugins sind in Python programmiert und über QGIS lassen sich Python-Scripte direkt über die Konsole schreiben, ausführen oder testen (Erweiterungen -> Python Konsole)(Abb. 1). +[{{:qgis:advanced:images:processingtoolboxscipting.png?direct|**Abb. 2:** Python Script aus Vorlage erzeugen}}]
- +
-{{:courses:QGISADVANCED:document:images:selection-005.png}}Abb. 1: Die Pyhton Konsole von QGIS3.4{{:courses:QGISADVANCED:document:images:processingtoolboxscipting.png}}Abb. 2: Python Script aus Vorlage erzeugen+
  
 Bei der Umstellung von QGIS 2.x auf QGIS 3.x wurde der Sprung von Python2 zu Python3 gewagt. Das bedeutet leider, dass  QGIS2 Scripte unter QGIS3 mehr lauffähig sind! Möchte man in QGIS3 ein lauffähiges Modul programmieren, welches die Processing-UI verwendet, so muss man sich zudem an neue Vorgaben halten. Die Umstelung ist groß, der Vorteil daraus aber ebenso - QGIS ist damit bereit für die Zukunft! Literatur, e-Books und ausführliche Tutorials gibt es nur wenige, QGIS3 ist noch zu jung, aber: Bei der Umstellung von QGIS 2.x auf QGIS 3.x wurde der Sprung von Python2 zu Python3 gewagt. Das bedeutet leider, dass  QGIS2 Scripte unter QGIS3 mehr lauffähig sind! Möchte man in QGIS3 ein lauffähiges Modul programmieren, welches die Processing-UI verwendet, so muss man sich zudem an neue Vorgaben halten. Die Umstelung ist groß, der Vorteil daraus aber ebenso - QGIS ist damit bereit für die Zukunft! Literatur, e-Books und ausführliche Tutorials gibt es nur wenige, QGIS3 ist noch zu jung, aber:
- 
- 
  
 Eine gute Einfühung in das "neue" QGIS PyQGIS Scripting erhält man von Anita Graser: [[https://anitagraser.com/pyqgis-101-introduction-to-qgis-python-programming-for-non-programmers/|PythonQGIS 101]] Eine gute Einfühung in das "neue" QGIS PyQGIS Scripting erhält man von Anita Graser: [[https://anitagraser.com/pyqgis-101-introduction-to-qgis-python-programming-for-non-programmers/|PythonQGIS 101]]
- 
- 
  
 Die QGIS Python API-Dokumentation findet man hier: [[https://qgis.org/pyqgis/master/index.html|QGIS PyAPI]] Die QGIS Python API-Dokumentation findet man hier: [[https://qgis.org/pyqgis/master/index.html|QGIS PyAPI]]
  
- +Ab QGIS 3.4 erhält man ein Template beim Erstellen eines neues Skripts: ''Verarbeitung -> Verarbeitungswerkzeuge'' (Abb. 2)
- +
-Ab QGIS 3.4 erhält man ein Template beim Erstellen eines neues Skripts: *Verarbeitung -> Verarbeitungswerkzeuge *(Abb. 2)+
  
 =====Plugin-Entwicklung===== =====Plugin-Entwicklung=====
  
 +Hat man einen Code erstellt - ob mit dem Graphical Modeler oder händisch - lässt sich der generierte Script jederzeit aus der Python Console ausführen oder in die Toolbox integrieren. Möchte man es aber allen QGIS-Nutzern über das (oder ein eigenes) Repository verfügbar machen, so kann man sich eines Plugins names **"Plugin Builder 3"** bedienen. Es hilft einem, die Vorgaben für QGIS-Plugins zu erfüllen und generiert am Ende einen "sauberen" Code.
  
-Hat man einen Code erstellt - ob mit dem Graphical Modeler oder händisch - lässt sich der generierte Script jederzeit aus der Python Console ausführen oder in die Toolbox integrieren. Möchte man es aber allen QGIS-Nutzern über das Repository verfügbar machenso kann man sich eines Plugins names **"Plugin Builder 3"** bedienenEs hilft einem, die Vorgaben für QGIS-Plugins zu erfüllen und generiert am Ende einen "sauberen" Code+<WRAP info> 
- +Häufig stellt sich die Fragewas bei der Veröffentlichung eines selbst geschriebenen Plugins **lizenzrechtlich** beachtet werden mussKurz: **Ein für QGIS geschriebenes Plugin muss die gleichen lizenrechtlichen Bedingungen erfüllen, wie QGIS selbst**, nämlich [[https://docs.qgis.org/3.4/en/docs/user_manual/appendices/appendices.html|GPL]]! Mehr dazu: http://blog.qgis.org/2016/05/29/licensing-requirements-for-qgis-plugins/ 
- +</WRAP>
- +
-  +
- +
- +
- +
-  +
- +
- +
- +
-  +
- +
- +
- +
-  +
- +
- +
- +
-  +
- +
- +
- +
- +