<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de-CH">
	<id>https://giswiki.ch/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Simran</id>
	<title>Geometa Lab OST - Benutzerbeiträge [de-ch]</title>
	<link rel="self" type="application/atom+xml" href="https://giswiki.ch/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Simran"/>
	<link rel="alternate" type="text/html" href="https://giswiki.ch/Spezial:Beitr%C3%A4ge/Simran"/>
	<updated>2026-04-27T23:17:13Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.39.10</generator>
	<entry>
		<id>https://giswiki.ch/index.php?title=Workshop_QGIS_Python_GeoPython_2017&amp;diff=60466</id>
		<title>Workshop QGIS Python GeoPython 2017</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=Workshop_QGIS_Python_GeoPython_2017&amp;diff=60466"/>
		<updated>2017-05-08T09:31:15Z</updated>

		<summary type="html">&lt;p&gt;Simran: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Workshop about &#039;&#039;&#039;QGIS and Python - Easy Programming QGIS with Python for Expression Functions&#039;&#039;&#039; &lt;br /&gt;
* by Prof. Stefan Keller and Simran Khare, Geometa Lab at HSR Rapperswil&lt;br /&gt;
* May 8, 2017, 16:00 - 18:00, Muttenz/Basel, https://2017.geopython.net/#schedule&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Expressions in QGIS are very powerful and are used in many core features including selection, calculating field values and styling. QGIS also supports user-defined expressions and functions written in the popular Python programming language. These functions can be used within the expression engine and function editor. This gives users the capability to easily automate their tasks.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This short workshop will give the audience an overview of Python programming in QGIS (PyQGIS), before diving into writing custom Python functions and using them in expressions to perform various tasks to calculate field values. These calculations can be based on different input sources like properties from the same layer, from features of other layers or even by accessing webservices.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;In conclusion, it will be discussed how these programming skills can be used for the QGIS processing framework and for implementing plugins in QGIS Version 2 and 3.&lt;br /&gt;
&lt;br /&gt;
== Programm ==&lt;br /&gt;
&lt;br /&gt;
# 16:00-16:15 Welcome and QGIS installation (Stefan)&lt;br /&gt;
# 16:15-16:30 Intro to QGIS (Stefan)&lt;br /&gt;
# 16:30-17:00 Intro to PyQGIS and Expression Functions (EFns) (Stefan)&lt;br /&gt;
# 17:00-17:45 Custom EFns with Hands-on Exercises (Simran &amp;amp; Stefan)&lt;br /&gt;
# 17:45-18:00 Wrapup &amp;amp; Outlook (Stefan)&lt;br /&gt;
&lt;br /&gt;
== Material ==&lt;br /&gt;
&lt;br /&gt;
* This website: http://bit.ly/GeoPython17-QGIS-WS&lt;br /&gt;
* Simran&#039;s github repo: https://github.com/simran001/GeoPython-Workshop&lt;br /&gt;
* Simran&#039;s Slides: https://www.dropbox.com/s/9wvfdczszamvpvb/Geopython-workshop.pdf?dl=0 &lt;br /&gt;
* Stefan&#039;s Slides: tba.&lt;br /&gt;
&lt;br /&gt;
== Hardware and Software ==&lt;br /&gt;
&lt;br /&gt;
Hardware: Bring your own device! &lt;br /&gt;
* You need a usual computer (Windows, Linux, Mac) with admin credentials (in case of QGIS is not yet installed)&lt;br /&gt;
* WiFi!&lt;br /&gt;
&lt;br /&gt;
Software:&lt;br /&gt;
* QGIS: We need current QGIS Version 2.18.x. In case of problems install QGIS LTR Version 2.14.6. Prefer Standalone-Installer over others. No Plugins needed; in they can be loaded later on if needed.&lt;br /&gt;
* Webbrowser&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Veranstaltungen]] [[Kategorie:QGIS]] [[Kategorie:Python]]&lt;/div&gt;</summary>
		<author><name>Simran</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Workshop_QGIS_Python_GeoPython_2017&amp;diff=60464</id>
		<title>Workshop QGIS Python GeoPython 2017</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=Workshop_QGIS_Python_GeoPython_2017&amp;diff=60464"/>
		<updated>2017-05-08T07:57:12Z</updated>

		<summary type="html">&lt;p&gt;Simran: /* Programm */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Workshop about &#039;&#039;&#039;QGIS and Python - Easy Programming QGIS with Python for Expression Functions&#039;&#039;&#039; &lt;br /&gt;
* by Prof. Stefan Keller and Simran Khare, Geometa Lab at HSR Rapperswil&lt;br /&gt;
* May 8, 2017, 16:00 - 18:00, Muttenz/Basel, https://2017.geopython.net/#schedule&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Expressions in QGIS are very powerful and are used in many core features including selection, calculating field values and styling. QGIS also supports user-defined expressions and functions written in the popular Python programming language. These functions can be used within the expression engine and function editor. This gives users the capability to easily automate their tasks.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This short workshop will give the audience an overview of Python programming in QGIS (PyQGIS), before diving into writing custom Python functions and using them in expressions to perform various tasks to calculate field values. These calculations can be based on different input sources like properties from the same layer, from features of other layers or even by accessing webservices.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;In conclusion, it will be discussed how these programming skills can be used for the QGIS processing framework and for implementing plugins in QGIS Version 2 and 3.&lt;br /&gt;
&lt;br /&gt;
== Programm ==&lt;br /&gt;
&lt;br /&gt;
# 16:00-16:15 Welcome and QGIS installation (Stefan)&lt;br /&gt;
# 16:15-16:30 Intro to QGIS (Stefan)&lt;br /&gt;
# 16:30-17:00 Intro to PyQGIS and Expression Functions (EFns) (Stefan)&lt;br /&gt;
# 17:00-17:45 Custom EFns with Hands-on Exercises (Simran &amp;amp; Stefan)&lt;br /&gt;
# 17:45-18:00 Wrapup &amp;amp; Outlook (Stefan)&lt;br /&gt;
&lt;br /&gt;
== Material ==&lt;br /&gt;
&lt;br /&gt;
* This website: http://bit.ly/GeoPython17-QGIS-WS&lt;br /&gt;
* Simran&#039;s github repo: https://github.com/simran001/GeoPython-Workshop&lt;br /&gt;
* Simran&#039;s Slides: ...&lt;br /&gt;
* Stefan&#039;s Slides: tba.&lt;br /&gt;
&lt;br /&gt;
== Hardware and Software ==&lt;br /&gt;
&lt;br /&gt;
Hardware: Bring your own device! &lt;br /&gt;
* You need a usual computer (Windows, Linux, Mac) with admin credentials (in case of QGIS is not yet installed)&lt;br /&gt;
* WiFi!&lt;br /&gt;
&lt;br /&gt;
Software:&lt;br /&gt;
* QGIS: We need current QGIS Version 2.18.x. In case of problems install QGIS LTR Version 2.14.6. Prefer Standalone-Installer over others. No Plugins needed; in they can be loaded later on if needed.&lt;br /&gt;
* Texteditor, like Notepad++&lt;br /&gt;
* Webbrowser&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Veranstaltungen]] [[Kategorie:QGIS]] [[Kategorie:Python]]&lt;/div&gt;</summary>
		<author><name>Simran</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Workshop_QGIS_Python_GeoPython_2017&amp;diff=60463</id>
		<title>Workshop QGIS Python GeoPython 2017</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=Workshop_QGIS_Python_GeoPython_2017&amp;diff=60463"/>
		<updated>2017-05-08T07:55:29Z</updated>

		<summary type="html">&lt;p&gt;Simran: /* Material */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Workshop about &#039;&#039;&#039;QGIS and Python - Easy Programming QGIS with Python for Expression Functions&#039;&#039;&#039; &lt;br /&gt;
* by Prof. Stefan Keller and Simran Khare, Geometa Lab at HSR Rapperswil&lt;br /&gt;
* May 8, 2017, 16:00 - 18:00, Muttenz/Basel, https://2017.geopython.net/#schedule&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Expressions in QGIS are very powerful and are used in many core features including selection, calculating field values and styling. QGIS also supports user-defined expressions and functions written in the popular Python programming language. These functions can be used within the expression engine and function editor. This gives users the capability to easily automate their tasks.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This short workshop will give the audience an overview of Python programming in QGIS (PyQGIS), before diving into writing custom Python functions and using them in expressions to perform various tasks to calculate field values. These calculations can be based on different input sources like properties from the same layer, from features of other layers or even by accessing webservices.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;In conclusion, it will be discussed how these programming skills can be used for the QGIS processing framework and for implementing plugins in QGIS Version 2 and 3.&lt;br /&gt;
&lt;br /&gt;
== Programm ==&lt;br /&gt;
&lt;br /&gt;
# 16:00-16:15 Welcome and QGIS installation (Stefan)&lt;br /&gt;
# 16:15-16:30 Intro to QGIS (Stefan)&lt;br /&gt;
# 16:30-17:00 Intro to PyQGIS and Expression Functions (EFns) (Simran &amp;amp; Stefan)&lt;br /&gt;
# 17:00-17:45 Custom EFns with Hands-on Exercises (Simran &amp;amp; Stefan)&lt;br /&gt;
# 17:45-18:00 Wrapup &amp;amp; Outlook (Stefan)&lt;br /&gt;
&lt;br /&gt;
== Material ==&lt;br /&gt;
&lt;br /&gt;
* This website: http://bit.ly/GeoPython17-QGIS-WS&lt;br /&gt;
* Simran&#039;s github repo: https://github.com/simran001/GeoPython-Workshop&lt;br /&gt;
* Simran&#039;s Slides: ...&lt;br /&gt;
* Stefan&#039;s Slides: tba.&lt;br /&gt;
&lt;br /&gt;
== Hardware and Software ==&lt;br /&gt;
&lt;br /&gt;
Hardware: Bring your own device! &lt;br /&gt;
* You need a usual computer (Windows, Linux, Mac) with admin credentials (in case of QGIS is not yet installed)&lt;br /&gt;
* WiFi!&lt;br /&gt;
&lt;br /&gt;
Software:&lt;br /&gt;
* QGIS: We need current QGIS Version 2.18.x. In case of problems install QGIS LTR Version 2.14.6. Prefer Standalone-Installer over others. No Plugins needed; in they can be loaded later on if needed.&lt;br /&gt;
* Texteditor, like Notepad++&lt;br /&gt;
* Webbrowser&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Veranstaltungen]] [[Kategorie:QGIS]] [[Kategorie:Python]]&lt;/div&gt;</summary>
		<author><name>Simran</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Workshop_QGIS_Python_GeoPython_2017&amp;diff=60438</id>
		<title>Workshop QGIS Python GeoPython 2017</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=Workshop_QGIS_Python_GeoPython_2017&amp;diff=60438"/>
		<updated>2017-05-05T12:39:46Z</updated>

		<summary type="html">&lt;p&gt;Simran: /* Programm */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Workshop about &#039;&#039;&#039;QGIS and Python - Easy Programming QGIS with Python for Expression Functions&#039;&#039;&#039; &lt;br /&gt;
* by Keller and Simran Khare, Geometa Lab at HSR Rapperswil&lt;br /&gt;
* May 8, 2017, 16:00 - 18:00, Muttenz/Basel, https://2017.geopython.net/#schedule&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Expressions in QGIS are very powerful and are used in many core features including selection, calculating field values and styling. QGIS also supports user-defined expressions and functions written in the popular Python programming language. These functions can be used within the expression engine and function editor. This gives users the capability to easily automate their tasks.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This short workshop will give the audience an overview of Python programming in QGIS (PyQGIS), before diving into writing custom Python functions and using them in expressions to perform various tasks to calculate field values. These calculations can be based on different input sources like properties from the same layer, from features of other layers or even by accessing webservices.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;In conclusion, it will be discussed how these programming skills can be used for the QGIS processing framework and for implementing plugins in QGIS Version 2 and 3.&lt;br /&gt;
&lt;br /&gt;
== Programm ==&lt;br /&gt;
&lt;br /&gt;
# 16:00-16:15 Welcome and QGIS installation (Stefan)&lt;br /&gt;
# 16:15-16:30 Intro to QGIS (Stefan)&lt;br /&gt;
# 16:30-17:00 Intro to PyQGIS (Simran &amp;amp; Stefan)&lt;br /&gt;
# 17:00-17:45 Intro to Custom Expression Functions (custom EFn) with hands on exercises  (Simran &amp;amp; Stefan)&lt;br /&gt;
## Select features by a custom EFn&lt;br /&gt;
## Define a Label and Map Tips by custom EFn&lt;br /&gt;
## Calculate a new field by a custom EFn&lt;br /&gt;
## Recap the above with OSM data&lt;br /&gt;
# 17:45-18:00 Wrapup (Stefan)&lt;br /&gt;
&lt;br /&gt;
Within this course attendees will learn...&lt;br /&gt;
* how to ...&lt;br /&gt;
&lt;br /&gt;
== Hardware and Software ==&lt;br /&gt;
&lt;br /&gt;
Hardware: Bring your own device! &lt;br /&gt;
* You need a usual computer (Windows, Linux, Mac) with admin credentials (in case of QGIS is not yet installed)&lt;br /&gt;
* WiFi which works!&lt;br /&gt;
&lt;br /&gt;
Software:&lt;br /&gt;
* QGIS: We need current QGIS Version 2.18.x. In case of problems install QGIS LTR Version 2.14.6. Prefer Standalone-Installer over others. No Plugins needed; in they can be loaded later on if needed.&lt;br /&gt;
* Browser&lt;br /&gt;
* Texteditor, like Notepad++&lt;br /&gt;
&lt;br /&gt;
== Material ==&lt;br /&gt;
&lt;br /&gt;
* tba. (work in progress)&lt;br /&gt;
* Handouts&lt;br /&gt;
* http://www.qgistutorials.com/en/docs/custom_python_functions.html &lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Veranstaltungen]] [[Kategorie:QGIS]] [[Kategorie:Python]]&lt;/div&gt;</summary>
		<author><name>Simran</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Workshop_QGIS_Python_GeoPython_2017&amp;diff=60437</id>
		<title>Workshop QGIS Python GeoPython 2017</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=Workshop_QGIS_Python_GeoPython_2017&amp;diff=60437"/>
		<updated>2017-05-05T12:34:01Z</updated>

		<summary type="html">&lt;p&gt;Simran: /* Programm */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Workshop about &#039;&#039;&#039;QGIS and Python - Easy Programming QGIS with Python for Expression Functions&#039;&#039;&#039; &lt;br /&gt;
* by Keller and Simran Khare, Geometa Lab at HSR Rapperswil&lt;br /&gt;
* May 8, 2017, 16:00 - 18:00, Muttenz/Basel, https://2017.geopython.net/#schedule&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Expressions in QGIS are very powerful and are used in many core features including selection, calculating field values and styling. QGIS also supports user-defined expressions and functions written in the popular Python programming language. These functions can be used within the expression engine and function editor. This gives users the capability to easily automate their tasks.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This short workshop will give the audience an overview of Python programming in QGIS (PyQGIS), before diving into writing custom Python functions and using them in expressions to perform various tasks to calculate field values. These calculations can be based on different input sources like properties from the same layer, from features of other layers or even by accessing webservices.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;In conclusion, it will be discussed how these programming skills can be used for the QGIS processing framework and for implementing plugins in QGIS Version 2 and 3.&lt;br /&gt;
&lt;br /&gt;
== Programm ==&lt;br /&gt;
&lt;br /&gt;
# 16:00-16:15 Welcome and QGIS installation (Stefan)&lt;br /&gt;
# 16:15-16:30 Intro to QGIS (Stefan)&lt;br /&gt;
# 16:30-17:00 Intro to PyQGIS (Simran &amp;amp; Stefan)&lt;br /&gt;
# 17:00-17:45 Hands on exercises about Custom Expression Functions (custom EFn) (Simran &amp;amp; Stefan)&lt;br /&gt;
## Select features by a custom EFn&lt;br /&gt;
## Define a Label and Map Tips by custom EFn&lt;br /&gt;
## Calculate a new field by a custom EFn&lt;br /&gt;
## Recap the above with OSM data&lt;br /&gt;
# 17:45-18:00 Wrapup (Stefan)&lt;br /&gt;
&lt;br /&gt;
Within this course attendees will learn...&lt;br /&gt;
* how to ...&lt;br /&gt;
&lt;br /&gt;
== Hardware and Software ==&lt;br /&gt;
&lt;br /&gt;
Hardware: Bring your own device! &lt;br /&gt;
* You need a usual computer (Windows, Linux, Mac) with admin credentials (in case of QGIS is not yet installed)&lt;br /&gt;
* WiFi which works!&lt;br /&gt;
&lt;br /&gt;
Software:&lt;br /&gt;
* QGIS: We need current QGIS Version 2.18.x. In case of problems install QGIS LTR Version 2.14.6. Prefer Standalone-Installer over others. No Plugins needed; in they can be loaded later on if needed.&lt;br /&gt;
* Browser&lt;br /&gt;
* Texteditor, like Notepad++&lt;br /&gt;
&lt;br /&gt;
== Material ==&lt;br /&gt;
&lt;br /&gt;
* tba. (work in progress)&lt;br /&gt;
* Handouts&lt;br /&gt;
* http://www.qgistutorials.com/en/docs/custom_python_functions.html &lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Veranstaltungen]] [[Kategorie:QGIS]] [[Kategorie:Python]]&lt;/div&gt;</summary>
		<author><name>Simran</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Workshop_QGIS_Python_GeoPython_2017&amp;diff=60436</id>
		<title>Workshop QGIS Python GeoPython 2017</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=Workshop_QGIS_Python_GeoPython_2017&amp;diff=60436"/>
		<updated>2017-05-05T12:25:09Z</updated>

		<summary type="html">&lt;p&gt;Simran: /* Programm */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Workshop about &#039;&#039;&#039;QGIS and Python - Easy Programming QGIS with Python for Expression Functions&#039;&#039;&#039; &lt;br /&gt;
* by Keller and Simran Khare, Geometa Lab at HSR Rapperswil&lt;br /&gt;
* May 8, 2017, 16:00 - 18:00, Muttenz/Basel, https://2017.geopython.net/#schedule&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Expressions in QGIS are very powerful and are used in many core features including selection, calculating field values and styling. QGIS also supports user-defined expressions and functions written in the popular Python programming language. These functions can be used within the expression engine and function editor. This gives users the capability to easily automate their tasks.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This short workshop will give the audience an overview of Python programming in QGIS (PyQGIS), before diving into writing custom Python functions and using them in expressions to perform various tasks to calculate field values. These calculations can be based on different input sources like properties from the same layer, from features of other layers or even by accessing webservices.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;In conclusion, it will be discussed how these programming skills can be used for the QGIS processing framework and for implementing plugins in QGIS Version 2 and 3.&lt;br /&gt;
&lt;br /&gt;
== Programm ==&lt;br /&gt;
&lt;br /&gt;
# 16:00-16:15 Welcome and QGIS installation (Stefan)&lt;br /&gt;
# 16:15-16:30 Intro to QGIS (Stefan)&lt;br /&gt;
# 16:30-17:00 Intro to PyQGIS (Simran &amp;amp; Stefan)&lt;br /&gt;
# 17:00-17:45 Hands on exercises about Custom Epression Functions (CEF) (Simran &amp;amp; Stefan)&lt;br /&gt;
## Select features by a CEF&lt;br /&gt;
## Define a Label and Map Tips by a CEF&lt;br /&gt;
## Calculate a new field by a CEF&lt;br /&gt;
## Recap the above with OSM data&lt;br /&gt;
# 17:45-18:00 Wrapup (Stefan)&lt;br /&gt;
&lt;br /&gt;
Within this course attendees will learn...&lt;br /&gt;
* how to ...&lt;br /&gt;
&lt;br /&gt;
== Hardware and Software ==&lt;br /&gt;
&lt;br /&gt;
Hardware: Bring your own device! &lt;br /&gt;
* You need a usual computer (Windows, Linux, Mac) with admin credentials (in case of QGIS is not yet installed)&lt;br /&gt;
* WiFi which works!&lt;br /&gt;
&lt;br /&gt;
Software:&lt;br /&gt;
* QGIS: We need current QGIS Version 2.18.x. In case of problems install QGIS LTR Version 2.14.6. Prefer Standalone-Installer over others. No Plugins needed; in they can be loaded later on if needed.&lt;br /&gt;
* Browser&lt;br /&gt;
* Texteditor, like Notepad++&lt;br /&gt;
&lt;br /&gt;
== Material ==&lt;br /&gt;
&lt;br /&gt;
* tba. (work in progress)&lt;br /&gt;
* Handouts&lt;br /&gt;
* http://www.qgistutorials.com/en/docs/custom_python_functions.html &lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Veranstaltungen]] [[Kategorie:QGIS]] [[Kategorie:Python]]&lt;/div&gt;</summary>
		<author><name>Simran</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Diskussion:Workshop_QGIS_Python_GeoPython_2017&amp;diff=60435</id>
		<title>Diskussion:Workshop QGIS Python GeoPython 2017</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=Diskussion:Workshop_QGIS_Python_GeoPython_2017&amp;diff=60435"/>
		<updated>2017-05-05T09:59:05Z</updated>

		<summary type="html">&lt;p&gt;Simran: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See also&lt;br /&gt;
* Step-by-step guide for the workshop on [https://github.com/simran001/GeoPython-Workshop/blob/master/README.md Github.]&lt;br /&gt;
* https://github.com/simran001/PyQGIS&lt;br /&gt;
* https://etherpad.coredump.ch/p/Python-Workshop&lt;br /&gt;
&lt;br /&gt;
User Defined or &#039;&#039;Custom Expression Functions (CEFs)&#039;&#039; can be used in ...&lt;br /&gt;
# &amp;quot;Layer &amp;gt; Properties &amp;gt; Tab Fields&amp;quot; in Button &amp;quot;Text Edit&amp;quot; in Default- and in Constraints-Field.&lt;br /&gt;
# &amp;quot;Layer &amp;gt; Properties &amp;gt; Tab Style&amp;quot; in &amp;quot;Label with&amp;quot;.&lt;br /&gt;
# &amp;quot;Select features using an expression&amp;quot;.&lt;br /&gt;
# &amp;quot;Field Calculator&amp;quot;.&lt;br /&gt;
# &amp;quot;Statistical Summary&amp;quot; Panel.&lt;br /&gt;
# &amp;quot;Map Tip&amp;quot; tool&lt;br /&gt;
# &amp;quot;Conditional formatting&amp;quot; in the attribute table (Create a new rule and set the condition to the output of a CEF). &lt;br /&gt;
# &amp;quot;Filtering features&amp;quot;. Switch to the form view in the attribute table (button on bottom right corner) &amp;gt; click on &#039;Show All Features&#039; (bottom left) and select &#039;Advanced Filter (Expression)&#039;.&lt;br /&gt;
# &amp;quot;Atlas Generation&amp;quot; in the Print Composer. Project &amp;gt; Print Composer &amp;gt; Check &#039;generate an atlas&#039; &amp;gt; Set CEF based values for page name, filter and output filename.&lt;br /&gt;
# &amp;quot;Rule based labeling&amp;quot;. Layer Properties &amp;gt; Labels &amp;gt; Select Rule based labeling from the drop-down menu &amp;gt; Click on the &#039;+&#039; button and add a CEF based filter (... button).&lt;br /&gt;
# (other places?)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Possible examples ==&lt;br /&gt;
# Function doing something &amp;quot;local&amp;quot; like from other field(s).&lt;br /&gt;
# Functions reading something like a &amp;quot;Singleton&amp;quot; like a system environment variable (usage &amp;quot;env(&#039;USERNAME&#039;)&amp;quot;) layer properties or number sequence (spcial Plugin needed?). &lt;br /&gt;
# Function for remote webservice: geocoding (reading from the internet).&lt;br /&gt;
# Out of scope: Function reading from other layers (rather candidate for a plugin).&lt;br /&gt;
&lt;br /&gt;
After the GeoPython Workshop, Simran makes pull request to Expression Plus Plugin adding &amp;quot;env()&amp;quot; fn.&lt;br /&gt;
&lt;br /&gt;
Optional (but highly demanded) use case: A user wants to create a layer (table) which as a primary key (id) which behaves like &#039;autoincrement&#039; when user edit a new feature. So user does not have to care about unique, sequential values for the PK, like autoincrement in MySQL). In QGIS 3 this is available when user chooses &amp;quot;UNIQUE&amp;quot; as constraint. In QGIS 2.18 (or before) there is a clever custom expression function needed. =&amp;gt; Solution?&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
Collected (special) use cases:&lt;br /&gt;
* Autoincrement / Sequence =&amp;gt; QGIS 2.18 default Werte (QGIS 3 geplant)&lt;br /&gt;
* 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&lt;br /&gt;
* 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/&lt;br /&gt;
&lt;br /&gt;
Plugins:&lt;br /&gt;
* ExpressionPlus (for QGIS) Extra functions for the expression engine which didn&#039;t make it into QGIS 2.0: https://plugins.qgis.org/plugins/qgsexpressionsplus/&lt;br /&gt;
* refFunctions: http://plugins.qgis.org/plugins/refFunctions/ &lt;br /&gt;
* spatialJoin (depends on refFunctions): http://plugins.qgis.org/plugins/spatialJoin/&lt;br /&gt;
* AutoFields (obsolete?) - Automatic Field Calculator Plugin: http://plugins.qgis.org/plugins/AutoFields/ &lt;br /&gt;
&lt;br /&gt;
Open:&lt;br /&gt;
* How to store a value in PyQGIS? Use QSettings (/.qgis) or QGISProject (.qgs)&lt;br /&gt;
* Resource Sharing Plugin (http://plugins.qgis.org/plugins/qgis_resource_sharing/). e.g. https://github.com/mara91/qgis_styles.git&lt;/div&gt;</summary>
		<author><name>Simran</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Diskussion:Workshop_QGIS_Python_GeoPython_2017&amp;diff=60433</id>
		<title>Diskussion:Workshop QGIS Python GeoPython 2017</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=Diskussion:Workshop_QGIS_Python_GeoPython_2017&amp;diff=60433"/>
		<updated>2017-05-04T23:07:22Z</updated>

		<summary type="html">&lt;p&gt;Simran: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See also&lt;br /&gt;
* Step-by-step guide for the workshop on [https://github.com/simran001/GeoPython-Workshop/blob/master/README.md Github.]&lt;br /&gt;
* https://github.com/simran001/PyQGIS&lt;br /&gt;
* https://etherpad.coredump.ch/p/Python-Workshop&lt;br /&gt;
&lt;br /&gt;
User Defined or &#039;&#039;Custom Expression Functions (CEFs)&#039;&#039; can be used in ...&lt;br /&gt;
# &amp;quot;Layer &amp;gt; Properties &amp;gt; Tab Fields&amp;quot; in Button &amp;quot;Text Edit&amp;quot; in Default- and in Constraints-Field.&lt;br /&gt;
# &amp;quot;Layer &amp;gt; Properties &amp;gt; Tab Style&amp;quot; in &amp;quot;Label with&amp;quot;.&lt;br /&gt;
# &amp;quot;Select features using an expression&amp;quot;.&lt;br /&gt;
# &amp;quot;Field Calculator&amp;quot;.&lt;br /&gt;
# &amp;quot;Statistical Summary&amp;quot; Panel.&lt;br /&gt;
# &amp;quot;Map Tip&amp;quot; tool&lt;br /&gt;
# Conditional formatting in attribute table&lt;br /&gt;
# Rule based labeling&lt;br /&gt;
# (other places?)&lt;br /&gt;
&lt;br /&gt;
== Possible examples ==&lt;br /&gt;
# Function doing something &amp;quot;local&amp;quot; like from other field(s).&lt;br /&gt;
# Functions reading something like a &amp;quot;Singleton&amp;quot; like a system environment variable (usage &amp;quot;env(&#039;USERNAME&#039;)&amp;quot;) layer properties or number sequence (spcial Plugin needed?). &lt;br /&gt;
# Function for remote webservice: geocoding (reading from the internet).&lt;br /&gt;
# Out of scope: Function reading from other layers (rather candidate for a plugin).&lt;br /&gt;
&lt;br /&gt;
After the GeoPython Workshop, Simran makes pull request to Expression Plus Plugin adding &amp;quot;env()&amp;quot; fn.&lt;br /&gt;
&lt;br /&gt;
Optional (but highly demanded) use case: A user wants to create a layer (table) which as a primary key (id) which behaves like &#039;autoincrement&#039; when user edit a new feature. So user does not have to care about unique, sequential values for the PK, like autoincrement in MySQL). In QGIS 3 this is available when user chooses &amp;quot;UNIQUE&amp;quot; as constraint. In QGIS 2.18 (or before) there is a clever custom expression function needed. =&amp;gt; Solution?&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
Collected (special) use cases:&lt;br /&gt;
* Autoincrement / Sequence =&amp;gt; QGIS 2.18 default Werte (QGIS 3 geplant)&lt;br /&gt;
* 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&lt;br /&gt;
* 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/&lt;br /&gt;
&lt;br /&gt;
Plugins:&lt;br /&gt;
* ExpressionPlus (for QGIS) Extra functions for the expression engine which didn&#039;t make it into QGIS 2.0: https://plugins.qgis.org/plugins/qgsexpressionsplus/&lt;br /&gt;
* refFunctions: http://plugins.qgis.org/plugins/refFunctions/ &lt;br /&gt;
* spatialJoin (depends on refFunctions): http://plugins.qgis.org/plugins/spatialJoin/&lt;br /&gt;
* AutoFields (obsolete?) - Automatic Field Calculator Plugin: http://plugins.qgis.org/plugins/AutoFields/ &lt;br /&gt;
&lt;br /&gt;
Open:&lt;br /&gt;
* How to store a value in PyQGIS? Use QSettings (/.qgis) or QGISProject (.qgs)&lt;br /&gt;
* Resource Sharing Plugin (http://plugins.qgis.org/plugins/qgis_resource_sharing/). e.g. https://github.com/mara91/qgis_styles.git&lt;/div&gt;</summary>
		<author><name>Simran</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Diskussion:Workshop_QGIS_Python_GeoPython_2017&amp;diff=60432</id>
		<title>Diskussion:Workshop QGIS Python GeoPython 2017</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=Diskussion:Workshop_QGIS_Python_GeoPython_2017&amp;diff=60432"/>
		<updated>2017-05-04T22:29:07Z</updated>

		<summary type="html">&lt;p&gt;Simran: Found one more use case - Conditional formatting.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See also&lt;br /&gt;
* Step-by-step guide for the workshop on [https://github.com/simran001/GeoPython-Workshop/blob/master/README.md Github.]&lt;br /&gt;
* https://github.com/simran001/PyQGIS&lt;br /&gt;
* https://etherpad.coredump.ch/p/Python-Workshop&lt;br /&gt;
&lt;br /&gt;
User Defined or &#039;&#039;Custom Expression Functions (CEFs)&#039;&#039; can be used in ...&lt;br /&gt;
# &amp;quot;Layer &amp;gt; Properties &amp;gt; Tab Fields&amp;quot; in Button &amp;quot;Text Edit&amp;quot; in Default- and in Constraints-Field.&lt;br /&gt;
# &amp;quot;Layer &amp;gt; Properties &amp;gt; Tab Style&amp;quot; in &amp;quot;Label with&amp;quot;.&lt;br /&gt;
# &amp;quot;Select features using an expression&amp;quot;.&lt;br /&gt;
# &amp;quot;Field Calculator&amp;quot;.&lt;br /&gt;
# &amp;quot;Statistical Summary&amp;quot; Panel.&lt;br /&gt;
# &amp;quot;Map Tip&amp;quot; tool&lt;br /&gt;
# Conditional formatting in attribute table&lt;br /&gt;
# (other places?)&lt;br /&gt;
&lt;br /&gt;
== Possible examples ==&lt;br /&gt;
# Function doing something &amp;quot;local&amp;quot; like from other field(s).&lt;br /&gt;
# Functions reading something like a &amp;quot;Singleton&amp;quot; like a system environment variable (usage &amp;quot;env(&#039;USERNAME&#039;)&amp;quot;) layer properties or number sequence (spcial Plugin needed?). &lt;br /&gt;
# Function for remote webservice: geocoding (reading from the internet).&lt;br /&gt;
# Out of scope: Function reading from other layers (rather candidate for a plugin).&lt;br /&gt;
&lt;br /&gt;
After the GeoPython Workshop, Simran makes pull request to Expression Plus Plugin adding &amp;quot;env()&amp;quot; fn.&lt;br /&gt;
&lt;br /&gt;
Optional (but highly demanded) use case: A user wants to create a layer (table) which as a primary key (id) which behaves like &#039;autoincrement&#039; when user edit a new feature. So user does not have to care about unique, sequential values for the PK, like autoincrement in MySQL). In QGIS 3 this is available when user chooses &amp;quot;UNIQUE&amp;quot; as constraint. In QGIS 2.18 (or before) there is a clever custom expression function needed. =&amp;gt; Solution?&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
Collected (special) use cases:&lt;br /&gt;
* Autoincrement / Sequence =&amp;gt; QGIS 2.18 default Werte (QGIS 3 geplant)&lt;br /&gt;
* 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&lt;br /&gt;
* 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/&lt;br /&gt;
&lt;br /&gt;
Plugins:&lt;br /&gt;
* ExpressionPlus (for QGIS) Extra functions for the expression engine which didn&#039;t make it into QGIS 2.0: https://plugins.qgis.org/plugins/qgsexpressionsplus/&lt;br /&gt;
* refFunctions: http://plugins.qgis.org/plugins/refFunctions/ &lt;br /&gt;
* spatialJoin (depends on refFunctions): http://plugins.qgis.org/plugins/spatialJoin/&lt;br /&gt;
* AutoFields (obsolete?) - Automatic Field Calculator Plugin: http://plugins.qgis.org/plugins/AutoFields/ &lt;br /&gt;
&lt;br /&gt;
Open:&lt;br /&gt;
* How to store a value in PyQGIS? Use QSettings (/.qgis) or QGISProject (.qgs)&lt;br /&gt;
* Resource Sharing Plugin (http://plugins.qgis.org/plugins/qgis_resource_sharing/). e.g. https://github.com/mara91/qgis_styles.git&lt;/div&gt;</summary>
		<author><name>Simran</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Workshop_QGIS_Python_GeoPython_2017&amp;diff=60421</id>
		<title>Workshop QGIS Python GeoPython 2017</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=Workshop_QGIS_Python_GeoPython_2017&amp;diff=60421"/>
		<updated>2017-04-27T14:53:11Z</updated>

		<summary type="html">&lt;p&gt;Simran: /* Programm */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Workshop about &#039;&#039;&#039;QGIS and Python - Easy Programming QGIS with Python for Expression Functions&#039;&#039;&#039; &lt;br /&gt;
* by Keller and Simran Khare, Geometa Lab at HSR Rapperswil&lt;br /&gt;
* May 8, 2017, 16:00 - 18:00, Muttenz/Basel, https://2017.geopython.net/#schedule&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Expressions in QGIS are very powerful and are used in many core features including selection, calculating field values and styling. QGIS also supports user-defined expressions and functions written in the popular Python programming language. These functions can be used within the expression engine and function editor. This gives users the capability to easily automate their tasks.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This short workshop will give the audience an overview of Python programming in QGIS (PyQGIS), before diving into writing custom Python functions and using them in expressions to perform various tasks to calculate field values. These calculations can be based on different input sources like properties from the same layer, from features of other layers or even by accessing webservices.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;In conclusion, it will be discussed how these programming skills can be used for the QGIS processing framework and for implementing plugins in QGIS Version 2 and 3.&lt;br /&gt;
&lt;br /&gt;
== Programm ==&lt;br /&gt;
&lt;br /&gt;
# 16:00-16:15 Welcome and QGIS installation (Stefan)&lt;br /&gt;
# 16:15-16:30 Intro to QGIS (Stefan)&lt;br /&gt;
# 16:30-17:00 Intro to PyQGIS (Simran &amp;amp; Stefan)&lt;br /&gt;
# 17:00-17:45 Hands on exercises (Simran &amp;amp; Stefan)&lt;br /&gt;
# 17:45-18:00 Wrapup (Stefan)&lt;br /&gt;
&lt;br /&gt;
== Hardware and Software ==&lt;br /&gt;
&lt;br /&gt;
Hardware: Bring your own device! &lt;br /&gt;
* You need a usual computer (Windows, Linux, Mac) with admin credentials (in case of QGIS is not yet installed)&lt;br /&gt;
* WiFi which works!&lt;br /&gt;
&lt;br /&gt;
Software:&lt;br /&gt;
* QGIS: We need current QGIS Version 2.18.x. In case of problems install QGIS LTR Version 2.14.6. Prefer Standalone-Installer over others. No Plugins needed; in they can be loaded later on if needed.&lt;br /&gt;
* Browser&lt;br /&gt;
* Texteditor, like Notepad++&lt;br /&gt;
&lt;br /&gt;
== Material ==&lt;br /&gt;
&lt;br /&gt;
tba. (work in progress)&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Veranstaltungen]] [[Kategorie:QGIS]] [[Kategorie:Python]]&lt;/div&gt;</summary>
		<author><name>Simran</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Workshop_QGIS_Python_GeoPython_2017&amp;diff=60420</id>
		<title>Workshop QGIS Python GeoPython 2017</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=Workshop_QGIS_Python_GeoPython_2017&amp;diff=60420"/>
		<updated>2017-04-27T14:53:00Z</updated>

		<summary type="html">&lt;p&gt;Simran: /* Programm */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Workshop about &#039;&#039;&#039;QGIS and Python - Easy Programming QGIS with Python for Expression Functions&#039;&#039;&#039; &lt;br /&gt;
* by Keller and Simran Khare, Geometa Lab at HSR Rapperswil&lt;br /&gt;
* May 8, 2017, 16:00 - 18:00, Muttenz/Basel, https://2017.geopython.net/#schedule&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Expressions in QGIS are very powerful and are used in many core features including selection, calculating field values and styling. QGIS also supports user-defined expressions and functions written in the popular Python programming language. These functions can be used within the expression engine and function editor. This gives users the capability to easily automate their tasks.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This short workshop will give the audience an overview of Python programming in QGIS (PyQGIS), before diving into writing custom Python functions and using them in expressions to perform various tasks to calculate field values. These calculations can be based on different input sources like properties from the same layer, from features of other layers or even by accessing webservices.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;In conclusion, it will be discussed how these programming skills can be used for the QGIS processing framework and for implementing plugins in QGIS Version 2 and 3.&lt;br /&gt;
&lt;br /&gt;
== Programm ==&lt;br /&gt;
&lt;br /&gt;
# 16:00-16:15 Welcome and QGIS installation (Stefan)&lt;br /&gt;
# 16:15-16:30 Intro to QGIS (Stefan)&lt;br /&gt;
# 16:30-17:00 Intro to PyQGIS (Simran &amp;amp; Stefan)&lt;br /&gt;
# 17:00-17:45 Hands on exercises (Simran &amp;amp; Stefan)&lt;br /&gt;
# 17:45-18:00 Wrapup&lt;br /&gt;
&lt;br /&gt;
== Hardware and Software ==&lt;br /&gt;
&lt;br /&gt;
Hardware: Bring your own device! &lt;br /&gt;
* You need a usual computer (Windows, Linux, Mac) with admin credentials (in case of QGIS is not yet installed)&lt;br /&gt;
* WiFi which works!&lt;br /&gt;
&lt;br /&gt;
Software:&lt;br /&gt;
* QGIS: We need current QGIS Version 2.18.x. In case of problems install QGIS LTR Version 2.14.6. Prefer Standalone-Installer over others. No Plugins needed; in they can be loaded later on if needed.&lt;br /&gt;
* Browser&lt;br /&gt;
* Texteditor, like Notepad++&lt;br /&gt;
&lt;br /&gt;
== Material ==&lt;br /&gt;
&lt;br /&gt;
tba. (work in progress)&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Veranstaltungen]] [[Kategorie:QGIS]] [[Kategorie:Python]]&lt;/div&gt;</summary>
		<author><name>Simran</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Workshop_QGIS_Python_GeoPython_2017&amp;diff=60419</id>
		<title>Workshop QGIS Python GeoPython 2017</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=Workshop_QGIS_Python_GeoPython_2017&amp;diff=60419"/>
		<updated>2017-04-27T14:51:41Z</updated>

		<summary type="html">&lt;p&gt;Simran: /* Programm */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Workshop about &#039;&#039;&#039;QGIS and Python - Easy Programming QGIS with Python for Expression Functions&#039;&#039;&#039; &lt;br /&gt;
* by Keller and Simran Khare, Geometa Lab at HSR Rapperswil&lt;br /&gt;
* May 8, 2017, 16:00 - 18:00, Muttenz/Basel, https://2017.geopython.net/#schedule&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Expressions in QGIS are very powerful and are used in many core features including selection, calculating field values and styling. QGIS also supports user-defined expressions and functions written in the popular Python programming language. These functions can be used within the expression engine and function editor. This gives users the capability to easily automate their tasks.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;This short workshop will give the audience an overview of Python programming in QGIS (PyQGIS), before diving into writing custom Python functions and using them in expressions to perform various tasks to calculate field values. These calculations can be based on different input sources like properties from the same layer, from features of other layers or even by accessing webservices.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;In conclusion, it will be discussed how these programming skills can be used for the QGIS processing framework and for implementing plugins in QGIS Version 2 and 3.&lt;br /&gt;
&lt;br /&gt;
== Programm ==&lt;br /&gt;
&lt;br /&gt;
# 16:00-16:15 Welcome (and Installation)&lt;br /&gt;
# 16:15-16:30 Intro to QGIS&lt;br /&gt;
# 16:30-17:00 Intro to PyQGIS&lt;br /&gt;
# 17:00-17:45 Hands on exercises&lt;br /&gt;
# 17:45-18:00 Wrapup&lt;br /&gt;
&lt;br /&gt;
== Hardware and Software ==&lt;br /&gt;
&lt;br /&gt;
Hardware: Bring your own device! &lt;br /&gt;
* You need a usual computer (Windows, Linux, Mac) with admin credentials (in case of QGIS is not yet installed)&lt;br /&gt;
* WiFi which works!&lt;br /&gt;
&lt;br /&gt;
Software:&lt;br /&gt;
* QGIS: We need current QGIS Version 2.18.x. In case of problems install QGIS LTR Version 2.14.6. Prefer Standalone-Installer over others. No Plugins needed; in they can be loaded later on if needed.&lt;br /&gt;
* Browser&lt;br /&gt;
* Texteditor, like Notepad++&lt;br /&gt;
&lt;br /&gt;
== Material ==&lt;br /&gt;
&lt;br /&gt;
tba. (work in progress)&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Veranstaltungen]] [[Kategorie:QGIS]] [[Kategorie:Python]]&lt;/div&gt;</summary>
		<author><name>Simran</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Diskussion:Workshop_QGIS_Python_GeoPython_2017&amp;diff=60418</id>
		<title>Diskussion:Workshop QGIS Python GeoPython 2017</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=Diskussion:Workshop_QGIS_Python_GeoPython_2017&amp;diff=60418"/>
		<updated>2017-04-27T14:33:40Z</updated>

		<summary type="html">&lt;p&gt;Simran: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See also&lt;br /&gt;
* Step-by-step guide for the workshop on [https://github.com/simran001/GeoPython-Workshop/blob/master/README.md Github.]&lt;br /&gt;
* https://github.com/simran001/PyQGIS&lt;br /&gt;
* https://etherpad.coredump.ch/p/Python-Workshop&lt;br /&gt;
&lt;br /&gt;
User Defined or &#039;&#039;Custom Expression Functions (CEFs)&#039;&#039; can be used in ...&lt;br /&gt;
# &amp;quot;Layer &amp;gt; Properties &amp;gt; Tab Fields&amp;quot; in Button &amp;quot;Text Edit&amp;quot; in Default- and in Constraints-Field.&lt;br /&gt;
# &amp;quot;Layer &amp;gt; Properties &amp;gt; Tab Style&amp;quot; in &amp;quot;Label with&amp;quot;.&lt;br /&gt;
# &amp;quot;Select features using an expression&amp;quot;.&lt;br /&gt;
# &amp;quot;Field Calculator&amp;quot;.&lt;br /&gt;
# &amp;quot;Statistical Summary&amp;quot; Panel.&lt;br /&gt;
# (other places?)&lt;br /&gt;
&lt;br /&gt;
== Possible examples ==&lt;br /&gt;
# Function doing something &amp;quot;local&amp;quot; like from other field(s).&lt;br /&gt;
# Functions reading something like a &amp;quot;Singleton&amp;quot; like a system environment variable (usage &amp;quot;env(&#039;USERNAME&#039;)&amp;quot;) layer properties or number sequence (spcial Plugin needed?). &lt;br /&gt;
# Function for remote webservice: geocoding (reading from the internet).&lt;br /&gt;
# Out of scope: Function reading from other layers (rather candidate for a plugin).&lt;br /&gt;
&lt;br /&gt;
After the GeoPython Workshop, Simran makes pull request to Expression Plus Plugin adding &amp;quot;env()&amp;quot; fn.&lt;br /&gt;
&lt;br /&gt;
Optional (but highly demanded) use case: A user wants to create a layer (table) which as a primary key (id) which behaves like &#039;autoincrement&#039; when user edit a new feature. So user does not have to care about unique, sequential values for the PK, like autoincrement in MySQL). In QGIS 3 this is available when user chooses &amp;quot;UNIQUE&amp;quot; as constraint. In QGIS 2.18 (or before) there is a clever custom expression function needed. =&amp;gt; Solution?&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
Collected (special) use cases:&lt;br /&gt;
* Autoincrement / Sequence =&amp;gt; QGIS 2.18 default Werte (QGIS 3 geplant)&lt;br /&gt;
* 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&lt;br /&gt;
* 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/&lt;br /&gt;
&lt;br /&gt;
Plugins:&lt;br /&gt;
* ExpressionPlus (for QGIS) Extra functions for the expression engine which didn&#039;t make it into QGIS 2.0: https://plugins.qgis.org/plugins/qgsexpressionsplus/&lt;br /&gt;
* refFunctions: http://plugins.qgis.org/plugins/refFunctions/ &lt;br /&gt;
* spatialJoin (depends on refFunctions): http://plugins.qgis.org/plugins/spatialJoin/&lt;br /&gt;
* AutoFields (obsolete?) - Automatic Field Calculator Plugin: http://plugins.qgis.org/plugins/AutoFields/ &lt;br /&gt;
&lt;br /&gt;
Open:&lt;br /&gt;
* How to store a value in PyQGIS? Use QSettings (/.qgis) or QGISProject (.qgs)&lt;br /&gt;
* Resource Sharing Plugin (http://plugins.qgis.org/plugins/qgis_resource_sharing/). e.g. https://github.com/mara91/qgis_styles.git&lt;/div&gt;</summary>
		<author><name>Simran</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Diskussion:Workshop_QGIS_Python_GeoPython_2017&amp;diff=60417</id>
		<title>Diskussion:Workshop QGIS Python GeoPython 2017</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=Diskussion:Workshop_QGIS_Python_GeoPython_2017&amp;diff=60417"/>
		<updated>2017-04-27T14:33:16Z</updated>

		<summary type="html">&lt;p&gt;Simran: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See also&lt;br /&gt;
* Step-by-step guide for the workshop on [https://github.com/simran001/GeoPython-Workshop/blob/master/README.md Github].&lt;br /&gt;
* https://github.com/simran001/PyQGIS&lt;br /&gt;
* https://etherpad.coredump.ch/p/Python-Workshop&lt;br /&gt;
&lt;br /&gt;
User Defined or &#039;&#039;Custom Expression Functions (CEFs)&#039;&#039; can be used in ...&lt;br /&gt;
# &amp;quot;Layer &amp;gt; Properties &amp;gt; Tab Fields&amp;quot; in Button &amp;quot;Text Edit&amp;quot; in Default- and in Constraints-Field.&lt;br /&gt;
# &amp;quot;Layer &amp;gt; Properties &amp;gt; Tab Style&amp;quot; in &amp;quot;Label with&amp;quot;.&lt;br /&gt;
# &amp;quot;Select features using an expression&amp;quot;.&lt;br /&gt;
# &amp;quot;Field Calculator&amp;quot;.&lt;br /&gt;
# &amp;quot;Statistical Summary&amp;quot; Panel.&lt;br /&gt;
# (other places?)&lt;br /&gt;
&lt;br /&gt;
== Possible examples ==&lt;br /&gt;
# Function doing something &amp;quot;local&amp;quot; like from other field(s).&lt;br /&gt;
# Functions reading something like a &amp;quot;Singleton&amp;quot; like a system environment variable (usage &amp;quot;env(&#039;USERNAME&#039;)&amp;quot;) layer properties or number sequence (spcial Plugin needed?). &lt;br /&gt;
# Function for remote webservice: geocoding (reading from the internet).&lt;br /&gt;
# Out of scope: Function reading from other layers (rather candidate for a plugin).&lt;br /&gt;
&lt;br /&gt;
After the GeoPython Workshop, Simran makes pull request to Expression Plus Plugin adding &amp;quot;env()&amp;quot; fn.&lt;br /&gt;
&lt;br /&gt;
Optional (but highly demanded) use case: A user wants to create a layer (table) which as a primary key (id) which behaves like &#039;autoincrement&#039; when user edit a new feature. So user does not have to care about unique, sequential values for the PK, like autoincrement in MySQL). In QGIS 3 this is available when user chooses &amp;quot;UNIQUE&amp;quot; as constraint. In QGIS 2.18 (or before) there is a clever custom expression function needed. =&amp;gt; Solution?&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
Collected (special) use cases:&lt;br /&gt;
* Autoincrement / Sequence =&amp;gt; QGIS 2.18 default Werte (QGIS 3 geplant)&lt;br /&gt;
* 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&lt;br /&gt;
* 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/&lt;br /&gt;
&lt;br /&gt;
Plugins:&lt;br /&gt;
* ExpressionPlus (for QGIS) Extra functions for the expression engine which didn&#039;t make it into QGIS 2.0: https://plugins.qgis.org/plugins/qgsexpressionsplus/&lt;br /&gt;
* refFunctions: http://plugins.qgis.org/plugins/refFunctions/ &lt;br /&gt;
* spatialJoin (depends on refFunctions): http://plugins.qgis.org/plugins/spatialJoin/&lt;br /&gt;
* AutoFields (obsolete?) - Automatic Field Calculator Plugin: http://plugins.qgis.org/plugins/AutoFields/ &lt;br /&gt;
&lt;br /&gt;
Open:&lt;br /&gt;
* How to store a value in PyQGIS? Use QSettings (/.qgis) or QGISProject (.qgs)&lt;br /&gt;
* Resource Sharing Plugin (http://plugins.qgis.org/plugins/qgis_resource_sharing/). e.g. https://github.com/mara91/qgis_styles.git&lt;/div&gt;</summary>
		<author><name>Simran</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=GeoPython_Workshop_Plan&amp;diff=60400</id>
		<title>GeoPython Workshop Plan</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=GeoPython_Workshop_Plan&amp;diff=60400"/>
		<updated>2017-04-18T14:19:12Z</updated>

		<summary type="html">&lt;p&gt;Simran: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Getting the Data ===&lt;br /&gt;
&lt;br /&gt;
* Admin 0 - Countries from [http://www.naturalearthdata.com/downloads/50m-cultural-vectors/ Natural Earth].&lt;br /&gt;
* Populated Places (Simple) from [http://www.naturalearthdata.com/downloads/50m-cultural-vectors/ Natural Earth].&lt;br /&gt;
* Rapperswil from [https://osmaxx.hsr.ch/pages/downloads/ OSMaxx]? (for selecting and labelling features based on OSM tags using the hstore functions)&lt;br /&gt;
&lt;br /&gt;
=== Custom Python Expression Functions Use Cases ===&lt;br /&gt;
&lt;br /&gt;
Following are some example ideas to implement the use cases defined in the [https://giswiki.hsr.ch/Diskussion:Workshop_QGIS_Python_GeoPython_2017 Discussion]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Select by Expression&#039;&#039;&#039;&lt;br /&gt;
: - Select all the capital cities with population greater than a user-defined number. &#039;&#039;select_populated_capitals(input_pop)&#039;&#039;&lt;br /&gt;
: - Select points based on their UTM Zone (maybe not, since the QGIS tutorial already covers it)? &#039;&#039;get_utm_zone()&#039;&#039; &lt;br /&gt;
: - Use the hstore functions to select all points with the tags amenity=restaurant or amenity=schools etc. from the Rapperswil data. Similarly, label the points as &#039;name | restaurant&#039; or &#039;name | school&#039; ? &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Field Calculator&#039;&#039;&#039;&lt;br /&gt;
: Use Nominatim&#039;s reverse geocoder to find the full address for that latitude longitude. Write a Python function that uses the API. See [http://wiki.openstreetmap.org/wiki/Nominatim Nominatim wiki] and the example:  http://nominatim.openstreetmap.org/reverse?format=xml&amp;amp;lat=52.5487429714954&amp;amp;lon=-1.81602098644987&amp;amp;zoom=18&amp;amp;addressdetails=1. &#039;&#039;get_address()&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Get the value of the env variable and do something with it&#039;&#039;&#039;&lt;br /&gt;
: - Get the layer_name or layer_id of the Countries layer using get_env(). &lt;br /&gt;
: - Set a new variable (eg. layer_colour) using the set_env() function.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Label using Expression functions&#039;&#039;&#039;&lt;br /&gt;
: - Label all the points in the &#039;Populated Places&#039; layer as &#039;name, ISO country code, population_growth&#039;, where population_growth = pop_max/pop_min.&lt;br /&gt;
: - Label all the points in the &#039;Populated Places&#039; layer as &#039;name, ISO country code, hemisphere&#039; where &#039;hemisphere&#039; which can be &#039;&#039;North&#039;&#039; or &#039;&#039;South&#039;&#039; depending on the latitude value.&lt;/div&gt;</summary>
		<author><name>Simran</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=GeoPython_Workshop_Plan&amp;diff=60382</id>
		<title>GeoPython Workshop Plan</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=GeoPython_Workshop_Plan&amp;diff=60382"/>
		<updated>2017-04-13T14:48:27Z</updated>

		<summary type="html">&lt;p&gt;Simran: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Getting the Data ===&lt;br /&gt;
&lt;br /&gt;
* Admin 0 - Countries from [http://www.naturalearthdata.com/downloads/50m-cultural-vectors/ Natural Earth].&lt;br /&gt;
* Populated Places (Simple) from [http://www.naturalearthdata.com/downloads/50m-cultural-vectors/ Natural Earth].&lt;br /&gt;
* Rapperswil from [https://osmaxx.hsr.ch/pages/downloads/ OSMaxx]? (for selecting and labelling features based on OSM tags using the hstore functions)&lt;br /&gt;
&lt;br /&gt;
=== Custom Python Expression Functions Use Cases ===&lt;br /&gt;
&lt;br /&gt;
Following are some example ideas to implement the use cases defined in the [https://giswiki.hsr.ch/Diskussion:Workshop_QGIS_Python_GeoPython_2017 Discussion]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Select by Expression&#039;&#039;&#039;&lt;br /&gt;
: - Select all the capital cities with population greater than the average population (or user-defined number). Find out the average population first.&lt;br /&gt;
: - Select points based on their UTM Zone (maybe not, since the QGIS tutorial already covers it)?&lt;br /&gt;
: - Select the country in the &#039;Countries&#039; layer that has the maximum number of populated places in the &#039;Populated Places&#039; layer.&lt;br /&gt;
: - Use the hstore functions to select all points with the tags amenity=restaurant or amenity=schools etc. from the Rapperswil data. Similarly, label the points as &#039;name | restaurant&#039; or &#039;name | school&#039; ? &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Field Calculator&#039;&#039;&#039;&lt;br /&gt;
: (a) In the Populated Places attribute table, create a new field, &#039;hemisphere&#039; which can be &#039;&#039;North&#039;&#039; or &#039;&#039;South&#039;&#039; depending on the latitude value. OR&lt;br /&gt;
: (b) Use Nominatim&#039;s reverse geocoder to find the full address for that latitude longitude. Write a Python function that uses the API. See [http://wiki.openstreetmap.org/wiki/Nominatim Nominatim wiki] and the example:  http://nominatim.openstreetmap.org/reverse?format=xml&amp;amp;lat=52.5487429714954&amp;amp;lon=-1.81602098644987&amp;amp;zoom=18&amp;amp;addressdetails=1&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Get the value of the env variable and do something with it&#039;&#039;&#039;&lt;br /&gt;
: - Get the layer_name or layer_id of the Countries layer using get_env(). &lt;br /&gt;
: - Set a new variable (eg. layer_colour) using the set_env() function.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Label using Expression functions&#039;&#039;&#039;&lt;br /&gt;
: Label all the points in the &#039;Populated Places&#039; layer using &#039;name | population surge in percentage | , | three letter country code&#039;. Where population_surge = pop_max - pop_min.&lt;/div&gt;</summary>
		<author><name>Simran</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=GeoPython_Workshop_Plan&amp;diff=60381</id>
		<title>GeoPython Workshop Plan</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=GeoPython_Workshop_Plan&amp;diff=60381"/>
		<updated>2017-04-13T14:26:06Z</updated>

		<summary type="html">&lt;p&gt;Simran: /* Custom Python Expression Functions Use Cases */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Getting the Data ===&lt;br /&gt;
&lt;br /&gt;
We will be using two vector files from [http://www.naturalearthdata.com/downloads/50m-cultural-vectors/ Natural Earth].&lt;br /&gt;
* Admin 0 - Countries&lt;br /&gt;
* Populated Places (Simple)&lt;br /&gt;
&lt;br /&gt;
=== Custom Python Expression Functions Use Cases ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Select by Expression&#039;&#039;&#039;&lt;br /&gt;
: - Select all the capital cities with population greater than the average population (or user-defined number). Find out the average population first.&lt;br /&gt;
: - Select points based on their UTM Zone?&lt;br /&gt;
: - Select the country in the country layer that has the maximum number of populated places in the populated places layer.&lt;br /&gt;
: - Use the hstore functions to select all points with the tags amenity=restaurant or amenity=schools etc. from the Rapperswil data. Similarly, label the points as &#039;name | restaurant&#039;? &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Field Calculator&#039;&#039;&#039;&lt;br /&gt;
: (a) In the Populated Places attribute table, create a new field, &#039;hemisphere&#039; which can be &#039;&#039;North&#039;&#039; or &#039;&#039;South&#039;&#039; depending on the latitude value. OR&lt;br /&gt;
: (b) Use Nominatim&#039;s reverse geocoder to find the full address for that latitude longitude. Write a Python function uses the API. See [http://wiki.openstreetmap.org/wiki/Nominatim Nominatim wiki] and the example:  http://nominatim.openstreetmap.org/reverse?format=xml&amp;amp;lat=52.5487429714954&amp;amp;lon=-1.81602098644987&amp;amp;zoom=18&amp;amp;addressdetails=1&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Get the value of the env variable and do something with it&#039;&#039;&#039;&lt;br /&gt;
: - Get the layer_name or layer_id of the Countries layer using get_env(). (Write function to set a new variable, layer_colour, according to the user defined colour. Usage: set_env()) ?&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Label using Expression functions&#039;&#039;&#039;&lt;br /&gt;
: Label all the points in the populated places dataset using &#039;name | population surge in percentage | , | three letter country code&#039;&lt;/div&gt;</summary>
		<author><name>Simran</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=GeoPython_Workshop_Plan&amp;diff=60380</id>
		<title>GeoPython Workshop Plan</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=GeoPython_Workshop_Plan&amp;diff=60380"/>
		<updated>2017-04-13T14:10:56Z</updated>

		<summary type="html">&lt;p&gt;Simran: /* Custom Python Expression Functions Use Cases */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Getting the Data ===&lt;br /&gt;
&lt;br /&gt;
We will be using two vector files from [http://www.naturalearthdata.com/downloads/50m-cultural-vectors/ Natural Earth].&lt;br /&gt;
* Admin 0 - Countries&lt;br /&gt;
* Populated Places (Simple)&lt;br /&gt;
&lt;br /&gt;
=== Custom Python Expression Functions Use Cases ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Select by Expression&#039;&#039;&#039;&lt;br /&gt;
: - Select all the capital cities with population greater than the average population (or user-defined number). Find out the average population first.&lt;br /&gt;
: - Select points based on their UTM Zone?&lt;br /&gt;
: - Select the country in the country layer that has the maximum number of populated places in the populated places layer. &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Field Calculator&#039;&#039;&#039;&lt;br /&gt;
: (a) In the Populated Places attribute table, create a new field, &#039;hemisphere&#039; which can be &#039;&#039;North&#039;&#039; or &#039;&#039;South&#039;&#039; depending on the latitude value. OR&lt;br /&gt;
: (b) Use Nominatim&#039;s reverse geocoder to find the full address for that latitude longitude. Write a Python function uses the API. See [http://wiki.openstreetmap.org/wiki/Nominatim Nominatim wiki] and the example:  http://nominatim.openstreetmap.org/reverse?format=xml&amp;amp;lat=52.5487429714954&amp;amp;lon=-1.81602098644987&amp;amp;zoom=18&amp;amp;addressdetails=1&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Get the value of the env variable and do something with it&#039;&#039;&#039;&lt;br /&gt;
: - Get the layer_name or layer_id of the Countries layer using get_env(). (Write function to set a new variable, layer_colour, according to the user defined colour. Usage: set_env()) ?&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Label using Expression functions&#039;&#039;&#039;&lt;br /&gt;
: Label all the points in the populated places dataset using &#039;name | population surge in percentage | , | three letter country code&#039;&lt;/div&gt;</summary>
		<author><name>Simran</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=GeoPython_Workshop_Plan&amp;diff=60379</id>
		<title>GeoPython Workshop Plan</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=GeoPython_Workshop_Plan&amp;diff=60379"/>
		<updated>2017-04-13T14:08:49Z</updated>

		<summary type="html">&lt;p&gt;Simran: Die Seite wurde neu angelegt: «=== Getting the Data ===  We will be using two vector files from [http://www.naturalearthdata.com/downloads/50m-cultural-vectors/ Natural Earth]. * Admin 0 - Cou…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Getting the Data ===&lt;br /&gt;
&lt;br /&gt;
We will be using two vector files from [http://www.naturalearthdata.com/downloads/50m-cultural-vectors/ Natural Earth].&lt;br /&gt;
* Admin 0 - Countries&lt;br /&gt;
* Populated Places (Simple)&lt;br /&gt;
&lt;br /&gt;
=== Custom Python Expression Functions Use Cases ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Select by Expression&#039;&#039;&#039;&lt;br /&gt;
: - Select all the capital cities with population greater than the average population (or user-defined number). Find out the average population first.&lt;br /&gt;
: - Select points based on their UTM Zone?&lt;br /&gt;
: - Select the country in the country layer that has the maximum number of populated places in the populated places layer. &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Field Calculator&#039;&#039;&#039;&lt;br /&gt;
: (a) In the Populated Places attribute table, create a new field, &#039;hemisphere&#039; which can be &#039;&#039;North&#039;&#039; or &#039;&#039;South&#039;&#039; depending on the latitude value. OR&lt;br /&gt;
: (b) Use Nominatim&#039;s reverse geocoder to find the full address for that latitude longitude. Write a Python function uses the API. See [http://wiki.openstreetmap.org/wiki/Nominatim Nominatim wiki] and the example:  http://nominatim.openstreetmap.org/reverse?format=xml&amp;amp;lat=52.5487429714954&amp;amp;lon=-1.81602098644987&amp;amp;zoom=18&amp;amp;addressdetails=1&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Get the value of the env variable and do something with it&#039;&#039;&#039;&lt;br /&gt;
: - Get the layer_name or layer_id of the Countries layer using get_env(). (Write function to set a new variable, layer_colour, according to the user defined colour. Usage: set_env()) ?&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Label using Expression functions&#039;&#039;&#039;&lt;br /&gt;
: - name | population surge in percentage | , | three letter country code&lt;/div&gt;</summary>
		<author><name>Simran</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Diskussion:Workshop_QGIS_Python_GeoPython_2017&amp;diff=60378</id>
		<title>Diskussion:Workshop QGIS Python GeoPython 2017</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=Diskussion:Workshop_QGIS_Python_GeoPython_2017&amp;diff=60378"/>
		<updated>2017-04-13T11:52:10Z</updated>

		<summary type="html">&lt;p&gt;Simran: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See also&lt;br /&gt;
* https://github.com/simran001/PyQGIS&lt;br /&gt;
* https://etherpad.coredump.ch/p/Python-Workshop&lt;br /&gt;
* [[GeoPython Workshop Plan]]&lt;br /&gt;
&lt;br /&gt;
User Defined or &#039;&#039;Custom Expression Functions (CEFs)&#039;&#039; can be used in ...&lt;br /&gt;
# &amp;quot;Layer &amp;gt; Properties &amp;gt; Tab Fields&amp;quot; in Button &amp;quot;Text Edit&amp;quot; in Default- and in Constraints-Field.&lt;br /&gt;
# &amp;quot;Layer &amp;gt; Properties &amp;gt; Tab Style&amp;quot; in &amp;quot;Label with&amp;quot;.&lt;br /&gt;
# &amp;quot;Select features using an expression&amp;quot;.&lt;br /&gt;
# &amp;quot;Field Calculator&amp;quot;.&lt;br /&gt;
# &amp;quot;Statistical Summary&amp;quot; Panel.&lt;br /&gt;
# (other places?)&lt;br /&gt;
&lt;br /&gt;
== Possible examples ==&lt;br /&gt;
# Function doing something &amp;quot;local&amp;quot; like from other field(s).&lt;br /&gt;
# Functions reading something like a &amp;quot;Singleton&amp;quot; like a system environment variable (usage &amp;quot;env(&#039;USERNAME&#039;)&amp;quot;) layer properties or number sequence (spcial Plugin needed?). &lt;br /&gt;
# Function for remote webservice: geocoding (reading from the internet).&lt;br /&gt;
# Out of scope: Function reading from other layers (rather candidate for a plugin).&lt;br /&gt;
&lt;br /&gt;
After the GeoPython Workshop, Simran makes pull request to Expression Plus Plugin adding &amp;quot;env()&amp;quot; fn.&lt;br /&gt;
&lt;br /&gt;
Optional (but highly demanded) use case: A user wants to create a layer (table) which as a primary key (id) which behaves like &#039;autoincrement&#039; when user edit a new feature. So user does not have to care about unique, sequential values for the PK, like autoincrement in MySQL). In QGIS 3 this is available when user chooses &amp;quot;UNIQUE&amp;quot; as constraint. In QGIS 2.18 (or before) there is a clever custom expression function needed. =&amp;gt; Solution?&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
Collected (special) use cases:&lt;br /&gt;
* Autoincrement / Sequence =&amp;gt; QGIS 2.18 default Werte (QGIS 3 geplant)&lt;br /&gt;
* 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&lt;br /&gt;
* 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/&lt;br /&gt;
&lt;br /&gt;
Plugins:&lt;br /&gt;
* ExpressionPlus (for QGIS) Extra functions for the expression engine which didn&#039;t make it into QGIS 2.0: https://plugins.qgis.org/plugins/qgsexpressionsplus/&lt;br /&gt;
* refFunctions: http://plugins.qgis.org/plugins/refFunctions/ &lt;br /&gt;
* spatialJoin (depends on refFunctions): http://plugins.qgis.org/plugins/spatialJoin/&lt;br /&gt;
* AutoFields (obsolete?) - Automatic Field Calculator Plugin: http://plugins.qgis.org/plugins/AutoFields/ &lt;br /&gt;
&lt;br /&gt;
Open:&lt;br /&gt;
* How to store a value in PyQGIS? Use QSettings (/.qgis) or QGISProject (.qgs)&lt;br /&gt;
* Resource Sharing Plugin (http://plugins.qgis.org/plugins/qgis_resource_sharing/). e.g. https://github.com/mara91/qgis_styles.git&lt;/div&gt;</summary>
		<author><name>Simran</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Diskussion:Workshop_QGIS_Python_GeoPython_2017&amp;diff=60338</id>
		<title>Diskussion:Workshop QGIS Python GeoPython 2017</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=Diskussion:Workshop_QGIS_Python_GeoPython_2017&amp;diff=60338"/>
		<updated>2017-03-17T15:32:28Z</updated>

		<summary type="html">&lt;p&gt;Simran: /* Possible examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See also&lt;br /&gt;
* https://github.com/simran001/PyQGIS&lt;br /&gt;
* https://etherpad.coredump.ch/p/Python-Workshop&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Custom Python Expression Functions for QGIS&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Possible examples ==&lt;br /&gt;
# Function doing something &amp;quot;local&amp;quot; like from other field(s).&lt;br /&gt;
# Functions reading something like a &amp;quot;Singleton&amp;quot; like a system environment variable (usage &amp;quot;env(&#039;USERNAME&#039;)&amp;quot;) layer properties or number sequence (spcial Plugin needed?). &lt;br /&gt;
# Function for remote webservice: geocoding (reading from the internet).&lt;br /&gt;
# Out of scope: Function reading from other layers (rather candidate for a plugin).&lt;br /&gt;
&lt;br /&gt;
After the GeoPython Workshop, Simran makes pull request to Expression Plus Plugin adding &amp;quot;env()&amp;quot; fn.&lt;br /&gt;
&lt;br /&gt;
Optional (but highly demanded) use case: A user wants to create a layer (table) which as a primary key (id) which behaves like &#039;autoincrement&#039; when user edit a new feature. So user does not have to care about unique, sequential values for the PK, like autoincrement in MySQL). In QGIS 3 this is available when user chooses &amp;quot;UNIQUE&amp;quot; as constraint. In QGIS 2.18 (or before) there is a clever custom expression function needed. =&amp;gt; Solution?&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
Collected (special) use cases:&lt;br /&gt;
* Autoincrement / Sequence =&amp;gt; QGIS 2.18 default Werte (QGIS 3 geplant)&lt;br /&gt;
* 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&lt;br /&gt;
* 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/&lt;br /&gt;
&lt;br /&gt;
Plugins:&lt;br /&gt;
* ExpressionPlus (for QGIS) Extra functions for the expression engine which didn&#039;t make it into QGIS 2.0: https://plugins.qgis.org/plugins/qgsexpressionsplus/&lt;br /&gt;
* refFunctions: http://plugins.qgis.org/plugins/refFunctions/ &lt;br /&gt;
* spatialJoin (depends on refFunctions): http://plugins.qgis.org/plugins/spatialJoin/&lt;br /&gt;
* AutoFields (obsolete?) - Automatic Field Calculator Plugin: http://plugins.qgis.org/plugins/AutoFields/ &lt;br /&gt;
&lt;br /&gt;
Open:&lt;br /&gt;
* How to store a value in PyQGIS? Use QSettings (/.qgis) or QGISProject (.qgs)&lt;br /&gt;
* Resource Sharing Plugin (http://plugins.qgis.org/plugins/qgis_resource_sharing/). e.g. https://github.com/mara91/qgis_styles.git&lt;/div&gt;</summary>
		<author><name>Simran</name></author>
	</entry>
	<entry>
		<id>https://giswiki.ch/index.php?title=Diskussion:Workshop_QGIS_Python_GeoPython_2017&amp;diff=60307</id>
		<title>Diskussion:Workshop QGIS Python GeoPython 2017</title>
		<link rel="alternate" type="text/html" href="https://giswiki.ch/index.php?title=Diskussion:Workshop_QGIS_Python_GeoPython_2017&amp;diff=60307"/>
		<updated>2017-03-14T12:50:40Z</updated>

		<summary type="html">&lt;p&gt;Simran: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See also&lt;br /&gt;
* https://github.com/simran001/PyQGIS&lt;br /&gt;
* https://etherpad.coredump.ch/p/Python-Workshop&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Custom Python Expression Functions for QGIS&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Possible examples ===&lt;br /&gt;
# Function doing something &amp;quot;local&amp;quot; like from other field(s).&lt;br /&gt;
# Functions reading something like a &amp;quot;Singleton&amp;quot; like a system environment variable (usage &amp;quot;env(&#039;USERNAME&#039;)&amp;quot;) layer properties or number sequence (spcial Plugin needed?). &lt;br /&gt;
# Function for remote webservice: geocoding (reading from the internet).&lt;br /&gt;
# Out of scope: Function reading from other layers (rather candidate for a plugin).&lt;br /&gt;
&lt;br /&gt;
After the GeoPython Workshop, Simran makes pull request to Expression Plus Plugin adding &amp;quot;env()&amp;quot; fn.&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
Collected (special) use cases:&lt;br /&gt;
* Autoincrement / Sequence =&amp;gt; QGIS 2.18 default Werte (QGIS 3 geplant)&lt;br /&gt;
* 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&lt;br /&gt;
* 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/&lt;br /&gt;
&lt;br /&gt;
Plugins:&lt;br /&gt;
* ExpressionPlus (for QGIS) Extra functions for the expression engine which didn&#039;t make it into QGIS 2.0: https://plugins.qgis.org/plugins/qgsexpressionsplus/&lt;br /&gt;
* refFunctions&lt;br /&gt;
* spatialJoin&lt;br /&gt;
* AutoFields (obsolete) - Automatic Field Calculator Plugin: http://plugins.qgis.org/plugins/AutoFields/ &lt;br /&gt;
&lt;br /&gt;
Open:&lt;br /&gt;
* How to store a value in PyQGIS? Use QSettings (/.qgis) or QGISProject (.qgs)&lt;br /&gt;
* Resource Sharing Plugin (http://plugins.qgis.org/plugins/qgis_resource_sharing/). e.g. https://github.com/mara91/qgis_styles.git&lt;/div&gt;</summary>
		<author><name>Simran</name></author>
	</entry>
</feed>