Diskussion:Workshop QGIS Python GeoPython 2017: Unterschied zwischen den Versionen

Aus Geoinformation HSR
Wechseln zu: Navigation, Suche
K
K
Zeile 29: Zeile 29:
 
Writing:
 
Writing:
 
* How to install and share an Expression Function?
 
* How to install and share an Expression Function?
** Copy to %home%/.qgis2/ python/ expressions / (?)
+
** Save and Load in "Function Edtior" (saves to "%USERHOME%.qgis2\python\expressions" (where %USERHOME% under Windows is e.g. "C:\Users\sfkeller\").
** Add them to qgis2/python/startup.py
+
** Add Fn. to qgis2/python/startup.py
** In any (own and loaded) plugin
+
** Add Fn. to any (own and loaded) QGIS plugin
** In the "Expresion Plus Plugin"  
+
** Add Fn. to the "Expresion Plus Plugin"  
 
* Debugging:  
 
* Debugging:  
** print
+
** use "print"
** use pdb
+
** use pdb (see QGIS docs and giswiki)
** (Remote Debug Plugin)  
+
** (use Remote Debug Plugin)  
 
* FAQ
 
* FAQ
 
** How to store a value in PyQGIS? Use QSettings (/.qgis) or QGISProject (.qgs)
 
** How to store a value in PyQGIS? Use QSettings (/.qgis) or QGISProject (.qgs)

Version vom 9. März 2017, 14:55 Uhr

See also

Custom Python Expression Functions for QGIS

Possible examples:

  • Function reading from other feature properties
  • Function reading from other layers (1:1)
  • Functions aka system variables and "Singletons" like layer properties or number sequence (spcial Plugin needed?)
  • Function for remote webservice: geocoding (reading from the internet)

QGIS 2.18.x LTE

Where are Expression Functions used?

  • Processing => Refactor fields

Use cases:

  • z.B. env('USERNAME')
  • Autoincrement / Sequence => QGIS 2.18 default Werte (QGIS 3 geplant)
  • Add new (calculated) field

Plugins:

  • ExpressionPlus (for QGIS)
  • refFunctions
  • spatialJoin
  • AutoFields (obsolete)

Writing:

  • How to install and share an Expression Function?
    • Save and Load in "Function Edtior" (saves to "%USERHOME%.qgis2\python\expressions" (where %USERHOME% under Windows is e.g. "C:\Users\sfkeller\").
    • Add Fn. to qgis2/python/startup.py
    • Add Fn. to any (own and loaded) QGIS plugin
    • Add Fn. to the "Expresion Plus Plugin"
  • Debugging:
    • use "print"
    • use pdb (see QGIS docs and giswiki)
    • (use Remote Debug Plugin)
  • FAQ
    • How to store a value in PyQGIS? Use QSettings (/.qgis) or QGISProject (.qgs)


Notes:

Add attributes from a layer in the project or an external file (csv) to a layer (or the composer?) using insert expression? Create a custom expression python function to do this: http://nathanw.net/2012/11/10/user-defined-expression-functions-for-qgis/

How to import a user defined expression functions on QGIS start up. => Add them to qgis2/python/startup.py

Given polygon layer and a point one, calculate for each polygon feature, the number of points that it covers: https://lists.osgeo.org/pipermail/qgis-user/2016-October/038139.html http://gis.stackexchange.com/questions/212415/referencing-to-features-geometry-in-an-expression/212762#212762

Automatic Field Calculator Plugin: http://plugins.qgis.org/plugins/AutoFields/

Expressions Plus Plugin - Extra functions for the expression engine which didn't make it into QGIS 2.0: https://plugins.qgis.org/plugins/qgsexpressionsplus/

Resource Sharing Plugin (http://plugins.qgis.org/plugins/qgis_resource_sharing/) E.g. https://github.com/mara91/qgis_styles.git