<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.osgeo.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Wiki-Brendonwp</id>
	<title>OSGeo - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.osgeo.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Wiki-Brendonwp"/>
	<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/wiki/Special:Contributions/Wiki-Brendonwp"/>
	<updated>2026-04-12T17:39:45Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.9</generator>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=Africa_Gallery&amp;diff=49326</id>
		<title>Africa Gallery</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=Africa_Gallery&amp;diff=49326"/>
		<updated>2010-08-12T18:01:47Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Brendonwp: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page links to the African entries in the OSGeo gallery page. Add your entries to the main gallery page, and link them here so that we can show everyone our contributions. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[http://gallery.osgeo.org/item/48/ QRAP Radio Planning Tool] &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can also find case studies on the sites of different software packages, for example: &lt;br /&gt;
&lt;br /&gt;
*[http://www.qgis.org/en/community/qgis-case-studies.html Quantum GIS] &lt;br /&gt;
*[http://www.postgis.org/documentation/casestudies/ PostGIS]&lt;br /&gt;
&lt;br /&gt;
Please also have a look at the [http://wiki.osgeo.org/wiki/Case_Studies OSGeo wiki page] that links to Case Studies of FOSS4GEO projects around the world. These range from comparisons of desktop clients to full-blown spatial data infrastructure implementations, and discussions of Open Data and Open Source policies.&lt;/div&gt;</summary>
		<author><name>Wiki-Brendonwp</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=Africa_Gallery&amp;diff=49325</id>
		<title>Africa Gallery</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=Africa_Gallery&amp;diff=49325"/>
		<updated>2010-08-12T18:01:00Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Brendonwp: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page links to the African entries in the OSGeo gallery page. Add your entries to the main gallery page, and link them here so that we can show everyone our contributions. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[http://gallery.osgeo.org/item/48/ QRAP Radio Planning Tool] &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
You can also find case studies on the sites of different software packages, for example: &lt;br /&gt;
&lt;br /&gt;
*[http://www.qgis.org/en/community/qgis-case-studies.html Quantum GIS] &lt;br /&gt;
*[http://www.postgis.org/documentation/casestudies/ PostGIS]&lt;br /&gt;
&lt;br /&gt;
Please also have a look at the [http://wiki.osgeo.org/wiki/Case_Studies OSGeo wiki page] that links to Case Studies of FOSS4GEO projects around the world. These range from comparisons of desktop clients to full-blown spatial data infrastructure implementations, and discussions of Open Data and Open Source policies.&lt;/div&gt;</summary>
		<author><name>Wiki-Brendonwp</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=Africa_Gallery&amp;diff=49320</id>
		<title>Africa Gallery</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=Africa_Gallery&amp;diff=49320"/>
		<updated>2010-08-12T17:21:34Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Brendonwp: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page links to the African entries in the OSGeo gallery page. Add your entries to the main gallery page, and link them here so that we can show everyone our contributions. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[http://gallery.osgeo.org/item/48/ QRAP Radio Planning Tool] &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
You can also find case studies on the sites of different software packages, for example: &lt;br /&gt;
&lt;br /&gt;
*QGIS&lt;br /&gt;
*GRASS&lt;br /&gt;
*PostGIS&lt;br /&gt;
&lt;br /&gt;
Please also have a look at the [http://wiki.osgeo.org/wiki/Case_Studies OSGeo wiki page] that links to Case Studies of FOSS4GEO projects around the world. These range from comparisons of desktop clients to full-blown spatial data infrastructure implementations, and discussions of Open Data and Open Source policies.&lt;/div&gt;</summary>
		<author><name>Wiki-Brendonwp</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=Africa_Gallery&amp;diff=49267</id>
		<title>Africa Gallery</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=Africa_Gallery&amp;diff=49267"/>
		<updated>2010-08-09T18:54:08Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Brendonwp: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page links to the African entries in the OSGeo gallery page.  Add your entries to the main gallery page, and link them here so that we can show everyone our contributions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[http://gallery.osgeo.org/item/48/ QRAP Radio Planning Tool]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please also have a look at the [http://wiki.osgeo.org/wiki/Case_Studies OSGeo wiki page] that links to Case Studies of FOSS4GEO projects around the world. These range from comparisons of desktop clients to full-blown spatial data infrastructure implementations, and discussions of Open Data and Open Source policies.&lt;/div&gt;</summary>
		<author><name>Wiki-Brendonwp</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=Africa_Gallery&amp;diff=49266</id>
		<title>Africa Gallery</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=Africa_Gallery&amp;diff=49266"/>
		<updated>2010-08-09T18:53:14Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Brendonwp: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page links to the African entries in the OSGeo gallery page.  Add your entries to the main gallery page, and link them here so that we can show everyone our contributions.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[http://gallery.osgeo.org/item/48/ QRAP Radio Planning Tool]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Please also have a look at the [http://wiki.osgeo.org/wiki/Case_Studies OSGeo wiki page] that links to Case Studies of FOSS4GEO projects around the world. These range from comparisons of desktop clients to full-blown spatial data infrastructure implementations, and discussions of Open Data and Open Source policies.&lt;/div&gt;</summary>
		<author><name>Wiki-Brendonwp</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=Africa_Gallery&amp;diff=49265</id>
		<title>Africa Gallery</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=Africa_Gallery&amp;diff=49265"/>
		<updated>2010-08-09T18:46:51Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Brendonwp: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page links to the African entries in the OSGeo gallery page.  Add your entries to the main gallery page, and link them here so that we can show everyone our contributions.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[http://gallery.osgeo.org/item/48/ QRAP Radio Planning Tool]&lt;/div&gt;</summary>
		<author><name>Wiki-Brendonwp</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=Africa_Gallery&amp;diff=48938</id>
		<title>Africa Gallery</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=Africa_Gallery&amp;diff=48938"/>
		<updated>2010-07-28T19:40:55Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Brendonwp: Created page with 'This page links to the African entries in the OSGeo gallery page.  Add your entries to the main gallery page, and link them here so that we can show everyone our contributions.  …'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page links to the African entries in the OSGeo gallery page.  Add your entries to the main gallery page, and link them here so that we can show everyone our contributions.&lt;br /&gt;
&lt;br /&gt;
[http://gallery.osgeo.org/item/48/ QRAP Radio Planning Tool]&lt;/div&gt;</summary>
		<author><name>Wiki-Brendonwp</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=Africa_Local_Chapter&amp;diff=48937</id>
		<title>Africa Local Chapter</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=Africa_Local_Chapter&amp;diff=48937"/>
		<updated>2010-07-28T19:28:42Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Brendonwp: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The OSGeo Africa Local Chapter, which started out as a mailing list in 2005 after AfricaGIS2005, is now in the formal establishment process as per [[Local_Chapter_Guidelines]] after a successful FOSS4G 2008 in Cape Town. As of 31 March 2010 this mailing list has 235 members. the majority of these are from South Africa but there are substantial numbers from across Africa and several from around the world. &lt;br /&gt;
&lt;br /&gt;
You'll find lively discussion from members across Africa covering technical issues, organising meetings, advocacy, training, work opportunities and more.&lt;br /&gt;
&lt;br /&gt;
Please join the [http://lists.osgeo.org/mailman/listinfo/africa Africa] mailing list, and review the [http://lists.osgeo.org/pipermail/africa/ archive].&lt;br /&gt;
&lt;br /&gt;
== Mission ==&lt;br /&gt;
&lt;br /&gt;
The OSGeo Africa Chapter acts as a representative body and a forum for any issue relating to Free and Open Source GIS. By calling ourselves the Africa Chapter we mean to be inclusive to anyone who identifies with Africa. As countries or linguistic groups within Africa generate enough momentum to form their own local chapters, these will emerge and will coexist alongside or under the umbrella of the Africa Chapter. Since most African countries have arbitrary colonial boundaries in any case why perpetuate them in the borderless world of OSGeo? Perhaps the sub-groupings that make most sense are predominant linguistic groups such as Swahili, Arabic, English, French and Portuguese. As these do emerge, the current 'Africa' Local Chapter could morph into the 'Africa English Chapter' or the 'Southern Africa Chapter'.&lt;br /&gt;
&lt;br /&gt;
== Objectives ==&lt;br /&gt;
&lt;br /&gt;
Our objectives are to:&lt;br /&gt;
* Organise&lt;br /&gt;
* Develop skills&lt;br /&gt;
* Advocate FOSS GIS&lt;br /&gt;
* Build community&lt;br /&gt;
&lt;br /&gt;
They are spelt out in our Roadmap below.&lt;br /&gt;
&lt;br /&gt;
== A RoadMap for OSGeo Africa ==&lt;br /&gt;
&lt;br /&gt;
=== What is needed ===&lt;br /&gt;
&lt;br /&gt;
Some common refrains from amongst the people Tim spoke to at FOSS4G2008:&lt;br /&gt;
&lt;br /&gt;
* we don't know what FOSS GIS products exist&lt;br /&gt;
* how do we choose between two or more competing FOSS GIS products that do the same thing&lt;br /&gt;
* how can we get training in FOSS GIS&lt;br /&gt;
* how do we migrate our existing set up to FOSS GIS&lt;br /&gt;
* how can we get (PAID and otherwise) support for FOSS GIS&lt;br /&gt;
* where can we get free data&lt;br /&gt;
&lt;br /&gt;
There were also some heartwarming success stories of people who have already adopted FOSS in their businesses and municiplities etc. For me when I review the above laundry list of concerns and questions it becomes very obvious that we need to become organised. &lt;br /&gt;
&lt;br /&gt;
=== Getting organised ===&lt;br /&gt;
&lt;br /&gt;
We already have a 'home' with [http://www.gissa.org.za/gissa/sig/opensource/ GISSA] so we do not need to form a new association. At the moment that consists of turning the extant GISSA FOSS SIG (Special Interest Group) into the OSGeo Africa Local Chapter, with a seat on the GISSA National Council and access to the GISSA website, meetings and other resources. If the Chapter decides to set up an independent non-profit organisation, such as a Section 21 Company in South Africa, we are quite open to doing that in due course. But the link with GISSA enables us to move fast as we plan AFOSSGISS 2010. &lt;br /&gt;
&lt;br /&gt;
I would like to take the initiative to propose that we form a 5 person working group to start to put things in place. Since I am proposing this, I obviously volunteer to be one of the members and I call on others on this list or beyond to answer this call to arms. The idea of the 5 person working group will be to bootstrap ourselves into an effective organisation which can make its presence felt both locally and beyond the shores of Africa. I also realise that this proposal may not be perfect so consider it a start that we can build on rather than a plan that has to be cast in stone. The main idea will be that each working group member will try to form a small team, typically of 5 members including the team member. One of these members would also double as official OSGeo liaison officer. Here follows a proposal for a team that will enable us to get organised and effective.&lt;br /&gt;
&lt;br /&gt;
'''Advocacy Leader:'''&lt;br /&gt;
&lt;br /&gt;
People don't know they have FOSS alternatives - we need to make them aware - including by making press releases, press materials, attending industry events, making contact with academic, municipal and state bodies and letting them know we exist and want to collaborate.&lt;br /&gt;
&lt;br /&gt;
Volunteer: Tim Sutton &amp;lt;tim at linfiniti.com&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Education Leader:'''&lt;br /&gt;
&lt;br /&gt;
We need to get FOSS GIS into schools, and provide open (e.g. creative commons) curricula. In the case of South Africa the National Curriculum Statement on Geography provides some (albeit vague) guidelines on how GIS should be included in the school curriculum (there is a link to this document on the GISSA website: [http://www.gissa.org.za/sig/education/school-gis School GIS]).&lt;br /&gt;
&lt;br /&gt;
Volunteer: ?&lt;br /&gt;
&lt;br /&gt;
'''Training Leader:'''&lt;br /&gt;
&lt;br /&gt;
* We need to train people to use FOSS GIS.&lt;br /&gt;
* First we need to train create a tier of experts / power users, second they need to train people in their local areas. &lt;br /&gt;
* We need to start  this &amp;quot;&amp;quot;soon&amp;quot;&amp;quot;. &lt;br /&gt;
* We need to do this on a free / cost recovery basis. &lt;br /&gt;
* We need to establish suitable venues in each regional center that can be used for training. &lt;br /&gt;
* We need to build up sets of Free (unencumbered) data that can be used by anyone&lt;br /&gt;
* We need to build up training materials that can be used to ease the process of training people.&lt;br /&gt;
&lt;br /&gt;
Volunteer: ?&lt;br /&gt;
&lt;br /&gt;
'''Professional Support Leader:'''&lt;br /&gt;
&lt;br /&gt;
We need to create a body of professionals who can provide on the ground support - there is a huge business opportunity here - we need to take advantage.  We will call this the OSGeo Africa Professional Association (or something along those lines).  The group will among other things provide a directory of FOSS support and solution providers (along with their location). The group will act as an advisory body to organisations wishing to deploy FOSS GIS. We are floating the idea of forming a Cooperative to organise ourselves professionally See under 'Cooperatives development' in the left panel of http://www.dti.gov.za/. &lt;br /&gt;
&lt;br /&gt;
If you or your organisation provide any type of professional service already, get your details onto the OSGeo [[SPD|Service Provider Directory]] as a start. &lt;br /&gt;
&lt;br /&gt;
Volunteer: Brendon Wolff-Piggott &amp;lt;brendon AT integratedgeodata.co.za&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Community Leader:'''&lt;br /&gt;
&lt;br /&gt;
We need to build a community - this means building up a responsive, friendly mailing list. We also need to curate our area on the OSGeo wiki and build up other online resources that will allow new and established members in the OSGeo AFRICA community to find up to date relevant and helpful information to address their needs.&lt;br /&gt;
&lt;br /&gt;
Volunteer: Gavin Fleming (also proposed as official OSGeo liaison representative)&lt;br /&gt;
&lt;br /&gt;
=== Skills development strategy ===&lt;br /&gt;
&lt;br /&gt;
I'm thinking that since we are starting pretty much from ground zero we need to structure things in a 'knowledge ladder':&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                                      4 - Becoming a FOSSGIS developer&lt;br /&gt;
                         3 - Becoming a FOSSGIS Expert&lt;br /&gt;
           2 -  Becoming a FOSSGIS User&lt;br /&gt;
 1 - FOSSGIS Familiarisation&lt;br /&gt;
&lt;br /&gt;
My suggestion is that we do a first round of workshops which basically introduce a FOSSGIS software stack to users so the can understand what can be achieved with FOSSGIS. Following that we can continue with a next round where we start building skills in particular products e.g. a day training on postgis, followed by a day on QGIS etc etc. Of course we need not expect everyone to reach level 4. although it is my hope that we can build a caucus of FOSSGIS developers in Africa so that we can play a role in shaping the future of FOSSGIS and also building up our own local skills.&lt;br /&gt;
&lt;br /&gt;
The workshops can be repeated as demand dictates. Currently there is interest in Jhb, Cape Town, and now with your email Durbs. I thing the folks in East London may be interested too. It would be great if we can establish regional user groups that can eventually do the local organisation for workshops and then presenters can visit different regions and not have to manage all the arrangements solo. But to start lets aim to do 3 or 4 introductory workshops and work on from there. Workshops would be carried out at no charge for as long as we can sustain it - and we could look at ways to raise funds in order to make it sustainable - possible the likes of SITA etc could help out since what we doing would very much further the goals of skills development within FOSSGIS in South Africa. We should also look at how we can extend these activites further afield since other African countries can equally benifit.&lt;br /&gt;
&lt;br /&gt;
== Our logo ==&lt;br /&gt;
&lt;br /&gt;
[[Image:OSGeoAfrica logo75dpi.png]] Low res version&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:OSGeoAfrica logo300dpi.png‎|500px|thumb]] 300dpi version&lt;br /&gt;
&lt;br /&gt;
== Role Players ==&lt;br /&gt;
&lt;br /&gt;
Everyone can be a role player - this list is just a way to keep track of the various people involved - feel free to add yourself!&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
|-&lt;br /&gt;
!Who         &lt;br /&gt;
!Email     &lt;br /&gt;
!Where  &lt;br /&gt;
!Organisation &lt;br /&gt;
!Website&lt;br /&gt;
|- &lt;br /&gt;
|Tim Sutton   &lt;br /&gt;
|tim at linfiniti.com &lt;br /&gt;
|Jhb, will travel &lt;br /&gt;
|linfiniti consulting ( http://linfiniti.com )&lt;br /&gt;
|-              &lt;br /&gt;
| Stefaan Dondeyne &lt;br /&gt;
| stefaan_dondeyne at yahoo.co.uk    &lt;br /&gt;
| Mozambique?         &lt;br /&gt;
| Teaching QGIS in Mozambique                 &lt;br /&gt;
|-&lt;br /&gt;
| Brendon Wolff-Piggott&lt;br /&gt;
| brendon at integratedgeodata.co.za&lt;br /&gt;
| Pretoria, will travel&lt;br /&gt;
| [http://www.integratedgeodata.co.za integrated geodata solutions]&lt;br /&gt;
|-&lt;br /&gt;
| Gavin Fleming&lt;br /&gt;
| gavinjfleming at gmail.com&lt;br /&gt;
| Paarl, Western Cape&lt;br /&gt;
| [http://www.saeon.ac.za SAEON]&lt;br /&gt;
|-&lt;br /&gt;
| Jean-Francis AHANDA&lt;br /&gt;
| jeanfrancisahanda at opensolutions-cameroun.com&lt;br /&gt;
| Yaounde,Cameroon&lt;br /&gt;
| Open Solutions Cameroun&lt;br /&gt;
| [http://www.opensolutions-cameroun.com] &lt;br /&gt;
|-&lt;br /&gt;
| Graeme McFerren&lt;br /&gt;
| graeme dot mcferren at gmail dot com&lt;br /&gt;
| Jhb/Pretoria&lt;br /&gt;
| GIS Researcher,  [http://www.meraka.org.za Meraka]&lt;br /&gt;
| [http://grimmeister.wordpress.com Southern Tip blog]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Events ==&lt;br /&gt;
&lt;br /&gt;
{|border=1&lt;br /&gt;
|-&lt;br /&gt;
| '''When'''&lt;br /&gt;
| '''Where'''&lt;br /&gt;
| '''Topic'''&lt;br /&gt;
| '''Programme'''&lt;br /&gt;
| '''Notes'''&lt;br /&gt;
|-&lt;br /&gt;
| 29 November 2008&lt;br /&gt;
| Johannesburg&lt;br /&gt;
| Demo &amp;amp; Workshop covering PostGIS, GeoServer, uDig, QGIS&lt;br /&gt;
| [[AfricaEvents29November2008| Programme Here]]&lt;br /&gt;
| Our first local community event!&lt;br /&gt;
|-&lt;br /&gt;
| 27 June 2009&lt;br /&gt;
| Johannesburg&lt;br /&gt;
| Introduction to QGIS&lt;br /&gt;
| [[AfricaEvents27June2009| Programme Here]]&lt;br /&gt;
| Our second local community event!&lt;br /&gt;
|-&lt;br /&gt;
| 13-17 July 2009&lt;br /&gt;
| Cape Town&lt;br /&gt;
| IGARSS 2009&lt;br /&gt;
| [[IGARSS_2009]]&lt;br /&gt;
| We put up the OsGeo banner and handed out brochures&lt;br /&gt;
|-&lt;br /&gt;
| 14 August 2010&lt;br /&gt;
| Bridge House School, Franschhoek&lt;br /&gt;
| QGIS day&lt;br /&gt;
| [[QGISDay14Aug2010 | details here]]&lt;br /&gt;
| Our first OSGeo event in the Western Cape since FOSS4G 2008!&lt;br /&gt;
|-&lt;br /&gt;
| 27-29 September 2010&lt;br /&gt;
| Midrand, Gauteng, South Africa&lt;br /&gt;
| AFOSSGIS 2010&lt;br /&gt;
| http://afossgis.org/&lt;br /&gt;
| Our first large-scale Local Chapter meeting&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Service Providers =&lt;br /&gt;
&lt;br /&gt;
OSGeo wiki has a comprehensive list of Service Providers offering support services around FOSS GIS software. For you convenience, here are quick links to African providers.&lt;br /&gt;
&lt;br /&gt;
{|border=1&lt;br /&gt;
|-&lt;br /&gt;
|'''Country'''&lt;br /&gt;
|-&lt;br /&gt;
|[SouthAfrica http://tinyurl.com/osgeo-southafrica-providers]&lt;br /&gt;
|-&lt;br /&gt;
|[Cameroon http://www.opensolutions-cameroun.com]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Gallery of Images =&lt;br /&gt;
&lt;br /&gt;
Click here to see the [[ Africa Gallery | gallery]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Local Chapters]]&lt;br /&gt;
[[Category:Africa]]&lt;br /&gt;
[[Category:FOSS4G2008]]&lt;/div&gt;</summary>
		<author><name>Wiki-Brendonwp</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=Help:Editing&amp;diff=48936</id>
		<title>Help:Editing</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=Help:Editing&amp;diff=48936"/>
		<updated>2010-07-28T19:27:26Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Brendonwp: /* Quick Start */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Quick Start ==&lt;br /&gt;
&lt;br /&gt;
Welcome to the wonderful world of wiki, the benefit is that you can edit the page (and fix my spelling mistakes).&lt;br /&gt;
&lt;br /&gt;
Here is a brutal quickstart because I am sick of clicking on the links below:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Heading ==&lt;br /&gt;
&lt;br /&gt;
You can type things pretty much as you would expect and the&lt;br /&gt;
paragraph will flow from line to line. Leaving a blank line&lt;br /&gt;
will start a new paragraph.&lt;br /&gt;
&lt;br /&gt;
When typing you can ''emphasize text'', to '''make a point''',&lt;br /&gt;
but that stops being '''''fun''''' after a while.&lt;br /&gt;
&lt;br /&gt;
=== Sub Heading ===&lt;br /&gt;
&lt;br /&gt;
One of the fun parts of a wiki is linking:&lt;br /&gt;
* [[Page]] link&lt;br /&gt;
** Same thing as [[Page]]s and [[page]]&lt;br /&gt;
* [[Page#Sub Heading]] same as [[Page#Sub Heading 1=&lt;br /&gt;
** You could also link to [[Page#Sub Heading 2]]&lt;br /&gt;
* [[Page|a sample page]] also works&lt;br /&gt;
&lt;br /&gt;
To link to the wider wilder web:&lt;br /&gt;
* http://udig.refractions.net&lt;br /&gt;
* [http://udig.refractions.net uDig]&lt;br /&gt;
* [http://udig.refractions.net] &amp;lt;!-- shows up as [1] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remember:&lt;br /&gt;
:You can create a link to a page that does not exist yet&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
; page link : can be clicked to jump to a page&lt;br /&gt;
; external link&lt;br /&gt;
: will take you to another web page&lt;br /&gt;
&lt;br /&gt;
=== Sub Heading ===&lt;br /&gt;
&lt;br /&gt;
Hacking with html is mostly allowed - here is a code example:&lt;br /&gt;
&amp;lt;code&amp;gt;x = x   1;&amp;lt;/code&amp;gt; although you probably want to break&lt;br /&gt;
out a pre tag for examples of more then one line.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
More information about Editing wiki can be found here : [http://meta.wikimedia.org/wiki/Help:Editing MediaWiki Edting Help]&lt;/div&gt;</summary>
		<author><name>Wiki-Brendonwp</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=Africa_Local_Chapter&amp;diff=48935</id>
		<title>Africa Local Chapter</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=Africa_Local_Chapter&amp;diff=48935"/>
		<updated>2010-07-28T19:07:57Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Brendonwp: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The OSGeo Africa Local Chapter, which started out as a mailing list in 2005 after AfricaGIS2005, is now in the formal establishment process as per [[Local_Chapter_Guidelines]] after a successful FOSS4G 2008 in Cape Town. As of 31 March 2010 this mailing list has 235 members. the majority of these are from South Africa but there are substantial numbers from across Africa and several from around the world. &lt;br /&gt;
&lt;br /&gt;
You'll find lively discussion from members across Africa covering technical issues, organising meetings, advocacy, training, work opportunities and more.&lt;br /&gt;
&lt;br /&gt;
Please join the [http://lists.osgeo.org/mailman/listinfo/africa Africa] mailing list, and review the [http://lists.osgeo.org/pipermail/africa/ archive].&lt;br /&gt;
&lt;br /&gt;
== Mission ==&lt;br /&gt;
&lt;br /&gt;
The OSGeo Africa Chapter acts as a representative body and a forum for any issue relating to Free and Open Source GIS. By calling ourselves the Africa Chapter we mean to be inclusive to anyone who identifies with Africa. As countries or linguistic groups within Africa generate enough momentum to form their own local chapters, these will emerge and will coexist alongside or under the umbrella of the Africa Chapter. Since most African countries have arbitrary colonial boundaries in any case why perpetuate them in the borderless world of OSGeo? Perhaps the sub-groupings that make most sense are predominant linguistic groups such as Swahili, Arabic, English, French and Portuguese. As these do emerge, the current 'Africa' Local Chapter could morph into the 'Africa English Chapter' or the 'Southern Africa Chapter'.&lt;br /&gt;
&lt;br /&gt;
== Objectives ==&lt;br /&gt;
&lt;br /&gt;
Our objectives are to:&lt;br /&gt;
* Organise&lt;br /&gt;
* Develop skills&lt;br /&gt;
* Advocate FOSS GIS&lt;br /&gt;
* Build community&lt;br /&gt;
&lt;br /&gt;
They are spelt out in our Roadmap below.&lt;br /&gt;
&lt;br /&gt;
== A RoadMap for OSGeo Africa ==&lt;br /&gt;
&lt;br /&gt;
=== What is needed ===&lt;br /&gt;
&lt;br /&gt;
Some common refrains from amongst the people Tim spoke to at FOSS4G2008:&lt;br /&gt;
&lt;br /&gt;
* we don't know what FOSS GIS products exist&lt;br /&gt;
* how do we choose between two or more competing FOSS GIS products that do the same thing&lt;br /&gt;
* how can we get training in FOSS GIS&lt;br /&gt;
* how do we migrate our existing set up to FOSS GIS&lt;br /&gt;
* how can we get (PAID and otherwise) support for FOSS GIS&lt;br /&gt;
* where can we get free data&lt;br /&gt;
&lt;br /&gt;
There were also some heartwarming success stories of people who have already adopted FOSS in their businesses and municiplities etc. For me when I review the above laundry list of concerns and questions it becomes very obvious that we need to become organised. &lt;br /&gt;
&lt;br /&gt;
=== Getting organised ===&lt;br /&gt;
&lt;br /&gt;
We already have a 'home' with [http://www.gissa.org.za/gissa/sig/opensource/ GISSA] so we do not need to form a new association. At the moment that consists of turning the extant GISSA FOSS SIG (Special Interest Group) into the OSGeo Africa Local Chapter, with a seat on the GISSA National Council and access to the GISSA website, meetings and other resources. If the Chapter decides to set up an independent non-profit organisation, such as a Section 21 Company in South Africa, we are quite open to doing that in due course. But the link with GISSA enables us to move fast as we plan AFOSSGISS 2010. &lt;br /&gt;
&lt;br /&gt;
I would like to take the initiative to propose that we form a 5 person working group to start to put things in place. Since I am proposing this, I obviously volunteer to be one of the members and I call on others on this list or beyond to answer this call to arms. The idea of the 5 person working group will be to bootstrap ourselves into an effective organisation which can make its presence felt both locally and beyond the shores of Africa. I also realise that this proposal may not be perfect so consider it a start that we can build on rather than a plan that has to be cast in stone. The main idea will be that each working group member will try to form a small team, typically of 5 members including the team member. One of these members would also double as official OSGeo liaison officer. Here follows a proposal for a team that will enable us to get organised and effective.&lt;br /&gt;
&lt;br /&gt;
'''Advocacy Leader:'''&lt;br /&gt;
&lt;br /&gt;
People don't know they have FOSS alternatives - we need to make them aware - including by making press releases, press materials, attending industry events, making contact with academic, municipal and state bodies and letting them know we exist and want to collaborate.&lt;br /&gt;
&lt;br /&gt;
Volunteer: Tim Sutton &amp;lt;tim at linfiniti.com&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Education Leader:'''&lt;br /&gt;
&lt;br /&gt;
We need to get FOSS GIS into schools, and provide open (e.g. creative commons) curricula. In the case of South Africa the National Curriculum Statement on Geography provides some (albeit vague) guidelines on how GIS should be included in the school curriculum (there is a link to this document on the GISSA website: [http://www.gissa.org.za/sig/education/school-gis School GIS]).&lt;br /&gt;
&lt;br /&gt;
Volunteer: ?&lt;br /&gt;
&lt;br /&gt;
'''Training Leader:'''&lt;br /&gt;
&lt;br /&gt;
* We need to train people to use FOSS GIS.&lt;br /&gt;
* First we need to train create a tier of experts / power users, second they need to train people in their local areas. &lt;br /&gt;
* We need to start  this &amp;quot;&amp;quot;soon&amp;quot;&amp;quot;. &lt;br /&gt;
* We need to do this on a free / cost recovery basis. &lt;br /&gt;
* We need to establish suitable venues in each regional center that can be used for training. &lt;br /&gt;
* We need to build up sets of Free (unencumbered) data that can be used by anyone&lt;br /&gt;
* We need to build up training materials that can be used to ease the process of training people.&lt;br /&gt;
&lt;br /&gt;
Volunteer: ?&lt;br /&gt;
&lt;br /&gt;
'''Professional Support Leader:'''&lt;br /&gt;
&lt;br /&gt;
We need to create a body of professionals who can provide on the ground support - there is a huge business opportunity here - we need to take advantage.  We will call this the OSGeo Africa Professional Association (or something along those lines).  The group will among other things provide a directory of FOSS support and solution providers (along with their location). The group will act as an advisory body to organisations wishing to deploy FOSS GIS. We are floating the idea of forming a Cooperative to organise ourselves professionally See under 'Cooperatives development' in the left panel of http://www.dti.gov.za/. &lt;br /&gt;
&lt;br /&gt;
If you or your organisation provide any type of professional service already, get your details onto the OSGeo [[SPD|Service Provider Directory]] as a start. &lt;br /&gt;
&lt;br /&gt;
Volunteer: Brendon Wolff-Piggott &amp;lt;brendon AT integratedgeodata.co.za&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Community Leader:'''&lt;br /&gt;
&lt;br /&gt;
We need to build a community - this means building up a responsive, friendly mailing list. We also need to curate our area on the OSGeo wiki and build up other online resources that will allow new and established members in the OSGeo AFRICA community to find up to date relevant and helpful information to address their needs.&lt;br /&gt;
&lt;br /&gt;
Volunteer: Gavin Fleming (also proposed as official OSGeo liaison representative)&lt;br /&gt;
&lt;br /&gt;
=== Skills development strategy ===&lt;br /&gt;
&lt;br /&gt;
I'm thinking that since we are starting pretty much from ground zero we need to structure things in a 'knowledge ladder':&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                                      4 - Becoming a FOSSGIS developer&lt;br /&gt;
                         3 - Becoming a FOSSGIS Expert&lt;br /&gt;
           2 -  Becoming a FOSSGIS User&lt;br /&gt;
 1 - FOSSGIS Familiarisation&lt;br /&gt;
&lt;br /&gt;
My suggestion is that we do a first round of workshops which basically introduce a FOSSGIS software stack to users so the can understand what can be achieved with FOSSGIS. Following that we can continue with a next round where we start building skills in particular products e.g. a day training on postgis, followed by a day on QGIS etc etc. Of course we need not expect everyone to reach level 4. although it is my hope that we can build a caucus of FOSSGIS developers in Africa so that we can play a role in shaping the future of FOSSGIS and also building up our own local skills.&lt;br /&gt;
&lt;br /&gt;
The workshops can be repeated as demand dictates. Currently there is interest in Jhb, Cape Town, and now with your email Durbs. I thing the folks in East London may be interested too. It would be great if we can establish regional user groups that can eventually do the local organisation for workshops and then presenters can visit different regions and not have to manage all the arrangements solo. But to start lets aim to do 3 or 4 introductory workshops and work on from there. Workshops would be carried out at no charge for as long as we can sustain it - and we could look at ways to raise funds in order to make it sustainable - possible the likes of SITA etc could help out since what we doing would very much further the goals of skills development within FOSSGIS in South Africa. We should also look at how we can extend these activites further afield since other African countries can equally benifit.&lt;br /&gt;
&lt;br /&gt;
== Our logo ==&lt;br /&gt;
&lt;br /&gt;
[[Image:OSGeoAfrica logo75dpi.png]] Low res version&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:OSGeoAfrica logo300dpi.png‎|500px|thumb]] 300dpi version&lt;br /&gt;
&lt;br /&gt;
== Role Players ==&lt;br /&gt;
&lt;br /&gt;
Everyone can be a role player - this list is just a way to keep track of the various people involved - feel free to add yourself!&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
|-&lt;br /&gt;
!Who         &lt;br /&gt;
!Email     &lt;br /&gt;
!Where  &lt;br /&gt;
!Organisation &lt;br /&gt;
!Website&lt;br /&gt;
|- &lt;br /&gt;
|Tim Sutton   &lt;br /&gt;
|tim at linfiniti.com &lt;br /&gt;
|Jhb, will travel &lt;br /&gt;
|linfiniti consulting ( http://linfiniti.com )&lt;br /&gt;
|-              &lt;br /&gt;
| Stefaan Dondeyne &lt;br /&gt;
| stefaan_dondeyne at yahoo.co.uk    &lt;br /&gt;
| Mozambique?         &lt;br /&gt;
| Teaching QGIS in Mozambique                 &lt;br /&gt;
|-&lt;br /&gt;
| Brendon Wolff-Piggott&lt;br /&gt;
| brendon at integratedgeodata.co.za&lt;br /&gt;
| Pretoria, will travel&lt;br /&gt;
| [http://www.integratedgeodata.co.za integrated geodata solutions]&lt;br /&gt;
|-&lt;br /&gt;
| Gavin Fleming&lt;br /&gt;
| gavinjfleming at gmail.com&lt;br /&gt;
| Paarl, Western Cape&lt;br /&gt;
| [http://www.saeon.ac.za SAEON]&lt;br /&gt;
|-&lt;br /&gt;
| Jean-Francis AHANDA&lt;br /&gt;
| jeanfrancisahanda at opensolutions-cameroun.com&lt;br /&gt;
| Yaounde,Cameroon&lt;br /&gt;
| Open Solutions Cameroun&lt;br /&gt;
| [http://www.opensolutions-cameroun.com] &lt;br /&gt;
|-&lt;br /&gt;
| Graeme McFerren&lt;br /&gt;
| graeme dot mcferren at gmail dot com&lt;br /&gt;
| Jhb/Pretoria&lt;br /&gt;
| GIS Researcher,  [http://www.meraka.org.za Meraka]&lt;br /&gt;
| [http://grimmeister.wordpress.com Southern Tip blog]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Events ==&lt;br /&gt;
&lt;br /&gt;
{|border=1&lt;br /&gt;
|-&lt;br /&gt;
| '''When'''&lt;br /&gt;
| '''Where'''&lt;br /&gt;
| '''Topic'''&lt;br /&gt;
| '''Programme'''&lt;br /&gt;
| '''Notes'''&lt;br /&gt;
|-&lt;br /&gt;
| 29 November 2008&lt;br /&gt;
| Johannesburg&lt;br /&gt;
| Demo &amp;amp; Workshop covering PostGIS, GeoServer, uDig, QGIS&lt;br /&gt;
| [[AfricaEvents29November2008| Programme Here]]&lt;br /&gt;
| Our first local community event!&lt;br /&gt;
|-&lt;br /&gt;
| 27 June 2009&lt;br /&gt;
| Johannesburg&lt;br /&gt;
| Introduction to QGIS&lt;br /&gt;
| [[AfricaEvents27June2009| Programme Here]]&lt;br /&gt;
| Our second local community event!&lt;br /&gt;
|-&lt;br /&gt;
| 13-17 July 2009&lt;br /&gt;
| Cape Town&lt;br /&gt;
| IGARSS 2009&lt;br /&gt;
| [[IGARSS_2009]]&lt;br /&gt;
| We put up the OsGeo banner and handed out brochures&lt;br /&gt;
|-&lt;br /&gt;
| 14 August 2010&lt;br /&gt;
| Bridge House School, Franschhoek&lt;br /&gt;
| QGIS day&lt;br /&gt;
| [[QGISDay14Aug2010 | details here]]&lt;br /&gt;
| Our first OSGeo event in the Western Cape since FOSS4G 2008!&lt;br /&gt;
|-&lt;br /&gt;
| 27-29 September 2010&lt;br /&gt;
| Midrand, Gauteng, South Africa&lt;br /&gt;
| AFOSSGIS 2010&lt;br /&gt;
| http://afossgis.org/&lt;br /&gt;
| Our first large-scale Local Chapter meeting&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Service Providers =&lt;br /&gt;
&lt;br /&gt;
OSGeo wiki has a comprehensive list of Service Providers offering support services around FOSS GIS software. For you convenience, here are quick links to African providers.&lt;br /&gt;
&lt;br /&gt;
{|border=1&lt;br /&gt;
|-&lt;br /&gt;
|'''Country'''&lt;br /&gt;
|-&lt;br /&gt;
|[SouthAfrica http://tinyurl.com/osgeo-southafrica-providers]&lt;br /&gt;
|-&lt;br /&gt;
|[Cameroon http://www.opensolutions-cameroun.com]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Gallery of Images =&lt;br /&gt;
&lt;br /&gt;
Click here to see the [[ AfricaGallery | gallery]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Local Chapters]]&lt;br /&gt;
[[Category:Africa]]&lt;br /&gt;
[[Category:FOSS4G2008]]&lt;/div&gt;</summary>
		<author><name>Wiki-Brendonwp</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=Africa_Local_Chapter&amp;diff=48932</id>
		<title>Africa Local Chapter</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=Africa_Local_Chapter&amp;diff=48932"/>
		<updated>2010-07-28T18:30:19Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Brendonwp: /* Role Players */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The OSGeo Africa Local Chapter, which started out as a mailing list in 2005 after AfricaGIS2005, is now in the formal establishment process as per [[Local_Chapter_Guidelines]] after a successful FOSS4G 2008 in Cape Town. As of 31 March 2010 this mailing list has 235 members. the majority of these are from South Africa but there are substantial numbers from across Africa and several from around the world. &lt;br /&gt;
&lt;br /&gt;
You'll find lively discussion from members across Africa covering technical issues, organising meetings, advocacy, training, work opportunities and more.&lt;br /&gt;
&lt;br /&gt;
Please join the [http://lists.osgeo.org/mailman/listinfo/africa Africa] mailing list, and review the [http://lists.osgeo.org/pipermail/africa/ archive].&lt;br /&gt;
&lt;br /&gt;
== Mission ==&lt;br /&gt;
&lt;br /&gt;
The OSGeo Africa Chapter acts as a representative body and a forum for any issue relating to Free and Open Source GIS. By calling ourselves the Africa Chapter we mean to be inclusive to anyone who identifies with Africa. As countries or linguistic groups within Africa generate enough momentum to form their own local chapters, these will emerge and will coexist alongside or under the umbrella of the Africa Chapter. Since most African countries have arbitrary colonial boundaries in any case why perpetuate them in the borderless world of OSGeo? Perhaps the sub-groupings that make most sense are predominant linguistic groups such as Swahili, Arabic, English, French and Portuguese. As these do emerge, the current 'Africa' Local Chapter could morph into the 'Africa English Chapter' or the 'Southern Africa Chapter'.&lt;br /&gt;
&lt;br /&gt;
== Objectives ==&lt;br /&gt;
&lt;br /&gt;
Our objectives are to:&lt;br /&gt;
* Organise&lt;br /&gt;
* Develop skills&lt;br /&gt;
* Advocate FOSS GIS&lt;br /&gt;
* Build community&lt;br /&gt;
&lt;br /&gt;
They are spelt out in our Roadmap below.&lt;br /&gt;
&lt;br /&gt;
== A RoadMap for OSGeo Africa ==&lt;br /&gt;
&lt;br /&gt;
=== What is needed ===&lt;br /&gt;
&lt;br /&gt;
Some common refrains from amongst the people Tim spoke to at FOSS4G2008:&lt;br /&gt;
&lt;br /&gt;
* we don't know what FOSS GIS products exist&lt;br /&gt;
* how do we choose between two or more competing FOSS GIS products that do the same thing&lt;br /&gt;
* how can we get training in FOSS GIS&lt;br /&gt;
* how do we migrate our existing set up to FOSS GIS&lt;br /&gt;
* how can we get (PAID and otherwise) support for FOSS GIS&lt;br /&gt;
* where can we get free data&lt;br /&gt;
&lt;br /&gt;
There were also some heartwarming success stories of people who have already adopted FOSS in their businesses and municiplities etc. For me when I review the above laundry list of concerns and questions it becomes very obvious that we need to become organised. &lt;br /&gt;
&lt;br /&gt;
=== Getting organised ===&lt;br /&gt;
&lt;br /&gt;
We already have a 'home' with [http://www.gissa.org.za/gissa/sig/opensource/ GISSA] so we do not need to form a new association. At the moment that consists of turning the extant GISSA FOSS SIG (Special Interest Group) into the OSGeo Africa Local Chapter, with a seat on the GISSA National Council and access to the GISSA website, meetings and other resources. If the Chapter decides to set up an independent non-profit organisation, such as a Section 21 Company in South Africa, we are quite open to doing that in due course. But the link with GISSA enables us to move fast as we plan AFOSSGISS 2010. &lt;br /&gt;
&lt;br /&gt;
I would like to take the initiative to propose that we form a 5 person working group to start to put things in place. Since I am proposing this, I obviously volunteer to be one of the members and I call on others on this list or beyond to answer this call to arms. The idea of the 5 person working group will be to bootstrap ourselves into an effective organisation which can make its presence felt both locally and beyond the shores of Africa. I also realise that this proposal may not be perfect so consider it a start that we can build on rather than a plan that has to be cast in stone. The main idea will be that each working group member will try to form a small team, typically of 5 members including the team member. One of these members would also double as official OSGeo liaison officer. Here follows a proposal for a team that will enable us to get organised and effective.&lt;br /&gt;
&lt;br /&gt;
'''Advocacy Leader:'''&lt;br /&gt;
&lt;br /&gt;
People don't know they have FOSS alternatives - we need to make them aware - including by making press releases, press materials, attending industry events, making contact with academic, municipal and state bodies and letting them know we exist and want to collaborate.&lt;br /&gt;
&lt;br /&gt;
Volunteer: Tim Sutton &amp;lt;tim at linfiniti.com&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Education Leader:'''&lt;br /&gt;
&lt;br /&gt;
We need to get FOSS GIS into schools, and provide open (e.g. creative commons) curricula. In the case of South Africa the National Curriculum Statement on Geography provides some (albeit vague) guidelines on how GIS should be included in the school curriculum (there is a link to this document on the GISSA website: [http://www.gissa.org.za/sig/education/school-gis School GIS]).&lt;br /&gt;
&lt;br /&gt;
Volunteer: ?&lt;br /&gt;
&lt;br /&gt;
'''Training Leader:'''&lt;br /&gt;
&lt;br /&gt;
* We need to train people to use FOSS GIS.&lt;br /&gt;
* First we need to train create a tier of experts / power users, second they need to train people in their local areas. &lt;br /&gt;
* We need to start  this &amp;quot;&amp;quot;soon&amp;quot;&amp;quot;. &lt;br /&gt;
* We need to do this on a free / cost recovery basis. &lt;br /&gt;
* We need to establish suitable venues in each regional center that can be used for training. &lt;br /&gt;
* We need to build up sets of Free (unencumbered) data that can be used by anyone&lt;br /&gt;
* We need to build up training materials that can be used to ease the process of training people.&lt;br /&gt;
&lt;br /&gt;
Volunteer: ?&lt;br /&gt;
&lt;br /&gt;
'''Professional Support Leader:'''&lt;br /&gt;
&lt;br /&gt;
We need to create a body of professionals who can provide on the ground support - there is a huge business opportunity here - we need to take advantage.  We will call this the OSGeo Africa Professional Association (or something along those lines).  The group will among other things provide a directory of FOSS support and solution providers (along with their location). The group will act as an advisory body to organisations wishing to deploy FOSS GIS. We are floating the idea of forming a Cooperative to organise ourselves professionally See under 'Cooperatives development' in the left panel of http://www.dti.gov.za/. &lt;br /&gt;
&lt;br /&gt;
If you or your organisation provide any type of professional service already, get your details onto the OSGeo [[SPD|Service Provider Directory]] as a start. &lt;br /&gt;
&lt;br /&gt;
Volunteer: Brendon Wolff-Piggott &amp;lt;brendon AT integratedgeodata.co.za&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Community Leader:'''&lt;br /&gt;
&lt;br /&gt;
We need to build a community - this means building up a responsive, friendly mailing list. We also need to curate our area on the OSGeo wiki and build up other online resources that will allow new and established members in the OSGeo AFRICA community to find up to date relevant and helpful information to address their needs.&lt;br /&gt;
&lt;br /&gt;
Volunteer: Gavin Fleming (also proposed as official OSGeo liaison representative)&lt;br /&gt;
&lt;br /&gt;
=== Skills development strategy ===&lt;br /&gt;
&lt;br /&gt;
I'm thinking that since we are starting pretty much from ground zero we need to structure things in a 'knowledge ladder':&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                                      4 - Becoming a FOSSGIS developer&lt;br /&gt;
                         3 - Becoming a FOSSGIS Expert&lt;br /&gt;
           2 -  Becoming a FOSSGIS User&lt;br /&gt;
 1 - FOSSGIS Familiarisation&lt;br /&gt;
&lt;br /&gt;
My suggestion is that we do a first round of workshops which basically introduce a FOSSGIS software stack to users so the can understand what can be achieved with FOSSGIS. Following that we can continue with a next round where we start building skills in particular products e.g. a day training on postgis, followed by a day on QGIS etc etc. Of course we need not expect everyone to reach level 4. although it is my hope that we can build a caucus of FOSSGIS developers in Africa so that we can play a role in shaping the future of FOSSGIS and also building up our own local skills.&lt;br /&gt;
&lt;br /&gt;
The workshops can be repeated as demand dictates. Currently there is interest in Jhb, Cape Town, and now with your email Durbs. I thing the folks in East London may be interested too. It would be great if we can establish regional user groups that can eventually do the local organisation for workshops and then presenters can visit different regions and not have to manage all the arrangements solo. But to start lets aim to do 3 or 4 introductory workshops and work on from there. Workshops would be carried out at no charge for as long as we can sustain it - and we could look at ways to raise funds in order to make it sustainable - possible the likes of SITA etc could help out since what we doing would very much further the goals of skills development within FOSSGIS in South Africa. We should also look at how we can extend these activites further afield since other African countries can equally benifit.&lt;br /&gt;
&lt;br /&gt;
== Our logo ==&lt;br /&gt;
&lt;br /&gt;
[[Image:OSGeoAfrica logo75dpi.png]] Low res version&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:OSGeoAfrica logo300dpi.png‎|500px|thumb]] 300dpi version&lt;br /&gt;
&lt;br /&gt;
== Role Players ==&lt;br /&gt;
&lt;br /&gt;
Everyone can be a role player - this list is just a way to keep track of the various people involved - feel free to add yourself!&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
|-&lt;br /&gt;
!Who         &lt;br /&gt;
!Email     &lt;br /&gt;
!Where  &lt;br /&gt;
!Organisation &lt;br /&gt;
!Website&lt;br /&gt;
|- &lt;br /&gt;
|Tim Sutton   &lt;br /&gt;
|tim at linfiniti.com &lt;br /&gt;
|Jhb, will travel &lt;br /&gt;
|linfiniti consulting ( http://linfiniti.com )&lt;br /&gt;
|-              &lt;br /&gt;
| Stefaan Dondeyne &lt;br /&gt;
| stefaan_dondeyne at yahoo.co.uk    &lt;br /&gt;
| Mozambique?         &lt;br /&gt;
| Teaching QGIS in Mozambique                 &lt;br /&gt;
|-&lt;br /&gt;
| Brendon Wolff-Piggott&lt;br /&gt;
| brendon at integratedgeodata.co.za&lt;br /&gt;
| Pretoria, will travel&lt;br /&gt;
| [http://www.integratedgeodata.co.za integrated geodata solutions]&lt;br /&gt;
|-&lt;br /&gt;
| Gavin Fleming&lt;br /&gt;
| gavinjfleming at gmail.com&lt;br /&gt;
| Paarl, Western Cape&lt;br /&gt;
| [http://www.saeon.ac.za SAEON]&lt;br /&gt;
|-&lt;br /&gt;
| Jean-Francis AHANDA&lt;br /&gt;
| jeanfrancisahanda at opensolutions-cameroun.com&lt;br /&gt;
| Yaounde,Cameroon&lt;br /&gt;
| Open Solutions Cameroun&lt;br /&gt;
| [http://www.opensolutions-cameroun.com] &lt;br /&gt;
|-&lt;br /&gt;
| Graeme McFerren&lt;br /&gt;
| graeme dot mcferren at gmail dot com&lt;br /&gt;
| Jhb/Pretoria&lt;br /&gt;
| GIS Researcher,  [http://www.meraka.org.za Meraka]&lt;br /&gt;
| [http://grimmeister.wordpress.com Southern Tip blog]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Events ==&lt;br /&gt;
&lt;br /&gt;
{|border=1&lt;br /&gt;
|-&lt;br /&gt;
| '''When'''&lt;br /&gt;
| '''Where'''&lt;br /&gt;
| '''Topic'''&lt;br /&gt;
| '''Programme'''&lt;br /&gt;
| '''Notes'''&lt;br /&gt;
|-&lt;br /&gt;
| 29 November 2008&lt;br /&gt;
| Johannesburg&lt;br /&gt;
| Demo &amp;amp; Workshop covering PostGIS, GeoServer, uDig, QGIS&lt;br /&gt;
| [[AfricaEvents29November2008| Programme Here]]&lt;br /&gt;
| Our first local community event!&lt;br /&gt;
|-&lt;br /&gt;
| 27 June 2009&lt;br /&gt;
| Johannesburg&lt;br /&gt;
| Introduction to QGIS&lt;br /&gt;
| [[AfricaEvents27June2009| Programme Here]]&lt;br /&gt;
| Our second local community event!&lt;br /&gt;
|-&lt;br /&gt;
| 13-17 July 2009&lt;br /&gt;
| Cape Town&lt;br /&gt;
| IGARSS 2009&lt;br /&gt;
| [[IGARSS_2009]]&lt;br /&gt;
| We put up the OsGeo banner and handed out brochures&lt;br /&gt;
|-&lt;br /&gt;
| 14 August 2010&lt;br /&gt;
| Bridge House School, Franschhoek&lt;br /&gt;
| QGIS day&lt;br /&gt;
| [[QGISDay14Aug2010 | details here]]&lt;br /&gt;
| Our first OSGeo event in the Western Cape since FOSS4G 2008!&lt;br /&gt;
|-&lt;br /&gt;
| 27-29 September 2010&lt;br /&gt;
| Midrand, Gauteng, South Africa&lt;br /&gt;
| AFOSSGIS 2010&lt;br /&gt;
| http://afossgis.org/&lt;br /&gt;
| Our first large-scale Local Chapter meeting&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Service Providers =&lt;br /&gt;
&lt;br /&gt;
OSGeo wiki has a comprehensive list of Service Providers offering support services around FOSS GIS software. For you convenience, here are quick links to African providers.&lt;br /&gt;
&lt;br /&gt;
{|border=1&lt;br /&gt;
|-&lt;br /&gt;
|'''Country'''&lt;br /&gt;
|-&lt;br /&gt;
|[SouthAfrica http://tinyurl.com/osgeo-southafrica-providers]&lt;br /&gt;
|-&lt;br /&gt;
|[Cameroon http://www.opensolutions-cameroun.com]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Local Chapters]]&lt;br /&gt;
[[Category:Africa]]&lt;br /&gt;
[[Category:FOSS4G2008]]&lt;/div&gt;</summary>
		<author><name>Wiki-Brendonwp</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=AfricaEvents27June2009&amp;diff=39431</id>
		<title>AfricaEvents27June2009</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=AfricaEvents27June2009&amp;diff=39431"/>
		<updated>2009-06-26T23:09:11Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Brendonwp: /* Advanced symbolisation - the renderer types, labelling and map actions - Brendon */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;...back to [[Africa_Local_Chapter]]&lt;br /&gt;
&lt;br /&gt;
'''Introduction to QGIS'''&lt;br /&gt;
&lt;br /&gt;
= What? =&lt;br /&gt;
&lt;br /&gt;
Our second OSGeo local chapter meet up! We will chew the cud, show you some cool stuff and start to get people familiar with the brilliant FOSS GeoSpatial products out there, specifically QGIS on this occasion!&lt;br /&gt;
&lt;br /&gt;
We'll go through installing QGIS and getting it to a point where you can have fun (and get your job done) with it. &lt;br /&gt;
&lt;br /&gt;
= How Much? =&lt;br /&gt;
&lt;br /&gt;
There will be a door charge of R250 to cover costs, lunch and refreshments. That and an open mind are all you need to bring. &lt;br /&gt;
&lt;br /&gt;
= Where? =&lt;br /&gt;
&lt;br /&gt;
 St Davids Marist Inanda College&lt;br /&gt;
 36 Rivonia Rd&lt;br /&gt;
 Inanda&lt;br /&gt;
 Sandton&lt;br /&gt;
[http://www.stdavids.co.za/about_directions.asp Map and Directions]&lt;br /&gt;
&lt;br /&gt;
NB: We'll be in the Prep School computer lab.&lt;br /&gt;
&lt;br /&gt;
= When? =&lt;br /&gt;
&lt;br /&gt;
* Saturday June 27th 2009&lt;br /&gt;
* 08h30 to 15h30&lt;br /&gt;
* includes lunch and refreshments&lt;br /&gt;
&lt;br /&gt;
= Who =&lt;br /&gt;
&lt;br /&gt;
Your friendly presenters for the day will be:&lt;br /&gt;
&lt;br /&gt;
* '''Tim Sutton''' (tim at linfiniti.com) - QGIS hacker and FOSS GIS junkie extraordinaire. Tim eats Weetbix for breakfast because it sounds like Linux. He once rewrote Nkosi Sikelela in C++ because he was feeling patriotic.&lt;br /&gt;
* '''Graeme McFerren''' - (graeme.mcferren at gmail.com) - GIS researcher and FOSS4G user. Mmm, aspire to be like Tim then.&lt;br /&gt;
* '''Gavin Fleming''' (gavinjfleming at gmail dot com) - I enjoy my daily FOSS4G fix. I'm a 'geoinformation scientist' at Mintek and love to see cutting edge and useful geospatial applications emerging, especially when they're based on FOSS. &lt;br /&gt;
* '''Brendon Wolff-Piggott''' - (brendon at integratedgeodata.co.za) - Water resources consultant and FOSS GIS enthusiast.  I wish there were more hours in the day to keep up with FOSS4G!&lt;br /&gt;
&lt;br /&gt;
= RSVP =&lt;br /&gt;
Let gavinjfleming at gmail dot com know if you're coming as numbers are limited. &lt;br /&gt;
&lt;br /&gt;
= Programme and notes =&lt;br /&gt;
&lt;br /&gt;
* Be there in time for a 8h30 start&lt;br /&gt;
* Computers are provided. All you need to bring is R250!&lt;br /&gt;
* It doesn't matter what level you are.&lt;br /&gt;
* The programme is subject to change and participant input right to the last minute!&lt;br /&gt;
&lt;br /&gt;
== Intro to the QGIS project - Tim ==&lt;br /&gt;
&lt;br /&gt;
== First tour of the User Interface - Graeme ==&lt;br /&gt;
Before we set off into the QGIS journey for today, lets get a bit familiar with the vehicle - the GUI or Graphical User Interface!&lt;br /&gt;
&lt;br /&gt;
The key principle is simplicity - standard GIS functionality should be easy to find and obvious to use. More complex functionality is layered onto QGIS as needed via a plugin or extension mechanism&lt;br /&gt;
&lt;br /&gt;
The QGIS GUI is divided into six areas:&lt;br /&gt;
&lt;br /&gt;
1.Menu Bar&lt;br /&gt;
&lt;br /&gt;
2.Tool Bar&lt;br /&gt;
&lt;br /&gt;
3.Map Legend&lt;br /&gt;
&lt;br /&gt;
4.Map View&lt;br /&gt;
&lt;br /&gt;
5.Map Overview&lt;br /&gt;
&lt;br /&gt;
6.Status Bar&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.	Menu Bar'''&lt;br /&gt;
&lt;br /&gt;
The menu bar provides access to various QGIS features using a standard hierarchical menu. The&lt;br /&gt;
top-level menus and a summary of some of the menu options are listed below, together with the icons of the corresponding tools as they appear on the toolbar, as well as keyboard shortcuts. Although most menu options have a corresponding tool and vice-versa, the menus are not organized quite like the toolbars. The toolbar containing the tool is listed after each menu option as a checkbox entry. &lt;br /&gt;
&lt;br /&gt;
'''2.	Toolbars'''&lt;br /&gt;
&lt;br /&gt;
The toolbars provide access to most of the same functions as the menus, plus additional tools for interacting with the map. Each toolbar item has popup help available. Hold your mouse over the item and a short description of the tool’s purpose will be displayed.&lt;br /&gt;
&lt;br /&gt;
Every menubar can be moved around according to your needs. Additionally every menubar can be switched off using your right mouse button context menu holding the mouse over the toolbars.&lt;br /&gt;
&lt;br /&gt;
 Tip: RESTORING   TOOLBARS&lt;br /&gt;
 If you have accidentally hidden all your toolbars, you can get them back by choosing menu option  Settings-&amp;gt;Toolbars &lt;br /&gt;
&lt;br /&gt;
'''3.	Map Legend'''&lt;br /&gt;
&lt;br /&gt;
The map legend area is used to set the visibility and ordering of layers.  Layers listed nearer the top of the legend are drawn over layers listed lower down in the legend. The checkbox in each legend entry can be used to show or hide the layer.&lt;br /&gt;
&lt;br /&gt;
Layers can be grouped in the legend window by adding a layer group and dragging layers into the group. To do so, move the mouse pointer to the legend window, right click, choose Add group . A &lt;br /&gt;
new folder appears. Now drag the layers onto to the folder symbol. It is then possible to toggle the &lt;br /&gt;
visibility of all the layers in the group with one click. To bring layers out of a group, move the mouse  pointer to the layer symbol, right click, and choose Make to toplevel item . To give the folder a new  name, choose Rename in the right click menu of the group.&lt;br /&gt;
&lt;br /&gt;
The content of the right mouse button context menu depends on whether the loaded legend item you&lt;br /&gt;
hold your mouse over is a raster or a vector layer. For GRASS vector layers the toggle editing is &lt;br /&gt;
not available. &lt;br /&gt;
&lt;br /&gt;
'''4.	Map View'''&lt;br /&gt;
&lt;br /&gt;
This is the ’business end’ of QGIS - maps are displayed in this area! The map displayed in this window will depend on the vector and raster layers you have chosen to load (see sections that follow for more information on how to load layers). The map view can be panned (shifting the focus of the map display to another region) and zoomed in and out. Various other operations can be performed on the map as described in the toolbar description above. The map view and the legend are tightly bound to each other - the maps in view reflect changes you make in the legend area.&lt;br /&gt;
&lt;br /&gt;
 Tip Zooming the map with the mouse wheel: You can use the mouse wheel to zoom in and out on the map. Place the mouse cursor inside the map area and roll the wheel forward (away from you) to zoom in and backwards (towards you) to zoom out. The mouse cursor position is the center where the zoom occurs. You can customize the behavior of the mouse wheel zoom using the Map tools tab under the Settings &amp;gt; Options menu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Tip Panning the map with the arrow keys and space bar:  You can use the arrow keys to pan in the map. Place the mouse cursor inside the map area and click on the right arrow key to pan East, left arrow key to pan West, up arrow key to pan North and down arrow key to pan South. You can also pan the map using the space bar: just move the mouse while holding down space bar.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''5.	Map Overview'''&lt;br /&gt;
&lt;br /&gt;
The map overview area provides a full extent view of layers added to it. Within the view is a rectangle showing the current map extent. This allows you to quickly determine which area of the map you are currently viewing. &lt;br /&gt;
&lt;br /&gt;
* Add a single layer to the overview by right-clicking on it in the legend and select x Show in overview . You can also add layers to, or remove all layers from the overview using the Overview tools on the toolbar.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 If you click and drag the red rectangle in the overview that shows your current extent, the main map view will update accordingly.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''6	Status Bar'''&lt;br /&gt;
&lt;br /&gt;
The status bar shows you your current position in map coordinates (e.g. meters or decimal degrees) as the mouse pointer is moved across the map view. To the left of the coordinate display in the status bar is a small button that will toggle between showing coordinate position or the view extents of the map view as you pan and zoom in and out.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A progress bar in the status bar shows progress of rendering as each layer is drawn to the map view. In some cases, such as the gathering of statistics in raster layers, the progress bar will be used to show the status of lengthy operations.&lt;br /&gt;
&lt;br /&gt;
If a new plugin or a plugin update is available, you will see a message in the status bar. On the right side of the status bar is a small checkbox which can be used to temporarily prevent layers being drawn on the map view. &lt;br /&gt;
&lt;br /&gt;
At the far right of the status bar is a projector icon. Clicking on this opens the projection properties for the current project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Making your first project - Graeme ==&lt;br /&gt;
&lt;br /&gt;
Often the first thing you want to do in your GIS is pull in the layers you are interested in, symbolise them, zoom to the correct position and then save the map that results as a project (similar to a .apr or a .mxd file). This is all pretty easy in QGIS, as you might expect.&lt;br /&gt;
So the steps we will do are:&lt;br /&gt;
* Create New Project&lt;br /&gt;
* Add Vector Layer&lt;br /&gt;
* Add Raster Layer&lt;br /&gt;
* Add Database Layer&lt;br /&gt;
* Perform simple symbology change&lt;br /&gt;
* Set up some project properties&lt;br /&gt;
* Zoom in to an area of interest&lt;br /&gt;
* Add a north arrow and a scalebar&lt;br /&gt;
* Save the project&lt;br /&gt;
* Close and reopen it&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Advanced symbolisation - the renderer types, labelling and map actions - Brendon ==&lt;br /&gt;
&lt;br /&gt;
'''Make it the way you want it to be!'''&lt;br /&gt;
&lt;br /&gt;
Before we look at symbolisation, lets get to know the data a bit better.  Right-click on a layer and select Properties.  This is called the Layer Properties dialog.  Then click on the Metadata tab.&lt;br /&gt;
&lt;br /&gt;
The Metadata tab contains information about the layer, including specifics about the type and &lt;br /&gt;
location, number of features, feature type, and the editing capabilities. The Layer Spatial Reference System tab provides projection information, and the Attribute field tab lists fields and their data types for a vector layer.   This is a quick way to get information about the layer.&lt;br /&gt;
&lt;br /&gt;
'''Symbolisation introduction'''&lt;br /&gt;
&lt;br /&gt;
To make your map look the way you want it, double-click on a layer in the legend or right-click on the layer and select Properties from the popup menu.  Then go to the Symbolisation tab.  &lt;br /&gt;
&lt;br /&gt;
For a vector layer you will probably see at least the following options: &lt;br /&gt;
Outline style - pen-style for your outline of your feature. you can also set this to ’no pen’.&lt;br /&gt;
Outline color - color of the ouline of your feature&lt;br /&gt;
Outline width - width of your features&lt;br /&gt;
Fill color - fill-color of your features.&lt;br /&gt;
Fill style - Style for filling.&lt;br /&gt;
&lt;br /&gt;
Click on the “Fill color” selector, and select a different colour from the pallette that becomes available.  Then click Apply, and have a look at how your map has changed.  Then click on the “Outline color” and then the “Fill style” selector, change the option and click Apply or OK to see the result.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
'''Setting symbolisation options – Vector map layers'''&lt;br /&gt;
&lt;br /&gt;
Select the Symbology tab (along the top), go to the “Legend type” choice box and and have a look at the options.  You can choose to draw a vector in a number of ways, as a:&lt;br /&gt;
Single symbol (the default) – all objects in a layer are drawn with the same symbol.&lt;br /&gt;
Graduated symbol – objects within the layer are displayed with different symbols classified by the values of a particular field.&lt;br /&gt;
Continuous colour. &lt;br /&gt;
Unique value.&lt;br /&gt;
&lt;br /&gt;
Now select Graduated symbol, and set the Classification field.   &lt;br /&gt;
&lt;br /&gt;
Notice that you can set how to group the symbols, and how many groups to use.   If you want to set the options manually, then use Empty.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now you try.  Experiment with different numbers of classes and make it look just right!  Ask one of the presenters for advice if the result is not as you expected.&lt;br /&gt;
&lt;br /&gt;
Also try the “Continuous colour” and “Unique Value” options out.  Remember that you can save your settings to a file with the “Save Style” button.  This means that when you start another project, you can load that same style again for a layer.&lt;br /&gt;
&lt;br /&gt;
 You can also “Save as Default”, so that objects are given the style you have chosen automatically when they are loaded.&lt;br /&gt;
&lt;br /&gt;
If you want to display many polygon layers at the same time, the Transparency slider (at the top right hand of the Symbology tab) is useful.&lt;br /&gt;
&lt;br /&gt;
----  &lt;br /&gt;
'''More symbolisation options: Labelling vector layers'''       &lt;br /&gt;
&lt;br /&gt;
* Open the Layer Properties dialog.&lt;br /&gt;
&lt;br /&gt;
* Click on the Labels  tab.&lt;br /&gt;
&lt;br /&gt;
*  Check the '''Display labels''' checkbox to enable labeling.&lt;br /&gt;
   &lt;br /&gt;
* Choose the field to label with.   You can enter a default for features that have no name. &lt;br /&gt;
* Click Apply .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now we have labels. How do they look? They are probably too big and poorly placed in relation to&lt;br /&gt;
&lt;br /&gt;
the marker symbol for the lakes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Select the Font entry and use the Font and Color buttons to set the font and color. You can&lt;br /&gt;
&lt;br /&gt;
also change the angle and the placement of the text-label.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To change the position of the text relative to the feature:&lt;br /&gt;
&lt;br /&gt;
    1. Click on the Font  entry.&lt;br /&gt;
&lt;br /&gt;
    2. Change the placement by selecting one of the radio buttons in the Placement group. To fix our&lt;br /&gt;
&lt;br /&gt;
       labels, choose the ⊙ Right radio button.&lt;br /&gt;
&lt;br /&gt;
    3. the Font size units allows you to select between ⊙ Points or ⊙ Map units.&lt;br /&gt;
&lt;br /&gt;
4.Click Apply to see your changes without closing the dialog.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Things are looking better, but the labels are still too close to the marker. To fix this we can use the&lt;br /&gt;
&lt;br /&gt;
options on the Position entry. Here we can add offsets for the X and Y directions. Adding an X&lt;br /&gt;
&lt;br /&gt;
offset of 5 will move our labels off the marker and make them more readable. Of course if your marker&lt;br /&gt;
 symbol or font is larger, more of an offset will be required.&lt;br /&gt;
&lt;br /&gt;
The last adjustment we’ll make is to buffer the labels. This just means putting a backdrop around&lt;br /&gt;
&lt;br /&gt;
them to make them stand out better. To buffer the lakes labels:&lt;br /&gt;
&lt;br /&gt;
    1. Click the Buffer   tab.&lt;br /&gt;
&lt;br /&gt;
    2. Click the x Buffer Labels? checkbox to enable buffering.&lt;br /&gt;
&lt;br /&gt;
    3. Choose a size for the buffer using the spin box.&lt;br /&gt;
&lt;br /&gt;
    4. Choose a color by clicking on Color and choosing your favorite from the color selector. You&lt;br /&gt;
&lt;br /&gt;
       can also set some transparency for the buffer if you prefer.&lt;br /&gt;
&lt;br /&gt;
    5. Click Apply to see if you like the changes.&lt;br /&gt;
&lt;br /&gt;
If you aren’t happy with the results, tweak the settings and then test again by clicking Apply .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A buffer of 1 points seems to give a good result. Notice you can also specify the buffer size in map units if that works out better for you.&lt;br /&gt;
&lt;br /&gt;
              &lt;br /&gt;
The remaining entries inside the Label allow you to set all the attributes stored in the layer. The entries beginning with Data defined parameters for the labels using fields in the layer.&lt;br /&gt;
&lt;br /&gt;
Note that the Label tab provides a preview-box where your selected label is shown.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---- &lt;br /&gt;
&lt;br /&gt;
'''Actions Tab'''&lt;br /&gt;
&lt;br /&gt;
QGIS provides the ability to perform an action based on the attributes of a feature. This can be used to perform any number of actions, for example, running a program with arguments built from the attributes of a feature or passing parameters to a web reporting tool.&lt;br /&gt;
&lt;br /&gt;
Actions are useful when you frequently want to run an external application or view a web page based on one or more values in your vector layer. An example is performing a search based on an attribute value. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
'''Symbolisation options – Raster map layers'''&lt;br /&gt;
&lt;br /&gt;
To view and set the properties for a raster layer, double click on the layer name in the map legend or right click on the layer name and choose Properties from the context menu.  There are several tabs on the dialog:&lt;br /&gt;
&lt;br /&gt;
    • Symbology&lt;br /&gt;
&lt;br /&gt;
    • Transparency&lt;br /&gt;
&lt;br /&gt;
    • Colormap&lt;br /&gt;
&lt;br /&gt;
    • General&lt;br /&gt;
&lt;br /&gt;
    • Metadata&lt;br /&gt;
&lt;br /&gt;
    • Pyramids&lt;br /&gt;
&lt;br /&gt;
    • Histogram&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Symbology Tab'''&lt;br /&gt;
QGIS can render raster layers in two different ways :&lt;br /&gt;
&lt;br /&gt;
   • Single band - one band of the image will be rendered as gray or in pseudocolors.&lt;br /&gt;
&lt;br /&gt;
   • Three band color - three bands from the image will be rendered, each band representing the red, green or blue component that will be used to create a color image.&lt;br /&gt;
&lt;br /&gt;
Within both render types you can invert the color output using the x Invert color map checkbox.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Single Band Rendering&lt;br /&gt;
&lt;br /&gt;
This selection offers you two possibilites to choose. At first you can select which band you like to use&lt;br /&gt;
 for rendering (if the dataset has more than one band).&lt;br /&gt;
&lt;br /&gt;
The second option offers a selection of available colortables for rendering.&lt;br /&gt;
  The following settings are available through the dropdownbox color map.  Grayscale&lt;br /&gt;
 is the default setting. Also available are:&lt;br /&gt;
    • Pseudocolor&lt;br /&gt;
&lt;br /&gt;
    • Freak Out&lt;br /&gt;
&lt;br /&gt;
    • Colormap&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When selecting the entry color map Colormap, the tab Colormap becomes available.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Colormap Tab'''&lt;br /&gt;
&lt;br /&gt;
Three ways of color interpolation are available:&lt;br /&gt;
&lt;br /&gt;
   • Discrete&lt;br /&gt;
&lt;br /&gt;
   • Linear&lt;br /&gt;
&lt;br /&gt;
   • Exact&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The button Add Entry adds a color to the individual color-table. Double-Clicking on the value-&lt;br /&gt;
&lt;br /&gt;
column lets you inserting a specific value. Double clicking on the color-column opens the dialog&lt;br /&gt;
&lt;br /&gt;
 Select color where you can select a color to apply on that value.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Alternatively you can click on the button&lt;br /&gt;
 table from the band (if it has any).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The block Generate new color map allows you to create newly categorized colormaps. You only need to select the number of classes you need and press the button Classify.  Currently only one Classification mode, Equal Interval, is supported.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Raster symbolisation: Histogram Tab'''&lt;br /&gt;
The Histogram     tab allows you to view the distribution of the bands or colors in your raster. You must first generate the raster statistics by clicking the Refresh button. You can choose which bands to display by selecting them in the list box at the bottom left of the tab. Two different chart types are allowed:&lt;br /&gt;
&lt;br /&gt;
    • Bar chart&lt;br /&gt;
&lt;br /&gt;
    • Line graph&lt;br /&gt;
&lt;br /&gt;
You can define the number of chart columns to use and decide whether you want to&lt;br /&gt;
 allow approximation or display x out of range values Once you view the histogram, you’ll&lt;br /&gt;
 notice that the band statistics have been populated on the metadata tab.&lt;br /&gt;
&lt;br /&gt;
= Tea =&lt;br /&gt;
&lt;br /&gt;
==Projection basics - Gavin==&lt;br /&gt;
&lt;br /&gt;
To get by in GIS you have to get to grips with Projections, even if you don't understand them completely. Layers don't overlay properly or are not even in the same place, or you need data in a specific coordinate system for a certain cartographic effect. Or if you are doing analysis, you need your data in a planar 'real-world' coordinate system in units such as metres (you can't work out an area in 'square degrees'). &lt;br /&gt;
&lt;br /&gt;
* What projection settings are important? &lt;br /&gt;
** We'll look at the projection properties of some layers in your project&lt;br /&gt;
** and of QGIS generally: Edit&amp;gt;Options&amp;gt;CRS and Edit&amp;gt;Custom CRS&lt;br /&gt;
** and of your project: File&amp;gt;Project properties&amp;gt;Coordinate Reference System (or click the 'projector' icon in the bottom right corner)&lt;br /&gt;
&lt;br /&gt;
We'll actually project a layer (change its CRS). We'll do this by doing a 'save as shapefile' to the layer. Then we'll bring it back in and see how QGIS can 'project on the fly' to draw it with other layers that are in different projections.&lt;br /&gt;
&lt;br /&gt;
== Map Production - Gavin ==&lt;br /&gt;
&lt;br /&gt;
You've been putting together a nice project and now you need to output a proper map. This is one area where FOSS GIS doesn't meet the expectations of those raised on proprietary GIS, but it's improving all the time. &lt;br /&gt;
&lt;br /&gt;
In QGIS there are a few options&lt;br /&gt;
&lt;br /&gt;
*Quick and easy&lt;br /&gt;
Go to Plugin manager in tools and enable the 'Quickprint' plugin.&lt;br /&gt;
&lt;br /&gt;
Click on the Quick Print logo which is a pdf symbol. &lt;br /&gt;
&lt;br /&gt;
Fill in the details and you project view will be saved as a pdf.&lt;br /&gt;
&lt;br /&gt;
*Export an image&lt;br /&gt;
&lt;br /&gt;
Goto File&amp;gt;Save as Image. You can choose to save a png or jpg of your project view.&lt;br /&gt;
&lt;br /&gt;
*Use the Print Composer&lt;br /&gt;
&lt;br /&gt;
Goto File&amp;gt;Print Composer. This is where you can add titles, legends, scale bars, etc.&lt;br /&gt;
&lt;br /&gt;
If you want a graticule or north arrow, first add these in the project using a plugin.&lt;br /&gt;
&lt;br /&gt;
Then use the print composer to add items to a 'canvas', after which you can change their properties until your map's ready to plot.&lt;br /&gt;
&lt;br /&gt;
==Data capture - editing local and PostGIS datasources - Tim==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Lunch =&lt;br /&gt;
&lt;br /&gt;
==QGIS plugins - Graeme==&lt;br /&gt;
&lt;br /&gt;
* Activating Core plugins - This involves switching on some in-built plugins (Mapserver Export, GRASS, Delimited Text, for example)&lt;br /&gt;
* Accessing the Python plugins - This process involves finding plugins in a repository and fetching them, then activating them&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Web GIS WMS and WFS clients ===&lt;br /&gt;
&lt;br /&gt;
Each of you should have an internet map server available on your local machine - obviously in a non-tutorial session you would be fetching data from a remote server...&lt;br /&gt;
&lt;br /&gt;
We will access the Web Map and Web Feature Services provided and render them in QGIS.&lt;br /&gt;
&lt;br /&gt;
=== A tour of some popular plugins ===&lt;br /&gt;
&lt;br /&gt;
We will go through some of the functionality made available by the plugins now.&lt;br /&gt;
&lt;br /&gt;
* '''ftools''' provides functionality for vector-based tasks&lt;br /&gt;
* '''topocolour'''&lt;br /&gt;
* '''table manager''' provides the ability to edit shapefile attributes &lt;br /&gt;
* '''mapserver export''' provides a basic MapServer mapfile export capability&lt;br /&gt;
* '''GRASS (Brendon to dig into this shortly!)''' provides access to GRASS data and functionality through the less intimidating QGIS interface.&lt;br /&gt;
* '''Delimited Text File''' allows delimited text files with spatial data to be imported into QGIS, for example, csv files&lt;br /&gt;
&lt;br /&gt;
== Advanced analysis with QGIS ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== GRASS Analysis in QGIS- Brendon ===&lt;br /&gt;
GRASS is a sophisticated standalone GIS package which can also be accessed through QGIS. It installs with QGIS by default.  If you don't see a toolbar with grass stalk icons, go to:&lt;br /&gt;
&lt;br /&gt;
 View-&amp;gt;Toolbars &lt;br /&gt;
&lt;br /&gt;
and check that the GRASS toolbar is has a tick against it.  This will place the new toolbar on your QGIS interface.&lt;br /&gt;
&lt;br /&gt;
If you can't see the GRASS toolbar listed there then you may need to add it from the plugin manager:&lt;br /&gt;
&lt;br /&gt;
 Plugins-&amp;gt;Manage plugins-&amp;gt;GRASS&lt;br /&gt;
&lt;br /&gt;
* Click on the first icon (the folder with a grass stalk) to open the prepared GRASS mapset, which is a collection of maps.  &lt;br /&gt;
&lt;br /&gt;
There are three entries needed in the box that opens up: &lt;br /&gt;
&lt;br /&gt;
 Gisdbase&lt;br /&gt;
 Location&lt;br /&gt;
 Mapset&lt;br /&gt;
&lt;br /&gt;
These should be set to:&lt;br /&gt;
 home/tim/Grassdata&lt;br /&gt;
 training_jhb&lt;br /&gt;
 analysis&lt;br /&gt;
&lt;br /&gt;
* Then click OK to open the mapset.&lt;br /&gt;
&lt;br /&gt;
Ask for help from one of the presenters if making these choices is confusing &lt;br /&gt;
for any reason. &lt;br /&gt;
&lt;br /&gt;
Once this is done, you may use the icons with the '+' symbol to add vector &lt;br /&gt;
and raster maps from the GRASS database.  You may use the QGIS context-sensitive menu (right-click) to remove layers if you do not want to see them.&lt;br /&gt;
&lt;br /&gt;
* Now open the prepared QGIS project analysis.qgs to see many of the map layers available in GRASS. We are going to use the GRASS toolbox to find answers to some questions that GIS can help us with.&lt;br /&gt;
&lt;br /&gt;
* Click on the tools icon (with the hammer and spanner) on the GRASS toolbar to open the GRASS tools window. &lt;br /&gt;
&lt;br /&gt;
It has three tabs at the top:&lt;br /&gt;
&lt;br /&gt;
'''Modules Tree''', which has a list of GRASS modules grouped according to their function, rather like a Windows Explorer view of directories.&lt;br /&gt;
&lt;br /&gt;
'''Modules List''', which has a long list of modules.  Type the beginning of a modules name in the box at the bottom to find it rapidly.&lt;br /&gt;
&lt;br /&gt;
'''Browser''', which shows you the GRASS map layers grouped into raster and vector groups.&lt;br /&gt;
&lt;br /&gt;
* If you pick a map layer in the pane on the left, you will see descriptive &lt;br /&gt;
information about the layer in the pane on the right.  Try this with raster&lt;br /&gt;
and vector layers, and notice that the information given is different for the &lt;br /&gt;
two types.  &lt;br /&gt;
&lt;br /&gt;
 You can leave the GRASS Tools window open while you are working with QGIS.   &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Why is it so noisy here?'''&lt;br /&gt;
&lt;br /&gt;
At the end of a long day, you want to put your feet up and relax.  But the noise from the freeway just never stops!  How many houses in the area are close enough to a major road to be badly affected by noise?&lt;br /&gt;
&lt;br /&gt;
The noise from the freeway will travel further than the noise from a suburban &lt;br /&gt;
road. Luckily, we already have separated the freeway from the main roads and others.  &lt;br /&gt;
&lt;br /&gt;
* To start the analysis, go to the modules tree and select the module Buffer, under:&lt;br /&gt;
&lt;br /&gt;
  Vector -&amp;gt; Spatial analysis&lt;br /&gt;
&lt;br /&gt;
* Another tab will open to allow you to run the Buffer module.&lt;br /&gt;
&lt;br /&gt;
* Select the map layer '''freeway''' as input.  &lt;br /&gt;
&lt;br /&gt;
* Enter Buffer distance as 1000.&lt;br /&gt;
&lt;br /&gt;
* Enter name of output as '''freeway_buffer'''&lt;br /&gt;
&lt;br /&gt;
Repeat for '''main_roads''', with a distance of 200.  Make the output name '''main_roads_buffer'''.&lt;br /&gt;
&lt;br /&gt;
* Then use v.patch to merge the two map layers.  Do not check either of the boxes at the top of the dialog.   &lt;br /&gt;
&lt;br /&gt;
The progress bar at the bottom will show you how much longer you have to wait.  When it is finished, click on View output to show the result in QGIS. &lt;br /&gt;
&lt;br /&gt;
See how the buffers are wider around the freeway than around the main roads.&lt;br /&gt;
&lt;br /&gt;
 Tip: You can close the tab for the module using the Close button next to View output.&lt;br /&gt;
&lt;br /&gt;
Now we want to see how many houses are affected.  We have the erven outlines rather than houses, but it will be a good approximation.&lt;br /&gt;
&lt;br /&gt;
* Click on the Modules List tab, and type &amp;quot;v.select&amp;quot; at the bottom.  The v.select.overlap module should appear at the top.  Click on the module name to open it.&lt;br /&gt;
&lt;br /&gt;
* Select Erven as the first input map layer.&lt;br /&gt;
&lt;br /&gt;
* Select Roads_buffer as the second input map layer.&lt;br /&gt;
&lt;br /&gt;
* Enter Erven_noise as the output map layer.&lt;br /&gt;
&lt;br /&gt;
* Click on Run, and View output.&lt;br /&gt;
 &lt;br /&gt;
This will show you all erven overlapping the noise buffer that we created.  &lt;br /&gt;
&lt;br /&gt;
* Open the attribute table and scroll down to the bottom to see how many houses are affected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 You might want to use the Group option in the Layer Manager after doing an analysis, so that you can keep the results together.  Move the group to the bottom of the Layer Manager when you are finished with it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''I can see you!'''&lt;br /&gt;
&lt;br /&gt;
The way noise travels depends on a lot of things apart from distance.  One of these is changes in height.  We are going to generate an elevation surface (raster) to help us in our work.&lt;br /&gt;
&lt;br /&gt;
Raster layers need to have their extent and grid size defined before we start.&lt;br /&gt;
&lt;br /&gt;
* Click on the Modules List tab, and type &amp;quot;g.region.multiple.vector&amp;quot;.  Enter one vector layer, v_5m_contours.&lt;br /&gt;
* Now open the Modules Tree, and start the GRASS shell at the top of the list.  &lt;br /&gt;
* Enter '''g.region res=25''' to set the grid resolution to 25m.&lt;br /&gt;
* Close the shell.&lt;br /&gt;
&lt;br /&gt;
Now we can start the real work:&lt;br /&gt;
&lt;br /&gt;
* Click on the Modules List tab, and type &amp;quot;v.surf.rst&amp;quot;.  Open the module.&lt;br /&gt;
* Select the layer v_5m_contours as the input map layer.&lt;br /&gt;
* Enter elevation as the output map surface.&lt;br /&gt;
* Click Run.  This process may take a little while.&lt;br /&gt;
* Add the elevation surface to your display.&lt;br /&gt;
&lt;br /&gt;
  You may want to change the way the elevation surface displays using the Symbology options.  &lt;br /&gt;
&lt;br /&gt;
Now that we have an elevation surface, we can derive a lot of other information.  First we will make it look better though.  &lt;br /&gt;
&lt;br /&gt;
* Click on the Modules List tab, and type '''r.slope'''.&lt;br /&gt;
* Choose the r.slope.aspect.aspect module.&lt;br /&gt;
* Enter the name of the output map as '''aspect'''.&lt;br /&gt;
* Run and add the layer.&lt;br /&gt;
&lt;br /&gt;
 Set this layer to about 50% transparency for a pleasing effect.&lt;br /&gt;
&lt;br /&gt;
A new 32 storey shopping mall and conference centre is being proposed for development.  The residents are upset that it will dominate the skyline.  The architect says that it will be &amp;quot;bold and pleasing&amp;quot;.  How can we tell how visible it is going to be?&lt;br /&gt;
&lt;br /&gt;
* Select the r.los module.&lt;br /&gt;
* Enter the coordinates of the proposed mall:&lt;br /&gt;
* Enter the height as 165.&lt;br /&gt;
* Enter 25000 as the maximum distance.&lt;br /&gt;
* Enter elev_shade165 as the output surface name.&lt;br /&gt;
* Run and view the surface to see where the development will be visible from.&lt;br /&gt;
&lt;br /&gt;
Now you try - change the height of the building to what you feel is reasonable, and see what difference it makes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Finding a home'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Select the v.extract.where module.&lt;br /&gt;
&lt;br /&gt;
* Select '''land_use''' as the input map layer.&lt;br /&gt;
&lt;br /&gt;
* Enter '''landuse like Park OR landuse like Botanical Garden OR Bird sanctuary'''&lt;br /&gt;
&lt;br /&gt;
* Enter '''open_space''' as the output map layer name.&lt;br /&gt;
&lt;br /&gt;
* Run and view the output.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You have extracted the open areas suitable for children from the land use layer.  &lt;br /&gt;
&lt;br /&gt;
Now buffer these to a distance of 3km using v.buffer.  &lt;br /&gt;
&lt;br /&gt;
Then use the v.to.rast.constant module to convert this vector layer to a raster surface '''r_open_space'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
West to north-west facing areas will suit our young family.  A raster &amp;quot;mask&amp;quot; needs to be set up to include only suitable aspects. GRASS recognises the raster named MASK for this.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Enter the expression:&lt;br /&gt;
&lt;br /&gt;
 r.mapcalc 'MASK=(((relief@Analysis&amp;lt;315)&amp;amp;&amp;amp;(relief@Analysis&amp;gt;=270)))'&lt;br /&gt;
&lt;br /&gt;
If you are feeling adventurous you can use the visual mapcalc interface to set up the expression instead.   &lt;br /&gt;
&lt;br /&gt;
* Now use the simple mapcalculator r.mapcalculator.  Enter '''open_space''' as the first layer (A) and '''aspect''' as the second layer (B).&lt;br /&gt;
&lt;br /&gt;
* Enter the formula A*B.&lt;br /&gt;
&lt;br /&gt;
* Run and display the output.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These are the places where are young family should look first to be happy in their new home!&lt;br /&gt;
&lt;br /&gt;
== Audience Selections ==&lt;br /&gt;
&lt;br /&gt;
Tell us what else you'd like to try.&lt;br /&gt;
&lt;br /&gt;
== Possible Extras ==&lt;br /&gt;
*Advanced spatial analysis ''without'' GRASS: Carson Farmer's plugins with R, etc - Gavin&lt;br /&gt;
*Introduction to the Python console&lt;br /&gt;
*The Python API&lt;br /&gt;
*Show off session: Here we can do some whizz bang demo stuff that we don't have time to do in  workshop format but that will give you some hints as to what else can be achieved. e.g. Terrain modelling and drapes.&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
Questions and answers. Resources.  Possibly some in-depth examples based on frequent questions.  What would you like to see at future workshops?&lt;br /&gt;
&lt;br /&gt;
=== What you can do next===&lt;br /&gt;
&lt;br /&gt;
Install QGIS at home or work on Windows, Mac or Linux and start playing.&lt;br /&gt;
&lt;br /&gt;
Read the manual.&lt;br /&gt;
&lt;br /&gt;
Check out these free QGIS tutorials and courses: &amp;lt;nowiki&amp;gt;http://www.osgeo.org/educational_content?filter0=&amp;amp;filter1=qgis&amp;amp;filter2[]=English&amp;amp;filter3=&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Join the [http://www.qgis.org/en/community.html QGIS community]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Your assessment of the workshop==&lt;br /&gt;
&lt;br /&gt;
Tell us what you thought!&lt;br /&gt;
&lt;br /&gt;
== Where to get free spatial data? ==&lt;br /&gt;
Surveys and Mapping, Demarcation Board, OpenStreetMap, GPS, etc. Check out [[South_African_Geodata]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Africa]]&lt;/div&gt;</summary>
		<author><name>Wiki-Brendonwp</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=AfricaEvents27June2009&amp;diff=39430</id>
		<title>AfricaEvents27June2009</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=AfricaEvents27June2009&amp;diff=39430"/>
		<updated>2009-06-26T22:37:46Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Brendonwp: /* Advanced analysis with QGIS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;...back to [[Africa_Local_Chapter]]&lt;br /&gt;
&lt;br /&gt;
'''Introduction to QGIS'''&lt;br /&gt;
&lt;br /&gt;
= What? =&lt;br /&gt;
&lt;br /&gt;
Our second OSGeo local chapter meet up! We will chew the cud, show you some cool stuff and start to get people familiar with the brilliant FOSS GeoSpatial products out there, specifically QGIS on this occasion!&lt;br /&gt;
&lt;br /&gt;
We'll go through installing QGIS and getting it to a point where you can have fun (and get your job done) with it. &lt;br /&gt;
&lt;br /&gt;
= How Much? =&lt;br /&gt;
&lt;br /&gt;
There will be a door charge of R250 to cover costs, lunch and refreshments. That and an open mind are all you need to bring. &lt;br /&gt;
&lt;br /&gt;
= Where? =&lt;br /&gt;
&lt;br /&gt;
 St Davids Marist Inanda College&lt;br /&gt;
 36 Rivonia Rd&lt;br /&gt;
 Inanda&lt;br /&gt;
 Sandton&lt;br /&gt;
[http://www.stdavids.co.za/about_directions.asp Map and Directions]&lt;br /&gt;
&lt;br /&gt;
NB: We'll be in the Prep School computer lab.&lt;br /&gt;
&lt;br /&gt;
= When? =&lt;br /&gt;
&lt;br /&gt;
* Saturday June 27th 2009&lt;br /&gt;
* 08h30 to 15h30&lt;br /&gt;
* includes lunch and refreshments&lt;br /&gt;
&lt;br /&gt;
= Who =&lt;br /&gt;
&lt;br /&gt;
Your friendly presenters for the day will be:&lt;br /&gt;
&lt;br /&gt;
* '''Tim Sutton''' (tim at linfiniti.com) - QGIS hacker and FOSS GIS junkie extraordinaire. Tim eats Weetbix for breakfast because it sounds like Linux. He once rewrote Nkosi Sikelela in C++ because he was feeling patriotic.&lt;br /&gt;
* '''Graeme McFerren''' - (graeme.mcferren at gmail.com) - GIS researcher and FOSS4G user. Mmm, aspire to be like Tim then.&lt;br /&gt;
* '''Gavin Fleming''' (gavinjfleming at gmail dot com) - I enjoy my daily FOSS4G fix. I'm a 'geoinformation scientist' at Mintek and love to see cutting edge and useful geospatial applications emerging, especially when they're based on FOSS. &lt;br /&gt;
* '''Brendon Wolff-Piggott''' - (brendon at integratedgeodata.co.za) - Water resources consultant and FOSS GIS enthusiast.  I wish there were more hours in the day to keep up with FOSS4G!&lt;br /&gt;
&lt;br /&gt;
= RSVP =&lt;br /&gt;
Let gavinjfleming at gmail dot com know if you're coming as numbers are limited. &lt;br /&gt;
&lt;br /&gt;
= Programme and notes =&lt;br /&gt;
&lt;br /&gt;
* Be there in time for a 8h30 start&lt;br /&gt;
* Computers are provided. All you need to bring is R250!&lt;br /&gt;
* It doesn't matter what level you are.&lt;br /&gt;
* The programme is subject to change and participant input right to the last minute!&lt;br /&gt;
&lt;br /&gt;
== Intro to the QGIS project - Tim ==&lt;br /&gt;
&lt;br /&gt;
== First tour of the User Interface - Graeme ==&lt;br /&gt;
Before we set off into the QGIS journey for today, lets get a bit familiar with the vehicle - the GUI or Graphical User Interface!&lt;br /&gt;
&lt;br /&gt;
The key principle is simplicity - standard GIS functionality should be easy to find and obvious to use. More complex functionality is layered onto QGIS as needed via a plugin or extension mechanism&lt;br /&gt;
&lt;br /&gt;
The QGIS GUI is divided into six areas:&lt;br /&gt;
&lt;br /&gt;
1.Menu Bar&lt;br /&gt;
&lt;br /&gt;
2.Tool Bar&lt;br /&gt;
&lt;br /&gt;
3.Map Legend&lt;br /&gt;
&lt;br /&gt;
4.Map View&lt;br /&gt;
&lt;br /&gt;
5.Map Overview&lt;br /&gt;
&lt;br /&gt;
6.Status Bar&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.	Menu Bar'''&lt;br /&gt;
&lt;br /&gt;
The menu bar provides access to various QGIS features using a standard hierarchical menu. The&lt;br /&gt;
top-level menus and a summary of some of the menu options are listed below, together with the icons of the corresponding tools as they appear on the toolbar, as well as keyboard shortcuts. Although most menu options have a corresponding tool and vice-versa, the menus are not organized quite like the toolbars. The toolbar containing the tool is listed after each menu option as a checkbox entry. &lt;br /&gt;
&lt;br /&gt;
'''2.	Toolbars'''&lt;br /&gt;
&lt;br /&gt;
The toolbars provide access to most of the same functions as the menus, plus additional tools for interacting with the map. Each toolbar item has popup help available. Hold your mouse over the item and a short description of the tool’s purpose will be displayed.&lt;br /&gt;
&lt;br /&gt;
Every menubar can be moved around according to your needs. Additionally every menubar can be switched off using your right mouse button context menu holding the mouse over the toolbars.&lt;br /&gt;
&lt;br /&gt;
 Tip: RESTORING   TOOLBARS&lt;br /&gt;
 If you have accidentally hidden all your toolbars, you can get them back by choosing menu option  Settings-&amp;gt;Toolbars &lt;br /&gt;
&lt;br /&gt;
'''3.	Map Legend'''&lt;br /&gt;
&lt;br /&gt;
The map legend area is used to set the visibility and ordering of layers.  Layers listed nearer the top of the legend are drawn over layers listed lower down in the legend. The checkbox in each legend entry can be used to show or hide the layer.&lt;br /&gt;
&lt;br /&gt;
Layers can be grouped in the legend window by adding a layer group and dragging layers into the group. To do so, move the mouse pointer to the legend window, right click, choose Add group . A &lt;br /&gt;
new folder appears. Now drag the layers onto to the folder symbol. It is then possible to toggle the &lt;br /&gt;
visibility of all the layers in the group with one click. To bring layers out of a group, move the mouse  pointer to the layer symbol, right click, and choose Make to toplevel item . To give the folder a new  name, choose Rename in the right click menu of the group.&lt;br /&gt;
&lt;br /&gt;
The content of the right mouse button context menu depends on whether the loaded legend item you&lt;br /&gt;
hold your mouse over is a raster or a vector layer. For GRASS vector layers the toggle editing is &lt;br /&gt;
not available. &lt;br /&gt;
&lt;br /&gt;
'''4.	Map View'''&lt;br /&gt;
&lt;br /&gt;
This is the ’business end’ of QGIS - maps are displayed in this area! The map displayed in this window will depend on the vector and raster layers you have chosen to load (see sections that follow for more information on how to load layers). The map view can be panned (shifting the focus of the map display to another region) and zoomed in and out. Various other operations can be performed on the map as described in the toolbar description above. The map view and the legend are tightly bound to each other - the maps in view reflect changes you make in the legend area.&lt;br /&gt;
&lt;br /&gt;
 Tip Zooming the map with the mouse wheel: You can use the mouse wheel to zoom in and out on the map. Place the mouse cursor inside the map area and roll the wheel forward (away from you) to zoom in and backwards (towards you) to zoom out. The mouse cursor position is the center where the zoom occurs. You can customize the behavior of the mouse wheel zoom using the Map tools tab under the Settings &amp;gt; Options menu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Tip Panning the map with the arrow keys and space bar:  You can use the arrow keys to pan in the map. Place the mouse cursor inside the map area and click on the right arrow key to pan East, left arrow key to pan West, up arrow key to pan North and down arrow key to pan South. You can also pan the map using the space bar: just move the mouse while holding down space bar.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''5.	Map Overview'''&lt;br /&gt;
&lt;br /&gt;
The map overview area provides a full extent view of layers added to it. Within the view is a rectangle showing the current map extent. This allows you to quickly determine which area of the map you are currently viewing. &lt;br /&gt;
&lt;br /&gt;
* Add a single layer to the overview by right-clicking on it in the legend and select x Show in overview . You can also add layers to, or remove all layers from the overview using the Overview tools on the toolbar.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 If you click and drag the red rectangle in the overview that shows your current extent, the main map view will update accordingly.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''6	Status Bar'''&lt;br /&gt;
&lt;br /&gt;
The status bar shows you your current position in map coordinates (e.g. meters or decimal degrees) as the mouse pointer is moved across the map view. To the left of the coordinate display in the status bar is a small button that will toggle between showing coordinate position or the view extents of the map view as you pan and zoom in and out.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A progress bar in the status bar shows progress of rendering as each layer is drawn to the map view. In some cases, such as the gathering of statistics in raster layers, the progress bar will be used to show the status of lengthy operations.&lt;br /&gt;
&lt;br /&gt;
If a new plugin or a plugin update is available, you will see a message in the status bar. On the right side of the status bar is a small checkbox which can be used to temporarily prevent layers being drawn on the map view. &lt;br /&gt;
&lt;br /&gt;
At the far right of the status bar is a projector icon. Clicking on this opens the projection properties for the current project.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Making your first project - Graeme ==&lt;br /&gt;
&lt;br /&gt;
Often the first thing you want to do in your GIS is pull in the layers you are interested in, symbolise them, zoom to the correct position and then save the map that results as a project (similar to a .apr or a .mxd file). This is all pretty easy in QGIS, as you might expect.&lt;br /&gt;
So the steps we will do are:&lt;br /&gt;
* Create New Project&lt;br /&gt;
* Add Vector Layer&lt;br /&gt;
* Add Raster Layer&lt;br /&gt;
* Add Database Layer&lt;br /&gt;
* Perform simple symbology change&lt;br /&gt;
* Set up some project properties&lt;br /&gt;
* Zoom in to an area of interest&lt;br /&gt;
* Add a north arrow and a scalebar&lt;br /&gt;
* Save the project&lt;br /&gt;
* Close and reopen it&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Advanced symbolisation - the renderer types, labelling and map actions - Brendon ==&lt;br /&gt;
&lt;br /&gt;
Loading and viewing data - common data formats, symbolisation.  Tips and tricks to enhance image display.&lt;br /&gt;
&lt;br /&gt;
= Tea =&lt;br /&gt;
&lt;br /&gt;
==Projection basics - Gavin==&lt;br /&gt;
&lt;br /&gt;
To get by in GIS you have to get to grips with Projections, even if you don't understand them completely. Layers don't overlay properly or are not even in the same place, or you need data in a specific coordinate system for a certain cartographic effect. Or if you are doing analysis, you need your data in a planar 'real-world' coordinate system in units such as metres (you can't work out an area in 'square degrees'). &lt;br /&gt;
&lt;br /&gt;
* What projection settings are important? &lt;br /&gt;
** We'll look at the projection properties of some layers in your project&lt;br /&gt;
** and of QGIS generally: Edit&amp;gt;Options&amp;gt;CRS and Edit&amp;gt;Custom CRS&lt;br /&gt;
** and of your project: File&amp;gt;Project properties&amp;gt;Coordinate Reference System (or click the 'projector' icon in the bottom right corner)&lt;br /&gt;
&lt;br /&gt;
We'll actually project a layer (change its CRS). We'll do this by doing a 'save as shapefile' to the layer. Then we'll bring it back in and see how QGIS can 'project on the fly' to draw it with other layers that are in different projections.&lt;br /&gt;
&lt;br /&gt;
== Map Production - Gavin ==&lt;br /&gt;
&lt;br /&gt;
You've been putting together a nice project and now you need to output a proper map. This is one area where FOSS GIS doesn't meet the expectations of those raised on proprietary GIS, but it's improving all the time. &lt;br /&gt;
&lt;br /&gt;
In QGIS there are a few options&lt;br /&gt;
&lt;br /&gt;
*Quick and easy&lt;br /&gt;
Go to Plugin manager in tools and enable the 'Quickprint' plugin.&lt;br /&gt;
&lt;br /&gt;
Click on the Quick Print logo which is a pdf symbol. &lt;br /&gt;
&lt;br /&gt;
Fill in the details and you project view will be saved as a pdf.&lt;br /&gt;
&lt;br /&gt;
*Export an image&lt;br /&gt;
&lt;br /&gt;
Goto File&amp;gt;Save as Image. You can choose to save a png or jpg of your project view.&lt;br /&gt;
&lt;br /&gt;
*Use the Print Composer&lt;br /&gt;
&lt;br /&gt;
Goto File&amp;gt;Print Composer. This is where you can add titles, legends, scale bars, etc.&lt;br /&gt;
&lt;br /&gt;
If you want a graticule or north arrow, first add these in the project using a plugin.&lt;br /&gt;
&lt;br /&gt;
Then use the print composer to add items to a 'canvas', after which you can change their properties until your map's ready to plot.&lt;br /&gt;
&lt;br /&gt;
==Data capture - editing local and PostGIS datasources - Tim==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Lunch =&lt;br /&gt;
&lt;br /&gt;
==QGIS plugins - Graeme==&lt;br /&gt;
&lt;br /&gt;
* Activating Core plugins - This involves switching on some in-built plugins (Mapserver Export, GRASS, Delimited Text, for example)&lt;br /&gt;
* Accessing the Python plugins - This process involves finding plugins in a repository and fetching them, then activating them&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Web GIS WMS and WFS clients ===&lt;br /&gt;
&lt;br /&gt;
Each of you should have an internet map server available on your local machine - obviously in a non-tutorial session you would be fetching data from a remote server...&lt;br /&gt;
&lt;br /&gt;
We will access the Web Map and Web Feature Services provided and render them in QGIS.&lt;br /&gt;
&lt;br /&gt;
=== A tour of some popular plugins ===&lt;br /&gt;
&lt;br /&gt;
We will go through some of the functionality made available by the plugins now.&lt;br /&gt;
&lt;br /&gt;
* '''ftools''' provides functionality for vector-based tasks&lt;br /&gt;
* '''topocolour'''&lt;br /&gt;
* '''table manager''' provides the ability to edit shapefile attributes &lt;br /&gt;
* '''mapserver export''' provides a basic MapServer mapfile export capability&lt;br /&gt;
* '''GRASS (Brendon to dig into this shortly!)''' provides access to GRASS data and functionality through the less intimidating QGIS interface.&lt;br /&gt;
* '''Delimited Text File''' allows delimited text files with spatial data to be imported into QGIS, for example, csv files&lt;br /&gt;
&lt;br /&gt;
== Advanced analysis with QGIS ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== GRASS Analysis in QGIS- Brendon ===&lt;br /&gt;
GRASS is a sophisticated standalone GIS package which can also be accessed through QGIS. It installs with QGIS by default.  If you don't see a toolbar with grass stalk icons, go to:&lt;br /&gt;
&lt;br /&gt;
 View-&amp;gt;Toolbars &lt;br /&gt;
&lt;br /&gt;
and check that the GRASS toolbar is has a tick against it.  This will place the new toolbar on your QGIS interface.&lt;br /&gt;
&lt;br /&gt;
If you can't see the GRASS toolbar listed there then you may need to add it from the plugin manager:&lt;br /&gt;
&lt;br /&gt;
 Plugins-&amp;gt;Manage plugins-&amp;gt;GRASS&lt;br /&gt;
&lt;br /&gt;
* Click on the first icon (the folder with a grass stalk) to open the prepared GRASS mapset, which is a collection of maps.  &lt;br /&gt;
&lt;br /&gt;
There are three entries needed in the box that opens up: &lt;br /&gt;
&lt;br /&gt;
 Gisdbase&lt;br /&gt;
 Location&lt;br /&gt;
 Mapset&lt;br /&gt;
&lt;br /&gt;
These should be set to:&lt;br /&gt;
 home/tim/Grassdata&lt;br /&gt;
 training_jhb&lt;br /&gt;
 analysis&lt;br /&gt;
&lt;br /&gt;
* Then click OK to open the mapset.&lt;br /&gt;
&lt;br /&gt;
Ask for help from one of the presenters if making these choices is confusing &lt;br /&gt;
for any reason. &lt;br /&gt;
&lt;br /&gt;
Once this is done, you may use the icons with the '+' symbol to add vector &lt;br /&gt;
and raster maps from the GRASS database.  You may use the QGIS context-sensitive menu (right-click) to remove layers if you do not want to see them.&lt;br /&gt;
&lt;br /&gt;
* Now open the prepared QGIS project analysis.qgs to see many of the map layers available in GRASS. We are going to use the GRASS toolbox to find answers to some questions that GIS can help us with.&lt;br /&gt;
&lt;br /&gt;
* Click on the tools icon (with the hammer and spanner) on the GRASS toolbar to open the GRASS tools window. &lt;br /&gt;
&lt;br /&gt;
It has three tabs at the top:&lt;br /&gt;
&lt;br /&gt;
'''Modules Tree''', which has a list of GRASS modules grouped according to their function, rather like a Windows Explorer view of directories.&lt;br /&gt;
&lt;br /&gt;
'''Modules List''', which has a long list of modules.  Type the beginning of a modules name in the box at the bottom to find it rapidly.&lt;br /&gt;
&lt;br /&gt;
'''Browser''', which shows you the GRASS map layers grouped into raster and vector groups.&lt;br /&gt;
&lt;br /&gt;
* If you pick a map layer in the pane on the left, you will see descriptive &lt;br /&gt;
information about the layer in the pane on the right.  Try this with raster&lt;br /&gt;
and vector layers, and notice that the information given is different for the &lt;br /&gt;
two types.  &lt;br /&gt;
&lt;br /&gt;
 You can leave the GRASS Tools window open while you are working with QGIS.   &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Why is it so noisy here?'''&lt;br /&gt;
&lt;br /&gt;
At the end of a long day, you want to put your feet up and relax.  But the noise from the freeway just never stops!  How many houses in the area are close enough to a major road to be badly affected by noise?&lt;br /&gt;
&lt;br /&gt;
The noise from the freeway will travel further than the noise from a suburban &lt;br /&gt;
road. Luckily, we already have separated the freeway from the main roads and others.  &lt;br /&gt;
&lt;br /&gt;
* To start the analysis, go to the modules tree and select the module Buffer, under:&lt;br /&gt;
&lt;br /&gt;
  Vector -&amp;gt; Spatial analysis&lt;br /&gt;
&lt;br /&gt;
* Another tab will open to allow you to run the Buffer module.&lt;br /&gt;
&lt;br /&gt;
* Select the map layer '''freeway''' as input.  &lt;br /&gt;
&lt;br /&gt;
* Enter Buffer distance as 1000.&lt;br /&gt;
&lt;br /&gt;
* Enter name of output as '''freeway_buffer'''&lt;br /&gt;
&lt;br /&gt;
Repeat for '''main_roads''', with a distance of 200.  Make the output name '''main_roads_buffer'''.&lt;br /&gt;
&lt;br /&gt;
* Then use v.patch to merge the two map layers.  Do not check either of the boxes at the top of the dialog.   &lt;br /&gt;
&lt;br /&gt;
The progress bar at the bottom will show you how much longer you have to wait.  When it is finished, click on View output to show the result in QGIS. &lt;br /&gt;
&lt;br /&gt;
See how the buffers are wider around the freeway than around the main roads.&lt;br /&gt;
&lt;br /&gt;
 Tip: You can close the tab for the module using the Close button next to View output.&lt;br /&gt;
&lt;br /&gt;
Now we want to see how many houses are affected.  We have the erven outlines rather than houses, but it will be a good approximation.&lt;br /&gt;
&lt;br /&gt;
* Click on the Modules List tab, and type &amp;quot;v.select&amp;quot; at the bottom.  The v.select.overlap module should appear at the top.  Click on the module name to open it.&lt;br /&gt;
&lt;br /&gt;
* Select Erven as the first input map layer.&lt;br /&gt;
&lt;br /&gt;
* Select Roads_buffer as the second input map layer.&lt;br /&gt;
&lt;br /&gt;
* Enter Erven_noise as the output map layer.&lt;br /&gt;
&lt;br /&gt;
* Click on Run, and View output.&lt;br /&gt;
 &lt;br /&gt;
This will show you all erven overlapping the noise buffer that we created.  &lt;br /&gt;
&lt;br /&gt;
* Open the attribute table and scroll down to the bottom to see how many houses are affected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 You might want to use the Group option in the Layer Manager after doing an analysis, so that you can keep the results together.  Move the group to the bottom of the Layer Manager when you are finished with it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''I can see you!'''&lt;br /&gt;
&lt;br /&gt;
The way noise travels depends on a lot of things apart from distance.  One of these is changes in height.  We are going to generate an elevation surface (raster) to help us in our work.&lt;br /&gt;
&lt;br /&gt;
Raster layers need to have their extent and grid size defined before we start.&lt;br /&gt;
&lt;br /&gt;
* Click on the Modules List tab, and type &amp;quot;g.region.multiple.vector&amp;quot;.  Enter one vector layer, v_5m_contours.&lt;br /&gt;
* Now open the Modules Tree, and start the GRASS shell at the top of the list.  &lt;br /&gt;
* Enter '''g.region res=25''' to set the grid resolution to 25m.&lt;br /&gt;
* Close the shell.&lt;br /&gt;
&lt;br /&gt;
Now we can start the real work:&lt;br /&gt;
&lt;br /&gt;
* Click on the Modules List tab, and type &amp;quot;v.surf.rst&amp;quot;.  Open the module.&lt;br /&gt;
* Select the layer v_5m_contours as the input map layer.&lt;br /&gt;
* Enter elevation as the output map surface.&lt;br /&gt;
* Click Run.  This process may take a little while.&lt;br /&gt;
* Add the elevation surface to your display.&lt;br /&gt;
&lt;br /&gt;
  You may want to change the way the elevation surface displays using the Symbology options.  &lt;br /&gt;
&lt;br /&gt;
Now that we have an elevation surface, we can derive a lot of other information.  First we will make it look better though.  &lt;br /&gt;
&lt;br /&gt;
* Click on the Modules List tab, and type '''r.slope'''.&lt;br /&gt;
* Choose the r.slope.aspect.aspect module.&lt;br /&gt;
* Enter the name of the output map as '''aspect'''.&lt;br /&gt;
* Run and add the layer.&lt;br /&gt;
&lt;br /&gt;
 Set this layer to about 50% transparency for a pleasing effect.&lt;br /&gt;
&lt;br /&gt;
A new 32 storey shopping mall and conference centre is being proposed for development.  The residents are upset that it will dominate the skyline.  The architect says that it will be &amp;quot;bold and pleasing&amp;quot;.  How can we tell how visible it is going to be?&lt;br /&gt;
&lt;br /&gt;
* Select the r.los module.&lt;br /&gt;
* Enter the coordinates of the proposed mall:&lt;br /&gt;
* Enter the height as 165.&lt;br /&gt;
* Enter 25000 as the maximum distance.&lt;br /&gt;
* Enter elev_shade165 as the output surface name.&lt;br /&gt;
* Run and view the surface to see where the development will be visible from.&lt;br /&gt;
&lt;br /&gt;
Now you try - change the height of the building to what you feel is reasonable, and see what difference it makes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Finding a home'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Select the v.extract.where module.&lt;br /&gt;
&lt;br /&gt;
* Select '''land_use''' as the input map layer.&lt;br /&gt;
&lt;br /&gt;
* Enter '''landuse like Park OR landuse like Botanical Garden OR Bird sanctuary'''&lt;br /&gt;
&lt;br /&gt;
* Enter '''open_space''' as the output map layer name.&lt;br /&gt;
&lt;br /&gt;
* Run and view the output.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You have extracted the open areas suitable for children from the land use layer.  &lt;br /&gt;
&lt;br /&gt;
Now buffer these to a distance of 3km using v.buffer.  &lt;br /&gt;
&lt;br /&gt;
Then use the v.to.rast.constant module to convert this vector layer to a raster surface '''r_open_space'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
West to north-west facing areas will suit our young family.  A raster &amp;quot;mask&amp;quot; needs to be set up to include only suitable aspects. GRASS recognises the raster named MASK for this.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Enter the expression:&lt;br /&gt;
&lt;br /&gt;
 r.mapcalc 'MASK=(((relief@Analysis&amp;lt;315)&amp;amp;&amp;amp;(relief@Analysis&amp;gt;=270)))'&lt;br /&gt;
&lt;br /&gt;
If you are feeling adventurous you can use the visual mapcalc interface to set up the expression instead.   &lt;br /&gt;
&lt;br /&gt;
* Now use the simple mapcalculator r.mapcalculator.  Enter '''open_space''' as the first layer (A) and '''aspect''' as the second layer (B).&lt;br /&gt;
&lt;br /&gt;
* Enter the formula A*B.&lt;br /&gt;
&lt;br /&gt;
* Run and display the output.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These are the places where are young family should look first to be happy in their new home!&lt;br /&gt;
&lt;br /&gt;
== Audience Selections ==&lt;br /&gt;
&lt;br /&gt;
Tell us what else you'd like to try.&lt;br /&gt;
&lt;br /&gt;
== Possible Extras ==&lt;br /&gt;
*Advanced spatial analysis ''without'' GRASS: Carson Farmer's plugins with R, etc - Gavin&lt;br /&gt;
*Introduction to the Python console&lt;br /&gt;
*The Python API&lt;br /&gt;
*Show off session: Here we can do some whizz bang demo stuff that we don't have time to do in  workshop format but that will give you some hints as to what else can be achieved. e.g. Terrain modelling and drapes.&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
Questions and answers. Resources.  Possibly some in-depth examples based on frequent questions.  What would you like to see at future workshops?&lt;br /&gt;
&lt;br /&gt;
=== What you can do next===&lt;br /&gt;
&lt;br /&gt;
Install QGIS at home or work on Windows, Mac or Linux and start playing.&lt;br /&gt;
&lt;br /&gt;
Read the manual.&lt;br /&gt;
&lt;br /&gt;
Check out these free QGIS tutorials and courses: &amp;lt;nowiki&amp;gt;http://www.osgeo.org/educational_content?filter0=&amp;amp;filter1=qgis&amp;amp;filter2[]=English&amp;amp;filter3=&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Join the [http://www.qgis.org/en/community.html QGIS community]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Your assessment of the workshop==&lt;br /&gt;
&lt;br /&gt;
Tell us what you thought!&lt;br /&gt;
&lt;br /&gt;
== Where to get free spatial data? ==&lt;br /&gt;
Surveys and Mapping, Demarcation Board, OpenStreetMap, GPS, etc. Check out [[South_African_Geodata]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Africa]]&lt;/div&gt;</summary>
		<author><name>Wiki-Brendonwp</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=AfricaEvents27June2009&amp;diff=39414</id>
		<title>AfricaEvents27June2009</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=AfricaEvents27June2009&amp;diff=39414"/>
		<updated>2009-06-26T19:27:45Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Brendonwp: /* First tour of the User Interface - Brendon */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;...back to [[Africa_Local_Chapter]]&lt;br /&gt;
&lt;br /&gt;
'''Introduction to QGIS'''&lt;br /&gt;
&lt;br /&gt;
= What? =&lt;br /&gt;
&lt;br /&gt;
Our second OSGeo local chapter meet up! We will chew the cud, show you some cool stuff and start to get people familiar with the brilliant FOSS GeoSpatial products out there, specifically QGIS on this occasion!&lt;br /&gt;
&lt;br /&gt;
We'll go through installing QGIS and getting it to a point where you can have fun (and get your job done) with it. &lt;br /&gt;
&lt;br /&gt;
= How Much? =&lt;br /&gt;
&lt;br /&gt;
There will be a door charge of R250 to cover costs, lunch and refreshments. That and an open mind are all you need to bring. &lt;br /&gt;
&lt;br /&gt;
= Where? =&lt;br /&gt;
&lt;br /&gt;
 St Davids Marist Inanda College&lt;br /&gt;
 36 Rivonia Rd&lt;br /&gt;
 Inanda&lt;br /&gt;
 Sandton&lt;br /&gt;
[http://www.stdavids.co.za/about_directions.asp Map and Directions]&lt;br /&gt;
&lt;br /&gt;
NB: We'll be in the Prep School computer lab.&lt;br /&gt;
&lt;br /&gt;
= When? =&lt;br /&gt;
&lt;br /&gt;
* Saturday June 27th 2009&lt;br /&gt;
* 08h30 to 15h30&lt;br /&gt;
* includes lunch and refreshments&lt;br /&gt;
&lt;br /&gt;
= Who =&lt;br /&gt;
&lt;br /&gt;
Your friendly presenters for the day will be:&lt;br /&gt;
&lt;br /&gt;
* '''Tim Sutton''' (tim at linfiniti.com) - QGIS hacker and FOSS GIS junkie extraordinaire. Tim eats Weetbix for breakfast because it sounds like Linux. He once rewrote Nkosi Sikelela in C++ because he was feeling patriotic.&lt;br /&gt;
* '''Graeme McFerren''' - (graeme.mcferren at gmail.com) - GIS researcher and FOSS4G user. Mmm, aspire to be like Tim then.&lt;br /&gt;
* '''Gavin Fleming''' (gavinjfleming at gmail dot com) - I enjoy my daily FOSS4G fix. I'm a 'geoinformation scientist' at Mintek and love to see cutting edge and useful geospatial applications emerging, especially when they're based on FOSS. &lt;br /&gt;
* '''Brendon Wolff-Piggott''' - (brendon at integratedgeodata.co.za) - Water resources consultant and FOSS GIS enthusiast.  I wish there were more hours in the day to keep up with FOSS4G!&lt;br /&gt;
&lt;br /&gt;
= RSVP =&lt;br /&gt;
Let gavinjfleming at gmail dot com know if you're coming as numbers are limited. &lt;br /&gt;
&lt;br /&gt;
= Programme and notes =&lt;br /&gt;
&lt;br /&gt;
* Be there in time for a 8h30 start&lt;br /&gt;
* Computers are provided. All you need to bring is R250!&lt;br /&gt;
* It doesn't matter what level you are.&lt;br /&gt;
* The programme is subject to change and participant input right to the last minute!&lt;br /&gt;
&lt;br /&gt;
== Intro to the QGIS project - Tim ==&lt;br /&gt;
&lt;br /&gt;
== First tour of the User Interface - Brendon ==&lt;br /&gt;
&lt;br /&gt;
The QGIS GUI is divided into six areas:&lt;br /&gt;
&lt;br /&gt;
1.Menu Bar&lt;br /&gt;
&lt;br /&gt;
2.Tool Bar&lt;br /&gt;
&lt;br /&gt;
3.Map Legend&lt;br /&gt;
&lt;br /&gt;
4.Map View&lt;br /&gt;
&lt;br /&gt;
5.Map Overview&lt;br /&gt;
&lt;br /&gt;
6.Status Bar&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.	Menu Bar'''&lt;br /&gt;
&lt;br /&gt;
The menu bar provides access to various QGIS features using a standard hierarchical menu. The&lt;br /&gt;
top-level menus and a summary of some of the menu options are listed below, together with the icons of the corresponding tools as they appear on the toolbar, as well as keyboard shortcuts. Although most menu options have a corresponding tool and vice-versa, the menus are not organized quite like the toolbars. The toolbar containing the tool is listed after each menu option as a checkbox entry. &lt;br /&gt;
&lt;br /&gt;
'''2.	Toolbars'''&lt;br /&gt;
&lt;br /&gt;
The toolbars provide access to most of the same functions as the menus, plus additional tools for interacting with the map. Each toolbar item has popup help available. Hold your mouse over the item and a short description of the tool’s purpose will be displayed.&lt;br /&gt;
&lt;br /&gt;
Every menubar can be moved around according to your needs. Additionally every menubar can be switched off using your right mouse button context menu holding the mouse over the toolbars.&lt;br /&gt;
&lt;br /&gt;
 Tip: RESTORING   TOOLBARS&lt;br /&gt;
 If you have accidentally hidden all your toolbars, you can get them back by choosing menu option  Settings-&amp;gt;Toolbars &lt;br /&gt;
&lt;br /&gt;
'''3.	Map Legend'''&lt;br /&gt;
&lt;br /&gt;
The map legend area is used to set the visibility and ordering of layers.  Layers listed nearer the top of the legend are drawn over layers listed lower down in the legend. The checkbox in each legend entry can be used to show or hide the layer.&lt;br /&gt;
&lt;br /&gt;
Layers can be grouped in the legend window by adding a layer group and dragging layers into the group. To do so, move the mouse pointer to the legend window, right click, choose Add group . A &lt;br /&gt;
new folder appears. Now drag the layers onto to the folder symbol. It is then possible to toggle the &lt;br /&gt;
visibility of all the layers in the group with one click. To bring layers out of a group, move the mouse  pointer to the layer symbol, right click, and choose Make to toplevel item . To give the folder a new  name, choose Rename in the right click menu of the group.&lt;br /&gt;
&lt;br /&gt;
The content of the right mouse button context menu depends on whether the loaded legend item you&lt;br /&gt;
hold your mouse over is a raster or a vector layer. For GRASS vector layers the toggle editing is &lt;br /&gt;
not available. &lt;br /&gt;
&lt;br /&gt;
'''4.	Map View'''&lt;br /&gt;
&lt;br /&gt;
This is the ’business end’ of QGIS - maps are displayed in this area! The map displayed in this window will depend on the vector and raster layers you have chosen to load (see sections that follow for more information on how to load layers). The map view can be panned (shifting the focus of the map display to another region) and zoomed in and out. Various other operations can be performed on the map as described in the toolbar description above. The map view and the legend are tightly bound to each other - the maps in view reflect changes you make in the legend area.&lt;br /&gt;
&lt;br /&gt;
 Tip Zooming the map with the mouse wheel: You can use the mouse wheel to zoom in and out on the map. Place the mouse cursor inside the map area and roll the wheel forward (away from you) to zoom in and backwards (towards you) to zoom out. The mouse cursor position is the center where the zoom occurs. You can customize the behavior of the mouse wheel zoom using the Map tools tab under the Settings &amp;gt; Options menu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Tip Panning the map with the arrow keys and space bar:  You can use the arrow keys to pan in the map. Place the mouse cursor inside the map area and click on the right arrow key to pan East, left arrow key to pan West, up arrow key to pan North and down arrow key to pan South. You can also pan the map using the space bar: just move the mouse while holding down space bar.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''5.	Map Overview'''&lt;br /&gt;
&lt;br /&gt;
The map overview area provides a full extent view of layers added to it. Within the view is a rectangle showing the current map extent. This allows you to quickly determine which area of the map you are currently viewing. &lt;br /&gt;
&lt;br /&gt;
* Add a single layer to the overview by right-clicking on it in the legend and select x Show in overview . You can also add layers to, or remove all layers from the overview using the Overview tools on the toolbar.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 If you click and drag the red rectangle in the overview that shows your current extent, the main map view will update accordingly.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''6	Status Bar'''&lt;br /&gt;
&lt;br /&gt;
The status bar shows you your current position in map coordinates (e.g. meters or decimal degrees) as the mouse pointer is moved across the map view. To the left of the coordinate display in the status bar is a small button that will toggle between showing coordinate position or the view extents of the map view as you pan and zoom in and out.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A progress bar in the status bar shows progress of rendering as each layer is drawn to the map view. In some cases, such as the gathering of statistics in raster layers, the progress bar will be used to show the status of lengthy operations.&lt;br /&gt;
&lt;br /&gt;
If a new plugin or a plugin update is available, you will see a message in the status bar. On the right side of the status bar is a small checkbox which can be used to temporarily prevent layers being drawn on the map view. &lt;br /&gt;
&lt;br /&gt;
At the far right of the status bar is a projector icon. Clicking on this opens the projection properties for the current project.&lt;br /&gt;
&lt;br /&gt;
== Advanced symbolisation - the renderer types, labelling and map actions - Brendon ==&lt;br /&gt;
&lt;br /&gt;
Loading and viewing data - common data formats, symbolisation.  Tips and tricks to enhance image display.&lt;br /&gt;
&lt;br /&gt;
== Making your first project - Graeme ==&lt;br /&gt;
&lt;br /&gt;
- adding layers and saving a project&lt;br /&gt;
&lt;br /&gt;
* Tea&lt;br /&gt;
&lt;br /&gt;
== Map Production - Gavin ==&lt;br /&gt;
&lt;br /&gt;
==Data capture - editing local and PostGIS datasources - Tim==&lt;br /&gt;
&lt;br /&gt;
==Projection basics - Gavin==&lt;br /&gt;
&lt;br /&gt;
* Lunch &lt;br /&gt;
&lt;br /&gt;
==QGIS plugins - Graeme==&lt;br /&gt;
&lt;br /&gt;
=== QGIS and Web GIS WMS and WFS clients - Graeme ===&lt;br /&gt;
&lt;br /&gt;
== Advanced analysis with QGIS ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== GRASS Analysis in QGIS- Brendon ===&lt;br /&gt;
GRASS is a sophisticated standalone GIS package which can also be accessed through QGIS. It installs with QGIS by default.  If you don't see a toolbar with grass stalk icons, go to:&lt;br /&gt;
&lt;br /&gt;
 View-&amp;gt;Toolbars &lt;br /&gt;
&lt;br /&gt;
and check that the GRASS toolbar is has a tick against it.  This will place the new toolbar on your QGIS interface.&lt;br /&gt;
&lt;br /&gt;
If you can't see the GRASS toolbar listed there then you may need to add it from the plugin manager:&lt;br /&gt;
&lt;br /&gt;
 Plugins-&amp;gt;Manage plugins-&amp;gt;GRASS&lt;br /&gt;
&lt;br /&gt;
* Click on the first icon (the folder with a grass stalk) to open the prepared GRASS mapset, which is a collection of maps.  &lt;br /&gt;
&lt;br /&gt;
There are three entries needed in the box that opens up: &lt;br /&gt;
&lt;br /&gt;
 Gisdbase&lt;br /&gt;
 Location&lt;br /&gt;
 Mapset&lt;br /&gt;
&lt;br /&gt;
These should be set to:&lt;br /&gt;
 home/tim/Grassdata&lt;br /&gt;
 training_jhb&lt;br /&gt;
 analysis&lt;br /&gt;
&lt;br /&gt;
* Then click OK to open the mapset.&lt;br /&gt;
&lt;br /&gt;
Ask for help from one of the presenters if making these choices is confusing &lt;br /&gt;
for any reason. &lt;br /&gt;
&lt;br /&gt;
Once this is done, you may use the icons with the '+' symbol to add vector &lt;br /&gt;
and raster maps from the GRASS database.  You may use the QGIS context-sensitive menu (right-click) to remove layers if you do not want to see them.&lt;br /&gt;
&lt;br /&gt;
* Now open the prepared QGIS project analysis.qgs to see many of the map layers available in GRASS. We are going to use the GRASS toolbox to find answers to some questions that GIS can help us with.&lt;br /&gt;
&lt;br /&gt;
* Click on the tools icon (with the hammer and spanner) on the GRASS toolbar to open the GRASS tools window. &lt;br /&gt;
&lt;br /&gt;
It has three tabs at the top:&lt;br /&gt;
&lt;br /&gt;
'''Modules Tree''', which has a list of GRASS modules grouped according to their function, rather like a Windows Explorer view of directories.&lt;br /&gt;
&lt;br /&gt;
'''Modules List''', which has a long list of modules.  Type the beginning of a modules name in the box at the bottom to find it rapidly.&lt;br /&gt;
&lt;br /&gt;
'''Browser''', which shows you the GRASS map layers grouped into raster and vector groups.&lt;br /&gt;
&lt;br /&gt;
* If you pick a map layer in the pane on the left, you will see descriptive &lt;br /&gt;
information about the layer in the pane on the right.  Try this with raster&lt;br /&gt;
and vector layers, and notice that the information given is different for the &lt;br /&gt;
two types.  &lt;br /&gt;
&lt;br /&gt;
 You can leave the GRASS Tools window open while you are working with QGIS.   &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Why is it so noisy here?'''&lt;br /&gt;
&lt;br /&gt;
At the end of a long day, you want to put your feet up and relax.  But the noise from the freeway just never stops!  How many houses in the area are close enough to a major road to be badly affected by noise?&lt;br /&gt;
&lt;br /&gt;
The noise from the freeway will travel further than the noise from a suburban &lt;br /&gt;
road. Luckily, we already have distances entered against types of road in the Roads map layer.&lt;br /&gt;
&lt;br /&gt;
* Open the attribute table and have a look.&lt;br /&gt;
&lt;br /&gt;
* To start the analysis, go to the modules tree and select the module Buffer, under:&lt;br /&gt;
&lt;br /&gt;
  Vector -&amp;gt; Spatial analysis&lt;br /&gt;
&lt;br /&gt;
Another tab will open to allow you to run the Buffer module.&lt;br /&gt;
&lt;br /&gt;
* Select the map layer Roads as input.  &lt;br /&gt;
&lt;br /&gt;
......  go to Linux for other detail:&lt;br /&gt;
select attrib for Buffer&lt;br /&gt;
  &lt;br /&gt;
* Enter Roads_buffer as the name of the output layer.&lt;br /&gt;
&lt;br /&gt;
* Then press Run. &lt;br /&gt;
&lt;br /&gt;
The progress bar at the bottom will show you how much longer you have to wait.  When it is finished, click on View output to show the result in QGIS. &lt;br /&gt;
&lt;br /&gt;
See how the buffers are wider around the freeway than around the main roads.&lt;br /&gt;
&lt;br /&gt;
 Tip: You can close the tab for the module using the Close button next to View output.&lt;br /&gt;
&lt;br /&gt;
Now we want to see how many houses are affected.  We have the erven outlines rather than houses, but it will be a good approximation.&lt;br /&gt;
&lt;br /&gt;
* Click on the Modules List tab, and type &amp;quot;v.select&amp;quot; at the bottom.  The v.select.overlap module should appear at the top.  Click on the module name to open it.&lt;br /&gt;
&lt;br /&gt;
* Select Erven as the first input map layer.&lt;br /&gt;
&lt;br /&gt;
* Select Roads_buffer as the second input map layer.&lt;br /&gt;
&lt;br /&gt;
* Enter Erven_noise as the output map layer.&lt;br /&gt;
&lt;br /&gt;
* Click on Run, and View output.&lt;br /&gt;
 &lt;br /&gt;
This will show you all erven overlapping the noise buffer that we created.  &lt;br /&gt;
&lt;br /&gt;
* Open the attribute table and scroll down to the bottom to see how many houses are affected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 You might want to use the Group option in the Layer Manager after doing an analysis, so that you can keep the results together.  Move the group to the bottom of the Layer Manager when you are finished with it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''I can see you!'''&lt;br /&gt;
&lt;br /&gt;
The way noise travels depends on a lot of things apart from distance.  One of these is changes in height.  We are going to generate an elevation surface (raster) to help us in our work.&lt;br /&gt;
&lt;br /&gt;
Raster layers need to have their extent and grid size defined before we start.&lt;br /&gt;
&lt;br /&gt;
* Click on the Modules List tab, and type &amp;quot;g.region.multiple.vector&amp;quot;.  Enter one vector layer, v_5m_contours.&lt;br /&gt;
* Now open the Modules Tree, and start the GRASS shell at the top of the list.  &lt;br /&gt;
* Enter '''g.region res=25''' to set the grid resolution to 25m.&lt;br /&gt;
* Close the shell.&lt;br /&gt;
&lt;br /&gt;
Now we can start the real work:&lt;br /&gt;
&lt;br /&gt;
* Click on the Modules List tab, and type &amp;quot;v.surf.rst&amp;quot;.  Open the module.&lt;br /&gt;
* Select the layer v_5m_contours as the input map layer.&lt;br /&gt;
* Enter elevation as the output map surface.&lt;br /&gt;
* Click Run.  This process may take a little while.&lt;br /&gt;
* Add the elevation surface to your display.&lt;br /&gt;
&lt;br /&gt;
  You may want to change the way the elevation surface displays using the Symbology options.  &lt;br /&gt;
&lt;br /&gt;
Now that we have an elevation surface, we can derive a lot of other information.  First we will make it look better though.  &lt;br /&gt;
&lt;br /&gt;
* Click on the Modules List tab, and type '''r.slope'''.&lt;br /&gt;
* Choose the r.slope.aspect.aspect module.&lt;br /&gt;
* Enter the name of the output map as '''aspect'''.&lt;br /&gt;
* Run and add the layer.&lt;br /&gt;
&lt;br /&gt;
 Set this layer to about 50% transparency for a pleasing effect.&lt;br /&gt;
&lt;br /&gt;
A new 32 storey shopping mall and conference centre is being proposed for development.  The residents are upset that it will dominate the skyline.  The architect says that it will be &amp;quot;bold and pleasing&amp;quot;.  How can we tell how visible it is going to be?&lt;br /&gt;
&lt;br /&gt;
* Select the r.los module.&lt;br /&gt;
* Enter the coordinates of the proposed mall:&lt;br /&gt;
* Enter the height as 165.&lt;br /&gt;
* Enter 25000 as the maximum distance.&lt;br /&gt;
* Enter elev_shade165 as the output surface name.&lt;br /&gt;
* Run and view the surface to see where the development will be visible from.&lt;br /&gt;
&lt;br /&gt;
Now you try - change the height of the building to what you feel is reasonable, and see what difference it makes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Finding a home'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Select the v.extract.where module.&lt;br /&gt;
&lt;br /&gt;
* Select '''land_use''' as the input map layer.&lt;br /&gt;
&lt;br /&gt;
* Enter '''landuse like Park OR landuse like Botanical Garden OR Bird sanctuary'''&lt;br /&gt;
&lt;br /&gt;
* Enter '''open_space''' as the output map layer name.&lt;br /&gt;
&lt;br /&gt;
* Run and view the output.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You have extracted the open areas suitable for children from the land use layer.  &lt;br /&gt;
&lt;br /&gt;
Now buffer these to a distance of 3km using v.buffer.  &lt;br /&gt;
&lt;br /&gt;
Then use the v.to.rast.constant module to convert this vector layer to a raster surface '''r_open_space'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
West to north-west facing areas will suit our young family.  A raster &amp;quot;mask&amp;quot; needs to be set up to include only suitable aspects. GRASS recognises the raster named MASK for this.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Enter the expression:&lt;br /&gt;
&lt;br /&gt;
 r.mapcalc 'MASK=(((relief@Analysis&amp;lt;315)&amp;amp;&amp;amp;(relief@Analysis&amp;gt;=270)))'&lt;br /&gt;
&lt;br /&gt;
If you are feeling adventurous you can use the visual mapcalc interface to set up the expression instead.   &lt;br /&gt;
&lt;br /&gt;
* Now use the simple mapcalculator r.mapcalculator.  Enter '''open_space''' as the first layer (A) and '''aspect''' as the second layer (B).&lt;br /&gt;
&lt;br /&gt;
* Enter the formula A*B.&lt;br /&gt;
&lt;br /&gt;
* Run and display the output.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These are the places where are young family should look first to be happy in their new home!&lt;br /&gt;
&lt;br /&gt;
== Audience Selections ==&lt;br /&gt;
&lt;br /&gt;
Tell us what else you'd like to try.&lt;br /&gt;
&lt;br /&gt;
== Show off session ==&lt;br /&gt;
&lt;br /&gt;
Here we can do some whizz bang demo stuff that we don't have time to do in  workshop format but that will give you some hints as to what else can be achieved.&lt;br /&gt;
&lt;br /&gt;
e.g. Terrain modelling and drapes.&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
Questions and answers.  What you can do next.  Resources.  Possibly some in-depth examples based on frequent questions.  What would you like to see at future workshops?&lt;br /&gt;
&lt;br /&gt;
== Possible Extras ==&lt;br /&gt;
*advanced spatial analysis ''without'' GRASS: Carson Farmer's plugins with R, etc - Gavin&lt;br /&gt;
*Introduction to the Python console&lt;br /&gt;
*The Python API&lt;br /&gt;
&lt;br /&gt;
==Your assessment of the workshop==&lt;br /&gt;
&lt;br /&gt;
Tell us what you thought!&lt;br /&gt;
&lt;br /&gt;
== PS: Where to get free spatial data? ==&lt;br /&gt;
Surveys and Mapping, Demarcation Board, OpenStreetMap, GPS, etc. Check out [[South_African_Geodata]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Africa]]&lt;/div&gt;</summary>
		<author><name>Wiki-Brendonwp</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=AfricaEvents27June2009&amp;diff=39413</id>
		<title>AfricaEvents27June2009</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=AfricaEvents27June2009&amp;diff=39413"/>
		<updated>2009-06-26T19:25:32Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Brendonwp: /* First tour of the User Interface - Brendon */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;...back to [[Africa_Local_Chapter]]&lt;br /&gt;
&lt;br /&gt;
'''Introduction to QGIS'''&lt;br /&gt;
&lt;br /&gt;
= What? =&lt;br /&gt;
&lt;br /&gt;
Our second OSGeo local chapter meet up! We will chew the cud, show you some cool stuff and start to get people familiar with the brilliant FOSS GeoSpatial products out there, specifically QGIS on this occasion!&lt;br /&gt;
&lt;br /&gt;
We'll go through installing QGIS and getting it to a point where you can have fun (and get your job done) with it. &lt;br /&gt;
&lt;br /&gt;
= How Much? =&lt;br /&gt;
&lt;br /&gt;
There will be a door charge of R250 to cover costs, lunch and refreshments. That and an open mind are all you need to bring. &lt;br /&gt;
&lt;br /&gt;
= Where? =&lt;br /&gt;
&lt;br /&gt;
 St Davids Marist Inanda College&lt;br /&gt;
 36 Rivonia Rd&lt;br /&gt;
 Inanda&lt;br /&gt;
 Sandton&lt;br /&gt;
[http://www.stdavids.co.za/about_directions.asp Map and Directions]&lt;br /&gt;
&lt;br /&gt;
NB: We'll be in the Prep School computer lab.&lt;br /&gt;
&lt;br /&gt;
= When? =&lt;br /&gt;
&lt;br /&gt;
* Saturday June 27th 2009&lt;br /&gt;
* 08h30 to 15h30&lt;br /&gt;
* includes lunch and refreshments&lt;br /&gt;
&lt;br /&gt;
= Who =&lt;br /&gt;
&lt;br /&gt;
Your friendly presenters for the day will be:&lt;br /&gt;
&lt;br /&gt;
* '''Tim Sutton''' (tim at linfiniti.com) - QGIS hacker and FOSS GIS junkie extraordinaire. Tim eats Weetbix for breakfast because it sounds like Linux. He once rewrote Nkosi Sikelela in C++ because he was feeling patriotic.&lt;br /&gt;
* '''Graeme McFerren''' - (graeme.mcferren at gmail.com) - GIS researcher and FOSS4G user. Mmm, aspire to be like Tim then.&lt;br /&gt;
* '''Gavin Fleming''' (gavinjfleming at gmail dot com) - I enjoy my daily FOSS4G fix. I'm a 'geoinformation scientist' at Mintek and love to see cutting edge and useful geospatial applications emerging, especially when they're based on FOSS. &lt;br /&gt;
* '''Brendon Wolff-Piggott''' - (brendon at integratedgeodata.co.za) - Water resources consultant and FOSS GIS enthusiast.  I wish there were more hours in the day to keep up with FOSS4G!&lt;br /&gt;
&lt;br /&gt;
= RSVP =&lt;br /&gt;
Let gavinjfleming at gmail dot com know if you're coming as numbers are limited. &lt;br /&gt;
&lt;br /&gt;
= Programme and notes =&lt;br /&gt;
&lt;br /&gt;
* Be there in time for a 8h30 start&lt;br /&gt;
* Computers are provided. All you need to bring is R250!&lt;br /&gt;
* It doesn't matter what level you are.&lt;br /&gt;
* The programme is subject to change and participant input right to the last minute!&lt;br /&gt;
&lt;br /&gt;
== Intro to the QGIS project - Tim ==&lt;br /&gt;
&lt;br /&gt;
== First tour of the User Interface - Brendon ==&lt;br /&gt;
&lt;br /&gt;
The QGIS GUI is divided into six areas:&lt;br /&gt;
&lt;br /&gt;
1.Menu Bar&lt;br /&gt;
&lt;br /&gt;
2.Tool Bar&lt;br /&gt;
&lt;br /&gt;
3.Map Legend&lt;br /&gt;
&lt;br /&gt;
4.Map View&lt;br /&gt;
&lt;br /&gt;
5.Map Overview&lt;br /&gt;
&lt;br /&gt;
6.Status Bar&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.	Menu Bar'''&lt;br /&gt;
&lt;br /&gt;
The menu bar provides access to various QGIS features using a standard hierarchical menu. The&lt;br /&gt;
top-level menus and a summary of some of the menu options are listed below, together with the icons of the corresponding tools as they appear on the toolbar, as well as keyboard shortcuts. Although most menu options have a corresponding tool and vice-versa, the menus are not organized quite like the toolbars. The toolbar containing the tool is listed after each menu option as a checkbox entry. &lt;br /&gt;
&lt;br /&gt;
'''2.	Toolbars'''&lt;br /&gt;
&lt;br /&gt;
The toolbars provide access to most of the same functions as the menus, plus additional tools for interacting with the map. Each toolbar item has popup help available. Hold your mouse over the item and a short description of the tool’s purpose will be displayed.&lt;br /&gt;
&lt;br /&gt;
Every menubar can be moved around according to your needs. Additionally every menubar can be switched off using your right mouse button context menu holding the mouse over the toolbars.&lt;br /&gt;
&lt;br /&gt;
 Tip: RESTORING   TOOLBARS&lt;br /&gt;
 If you have accidentally hidden all your toolbars, you can get them back by choosing menu option  Settings-&amp;gt;Toolbars &lt;br /&gt;
&lt;br /&gt;
'''3.	Map Legend'''&lt;br /&gt;
&lt;br /&gt;
The map legend area is used to set the visibility and ordering of layers.  Layers listed nearer the top of the legend are drawn over layers listed lower down in the legend. The checkbox in each legend entry can be used to show or hide the layer.&lt;br /&gt;
&lt;br /&gt;
Layers can be grouped in the legend window by adding a layer group and dragging layers into the group. To do so, move the mouse pointer to the legend window, right click, choose Add group . A &lt;br /&gt;
new folder appears. Now drag the layers onto to the folder symbol. It is then possible to toggle the &lt;br /&gt;
visibility of all the layers in the group with one click. To bring layers out of a group, move the mouse  pointer to the layer symbol, right click, and choose Make to toplevel item . To give the folder a new  name, choose Rename in the right click menu of the group.&lt;br /&gt;
&lt;br /&gt;
The content of the right mouse button context menu depends on whether the loaded legend item you&lt;br /&gt;
hold your mouse over is a raster or a vector layer. For GRASS vector layers the toggle editing is &lt;br /&gt;
not available. &lt;br /&gt;
&lt;br /&gt;
'''4.	Map View&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
This is the ’business end’ of QGIS - maps are displayed in this area! The map displayed in this&lt;br /&gt;
&lt;br /&gt;
window will depend on the vector and raster layers you have chosen to load (see sections that follow&lt;br /&gt;
&lt;br /&gt;
for more information on how to load layers). The map view can be panned (shifting the focus of the&lt;br /&gt;
&lt;br /&gt;
map display to another region) and zoomed in and out. Various other operations can be performed&lt;br /&gt;
&lt;br /&gt;
on the map as described in the toolbar description above. The map view and the legend are tightly&lt;br /&gt;
&lt;br /&gt;
bound to each other - the maps in view reflect changes you make in the legend area.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Tip Zooming the map with the mouse wheel: You can use the mouse wheel to zoom in and out on the map. Place the mouse cursor inside the map area and roll the wheel forward (away from you) to zoom in and backwards (towards you) to zoom out. The mouse&lt;br /&gt;
 cursor position is the center where the zoom occurs. You can customize the behavior of the mouse wheel zoom using the Map tools tab under the Settings &amp;gt; Options menu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Tip Panning the map with the arrow keys and space bar:  You can use the arrow keys to pan in the map. Place the mouse cursor inside the map area and click on the&lt;br /&gt;
 right arrow key to pan East, left arrow key to pan West, up arrow key to pan North and down arrow key to pan&lt;br /&gt;
 South. You can also pan the map using the space bar: just move the mouse while holding down space bar.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''5.	Map Overview&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
The map overview area provides a full extent view of layers added to it. Within the view is a rectangle&lt;br /&gt;
 showing the current map extent. This allows you to quickly determine which area of the map you are currently viewing. &lt;br /&gt;
&lt;br /&gt;
* Add a single layer to the overview by right-clicking&lt;br /&gt;
 on it in the legend and select x Show in overview . You can also add layers to, or remove all layers&lt;br /&gt;
 from the overview using the Overview tools on the toolbar.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 If you click and drag the red rectangle in the overview that shows your current extent, the main map&lt;br /&gt;
&lt;br /&gt;
view will update accordingly.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''6	Status Bar&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
The status bar shows you your current position in map coordinates (e.g. meters or decimal degrees)&lt;br /&gt;
&lt;br /&gt;
as the mouse pointer is moved across the map view. To the left of the coordinate display in the status&lt;br /&gt;
&lt;br /&gt;
bar is a small button that will toggle between showing coordinate position or the view extents of the&lt;br /&gt;
&lt;br /&gt;
map view as you pan and zoom in and out.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A progress bar in the status bar shows progress of rendering as each layer is drawn to the map view.&lt;br /&gt;
&lt;br /&gt;
In some cases, such as the gathering of statistics in raster layers, the progress bar will be used to&lt;br /&gt;
&lt;br /&gt;
show the status of lengthy operations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If a new plugin or a plugin update is available, you will see a message in the status bar. On the&lt;br /&gt;
&lt;br /&gt;
right side of the status bar is a small checkbox which can be used to temporarily prevent layers being&lt;br /&gt;
 drawn on the map view. &lt;br /&gt;
&lt;br /&gt;
At the far right of the status bar is a projector icon.&lt;br /&gt;
  Clicking on this opens the projection properties for the current project.&lt;br /&gt;
&lt;br /&gt;
== Advanced symbolisation - the renderer types, labelling and map actions - Brendon ==&lt;br /&gt;
&lt;br /&gt;
Loading and viewing data - common data formats, symbolisation.  Tips and tricks to enhance image display.&lt;br /&gt;
&lt;br /&gt;
== Making your first project - Graeme ==&lt;br /&gt;
&lt;br /&gt;
- adding layers and saving a project&lt;br /&gt;
&lt;br /&gt;
* Tea&lt;br /&gt;
&lt;br /&gt;
== Map Production - Gavin ==&lt;br /&gt;
&lt;br /&gt;
==Data capture - editing local and PostGIS datasources - Tim==&lt;br /&gt;
&lt;br /&gt;
==Projection basics - Gavin==&lt;br /&gt;
&lt;br /&gt;
* Lunch &lt;br /&gt;
&lt;br /&gt;
==QGIS plugins - Graeme==&lt;br /&gt;
&lt;br /&gt;
=== QGIS and Web GIS WMS and WFS clients - Graeme ===&lt;br /&gt;
&lt;br /&gt;
== Advanced analysis with QGIS ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== GRASS Analysis in QGIS- Brendon ===&lt;br /&gt;
GRASS is a sophisticated standalone GIS package which can also be accessed through QGIS. It installs with QGIS by default.  If you don't see a toolbar with grass stalk icons, go to:&lt;br /&gt;
&lt;br /&gt;
 View-&amp;gt;Toolbars &lt;br /&gt;
&lt;br /&gt;
and check that the GRASS toolbar is has a tick against it.  This will place the new toolbar on your QGIS interface.&lt;br /&gt;
&lt;br /&gt;
If you can't see the GRASS toolbar listed there then you may need to add it from the plugin manager:&lt;br /&gt;
&lt;br /&gt;
 Plugins-&amp;gt;Manage plugins-&amp;gt;GRASS&lt;br /&gt;
&lt;br /&gt;
* Click on the first icon (the folder with a grass stalk) to open the prepared GRASS mapset, which is a collection of maps.  &lt;br /&gt;
&lt;br /&gt;
There are three entries needed in the box that opens up: &lt;br /&gt;
&lt;br /&gt;
 Gisdbase&lt;br /&gt;
 Location&lt;br /&gt;
 Mapset&lt;br /&gt;
&lt;br /&gt;
These should be set to:&lt;br /&gt;
 home/tim/Grassdata&lt;br /&gt;
 training_jhb&lt;br /&gt;
 analysis&lt;br /&gt;
&lt;br /&gt;
* Then click OK to open the mapset.&lt;br /&gt;
&lt;br /&gt;
Ask for help from one of the presenters if making these choices is confusing &lt;br /&gt;
for any reason. &lt;br /&gt;
&lt;br /&gt;
Once this is done, you may use the icons with the '+' symbol to add vector &lt;br /&gt;
and raster maps from the GRASS database.  You may use the QGIS context-sensitive menu (right-click) to remove layers if you do not want to see them.&lt;br /&gt;
&lt;br /&gt;
* Now open the prepared QGIS project analysis.qgs to see many of the map layers available in GRASS. We are going to use the GRASS toolbox to find answers to some questions that GIS can help us with.&lt;br /&gt;
&lt;br /&gt;
* Click on the tools icon (with the hammer and spanner) on the GRASS toolbar to open the GRASS tools window. &lt;br /&gt;
&lt;br /&gt;
It has three tabs at the top:&lt;br /&gt;
&lt;br /&gt;
'''Modules Tree''', which has a list of GRASS modules grouped according to their function, rather like a Windows Explorer view of directories.&lt;br /&gt;
&lt;br /&gt;
'''Modules List''', which has a long list of modules.  Type the beginning of a modules name in the box at the bottom to find it rapidly.&lt;br /&gt;
&lt;br /&gt;
'''Browser''', which shows you the GRASS map layers grouped into raster and vector groups.&lt;br /&gt;
&lt;br /&gt;
* If you pick a map layer in the pane on the left, you will see descriptive &lt;br /&gt;
information about the layer in the pane on the right.  Try this with raster&lt;br /&gt;
and vector layers, and notice that the information given is different for the &lt;br /&gt;
two types.  &lt;br /&gt;
&lt;br /&gt;
 You can leave the GRASS Tools window open while you are working with QGIS.   &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Why is it so noisy here?'''&lt;br /&gt;
&lt;br /&gt;
At the end of a long day, you want to put your feet up and relax.  But the noise from the freeway just never stops!  How many houses in the area are close enough to a major road to be badly affected by noise?&lt;br /&gt;
&lt;br /&gt;
The noise from the freeway will travel further than the noise from a suburban &lt;br /&gt;
road. Luckily, we already have distances entered against types of road in the Roads map layer.&lt;br /&gt;
&lt;br /&gt;
* Open the attribute table and have a look.&lt;br /&gt;
&lt;br /&gt;
* To start the analysis, go to the modules tree and select the module Buffer, under:&lt;br /&gt;
&lt;br /&gt;
  Vector -&amp;gt; Spatial analysis&lt;br /&gt;
&lt;br /&gt;
Another tab will open to allow you to run the Buffer module.&lt;br /&gt;
&lt;br /&gt;
* Select the map layer Roads as input.  &lt;br /&gt;
&lt;br /&gt;
......  go to Linux for other detail:&lt;br /&gt;
select attrib for Buffer&lt;br /&gt;
  &lt;br /&gt;
* Enter Roads_buffer as the name of the output layer.&lt;br /&gt;
&lt;br /&gt;
* Then press Run. &lt;br /&gt;
&lt;br /&gt;
The progress bar at the bottom will show you how much longer you have to wait.  When it is finished, click on View output to show the result in QGIS. &lt;br /&gt;
&lt;br /&gt;
See how the buffers are wider around the freeway than around the main roads.&lt;br /&gt;
&lt;br /&gt;
 Tip: You can close the tab for the module using the Close button next to View output.&lt;br /&gt;
&lt;br /&gt;
Now we want to see how many houses are affected.  We have the erven outlines rather than houses, but it will be a good approximation.&lt;br /&gt;
&lt;br /&gt;
* Click on the Modules List tab, and type &amp;quot;v.select&amp;quot; at the bottom.  The v.select.overlap module should appear at the top.  Click on the module name to open it.&lt;br /&gt;
&lt;br /&gt;
* Select Erven as the first input map layer.&lt;br /&gt;
&lt;br /&gt;
* Select Roads_buffer as the second input map layer.&lt;br /&gt;
&lt;br /&gt;
* Enter Erven_noise as the output map layer.&lt;br /&gt;
&lt;br /&gt;
* Click on Run, and View output.&lt;br /&gt;
 &lt;br /&gt;
This will show you all erven overlapping the noise buffer that we created.  &lt;br /&gt;
&lt;br /&gt;
* Open the attribute table and scroll down to the bottom to see how many houses are affected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 You might want to use the Group option in the Layer Manager after doing an analysis, so that you can keep the results together.  Move the group to the bottom of the Layer Manager when you are finished with it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''I can see you!'''&lt;br /&gt;
&lt;br /&gt;
The way noise travels depends on a lot of things apart from distance.  One of these is changes in height.  We are going to generate an elevation surface (raster) to help us in our work.&lt;br /&gt;
&lt;br /&gt;
Raster layers need to have their extent and grid size defined before we start.&lt;br /&gt;
&lt;br /&gt;
* Click on the Modules List tab, and type &amp;quot;g.region.multiple.vector&amp;quot;.  Enter one vector layer, v_5m_contours.&lt;br /&gt;
* Now open the Modules Tree, and start the GRASS shell at the top of the list.  &lt;br /&gt;
* Enter '''g.region res=25''' to set the grid resolution to 25m.&lt;br /&gt;
* Close the shell.&lt;br /&gt;
&lt;br /&gt;
Now we can start the real work:&lt;br /&gt;
&lt;br /&gt;
* Click on the Modules List tab, and type &amp;quot;v.surf.rst&amp;quot;.  Open the module.&lt;br /&gt;
* Select the layer v_5m_contours as the input map layer.&lt;br /&gt;
* Enter elevation as the output map surface.&lt;br /&gt;
* Click Run.  This process may take a little while.&lt;br /&gt;
* Add the elevation surface to your display.&lt;br /&gt;
&lt;br /&gt;
  You may want to change the way the elevation surface displays using the Symbology options.  &lt;br /&gt;
&lt;br /&gt;
Now that we have an elevation surface, we can derive a lot of other information.  First we will make it look better though.  &lt;br /&gt;
&lt;br /&gt;
* Click on the Modules List tab, and type '''r.slope'''.&lt;br /&gt;
* Choose the r.slope.aspect.aspect module.&lt;br /&gt;
* Enter the name of the output map as '''aspect'''.&lt;br /&gt;
* Run and add the layer.&lt;br /&gt;
&lt;br /&gt;
 Set this layer to about 50% transparency for a pleasing effect.&lt;br /&gt;
&lt;br /&gt;
A new 32 storey shopping mall and conference centre is being proposed for development.  The residents are upset that it will dominate the skyline.  The architect says that it will be &amp;quot;bold and pleasing&amp;quot;.  How can we tell how visible it is going to be?&lt;br /&gt;
&lt;br /&gt;
* Select the r.los module.&lt;br /&gt;
* Enter the coordinates of the proposed mall:&lt;br /&gt;
* Enter the height as 165.&lt;br /&gt;
* Enter 25000 as the maximum distance.&lt;br /&gt;
* Enter elev_shade165 as the output surface name.&lt;br /&gt;
* Run and view the surface to see where the development will be visible from.&lt;br /&gt;
&lt;br /&gt;
Now you try - change the height of the building to what you feel is reasonable, and see what difference it makes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Finding a home'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Select the v.extract.where module.&lt;br /&gt;
&lt;br /&gt;
* Select '''land_use''' as the input map layer.&lt;br /&gt;
&lt;br /&gt;
* Enter '''landuse like Park OR landuse like Botanical Garden OR Bird sanctuary'''&lt;br /&gt;
&lt;br /&gt;
* Enter '''open_space''' as the output map layer name.&lt;br /&gt;
&lt;br /&gt;
* Run and view the output.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You have extracted the open areas suitable for children from the land use layer.  &lt;br /&gt;
&lt;br /&gt;
Now buffer these to a distance of 3km using v.buffer.  &lt;br /&gt;
&lt;br /&gt;
Then use the v.to.rast.constant module to convert this vector layer to a raster surface '''r_open_space'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
West to north-west facing areas will suit our young family.  A raster &amp;quot;mask&amp;quot; needs to be set up to include only suitable aspects. GRASS recognises the raster named MASK for this.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Enter the expression:&lt;br /&gt;
&lt;br /&gt;
 r.mapcalc 'MASK=(((relief@Analysis&amp;lt;315)&amp;amp;&amp;amp;(relief@Analysis&amp;gt;=270)))'&lt;br /&gt;
&lt;br /&gt;
If you are feeling adventurous you can use the visual mapcalc interface to set up the expression instead.   &lt;br /&gt;
&lt;br /&gt;
* Now use the simple mapcalculator r.mapcalculator.  Enter '''open_space''' as the first layer (A) and '''aspect''' as the second layer (B).&lt;br /&gt;
&lt;br /&gt;
* Enter the formula A*B.&lt;br /&gt;
&lt;br /&gt;
* Run and display the output.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These are the places where are young family should look first to be happy in their new home!&lt;br /&gt;
&lt;br /&gt;
== Audience Selections ==&lt;br /&gt;
&lt;br /&gt;
Tell us what else you'd like to try.&lt;br /&gt;
&lt;br /&gt;
== Show off session ==&lt;br /&gt;
&lt;br /&gt;
Here we can do some whizz bang demo stuff that we don't have time to do in  workshop format but that will give you some hints as to what else can be achieved.&lt;br /&gt;
&lt;br /&gt;
e.g. Terrain modelling and drapes.&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
Questions and answers.  What you can do next.  Resources.  Possibly some in-depth examples based on frequent questions.  What would you like to see at future workshops?&lt;br /&gt;
&lt;br /&gt;
== Possible Extras ==&lt;br /&gt;
*advanced spatial analysis ''without'' GRASS: Carson Farmer's plugins with R, etc - Gavin&lt;br /&gt;
*Introduction to the Python console&lt;br /&gt;
*The Python API&lt;br /&gt;
&lt;br /&gt;
==Your assessment of the workshop==&lt;br /&gt;
&lt;br /&gt;
Tell us what you thought!&lt;br /&gt;
&lt;br /&gt;
== PS: Where to get free spatial data? ==&lt;br /&gt;
Surveys and Mapping, Demarcation Board, OpenStreetMap, GPS, etc. Check out [[South_African_Geodata]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Africa]]&lt;/div&gt;</summary>
		<author><name>Wiki-Brendonwp</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=AfricaEvents27June2009&amp;diff=39412</id>
		<title>AfricaEvents27June2009</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=AfricaEvents27June2009&amp;diff=39412"/>
		<updated>2009-06-26T19:18:12Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Brendonwp: /* GRASS Analysis in QGIS- Brendon */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;...back to [[Africa_Local_Chapter]]&lt;br /&gt;
&lt;br /&gt;
'''Introduction to QGIS'''&lt;br /&gt;
&lt;br /&gt;
= What? =&lt;br /&gt;
&lt;br /&gt;
Our second OSGeo local chapter meet up! We will chew the cud, show you some cool stuff and start to get people familiar with the brilliant FOSS GeoSpatial products out there, specifically QGIS on this occasion!&lt;br /&gt;
&lt;br /&gt;
We'll go through installing QGIS and getting it to a point where you can have fun (and get your job done) with it. &lt;br /&gt;
&lt;br /&gt;
= How Much? =&lt;br /&gt;
&lt;br /&gt;
There will be a door charge of R250 to cover costs, lunch and refreshments. That and an open mind are all you need to bring. &lt;br /&gt;
&lt;br /&gt;
= Where? =&lt;br /&gt;
&lt;br /&gt;
 St Davids Marist Inanda College&lt;br /&gt;
 36 Rivonia Rd&lt;br /&gt;
 Inanda&lt;br /&gt;
 Sandton&lt;br /&gt;
[http://www.stdavids.co.za/about_directions.asp Map and Directions]&lt;br /&gt;
&lt;br /&gt;
NB: We'll be in the Prep School computer lab.&lt;br /&gt;
&lt;br /&gt;
= When? =&lt;br /&gt;
&lt;br /&gt;
* Saturday June 27th 2009&lt;br /&gt;
* 08h30 to 15h30&lt;br /&gt;
* includes lunch and refreshments&lt;br /&gt;
&lt;br /&gt;
= Who =&lt;br /&gt;
&lt;br /&gt;
Your friendly presenters for the day will be:&lt;br /&gt;
&lt;br /&gt;
* '''Tim Sutton''' (tim at linfiniti.com) - QGIS hacker and FOSS GIS junkie extraordinaire. Tim eats Weetbix for breakfast because it sounds like Linux. He once rewrote Nkosi Sikelela in C++ because he was feeling patriotic.&lt;br /&gt;
* '''Graeme McFerren''' - (graeme.mcferren at gmail.com) - GIS researcher and FOSS4G user. Mmm, aspire to be like Tim then.&lt;br /&gt;
* '''Gavin Fleming''' (gavinjfleming at gmail dot com) - I enjoy my daily FOSS4G fix. I'm a 'geoinformation scientist' at Mintek and love to see cutting edge and useful geospatial applications emerging, especially when they're based on FOSS. &lt;br /&gt;
* '''Brendon Wolff-Piggott''' - (brendon at integratedgeodata.co.za) - Water resources consultant and FOSS GIS enthusiast.  I wish there were more hours in the day to keep up with FOSS4G!&lt;br /&gt;
&lt;br /&gt;
= RSVP =&lt;br /&gt;
Let gavinjfleming at gmail dot com know if you're coming as numbers are limited. &lt;br /&gt;
&lt;br /&gt;
= Programme and notes =&lt;br /&gt;
&lt;br /&gt;
* Be there in time for a 8h30 start&lt;br /&gt;
* Computers are provided. All you need to bring is R250!&lt;br /&gt;
* It doesn't matter what level you are.&lt;br /&gt;
* The programme is subject to change and participant input right to the last minute!&lt;br /&gt;
&lt;br /&gt;
== Intro to the QGIS project - Tim ==&lt;br /&gt;
&lt;br /&gt;
== First tour of the User Interface - Brendon ==&lt;br /&gt;
&lt;br /&gt;
== Advanced symbolisation - the renderer types, labelling and map actions - Brendon ==&lt;br /&gt;
&lt;br /&gt;
Loading and viewing data - common data formats, symbolisation.  Tips and tricks to enhance image display.&lt;br /&gt;
&lt;br /&gt;
== Making your first project - Graeme ==&lt;br /&gt;
&lt;br /&gt;
- adding layers and saving a project&lt;br /&gt;
&lt;br /&gt;
* Tea&lt;br /&gt;
&lt;br /&gt;
== Map Production - Gavin ==&lt;br /&gt;
&lt;br /&gt;
==Data capture - editing local and PostGIS datasources - Tim==&lt;br /&gt;
&lt;br /&gt;
==Projection basics - Gavin==&lt;br /&gt;
&lt;br /&gt;
* Lunch &lt;br /&gt;
&lt;br /&gt;
==QGIS plugins - Graeme==&lt;br /&gt;
&lt;br /&gt;
=== QGIS and Web GIS WMS and WFS clients - Graeme ===&lt;br /&gt;
&lt;br /&gt;
== Advanced analysis with QGIS ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== GRASS Analysis in QGIS- Brendon ===&lt;br /&gt;
GRASS is a sophisticated standalone GIS package which can also be accessed through QGIS. It installs with QGIS by default.  If you don't see a toolbar with grass stalk icons, go to:&lt;br /&gt;
&lt;br /&gt;
 View-&amp;gt;Toolbars &lt;br /&gt;
&lt;br /&gt;
and check that the GRASS toolbar is has a tick against it.  This will place the new toolbar on your QGIS interface.&lt;br /&gt;
&lt;br /&gt;
If you can't see the GRASS toolbar listed there then you may need to add it from the plugin manager:&lt;br /&gt;
&lt;br /&gt;
 Plugins-&amp;gt;Manage plugins-&amp;gt;GRASS&lt;br /&gt;
&lt;br /&gt;
* Click on the first icon (the folder with a grass stalk) to open the prepared GRASS mapset, which is a collection of maps.  &lt;br /&gt;
&lt;br /&gt;
There are three entries needed in the box that opens up: &lt;br /&gt;
&lt;br /&gt;
 Gisdbase&lt;br /&gt;
 Location&lt;br /&gt;
 Mapset&lt;br /&gt;
&lt;br /&gt;
These should be set to:&lt;br /&gt;
 home/tim/Grassdata&lt;br /&gt;
 training_jhb&lt;br /&gt;
 analysis&lt;br /&gt;
&lt;br /&gt;
* Then click OK to open the mapset.&lt;br /&gt;
&lt;br /&gt;
Ask for help from one of the presenters if making these choices is confusing &lt;br /&gt;
for any reason. &lt;br /&gt;
&lt;br /&gt;
Once this is done, you may use the icons with the '+' symbol to add vector &lt;br /&gt;
and raster maps from the GRASS database.  You may use the QGIS context-sensitive menu (right-click) to remove layers if you do not want to see them.&lt;br /&gt;
&lt;br /&gt;
* Now open the prepared QGIS project analysis.qgs to see many of the map layers available in GRASS. We are going to use the GRASS toolbox to find answers to some questions that GIS can help us with.&lt;br /&gt;
&lt;br /&gt;
* Click on the tools icon (with the hammer and spanner) on the GRASS toolbar to open the GRASS tools window. &lt;br /&gt;
&lt;br /&gt;
It has three tabs at the top:&lt;br /&gt;
&lt;br /&gt;
'''Modules Tree''', which has a list of GRASS modules grouped according to their function, rather like a Windows Explorer view of directories.&lt;br /&gt;
&lt;br /&gt;
'''Modules List''', which has a long list of modules.  Type the beginning of a modules name in the box at the bottom to find it rapidly.&lt;br /&gt;
&lt;br /&gt;
'''Browser''', which shows you the GRASS map layers grouped into raster and vector groups.&lt;br /&gt;
&lt;br /&gt;
* If you pick a map layer in the pane on the left, you will see descriptive &lt;br /&gt;
information about the layer in the pane on the right.  Try this with raster&lt;br /&gt;
and vector layers, and notice that the information given is different for the &lt;br /&gt;
two types.  &lt;br /&gt;
&lt;br /&gt;
 You can leave the GRASS Tools window open while you are working with QGIS.   &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Why is it so noisy here?'''&lt;br /&gt;
&lt;br /&gt;
At the end of a long day, you want to put your feet up and relax.  But the noise from the freeway just never stops!  How many houses in the area are close enough to a major road to be badly affected by noise?&lt;br /&gt;
&lt;br /&gt;
The noise from the freeway will travel further than the noise from a suburban &lt;br /&gt;
road. Luckily, we already have distances entered against types of road in the Roads map layer.&lt;br /&gt;
&lt;br /&gt;
* Open the attribute table and have a look.&lt;br /&gt;
&lt;br /&gt;
* To start the analysis, go to the modules tree and select the module Buffer, under:&lt;br /&gt;
&lt;br /&gt;
  Vector -&amp;gt; Spatial analysis&lt;br /&gt;
&lt;br /&gt;
Another tab will open to allow you to run the Buffer module.&lt;br /&gt;
&lt;br /&gt;
* Select the map layer Roads as input.  &lt;br /&gt;
&lt;br /&gt;
......  go to Linux for other detail:&lt;br /&gt;
select attrib for Buffer&lt;br /&gt;
  &lt;br /&gt;
* Enter Roads_buffer as the name of the output layer.&lt;br /&gt;
&lt;br /&gt;
* Then press Run. &lt;br /&gt;
&lt;br /&gt;
The progress bar at the bottom will show you how much longer you have to wait.  When it is finished, click on View output to show the result in QGIS. &lt;br /&gt;
&lt;br /&gt;
See how the buffers are wider around the freeway than around the main roads.&lt;br /&gt;
&lt;br /&gt;
 Tip: You can close the tab for the module using the Close button next to View output.&lt;br /&gt;
&lt;br /&gt;
Now we want to see how many houses are affected.  We have the erven outlines rather than houses, but it will be a good approximation.&lt;br /&gt;
&lt;br /&gt;
* Click on the Modules List tab, and type &amp;quot;v.select&amp;quot; at the bottom.  The v.select.overlap module should appear at the top.  Click on the module name to open it.&lt;br /&gt;
&lt;br /&gt;
* Select Erven as the first input map layer.&lt;br /&gt;
&lt;br /&gt;
* Select Roads_buffer as the second input map layer.&lt;br /&gt;
&lt;br /&gt;
* Enter Erven_noise as the output map layer.&lt;br /&gt;
&lt;br /&gt;
* Click on Run, and View output.&lt;br /&gt;
 &lt;br /&gt;
This will show you all erven overlapping the noise buffer that we created.  &lt;br /&gt;
&lt;br /&gt;
* Open the attribute table and scroll down to the bottom to see how many houses are affected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 You might want to use the Group option in the Layer Manager after doing an analysis, so that you can keep the results together.  Move the group to the bottom of the Layer Manager when you are finished with it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''I can see you!'''&lt;br /&gt;
&lt;br /&gt;
The way noise travels depends on a lot of things apart from distance.  One of these is changes in height.  We are going to generate an elevation surface (raster) to help us in our work.&lt;br /&gt;
&lt;br /&gt;
Raster layers need to have their extent and grid size defined before we start.&lt;br /&gt;
&lt;br /&gt;
* Click on the Modules List tab, and type &amp;quot;g.region.multiple.vector&amp;quot;.  Enter one vector layer, v_5m_contours.&lt;br /&gt;
* Now open the Modules Tree, and start the GRASS shell at the top of the list.  &lt;br /&gt;
* Enter '''g.region res=25''' to set the grid resolution to 25m.&lt;br /&gt;
* Close the shell.&lt;br /&gt;
&lt;br /&gt;
Now we can start the real work:&lt;br /&gt;
&lt;br /&gt;
* Click on the Modules List tab, and type &amp;quot;v.surf.rst&amp;quot;.  Open the module.&lt;br /&gt;
* Select the layer v_5m_contours as the input map layer.&lt;br /&gt;
* Enter elevation as the output map surface.&lt;br /&gt;
* Click Run.  This process may take a little while.&lt;br /&gt;
* Add the elevation surface to your display.&lt;br /&gt;
&lt;br /&gt;
  You may want to change the way the elevation surface displays using the Symbology options.  &lt;br /&gt;
&lt;br /&gt;
Now that we have an elevation surface, we can derive a lot of other information.  First we will make it look better though.  &lt;br /&gt;
&lt;br /&gt;
* Click on the Modules List tab, and type '''r.slope'''.&lt;br /&gt;
* Choose the r.slope.aspect.aspect module.&lt;br /&gt;
* Enter the name of the output map as '''aspect'''.&lt;br /&gt;
* Run and add the layer.&lt;br /&gt;
&lt;br /&gt;
 Set this layer to about 50% transparency for a pleasing effect.&lt;br /&gt;
&lt;br /&gt;
A new 32 storey shopping mall and conference centre is being proposed for development.  The residents are upset that it will dominate the skyline.  The architect says that it will be &amp;quot;bold and pleasing&amp;quot;.  How can we tell how visible it is going to be?&lt;br /&gt;
&lt;br /&gt;
* Select the r.los module.&lt;br /&gt;
* Enter the coordinates of the proposed mall:&lt;br /&gt;
* Enter the height as 165.&lt;br /&gt;
* Enter 25000 as the maximum distance.&lt;br /&gt;
* Enter elev_shade165 as the output surface name.&lt;br /&gt;
* Run and view the surface to see where the development will be visible from.&lt;br /&gt;
&lt;br /&gt;
Now you try - change the height of the building to what you feel is reasonable, and see what difference it makes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Finding a home'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Select the v.extract.where module.&lt;br /&gt;
&lt;br /&gt;
* Select '''land_use''' as the input map layer.&lt;br /&gt;
&lt;br /&gt;
* Enter '''landuse like Park OR landuse like Botanical Garden OR Bird sanctuary'''&lt;br /&gt;
&lt;br /&gt;
* Enter '''open_space''' as the output map layer name.&lt;br /&gt;
&lt;br /&gt;
* Run and view the output.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You have extracted the open areas suitable for children from the land use layer.  &lt;br /&gt;
&lt;br /&gt;
Now buffer these to a distance of 3km using v.buffer.  &lt;br /&gt;
&lt;br /&gt;
Then use the v.to.rast.constant module to convert this vector layer to a raster surface '''r_open_space'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
West to north-west facing areas will suit our young family.  A raster &amp;quot;mask&amp;quot; needs to be set up to include only suitable aspects. GRASS recognises the raster named MASK for this.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Enter the expression:&lt;br /&gt;
&lt;br /&gt;
 r.mapcalc 'MASK=(((relief@Analysis&amp;lt;315)&amp;amp;&amp;amp;(relief@Analysis&amp;gt;=270)))'&lt;br /&gt;
&lt;br /&gt;
If you are feeling adventurous you can use the visual mapcalc interface to set up the expression instead.   &lt;br /&gt;
&lt;br /&gt;
* Now use the simple mapcalculator r.mapcalculator.  Enter '''open_space''' as the first layer (A) and '''aspect''' as the second layer (B).&lt;br /&gt;
&lt;br /&gt;
* Enter the formula A*B.&lt;br /&gt;
&lt;br /&gt;
* Run and display the output.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These are the places where are young family should look first to be happy in their new home!&lt;br /&gt;
&lt;br /&gt;
== Audience Selections ==&lt;br /&gt;
&lt;br /&gt;
Tell us what else you'd like to try.&lt;br /&gt;
&lt;br /&gt;
== Show off session ==&lt;br /&gt;
&lt;br /&gt;
Here we can do some whizz bang demo stuff that we don't have time to do in  workshop format but that will give you some hints as to what else can be achieved.&lt;br /&gt;
&lt;br /&gt;
e.g. Terrain modelling and drapes.&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
Questions and answers.  What you can do next.  Resources.  Possibly some in-depth examples based on frequent questions.  What would you like to see at future workshops?&lt;br /&gt;
&lt;br /&gt;
== Possible Extras ==&lt;br /&gt;
*advanced spatial analysis ''without'' GRASS: Carson Farmer's plugins with R, etc - Gavin&lt;br /&gt;
*Introduction to the Python console&lt;br /&gt;
*The Python API&lt;br /&gt;
&lt;br /&gt;
==Your assessment of the workshop==&lt;br /&gt;
&lt;br /&gt;
Tell us what you thought!&lt;br /&gt;
&lt;br /&gt;
== PS: Where to get free spatial data? ==&lt;br /&gt;
Surveys and Mapping, Demarcation Board, OpenStreetMap, GPS, etc. Check out [[South_African_Geodata]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Africa]]&lt;/div&gt;</summary>
		<author><name>Wiki-Brendonwp</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=AfricaEvents27June2009&amp;diff=39411</id>
		<title>AfricaEvents27June2009</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=AfricaEvents27June2009&amp;diff=39411"/>
		<updated>2009-06-26T19:17:47Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Brendonwp: /* GRASS Analysis in QGIS- Brendon */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;...back to [[Africa_Local_Chapter]]&lt;br /&gt;
&lt;br /&gt;
'''Introduction to QGIS'''&lt;br /&gt;
&lt;br /&gt;
= What? =&lt;br /&gt;
&lt;br /&gt;
Our second OSGeo local chapter meet up! We will chew the cud, show you some cool stuff and start to get people familiar with the brilliant FOSS GeoSpatial products out there, specifically QGIS on this occasion!&lt;br /&gt;
&lt;br /&gt;
We'll go through installing QGIS and getting it to a point where you can have fun (and get your job done) with it. &lt;br /&gt;
&lt;br /&gt;
= How Much? =&lt;br /&gt;
&lt;br /&gt;
There will be a door charge of R250 to cover costs, lunch and refreshments. That and an open mind are all you need to bring. &lt;br /&gt;
&lt;br /&gt;
= Where? =&lt;br /&gt;
&lt;br /&gt;
 St Davids Marist Inanda College&lt;br /&gt;
 36 Rivonia Rd&lt;br /&gt;
 Inanda&lt;br /&gt;
 Sandton&lt;br /&gt;
[http://www.stdavids.co.za/about_directions.asp Map and Directions]&lt;br /&gt;
&lt;br /&gt;
NB: We'll be in the Prep School computer lab.&lt;br /&gt;
&lt;br /&gt;
= When? =&lt;br /&gt;
&lt;br /&gt;
* Saturday June 27th 2009&lt;br /&gt;
* 08h30 to 15h30&lt;br /&gt;
* includes lunch and refreshments&lt;br /&gt;
&lt;br /&gt;
= Who =&lt;br /&gt;
&lt;br /&gt;
Your friendly presenters for the day will be:&lt;br /&gt;
&lt;br /&gt;
* '''Tim Sutton''' (tim at linfiniti.com) - QGIS hacker and FOSS GIS junkie extraordinaire. Tim eats Weetbix for breakfast because it sounds like Linux. He once rewrote Nkosi Sikelela in C++ because he was feeling patriotic.&lt;br /&gt;
* '''Graeme McFerren''' - (graeme.mcferren at gmail.com) - GIS researcher and FOSS4G user. Mmm, aspire to be like Tim then.&lt;br /&gt;
* '''Gavin Fleming''' (gavinjfleming at gmail dot com) - I enjoy my daily FOSS4G fix. I'm a 'geoinformation scientist' at Mintek and love to see cutting edge and useful geospatial applications emerging, especially when they're based on FOSS. &lt;br /&gt;
* '''Brendon Wolff-Piggott''' - (brendon at integratedgeodata.co.za) - Water resources consultant and FOSS GIS enthusiast.  I wish there were more hours in the day to keep up with FOSS4G!&lt;br /&gt;
&lt;br /&gt;
= RSVP =&lt;br /&gt;
Let gavinjfleming at gmail dot com know if you're coming as numbers are limited. &lt;br /&gt;
&lt;br /&gt;
= Programme and notes =&lt;br /&gt;
&lt;br /&gt;
* Be there in time for a 8h30 start&lt;br /&gt;
* Computers are provided. All you need to bring is R250!&lt;br /&gt;
* It doesn't matter what level you are.&lt;br /&gt;
* The programme is subject to change and participant input right to the last minute!&lt;br /&gt;
&lt;br /&gt;
== Intro to the QGIS project - Tim ==&lt;br /&gt;
&lt;br /&gt;
== First tour of the User Interface - Brendon ==&lt;br /&gt;
&lt;br /&gt;
== Advanced symbolisation - the renderer types, labelling and map actions - Brendon ==&lt;br /&gt;
&lt;br /&gt;
Loading and viewing data - common data formats, symbolisation.  Tips and tricks to enhance image display.&lt;br /&gt;
&lt;br /&gt;
== Making your first project - Graeme ==&lt;br /&gt;
&lt;br /&gt;
- adding layers and saving a project&lt;br /&gt;
&lt;br /&gt;
* Tea&lt;br /&gt;
&lt;br /&gt;
== Map Production - Gavin ==&lt;br /&gt;
&lt;br /&gt;
==Data capture - editing local and PostGIS datasources - Tim==&lt;br /&gt;
&lt;br /&gt;
==Projection basics - Gavin==&lt;br /&gt;
&lt;br /&gt;
* Lunch &lt;br /&gt;
&lt;br /&gt;
==QGIS plugins - Graeme==&lt;br /&gt;
&lt;br /&gt;
=== QGIS and Web GIS WMS and WFS clients - Graeme ===&lt;br /&gt;
&lt;br /&gt;
== Advanced analysis with QGIS ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== GRASS Analysis in QGIS- Brendon ===&lt;br /&gt;
GRASS is a sophisticated standalone GIS package which can also be accessed through QGIS. It installs with QGIS by default.  If you don't see a toolbar with grass stalk icons, go to:&lt;br /&gt;
&lt;br /&gt;
 View-&amp;gt;Toolbars &lt;br /&gt;
&lt;br /&gt;
and check that the GRASS toolbar is has a tick against it.  This will place the new toolbar on your QGIS interface.&lt;br /&gt;
&lt;br /&gt;
If you can't see the GRASS toolbar listed there then you may need to add it from the plugin manager:&lt;br /&gt;
&lt;br /&gt;
 Plugins-&amp;gt;Manage plugins-&amp;gt;GRASS&lt;br /&gt;
&lt;br /&gt;
* Click on the first icon (the folder with a grass stalk) to open the prepared GRASS mapset, which is a collection of maps.  &lt;br /&gt;
&lt;br /&gt;
There are three entries needed in the box that opens up: &lt;br /&gt;
&lt;br /&gt;
 Gisdbase&lt;br /&gt;
 Location&lt;br /&gt;
 Mapset&lt;br /&gt;
&lt;br /&gt;
These should be set to:&lt;br /&gt;
 home/tim/Grassdata&lt;br /&gt;
 training_jhb&lt;br /&gt;
 analysis&lt;br /&gt;
&lt;br /&gt;
* Then click OK to open the mapset.&lt;br /&gt;
&lt;br /&gt;
Ask for help from one of the presenters if making these choices is confusing &lt;br /&gt;
for any reason. &lt;br /&gt;
&lt;br /&gt;
Once this is done, you may use the icons with the '+' symbol to add vector &lt;br /&gt;
and raster maps from the GRASS database.  You may use the QGIS context-sensitive menu (right-click) to remove layers if you do not want to see them.&lt;br /&gt;
&lt;br /&gt;
* Now open the prepared QGIS project analysis.qgs to see many of the map layers available in GRASS. We are going to use the GRASS toolbox to find answers to some questions that GIS can help us with.&lt;br /&gt;
&lt;br /&gt;
* Click on the tools icon (with the hammer and spanner) on the GRASS toolbar to open the GRASS tools window. &lt;br /&gt;
&lt;br /&gt;
It has three tabs at the top:&lt;br /&gt;
&lt;br /&gt;
'''Modules Tree''', which has a list of GRASS modules grouped according to their function, rather like a Windows Explorer view of directories.&lt;br /&gt;
&lt;br /&gt;
'''Modules List''', which has a long list of modules.  Type the beginning of a modules name in the box at the bottom to find it rapidly.&lt;br /&gt;
&lt;br /&gt;
'''Browser'', which shows you the GRASS map layers grouped into raster and vector groups.&lt;br /&gt;
&lt;br /&gt;
* If you pick a map layer in the pane on the left, you will see descriptive &lt;br /&gt;
information about the layer in the pane on the right.  Try this with raster&lt;br /&gt;
and vector layers, and notice that the information given is different for the &lt;br /&gt;
two types.  &lt;br /&gt;
&lt;br /&gt;
 You can leave the GRASS Tools window open while you are working with QGIS.   &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Why is it so noisy here?'''&lt;br /&gt;
&lt;br /&gt;
At the end of a long day, you want to put your feet up and relax.  But the noise from the freeway just never stops!  How many houses in the area are close enough to a major road to be badly affected by noise?&lt;br /&gt;
&lt;br /&gt;
The noise from the freeway will travel further than the noise from a suburban &lt;br /&gt;
road. Luckily, we already have distances entered against types of road in the Roads map layer.&lt;br /&gt;
&lt;br /&gt;
* Open the attribute table and have a look.&lt;br /&gt;
&lt;br /&gt;
* To start the analysis, go to the modules tree and select the module Buffer, under:&lt;br /&gt;
&lt;br /&gt;
  Vector -&amp;gt; Spatial analysis&lt;br /&gt;
&lt;br /&gt;
Another tab will open to allow you to run the Buffer module.&lt;br /&gt;
&lt;br /&gt;
* Select the map layer Roads as input.  &lt;br /&gt;
&lt;br /&gt;
......  go to Linux for other detail:&lt;br /&gt;
select attrib for Buffer&lt;br /&gt;
  &lt;br /&gt;
* Enter Roads_buffer as the name of the output layer.&lt;br /&gt;
&lt;br /&gt;
* Then press Run. &lt;br /&gt;
&lt;br /&gt;
The progress bar at the bottom will show you how much longer you have to wait.  When it is finished, click on View output to show the result in QGIS. &lt;br /&gt;
&lt;br /&gt;
See how the buffers are wider around the freeway than around the main roads.&lt;br /&gt;
&lt;br /&gt;
 Tip: You can close the tab for the module using the Close button next to View output.&lt;br /&gt;
&lt;br /&gt;
Now we want to see how many houses are affected.  We have the erven outlines rather than houses, but it will be a good approximation.&lt;br /&gt;
&lt;br /&gt;
* Click on the Modules List tab, and type &amp;quot;v.select&amp;quot; at the bottom.  The v.select.overlap module should appear at the top.  Click on the module name to open it.&lt;br /&gt;
&lt;br /&gt;
* Select Erven as the first input map layer.&lt;br /&gt;
&lt;br /&gt;
* Select Roads_buffer as the second input map layer.&lt;br /&gt;
&lt;br /&gt;
* Enter Erven_noise as the output map layer.&lt;br /&gt;
&lt;br /&gt;
* Click on Run, and View output.&lt;br /&gt;
 &lt;br /&gt;
This will show you all erven overlapping the noise buffer that we created.  &lt;br /&gt;
&lt;br /&gt;
* Open the attribute table and scroll down to the bottom to see how many houses are affected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 You might want to use the Group option in the Layer Manager after doing an analysis, so that you can keep the results together.  Move the group to the bottom of the Layer Manager when you are finished with it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''I can see you!'''&lt;br /&gt;
&lt;br /&gt;
The way noise travels depends on a lot of things apart from distance.  One of these is changes in height.  We are going to generate an elevation surface (raster) to help us in our work.&lt;br /&gt;
&lt;br /&gt;
Raster layers need to have their extent and grid size defined before we start.&lt;br /&gt;
&lt;br /&gt;
* Click on the Modules List tab, and type &amp;quot;g.region.multiple.vector&amp;quot;.  Enter one vector layer, v_5m_contours.&lt;br /&gt;
* Now open the Modules Tree, and start the GRASS shell at the top of the list.  &lt;br /&gt;
* Enter '''g.region res=25''' to set the grid resolution to 25m.&lt;br /&gt;
* Close the shell.&lt;br /&gt;
&lt;br /&gt;
Now we can start the real work:&lt;br /&gt;
&lt;br /&gt;
* Click on the Modules List tab, and type &amp;quot;v.surf.rst&amp;quot;.  Open the module.&lt;br /&gt;
* Select the layer v_5m_contours as the input map layer.&lt;br /&gt;
* Enter elevation as the output map surface.&lt;br /&gt;
* Click Run.  This process may take a little while.&lt;br /&gt;
* Add the elevation surface to your display.&lt;br /&gt;
&lt;br /&gt;
  You may want to change the way the elevation surface displays using the Symbology options.  &lt;br /&gt;
&lt;br /&gt;
Now that we have an elevation surface, we can derive a lot of other information.  First we will make it look better though.  &lt;br /&gt;
&lt;br /&gt;
* Click on the Modules List tab, and type '''r.slope'''.&lt;br /&gt;
* Choose the r.slope.aspect.aspect module.&lt;br /&gt;
* Enter the name of the output map as '''aspect'''.&lt;br /&gt;
* Run and add the layer.&lt;br /&gt;
&lt;br /&gt;
 Set this layer to about 50% transparency for a pleasing effect.&lt;br /&gt;
&lt;br /&gt;
A new 32 storey shopping mall and conference centre is being proposed for development.  The residents are upset that it will dominate the skyline.  The architect says that it will be &amp;quot;bold and pleasing&amp;quot;.  How can we tell how visible it is going to be?&lt;br /&gt;
&lt;br /&gt;
* Select the r.los module.&lt;br /&gt;
* Enter the coordinates of the proposed mall:&lt;br /&gt;
* Enter the height as 165.&lt;br /&gt;
* Enter 25000 as the maximum distance.&lt;br /&gt;
* Enter elev_shade165 as the output surface name.&lt;br /&gt;
* Run and view the surface to see where the development will be visible from.&lt;br /&gt;
&lt;br /&gt;
Now you try - change the height of the building to what you feel is reasonable, and see what difference it makes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Finding a home'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Select the v.extract.where module.&lt;br /&gt;
&lt;br /&gt;
* Select '''land_use''' as the input map layer.&lt;br /&gt;
&lt;br /&gt;
* Enter '''landuse like Park OR landuse like Botanical Garden OR Bird sanctuary'''&lt;br /&gt;
&lt;br /&gt;
* Enter '''open_space''' as the output map layer name.&lt;br /&gt;
&lt;br /&gt;
* Run and view the output.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You have extracted the open areas suitable for children from the land use layer.  &lt;br /&gt;
&lt;br /&gt;
Now buffer these to a distance of 3km using v.buffer.  &lt;br /&gt;
&lt;br /&gt;
Then use the v.to.rast.constant module to convert this vector layer to a raster surface '''r_open_space'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
West to north-west facing areas will suit our young family.  A raster &amp;quot;mask&amp;quot; needs to be set up to include only suitable aspects. GRASS recognises the raster named MASK for this.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Enter the expression:&lt;br /&gt;
&lt;br /&gt;
 r.mapcalc 'MASK=(((relief@Analysis&amp;lt;315)&amp;amp;&amp;amp;(relief@Analysis&amp;gt;=270)))'&lt;br /&gt;
&lt;br /&gt;
If you are feeling adventurous you can use the visual mapcalc interface to set up the expression instead.   &lt;br /&gt;
&lt;br /&gt;
* Now use the simple mapcalculator r.mapcalculator.  Enter '''open_space''' as the first layer (A) and '''aspect''' as the second layer (B).&lt;br /&gt;
&lt;br /&gt;
* Enter the formula A*B.&lt;br /&gt;
&lt;br /&gt;
* Run and display the output.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These are the places where are young family should look first to be happy in their new home!&lt;br /&gt;
&lt;br /&gt;
== Audience Selections ==&lt;br /&gt;
&lt;br /&gt;
Tell us what else you'd like to try.&lt;br /&gt;
&lt;br /&gt;
== Show off session ==&lt;br /&gt;
&lt;br /&gt;
Here we can do some whizz bang demo stuff that we don't have time to do in  workshop format but that will give you some hints as to what else can be achieved.&lt;br /&gt;
&lt;br /&gt;
e.g. Terrain modelling and drapes.&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
Questions and answers.  What you can do next.  Resources.  Possibly some in-depth examples based on frequent questions.  What would you like to see at future workshops?&lt;br /&gt;
&lt;br /&gt;
== Possible Extras ==&lt;br /&gt;
*advanced spatial analysis ''without'' GRASS: Carson Farmer's plugins with R, etc - Gavin&lt;br /&gt;
*Introduction to the Python console&lt;br /&gt;
*The Python API&lt;br /&gt;
&lt;br /&gt;
==Your assessment of the workshop==&lt;br /&gt;
&lt;br /&gt;
Tell us what you thought!&lt;br /&gt;
&lt;br /&gt;
== PS: Where to get free spatial data? ==&lt;br /&gt;
Surveys and Mapping, Demarcation Board, OpenStreetMap, GPS, etc. Check out [[South_African_Geodata]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Africa]]&lt;/div&gt;</summary>
		<author><name>Wiki-Brendonwp</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=AfricaEvents27June2009&amp;diff=39406</id>
		<title>AfricaEvents27June2009</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=AfricaEvents27June2009&amp;diff=39406"/>
		<updated>2009-06-26T16:58:16Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Brendonwp: /* GRASS Analysis in QGIS- Brendon */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;...back to [[Africa_Local_Chapter]]&lt;br /&gt;
&lt;br /&gt;
'''Introduction to QGIS'''&lt;br /&gt;
&lt;br /&gt;
= What? =&lt;br /&gt;
&lt;br /&gt;
Our second OSGeo local chapter meet up! We will chew the cud, show you some cool stuff and start to get people familiar with the brilliant FOSS GeoSpatial products out there, specifically QGIS on this occasion!&lt;br /&gt;
&lt;br /&gt;
We'll go through installing QGIS and getting it to a point where you can have fun (and get your job done) with it. &lt;br /&gt;
&lt;br /&gt;
= How Much? =&lt;br /&gt;
&lt;br /&gt;
There will be a door charge of R250 to cover costs, lunch and refreshments. That and an open mind are all you need to bring. &lt;br /&gt;
&lt;br /&gt;
= Where? =&lt;br /&gt;
&lt;br /&gt;
 St Davids Marist Inanda College&lt;br /&gt;
 36 Rivonia Rd&lt;br /&gt;
 Inanda&lt;br /&gt;
 Sandton&lt;br /&gt;
[http://www.stdavids.co.za/about_directions.asp Map and Directions]&lt;br /&gt;
&lt;br /&gt;
NB: We'll be in the Prep School computer lab.&lt;br /&gt;
&lt;br /&gt;
= When? =&lt;br /&gt;
&lt;br /&gt;
* Saturday June 27th 2009&lt;br /&gt;
* 08h30 to 15h30&lt;br /&gt;
* includes lunch and refreshments&lt;br /&gt;
&lt;br /&gt;
= Who =&lt;br /&gt;
&lt;br /&gt;
Your friendly presenters for the day will be:&lt;br /&gt;
&lt;br /&gt;
* '''Tim Sutton''' (tim at linfiniti.com) - QGIS hacker and FOSS GIS junkie extraordinaire. Tim eats Weetbix for breakfast because it sounds like Linux. He once rewrote Nkosi Sikelela in C++ because he was feeling patriotic.&lt;br /&gt;
* '''Graeme McFerren''' - (graeme.mcferren at gmail.com) - GIS researcher and FOSS4G user. Mmm, aspire to be like Tim then.&lt;br /&gt;
* '''Gavin Fleming''' (gavinjfleming at gmail dot com) - I enjoy my daily FOSS4G fix. I'm a 'geoinformation scientist' at Mintek and love to see cutting edge and useful geospatial applications emerging, especially when they're based on FOSS. &lt;br /&gt;
* '''Brendon Wolff-Piggott''' - (brendon at integratedgeodata.co.za) - Water resources consultant and FOSS GIS enthusiast.  I wish there were more hours in the day to keep up with FOSS4G!&lt;br /&gt;
&lt;br /&gt;
= RSVP =&lt;br /&gt;
Let gavinjfleming at gmail dot com know if you're coming as numbers are limited. &lt;br /&gt;
&lt;br /&gt;
= Programme and notes =&lt;br /&gt;
&lt;br /&gt;
* Be there in time for a 8h30 start&lt;br /&gt;
* Computers are provided. All you need to bring is R250!&lt;br /&gt;
* It doesn't matter what level you are.&lt;br /&gt;
* The programme is subject to change and participant input right to the last minute!&lt;br /&gt;
&lt;br /&gt;
== Intro to the QGIS project - Tim ==&lt;br /&gt;
&lt;br /&gt;
== First tour of the User Interface - Brendon ==&lt;br /&gt;
&lt;br /&gt;
== Advanced symbolisation - the renderer types, labelling and map actions - Brendon ==&lt;br /&gt;
&lt;br /&gt;
Loading and viewing data - common data formats, symbolisation.  Tips and tricks to enhance image display.&lt;br /&gt;
&lt;br /&gt;
== Making your first project - Graeme ==&lt;br /&gt;
&lt;br /&gt;
- adding layers and saving a project&lt;br /&gt;
&lt;br /&gt;
== Map Production - Gavin ==&lt;br /&gt;
&lt;br /&gt;
* Tea&lt;br /&gt;
&lt;br /&gt;
==Data capture - editing local and PostGIS datasources - Tim==&lt;br /&gt;
&lt;br /&gt;
==Projection basics - Gavin==&lt;br /&gt;
&lt;br /&gt;
* Lunch &lt;br /&gt;
&lt;br /&gt;
==QGIS plugins - Graeme==&lt;br /&gt;
&lt;br /&gt;
=== QGIS and Web GIS WMS and WFS clients - Graeme ===&lt;br /&gt;
&lt;br /&gt;
== Advanced analysis with QGIS ==&lt;br /&gt;
&lt;br /&gt;
===Plugins - Carson Farmer's plugins with R, etc - Gavin===&lt;br /&gt;
&lt;br /&gt;
* break&lt;br /&gt;
&lt;br /&gt;
=== GRASS Analysis in QGIS- Brendon ===&lt;br /&gt;
GRASS is a sophisticated standalone GIS package which can also be accessed through QGIS. It installs with QGIS by default.  If you don't see a toolbar with grass stalk icons, go to:&lt;br /&gt;
&lt;br /&gt;
 View-&amp;gt;Toolbars &lt;br /&gt;
&lt;br /&gt;
and check that the GRASS toolbar is has a tick against it.  This will place the new toolbar on your QGIS interface.&lt;br /&gt;
&lt;br /&gt;
If you can't see the GRASS toolbar listed there then you may need to add it from the plugin manager:&lt;br /&gt;
&lt;br /&gt;
 Plugins-&amp;gt;Manage plugins-&amp;gt;GRASS&lt;br /&gt;
&lt;br /&gt;
* Click on the first icon (the folder with a grass stalk) to open the prepared GRASS mapset, which is a collection of maps.  &lt;br /&gt;
&lt;br /&gt;
There are three entries needed in the box that opens up: &lt;br /&gt;
&lt;br /&gt;
 Gisdbase&lt;br /&gt;
 Location&lt;br /&gt;
 Mapset&lt;br /&gt;
&lt;br /&gt;
These should be set to:&lt;br /&gt;
 home/tim/Grassdata&lt;br /&gt;
 training_jhb&lt;br /&gt;
 analysis&lt;br /&gt;
&lt;br /&gt;
* Then click OK to open the mapset.&lt;br /&gt;
&lt;br /&gt;
Ask for help from one of the presenters if making these choices is confusing &lt;br /&gt;
for any reason. &lt;br /&gt;
&lt;br /&gt;
Once this is done, you may use the icons with the '+' symbol to add vector &lt;br /&gt;
and raster maps from the GRASS database.  You may use the QGIS context-sensitive menu (right-click) to remove layers if you do not want to see them.&lt;br /&gt;
&lt;br /&gt;
* Now open the prepared QGIS project analysis.qgs to see many of the map layers available in GRASS. We are going to use the GRASS toolbox to find answers to some questions that GIS can help us with.&lt;br /&gt;
&lt;br /&gt;
* Click on the tools icon (with the hammer and spanner) on the GRASS toolbar to open the GRASS tools window. &lt;br /&gt;
&lt;br /&gt;
It has three tabs at the top:&lt;br /&gt;
'''Modules Tree''', which has a list of GRASS modules grouped according to their function, rather like a Windows Explorer view of directories.&lt;br /&gt;
 '''Modules List''', which has a long list of modules.  Type the beginning of a modules name in the box at the bottom to find it rapidly.&lt;br /&gt;
 ''Browser'', which shows you the GRASS map layers grouped into raster and vector groups.&lt;br /&gt;
&lt;br /&gt;
* If you pick a map layer in the pane on the left, you will see descriptive &lt;br /&gt;
information about the layer in the pane on the right.  Try this with raster&lt;br /&gt;
and vector layers, and notice that the information given is different for the &lt;br /&gt;
two types.  &lt;br /&gt;
&lt;br /&gt;
 You can leave the GRASS Tools window open while you are working with QGIS.   &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Why is it so noisy here?'''&lt;br /&gt;
&lt;br /&gt;
At the end of a long day, you want to put your feet up and relax.  But the noise from the freeway just never stops!  How many houses in the area are close enough to a major road to be badly affected by noise?&lt;br /&gt;
&lt;br /&gt;
The noise from the freeway will travel further than the noise from a suburban &lt;br /&gt;
road. Luckily, we already have distances entered against types of road in the Roads map layer.&lt;br /&gt;
&lt;br /&gt;
* Open the attribute table and have a look.&lt;br /&gt;
&lt;br /&gt;
* To start the analysis, go to the modules tree and select the module Buffer, under:&lt;br /&gt;
&lt;br /&gt;
  Vector -&amp;gt; Spatial analysis&lt;br /&gt;
&lt;br /&gt;
Another tab will open to allow you to run the Buffer module.&lt;br /&gt;
&lt;br /&gt;
* Select the map layer Roads as input.  &lt;br /&gt;
&lt;br /&gt;
......  go to Linux for other detail:&lt;br /&gt;
select attrib for Buffer&lt;br /&gt;
  &lt;br /&gt;
* Enter Roads_buffer as the name of the output layer.&lt;br /&gt;
&lt;br /&gt;
* Then press Run. &lt;br /&gt;
&lt;br /&gt;
The progress bar at the bottom will show you how much longer you have to wait.  When it is finished, click on View output to show the result in QGIS. &lt;br /&gt;
&lt;br /&gt;
See how the buffers are wider around the freeway than around the main roads.&lt;br /&gt;
&lt;br /&gt;
 Tip: You can close the tab for the module using the Close button next to View output.&lt;br /&gt;
&lt;br /&gt;
Now we want to see how many houses are affected.  We have the erven outlines rather than houses, but it will be a good approximation.&lt;br /&gt;
&lt;br /&gt;
* Click on the Modules List tab, and type &amp;quot;v.select&amp;quot; at the bottom.  The v.select.overlap module should appear at the top.  Click on the module name to open it.&lt;br /&gt;
&lt;br /&gt;
* Select Erven as the first input map layer.&lt;br /&gt;
&lt;br /&gt;
* Select Roads_buffer as the second input map layer.&lt;br /&gt;
&lt;br /&gt;
* Enter Erven_noise as the output map layer.&lt;br /&gt;
&lt;br /&gt;
* Click on Run, and View output.&lt;br /&gt;
 &lt;br /&gt;
This will show you all erven overlapping the noise buffer that we created.  &lt;br /&gt;
&lt;br /&gt;
* Open the attribute table and scroll down to the bottom to see how many houses are affected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 You might want to use the Group option in the Layer Manager after doing an analysis, so that you can keep the results together.  Move the group to the bottom of the Layer Manager when you are finished with it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''I can see you!'''&lt;br /&gt;
&lt;br /&gt;
The way noise travels depends on a lot of things apart from distance.  One of these is changes in height.  We are going to generate an elevation surface (raster) to help us in our work.&lt;br /&gt;
&lt;br /&gt;
Raster layers need to have their extent and grid size defined before we start.&lt;br /&gt;
&lt;br /&gt;
* Click on the Modules List tab, and type &amp;quot;g.region.multiple.vector&amp;quot;.  Enter one vector layer, v_5m_contours.&lt;br /&gt;
* Now open the Modules Tree, and start the GRASS shell at the top of the list.  &lt;br /&gt;
* Enter '''g.region res=25''' to set the grid resolution to 25m.&lt;br /&gt;
* Close the shell.&lt;br /&gt;
&lt;br /&gt;
Now we can start the real work:&lt;br /&gt;
&lt;br /&gt;
* Click on the Modules List tab, and type &amp;quot;v.surf.rst&amp;quot;.  Open the module.&lt;br /&gt;
* Select the layer v_5m_contours as the input map layer.&lt;br /&gt;
* Enter elevation as the output map surface.&lt;br /&gt;
* Click Run.  This process may take a little while.&lt;br /&gt;
* Add the elevation surface to your display.&lt;br /&gt;
&lt;br /&gt;
  You may want to change the way the elevation surface displays using the Symbology options.  &lt;br /&gt;
&lt;br /&gt;
Now that we have an elevation surface, we can derive a lot of other information.  First we will make it look better though.  &lt;br /&gt;
&lt;br /&gt;
* Click on the Modules List tab, and type '''r.slope'''.&lt;br /&gt;
* Choose the r.slope.aspect.aspect module.&lt;br /&gt;
* Enter the name of the output map as '''aspect'''.&lt;br /&gt;
* Run and add the layer.&lt;br /&gt;
&lt;br /&gt;
 Set this layer to about 50% transparency for a pleasing effect.&lt;br /&gt;
&lt;br /&gt;
A new 32 storey shopping mall and conference centre is being proposed for development.  The residents are upset that it will dominate the skyline.  The architect says that it will be &amp;quot;bold and pleasing&amp;quot;.  How can we tell how visible it is going to be?&lt;br /&gt;
&lt;br /&gt;
* Select the r.los module.&lt;br /&gt;
* Enter the coordinates of the proposed mall:&lt;br /&gt;
* Enter the height as 165.&lt;br /&gt;
* Enter 25000 as the maximum distance.&lt;br /&gt;
* Enter elev_shade165 as the output surface name.&lt;br /&gt;
* Run and view the surface to see where the development will be visible from.&lt;br /&gt;
&lt;br /&gt;
Now you try - change the height of the building to what you feel is reasonable, and see what difference it makes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Finding a home'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Select the v.extract.where module.&lt;br /&gt;
&lt;br /&gt;
* Select '''land_use''' as the input map layer.&lt;br /&gt;
&lt;br /&gt;
* Enter '''landuse like Park OR landuse like Botanical Garden OR Bird sanctuary'''&lt;br /&gt;
&lt;br /&gt;
* Enter '''open_space''' as the output map layer name.&lt;br /&gt;
&lt;br /&gt;
* Run and view the output.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You have extracted the open areas suitable for children from the land use layer.  &lt;br /&gt;
&lt;br /&gt;
Now buffer these to a distance of 3km using v.buffer.  &lt;br /&gt;
&lt;br /&gt;
Then use the v.to.rast.constant module to convert this vector layer to a raster surface '''r_open_space'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
West to north-west facing areas will suit our young family.  A raster &amp;quot;mask&amp;quot; needs to be set up to include only suitable aspects. GRASS recognises the raster named MASK for this.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Enter the expression:&lt;br /&gt;
&lt;br /&gt;
 r.mapcalc 'MASK=(((relief@Analysis&amp;lt;315)&amp;amp;&amp;amp;(relief@Analysis&amp;gt;=270)))'&lt;br /&gt;
&lt;br /&gt;
If you are feeling adventurous you can use the visual mapcalc interface to set up the expression instead.   &lt;br /&gt;
&lt;br /&gt;
* Now use the simple mapcalculator r.mapcalculator.  Enter '''open_space''' as the first layer (A) and '''aspect''' as the second layer (B).&lt;br /&gt;
&lt;br /&gt;
* Enter the formula A*B.&lt;br /&gt;
&lt;br /&gt;
* Run and display the output.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These are the places where are young family should look first to be happy in their new home!&lt;br /&gt;
&lt;br /&gt;
== Audience Selections ==&lt;br /&gt;
&lt;br /&gt;
Tell us what else you'd like to try.&lt;br /&gt;
&lt;br /&gt;
== Show off session ==&lt;br /&gt;
&lt;br /&gt;
Here we can do some whizz bang demo stuff that we don't have time to do in  workshop format but that will give you some hints as to what else can be achieved.&lt;br /&gt;
&lt;br /&gt;
e.g. Terrain modelling and drapes.&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
Questions and answers.  What you can do next.  Resources.  Possibly some in-depth examples based on frequent questions.  What would you like to see at future workshops?&lt;br /&gt;
&lt;br /&gt;
== Possible Extras ==&lt;br /&gt;
*Introduction to the Python console&lt;br /&gt;
*The Python API&lt;br /&gt;
&lt;br /&gt;
==Your assessment of the workshop==&lt;br /&gt;
&lt;br /&gt;
Tell us what you thought!&lt;br /&gt;
&lt;br /&gt;
PS: Where to get free spatial data? Surveys and Mapping, Demarcation Board, OpenStreetMap, GPS, etc. Check out [[South_African_Geodata]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Africa]]&lt;/div&gt;</summary>
		<author><name>Wiki-Brendonwp</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=AfricaEvents27June2009&amp;diff=39405</id>
		<title>AfricaEvents27June2009</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=AfricaEvents27June2009&amp;diff=39405"/>
		<updated>2009-06-26T16:56:57Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Brendonwp: /* GRASS Analysis in QGIS- Brendon */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;...back to [[Africa_Local_Chapter]]&lt;br /&gt;
&lt;br /&gt;
'''Introduction to QGIS'''&lt;br /&gt;
&lt;br /&gt;
= What? =&lt;br /&gt;
&lt;br /&gt;
Our second OSGeo local chapter meet up! We will chew the cud, show you some cool stuff and start to get people familiar with the brilliant FOSS GeoSpatial products out there, specifically QGIS on this occasion!&lt;br /&gt;
&lt;br /&gt;
We'll go through installing QGIS and getting it to a point where you can have fun (and get your job done) with it. &lt;br /&gt;
&lt;br /&gt;
= How Much? =&lt;br /&gt;
&lt;br /&gt;
There will be a door charge of R250 to cover costs, lunch and refreshments. That and an open mind are all you need to bring. &lt;br /&gt;
&lt;br /&gt;
= Where? =&lt;br /&gt;
&lt;br /&gt;
 St Davids Marist Inanda College&lt;br /&gt;
 36 Rivonia Rd&lt;br /&gt;
 Inanda&lt;br /&gt;
 Sandton&lt;br /&gt;
[http://www.stdavids.co.za/about_directions.asp Map and Directions]&lt;br /&gt;
&lt;br /&gt;
NB: We'll be in the Prep School computer lab.&lt;br /&gt;
&lt;br /&gt;
= When? =&lt;br /&gt;
&lt;br /&gt;
* Saturday June 27th 2009&lt;br /&gt;
* 08h30 to 15h30&lt;br /&gt;
* includes lunch and refreshments&lt;br /&gt;
&lt;br /&gt;
= Who =&lt;br /&gt;
&lt;br /&gt;
Your friendly presenters for the day will be:&lt;br /&gt;
&lt;br /&gt;
* '''Tim Sutton''' (tim at linfiniti.com) - QGIS hacker and FOSS GIS junkie extraordinaire. Tim eats Weetbix for breakfast because it sounds like Linux. He once rewrote Nkosi Sikelela in C++ because he was feeling patriotic.&lt;br /&gt;
* '''Graeme McFerren''' - (graeme.mcferren at gmail.com) - GIS researcher and FOSS4G user. Mmm, aspire to be like Tim then.&lt;br /&gt;
* '''Gavin Fleming''' (gavinjfleming at gmail dot com) - I enjoy my daily FOSS4G fix. I'm a 'geoinformation scientist' at Mintek and love to see cutting edge and useful geospatial applications emerging, especially when they're based on FOSS. &lt;br /&gt;
* '''Brendon Wolff-Piggott''' - (brendon at integratedgeodata.co.za) - Water resources consultant and FOSS GIS enthusiast.  I wish there were more hours in the day to keep up with FOSS4G!&lt;br /&gt;
&lt;br /&gt;
= RSVP =&lt;br /&gt;
Let gavinjfleming at gmail dot com know if you're coming as numbers are limited. &lt;br /&gt;
&lt;br /&gt;
= Programme and notes =&lt;br /&gt;
&lt;br /&gt;
* Be there in time for a 8h30 start&lt;br /&gt;
* Computers are provided. All you need to bring is R250!&lt;br /&gt;
* It doesn't matter what level you are.&lt;br /&gt;
* The programme is subject to change and participant input right to the last minute!&lt;br /&gt;
&lt;br /&gt;
== Intro to the QGIS project - Tim ==&lt;br /&gt;
&lt;br /&gt;
== First tour of the User Interface - Brendon ==&lt;br /&gt;
&lt;br /&gt;
== Advanced symbolisation - the renderer types, labelling and map actions - Brendon ==&lt;br /&gt;
&lt;br /&gt;
Loading and viewing data - common data formats, symbolisation.  Tips and tricks to enhance image display.&lt;br /&gt;
&lt;br /&gt;
== Making your first project - Graeme ==&lt;br /&gt;
&lt;br /&gt;
- adding layers and saving a project&lt;br /&gt;
&lt;br /&gt;
== Map Production - Gavin ==&lt;br /&gt;
&lt;br /&gt;
* Tea&lt;br /&gt;
&lt;br /&gt;
==Data capture - editing local and PostGIS datasources - Tim==&lt;br /&gt;
&lt;br /&gt;
==Projection basics - Gavin==&lt;br /&gt;
&lt;br /&gt;
* Lunch &lt;br /&gt;
&lt;br /&gt;
==QGIS plugins - Graeme==&lt;br /&gt;
&lt;br /&gt;
=== QGIS and Web GIS WMS and WFS clients - Graeme ===&lt;br /&gt;
&lt;br /&gt;
== Advanced analysis with QGIS ==&lt;br /&gt;
&lt;br /&gt;
===Plugins - Carson Farmer's plugins with R, etc - Gavin===&lt;br /&gt;
&lt;br /&gt;
* break&lt;br /&gt;
&lt;br /&gt;
=== GRASS Analysis in QGIS- Brendon ===&lt;br /&gt;
GRASS is a sophisticated standalone GIS package which can also be accessed through QGIS. It installs with QGIS by default.  If you don't see a toolbar with grass stalk icons, go to:&lt;br /&gt;
&lt;br /&gt;
 View-&amp;gt;Toolbars &lt;br /&gt;
&lt;br /&gt;
and check that the GRASS toolbar is has a tick against it.  This will place the new toolbar on your QGIS interface.&lt;br /&gt;
&lt;br /&gt;
If you can't see the GRASS toolbar listed there then you may need to add it from the plugin manager:&lt;br /&gt;
&lt;br /&gt;
 Plugins-&amp;gt;Manage plugins-&amp;gt;GRASS&lt;br /&gt;
&lt;br /&gt;
* Click on the first icon (the folder with a grass stalk) to open the prepared GRASS mapset, which is a collection of maps.  &lt;br /&gt;
&lt;br /&gt;
There are three entries needed in the box that opens up: &lt;br /&gt;
&lt;br /&gt;
 Gisdbase&lt;br /&gt;
 Location&lt;br /&gt;
 Mapset&lt;br /&gt;
&lt;br /&gt;
These should be set to:&lt;br /&gt;
 home/tim/Grassdata&lt;br /&gt;
 training_jhb&lt;br /&gt;
 analysis&lt;br /&gt;
&lt;br /&gt;
* Then click OK to open the mapset.&lt;br /&gt;
&lt;br /&gt;
Ask for help from one of the presenters if making these choices is confusing &lt;br /&gt;
for any reason. &lt;br /&gt;
&lt;br /&gt;
Once this is done, you may use the icons with the '+' symbol to add vector &lt;br /&gt;
and raster maps from the GRASS database.  You may use the QGIS context-sensitive menu (right-click) to remove layers if you do not want to see them.&lt;br /&gt;
&lt;br /&gt;
* Now open the prepared QGIS project analysis.qgs to see many of the map layers available in GRASS. We are going to use the GRASS toolbox to find answers to some questions that GIS can help us with.&lt;br /&gt;
&lt;br /&gt;
* Click on the tools icon (with the hammer and spanner) on the GRASS toolbar to open the GRASS tools window. &lt;br /&gt;
&lt;br /&gt;
It has three tabs at the top:&lt;br /&gt;
'''Modules Tree''', which has a list of GRASS modules grouped according to their function, rather like a Windows Explorer view of directories.&lt;br /&gt;
 '''Modules List''', which has a long list of modules.  Type the beginning of a modules name in the box at the bottom to find it rapidly.&lt;br /&gt;
 ''Browser'', which shows you the GRASS map layers grouped into raster and vector groups.&lt;br /&gt;
&lt;br /&gt;
* If you pick a map layer in the pane on the left, you will see descriptive &lt;br /&gt;
information about the layer in the pane on the right.  Try this with raster&lt;br /&gt;
and vector layers, and notice that the information given is different for the &lt;br /&gt;
two types.  &lt;br /&gt;
&lt;br /&gt;
 You can leave the GRASS Tools window open while you are working with QGIS.   &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Why is it so noisy here?'''&lt;br /&gt;
&lt;br /&gt;
At the end of a long day, you want to put your feet up and relax.  But the noise from the freeway just never stops!  How many houses in the area are close enough to a major road to be badly affected by noise?&lt;br /&gt;
&lt;br /&gt;
The noise from the freeway will travel further than the noise from a suburban &lt;br /&gt;
road. Luckily, we already have distances entered against types of road in the Roads map layer.&lt;br /&gt;
&lt;br /&gt;
* Open the attribute table and have a look.&lt;br /&gt;
&lt;br /&gt;
* To start the analysis, go to the modules tree and select the module Buffer, under:&lt;br /&gt;
&lt;br /&gt;
  Vector -&amp;gt; Spatial analysis&lt;br /&gt;
&lt;br /&gt;
Another tab will open to allow you to run the Buffer module.&lt;br /&gt;
&lt;br /&gt;
* Select the map layer Roads as input.  &lt;br /&gt;
&lt;br /&gt;
......  go to Linux for other detail:&lt;br /&gt;
select attrib for Buffer&lt;br /&gt;
  &lt;br /&gt;
* Enter Roads_buffer as the name of the output layer.&lt;br /&gt;
&lt;br /&gt;
* Then press Run. &lt;br /&gt;
&lt;br /&gt;
The progress bar at the bottom will show you how much longer you have to wait.  When it is finished, click on View output to show the result in QGIS. &lt;br /&gt;
&lt;br /&gt;
See how the buffers are wider around the freeway than around the main roads.&lt;br /&gt;
&lt;br /&gt;
 Tip: You can close the tab for the module using the Close button next to View output.&lt;br /&gt;
&lt;br /&gt;
Now we want to see how many houses are affected.  We have the erven outlines rather than houses, but it will be a good approximation.&lt;br /&gt;
&lt;br /&gt;
* Click on the Modules List tab, and type &amp;quot;v.select&amp;quot; at the bottom.  The v.select.overlap module should appear at the top.  Click on the module name to open it.&lt;br /&gt;
&lt;br /&gt;
* Select Erven as the first input map layer.&lt;br /&gt;
&lt;br /&gt;
* Select Roads_buffer as the second input map layer.&lt;br /&gt;
&lt;br /&gt;
* Enter Erven_noise as the output map layer.&lt;br /&gt;
&lt;br /&gt;
* Click on Run, and View output.&lt;br /&gt;
 &lt;br /&gt;
This will show you all erven overlapping the noise buffer that we created.  &lt;br /&gt;
&lt;br /&gt;
* Open the attribute table and scroll down to the bottom to see how many houses are affected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 You might want to use the Group option in the Layer Manager after doing an analysis, so that you can keep the results together.  Move the group to the bottom of the Layer Manager when you are finished with it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''I can see you!'''&lt;br /&gt;
&lt;br /&gt;
The way noise travels depends on a lot of things apart from distance.  One of these is changes in height.  We are going to generate an elevation surface (raster) to help us in our work.&lt;br /&gt;
&lt;br /&gt;
Raster layers need to have their extent and grid size defined before we start.&lt;br /&gt;
&lt;br /&gt;
* Click on the Modules List tab, and type &amp;quot;g.region.multiple.vector&amp;quot;.  Enter one vector layer, v_5m_contours.&lt;br /&gt;
* Now open the Modules Tree, and start the GRASS shell at the top of the list.  &lt;br /&gt;
* Enter '''g.region res=25''' to set the grid resolution to 25m.&lt;br /&gt;
* Close the shell.&lt;br /&gt;
&lt;br /&gt;
Now we can start the real work:&lt;br /&gt;
&lt;br /&gt;
* Click on the Modules List tab, and type &amp;quot;v.surf.rst&amp;quot;.  Open the module.&lt;br /&gt;
* Select the layer v_5m_contours as the input map layer.&lt;br /&gt;
* Enter elevation as the output map surface.&lt;br /&gt;
* Click Run.  This process may take a little while.&lt;br /&gt;
* Add the elevation surface to your display.&lt;br /&gt;
&lt;br /&gt;
  You may want to change the way the elevation surface displays using the Symbology options.  &lt;br /&gt;
&lt;br /&gt;
Now that we have an elevation surface, we can derive a lot of other information.  First we will make it look better though.  &lt;br /&gt;
&lt;br /&gt;
* Click on the Modules List tab, and type '''r.slope'''.&lt;br /&gt;
* Choose the r.slope.aspect.aspect module.&lt;br /&gt;
* Enter the name of the output map as '''relief'''.&lt;br /&gt;
* Run and add the layer.&lt;br /&gt;
&lt;br /&gt;
 Set this layer to about 50% transparency for a pleasing effect.&lt;br /&gt;
&lt;br /&gt;
A new 32 storey shopping mall and conference centre is being proposed for development.  The residents are upset that it will dominate the skyline.  The architect says that it will be &amp;quot;bold and pleasing&amp;quot;.  How can we tell how visible it is going to be?&lt;br /&gt;
&lt;br /&gt;
* Select the r.los module.&lt;br /&gt;
* Enter the coordinates of the proposed mall:&lt;br /&gt;
* Enter the height as 165.&lt;br /&gt;
* Enter 25000 as the maximum distance.&lt;br /&gt;
* Enter elev_shade165 as the output surface name.&lt;br /&gt;
* Run and view the surface to see where the development will be visible from.&lt;br /&gt;
&lt;br /&gt;
Now you try - change the height of the building to what you feel is reasonable, and see what difference it makes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Finding a home'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Select the v.extract.where module.&lt;br /&gt;
&lt;br /&gt;
* Select '''land_use''' as the input map layer.&lt;br /&gt;
&lt;br /&gt;
* Enter '''landuse like Park OR landuse like Botanical Garden OR Bird sanctuary'''&lt;br /&gt;
&lt;br /&gt;
* Enter '''open_space''' as the output map layer name.&lt;br /&gt;
&lt;br /&gt;
* Run and view the output.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You have extracted the open areas suitable for children from the land use layer.  &lt;br /&gt;
&lt;br /&gt;
Now buffer these to a distance of 3km using v.buffer.  &lt;br /&gt;
&lt;br /&gt;
Then use the v.to.rast.constant module to convert this vector layer to a raster surface '''r_open_space'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
West to north-west facing areas will suit our young family.  A raster &amp;quot;mask&amp;quot; needs to be set up to include only suitable aspects. GRASS recognises the raster named MASK for this.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Enter the expression:&lt;br /&gt;
&lt;br /&gt;
 r.mapcalc 'MASK=(((relief@Analysis&amp;lt;315)&amp;amp;&amp;amp;(relief@Analysis&amp;gt;=270)))'&lt;br /&gt;
&lt;br /&gt;
If you are feeling adventurous you can use the visual mapcalc interface to set up the expression instead.   &lt;br /&gt;
&lt;br /&gt;
* Now use the simple mapcalculator r.mapcalculator.  Enter '''open_space''' as the first layer (A) and '''aspect''' as the second layer (B).&lt;br /&gt;
&lt;br /&gt;
* Enter the formula A*B.&lt;br /&gt;
&lt;br /&gt;
* Run and display the output.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These are the places where are young family should look first to be happy in their new home!&lt;br /&gt;
&lt;br /&gt;
== Audience Selections ==&lt;br /&gt;
&lt;br /&gt;
Tell us what else you'd like to try.&lt;br /&gt;
&lt;br /&gt;
== Show off session ==&lt;br /&gt;
&lt;br /&gt;
Here we can do some whizz bang demo stuff that we don't have time to do in  workshop format but that will give you some hints as to what else can be achieved.&lt;br /&gt;
&lt;br /&gt;
e.g. Terrain modelling and drapes.&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
Questions and answers.  What you can do next.  Resources.  Possibly some in-depth examples based on frequent questions.  What would you like to see at future workshops?&lt;br /&gt;
&lt;br /&gt;
== Possible Extras ==&lt;br /&gt;
*Introduction to the Python console&lt;br /&gt;
*The Python API&lt;br /&gt;
&lt;br /&gt;
==Your assessment of the workshop==&lt;br /&gt;
&lt;br /&gt;
Tell us what you thought!&lt;br /&gt;
&lt;br /&gt;
PS: Where to get free spatial data? Surveys and Mapping, Demarcation Board, OpenStreetMap, GPS, etc. Check out [[South_African_Geodata]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Africa]]&lt;/div&gt;</summary>
		<author><name>Wiki-Brendonwp</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=AfricaEvents27June2009&amp;diff=39404</id>
		<title>AfricaEvents27June2009</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=AfricaEvents27June2009&amp;diff=39404"/>
		<updated>2009-06-26T16:52:13Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Brendonwp: /* GRASS Analysis in QGIS- Brendon */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;...back to [[Africa_Local_Chapter]]&lt;br /&gt;
&lt;br /&gt;
'''Introduction to QGIS'''&lt;br /&gt;
&lt;br /&gt;
= What? =&lt;br /&gt;
&lt;br /&gt;
Our second OSGeo local chapter meet up! We will chew the cud, show you some cool stuff and start to get people familiar with the brilliant FOSS GeoSpatial products out there, specifically QGIS on this occasion!&lt;br /&gt;
&lt;br /&gt;
We'll go through installing QGIS and getting it to a point where you can have fun (and get your job done) with it. &lt;br /&gt;
&lt;br /&gt;
= How Much? =&lt;br /&gt;
&lt;br /&gt;
There will be a door charge of R250 to cover costs, lunch and refreshments. That and an open mind are all you need to bring. &lt;br /&gt;
&lt;br /&gt;
= Where? =&lt;br /&gt;
&lt;br /&gt;
 St Davids Marist Inanda College&lt;br /&gt;
 36 Rivonia Rd&lt;br /&gt;
 Inanda&lt;br /&gt;
 Sandton&lt;br /&gt;
[http://www.stdavids.co.za/about_directions.asp Map and Directions]&lt;br /&gt;
&lt;br /&gt;
NB: We'll be in the Prep School computer lab.&lt;br /&gt;
&lt;br /&gt;
= When? =&lt;br /&gt;
&lt;br /&gt;
* Saturday June 27th 2009&lt;br /&gt;
* 08h30 to 15h30&lt;br /&gt;
* includes lunch and refreshments&lt;br /&gt;
&lt;br /&gt;
= Who =&lt;br /&gt;
&lt;br /&gt;
Your friendly presenters for the day will be:&lt;br /&gt;
&lt;br /&gt;
* '''Tim Sutton''' (tim at linfiniti.com) - QGIS hacker and FOSS GIS junkie extraordinaire. Tim eats Weetbix for breakfast because it sounds like Linux. He once rewrote Nkosi Sikelela in C++ because he was feeling patriotic.&lt;br /&gt;
* '''Graeme McFerren''' - (graeme.mcferren at gmail.com) - GIS researcher and FOSS4G user. Mmm, aspire to be like Tim then.&lt;br /&gt;
* '''Gavin Fleming''' (gavinjfleming at gmail dot com) - I enjoy my daily FOSS4G fix. I'm a 'geoinformation scientist' at Mintek and love to see cutting edge and useful geospatial applications emerging, especially when they're based on FOSS. &lt;br /&gt;
* '''Brendon Wolff-Piggott''' - (brendon at integratedgeodata.co.za) - Water resources consultant and FOSS GIS enthusiast.  I wish there were more hours in the day to keep up with FOSS4G!&lt;br /&gt;
&lt;br /&gt;
= RSVP =&lt;br /&gt;
Let gavinjfleming at gmail dot com know if you're coming as numbers are limited. &lt;br /&gt;
&lt;br /&gt;
= Programme and notes =&lt;br /&gt;
&lt;br /&gt;
* Be there in time for a 8h30 start&lt;br /&gt;
* Computers are provided. All you need to bring is R250!&lt;br /&gt;
* It doesn't matter what level you are.&lt;br /&gt;
* The programme is subject to change and participant input right to the last minute!&lt;br /&gt;
&lt;br /&gt;
== Intro to the QGIS project - Tim ==&lt;br /&gt;
&lt;br /&gt;
== First tour of the User Interface - Brendon ==&lt;br /&gt;
&lt;br /&gt;
== Advanced symbolisation - the renderer types, labelling and map actions - Brendon ==&lt;br /&gt;
&lt;br /&gt;
Loading and viewing data - common data formats, symbolisation.  Tips and tricks to enhance image display.&lt;br /&gt;
&lt;br /&gt;
== Making your first project - Graeme ==&lt;br /&gt;
&lt;br /&gt;
- adding layers and saving a project&lt;br /&gt;
&lt;br /&gt;
== Map Production - Gavin ==&lt;br /&gt;
&lt;br /&gt;
* Tea&lt;br /&gt;
&lt;br /&gt;
==Data capture - editing local and PostGIS datasources - Tim==&lt;br /&gt;
&lt;br /&gt;
==Projection basics - Gavin==&lt;br /&gt;
&lt;br /&gt;
* Lunch &lt;br /&gt;
&lt;br /&gt;
==QGIS plugins - Graeme==&lt;br /&gt;
&lt;br /&gt;
=== QGIS and Web GIS WMS and WFS clients - Graeme ===&lt;br /&gt;
&lt;br /&gt;
== Advanced analysis with QGIS ==&lt;br /&gt;
&lt;br /&gt;
===Plugins - Carson Farmer's plugins with R, etc - Gavin===&lt;br /&gt;
&lt;br /&gt;
* break&lt;br /&gt;
&lt;br /&gt;
=== GRASS Analysis in QGIS- Brendon ===&lt;br /&gt;
GRASS is a sophisticated standalone GIS package which can also be accessed through QGIS. It installs with QGIS by default.  If you don't see a toolbar with grass stalk icons, go to:&lt;br /&gt;
&lt;br /&gt;
 View-&amp;gt;Toolbars &lt;br /&gt;
&lt;br /&gt;
and check that the GRASS toolbar is has a tick against it.  This will place the new toolbar on your QGIS interface.&lt;br /&gt;
&lt;br /&gt;
If you can't see the GRASS toolbar listed there then you may need to add it from the plugin manager:&lt;br /&gt;
&lt;br /&gt;
 Plugins-&amp;gt;Manage plugins-&amp;gt;GRASS&lt;br /&gt;
&lt;br /&gt;
* Click on the first icon (the folder with a grass stalk) to open the prepared GRASS mapset, which is a collection of maps.  &lt;br /&gt;
&lt;br /&gt;
There are three entries needed in the box that opens up: &lt;br /&gt;
&lt;br /&gt;
 Gisdbase&lt;br /&gt;
 Location&lt;br /&gt;
 Mapset&lt;br /&gt;
&lt;br /&gt;
These should be set to:&lt;br /&gt;
 home/tim/Grassdata&lt;br /&gt;
 training_jhb&lt;br /&gt;
 analysis&lt;br /&gt;
&lt;br /&gt;
* Then click OK to open the mapset.&lt;br /&gt;
&lt;br /&gt;
Ask for help from one of the presenters if making these choices is confusing &lt;br /&gt;
for any reason. &lt;br /&gt;
&lt;br /&gt;
Once this is done, you may use the icons with the '+' symbol to add vector &lt;br /&gt;
and raster maps from the GRASS database.  You may use the QGIS context-sensitive menu (right-click) to remove layers if you do not want to see them.&lt;br /&gt;
&lt;br /&gt;
* Now open the prepared QGIS project analysis.qgs to see many of the map layers available in GRASS. We are going to use the GRASS toolbox to find answers to some questions that GIS can help us with.&lt;br /&gt;
&lt;br /&gt;
* Click on the tools icon (with the hammer and spanner) on the GRASS toolbar to open the GRASS tools window. &lt;br /&gt;
&lt;br /&gt;
It has three tabs at the top:&lt;br /&gt;
 Modules Tree, which has a list of GRASS modules grouped according to their function, rather like a Windows Explorer view of directories.&lt;br /&gt;
 Modules List, which has a long list of modules.  Type the beginning of a modules name in the box at the bottom to find it rapidly.&lt;br /&gt;
 Browser, which shows you the GRASS map layers grouped into raster and vector groups.&lt;br /&gt;
&lt;br /&gt;
* If you pick a map layer in the pane on the left, you will see descriptive &lt;br /&gt;
information about the layer in the pane on the right.  Try this with raster&lt;br /&gt;
and vector layers, and notice that the information given is different for the &lt;br /&gt;
two types.  &lt;br /&gt;
&lt;br /&gt;
 You can leave the GRASS Tools window open while you are working with QGIS.   &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Why is it so noisy here?'''&lt;br /&gt;
&lt;br /&gt;
At the end of a long day, you want to put your feet up and relax.  But the noise from the freeway just never stops!  How many houses in the area are close enough to a major road to be badly affected by noise?&lt;br /&gt;
&lt;br /&gt;
The noise from the freeway will travel further than the noise from a suburban &lt;br /&gt;
road. Luckily, we already have distances entered against types of road in the Roads map layer.&lt;br /&gt;
&lt;br /&gt;
* Open the attribute table and have a look.&lt;br /&gt;
&lt;br /&gt;
* To start the analysis, go to the modules tree and select the module Buffer, under:&lt;br /&gt;
&lt;br /&gt;
  Vector -&amp;gt; Spatial analysis&lt;br /&gt;
&lt;br /&gt;
Another tab will open to allow you to run the Buffer module.&lt;br /&gt;
&lt;br /&gt;
* Select the map layer Roads as input.  &lt;br /&gt;
&lt;br /&gt;
......  go to Linux for other detail:&lt;br /&gt;
select attrib for Buffer&lt;br /&gt;
  &lt;br /&gt;
* Enter Roads_buffer as the name of the output layer.&lt;br /&gt;
&lt;br /&gt;
* Then press Run. &lt;br /&gt;
&lt;br /&gt;
The progress bar at the bottom will show you how much longer you have to wait.  When it is finished, click on View output to show the result in QGIS. &lt;br /&gt;
&lt;br /&gt;
See how the buffers are wider around the freeway than around the main roads.&lt;br /&gt;
&lt;br /&gt;
Tip: You can close the tab for the module using the Close button next to View output.&lt;br /&gt;
&lt;br /&gt;
Now we want to see how many houses are affected.  We have the erven outlines rather than houses, but it will be a good approximation.&lt;br /&gt;
&lt;br /&gt;
* Click on the Modules List tab, and type &amp;quot;v.select&amp;quot; at the bottom.  The v.select.overlap module should appear at the top.  Click on the module name to open it.&lt;br /&gt;
&lt;br /&gt;
* Select Erven as the first input map layer.&lt;br /&gt;
&lt;br /&gt;
* Select Roads_buffer as the second input map layer.&lt;br /&gt;
&lt;br /&gt;
* Enter Erven_noise as the output map layer.&lt;br /&gt;
&lt;br /&gt;
* Click on Run, and View output.&lt;br /&gt;
 &lt;br /&gt;
This will show you all erven overlapping the noise buffer that we created.  &lt;br /&gt;
&lt;br /&gt;
* Open the attribute table and scroll down to the bottom to see how many houses are affected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 You might want to use the Group option in the Layer Manager after doing an analysis, so that you can keep the results together.  Move the group to the bottom of the Layer Manager when you are finished with it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''I can see you!'''&lt;br /&gt;
&lt;br /&gt;
The way noise travels depends on a lot of things apart from distance.  One of these is changes in height.  We are going to generate an elevation surface (raster) to help us in our work.&lt;br /&gt;
&lt;br /&gt;
Raster layers need to have their extent and grid size defined before we start.&lt;br /&gt;
&lt;br /&gt;
* Click on the Modules List tab, and type &amp;quot;g.region.multiple.vector&amp;quot;.  Enter one vector layer, v_5m_contours.&lt;br /&gt;
* Now open the Modules Tree, and start the GRASS shell at the top of the list.  &lt;br /&gt;
* Enter '''g.region res=25''' to set the grid resolution to 25m.&lt;br /&gt;
* Close the shell.&lt;br /&gt;
&lt;br /&gt;
Now we can start the real work:&lt;br /&gt;
&lt;br /&gt;
* Click on the Modules List tab, and type &amp;quot;v.surf.rst&amp;quot;.  Open the module.&lt;br /&gt;
* Select the layer v_5m_contours as the input map layer.&lt;br /&gt;
* Enter elevation as the output map surface.&lt;br /&gt;
* Click Run.  This process may take a little while.&lt;br /&gt;
* Add the elevation surface to your display.&lt;br /&gt;
&lt;br /&gt;
  You may want to change the way the elevation surface displays using the Symbology options.  &lt;br /&gt;
&lt;br /&gt;
Now that we have an elevation surface, we can derive a lot of other information.  First we will make it look better though.  &lt;br /&gt;
&lt;br /&gt;
* Click on the Modules List tab, and type '''r.slope'''.&lt;br /&gt;
* Choose the r.slope.aspect.aspect module.&lt;br /&gt;
* Enter the name of the output map as '''relief'''.&lt;br /&gt;
* Run and add the layer.&lt;br /&gt;
&lt;br /&gt;
 Set this layer to about 50% transparency for a pleasing effect.&lt;br /&gt;
&lt;br /&gt;
A new 32 storey shopping mall and conference centre is being proposed for development.  The residents are upset that it will dominate the skyline.  The architect says that it will be &amp;quot;bold and pleasing&amp;quot;.  How can we tell how visible it is going to be?&lt;br /&gt;
&lt;br /&gt;
* Select the r.los module.&lt;br /&gt;
* Enter the coordinates of the proposed mall:&lt;br /&gt;
* Enter the height as 165.&lt;br /&gt;
* Enter 25000 as the maximum distance.&lt;br /&gt;
* Enter elev_shade165 as the output surface name.&lt;br /&gt;
* Run and view the surface to see where the development will be visible from.&lt;br /&gt;
&lt;br /&gt;
Now you try - change the height of the building to what you feel is reasonable, and see what difference it makes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Finding a home'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Select the v.extract.where module.&lt;br /&gt;
&lt;br /&gt;
* Select '''land_use''' as the input map layer.&lt;br /&gt;
&lt;br /&gt;
* Enter '''landuse like Park OR landuse like Botanical Garden OR Bird sanctuary'''&lt;br /&gt;
&lt;br /&gt;
* Enter '''open_space''' as the output map layer name.&lt;br /&gt;
&lt;br /&gt;
* Run and view the output.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now you have extracted open areas suitable for children.  Buffer these to a distance of 3km using v.buffer.  Then use the v.to.rast.constant module to convert this vector layer to a raster surface '''r_open_space'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
West to north-west facing areas will suit our young family.  A '''mask''' needs to be set up to include only suitable aspects. GRASS recognises the raster named MASK for this.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* You can use the visual mapcalc interface to set up an expression or enter the expression:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 r.mapcalc 'MASK=(((relief@Analysis&amp;lt;315)&amp;amp;&amp;amp;(relief@Analysis&amp;gt;=270)))'&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Now use the simple mapcalculator r.mapcalculator.  Enter open_space as the first layer and '''aspect''' as the second layer.&lt;br /&gt;
&lt;br /&gt;
* Use the formula A*B.&lt;br /&gt;
&lt;br /&gt;
* Run and display the output.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These are the places where are young family should look first to be happy in their new home!&lt;br /&gt;
&lt;br /&gt;
== Audience Selections ==&lt;br /&gt;
&lt;br /&gt;
Tell us what else you'd like to try.&lt;br /&gt;
&lt;br /&gt;
== Show off session ==&lt;br /&gt;
&lt;br /&gt;
Here we can do some whizz bang demo stuff that we don't have time to do in  workshop format but that will give you some hints as to what else can be achieved.&lt;br /&gt;
&lt;br /&gt;
e.g. Terrain modelling and drapes.&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
Questions and answers.  What you can do next.  Resources.  Possibly some in-depth examples based on frequent questions.  What would you like to see at future workshops?&lt;br /&gt;
&lt;br /&gt;
== Possible Extras ==&lt;br /&gt;
*Introduction to the Python console&lt;br /&gt;
*The Python API&lt;br /&gt;
&lt;br /&gt;
==Your assessment of the workshop==&lt;br /&gt;
&lt;br /&gt;
Tell us what you thought!&lt;br /&gt;
&lt;br /&gt;
PS: Where to get free spatial data? Surveys and Mapping, Demarcation Board, OpenStreetMap, GPS, etc. Check out [[South_African_Geodata]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Africa]]&lt;/div&gt;</summary>
		<author><name>Wiki-Brendonwp</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=AfricaEvents27June2009&amp;diff=39403</id>
		<title>AfricaEvents27June2009</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=AfricaEvents27June2009&amp;diff=39403"/>
		<updated>2009-06-26T16:50:55Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Brendonwp: /* GRASS Analysis in QGIS- Brendon */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;...back to [[Africa_Local_Chapter]]&lt;br /&gt;
&lt;br /&gt;
'''Introduction to QGIS'''&lt;br /&gt;
&lt;br /&gt;
= What? =&lt;br /&gt;
&lt;br /&gt;
Our second OSGeo local chapter meet up! We will chew the cud, show you some cool stuff and start to get people familiar with the brilliant FOSS GeoSpatial products out there, specifically QGIS on this occasion!&lt;br /&gt;
&lt;br /&gt;
We'll go through installing QGIS and getting it to a point where you can have fun (and get your job done) with it. &lt;br /&gt;
&lt;br /&gt;
= How Much? =&lt;br /&gt;
&lt;br /&gt;
There will be a door charge of R250 to cover costs, lunch and refreshments. That and an open mind are all you need to bring. &lt;br /&gt;
&lt;br /&gt;
= Where? =&lt;br /&gt;
&lt;br /&gt;
 St Davids Marist Inanda College&lt;br /&gt;
 36 Rivonia Rd&lt;br /&gt;
 Inanda&lt;br /&gt;
 Sandton&lt;br /&gt;
[http://www.stdavids.co.za/about_directions.asp Map and Directions]&lt;br /&gt;
&lt;br /&gt;
NB: We'll be in the Prep School computer lab.&lt;br /&gt;
&lt;br /&gt;
= When? =&lt;br /&gt;
&lt;br /&gt;
* Saturday June 27th 2009&lt;br /&gt;
* 08h30 to 15h30&lt;br /&gt;
* includes lunch and refreshments&lt;br /&gt;
&lt;br /&gt;
= Who =&lt;br /&gt;
&lt;br /&gt;
Your friendly presenters for the day will be:&lt;br /&gt;
&lt;br /&gt;
* '''Tim Sutton''' (tim at linfiniti.com) - QGIS hacker and FOSS GIS junkie extraordinaire. Tim eats Weetbix for breakfast because it sounds like Linux. He once rewrote Nkosi Sikelela in C++ because he was feeling patriotic.&lt;br /&gt;
* '''Graeme McFerren''' - (graeme.mcferren at gmail.com) - GIS researcher and FOSS4G user. Mmm, aspire to be like Tim then.&lt;br /&gt;
* '''Gavin Fleming''' (gavinjfleming at gmail dot com) - I enjoy my daily FOSS4G fix. I'm a 'geoinformation scientist' at Mintek and love to see cutting edge and useful geospatial applications emerging, especially when they're based on FOSS. &lt;br /&gt;
* '''Brendon Wolff-Piggott''' - (brendon at integratedgeodata.co.za) - Water resources consultant and FOSS GIS enthusiast.  I wish there were more hours in the day to keep up with FOSS4G!&lt;br /&gt;
&lt;br /&gt;
= RSVP =&lt;br /&gt;
Let gavinjfleming at gmail dot com know if you're coming as numbers are limited. &lt;br /&gt;
&lt;br /&gt;
= Programme and notes =&lt;br /&gt;
&lt;br /&gt;
* Be there in time for a 8h30 start&lt;br /&gt;
* Computers are provided. All you need to bring is R250!&lt;br /&gt;
* It doesn't matter what level you are.&lt;br /&gt;
* The programme is subject to change and participant input right to the last minute!&lt;br /&gt;
&lt;br /&gt;
== Intro to the QGIS project - Tim ==&lt;br /&gt;
&lt;br /&gt;
== First tour of the User Interface - Brendon ==&lt;br /&gt;
&lt;br /&gt;
== Advanced symbolisation - the renderer types, labelling and map actions - Brendon ==&lt;br /&gt;
&lt;br /&gt;
Loading and viewing data - common data formats, symbolisation.  Tips and tricks to enhance image display.&lt;br /&gt;
&lt;br /&gt;
== Making your first project - Graeme ==&lt;br /&gt;
&lt;br /&gt;
- adding layers and saving a project&lt;br /&gt;
&lt;br /&gt;
== Map Production - Gavin ==&lt;br /&gt;
&lt;br /&gt;
* Tea&lt;br /&gt;
&lt;br /&gt;
==Data capture - editing local and PostGIS datasources - Tim==&lt;br /&gt;
&lt;br /&gt;
==Projection basics - Gavin==&lt;br /&gt;
&lt;br /&gt;
* Lunch &lt;br /&gt;
&lt;br /&gt;
==QGIS plugins - Graeme==&lt;br /&gt;
&lt;br /&gt;
=== QGIS and Web GIS WMS and WFS clients - Graeme ===&lt;br /&gt;
&lt;br /&gt;
== Advanced analysis with QGIS ==&lt;br /&gt;
&lt;br /&gt;
===Plugins - Carson Farmer's plugins with R, etc - Gavin===&lt;br /&gt;
&lt;br /&gt;
* break&lt;br /&gt;
&lt;br /&gt;
=== GRASS Analysis in QGIS- Brendon ===&lt;br /&gt;
GRASS is a sophisticated standalone GIS package which can also be accessed through QGIS. It installs with QGIS by default.  If you don't see a toolbar with grass stalk icons, go to:&lt;br /&gt;
&lt;br /&gt;
 View-&amp;gt;Toolbars &lt;br /&gt;
&lt;br /&gt;
and check that the GRASS toolbar is has a tick against it.  This will place the new toolbar on your QGIS interface.&lt;br /&gt;
&lt;br /&gt;
If you can't see the GRASS toolbar listed there then you may need to add it from the plugin manager:&lt;br /&gt;
&lt;br /&gt;
 Plugins-&amp;gt;Manage plugins-&amp;gt;GRASS&lt;br /&gt;
&lt;br /&gt;
* Click on the first icon (the folder with a grass stalk) to open the prepared GRASS mapset, which is a collection of maps.  &lt;br /&gt;
&lt;br /&gt;
There are three entries needed in the box that opens up: &lt;br /&gt;
&lt;br /&gt;
 Gisdbase&lt;br /&gt;
 Location&lt;br /&gt;
 Mapset&lt;br /&gt;
&lt;br /&gt;
These should be set to:&lt;br /&gt;
 home/tim/Grassdata&lt;br /&gt;
 training_jhb&lt;br /&gt;
 analysis&lt;br /&gt;
&lt;br /&gt;
* Then click OK to open the mapset.&lt;br /&gt;
&lt;br /&gt;
Ask for help from one of the presenters if making these choices is confusing &lt;br /&gt;
for any reason. &lt;br /&gt;
&lt;br /&gt;
Once this is done, you may use the icons with the '+' symbol to add vector &lt;br /&gt;
and raster maps from the GRASS database.  You may use the QGIS context-sensitive menu (right-click) to remove layers if you do not want to see them.&lt;br /&gt;
&lt;br /&gt;
* Now open the prepared QGIS project analysis.qgs to see many of the map layers available in GRASS. We are going to use the GRASS toolbox to find answers to some questions that GIS can help us with.&lt;br /&gt;
&lt;br /&gt;
* Click on the tools icon (with the hammer and spanner) on the GRASS toolbar to open the GRASS tools window. &lt;br /&gt;
&lt;br /&gt;
It has three tabs at the top:&lt;br /&gt;
o Modules Tree, which has a list of GRASS modules grouped according to their function, rather like a Windows Explorer view of directories.&lt;br /&gt;
o Modules List, which has a long list of modules.  Type the beginning of a modules name in the box at the bottom to find it rapidly.&lt;br /&gt;
o Browser, which shows you the GRASS map layers grouped into raster and vector groups.&lt;br /&gt;
&lt;br /&gt;
* If you pick a map layer in the pane on the left, you will see descriptive &lt;br /&gt;
information about the layer in the pane on the right.  Try this with raster&lt;br /&gt;
and vector layers, and notice that the information given is different for the &lt;br /&gt;
two types.  &lt;br /&gt;
&lt;br /&gt;
You can leave the GRASS Tools window open while you are working with QGIS.   &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Why is it so noisy here?'''&lt;br /&gt;
&lt;br /&gt;
At the end of a long day, you want to put your feet up and relax.  But the noise from the freeway just never stops!  How many houses in the area are close enough to a major road to be badly affected by noise?&lt;br /&gt;
&lt;br /&gt;
The noise from the freeway will travel further than the noise from a suburban &lt;br /&gt;
road. Luckily, we already have distances entered against types of road in the Roads map layer.&lt;br /&gt;
&lt;br /&gt;
* Open the attribute table and have a look.&lt;br /&gt;
&lt;br /&gt;
* To start the analysis, go to the modules tree and select the module Buffer, under:&lt;br /&gt;
&lt;br /&gt;
  Vector -&amp;gt; Spatial analysis&lt;br /&gt;
&lt;br /&gt;
Another tab will open to allow you to run the Buffer module.&lt;br /&gt;
&lt;br /&gt;
* Select the map layer Roads as input.  &lt;br /&gt;
&lt;br /&gt;
......  go to Linux for other detail:&lt;br /&gt;
select attrib for Buffer&lt;br /&gt;
  &lt;br /&gt;
* Enter Roads_buffer as the name of the output layer.&lt;br /&gt;
&lt;br /&gt;
* Then press Run. &lt;br /&gt;
&lt;br /&gt;
The progress bar at the bottom will show you how much longer you have to wait.  When it is finished, click on View output to show the result in QGIS. &lt;br /&gt;
&lt;br /&gt;
See how the buffers are wider around the freeway than around the main roads.&lt;br /&gt;
&lt;br /&gt;
Tip: You can close the tab for the module using the Close button next to View output.&lt;br /&gt;
&lt;br /&gt;
Now we want to see how many houses are affected.  We have the erven outlines rather than houses, but it will be a good approximation.&lt;br /&gt;
&lt;br /&gt;
* Click on the Modules List tab, and type &amp;quot;v.select&amp;quot; at the bottom.  The v.select.overlap module should appear at the top.  Click on the module name to open it.&lt;br /&gt;
&lt;br /&gt;
* Select Erven as the first input map layer.&lt;br /&gt;
&lt;br /&gt;
* Select Roads_buffer as the second input map layer.&lt;br /&gt;
&lt;br /&gt;
* Enter Erven_noise as the output map layer.&lt;br /&gt;
&lt;br /&gt;
* Click on Run, and View output.&lt;br /&gt;
 &lt;br /&gt;
This will show you all erven overlapping the noise buffer that we created.  &lt;br /&gt;
&lt;br /&gt;
* Open the attribute table and scroll down to the bottom to see how many houses are affected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 You might want to use the Group option in the Layer Manager after doing an analysis, so that you can keep the results together.  Move the group to the bottom of the Layer Manager when you are finished with it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''I can see you!'''&lt;br /&gt;
&lt;br /&gt;
The way noise travels depends on a lot of things apart from distance.  One of these is changes in height.  We are going to generate an elevation surface (raster) to help us in our work.&lt;br /&gt;
&lt;br /&gt;
Raster layers need to have their extent and grid size defined before we start.&lt;br /&gt;
&lt;br /&gt;
* Click on the Modules List tab, and type &amp;quot;g.region.multiple.vector&amp;quot;.  Enter one vector layer, v_5m_contours.&lt;br /&gt;
* Now open the Modules Tree, and start the GRASS shell at the top of the list.  &lt;br /&gt;
* Enter '''g.region res=25''' to set the grid resolution to 25m.&lt;br /&gt;
* Close the shell.&lt;br /&gt;
&lt;br /&gt;
Now we can start the real work:&lt;br /&gt;
&lt;br /&gt;
* Click on the Modules List tab, and type &amp;quot;v.surf.rst&amp;quot;.  Open the module.&lt;br /&gt;
* Select the layer v_5m_contours as the input map layer.&lt;br /&gt;
* Enter elevation as the output map surface.&lt;br /&gt;
* Click Run.  This process may take a little while.&lt;br /&gt;
* Add the elevation surface to your display.&lt;br /&gt;
&lt;br /&gt;
  You may want to change the way the elevation surface displays using the Symbology options.  &lt;br /&gt;
&lt;br /&gt;
Now that we have an elevation surface, we can derive a lot of other information.  First we will make it look better though.  &lt;br /&gt;
&lt;br /&gt;
* Click on the Modules List tab, and type '''r.slope'''.&lt;br /&gt;
* Choose the r.slope.aspect.aspect module.&lt;br /&gt;
* Enter the name of the output map as '''relief'''.&lt;br /&gt;
* Run and add the layer.&lt;br /&gt;
&lt;br /&gt;
 Set this layer to about 50% transparency for a pleasing effect.&lt;br /&gt;
&lt;br /&gt;
A new 32 storey shopping mall and conference centre is being proposed for development.  The residents are upset that it will dominate the skyline.  The architect says that it will be &amp;quot;bold and pleasing&amp;quot;.  How can we tell how visible it is going to be?&lt;br /&gt;
&lt;br /&gt;
* Select the r.los module.&lt;br /&gt;
* Enter the coordinates of the proposed mall:&lt;br /&gt;
* Enter the height as 165.&lt;br /&gt;
* Enter 25000 as the maximum distance.&lt;br /&gt;
* Enter elev_shade165 as the output surface name.&lt;br /&gt;
* Run and view the surface to see where the development will be visible from.&lt;br /&gt;
&lt;br /&gt;
Now you try - change the height of the building to what you feel is reasonable, and see what difference it makes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Finding a home'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Select the v.extract.where module.&lt;br /&gt;
&lt;br /&gt;
* Select '''land_use''' as the input map layer.&lt;br /&gt;
&lt;br /&gt;
* Enter '''landuse like Park OR landuse like Botanical Garden OR Bird sanctuary'''&lt;br /&gt;
&lt;br /&gt;
* Enter '''open_space''' as the output map layer name.&lt;br /&gt;
&lt;br /&gt;
* Run and view the output.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now you have extracted open areas suitable for children.  Buffer these to a distance of 3km using v.buffer.  Then use the v.to.rast.constant module to convert this vector layer to a raster surface '''r_open_space'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
West to north-west facing areas will suit our young family.  A '''mask''' needs to be set up to include only suitable aspects. GRASS recognises the raster named MASK for this.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* You can use the visual mapcalc interface to set up an expression or enter the expression:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 r.mapcalc 'MASK=(((relief@Analysis&amp;lt;315)&amp;amp;&amp;amp;(relief@Analysis&amp;gt;=270)))'&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Now use the simple mapcalculator r.mapcalculator.  Enter open_space as the first layer and '''aspect''' as the second layer.&lt;br /&gt;
&lt;br /&gt;
* Use the formula A*B.&lt;br /&gt;
&lt;br /&gt;
* Run and display the output.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These are the places where are young family should look first to be happy in their new home!&lt;br /&gt;
&lt;br /&gt;
== Audience Selections ==&lt;br /&gt;
&lt;br /&gt;
Tell us what else you'd like to try.&lt;br /&gt;
&lt;br /&gt;
== Show off session ==&lt;br /&gt;
&lt;br /&gt;
Here we can do some whizz bang demo stuff that we don't have time to do in  workshop format but that will give you some hints as to what else can be achieved.&lt;br /&gt;
&lt;br /&gt;
e.g. Terrain modelling and drapes.&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
Questions and answers.  What you can do next.  Resources.  Possibly some in-depth examples based on frequent questions.  What would you like to see at future workshops?&lt;br /&gt;
&lt;br /&gt;
== Possible Extras ==&lt;br /&gt;
*Introduction to the Python console&lt;br /&gt;
*The Python API&lt;br /&gt;
&lt;br /&gt;
==Your assessment of the workshop==&lt;br /&gt;
&lt;br /&gt;
Tell us what you thought!&lt;br /&gt;
&lt;br /&gt;
PS: Where to get free spatial data? Surveys and Mapping, Demarcation Board, OpenStreetMap, GPS, etc. Check out [[South_African_Geodata]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Africa]]&lt;/div&gt;</summary>
		<author><name>Wiki-Brendonwp</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=AfricaEvents27June2009&amp;diff=39402</id>
		<title>AfricaEvents27June2009</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=AfricaEvents27June2009&amp;diff=39402"/>
		<updated>2009-06-26T16:42:41Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Brendonwp: /* GRASS Analysis in QGIS- Brendon */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;...back to [[Africa_Local_Chapter]]&lt;br /&gt;
&lt;br /&gt;
'''Introduction to QGIS'''&lt;br /&gt;
&lt;br /&gt;
= What? =&lt;br /&gt;
&lt;br /&gt;
Our second OSGeo local chapter meet up! We will chew the cud, show you some cool stuff and start to get people familiar with the brilliant FOSS GeoSpatial products out there, specifically QGIS on this occasion!&lt;br /&gt;
&lt;br /&gt;
We'll go through installing QGIS and getting it to a point where you can have fun (and get your job done) with it. &lt;br /&gt;
&lt;br /&gt;
= How Much? =&lt;br /&gt;
&lt;br /&gt;
There will be a door charge of R250 to cover costs, lunch and refreshments. That and an open mind are all you need to bring. &lt;br /&gt;
&lt;br /&gt;
= Where? =&lt;br /&gt;
&lt;br /&gt;
 St Davids Marist Inanda College&lt;br /&gt;
 36 Rivonia Rd&lt;br /&gt;
 Inanda&lt;br /&gt;
 Sandton&lt;br /&gt;
[http://www.stdavids.co.za/about_directions.asp Map and Directions]&lt;br /&gt;
&lt;br /&gt;
NB: We'll be in the Prep School computer lab.&lt;br /&gt;
&lt;br /&gt;
= When? =&lt;br /&gt;
&lt;br /&gt;
* Saturday June 27th 2009&lt;br /&gt;
* 08h30 to 15h30&lt;br /&gt;
* includes lunch and refreshments&lt;br /&gt;
&lt;br /&gt;
= Who =&lt;br /&gt;
&lt;br /&gt;
Your friendly presenters for the day will be:&lt;br /&gt;
&lt;br /&gt;
* '''Tim Sutton''' (tim at linfiniti.com) - QGIS hacker and FOSS GIS junkie extraordinaire. Tim eats Weetbix for breakfast because it sounds like Linux. He once rewrote Nkosi Sikelela in C++ because he was feeling patriotic.&lt;br /&gt;
* '''Graeme McFerren''' - (graeme.mcferren at gmail.com) - GIS researcher and FOSS4G user. Mmm, aspire to be like Tim then.&lt;br /&gt;
* '''Gavin Fleming''' (gavinjfleming at gmail dot com) - I enjoy my daily FOSS4G fix. I'm a 'geoinformation scientist' at Mintek and love to see cutting edge and useful geospatial applications emerging, especially when they're based on FOSS. &lt;br /&gt;
* '''Brendon Wolff-Piggott''' - (brendon at integratedgeodata.co.za) - Water resources consultant and FOSS GIS enthusiast.  I wish there were more hours in the day to keep up with FOSS4G!&lt;br /&gt;
&lt;br /&gt;
= RSVP =&lt;br /&gt;
Let gavinjfleming at gmail dot com know if you're coming as numbers are limited. &lt;br /&gt;
&lt;br /&gt;
= Programme and notes =&lt;br /&gt;
&lt;br /&gt;
* Be there in time for a 8h30 start&lt;br /&gt;
* Computers are provided. All you need to bring is R250!&lt;br /&gt;
* It doesn't matter what level you are.&lt;br /&gt;
* The programme is subject to change and participant input right to the last minute!&lt;br /&gt;
&lt;br /&gt;
== Intro to the QGIS project - Tim ==&lt;br /&gt;
&lt;br /&gt;
== First tour of the User Interface - Brendon ==&lt;br /&gt;
&lt;br /&gt;
== Advanced symbolisation - the renderer types, labelling and map actions - Brendon ==&lt;br /&gt;
&lt;br /&gt;
Loading and viewing data - common data formats, symbolisation.  Tips and tricks to enhance image display.&lt;br /&gt;
&lt;br /&gt;
== Making your first project - Graeme ==&lt;br /&gt;
&lt;br /&gt;
- adding layers and saving a project&lt;br /&gt;
&lt;br /&gt;
== Map Production - Gavin ==&lt;br /&gt;
&lt;br /&gt;
* Tea&lt;br /&gt;
&lt;br /&gt;
==Data capture - editing local and PostGIS datasources - Tim==&lt;br /&gt;
&lt;br /&gt;
==Projection basics - Gavin==&lt;br /&gt;
&lt;br /&gt;
* Lunch &lt;br /&gt;
&lt;br /&gt;
==QGIS plugins - Graeme==&lt;br /&gt;
&lt;br /&gt;
=== QGIS and Web GIS WMS and WFS clients - Graeme ===&lt;br /&gt;
&lt;br /&gt;
== Advanced analysis with QGIS ==&lt;br /&gt;
&lt;br /&gt;
===Plugins - Carson Farmer's plugins with R, etc - Gavin===&lt;br /&gt;
&lt;br /&gt;
* break&lt;br /&gt;
&lt;br /&gt;
=== GRASS Analysis in QGIS- Brendon ===&lt;br /&gt;
GRASS is a sophisticated standalone GIS package which can also be accessed through QGIS. It installs with QGIS by default.  If you don't see a toolbar with grass stalk icons, you may need to add it from the plugin manager:&lt;br /&gt;
&lt;br /&gt;
Plugins/Manage plugins/GRASS&lt;br /&gt;
&lt;br /&gt;
This places a new toolbar on your QGIS interface.  Click on the first icon (the folder with a grass stalk) to open the prepared GRASS mapset, which is a collection of maps.  &lt;br /&gt;
&lt;br /&gt;
There are three entries needed in the box that opens up: &lt;br /&gt;
&lt;br /&gt;
o Gisdbase&lt;br /&gt;
o Location&lt;br /&gt;
o Mapset&lt;br /&gt;
&lt;br /&gt;
These should be set to:&lt;br /&gt;
o home/tim/Grassdata&lt;br /&gt;
o training_jhb&lt;br /&gt;
o analysis&lt;br /&gt;
&lt;br /&gt;
Then click OK to open the mapset.&lt;br /&gt;
&lt;br /&gt;
Ask for help from one of the presenters if making these choices is confusing &lt;br /&gt;
for any reason. &lt;br /&gt;
&lt;br /&gt;
Once this is done, you may use the icons with the '+' symbol to add vector &lt;br /&gt;
and raster maps from the GRASS database.  You may use the QGIS context-sensitive menu (right-click) to remove layers if you do not want to see them.&lt;br /&gt;
&lt;br /&gt;
* Now open the prepared QGIS project analysis.qgs to see many of the map layers available in GRASS. We are going to use the GRASS toolbox to find answers to some questions that GIS can help us with.&lt;br /&gt;
&lt;br /&gt;
Click on the tools icon on the GRASS toolbar to open the GRASS tools window. &lt;br /&gt;
&lt;br /&gt;
It has three tabs at the top:&lt;br /&gt;
o Modules Tree, which has a list of GRASS modules grouped according to their function, rather like a Windows Explorer view of directories.&lt;br /&gt;
o Modules List, which has a long list of modules.  Type the beginning of a modules name in the box at the bottom to find it rapidly.&lt;br /&gt;
o Browser, which shows you the GRASS map layers grouped into raster and vector groups.&lt;br /&gt;
&lt;br /&gt;
* If you pick a map layer in the pane on the left, you will see descriptive &lt;br /&gt;
information about the layer in the pane on the right.  Try this with raster&lt;br /&gt;
and vector layers, and notice that the information given is different for the &lt;br /&gt;
two types.  &lt;br /&gt;
&lt;br /&gt;
You can leave the GRASS Tools window open while you are working with QGIS.   &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Why is it so noisy here?'''&lt;br /&gt;
&lt;br /&gt;
At the end of a long day, you want to put your feet up and relax.  But the noise from the freeway just never stops!  How many houses in the area are close enough to a major road to be badly affected by noise?&lt;br /&gt;
&lt;br /&gt;
The noise from the freeway will travel further than the noise from a suburban &lt;br /&gt;
road. Luckily, we already have distances entered against types of road in the Roads map layer.&lt;br /&gt;
&lt;br /&gt;
* Open the attribute table and have a look.&lt;br /&gt;
&lt;br /&gt;
* To start the analysis, go to the modules tree and select the module Buffer, under:&lt;br /&gt;
&lt;br /&gt;
  Vector -&amp;gt; Spatial analysis&lt;br /&gt;
&lt;br /&gt;
Another tab will open to allow you to run the Buffer module.&lt;br /&gt;
&lt;br /&gt;
* Select the map layer Roads as input.  &lt;br /&gt;
&lt;br /&gt;
......  go to Linux for other detail:&lt;br /&gt;
select attrib for Buffer&lt;br /&gt;
  &lt;br /&gt;
* Enter Roads_buffer as the name of the output layer.&lt;br /&gt;
&lt;br /&gt;
* Then press Run. &lt;br /&gt;
&lt;br /&gt;
The progress bar at the bottom will show you how much longer you have to wait.  When it is finished, click on View output to show the result in QGIS. &lt;br /&gt;
&lt;br /&gt;
See how the buffers are wider around the freeway than around the main roads.&lt;br /&gt;
&lt;br /&gt;
Tip: You can close the tab for the module using the Close button next to View output.&lt;br /&gt;
&lt;br /&gt;
Now we want to see how many houses are affected.  We have the erven outlines rather than houses, but it will be a good approximation.&lt;br /&gt;
&lt;br /&gt;
* Click on the Modules List tab, and type &amp;quot;v.select&amp;quot; at the bottom.  The v.select.overlap module should appear at the top.  Click on the module name to open it.&lt;br /&gt;
&lt;br /&gt;
* Select Erven as the first input map layer.&lt;br /&gt;
&lt;br /&gt;
* Select Roads_buffer as the second input map layer.&lt;br /&gt;
&lt;br /&gt;
* Enter Erven_noise as the output map layer.&lt;br /&gt;
&lt;br /&gt;
* Click on Run, and View output.&lt;br /&gt;
 &lt;br /&gt;
This will show you all erven overlapping the noise buffer that we created.  &lt;br /&gt;
&lt;br /&gt;
* Open the attribute table and scroll down to the bottom to see how many houses are affected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 You might want to use the Group option in the Layer Manager after doing an analysis, so that you can keep the results together.  Move the group to the bottom of the Layer Manager when you are finished with it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''I can see you!'''&lt;br /&gt;
&lt;br /&gt;
The way noise travels depends on a lot of things apart from distance.  One of these is changes in height.  We are going to generate an elevation surface (raster) to help us in our work.&lt;br /&gt;
&lt;br /&gt;
Raster layers need to have their extent and grid size defined before we start.&lt;br /&gt;
&lt;br /&gt;
* Click on the Modules List tab, and type &amp;quot;g.region.multiple.vector&amp;quot;.  Enter one vector layer, v_5m_contours.&lt;br /&gt;
* Now open the Modules Tree, and start the GRASS shell at the top of the list.  &lt;br /&gt;
* Enter '''g.region res=25''' to set the grid resolution to 25m.&lt;br /&gt;
* Close the shell.&lt;br /&gt;
&lt;br /&gt;
Now we can start the real work:&lt;br /&gt;
&lt;br /&gt;
* Click on the Modules List tab, and type &amp;quot;v.surf.rst&amp;quot;.  Open the module.&lt;br /&gt;
* Select the layer v_5m_contours as the input map layer.&lt;br /&gt;
* Enter elevation as the output map surface.&lt;br /&gt;
* Click Run.  This process may take a little while.&lt;br /&gt;
* Add the elevation surface to your display.&lt;br /&gt;
&lt;br /&gt;
  You may want to change the way the elevation surface displays using the Symbology options.  &lt;br /&gt;
&lt;br /&gt;
Now that we have an elevation surface, we can derive a lot of other information.  First we will make it look better though.  &lt;br /&gt;
&lt;br /&gt;
* Click on the Modules List tab, and type '''r.slope'''.&lt;br /&gt;
* Choose the r.slope.aspect.aspect module.&lt;br /&gt;
* Enter the name of the output map as '''relief'''.&lt;br /&gt;
* Run and add the layer.&lt;br /&gt;
&lt;br /&gt;
 Set this layer to about 50% transparency for a pleasing effect.&lt;br /&gt;
&lt;br /&gt;
A new 32 storey shopping mall and conference centre is being proposed for development.  The residents are upset that it will dominate the skyline.  The architect says that it will be &amp;quot;bold and pleasing&amp;quot;.  How can we tell how visible it is going to be?&lt;br /&gt;
&lt;br /&gt;
* Select the r.los module.&lt;br /&gt;
* Enter the coordinates of the proposed mall:&lt;br /&gt;
* Enter the height as 165.&lt;br /&gt;
* Enter 25000 as the maximum distance.&lt;br /&gt;
* Enter elev_shade165 as the output surface name.&lt;br /&gt;
* Run and view the surface to see where the development will be visible from.&lt;br /&gt;
&lt;br /&gt;
Now you try - change the height of the building to what you feel is reasonable, and see what difference it makes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Finding a home'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Select the v.extract.where module.&lt;br /&gt;
&lt;br /&gt;
* Select '''land_use''' as the input map layer.&lt;br /&gt;
&lt;br /&gt;
* Enter '''landuse like Park OR landuse like Botanical Garden OR Bird sanctuary'''&lt;br /&gt;
&lt;br /&gt;
* Enter '''open_space''' as the output map layer name.&lt;br /&gt;
&lt;br /&gt;
* Run and view the output.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now you have extracted open areas suitable for children.  Buffer these to a distance of 3km using v.buffer.  Then use the v.to.rast.constant module to convert this vector layer to a raster surface '''r_open_space'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
West to north-west facing areas will suit our young family.  A '''mask''' needs to be set up to include only suitable aspects. GRASS recognises the raster named MASK for this.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* You can use the visual mapcalc interface to set up an expression or enter the expression:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 r.mapcalc 'MASK=(((relief@Analysis&amp;lt;315)&amp;amp;&amp;amp;(relief@Analysis&amp;gt;=270)))'&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Now use the simple mapcalculator r.mapcalculator.  Enter open_space as the first layer and '''aspect''' as the second layer.&lt;br /&gt;
&lt;br /&gt;
* Use the formula A*B.&lt;br /&gt;
&lt;br /&gt;
* Run and display the output.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
These are the places where are young family should look first to be happy in their new home!&lt;br /&gt;
&lt;br /&gt;
== Audience Selections ==&lt;br /&gt;
&lt;br /&gt;
Tell us what else you'd like to try.&lt;br /&gt;
&lt;br /&gt;
== Show off session ==&lt;br /&gt;
&lt;br /&gt;
Here we can do some whizz bang demo stuff that we don't have time to do in  workshop format but that will give you some hints as to what else can be achieved.&lt;br /&gt;
&lt;br /&gt;
e.g. Terrain modelling and drapes.&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
Questions and answers.  What you can do next.  Resources.  Possibly some in-depth examples based on frequent questions.  What would you like to see at future workshops?&lt;br /&gt;
&lt;br /&gt;
== Possible Extras ==&lt;br /&gt;
*Introduction to the Python console&lt;br /&gt;
*The Python API&lt;br /&gt;
&lt;br /&gt;
==Your assessment of the workshop==&lt;br /&gt;
&lt;br /&gt;
Tell us what you thought!&lt;br /&gt;
&lt;br /&gt;
PS: Where to get free spatial data? Surveys and Mapping, Demarcation Board, OpenStreetMap, GPS, etc. Check out [[South_African_Geodata]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Africa]]&lt;/div&gt;</summary>
		<author><name>Wiki-Brendonwp</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=AfricaEvents27June2009&amp;diff=39397</id>
		<title>AfricaEvents27June2009</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=AfricaEvents27June2009&amp;diff=39397"/>
		<updated>2009-06-26T14:28:48Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Brendonwp: /* GRASS Analysis in QGIS- Brendon */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;...back to [[Africa_Local_Chapter]]&lt;br /&gt;
&lt;br /&gt;
'''Introduction to QGIS'''&lt;br /&gt;
&lt;br /&gt;
= What? =&lt;br /&gt;
&lt;br /&gt;
Our second OSGeo local chapter meet up! We will chew the cud, show you some cool stuff and start to get people familiar with the brilliant FOSS GeoSpatial products out there, specifically QGIS on this occasion!&lt;br /&gt;
&lt;br /&gt;
We'll go through installing QGIS and getting it to a point where you can have fun (and get your job done) with it. &lt;br /&gt;
&lt;br /&gt;
= How Much? =&lt;br /&gt;
&lt;br /&gt;
There will be a door charge of R250 to cover costs, lunch and refreshments. That and an open mind are all you need to bring. &lt;br /&gt;
&lt;br /&gt;
= Where? =&lt;br /&gt;
&lt;br /&gt;
 St Davids Marist Inanda College&lt;br /&gt;
 36 Rivonia Rd&lt;br /&gt;
 Inanda&lt;br /&gt;
 Sandton&lt;br /&gt;
[http://www.stdavids.co.za/about_directions.asp Map and Directions]&lt;br /&gt;
&lt;br /&gt;
NB: We'll be in the Prep School computer lab.&lt;br /&gt;
&lt;br /&gt;
= When? =&lt;br /&gt;
&lt;br /&gt;
* Saturday June 27th 2009&lt;br /&gt;
* 08h30 to 15h30&lt;br /&gt;
* includes lunch and refreshments&lt;br /&gt;
&lt;br /&gt;
= Who =&lt;br /&gt;
&lt;br /&gt;
Your friendly presenters for the day will be:&lt;br /&gt;
&lt;br /&gt;
* '''Tim Sutton''' (tim at linfiniti.com) - QGIS hacker and FOSS GIS junkie extraordinaire. Tim eats Weetbix for breakfast because it sounds like Linux. He once rewrote Nkosi Sikelela in C++ because he was feeling patriotic.&lt;br /&gt;
* '''Graeme McFerren''' - (graeme.mcferren at gmail.com) - GIS researcher and FOSS4G user. Mmm, aspire to be like Tim then.&lt;br /&gt;
* '''Gavin Fleming''' (gavinjfleming at gmail dot com) - I enjoy my daily FOSS4G fix. I'm a 'geoinformation scientist' at Mintek and love to see cutting edge and useful geospatial applications emerging, especially when they're based on FOSS. &lt;br /&gt;
* '''Brendon Wolff-Piggott''' - (brendon at integratedgeodata.co.za) - Water resources consultant and FOSS GIS enthusiast.  I wish there were more hours in the day to keep up with FOSS4G!&lt;br /&gt;
&lt;br /&gt;
= RSVP =&lt;br /&gt;
Let gavinjfleming at gmail dot com know if you're coming as numbers are limited. &lt;br /&gt;
&lt;br /&gt;
= Programme and notes =&lt;br /&gt;
&lt;br /&gt;
* Be there in time for a 8h30 start&lt;br /&gt;
* Computers are provided. All you need to bring is R250!&lt;br /&gt;
* It doesn't matter what level you are.&lt;br /&gt;
* The programme is subject to change and participant input right to the last minute!&lt;br /&gt;
&lt;br /&gt;
== Intro to the QGIS project - Tim ==&lt;br /&gt;
&lt;br /&gt;
== First tour of the User Interface - Brendon ==&lt;br /&gt;
&lt;br /&gt;
== Advanced symbolisation - the renderer types, labelling and map actions - Brendon ==&lt;br /&gt;
&lt;br /&gt;
Loading and viewing data - common data formats, symbolisation.  Tips and tricks to enhance image display.&lt;br /&gt;
&lt;br /&gt;
== Making your first project - Graeme ==&lt;br /&gt;
&lt;br /&gt;
- adding layers and saving a project&lt;br /&gt;
&lt;br /&gt;
== Map Production - Gavin ==&lt;br /&gt;
&lt;br /&gt;
* Tea&lt;br /&gt;
&lt;br /&gt;
==Data capture - editing local and PostGIS datasources - Tim==&lt;br /&gt;
&lt;br /&gt;
==Projection basics - Gavin==&lt;br /&gt;
&lt;br /&gt;
* Lunch &lt;br /&gt;
&lt;br /&gt;
==QGIS plugins - Graeme==&lt;br /&gt;
&lt;br /&gt;
=== QGIS and Web GIS WMS and WFS clients - Graeme ===&lt;br /&gt;
&lt;br /&gt;
== Advanced analysis with QGIS ==&lt;br /&gt;
&lt;br /&gt;
===Plugins - Carson Farmer's plugins with R, etc - Gavin===&lt;br /&gt;
&lt;br /&gt;
* break&lt;br /&gt;
&lt;br /&gt;
=== GRASS Analysis in QGIS- Brendon ===&lt;br /&gt;
GRASS is a sophisticated standalone GIS package which can also be accessed through QGIS. It installs with QGIS by default.  If you don't see a toolbar with grass stalk icons, you may need to add it from the plugin manager:&lt;br /&gt;
&lt;br /&gt;
Plugins/Manage plugins/GRASS&lt;br /&gt;
&lt;br /&gt;
This places a new toolbar on your QGIS interface.  Click on the first icon (the folder with a grass stalk) to open the prepared GRASS mapset, which is a collection of maps.  &lt;br /&gt;
&lt;br /&gt;
There are three entries needed in the box that opens up: &lt;br /&gt;
&lt;br /&gt;
o Gisdbase&lt;br /&gt;
o Location&lt;br /&gt;
o Mapset&lt;br /&gt;
&lt;br /&gt;
These should be set to:&lt;br /&gt;
o home/tim/Grassdata&lt;br /&gt;
o training_jhb&lt;br /&gt;
o analysis&lt;br /&gt;
&lt;br /&gt;
Then click OK to open the mapset.&lt;br /&gt;
&lt;br /&gt;
Ask for help from one of the presenters if making these choices is confusing &lt;br /&gt;
for any reason. &lt;br /&gt;
&lt;br /&gt;
Once this is done, you may use the icons with the '+' symbol to add vector &lt;br /&gt;
and raster maps from the GRASS database.  You may use the QGIS context-sensitive menu (right-click) to remove layers if you do not want to see them.&lt;br /&gt;
&lt;br /&gt;
* Now open the prepared QGIS project analysis.qgs to see many of the map layers available in GRASS. We are going to use the GRASS toolbox to find answers to some questions that GIS can help us with.&lt;br /&gt;
&lt;br /&gt;
Click on the tools icon on the GRASS toolbar to open the GRASS tools window. &lt;br /&gt;
&lt;br /&gt;
It has three tabs at the top:&lt;br /&gt;
o Modules Tree, which has a list of GRASS modules grouped according to their function, rather like a Windows Explorer view of directories.&lt;br /&gt;
o Modules List, which has a long list of modules.  Type the beginning of a modules name in the box at the bottom to find it rapidly.&lt;br /&gt;
o Browser, which shows you the GRASS map layers grouped into raster and vector groups.&lt;br /&gt;
&lt;br /&gt;
* If you pick a map layer in the pane on the left, you will see descriptive &lt;br /&gt;
information about the layer in the pane on the right.  Try this with raster&lt;br /&gt;
and vector layers, and notice that the information given is different for the &lt;br /&gt;
two types.  &lt;br /&gt;
&lt;br /&gt;
You can leave the GRASS Tools window open while you are working with QGIS.   &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Why is it so noisy here?'''&lt;br /&gt;
&lt;br /&gt;
At the end of a long day, you want to put your feet up and relax.  But the noise from the freeway just never stops!  How many houses in the area are close enough to a major road to be badly affected by noise?&lt;br /&gt;
&lt;br /&gt;
The noise from the freeway will travel further than the noise from a suburban &lt;br /&gt;
road. Luckily, we already have distances entered against types of road in the Roads map layer.&lt;br /&gt;
&lt;br /&gt;
* Open the attribute table and have a look.&lt;br /&gt;
&lt;br /&gt;
* To start the analysis, go to the modules tree and select the module Buffer, under:&lt;br /&gt;
&lt;br /&gt;
  Vector -&amp;gt; Spatial analysis&lt;br /&gt;
&lt;br /&gt;
Another tab will open to allow you to run the Buffer module.&lt;br /&gt;
&lt;br /&gt;
* Select the map layer Roads as input.  &lt;br /&gt;
&lt;br /&gt;
......  go to Linux for other detail:&lt;br /&gt;
select attrib for Buffer&lt;br /&gt;
  &lt;br /&gt;
* Enter Roads_buffer as the name of the output layer.&lt;br /&gt;
&lt;br /&gt;
* Then press Run. &lt;br /&gt;
&lt;br /&gt;
The progress bar at the bottom will show you how much longer you have to wait.  When it is finished, click on View output to show the result in QGIS. &lt;br /&gt;
&lt;br /&gt;
See how the buffers are wider around the freeway than around the main roads.&lt;br /&gt;
&lt;br /&gt;
Tip: You can close the tab for the module using the Close button next to View output.&lt;br /&gt;
&lt;br /&gt;
Now we want to see how many houses are affected.  We have the erven outlines rather than houses, but it will be a good approximation.&lt;br /&gt;
&lt;br /&gt;
* Click on the Modules List tab, and type &amp;quot;v.select&amp;quot; at the bottom.  The v.select.overlap module should appear at the top.  Click on the module name to open it.&lt;br /&gt;
&lt;br /&gt;
* Select Erven as the first input map layer.&lt;br /&gt;
&lt;br /&gt;
* Select Roads_buffer as the second input map layer.&lt;br /&gt;
&lt;br /&gt;
* Enter Erven_noise as the output map layer.&lt;br /&gt;
&lt;br /&gt;
* Click on Run, and View output.&lt;br /&gt;
 &lt;br /&gt;
This will show you all erven overlapping the noise buffer that we created.  &lt;br /&gt;
&lt;br /&gt;
* Open the attribute table and scroll down to the bottom to see how many houses are affected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 You might want to use the Group option in the Layer Manager after doing an analysis, so that you can keep the results together.  Move the group to the bottom of the Layer Manager when you are finished with it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''I can see you!'''&lt;br /&gt;
&lt;br /&gt;
The way noise travels depends on a lot of things apart from distance.  One of these is changes in height.  We are going to generate an elevation surface (raster) to help us in our work.&lt;br /&gt;
&lt;br /&gt;
Raster layers need to have their extent and grid size defined before we start.&lt;br /&gt;
&lt;br /&gt;
* Click on the Modules List tab, and type &amp;quot;g.region.multiple.vector&amp;quot;.  Enter one vector layer, v_5m_contours.&lt;br /&gt;
* Now open the Modules Tree, and start the GRASS shell at the top of the list.  &lt;br /&gt;
* Enter '''g.region res=25''' to set the grid resolution to 25m.&lt;br /&gt;
* Close the shell.&lt;br /&gt;
&lt;br /&gt;
Now we can start the real work:&lt;br /&gt;
&lt;br /&gt;
* Click on the Modules List tab, and type &amp;quot;v.surf.rst&amp;quot;.  Open the module.&lt;br /&gt;
* Select the layer v_5m_contours as the input map layer.&lt;br /&gt;
* Enter elevation as the output map surface.&lt;br /&gt;
* Click Run.  This process may take a little while.&lt;br /&gt;
* Add the elevation surface to your display.&lt;br /&gt;
&lt;br /&gt;
  You may want to change the way the elevation surface displays using the Symbology options.  &lt;br /&gt;
&lt;br /&gt;
Now that we have an elevation surface, we can derive a lot of other information.  First we will make it look better though.  &lt;br /&gt;
&lt;br /&gt;
* Click on the Modules List tab, and type '''r.slope'''.&lt;br /&gt;
* Choose the r.slope.aspect.aspect module.&lt;br /&gt;
* Enter the name of the output map as '''relief'''.&lt;br /&gt;
* Run and add the layer.&lt;br /&gt;
&lt;br /&gt;
 Set this layer to about 50% transparency for a pleasing effect.&lt;br /&gt;
&lt;br /&gt;
A new 32 storey shopping mall and conference centre is being proposed for development.  The residents are upset that it will dominate the skyline.  The architect says that it will be &amp;quot;bold and pleasing&amp;quot;.  How can we tell how visible it is going to be?&lt;br /&gt;
&lt;br /&gt;
* Select the r.los module.&lt;br /&gt;
* Enter the coordinates of the proposed mall:&lt;br /&gt;
* Enter the height as 165.&lt;br /&gt;
* Enter 25000 as the maximum distance.&lt;br /&gt;
* Enter elev_shade165 as the output surface name.&lt;br /&gt;
* Run and view the surface to see where the development will be visible from.&lt;br /&gt;
&lt;br /&gt;
Now you try - change the height of the building to what you feel is reasonable, and see what difference it makes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Finding a home'''&lt;br /&gt;
&lt;br /&gt;
== Audience Selections ==&lt;br /&gt;
&lt;br /&gt;
Tell us what else you'd like to try.&lt;br /&gt;
&lt;br /&gt;
== Show off session ==&lt;br /&gt;
&lt;br /&gt;
Here we can do some whizz bang demo stuff that we don't have time to do in  workshop format but that will give you some hints as to what else can be achieved.&lt;br /&gt;
&lt;br /&gt;
e.g. Terrain modelling and drapes.&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
Questions and answers.  What you can do next.  Resources.  Possibly some in-depth examples based on frequent questions.  What would you like to see at future workshops?&lt;br /&gt;
&lt;br /&gt;
== Possible Extras ==&lt;br /&gt;
*Introduction to the Python console&lt;br /&gt;
*The Python API&lt;br /&gt;
&lt;br /&gt;
==Your assessment of the workshop==&lt;br /&gt;
&lt;br /&gt;
Tell us what you thought!&lt;br /&gt;
&lt;br /&gt;
PS: Where to get free spatial data? Surveys and Mapping, Demarcation Board, OpenStreetMap, GPS, etc. Check out [[South_African_Geodata]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Africa]]&lt;/div&gt;</summary>
		<author><name>Wiki-Brendonwp</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=AfricaEvents27June2009&amp;diff=39396</id>
		<title>AfricaEvents27June2009</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=AfricaEvents27June2009&amp;diff=39396"/>
		<updated>2009-06-26T14:27:49Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Brendonwp: /* GRASS - Brendon */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;...back to [[Africa_Local_Chapter]]&lt;br /&gt;
&lt;br /&gt;
'''Introduction to QGIS'''&lt;br /&gt;
&lt;br /&gt;
= What? =&lt;br /&gt;
&lt;br /&gt;
Our second OSGeo local chapter meet up! We will chew the cud, show you some cool stuff and start to get people familiar with the brilliant FOSS GeoSpatial products out there, specifically QGIS on this occasion!&lt;br /&gt;
&lt;br /&gt;
We'll go through installing QGIS and getting it to a point where you can have fun (and get your job done) with it. &lt;br /&gt;
&lt;br /&gt;
= How Much? =&lt;br /&gt;
&lt;br /&gt;
There will be a door charge of R250 to cover costs, lunch and refreshments. That and an open mind are all you need to bring. &lt;br /&gt;
&lt;br /&gt;
= Where? =&lt;br /&gt;
&lt;br /&gt;
 St Davids Marist Inanda College&lt;br /&gt;
 36 Rivonia Rd&lt;br /&gt;
 Inanda&lt;br /&gt;
 Sandton&lt;br /&gt;
[http://www.stdavids.co.za/about_directions.asp Map and Directions]&lt;br /&gt;
&lt;br /&gt;
NB: We'll be in the Prep School computer lab.&lt;br /&gt;
&lt;br /&gt;
= When? =&lt;br /&gt;
&lt;br /&gt;
* Saturday June 27th 2009&lt;br /&gt;
* 08h30 to 15h30&lt;br /&gt;
* includes lunch and refreshments&lt;br /&gt;
&lt;br /&gt;
= Who =&lt;br /&gt;
&lt;br /&gt;
Your friendly presenters for the day will be:&lt;br /&gt;
&lt;br /&gt;
* '''Tim Sutton''' (tim at linfiniti.com) - QGIS hacker and FOSS GIS junkie extraordinaire. Tim eats Weetbix for breakfast because it sounds like Linux. He once rewrote Nkosi Sikelela in C++ because he was feeling patriotic.&lt;br /&gt;
* '''Graeme McFerren''' - (graeme.mcferren at gmail.com) - GIS researcher and FOSS4G user. Mmm, aspire to be like Tim then.&lt;br /&gt;
* '''Gavin Fleming''' (gavinjfleming at gmail dot com) - I enjoy my daily FOSS4G fix. I'm a 'geoinformation scientist' at Mintek and love to see cutting edge and useful geospatial applications emerging, especially when they're based on FOSS. &lt;br /&gt;
* '''Brendon Wolff-Piggott''' - (brendon at integratedgeodata.co.za) - Water resources consultant and FOSS GIS enthusiast.  I wish there were more hours in the day to keep up with FOSS4G!&lt;br /&gt;
&lt;br /&gt;
= RSVP =&lt;br /&gt;
Let gavinjfleming at gmail dot com know if you're coming as numbers are limited. &lt;br /&gt;
&lt;br /&gt;
= Programme and notes =&lt;br /&gt;
&lt;br /&gt;
* Be there in time for a 8h30 start&lt;br /&gt;
* Computers are provided. All you need to bring is R250!&lt;br /&gt;
* It doesn't matter what level you are.&lt;br /&gt;
* The programme is subject to change and participant input right to the last minute!&lt;br /&gt;
&lt;br /&gt;
== Intro to the QGIS project - Tim ==&lt;br /&gt;
&lt;br /&gt;
== First tour of the User Interface - Brendon ==&lt;br /&gt;
&lt;br /&gt;
== Advanced symbolisation - the renderer types, labelling and map actions - Brendon ==&lt;br /&gt;
&lt;br /&gt;
Loading and viewing data - common data formats, symbolisation.  Tips and tricks to enhance image display.&lt;br /&gt;
&lt;br /&gt;
== Making your first project - Graeme ==&lt;br /&gt;
&lt;br /&gt;
- adding layers and saving a project&lt;br /&gt;
&lt;br /&gt;
== Map Production - Gavin ==&lt;br /&gt;
&lt;br /&gt;
* Tea&lt;br /&gt;
&lt;br /&gt;
==Data capture - editing local and PostGIS datasources - Tim==&lt;br /&gt;
&lt;br /&gt;
==Projection basics - Gavin==&lt;br /&gt;
&lt;br /&gt;
* Lunch &lt;br /&gt;
&lt;br /&gt;
==QGIS plugins - Graeme==&lt;br /&gt;
&lt;br /&gt;
=== QGIS and Web GIS WMS and WFS clients - Graeme ===&lt;br /&gt;
&lt;br /&gt;
== Advanced analysis with QGIS ==&lt;br /&gt;
&lt;br /&gt;
===Plugins - Carson Farmer's plugins with R, etc - Gavin===&lt;br /&gt;
&lt;br /&gt;
* break&lt;br /&gt;
&lt;br /&gt;
=== GRASS Analysis in QGIS- Brendon ===&lt;br /&gt;
GRASS is a sophisticated standalone GIS package which can also be accessed through QGIS. It installs with QGIS by default.  If you don't see a toolbar with grass stalk icons, you may need to add it from the plugin manager:&lt;br /&gt;
&lt;br /&gt;
Plugins/Manage plugins/GRASS&lt;br /&gt;
&lt;br /&gt;
This places a new toolbar on your QGIS interface.  Click on the first icon (the folder with a grass stalk) to open the prepared GRASS mapset, which is a collection of maps.  &lt;br /&gt;
&lt;br /&gt;
There are three entries needed in the box that opens up: &lt;br /&gt;
&lt;br /&gt;
o Gisdbase&lt;br /&gt;
o Location&lt;br /&gt;
o Mapset&lt;br /&gt;
&lt;br /&gt;
These should be set to:&lt;br /&gt;
o home/tim/Grassdata&lt;br /&gt;
o training_jhb&lt;br /&gt;
o analysis&lt;br /&gt;
&lt;br /&gt;
Then click OK to open the mapset.&lt;br /&gt;
&lt;br /&gt;
Ask for help from one of the presenters if making these choices is confusing &lt;br /&gt;
for any reason. &lt;br /&gt;
&lt;br /&gt;
Once this is done, you may use the icons with the '+' symbol to add vector &lt;br /&gt;
and raster maps from the GRASS database.  You may use the QGIS context-sensitive menu (right-click) to remove layers if you do not want to see them.&lt;br /&gt;
&lt;br /&gt;
* Now open the prepared QGIS project analysis.qgs to see many of the map layers available in GRASS. We are going to use the GRASS toolbox to find answers to some questions that GIS can help us with.&lt;br /&gt;
&lt;br /&gt;
Click on the tools icon on the GRASS toolbar to open the GRASS tools window. &lt;br /&gt;
&lt;br /&gt;
It has three tabs at the top:&lt;br /&gt;
o Modules Tree, which has a list of GRASS modules grouped according to their function, rather like a Windows Explorer view of directories.&lt;br /&gt;
o Modules List, which has a long list of modules.  Type the beginning of a modules name in the box at the bottom to find it rapidly.&lt;br /&gt;
o Browser, which shows you the GRASS map layers grouped into raster and vector groups.&lt;br /&gt;
&lt;br /&gt;
* If you pick a map layer in the pane on the left, you will see descriptive &lt;br /&gt;
information about the layer in the pane on the right.  Try this with raster&lt;br /&gt;
and vector layers, and notice that the information given is different for the &lt;br /&gt;
two types.  &lt;br /&gt;
&lt;br /&gt;
You can leave the GRASS Tools window open while you are working with QGIS.   &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Why is it so noisy here?'''&lt;br /&gt;
&lt;br /&gt;
At the end of a long day, you want to put your feet up and relax.  But the noise from the freeway just never stops!  How many houses in the area are close enough to a major road to be badly affected by noise?&lt;br /&gt;
&lt;br /&gt;
The noise from the freeway will travel further than the noise from a suburban &lt;br /&gt;
road. Luckily, we already have distances entered against types of road in the Roads map layer.&lt;br /&gt;
&lt;br /&gt;
* Open the attribute table and have a look.&lt;br /&gt;
&lt;br /&gt;
* To start the analysis, go to the modules tree and select the module Buffer, under:&lt;br /&gt;
&lt;br /&gt;
  Vector -&amp;gt; Spatial analysis&lt;br /&gt;
&lt;br /&gt;
Another tab will open to allow you to run the Buffer module.&lt;br /&gt;
&lt;br /&gt;
* Select the map layer Roads as input.  &lt;br /&gt;
&lt;br /&gt;
......  go to Linux for other detail:&lt;br /&gt;
select attrib for Buffer&lt;br /&gt;
  &lt;br /&gt;
* Enter Roads_buffer as the name of the output layer.&lt;br /&gt;
&lt;br /&gt;
* Then press Run. &lt;br /&gt;
&lt;br /&gt;
The progress bar at the bottom will show you how much longer you have to wait.  When it is finished, click on View output to show the result in QGIS. &lt;br /&gt;
&lt;br /&gt;
See how the buffers are wider around the freeway than around the main roads.&lt;br /&gt;
&lt;br /&gt;
Tip: You can close the tab for the module using the Close button next to View output.&lt;br /&gt;
&lt;br /&gt;
Now we want to see how many houses are affected.  We have the erven outlines rather than houses, but it will be a good approximation.&lt;br /&gt;
&lt;br /&gt;
* Click on the Modules List tab, and type &amp;quot;v.select&amp;quot; at the bottom.  The v.select.overlap module should appear at the top.  Click on the module name to open it.&lt;br /&gt;
&lt;br /&gt;
* Select Erven as the first input map layer.&lt;br /&gt;
&lt;br /&gt;
* Select Roads_buffer as the second input map layer.&lt;br /&gt;
&lt;br /&gt;
* Enter Erven_noise as the output map layer.&lt;br /&gt;
&lt;br /&gt;
* Click on Run, and View output.&lt;br /&gt;
 &lt;br /&gt;
This will show you all erven overlapping the noise buffer that we created.  &lt;br /&gt;
&lt;br /&gt;
* Open the attribute table and scroll down to the bottom to see how many houses are affected.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 You might want to use the Group option in the Layer Manager after doing an analysis, so that you can keep the results together.  Move the group to the bottom of the Layer Manager when you are finished with it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''I can see you!'''&lt;br /&gt;
&lt;br /&gt;
The way noise travels depends on a lot of things apart from distance.  One of these is changes in height.  We are going to generate an elevation surface (raster) to help us in our work.&lt;br /&gt;
&lt;br /&gt;
Raster layers need to have their extent and grid size defined before we start.&lt;br /&gt;
&lt;br /&gt;
* Click on the Modules List tab, and type &amp;quot;g.region.multiple.vector&amp;quot;.  Enter one vector layer, v_5m_contours.&lt;br /&gt;
* Now open the Modules Tree, and start the GRASS shell at the top of the list.  &lt;br /&gt;
* Enter '''g.region res=25''' to set the grid resolution to 25m.&lt;br /&gt;
* Close the shell.&lt;br /&gt;
&lt;br /&gt;
Now we can start the real work:&lt;br /&gt;
&lt;br /&gt;
* Click on the Modules List tab, and type &amp;quot;v.surf.rst&amp;quot;.  Open the module.&lt;br /&gt;
* Select the layer v_5m_contours as the input map layer.&lt;br /&gt;
* Enter elevation as the output map surface.&lt;br /&gt;
* Click Run.  This process may take a little while.&lt;br /&gt;
* Add the elevation surface to your display.&lt;br /&gt;
&lt;br /&gt;
  You may want to change the way the elevation surface displays using the Symbology options.  &lt;br /&gt;
&lt;br /&gt;
Now that we have an elevation surface, we can derive a lot of other information.  First we will make it look better though.  &lt;br /&gt;
&lt;br /&gt;
* Click on the Modules List tab, and type '''r.slope'''.&lt;br /&gt;
* Choose the r.slope.aspect.aspect module.&lt;br /&gt;
* Enter the name of the output map as '''relief'''.&lt;br /&gt;
* Run and add the layer.&lt;br /&gt;
&lt;br /&gt;
 Set this layer to about 50% transparency for a pleasing effect.&lt;br /&gt;
&lt;br /&gt;
A new 32 storey shopping mall and conference centre is being proposed for development.  The residents are upset that it will dominate the skyline.  The architect says that it will be &amp;quot;bold and pleasing&amp;quot;.  How can we tell how visible it is going to be?&lt;br /&gt;
&lt;br /&gt;
* Select the r.los module.&lt;br /&gt;
* Enter the coordinates of the proposed mall:&lt;br /&gt;
* Enter the height as 165.&lt;br /&gt;
* Enter 25000 as the maximum distance.&lt;br /&gt;
* Enter elev_shade165 as the output surface name.&lt;br /&gt;
* Run and view the surface to see where the development will be visible from.&lt;br /&gt;
&lt;br /&gt;
Now you try - change the height of the building to what you feel is reasonable, and see what difference it makes.&lt;br /&gt;
&lt;br /&gt;
== Audience Selections ==&lt;br /&gt;
&lt;br /&gt;
Tell us what else you'd like to try.&lt;br /&gt;
&lt;br /&gt;
== Show off session ==&lt;br /&gt;
&lt;br /&gt;
Here we can do some whizz bang demo stuff that we don't have time to do in  workshop format but that will give you some hints as to what else can be achieved.&lt;br /&gt;
&lt;br /&gt;
e.g. Terrain modelling and drapes.&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
Questions and answers.  What you can do next.  Resources.  Possibly some in-depth examples based on frequent questions.  What would you like to see at future workshops?&lt;br /&gt;
&lt;br /&gt;
== Possible Extras ==&lt;br /&gt;
*Introduction to the Python console&lt;br /&gt;
*The Python API&lt;br /&gt;
&lt;br /&gt;
==Your assessment of the workshop==&lt;br /&gt;
&lt;br /&gt;
Tell us what you thought!&lt;br /&gt;
&lt;br /&gt;
PS: Where to get free spatial data? Surveys and Mapping, Demarcation Board, OpenStreetMap, GPS, etc. Check out [[South_African_Geodata]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Africa]]&lt;/div&gt;</summary>
		<author><name>Wiki-Brendonwp</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=AfricaEvents27June2009&amp;diff=39395</id>
		<title>AfricaEvents27June2009</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=AfricaEvents27June2009&amp;diff=39395"/>
		<updated>2009-06-26T13:42:42Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Brendonwp: /* GRASS - Brendon */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;...back to [[Africa_Local_Chapter]]&lt;br /&gt;
&lt;br /&gt;
'''Introduction to QGIS'''&lt;br /&gt;
&lt;br /&gt;
= What? =&lt;br /&gt;
&lt;br /&gt;
Our second OSGeo local chapter meet up! We will chew the cud, show you some cool stuff and start to get people familiar with the brilliant FOSS GeoSpatial products out there, specifically QGIS on this occasion!&lt;br /&gt;
&lt;br /&gt;
We'll go through installing QGIS and getting it to a point where you can have fun (and get your job done) with it. &lt;br /&gt;
&lt;br /&gt;
= How Much? =&lt;br /&gt;
&lt;br /&gt;
There will be a door charge of R250 to cover costs, lunch and refreshments. That and an open mind are all you need to bring. &lt;br /&gt;
&lt;br /&gt;
= Where? =&lt;br /&gt;
&lt;br /&gt;
 St Davids Marist Inanda College&lt;br /&gt;
 36 Rivonia Rd&lt;br /&gt;
 Inanda&lt;br /&gt;
 Sandton&lt;br /&gt;
[http://www.stdavids.co.za/about_directions.asp Map and Directions]&lt;br /&gt;
&lt;br /&gt;
NB: We'll be in the Prep School computer lab.&lt;br /&gt;
&lt;br /&gt;
= When? =&lt;br /&gt;
&lt;br /&gt;
* Saturday June 27th 2009&lt;br /&gt;
* 08h30 to 15h30&lt;br /&gt;
* includes lunch and refreshments&lt;br /&gt;
&lt;br /&gt;
= Who =&lt;br /&gt;
&lt;br /&gt;
Your friendly presenters for the day will be:&lt;br /&gt;
&lt;br /&gt;
* '''Tim Sutton''' (tim at linfiniti.com) - QGIS hacker and FOSS GIS junkie extraordinaire. Tim eats Weetbix for breakfast because it sounds like Linux. He once rewrote Nkosi Sikelela in C++ because he was feeling patriotic.&lt;br /&gt;
* '''Graeme McFerren''' - (graeme.mcferren at gmail.com) - GIS researcher and FOSS4G user. Mmm, aspire to be like Tim then.&lt;br /&gt;
* '''Gavin Fleming''' (gavinjfleming at gmail dot com) - I enjoy my daily FOSS4G fix. I'm a 'geoinformation scientist' at Mintek and love to see cutting edge and useful geospatial applications emerging, especially when they're based on FOSS. &lt;br /&gt;
* '''Brendon Wolff-Piggott''' - (brendon at integratedgeodata.co.za) - Water resources consultant and FOSS GIS enthusiast.  I wish there were more hours in the day to keep up with FOSS4G!&lt;br /&gt;
&lt;br /&gt;
= RSVP =&lt;br /&gt;
Let gavinjfleming at gmail dot com know if you're coming as numbers are limited. &lt;br /&gt;
&lt;br /&gt;
= Programme and notes =&lt;br /&gt;
&lt;br /&gt;
* Be there in time for a 8h30 start&lt;br /&gt;
* Computers are provided. All you need to bring is R250!&lt;br /&gt;
* It doesn't matter what level you are.&lt;br /&gt;
* The programme is subject to change and participant input right to the last minute!&lt;br /&gt;
&lt;br /&gt;
== Intro to the QGIS project - Tim ==&lt;br /&gt;
&lt;br /&gt;
== First tour of the User Interface - Brendon ==&lt;br /&gt;
&lt;br /&gt;
== Advanced symbolisation - the renderer types, labelling and map actions - Brendon ==&lt;br /&gt;
&lt;br /&gt;
Loading and viewing data - common data formats, symbolisation.  Tips and tricks to enhance image display.&lt;br /&gt;
&lt;br /&gt;
== Making your first project - Graeme ==&lt;br /&gt;
&lt;br /&gt;
- adding layers and saving a project&lt;br /&gt;
&lt;br /&gt;
== Map Production - Gavin ==&lt;br /&gt;
&lt;br /&gt;
* Tea&lt;br /&gt;
&lt;br /&gt;
==Data capture - editing local and PostGIS datasources - Tim==&lt;br /&gt;
&lt;br /&gt;
==Projection basics - Gavin==&lt;br /&gt;
&lt;br /&gt;
* Lunch &lt;br /&gt;
&lt;br /&gt;
==QGIS plugins - Graeme==&lt;br /&gt;
&lt;br /&gt;
=== QGIS and Web GIS WMS and WFS clients - Graeme ===&lt;br /&gt;
&lt;br /&gt;
== Advanced analysis with QGIS ==&lt;br /&gt;
&lt;br /&gt;
===Plugins - Carson Farmer's plugins with R, etc - Gavin===&lt;br /&gt;
&lt;br /&gt;
* break&lt;br /&gt;
&lt;br /&gt;
=== GRASS - Brendon ===&lt;br /&gt;
GRASS is a sophisticated standalone GIS package which can also be accessed through QGIS. It installs with QGIS by default.  If you don't see a toolbar with grass stalk icons, you may need to add it from the plugin manager:&lt;br /&gt;
&lt;br /&gt;
Plugins/Manage plugins/GRASS&lt;br /&gt;
&lt;br /&gt;
This places a new toolbar on your QGIS interface.  Click on the first icon (the folder with a grass stalk) to open the prepared GRASS mapset, which is a collection of maps.  &lt;br /&gt;
&lt;br /&gt;
There are three entries needed in the box that opens up: &lt;br /&gt;
&lt;br /&gt;
o Gisdbase&lt;br /&gt;
o Location&lt;br /&gt;
o Mapset&lt;br /&gt;
&lt;br /&gt;
These should be set to:&lt;br /&gt;
o home/tim/Grassdata&lt;br /&gt;
o training_jhb&lt;br /&gt;
o analysis&lt;br /&gt;
&lt;br /&gt;
Then click OK to open the mapset.&lt;br /&gt;
&lt;br /&gt;
Ask for help from one of the presenters if making these choices is confusing &lt;br /&gt;
for any reason. &lt;br /&gt;
&lt;br /&gt;
Once this is done, you may use the icons with the '+' symbol to add vector &lt;br /&gt;
and raster maps from the GRASS database.  You may use the QGIS context-sensitive menu (right-click) to remove layers if you do not want to see them.&lt;br /&gt;
&lt;br /&gt;
* Now open the prepared QGIS project analysis.qgs to see many of the map layers available in GRASS. We are going to use the GRASS toolbox to find answers to some questions that GIS can help us with.&lt;br /&gt;
&lt;br /&gt;
Click on the tools icon on the GRASS toolbar to open the GRASS tools window. &lt;br /&gt;
&lt;br /&gt;
It has three tabs at the top:&lt;br /&gt;
o Modules Tree, which has a list of GRASS modules grouped according to their function, rather like a Windows Explorer view of directories.&lt;br /&gt;
o Modules List, which has a long list of modules.  Type the beginning of a modules name in the box at the bottom to find it rapidly.&lt;br /&gt;
o Browser, which shows you the GRASS map layers grouped into raster and vector groups.&lt;br /&gt;
&lt;br /&gt;
* If you pick a map layer in the pane on the left, you will see descriptive &lt;br /&gt;
information about the layer in the pane on the right.  Try this with raster&lt;br /&gt;
and vector layers, and notice that the information given is different for the &lt;br /&gt;
two types.  &lt;br /&gt;
&lt;br /&gt;
You can leave the GRASS Tools window open while you are working with QGIS.   &lt;br /&gt;
&lt;br /&gt;
2. Why is it so noisy here?&lt;br /&gt;
&lt;br /&gt;
At the end of a long day, you want to put your feet up and relax.  But the noise from the freeway just never stops!  How many houses in the area are close enough to a major road to be badly affected by noise?&lt;br /&gt;
&lt;br /&gt;
The noise from the freeway will travel further than the noise from a suburban &lt;br /&gt;
road. Luckily, we already have distances entered against types of road in the Roads map layer.&lt;br /&gt;
&lt;br /&gt;
* Open the attribute table and have a look.&lt;br /&gt;
&lt;br /&gt;
* To start the analysis, go to the modules tree and select the module Buffer, under:&lt;br /&gt;
&lt;br /&gt;
  Vector -&amp;gt; Spatial analysis&lt;br /&gt;
&lt;br /&gt;
Another tab will open to allow you to run the Buffer module.&lt;br /&gt;
&lt;br /&gt;
* Select the map layer Roads as input.  &lt;br /&gt;
&lt;br /&gt;
......  go to Linux for other detail:&lt;br /&gt;
select attrib for Buffer&lt;br /&gt;
  &lt;br /&gt;
* Enter Roads_buffer as the name of the output layer.&lt;br /&gt;
&lt;br /&gt;
* Then press Run. &lt;br /&gt;
&lt;br /&gt;
The progress bar at the bottom will show you how much longer you have to wait.  When it is finished, click on View output to show the result in QGIS. &lt;br /&gt;
&lt;br /&gt;
See how the buffers are wider around the freeway than around the main roads.&lt;br /&gt;
&lt;br /&gt;
Tip: You can close the tab for the module using the Close button next to View output.&lt;br /&gt;
&lt;br /&gt;
Now we want to see how many houses are affected.  We have the erven outlines rather than houses, but it will be a good approximation.&lt;br /&gt;
&lt;br /&gt;
* Click on the Modules List tab, and type &amp;quot;v.select&amp;quot; at the bottom.  The v.select.overlap module should appear at the top.  Click on the module name to open it.&lt;br /&gt;
&lt;br /&gt;
* Select Erven as the first input map layer.&lt;br /&gt;
&lt;br /&gt;
* Select Roads_buffer as the second input map layer.&lt;br /&gt;
&lt;br /&gt;
* Enter Erven_noise as the output map layer.&lt;br /&gt;
&lt;br /&gt;
* Click on Run, and View output.&lt;br /&gt;
 &lt;br /&gt;
This will show you all erven overlapping the noise buffer that we created.  &lt;br /&gt;
&lt;br /&gt;
* Open the attribute table and scroll down to the bottom to see how many houses are affected.&lt;br /&gt;
&lt;br /&gt;
I can see you!&lt;br /&gt;
&lt;br /&gt;
The way noise travels depends on a lot of things apart from distance.  One of these is changes in height.  We are going to generate an elevation surface (raster) to help us in our work.&lt;br /&gt;
&lt;br /&gt;
Raster layers need to have their extent and grid size defined before we start.&lt;br /&gt;
&lt;br /&gt;
* Click on the Modules List tab, and type &amp;quot;g.region.multiple.vector&amp;quot;.  Enter one vector layer, v_5m_contours.&lt;br /&gt;
* Now open the Modules Tree, and start the GRASS shell at the top of the list.  &lt;br /&gt;
* Enter '''g.region res=25''' to set the grid resolution to 25m.&lt;br /&gt;
* Close the shell.&lt;br /&gt;
&lt;br /&gt;
Now we can start the real work:&lt;br /&gt;
&lt;br /&gt;
* Click on the Modules List tab, and type &amp;quot;v.surf.rst&amp;quot;.  Open the module.&lt;br /&gt;
* Select the layer v_5m_contours as the input map layer.&lt;br /&gt;
* Enter elevation as the output map surface.&lt;br /&gt;
* Click Run.  This process may take a little while.&lt;br /&gt;
* Add the elevation surface to your display.&lt;br /&gt;
&lt;br /&gt;
  You may want to change the way the elevation surface displays using the Symbology options.  &lt;br /&gt;
&lt;br /&gt;
Now that we have an elevation surface, we can derive a lot of other information.  First we will make it look better though.  &lt;br /&gt;
&lt;br /&gt;
* Click on the Modules List tab, and type '''r.slope'''.&lt;br /&gt;
* Choose the r.slope.aspect.aspect module.&lt;br /&gt;
* Enter the name of the output map as '''relief'''.&lt;br /&gt;
* Run and add the layer.&lt;br /&gt;
&lt;br /&gt;
 Set this layer to about 50% transparency for a pleasing effect.&lt;br /&gt;
&lt;br /&gt;
A new 32 storey shopping mall and conference centre is being proposed for development.  The residents are upset that it will dominate the skyline.  The architect says that it will be &amp;quot;bold and pleasing&amp;quot;.  How can we tell how visible it is going to be?&lt;br /&gt;
&lt;br /&gt;
* Select the r.los module.&lt;br /&gt;
* Enter the coordinates of the proposed mall:&lt;br /&gt;
* Enter the height as 165.&lt;br /&gt;
* Enter 25000 as the maximum distance.&lt;br /&gt;
* Enter elev_shade165 as the output surface name.&lt;br /&gt;
* Run and view the surface to see where the development will be visible from.&lt;br /&gt;
&lt;br /&gt;
Now you try - change the height of the building to what you feel is reasonable, and see what difference it makes.&lt;br /&gt;
&lt;br /&gt;
== Audience Selections ==&lt;br /&gt;
&lt;br /&gt;
Tell us what else you'd like to try.&lt;br /&gt;
&lt;br /&gt;
== Show off session ==&lt;br /&gt;
&lt;br /&gt;
Here we can do some whizz bang demo stuff that we don't have time to do in  workshop format but that will give you some hints as to what else can be achieved.&lt;br /&gt;
&lt;br /&gt;
e.g. Terrain modelling and drapes.&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
Questions and answers.  What you can do next.  Resources.  Possibly some in-depth examples based on frequent questions.  What would you like to see at future workshops?&lt;br /&gt;
&lt;br /&gt;
== Possible Extras ==&lt;br /&gt;
*Introduction to the Python console&lt;br /&gt;
*The Python API&lt;br /&gt;
&lt;br /&gt;
==Your assessment of the workshop==&lt;br /&gt;
&lt;br /&gt;
Tell us what you thought!&lt;br /&gt;
&lt;br /&gt;
PS: Where to get free spatial data? Surveys and Mapping, Demarcation Board, OpenStreetMap, GPS, etc. Check out [[South_African_Geodata]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Africa]]&lt;/div&gt;</summary>
		<author><name>Wiki-Brendonwp</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=AfricaEvents27June2009&amp;diff=39394</id>
		<title>AfricaEvents27June2009</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=AfricaEvents27June2009&amp;diff=39394"/>
		<updated>2009-06-26T13:14:02Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Brendonwp: /* GRASS - Brendon */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;...back to [[Africa_Local_Chapter]]&lt;br /&gt;
&lt;br /&gt;
'''Introduction to QGIS'''&lt;br /&gt;
&lt;br /&gt;
= What? =&lt;br /&gt;
&lt;br /&gt;
Our second OSGeo local chapter meet up! We will chew the cud, show you some cool stuff and start to get people familiar with the brilliant FOSS GeoSpatial products out there, specifically QGIS on this occasion!&lt;br /&gt;
&lt;br /&gt;
We'll go through installing QGIS and getting it to a point where you can have fun (and get your job done) with it. &lt;br /&gt;
&lt;br /&gt;
= How Much? =&lt;br /&gt;
&lt;br /&gt;
There will be a door charge of R250 to cover costs, lunch and refreshments. That and an open mind are all you need to bring. &lt;br /&gt;
&lt;br /&gt;
= Where? =&lt;br /&gt;
&lt;br /&gt;
 St Davids Marist Inanda College&lt;br /&gt;
 36 Rivonia Rd&lt;br /&gt;
 Inanda&lt;br /&gt;
 Sandton&lt;br /&gt;
[http://www.stdavids.co.za/about_directions.asp Map and Directions]&lt;br /&gt;
&lt;br /&gt;
NB: We'll be in the Prep School computer lab.&lt;br /&gt;
&lt;br /&gt;
= When? =&lt;br /&gt;
&lt;br /&gt;
* Saturday June 27th 2009&lt;br /&gt;
* 08h30 to 15h30&lt;br /&gt;
* includes lunch and refreshments&lt;br /&gt;
&lt;br /&gt;
= Who =&lt;br /&gt;
&lt;br /&gt;
Your friendly presenters for the day will be:&lt;br /&gt;
&lt;br /&gt;
* '''Tim Sutton''' (tim at linfiniti.com) - QGIS hacker and FOSS GIS junkie extraordinaire. Tim eats Weetbix for breakfast because it sounds like Linux. He once rewrote Nkosi Sikelela in C++ because he was feeling patriotic.&lt;br /&gt;
* '''Graeme McFerren''' - (graeme.mcferren at gmail.com) - GIS researcher and FOSS4G user. Mmm, aspire to be like Tim then.&lt;br /&gt;
* '''Gavin Fleming''' (gavinjfleming at gmail dot com) - I enjoy my daily FOSS4G fix. I'm a 'geoinformation scientist' at Mintek and love to see cutting edge and useful geospatial applications emerging, especially when they're based on FOSS. &lt;br /&gt;
* '''Brendon Wolff-Piggott''' - (brendon at integratedgeodata.co.za) - Water resources consultant and FOSS GIS enthusiast.  I wish there were more hours in the day to keep up with FOSS4G!&lt;br /&gt;
&lt;br /&gt;
= RSVP =&lt;br /&gt;
Let gavinjfleming at gmail dot com know if you're coming as numbers are limited. &lt;br /&gt;
&lt;br /&gt;
= Programme and notes =&lt;br /&gt;
&lt;br /&gt;
* Be there in time for a 8h30 start&lt;br /&gt;
* Computers are provided. All you need to bring is R250!&lt;br /&gt;
* It doesn't matter what level you are.&lt;br /&gt;
* The programme is subject to change and participant input right to the last minute!&lt;br /&gt;
&lt;br /&gt;
== Intro to the QGIS project - Tim ==&lt;br /&gt;
&lt;br /&gt;
== First tour of the User Interface - Brendon ==&lt;br /&gt;
&lt;br /&gt;
== Advanced symbolisation - the renderer types, labelling and map actions - Brendon ==&lt;br /&gt;
&lt;br /&gt;
Loading and viewing data - common data formats, symbolisation.  Tips and tricks to enhance image display.&lt;br /&gt;
&lt;br /&gt;
== Making your first project - Graeme ==&lt;br /&gt;
&lt;br /&gt;
- adding layers and saving a project&lt;br /&gt;
&lt;br /&gt;
== Map Production - Gavin ==&lt;br /&gt;
&lt;br /&gt;
* Tea&lt;br /&gt;
&lt;br /&gt;
==Data capture - editing local and PostGIS datasources - Tim==&lt;br /&gt;
&lt;br /&gt;
==Projection basics - Gavin==&lt;br /&gt;
&lt;br /&gt;
* Lunch &lt;br /&gt;
&lt;br /&gt;
==QGIS plugins - Graeme==&lt;br /&gt;
&lt;br /&gt;
=== QGIS and Web GIS WMS and WFS clients - Graeme ===&lt;br /&gt;
&lt;br /&gt;
== Advanced analysis with QGIS ==&lt;br /&gt;
&lt;br /&gt;
===Plugins - Carson Farmer's plugins with R, etc - Gavin===&lt;br /&gt;
&lt;br /&gt;
* break&lt;br /&gt;
&lt;br /&gt;
=== GRASS - Brendon ===&lt;br /&gt;
GRASS is a sophisticated standalone GIS package which can also be accessed through QGIS. It installs with QGIS by default.  If you don't see a toolbar with grass stalk icons, you may need to add it from the plugin manager:&lt;br /&gt;
&lt;br /&gt;
Plugins/Manage plugins/GRASS&lt;br /&gt;
&lt;br /&gt;
This places a new toolbar on your QGIS interface.  Click on the first icon (the folder with a grass stalk) to open the prepared GRASS mapset, which is a collection of maps.  &lt;br /&gt;
&lt;br /&gt;
There are three entries needed in the box that opens up: &lt;br /&gt;
o Gisdbase&lt;br /&gt;
o Location&lt;br /&gt;
o Mapset&lt;br /&gt;
&lt;br /&gt;
These should be set to:&lt;br /&gt;
o home/tim/Grassdata&lt;br /&gt;
o training_jhb&lt;br /&gt;
o analysis&lt;br /&gt;
&lt;br /&gt;
Then click OK to open the mapset.&lt;br /&gt;
&lt;br /&gt;
Ask for help from one of the presenters if making these choices is confusing &lt;br /&gt;
for any reason. &lt;br /&gt;
&lt;br /&gt;
Once this is done, you may use the icons with the '+' symbol to add vector &lt;br /&gt;
and raster maps from the GRASS database.  You may use the QGIS context-sensitive menu (right-click) to remove layers if you do not want to see them.&lt;br /&gt;
&lt;br /&gt;
* Now open the prepared QGIS project analysis.qgs to see many of the map layers available in GRASS. We are going to use the GRASS toolbox to find answers to some questions that GIS can help us with.&lt;br /&gt;
&lt;br /&gt;
Click on the tools icon on the GRASS toolbar to open the GRASS tools window. &lt;br /&gt;
&lt;br /&gt;
It has three tabs at the top:&lt;br /&gt;
o Modules Tree, which has a list of GRASS modules grouped according to their function, rather like a Windows Explorer view of directories.&lt;br /&gt;
o Modules List, which has a long list of modules.  Type the beginning of a modules name in the box at the bottom to find it rapidly.&lt;br /&gt;
o Browser, which shows you the GRASS map layers grouped into raster and vector groups.&lt;br /&gt;
&lt;br /&gt;
* If you pick a map layer in the pane on the left, you will see descriptive &lt;br /&gt;
information about the layer in the pane on the right.  Try this with raster&lt;br /&gt;
and vector layers, and notice that the information given is different for the &lt;br /&gt;
two types.  &lt;br /&gt;
&lt;br /&gt;
You can leave the GRASS Tools window open while you are working with QGIS.   &lt;br /&gt;
&lt;br /&gt;
2. Why is it so noisy here?&lt;br /&gt;
&lt;br /&gt;
At the end of a long day, you want to put your feet up and relax.  But the noise from the freeway just never stops!  How many houses in the area are close enough to a major road to be badly affected by noise?&lt;br /&gt;
&lt;br /&gt;
The noise from the freeway will travel further than the noise from a suburban &lt;br /&gt;
road. Luckily, we already have distances entered against types of road in the Roads map layer.&lt;br /&gt;
&lt;br /&gt;
* Open the attribute table and have a look.&lt;br /&gt;
&lt;br /&gt;
* To start the analysis, go to the modules tree and select the module Buffer, under:&lt;br /&gt;
&lt;br /&gt;
  Vector -&amp;gt; Spatial analysis&lt;br /&gt;
&lt;br /&gt;
Another tab will open to allow you to run the Buffer module.&lt;br /&gt;
&lt;br /&gt;
* Select the map layer Roads as input.  &lt;br /&gt;
&lt;br /&gt;
......  go to Linux for other detail:&lt;br /&gt;
select attrib for Buffer&lt;br /&gt;
  &lt;br /&gt;
* Enter Roads_buffer as the name of the output layer.&lt;br /&gt;
&lt;br /&gt;
* Then press Run. &lt;br /&gt;
&lt;br /&gt;
The progress bar at the bottom will show you how much longer you have to wait.  When it is finished, click on View output to show the result in QGIS. &lt;br /&gt;
&lt;br /&gt;
See how the buffers are wider around the freeway than around the main roads.&lt;br /&gt;
&lt;br /&gt;
Tip: You can close the tab for the module using the Close button next to View output.&lt;br /&gt;
&lt;br /&gt;
Now we want to see how many houses are affected.  We have the erven outlines rather than houses, but it will be a good approximation.&lt;br /&gt;
&lt;br /&gt;
* Click on the Modules List tab, and type &amp;quot;v.select&amp;quot; at the bottom.  The v.select.overlap module should appear at the top.  Click on the module name to open it.&lt;br /&gt;
&lt;br /&gt;
* Select Erven as the first input map layer.&lt;br /&gt;
&lt;br /&gt;
* Select Roads_buffer as the second input map layer.&lt;br /&gt;
&lt;br /&gt;
* Enter Erven_noise as the output map layer.&lt;br /&gt;
&lt;br /&gt;
* Click on Run, and View output.&lt;br /&gt;
 &lt;br /&gt;
This will show you all erven overlapping the noise buffer that we created.  &lt;br /&gt;
&lt;br /&gt;
* Open the attribute table and scroll down to the bottom to see how many houses are affected.&lt;br /&gt;
&lt;br /&gt;
== Audience Selections ==&lt;br /&gt;
&lt;br /&gt;
Tell us what else you'd like to try.&lt;br /&gt;
&lt;br /&gt;
== Show off session ==&lt;br /&gt;
&lt;br /&gt;
Here we can do some whizz bang demo stuff that we don't have time to do in  workshop format but that will give you some hints as to what else can be achieved.&lt;br /&gt;
&lt;br /&gt;
e.g. Terrain modelling and drapes.&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
Questions and answers.  What you can do next.  Resources.  Possibly some in-depth examples based on frequent questions.  What would you like to see at future workshops?&lt;br /&gt;
&lt;br /&gt;
== Possible Extras ==&lt;br /&gt;
*Introduction to the Python console&lt;br /&gt;
*The Python API&lt;br /&gt;
&lt;br /&gt;
==Your assessment of the workshop==&lt;br /&gt;
&lt;br /&gt;
Tell us what you thought!&lt;br /&gt;
&lt;br /&gt;
PS: Where to get free spatial data? Surveys and Mapping, Demarcation Board, OpenStreetMap, GPS, etc. Check out [[South_African_Geodata]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Africa]]&lt;/div&gt;</summary>
		<author><name>Wiki-Brendonwp</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=AfricaEvents27June2009&amp;diff=39393</id>
		<title>AfricaEvents27June2009</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=AfricaEvents27June2009&amp;diff=39393"/>
		<updated>2009-06-26T12:55:34Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Brendonwp: /* GRASS - Brendon */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;...back to [[Africa_Local_Chapter]]&lt;br /&gt;
&lt;br /&gt;
'''Introduction to QGIS'''&lt;br /&gt;
&lt;br /&gt;
= What? =&lt;br /&gt;
&lt;br /&gt;
Our second OSGeo local chapter meet up! We will chew the cud, show you some cool stuff and start to get people familiar with the brilliant FOSS GeoSpatial products out there, specifically QGIS on this occasion!&lt;br /&gt;
&lt;br /&gt;
We'll go through installing QGIS and getting it to a point where you can have fun (and get your job done) with it. &lt;br /&gt;
&lt;br /&gt;
= How Much? =&lt;br /&gt;
&lt;br /&gt;
There will be a door charge of R250 to cover costs, lunch and refreshments. That and an open mind are all you need to bring. &lt;br /&gt;
&lt;br /&gt;
= Where? =&lt;br /&gt;
&lt;br /&gt;
 St Davids Marist Inanda College&lt;br /&gt;
 36 Rivonia Rd&lt;br /&gt;
 Inanda&lt;br /&gt;
 Sandton&lt;br /&gt;
[http://www.stdavids.co.za/about_directions.asp Map and Directions]&lt;br /&gt;
&lt;br /&gt;
NB: We'll be in the Prep School computer lab.&lt;br /&gt;
&lt;br /&gt;
= When? =&lt;br /&gt;
&lt;br /&gt;
* Saturday June 27th 2009&lt;br /&gt;
* 08h30 to 15h30&lt;br /&gt;
* includes lunch and refreshments&lt;br /&gt;
&lt;br /&gt;
= Who =&lt;br /&gt;
&lt;br /&gt;
Your friendly presenters for the day will be:&lt;br /&gt;
&lt;br /&gt;
* '''Tim Sutton''' (tim at linfiniti.com) - QGIS hacker and FOSS GIS junkie extraordinaire. Tim eats Weetbix for breakfast because it sounds like Linux. He once rewrote Nkosi Sikelela in C++ because he was feeling patriotic.&lt;br /&gt;
* '''Graeme McFerren''' - (graeme.mcferren at gmail.com) - GIS researcher and FOSS4G user. Mmm, aspire to be like Tim then.&lt;br /&gt;
* '''Gavin Fleming''' (gavinjfleming at gmail dot com) - I enjoy my daily FOSS4G fix. I'm a 'geoinformation scientist' at Mintek and love to see cutting edge and useful geospatial applications emerging, especially when they're based on FOSS. &lt;br /&gt;
* '''Brendon Wolff-Piggott''' - (brendon at integratedgeodata.co.za) - Water resources consultant and FOSS GIS enthusiast.  I wish there were more hours in the day to keep up with FOSS4G!&lt;br /&gt;
&lt;br /&gt;
= RSVP =&lt;br /&gt;
Let gavinjfleming at gmail dot com know if you're coming as numbers are limited. &lt;br /&gt;
&lt;br /&gt;
= Programme and notes =&lt;br /&gt;
&lt;br /&gt;
* Be there in time for a 8h30 start&lt;br /&gt;
* Computers are provided. All you need to bring is R250!&lt;br /&gt;
* It doesn't matter what level you are.&lt;br /&gt;
* The programme is subject to change and participant input right to the last minute!&lt;br /&gt;
&lt;br /&gt;
== Intro to the QGIS project - Tim ==&lt;br /&gt;
&lt;br /&gt;
== First tour of the User Interface - Brendon ==&lt;br /&gt;
&lt;br /&gt;
== Advanced symbolisation - the renderer types, labelling and map actions - Brendon ==&lt;br /&gt;
&lt;br /&gt;
Loading and viewing data - common data formats, symbolisation.  Tips and tricks to enhance image display.&lt;br /&gt;
&lt;br /&gt;
== Making your first project - Graeme ==&lt;br /&gt;
&lt;br /&gt;
- adding layers and saving a project&lt;br /&gt;
&lt;br /&gt;
== Map Production - Gavin ==&lt;br /&gt;
&lt;br /&gt;
* Tea&lt;br /&gt;
&lt;br /&gt;
==Data capture - editing local and PostGIS datasources - Tim==&lt;br /&gt;
&lt;br /&gt;
==Projection basics - Gavin==&lt;br /&gt;
&lt;br /&gt;
* Lunch &lt;br /&gt;
&lt;br /&gt;
==QGIS plugins - Graeme==&lt;br /&gt;
&lt;br /&gt;
=== QGIS and Web GIS WMS and WFS clients - Graeme ===&lt;br /&gt;
&lt;br /&gt;
== Advanced analysis with QGIS ==&lt;br /&gt;
&lt;br /&gt;
===Plugins - Carson Farmer's plugins with R, etc - Gavin===&lt;br /&gt;
&lt;br /&gt;
* break&lt;br /&gt;
&lt;br /&gt;
=== GRASS - Brendon ===&lt;br /&gt;
GRASS is a sophisticated standalone GIS package which can also be accessed through QGIS. It installs with QGIS by default.  If you don't see a toolbar with grass stalk icons, you may need to add it from the plugin manager:&lt;br /&gt;
&lt;br /&gt;
Plugins/Manage plugins/GRASS&lt;br /&gt;
&lt;br /&gt;
This places a new toolbar on your QGIS interface.  Click on the first icon (the folder with a grass stalk) to open the prepared GRASS mapset, which is a collection of maps.  &lt;br /&gt;
&lt;br /&gt;
There are three entries needed in the box that opens up: &lt;br /&gt;
o Gisdbase&lt;br /&gt;
o Location&lt;br /&gt;
o Mapset&lt;br /&gt;
&lt;br /&gt;
These should be set to:&lt;br /&gt;
o home/tim/Grassdata&lt;br /&gt;
o training_jhb&lt;br /&gt;
o analysis&lt;br /&gt;
&lt;br /&gt;
Then click OK to open the mapset.&lt;br /&gt;
&lt;br /&gt;
Ask for help from one of the presenters if making these choices is confusing &lt;br /&gt;
for any reason. &lt;br /&gt;
&lt;br /&gt;
Once this is done, you may use the icons with the '+' symbol to add vector &lt;br /&gt;
and raster maps from the GRASS database.  You may use the QGIS context-sensitive menu (right-click) to remove layers if you do not want to see them.&lt;br /&gt;
&lt;br /&gt;
* Now open the prepared QGIS project analysis.qgs to see many of the map layers available in GRASS. We are going to use the GRASS toolbox to find answers to some questions that GIS can help us with.&lt;br /&gt;
&lt;br /&gt;
Click on the tools icon on the GRASS toolbar to open the GRASS tools window. &lt;br /&gt;
&lt;br /&gt;
It has three tabs at the to:&lt;br /&gt;
o Modules Tree, which has a list of GRASS modules grouped according to their function, rather like a Windows Explorer view of directories.&lt;br /&gt;
o Modules List, which has a long list of modules.  Type the beginning of a modules name in the box at the bottom to find it rapidly.&lt;br /&gt;
o Browser, which shows you the GRASS map layers grouped into raster and vector groups.&lt;br /&gt;
&lt;br /&gt;
* If you pick a map layer in the pane on the left, you will see descriptive &lt;br /&gt;
information about the layer in the pane on the right.  Try this with raster&lt;br /&gt;
and vector layers, and notice that the information given is different for the &lt;br /&gt;
two types.  &lt;br /&gt;
&lt;br /&gt;
You can leave the GRASS Tools window open while you are working with QGIS.   &lt;br /&gt;
&lt;br /&gt;
2. Why is it so noisy here?&lt;br /&gt;
&lt;br /&gt;
At the end of a long day, you want to put your feet up and relax.  But the noise from the freeway just never stops!  How many houses in the area are close enough to a major road to be badly affected by noise?&lt;br /&gt;
&lt;br /&gt;
The noise from the freeway will travel further than the noise from a suburban &lt;br /&gt;
road. Luckily, we already have distances entered against types of road in the Roads map layer.&lt;br /&gt;
&lt;br /&gt;
* Open the attribute table and have a look.&lt;br /&gt;
&lt;br /&gt;
* To start the analysis, go to the modules tree and select the module Buffer, under:&lt;br /&gt;
&lt;br /&gt;
Vector -&amp;gt; Spatial analysis&lt;br /&gt;
&lt;br /&gt;
Another tab will open to allow you to run the Buffer module.&lt;br /&gt;
&lt;br /&gt;
* Select the map layer Roads as input.  &lt;br /&gt;
&lt;br /&gt;
......  go to Linux for other detail:&lt;br /&gt;
  select attrib for Buffer&lt;br /&gt;
  &lt;br /&gt;
* Enter Roads_buffer as the name of the output layer.&lt;br /&gt;
&lt;br /&gt;
* Then press Run. &lt;br /&gt;
&lt;br /&gt;
The progress bar at the bottom will show you how much longer you have to wait.  When it is finished, click on View output to show the result in QGIS. &lt;br /&gt;
&lt;br /&gt;
See how the buffers are wider around the freeway than around the main roads.&lt;br /&gt;
&lt;br /&gt;
Tip: You can close the tab for the module using the Close button next to View output.&lt;br /&gt;
&lt;br /&gt;
Now we want to see how many houses are affected.  We have the erven outlines rather than houses, but it will be a good approximation.&lt;br /&gt;
&lt;br /&gt;
* Click on the Modules List tab, and type &amp;quot;v.select&amp;quot; at the bottom.  The v.select.overlap module should appear at the top.  Click on the module name to open it.&lt;br /&gt;
&lt;br /&gt;
* Select Erven as the first input map layer.&lt;br /&gt;
&lt;br /&gt;
* Select Roads_buffer as the second input map layer.&lt;br /&gt;
&lt;br /&gt;
* Enter Erven_noise as the output map layer.&lt;br /&gt;
&lt;br /&gt;
* Click on Run, and View output.&lt;br /&gt;
 &lt;br /&gt;
This will show you all erven overlapping the noise buffer that we created.  &lt;br /&gt;
&lt;br /&gt;
* Open the attribute table and scroll down to the bottom to see how many houses are affected.&lt;br /&gt;
&lt;br /&gt;
== Audience Selections ==&lt;br /&gt;
&lt;br /&gt;
Tell us what else you'd like to try.&lt;br /&gt;
&lt;br /&gt;
== Show off session ==&lt;br /&gt;
&lt;br /&gt;
Here we can do some whizz bang demo stuff that we don't have time to do in  workshop format but that will give you some hints as to what else can be achieved.&lt;br /&gt;
&lt;br /&gt;
e.g. Terrain modelling and drapes.&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
Questions and answers.  What you can do next.  Resources.  Possibly some in-depth examples based on frequent questions.  What would you like to see at future workshops?&lt;br /&gt;
&lt;br /&gt;
== Possible Extras ==&lt;br /&gt;
*Introduction to the Python console&lt;br /&gt;
*The Python API&lt;br /&gt;
&lt;br /&gt;
==Your assessment of the workshop==&lt;br /&gt;
&lt;br /&gt;
Tell us what you thought!&lt;br /&gt;
&lt;br /&gt;
PS: Where to get free spatial data? Surveys and Mapping, Demarcation Board, OpenStreetMap, GPS, etc. Check out [[South_African_Geodata]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Africa]]&lt;/div&gt;</summary>
		<author><name>Wiki-Brendonwp</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=AfricaEvents27June2009&amp;diff=39392</id>
		<title>AfricaEvents27June2009</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=AfricaEvents27June2009&amp;diff=39392"/>
		<updated>2009-06-26T12:51:15Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Brendonwp: /* GRASS - Brendon */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;...back to [[Africa_Local_Chapter]]&lt;br /&gt;
&lt;br /&gt;
'''Introduction to QGIS'''&lt;br /&gt;
&lt;br /&gt;
= What? =&lt;br /&gt;
&lt;br /&gt;
Our second OSGeo local chapter meet up! We will chew the cud, show you some cool stuff and start to get people familiar with the brilliant FOSS GeoSpatial products out there, specifically QGIS on this occasion!&lt;br /&gt;
&lt;br /&gt;
We'll go through installing QGIS and getting it to a point where you can have fun (and get your job done) with it. &lt;br /&gt;
&lt;br /&gt;
= How Much? =&lt;br /&gt;
&lt;br /&gt;
There will be a door charge of R250 to cover costs, lunch and refreshments. That and an open mind are all you need to bring. &lt;br /&gt;
&lt;br /&gt;
= Where? =&lt;br /&gt;
&lt;br /&gt;
 St Davids Marist Inanda College&lt;br /&gt;
 36 Rivonia Rd&lt;br /&gt;
 Inanda&lt;br /&gt;
 Sandton&lt;br /&gt;
[http://www.stdavids.co.za/about_directions.asp Map and Directions]&lt;br /&gt;
&lt;br /&gt;
NB: We'll be in the Prep School computer lab.&lt;br /&gt;
&lt;br /&gt;
= When? =&lt;br /&gt;
&lt;br /&gt;
* Saturday June 27th 2009&lt;br /&gt;
* 08h30 to 15h30&lt;br /&gt;
* includes lunch and refreshments&lt;br /&gt;
&lt;br /&gt;
= Who =&lt;br /&gt;
&lt;br /&gt;
Your friendly presenters for the day will be:&lt;br /&gt;
&lt;br /&gt;
* '''Tim Sutton''' (tim at linfiniti.com) - QGIS hacker and FOSS GIS junkie extraordinaire. Tim eats Weetbix for breakfast because it sounds like Linux. He once rewrote Nkosi Sikelela in C++ because he was feeling patriotic.&lt;br /&gt;
* '''Graeme McFerren''' - (graeme.mcferren at gmail.com) - GIS researcher and FOSS4G user. Mmm, aspire to be like Tim then.&lt;br /&gt;
* '''Gavin Fleming''' (gavinjfleming at gmail dot com) - I enjoy my daily FOSS4G fix. I'm a 'geoinformation scientist' at Mintek and love to see cutting edge and useful geospatial applications emerging, especially when they're based on FOSS. &lt;br /&gt;
* '''Brendon Wolff-Piggott''' - (brendon at integratedgeodata.co.za) - Water resources consultant and FOSS GIS enthusiast.  I wish there were more hours in the day to keep up with FOSS4G!&lt;br /&gt;
&lt;br /&gt;
= RSVP =&lt;br /&gt;
Let gavinjfleming at gmail dot com know if you're coming as numbers are limited. &lt;br /&gt;
&lt;br /&gt;
= Programme and notes =&lt;br /&gt;
&lt;br /&gt;
* Be there in time for a 8h30 start&lt;br /&gt;
* Computers are provided. All you need to bring is R250!&lt;br /&gt;
* It doesn't matter what level you are.&lt;br /&gt;
* The programme is subject to change and participant input right to the last minute!&lt;br /&gt;
&lt;br /&gt;
== Intro to the QGIS project - Tim ==&lt;br /&gt;
&lt;br /&gt;
== First tour of the User Interface - Brendon ==&lt;br /&gt;
&lt;br /&gt;
== Advanced symbolisation - the renderer types, labelling and map actions - Brendon ==&lt;br /&gt;
&lt;br /&gt;
Loading and viewing data - common data formats, symbolisation.  Tips and tricks to enhance image display.&lt;br /&gt;
&lt;br /&gt;
== Making your first project - Graeme ==&lt;br /&gt;
&lt;br /&gt;
- adding layers and saving a project&lt;br /&gt;
&lt;br /&gt;
== Map Production - Gavin ==&lt;br /&gt;
&lt;br /&gt;
* Tea&lt;br /&gt;
&lt;br /&gt;
==Data capture - editing local and PostGIS datasources - Tim==&lt;br /&gt;
&lt;br /&gt;
==Projection basics - Gavin==&lt;br /&gt;
&lt;br /&gt;
* Lunch &lt;br /&gt;
&lt;br /&gt;
==QGIS plugins - Graeme==&lt;br /&gt;
&lt;br /&gt;
=== QGIS and Web GIS WMS and WFS clients - Graeme ===&lt;br /&gt;
&lt;br /&gt;
== Advanced analysis with QGIS ==&lt;br /&gt;
&lt;br /&gt;
===Plugins - Carson Farmer's plugins with R, etc - Gavin===&lt;br /&gt;
&lt;br /&gt;
* break&lt;br /&gt;
&lt;br /&gt;
=== GRASS - Brendon ===&lt;br /&gt;
GRASS is a sophisticated standalone GIS package which can also be accessed through QGIS. It installs with QGIS by default. &lt;br /&gt;
&lt;br /&gt;
You can use GRASS functions from QGIS by using the GRASS plugin from the plugin manager:&lt;br /&gt;
&lt;br /&gt;
Plugins/Manage plugins/GRASS&lt;br /&gt;
&lt;br /&gt;
This places a new toolbar on your QGIS interface.  Click on the first icon (the folder with a grass stalk) to open the prepared GRASS mapset, which is a collection of maps.  &lt;br /&gt;
&lt;br /&gt;
There are three entries needed in the box that opens up: &lt;br /&gt;
o Gisdbase&lt;br /&gt;
o Location&lt;br /&gt;
o Mapset&lt;br /&gt;
&lt;br /&gt;
These should be set to:&lt;br /&gt;
o home/tim/Grassdata&lt;br /&gt;
o training_jhb&lt;br /&gt;
o analysis&lt;br /&gt;
&lt;br /&gt;
Then click OK to open the mapset.&lt;br /&gt;
&lt;br /&gt;
Ask for help from one of the presenters if making these choices is confusing &lt;br /&gt;
for any reason. &lt;br /&gt;
&lt;br /&gt;
Once this is done, you may use the icons with the '+' symbol to add vector &lt;br /&gt;
and raster maps from the GRASS database.  You may use the QGIS context-sensitive menu (right-click) to remove layers if you do not want to see them.&lt;br /&gt;
&lt;br /&gt;
Now open the prepared QGIS project analysis.qgs to see many of the map layers available in GRASS. We are going to use the GRASS toolbox to find answers to some questions that GIS can help us with.&lt;br /&gt;
&lt;br /&gt;
Click on the tools icon on the GRASS toolbar to open the GRASS tools window. &lt;br /&gt;
&lt;br /&gt;
It has three tabs at the to:&lt;br /&gt;
o Modules Tree, which has a list of GRASS modules grouped according to their function, rather like a Windows Explorer view of directories.&lt;br /&gt;
o Modules List, which has a long list of modules.  Type the beginning of a modules name in the box at the bottom to find it rapidly.&lt;br /&gt;
o Browser, which shows you the GRASS map layers grouped into raster and vector groups.&lt;br /&gt;
&lt;br /&gt;
If you pick a map layer in the pane on the left, you will see descriptive &lt;br /&gt;
information about the layer in the pane on the right.  Try this with raster&lt;br /&gt;
and vector layers, and notice that the information given is different for the &lt;br /&gt;
two types.  &lt;br /&gt;
&lt;br /&gt;
You can leave the GRASS Tools window open while you are working with QGIS.   &lt;br /&gt;
&lt;br /&gt;
2. Why is it so noisy here?&lt;br /&gt;
&lt;br /&gt;
At the end of a long day, you want to put your feet up and relax.  But the noise from the freeway just never stops!  How many houses in the area are close enough to a major road to be badly affected by noise?&lt;br /&gt;
&lt;br /&gt;
The noise from the freeway will travel further than the noise from a suburban &lt;br /&gt;
road. Luckily, we already have distances entered against types of road in the Roads map layer.&lt;br /&gt;
&lt;br /&gt;
Open the attribute table and have a look.&lt;br /&gt;
&lt;br /&gt;
2.1 To start the analysis, go to the modules tree and select the module Buffer, under:&lt;br /&gt;
&lt;br /&gt;
Vector/Spatial analysis&lt;br /&gt;
&lt;br /&gt;
Another tab will open to allow you to run the Buffer module.&lt;br /&gt;
&lt;br /&gt;
Select the map layer Roads as input.  &lt;br /&gt;
&lt;br /&gt;
......  go to Linux for other detail:&lt;br /&gt;
  select attrib for Buffer&lt;br /&gt;
  &lt;br /&gt;
Enter Roads_buffer as the name of the output layer.&lt;br /&gt;
&lt;br /&gt;
Then press Run. &lt;br /&gt;
&lt;br /&gt;
The progress bar at the bottom will show you how much longer you have to wait.  When it is finished, click on View output to show the result in QGIS. &lt;br /&gt;
&lt;br /&gt;
See how the buffers are wider around the freeway than around the main roads.&lt;br /&gt;
&lt;br /&gt;
Tip: You can close the tab for the module using the Close button next to View output.&lt;br /&gt;
&lt;br /&gt;
2.2 Now we want to see how many houses are affected.  We have the erven outlines rather than houses, but it will be a good approximation.&lt;br /&gt;
&lt;br /&gt;
Click on the Modules List tab, and type &amp;quot;v.select&amp;quot; at the bottom.  The v.select.overlap module should appear at the top.  Click on the module name to open it.&lt;br /&gt;
&lt;br /&gt;
Select Erven as the first input map layer.&lt;br /&gt;
&lt;br /&gt;
Select Roads_buffer as the second input map layer.&lt;br /&gt;
&lt;br /&gt;
Enter Erven_noise as the output map layer.&lt;br /&gt;
&lt;br /&gt;
Click on Run, and View output.&lt;br /&gt;
 &lt;br /&gt;
This will show you all erven overlapping the noise buffer that we created.  &lt;br /&gt;
&lt;br /&gt;
Open the attribute table and scroll down to the bottom to see how many houses are affected.&lt;br /&gt;
&lt;br /&gt;
== Audience Selections ==&lt;br /&gt;
&lt;br /&gt;
Tell us what else you'd like to try.&lt;br /&gt;
&lt;br /&gt;
== Show off session ==&lt;br /&gt;
&lt;br /&gt;
Here we can do some whizz bang demo stuff that we don't have time to do in  workshop format but that will give you some hints as to what else can be achieved.&lt;br /&gt;
&lt;br /&gt;
e.g. Terrain modelling and drapes.&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
Questions and answers.  What you can do next.  Resources.  Possibly some in-depth examples based on frequent questions.  What would you like to see at future workshops?&lt;br /&gt;
&lt;br /&gt;
== Possible Extras ==&lt;br /&gt;
*Introduction to the Python console&lt;br /&gt;
*The Python API&lt;br /&gt;
&lt;br /&gt;
==Your assessment of the workshop==&lt;br /&gt;
&lt;br /&gt;
Tell us what you thought!&lt;br /&gt;
&lt;br /&gt;
PS: Where to get free spatial data? Surveys and Mapping, Demarcation Board, OpenStreetMap, GPS, etc. Check out [[South_African_Geodata]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Africa]]&lt;/div&gt;</summary>
		<author><name>Wiki-Brendonwp</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=AfricaEvents27June2009&amp;diff=39391</id>
		<title>AfricaEvents27June2009</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=AfricaEvents27June2009&amp;diff=39391"/>
		<updated>2009-06-26T12:43:33Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Brendonwp: /* GRASS - Brendon */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;...back to [[Africa_Local_Chapter]]&lt;br /&gt;
&lt;br /&gt;
'''Introduction to QGIS'''&lt;br /&gt;
&lt;br /&gt;
= What? =&lt;br /&gt;
&lt;br /&gt;
Our second OSGeo local chapter meet up! We will chew the cud, show you some cool stuff and start to get people familiar with the brilliant FOSS GeoSpatial products out there, specifically QGIS on this occasion!&lt;br /&gt;
&lt;br /&gt;
We'll go through installing QGIS and getting it to a point where you can have fun (and get your job done) with it. &lt;br /&gt;
&lt;br /&gt;
= How Much? =&lt;br /&gt;
&lt;br /&gt;
There will be a door charge of R250 to cover costs, lunch and refreshments. That and an open mind are all you need to bring. &lt;br /&gt;
&lt;br /&gt;
= Where? =&lt;br /&gt;
&lt;br /&gt;
 St Davids Marist Inanda College&lt;br /&gt;
 36 Rivonia Rd&lt;br /&gt;
 Inanda&lt;br /&gt;
 Sandton&lt;br /&gt;
[http://www.stdavids.co.za/about_directions.asp Map and Directions]&lt;br /&gt;
&lt;br /&gt;
NB: We'll be in the Prep School computer lab.&lt;br /&gt;
&lt;br /&gt;
= When? =&lt;br /&gt;
&lt;br /&gt;
* Saturday June 27th 2009&lt;br /&gt;
* 08h30 to 15h30&lt;br /&gt;
* includes lunch and refreshments&lt;br /&gt;
&lt;br /&gt;
= Who =&lt;br /&gt;
&lt;br /&gt;
Your friendly presenters for the day will be:&lt;br /&gt;
&lt;br /&gt;
* '''Tim Sutton''' (tim at linfiniti.com) - QGIS hacker and FOSS GIS junkie extraordinaire. Tim eats Weetbix for breakfast because it sounds like Linux. He once rewrote Nkosi Sikelela in C++ because he was feeling patriotic.&lt;br /&gt;
* '''Graeme McFerren''' - (graeme.mcferren at gmail.com) - GIS researcher and FOSS4G user. Mmm, aspire to be like Tim then.&lt;br /&gt;
* '''Gavin Fleming''' (gavinjfleming at gmail dot com) - I enjoy my daily FOSS4G fix. I'm a 'geoinformation scientist' at Mintek and love to see cutting edge and useful geospatial applications emerging, especially when they're based on FOSS. &lt;br /&gt;
* '''Brendon Wolff-Piggott''' - (brendon at integratedgeodata.co.za) - Water resources consultant and FOSS GIS enthusiast.  I wish there were more hours in the day to keep up with FOSS4G!&lt;br /&gt;
&lt;br /&gt;
= RSVP =&lt;br /&gt;
Let gavinjfleming at gmail dot com know if you're coming as numbers are limited. &lt;br /&gt;
&lt;br /&gt;
= Programme and notes =&lt;br /&gt;
&lt;br /&gt;
* Be there in time for a 8h30 start&lt;br /&gt;
* Computers are provided. All you need to bring is R250!&lt;br /&gt;
* It doesn't matter what level you are.&lt;br /&gt;
* The programme is subject to change and participant input right to the last minute!&lt;br /&gt;
&lt;br /&gt;
== Intro to the QGIS project - Tim ==&lt;br /&gt;
&lt;br /&gt;
== First tour of the User Interface - Brendon ==&lt;br /&gt;
&lt;br /&gt;
== Advanced symbolisation - the renderer types, labelling and map actions - Brendon ==&lt;br /&gt;
&lt;br /&gt;
Loading and viewing data - common data formats, symbolisation.  Tips and tricks to enhance image display.&lt;br /&gt;
&lt;br /&gt;
== Making your first project - Graeme ==&lt;br /&gt;
&lt;br /&gt;
- adding layers and saving a project&lt;br /&gt;
&lt;br /&gt;
== Map Production - Gavin ==&lt;br /&gt;
&lt;br /&gt;
* Tea&lt;br /&gt;
&lt;br /&gt;
==Data capture - editing local and PostGIS datasources - Tim==&lt;br /&gt;
&lt;br /&gt;
==Projection basics - Gavin==&lt;br /&gt;
&lt;br /&gt;
* Lunch &lt;br /&gt;
&lt;br /&gt;
==QGIS plugins - Graeme==&lt;br /&gt;
&lt;br /&gt;
=== QGIS and Web GIS WMS and WFS clients - Graeme ===&lt;br /&gt;
&lt;br /&gt;
== Advanced analysis with QGIS ==&lt;br /&gt;
&lt;br /&gt;
===Plugins - Carson Farmer's plugins with R, etc - Gavin===&lt;br /&gt;
&lt;br /&gt;
* break&lt;br /&gt;
&lt;br /&gt;
=== GRASS - Brendon ===&lt;br /&gt;
GRASS is a sophisticated standalone GIS package which can also be accessed through QGIS. It installs with QGIS by default. &lt;br /&gt;
&lt;br /&gt;
You can use GRASS functions from QGIS &lt;br /&gt;
&lt;br /&gt;
by using the GRASS plugin from the plugin manager:&lt;br /&gt;
&lt;br /&gt;
Plugins/Manage plugins/GRASS&lt;br /&gt;
&lt;br /&gt;
This places a new toolbar on your QGIS interface.  Click on the first icon &lt;br /&gt;
&lt;br /&gt;
(the folder with a grass stalk) to open the prepared GRASS mapset, which is a &lt;br /&gt;
&lt;br /&gt;
collection of maps.  &lt;br /&gt;
&lt;br /&gt;
There are three entries needed in the box that opens up: &lt;br /&gt;
o Gisdbase&lt;br /&gt;
o Location&lt;br /&gt;
o Mapset&lt;br /&gt;
&lt;br /&gt;
These should be set to:&lt;br /&gt;
o home/tim/Grassdata&lt;br /&gt;
o training_jhb&lt;br /&gt;
o analysis&lt;br /&gt;
&lt;br /&gt;
Then click OK to open the mapset.&lt;br /&gt;
&lt;br /&gt;
Ask for help from one of the presenters if making these choices is confusing &lt;br /&gt;
for any reason. &lt;br /&gt;
&lt;br /&gt;
Once this is done, you may use the icons with the '+' symbol to add vector &lt;br /&gt;
and raster maps from the GRASS database.  You may use the QGIS context-sensitive menu (right-click) to remove layers if you do not want to see them.&lt;br /&gt;
&lt;br /&gt;
Now open the prepared QGIS project analysis.qgs to see many of the map layers &lt;br /&gt;
&lt;br /&gt;
available in GRASS. We are going to use the GRASS toolbox to find answers to &lt;br /&gt;
some questions that GIS can help us with.&lt;br /&gt;
&lt;br /&gt;
Click on the tools icon on the GRASS toolbar to open the GRASS tools window. &lt;br /&gt;
&lt;br /&gt;
It has three tabs at the to:&lt;br /&gt;
o Modules Tree, which has a list of GRASS modules grouped according to their function, rather like a Windows Explorer view of directories.&lt;br /&gt;
o Modules List, which has a long list of modules.  Type the beginning of a modules name in the box at the bottom to find it rapidly.&lt;br /&gt;
o Browser, which shows you the GRASS map layers grouped into raster and vector groups.&lt;br /&gt;
&lt;br /&gt;
If you pick a map layer in the pane on the left, you will see descriptive &lt;br /&gt;
information about the layer in the pane on the right.  Try this with raster&lt;br /&gt;
and vector layers, and notice that the information given is different for the &lt;br /&gt;
two types.  &lt;br /&gt;
&lt;br /&gt;
You can leave the GRASS Tools window open while you are working with QGIS.   &lt;br /&gt;
&lt;br /&gt;
2. Why is it so noisy here?&lt;br /&gt;
&lt;br /&gt;
At the end of a long day, you want to put your feet up and relax.  But the noise from the freeway just never stops!  How many houses in the area are close enough to a major road to be badly affected by noise?&lt;br /&gt;
&lt;br /&gt;
The noise from the freeway will travel further than the noise from a suburban &lt;br /&gt;
road. Luckily, we already have distances entered against types of road in the Roads map layer.&lt;br /&gt;
&lt;br /&gt;
Open the attribute table and have a look.&lt;br /&gt;
&lt;br /&gt;
2.1 To start the analysis, go to the modules tree and select the module Buffer, under:&lt;br /&gt;
&lt;br /&gt;
Vector/Spatial analysis&lt;br /&gt;
&lt;br /&gt;
Another tab will open to allow you to run the Buffer module.&lt;br /&gt;
&lt;br /&gt;
Select the map layer Roads as input.  &lt;br /&gt;
&lt;br /&gt;
......  go to Linux for other detail:&lt;br /&gt;
  select attrib for Buffer&lt;br /&gt;
  &lt;br /&gt;
Enter Roads_buffer as the name of the output layer.&lt;br /&gt;
&lt;br /&gt;
Then press Run. &lt;br /&gt;
&lt;br /&gt;
The progress bar at the bottom will show you how much longer you have to wait.  When it is finished, click on View output to show the result in QGIS. &lt;br /&gt;
&lt;br /&gt;
See how the buffers are wider around the freeway than around the main roads.&lt;br /&gt;
&lt;br /&gt;
Tip: You can close the tab for the module using the Close button next to View output.&lt;br /&gt;
&lt;br /&gt;
2.2 Now we want to see how many houses are affected.  We have the erven outlines rather than houses, but it will be a good approximation.&lt;br /&gt;
&lt;br /&gt;
Click on the Modules List tab, and type &amp;quot;v.select&amp;quot; at the bottom.  The v.select.overlap module should appear at the top.  Click on the module name to open it.&lt;br /&gt;
&lt;br /&gt;
Select Erven as the first input map layer.&lt;br /&gt;
&lt;br /&gt;
Select Roads_buffer as the second input map layer.&lt;br /&gt;
&lt;br /&gt;
Enter Erven_noise as the output map layer.&lt;br /&gt;
&lt;br /&gt;
Click on Run, and View output.&lt;br /&gt;
 &lt;br /&gt;
This will show you all erven overlapping the noise buffer that we created.  &lt;br /&gt;
&lt;br /&gt;
Open the attribute table and scroll down to the bottom to see how many houses are affected.&lt;br /&gt;
&lt;br /&gt;
== Audience Selections ==&lt;br /&gt;
&lt;br /&gt;
Tell us what else you'd like to try.&lt;br /&gt;
&lt;br /&gt;
== Show off session ==&lt;br /&gt;
&lt;br /&gt;
Here we can do some whizz bang demo stuff that we don't have time to do in  workshop format but that will give you some hints as to what else can be achieved.&lt;br /&gt;
&lt;br /&gt;
e.g. Terrain modelling and drapes.&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
Questions and answers.  What you can do next.  Resources.  Possibly some in-depth examples based on frequent questions.  What would you like to see at future workshops?&lt;br /&gt;
&lt;br /&gt;
== Possible Extras ==&lt;br /&gt;
*Introduction to the Python console&lt;br /&gt;
*The Python API&lt;br /&gt;
&lt;br /&gt;
==Your assessment of the workshop==&lt;br /&gt;
&lt;br /&gt;
Tell us what you thought!&lt;br /&gt;
&lt;br /&gt;
PS: Where to get free spatial data? Surveys and Mapping, Demarcation Board, OpenStreetMap, GPS, etc. Check out [[South_African_Geodata]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Africa]]&lt;/div&gt;</summary>
		<author><name>Wiki-Brendonwp</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=AfricaEvents27June2009&amp;diff=39149</id>
		<title>AfricaEvents27June2009</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=AfricaEvents27June2009&amp;diff=39149"/>
		<updated>2009-06-16T16:42:33Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Brendonwp: /* Programme in a nutshell */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;...back to [[Africa_Local_Chapter]]&lt;br /&gt;
&lt;br /&gt;
= What? =&lt;br /&gt;
&lt;br /&gt;
Our first OSGeo local chapter meet up! We will chew the cud, show you some cool stuff and start to get people familiar with the brilliant FOSS GeoSpatial products out there!&lt;br /&gt;
&lt;br /&gt;
We'll go through installing some software and getting it to a point where you can have fun with it. &lt;br /&gt;
&lt;br /&gt;
= How Much? =&lt;br /&gt;
&lt;br /&gt;
There will be a door charge of R250 to cover costs &amp;amp; refreshments. That and an open mind are all you need to bring. &lt;br /&gt;
&lt;br /&gt;
= Where? =&lt;br /&gt;
&lt;br /&gt;
 St Davids Marist Inanda College&lt;br /&gt;
 36 Rivonia Rd&lt;br /&gt;
 Inanda&lt;br /&gt;
 Sandton&lt;br /&gt;
[http://www.stdavids.co.za/about_directions.asp Map and Directions]&lt;br /&gt;
&lt;br /&gt;
NB: We'll be in the Prep School computer lab.&lt;br /&gt;
&lt;br /&gt;
= When? =&lt;br /&gt;
&lt;br /&gt;
* Saturday June 27th 2009&lt;br /&gt;
* QGIS course: 08h30 to 15h30&lt;br /&gt;
* includes lunch and refreshments&lt;br /&gt;
&lt;br /&gt;
= Who =&lt;br /&gt;
&lt;br /&gt;
Your friendly presenters for the day will be:&lt;br /&gt;
&lt;br /&gt;
* '''Tim Sutton''' (tim at linfiniti.com) - QGIS hacker and FOSS GIS junkie extraordinaire. Tim eats Weetbix for breakfast because it sounds like Linux. He once rewrote Nkosi Sikelela in C++ because he was feeling patriotic.&lt;br /&gt;
* '''Graeme McFerren''' - (graeme.mcferren at gmail.com) - GIS researcher and FOSS4G user. Mmm, aspire to be like Tim then.&lt;br /&gt;
* '''Gavin Fleming''' (gavinjfleming at gmail dot com) - I enjoy my daily FOSS4G fix and telling people how great it was. I'm a 'geoinformation scientist' at Mintek and love to see cutting edge and useful geospatial applications emerging. &lt;br /&gt;
* '''Brendon Wolff-Piggott''' - (brendon at integratedgeodata.co.za) - Water resources consultant and FOSS GIS enthusiast.  I wish there were more hours in the day to keep up with FOSS4G!&lt;br /&gt;
&lt;br /&gt;
= RSVP =&lt;br /&gt;
Let gavinjfleming at gmail dot com know if you're coming as numbers are limited. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Programme in a nutshell =&lt;br /&gt;
&lt;br /&gt;
* Be there in time for a 8h30 start&lt;br /&gt;
&lt;br /&gt;
QGIS inside out&lt;br /&gt;
&lt;br /&gt;
Introduction: Purpose of the workshop and overview of QGIS.  &lt;br /&gt;
&lt;br /&gt;
Demo all QGIS functionality - every menu item, button and plugin.&lt;br /&gt;
&lt;br /&gt;
Loading and viewing data - common data formats, symbolisation.  Tips and tricks to enhance image display.&lt;br /&gt;
&lt;br /&gt;
Attribute viewing and management.  Switching from attribute query to spatial selection and vice versa.&lt;br /&gt;
&lt;br /&gt;
Editing spatial data in QGIS.&lt;br /&gt;
&lt;br /&gt;
* Tea break&lt;br /&gt;
&lt;br /&gt;
Setting up a QGIS Project.  Explain all the settings.  Which ones are used most.  Projections basics.&lt;br /&gt;
&lt;br /&gt;
Toolbars and plug-ins revisited.  &lt;br /&gt;
&lt;br /&gt;
KML and Google Earth.&lt;br /&gt;
&lt;br /&gt;
Using with PostGIS - SPIT.&lt;br /&gt;
&lt;br /&gt;
Where to get free spatial data - S-G, OpenStreetMaps, Tracks for Africa (?), GPS&lt;br /&gt;
&lt;br /&gt;
* Lunch &lt;br /&gt;
&lt;br /&gt;
Using QGIS to help set up Web GIS&lt;br /&gt;
&lt;br /&gt;
Incl things like Actions, intro to Python console and perhaps API.&lt;br /&gt;
&lt;br /&gt;
Special section on 'advanced analysis with QGIS' - GRASS, Carson Farmer's&lt;br /&gt;
plugins with R, etc.&lt;br /&gt;
&lt;br /&gt;
Then spend a bit more time at the end revisiting areas that the audiences&lt;br /&gt;
wants.&lt;br /&gt;
&lt;br /&gt;
'''9. Show off session'''&lt;br /&gt;
&lt;br /&gt;
Here we can do some whizz bang demo stuff that we don't have time to do in  workshop format but that will give you some hints as to what else can be achieved.&lt;br /&gt;
&lt;br /&gt;
Terrain modelling and drapes.&lt;br /&gt;
&lt;br /&gt;
'''10. General'''&lt;br /&gt;
&lt;br /&gt;
Questions and answers.  What you can do next.  Resources.  Possibly some in-depth examples based on frequent questions.  What would you like to see at future workshops?&lt;br /&gt;
&lt;br /&gt;
'''11. Your assessment of the workshop'''&lt;br /&gt;
&lt;br /&gt;
Tell us what you thought!&lt;br /&gt;
&lt;br /&gt;
= Workshop Notes =&lt;br /&gt;
&lt;br /&gt;
== Welcome, introductions and overview ==&lt;br /&gt;
&lt;br /&gt;
== Lets make a map - First steps with QGIS ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Working with attributes ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Making changes to the map ==&lt;br /&gt;
&lt;br /&gt;
* Tea&lt;br /&gt;
&lt;br /&gt;
== Setting up a QGIS Project ==&lt;br /&gt;
&lt;br /&gt;
== Toolbars and plug-ins revisited ==&lt;br /&gt;
&lt;br /&gt;
== KML and Google Earth ==&lt;br /&gt;
&lt;br /&gt;
== Using with QGIS with PostGIS ==&lt;br /&gt;
&lt;br /&gt;
* Lunch &lt;br /&gt;
&lt;br /&gt;
== Using Actions ==&lt;br /&gt;
&lt;br /&gt;
== QGIS and Web GIS ==&lt;br /&gt;
&lt;br /&gt;
== Introduction to the Python console ==&lt;br /&gt;
&lt;br /&gt;
== The Python API ==&lt;br /&gt;
&lt;br /&gt;
== Advanced analysis with QGIS ==&lt;br /&gt;
&lt;br /&gt;
GRASS&lt;br /&gt;
&lt;br /&gt;
Plugins - Carson Farmer's plugins with R, etc.&lt;br /&gt;
&lt;br /&gt;
== Audience Selections ==&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Category:Africa]]&lt;/div&gt;</summary>
		<author><name>Wiki-Brendonwp</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=AfricaEvents27June2009&amp;diff=39148</id>
		<title>AfricaEvents27June2009</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=AfricaEvents27June2009&amp;diff=39148"/>
		<updated>2009-06-16T16:40:57Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Brendonwp: /* Introduction to the Python console */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;...back to [[Africa_Local_Chapter]]&lt;br /&gt;
&lt;br /&gt;
= What? =&lt;br /&gt;
&lt;br /&gt;
Our first OSGeo local chapter meet up! We will chew the cud, show you some cool stuff and start to get people familiar with the brilliant FOSS GeoSpatial products out there!&lt;br /&gt;
&lt;br /&gt;
We'll go through installing some software and getting it to a point where you can have fun with it. &lt;br /&gt;
&lt;br /&gt;
= How Much? =&lt;br /&gt;
&lt;br /&gt;
There will be a door charge of R250 to cover costs &amp;amp; refreshments. That and an open mind are all you need to bring. &lt;br /&gt;
&lt;br /&gt;
= Where? =&lt;br /&gt;
&lt;br /&gt;
 St Davids Marist Inanda College&lt;br /&gt;
 36 Rivonia Rd&lt;br /&gt;
 Inanda&lt;br /&gt;
 Sandton&lt;br /&gt;
[http://www.stdavids.co.za/about_directions.asp Map and Directions]&lt;br /&gt;
&lt;br /&gt;
NB: We'll be in the Prep School computer lab.&lt;br /&gt;
&lt;br /&gt;
= When? =&lt;br /&gt;
&lt;br /&gt;
* Saturday June 27th 2009&lt;br /&gt;
* QGIS course: 08h30 to 15h30&lt;br /&gt;
* includes lunch and refreshments&lt;br /&gt;
&lt;br /&gt;
= Who =&lt;br /&gt;
&lt;br /&gt;
Your friendly presenters for the day will be:&lt;br /&gt;
&lt;br /&gt;
* '''Tim Sutton''' (tim at linfiniti.com) - QGIS hacker and FOSS GIS junkie extraordinaire. Tim eats Weetbix for breakfast because it sounds like Linux. He once rewrote Nkosi Sikelela in C++ because he was feeling patriotic.&lt;br /&gt;
* '''Graeme McFerren''' - (graeme.mcferren at gmail.com) - GIS researcher and FOSS4G user. Mmm, aspire to be like Tim then.&lt;br /&gt;
* '''Gavin Fleming''' (gavinjfleming at gmail dot com) - I enjoy my daily FOSS4G fix and telling people how great it was. I'm a 'geoinformation scientist' at Mintek and love to see cutting edge and useful geospatial applications emerging. &lt;br /&gt;
* '''Brendon Wolff-Piggott''' - (brendon at integratedgeodata.co.za) - Water resources consultant and FOSS GIS enthusiast.  I wish there were more hours in the day to keep up with FOSS4G!&lt;br /&gt;
&lt;br /&gt;
= RSVP =&lt;br /&gt;
Let gavinjfleming at gmail dot com know if you're coming as numbers are limited. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Programme in a nutshell =&lt;br /&gt;
&lt;br /&gt;
* Be there in time for a 8h30 start&lt;br /&gt;
&lt;br /&gt;
QGIS inside out&lt;br /&gt;
&lt;br /&gt;
Introduction: Purpose of the workshop and overview of QGIS.  &lt;br /&gt;
&lt;br /&gt;
Demo all QGIS functionality - every menu item, button and plugin.&lt;br /&gt;
&lt;br /&gt;
Loading and viewing data - common data formats, symbolisation.  Tips and tricks to enhance image display.&lt;br /&gt;
&lt;br /&gt;
Attribute viewing and management.  Switching from attribute query to spatial selection and vice versa.&lt;br /&gt;
&lt;br /&gt;
Editing spatial data in QGIS.&lt;br /&gt;
&lt;br /&gt;
* Tea break&lt;br /&gt;
&lt;br /&gt;
Setting up a QGIS Project.  Explain all the settings.  Which ones are used most.  Projections basics.&lt;br /&gt;
&lt;br /&gt;
Toolbars and plug-ins revisited.  &lt;br /&gt;
&lt;br /&gt;
KML and Google Earth.&lt;br /&gt;
&lt;br /&gt;
Using with PostGIS - SPIT.&lt;br /&gt;
&lt;br /&gt;
Where to get free spatial data - S-G, OpenStreetMaps, Tracks for Africa (?), GPS&lt;br /&gt;
&lt;br /&gt;
* Lunch &lt;br /&gt;
&lt;br /&gt;
Incl things like Actions, intro to Python console and perhaps API.&lt;br /&gt;
&lt;br /&gt;
Special section on 'advanced analysis with QGIS' - GRASS, Carson Farmer's&lt;br /&gt;
plugins with R, etc.&lt;br /&gt;
&lt;br /&gt;
Then spend a bit more time at the end revisiting areas that the audiences&lt;br /&gt;
wants.&lt;br /&gt;
&lt;br /&gt;
'''9. Show off session'''&lt;br /&gt;
&lt;br /&gt;
Here we can do some whizz bang demo stuff that we don't have time to do in  workshop format but that will give you some hints as to what else can be achieved.&lt;br /&gt;
&lt;br /&gt;
Terrain modelling and drapes.&lt;br /&gt;
&lt;br /&gt;
'''10. General'''&lt;br /&gt;
&lt;br /&gt;
Questions and answers.  What you can do next.  Resources.  Possibly some in-depth examples based on frequent questions.  What would you like to see at future workshops?&lt;br /&gt;
&lt;br /&gt;
'''11. Your assessment of the workshop'''&lt;br /&gt;
&lt;br /&gt;
Tell us what you thought!&lt;br /&gt;
&lt;br /&gt;
= Workshop Notes =&lt;br /&gt;
&lt;br /&gt;
== Welcome, introductions and overview ==&lt;br /&gt;
&lt;br /&gt;
== Lets make a map - First steps with QGIS ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Working with attributes ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Making changes to the map ==&lt;br /&gt;
&lt;br /&gt;
* Tea&lt;br /&gt;
&lt;br /&gt;
== Setting up a QGIS Project ==&lt;br /&gt;
&lt;br /&gt;
== Toolbars and plug-ins revisited ==&lt;br /&gt;
&lt;br /&gt;
== KML and Google Earth ==&lt;br /&gt;
&lt;br /&gt;
== Using with QGIS with PostGIS ==&lt;br /&gt;
&lt;br /&gt;
* Lunch &lt;br /&gt;
&lt;br /&gt;
== Using Actions ==&lt;br /&gt;
&lt;br /&gt;
== QGIS and Web GIS ==&lt;br /&gt;
&lt;br /&gt;
== Introduction to the Python console ==&lt;br /&gt;
&lt;br /&gt;
== The Python API ==&lt;br /&gt;
&lt;br /&gt;
== Advanced analysis with QGIS ==&lt;br /&gt;
&lt;br /&gt;
GRASS&lt;br /&gt;
&lt;br /&gt;
Plugins - Carson Farmer's plugins with R, etc.&lt;br /&gt;
&lt;br /&gt;
== Audience Selections ==&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Category:Africa]]&lt;/div&gt;</summary>
		<author><name>Wiki-Brendonwp</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=AfricaEvents27June2009&amp;diff=39147</id>
		<title>AfricaEvents27June2009</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=AfricaEvents27June2009&amp;diff=39147"/>
		<updated>2009-06-16T16:39:47Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Brendonwp: /* Revisiting areas that the audiences wants */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;...back to [[Africa_Local_Chapter]]&lt;br /&gt;
&lt;br /&gt;
= What? =&lt;br /&gt;
&lt;br /&gt;
Our first OSGeo local chapter meet up! We will chew the cud, show you some cool stuff and start to get people familiar with the brilliant FOSS GeoSpatial products out there!&lt;br /&gt;
&lt;br /&gt;
We'll go through installing some software and getting it to a point where you can have fun with it. &lt;br /&gt;
&lt;br /&gt;
= How Much? =&lt;br /&gt;
&lt;br /&gt;
There will be a door charge of R250 to cover costs &amp;amp; refreshments. That and an open mind are all you need to bring. &lt;br /&gt;
&lt;br /&gt;
= Where? =&lt;br /&gt;
&lt;br /&gt;
 St Davids Marist Inanda College&lt;br /&gt;
 36 Rivonia Rd&lt;br /&gt;
 Inanda&lt;br /&gt;
 Sandton&lt;br /&gt;
[http://www.stdavids.co.za/about_directions.asp Map and Directions]&lt;br /&gt;
&lt;br /&gt;
NB: We'll be in the Prep School computer lab.&lt;br /&gt;
&lt;br /&gt;
= When? =&lt;br /&gt;
&lt;br /&gt;
* Saturday June 27th 2009&lt;br /&gt;
* QGIS course: 08h30 to 15h30&lt;br /&gt;
* includes lunch and refreshments&lt;br /&gt;
&lt;br /&gt;
= Who =&lt;br /&gt;
&lt;br /&gt;
Your friendly presenters for the day will be:&lt;br /&gt;
&lt;br /&gt;
* '''Tim Sutton''' (tim at linfiniti.com) - QGIS hacker and FOSS GIS junkie extraordinaire. Tim eats Weetbix for breakfast because it sounds like Linux. He once rewrote Nkosi Sikelela in C++ because he was feeling patriotic.&lt;br /&gt;
* '''Graeme McFerren''' - (graeme.mcferren at gmail.com) - GIS researcher and FOSS4G user. Mmm, aspire to be like Tim then.&lt;br /&gt;
* '''Gavin Fleming''' (gavinjfleming at gmail dot com) - I enjoy my daily FOSS4G fix and telling people how great it was. I'm a 'geoinformation scientist' at Mintek and love to see cutting edge and useful geospatial applications emerging. &lt;br /&gt;
* '''Brendon Wolff-Piggott''' - (brendon at integratedgeodata.co.za) - Water resources consultant and FOSS GIS enthusiast.  I wish there were more hours in the day to keep up with FOSS4G!&lt;br /&gt;
&lt;br /&gt;
= RSVP =&lt;br /&gt;
Let gavinjfleming at gmail dot com know if you're coming as numbers are limited. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Programme in a nutshell =&lt;br /&gt;
&lt;br /&gt;
* Be there in time for a 8h30 start&lt;br /&gt;
&lt;br /&gt;
QGIS inside out&lt;br /&gt;
&lt;br /&gt;
Introduction: Purpose of the workshop and overview of QGIS.  &lt;br /&gt;
&lt;br /&gt;
Demo all QGIS functionality - every menu item, button and plugin.&lt;br /&gt;
&lt;br /&gt;
Loading and viewing data - common data formats, symbolisation.  Tips and tricks to enhance image display.&lt;br /&gt;
&lt;br /&gt;
Attribute viewing and management.  Switching from attribute query to spatial selection and vice versa.&lt;br /&gt;
&lt;br /&gt;
Editing spatial data in QGIS.&lt;br /&gt;
&lt;br /&gt;
* Tea break&lt;br /&gt;
&lt;br /&gt;
Setting up a QGIS Project.  Explain all the settings.  Which ones are used most.  Projections basics.&lt;br /&gt;
&lt;br /&gt;
Toolbars and plug-ins revisited.  &lt;br /&gt;
&lt;br /&gt;
KML and Google Earth.&lt;br /&gt;
&lt;br /&gt;
Using with PostGIS - SPIT.&lt;br /&gt;
&lt;br /&gt;
Where to get free spatial data - S-G, OpenStreetMaps, Tracks for Africa (?), GPS&lt;br /&gt;
&lt;br /&gt;
* Lunch &lt;br /&gt;
&lt;br /&gt;
Incl things like Actions, intro to Python console and perhaps API.&lt;br /&gt;
&lt;br /&gt;
Special section on 'advanced analysis with QGIS' - GRASS, Carson Farmer's&lt;br /&gt;
plugins with R, etc.&lt;br /&gt;
&lt;br /&gt;
Then spend a bit more time at the end revisiting areas that the audiences&lt;br /&gt;
wants.&lt;br /&gt;
&lt;br /&gt;
'''9. Show off session'''&lt;br /&gt;
&lt;br /&gt;
Here we can do some whizz bang demo stuff that we don't have time to do in  workshop format but that will give you some hints as to what else can be achieved.&lt;br /&gt;
&lt;br /&gt;
Terrain modelling and drapes.&lt;br /&gt;
&lt;br /&gt;
'''10. General'''&lt;br /&gt;
&lt;br /&gt;
Questions and answers.  What you can do next.  Resources.  Possibly some in-depth examples based on frequent questions.  What would you like to see at future workshops?&lt;br /&gt;
&lt;br /&gt;
'''11. Your assessment of the workshop'''&lt;br /&gt;
&lt;br /&gt;
Tell us what you thought!&lt;br /&gt;
&lt;br /&gt;
= Workshop Notes =&lt;br /&gt;
&lt;br /&gt;
== Welcome, introductions and overview ==&lt;br /&gt;
&lt;br /&gt;
== Lets make a map - First steps with QGIS ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Working with attributes ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Making changes to the map ==&lt;br /&gt;
&lt;br /&gt;
* Tea&lt;br /&gt;
&lt;br /&gt;
== Setting up a QGIS Project ==&lt;br /&gt;
&lt;br /&gt;
== Toolbars and plug-ins revisited ==&lt;br /&gt;
&lt;br /&gt;
== KML and Google Earth ==&lt;br /&gt;
&lt;br /&gt;
== Using with QGIS with PostGIS ==&lt;br /&gt;
&lt;br /&gt;
* Lunch &lt;br /&gt;
&lt;br /&gt;
== Using Actions ==&lt;br /&gt;
&lt;br /&gt;
== Introduction to the Python console ==&lt;br /&gt;
&lt;br /&gt;
== The Python API ==&lt;br /&gt;
&lt;br /&gt;
== Advanced analysis with QGIS ==&lt;br /&gt;
&lt;br /&gt;
GRASS&lt;br /&gt;
&lt;br /&gt;
Plugins - Carson Farmer's plugins with R, etc.&lt;br /&gt;
&lt;br /&gt;
== Audience Selections ==&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Category:Africa]]&lt;/div&gt;</summary>
		<author><name>Wiki-Brendonwp</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=AfricaEvents27June2009&amp;diff=39146</id>
		<title>AfricaEvents27June2009</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=AfricaEvents27June2009&amp;diff=39146"/>
		<updated>2009-06-16T16:36:32Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Brendonwp: /* Using with QGIS with PostGIS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;...back to [[Africa_Local_Chapter]]&lt;br /&gt;
&lt;br /&gt;
= What? =&lt;br /&gt;
&lt;br /&gt;
Our first OSGeo local chapter meet up! We will chew the cud, show you some cool stuff and start to get people familiar with the brilliant FOSS GeoSpatial products out there!&lt;br /&gt;
&lt;br /&gt;
We'll go through installing some software and getting it to a point where you can have fun with it. &lt;br /&gt;
&lt;br /&gt;
= How Much? =&lt;br /&gt;
&lt;br /&gt;
There will be a door charge of R250 to cover costs &amp;amp; refreshments. That and an open mind are all you need to bring. &lt;br /&gt;
&lt;br /&gt;
= Where? =&lt;br /&gt;
&lt;br /&gt;
 St Davids Marist Inanda College&lt;br /&gt;
 36 Rivonia Rd&lt;br /&gt;
 Inanda&lt;br /&gt;
 Sandton&lt;br /&gt;
[http://www.stdavids.co.za/about_directions.asp Map and Directions]&lt;br /&gt;
&lt;br /&gt;
NB: We'll be in the Prep School computer lab.&lt;br /&gt;
&lt;br /&gt;
= When? =&lt;br /&gt;
&lt;br /&gt;
* Saturday June 27th 2009&lt;br /&gt;
* QGIS course: 08h30 to 15h30&lt;br /&gt;
* includes lunch and refreshments&lt;br /&gt;
&lt;br /&gt;
= Who =&lt;br /&gt;
&lt;br /&gt;
Your friendly presenters for the day will be:&lt;br /&gt;
&lt;br /&gt;
* '''Tim Sutton''' (tim at linfiniti.com) - QGIS hacker and FOSS GIS junkie extraordinaire. Tim eats Weetbix for breakfast because it sounds like Linux. He once rewrote Nkosi Sikelela in C++ because he was feeling patriotic.&lt;br /&gt;
* '''Graeme McFerren''' - (graeme.mcferren at gmail.com) - GIS researcher and FOSS4G user. Mmm, aspire to be like Tim then.&lt;br /&gt;
* '''Gavin Fleming''' (gavinjfleming at gmail dot com) - I enjoy my daily FOSS4G fix and telling people how great it was. I'm a 'geoinformation scientist' at Mintek and love to see cutting edge and useful geospatial applications emerging. &lt;br /&gt;
* '''Brendon Wolff-Piggott''' - (brendon at integratedgeodata.co.za) - Water resources consultant and FOSS GIS enthusiast.  I wish there were more hours in the day to keep up with FOSS4G!&lt;br /&gt;
&lt;br /&gt;
= RSVP =&lt;br /&gt;
Let gavinjfleming at gmail dot com know if you're coming as numbers are limited. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Programme in a nutshell =&lt;br /&gt;
&lt;br /&gt;
* Be there in time for a 8h30 start&lt;br /&gt;
&lt;br /&gt;
QGIS inside out&lt;br /&gt;
&lt;br /&gt;
Introduction: Purpose of the workshop and overview of QGIS.  &lt;br /&gt;
&lt;br /&gt;
Demo all QGIS functionality - every menu item, button and plugin.&lt;br /&gt;
&lt;br /&gt;
Loading and viewing data - common data formats, symbolisation.  Tips and tricks to enhance image display.&lt;br /&gt;
&lt;br /&gt;
Attribute viewing and management.  Switching from attribute query to spatial selection and vice versa.&lt;br /&gt;
&lt;br /&gt;
Editing spatial data in QGIS.&lt;br /&gt;
&lt;br /&gt;
* Tea break&lt;br /&gt;
&lt;br /&gt;
Setting up a QGIS Project.  Explain all the settings.  Which ones are used most.  Projections basics.&lt;br /&gt;
&lt;br /&gt;
Toolbars and plug-ins revisited.  &lt;br /&gt;
&lt;br /&gt;
KML and Google Earth.&lt;br /&gt;
&lt;br /&gt;
Using with PostGIS - SPIT.&lt;br /&gt;
&lt;br /&gt;
Where to get free spatial data - S-G, OpenStreetMaps, Tracks for Africa (?), GPS&lt;br /&gt;
&lt;br /&gt;
* Lunch &lt;br /&gt;
&lt;br /&gt;
Incl things like Actions, intro to Python console and perhaps API.&lt;br /&gt;
&lt;br /&gt;
Special section on 'advanced analysis with QGIS' - GRASS, Carson Farmer's&lt;br /&gt;
plugins with R, etc.&lt;br /&gt;
&lt;br /&gt;
Then spend a bit more time at the end revisiting areas that the audiences&lt;br /&gt;
wants.&lt;br /&gt;
&lt;br /&gt;
'''9. Show off session'''&lt;br /&gt;
&lt;br /&gt;
Here we can do some whizz bang demo stuff that we don't have time to do in  workshop format but that will give you some hints as to what else can be achieved.&lt;br /&gt;
&lt;br /&gt;
Terrain modelling and drapes.&lt;br /&gt;
&lt;br /&gt;
'''10. General'''&lt;br /&gt;
&lt;br /&gt;
Questions and answers.  What you can do next.  Resources.  Possibly some in-depth examples based on frequent questions.  What would you like to see at future workshops?&lt;br /&gt;
&lt;br /&gt;
'''11. Your assessment of the workshop'''&lt;br /&gt;
&lt;br /&gt;
Tell us what you thought!&lt;br /&gt;
&lt;br /&gt;
= Workshop Notes =&lt;br /&gt;
&lt;br /&gt;
== Welcome, introductions and overview ==&lt;br /&gt;
&lt;br /&gt;
== Lets make a map - First steps with QGIS ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Working with attributes ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Making changes to the map ==&lt;br /&gt;
&lt;br /&gt;
* Tea&lt;br /&gt;
&lt;br /&gt;
== Setting up a QGIS Project ==&lt;br /&gt;
&lt;br /&gt;
== Toolbars and plug-ins revisited ==&lt;br /&gt;
&lt;br /&gt;
== KML and Google Earth ==&lt;br /&gt;
&lt;br /&gt;
== Using with QGIS with PostGIS ==&lt;br /&gt;
&lt;br /&gt;
* Lunch &lt;br /&gt;
&lt;br /&gt;
== Using Actions ==&lt;br /&gt;
&lt;br /&gt;
== Introduction to the Python console ==&lt;br /&gt;
&lt;br /&gt;
== The Python API ==&lt;br /&gt;
&lt;br /&gt;
== Advanced analysis with QGIS ==&lt;br /&gt;
&lt;br /&gt;
GRASS&lt;br /&gt;
&lt;br /&gt;
Plugins - Carson Farmer's plugins with R, etc.&lt;br /&gt;
&lt;br /&gt;
== Revisiting areas that the audiences wants == &lt;br /&gt;
&lt;br /&gt;
[[Category:Africa]]&lt;/div&gt;</summary>
		<author><name>Wiki-Brendonwp</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=AfricaEvents27June2009&amp;diff=39145</id>
		<title>AfricaEvents27June2009</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=AfricaEvents27June2009&amp;diff=39145"/>
		<updated>2009-06-16T16:32:09Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Brendonwp: /* Using with PostGIS - SPIT */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;...back to [[Africa_Local_Chapter]]&lt;br /&gt;
&lt;br /&gt;
= What? =&lt;br /&gt;
&lt;br /&gt;
Our first OSGeo local chapter meet up! We will chew the cud, show you some cool stuff and start to get people familiar with the brilliant FOSS GeoSpatial products out there!&lt;br /&gt;
&lt;br /&gt;
We'll go through installing some software and getting it to a point where you can have fun with it. &lt;br /&gt;
&lt;br /&gt;
= How Much? =&lt;br /&gt;
&lt;br /&gt;
There will be a door charge of R250 to cover costs &amp;amp; refreshments. That and an open mind are all you need to bring. &lt;br /&gt;
&lt;br /&gt;
= Where? =&lt;br /&gt;
&lt;br /&gt;
 St Davids Marist Inanda College&lt;br /&gt;
 36 Rivonia Rd&lt;br /&gt;
 Inanda&lt;br /&gt;
 Sandton&lt;br /&gt;
[http://www.stdavids.co.za/about_directions.asp Map and Directions]&lt;br /&gt;
&lt;br /&gt;
NB: We'll be in the Prep School computer lab.&lt;br /&gt;
&lt;br /&gt;
= When? =&lt;br /&gt;
&lt;br /&gt;
* Saturday June 27th 2009&lt;br /&gt;
* QGIS course: 08h30 to 15h30&lt;br /&gt;
* includes lunch and refreshments&lt;br /&gt;
&lt;br /&gt;
= Who =&lt;br /&gt;
&lt;br /&gt;
Your friendly presenters for the day will be:&lt;br /&gt;
&lt;br /&gt;
* '''Tim Sutton''' (tim at linfiniti.com) - QGIS hacker and FOSS GIS junkie extraordinaire. Tim eats Weetbix for breakfast because it sounds like Linux. He once rewrote Nkosi Sikelela in C++ because he was feeling patriotic.&lt;br /&gt;
* '''Graeme McFerren''' - (graeme.mcferren at gmail.com) - GIS researcher and FOSS4G user. Mmm, aspire to be like Tim then.&lt;br /&gt;
* '''Gavin Fleming''' (gavinjfleming at gmail dot com) - I enjoy my daily FOSS4G fix and telling people how great it was. I'm a 'geoinformation scientist' at Mintek and love to see cutting edge and useful geospatial applications emerging. &lt;br /&gt;
* '''Brendon Wolff-Piggott''' - (brendon at integratedgeodata.co.za) - Water resources consultant and FOSS GIS enthusiast.  I wish there were more hours in the day to keep up with FOSS4G!&lt;br /&gt;
&lt;br /&gt;
= RSVP =&lt;br /&gt;
Let gavinjfleming at gmail dot com know if you're coming as numbers are limited. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Programme in a nutshell =&lt;br /&gt;
&lt;br /&gt;
* Be there in time for a 8h30 start&lt;br /&gt;
&lt;br /&gt;
QGIS inside out&lt;br /&gt;
&lt;br /&gt;
Introduction: Purpose of the workshop and overview of QGIS.  &lt;br /&gt;
&lt;br /&gt;
Demo all QGIS functionality - every menu item, button and plugin.&lt;br /&gt;
&lt;br /&gt;
Loading and viewing data - common data formats, symbolisation.  Tips and tricks to enhance image display.&lt;br /&gt;
&lt;br /&gt;
Attribute viewing and management.  Switching from attribute query to spatial selection and vice versa.&lt;br /&gt;
&lt;br /&gt;
Editing spatial data in QGIS.&lt;br /&gt;
&lt;br /&gt;
* Tea break&lt;br /&gt;
&lt;br /&gt;
Setting up a QGIS Project.  Explain all the settings.  Which ones are used most.  Projections basics.&lt;br /&gt;
&lt;br /&gt;
Toolbars and plug-ins revisited.  &lt;br /&gt;
&lt;br /&gt;
KML and Google Earth.&lt;br /&gt;
&lt;br /&gt;
Using with PostGIS - SPIT.&lt;br /&gt;
&lt;br /&gt;
Where to get free spatial data - S-G, OpenStreetMaps, Tracks for Africa (?), GPS&lt;br /&gt;
&lt;br /&gt;
* Lunch &lt;br /&gt;
&lt;br /&gt;
Incl things like Actions, intro to Python console and perhaps API.&lt;br /&gt;
&lt;br /&gt;
Special section on 'advanced analysis with QGIS' - GRASS, Carson Farmer's&lt;br /&gt;
plugins with R, etc.&lt;br /&gt;
&lt;br /&gt;
Then spend a bit more time at the end revisiting areas that the audiences&lt;br /&gt;
wants.&lt;br /&gt;
&lt;br /&gt;
'''9. Show off session'''&lt;br /&gt;
&lt;br /&gt;
Here we can do some whizz bang demo stuff that we don't have time to do in  workshop format but that will give you some hints as to what else can be achieved.&lt;br /&gt;
&lt;br /&gt;
Terrain modelling and drapes.&lt;br /&gt;
&lt;br /&gt;
'''10. General'''&lt;br /&gt;
&lt;br /&gt;
Questions and answers.  What you can do next.  Resources.  Possibly some in-depth examples based on frequent questions.  What would you like to see at future workshops?&lt;br /&gt;
&lt;br /&gt;
'''11. Your assessment of the workshop'''&lt;br /&gt;
&lt;br /&gt;
Tell us what you thought!&lt;br /&gt;
&lt;br /&gt;
= Workshop Notes =&lt;br /&gt;
&lt;br /&gt;
== Welcome, introductions and overview ==&lt;br /&gt;
&lt;br /&gt;
== Lets make a map - First steps with QGIS ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Working with attributes ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Making changes to the map ==&lt;br /&gt;
&lt;br /&gt;
* Tea&lt;br /&gt;
&lt;br /&gt;
== Setting up a QGIS Project ==&lt;br /&gt;
&lt;br /&gt;
== Toolbars and plug-ins revisited ==&lt;br /&gt;
&lt;br /&gt;
== KML and Google Earth ==&lt;br /&gt;
&lt;br /&gt;
== Using with QGIS with PostGIS ==&lt;br /&gt;
&lt;br /&gt;
* Lunch &lt;br /&gt;
&lt;br /&gt;
[[Category:Africa]]&lt;/div&gt;</summary>
		<author><name>Wiki-Brendonwp</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=AfricaEvents27June2009&amp;diff=39144</id>
		<title>AfricaEvents27June2009</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=AfricaEvents27June2009&amp;diff=39144"/>
		<updated>2009-06-16T16:31:33Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Brendonwp: /* Setting up a QGIS Project */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;...back to [[Africa_Local_Chapter]]&lt;br /&gt;
&lt;br /&gt;
= What? =&lt;br /&gt;
&lt;br /&gt;
Our first OSGeo local chapter meet up! We will chew the cud, show you some cool stuff and start to get people familiar with the brilliant FOSS GeoSpatial products out there!&lt;br /&gt;
&lt;br /&gt;
We'll go through installing some software and getting it to a point where you can have fun with it. &lt;br /&gt;
&lt;br /&gt;
= How Much? =&lt;br /&gt;
&lt;br /&gt;
There will be a door charge of R250 to cover costs &amp;amp; refreshments. That and an open mind are all you need to bring. &lt;br /&gt;
&lt;br /&gt;
= Where? =&lt;br /&gt;
&lt;br /&gt;
 St Davids Marist Inanda College&lt;br /&gt;
 36 Rivonia Rd&lt;br /&gt;
 Inanda&lt;br /&gt;
 Sandton&lt;br /&gt;
[http://www.stdavids.co.za/about_directions.asp Map and Directions]&lt;br /&gt;
&lt;br /&gt;
NB: We'll be in the Prep School computer lab.&lt;br /&gt;
&lt;br /&gt;
= When? =&lt;br /&gt;
&lt;br /&gt;
* Saturday June 27th 2009&lt;br /&gt;
* QGIS course: 08h30 to 15h30&lt;br /&gt;
* includes lunch and refreshments&lt;br /&gt;
&lt;br /&gt;
= Who =&lt;br /&gt;
&lt;br /&gt;
Your friendly presenters for the day will be:&lt;br /&gt;
&lt;br /&gt;
* '''Tim Sutton''' (tim at linfiniti.com) - QGIS hacker and FOSS GIS junkie extraordinaire. Tim eats Weetbix for breakfast because it sounds like Linux. He once rewrote Nkosi Sikelela in C++ because he was feeling patriotic.&lt;br /&gt;
* '''Graeme McFerren''' - (graeme.mcferren at gmail.com) - GIS researcher and FOSS4G user. Mmm, aspire to be like Tim then.&lt;br /&gt;
* '''Gavin Fleming''' (gavinjfleming at gmail dot com) - I enjoy my daily FOSS4G fix and telling people how great it was. I'm a 'geoinformation scientist' at Mintek and love to see cutting edge and useful geospatial applications emerging. &lt;br /&gt;
* '''Brendon Wolff-Piggott''' - (brendon at integratedgeodata.co.za) - Water resources consultant and FOSS GIS enthusiast.  I wish there were more hours in the day to keep up with FOSS4G!&lt;br /&gt;
&lt;br /&gt;
= RSVP =&lt;br /&gt;
Let gavinjfleming at gmail dot com know if you're coming as numbers are limited. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Programme in a nutshell =&lt;br /&gt;
&lt;br /&gt;
* Be there in time for a 8h30 start&lt;br /&gt;
&lt;br /&gt;
QGIS inside out&lt;br /&gt;
&lt;br /&gt;
Introduction: Purpose of the workshop and overview of QGIS.  &lt;br /&gt;
&lt;br /&gt;
Demo all QGIS functionality - every menu item, button and plugin.&lt;br /&gt;
&lt;br /&gt;
Loading and viewing data - common data formats, symbolisation.  Tips and tricks to enhance image display.&lt;br /&gt;
&lt;br /&gt;
Attribute viewing and management.  Switching from attribute query to spatial selection and vice versa.&lt;br /&gt;
&lt;br /&gt;
Editing spatial data in QGIS.&lt;br /&gt;
&lt;br /&gt;
* Tea break&lt;br /&gt;
&lt;br /&gt;
Setting up a QGIS Project.  Explain all the settings.  Which ones are used most.  Projections basics.&lt;br /&gt;
&lt;br /&gt;
Toolbars and plug-ins revisited.  &lt;br /&gt;
&lt;br /&gt;
KML and Google Earth.&lt;br /&gt;
&lt;br /&gt;
Using with PostGIS - SPIT.&lt;br /&gt;
&lt;br /&gt;
Where to get free spatial data - S-G, OpenStreetMaps, Tracks for Africa (?), GPS&lt;br /&gt;
&lt;br /&gt;
* Lunch &lt;br /&gt;
&lt;br /&gt;
Incl things like Actions, intro to Python console and perhaps API.&lt;br /&gt;
&lt;br /&gt;
Special section on 'advanced analysis with QGIS' - GRASS, Carson Farmer's&lt;br /&gt;
plugins with R, etc.&lt;br /&gt;
&lt;br /&gt;
Then spend a bit more time at the end revisiting areas that the audiences&lt;br /&gt;
wants.&lt;br /&gt;
&lt;br /&gt;
'''9. Show off session'''&lt;br /&gt;
&lt;br /&gt;
Here we can do some whizz bang demo stuff that we don't have time to do in  workshop format but that will give you some hints as to what else can be achieved.&lt;br /&gt;
&lt;br /&gt;
Terrain modelling and drapes.&lt;br /&gt;
&lt;br /&gt;
'''10. General'''&lt;br /&gt;
&lt;br /&gt;
Questions and answers.  What you can do next.  Resources.  Possibly some in-depth examples based on frequent questions.  What would you like to see at future workshops?&lt;br /&gt;
&lt;br /&gt;
'''11. Your assessment of the workshop'''&lt;br /&gt;
&lt;br /&gt;
Tell us what you thought!&lt;br /&gt;
&lt;br /&gt;
= Workshop Notes =&lt;br /&gt;
&lt;br /&gt;
== Welcome, introductions and overview ==&lt;br /&gt;
&lt;br /&gt;
== Lets make a map - First steps with QGIS ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Working with attributes ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Making changes to the map ==&lt;br /&gt;
&lt;br /&gt;
* Tea&lt;br /&gt;
&lt;br /&gt;
== Setting up a QGIS Project ==&lt;br /&gt;
&lt;br /&gt;
== Toolbars and plug-ins revisited ==&lt;br /&gt;
&lt;br /&gt;
== KML and Google Earth ==&lt;br /&gt;
&lt;br /&gt;
== Using with PostGIS - SPIT ==&lt;br /&gt;
&lt;br /&gt;
* Lunch &lt;br /&gt;
&lt;br /&gt;
[[Category:Africa]]&lt;/div&gt;</summary>
		<author><name>Wiki-Brendonwp</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=AfricaEvents27June2009&amp;diff=39143</id>
		<title>AfricaEvents27June2009</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=AfricaEvents27June2009&amp;diff=39143"/>
		<updated>2009-06-16T16:30:53Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Brendonwp: /* Making changes to the map */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;...back to [[Africa_Local_Chapter]]&lt;br /&gt;
&lt;br /&gt;
= What? =&lt;br /&gt;
&lt;br /&gt;
Our first OSGeo local chapter meet up! We will chew the cud, show you some cool stuff and start to get people familiar with the brilliant FOSS GeoSpatial products out there!&lt;br /&gt;
&lt;br /&gt;
We'll go through installing some software and getting it to a point where you can have fun with it. &lt;br /&gt;
&lt;br /&gt;
= How Much? =&lt;br /&gt;
&lt;br /&gt;
There will be a door charge of R250 to cover costs &amp;amp; refreshments. That and an open mind are all you need to bring. &lt;br /&gt;
&lt;br /&gt;
= Where? =&lt;br /&gt;
&lt;br /&gt;
 St Davids Marist Inanda College&lt;br /&gt;
 36 Rivonia Rd&lt;br /&gt;
 Inanda&lt;br /&gt;
 Sandton&lt;br /&gt;
[http://www.stdavids.co.za/about_directions.asp Map and Directions]&lt;br /&gt;
&lt;br /&gt;
NB: We'll be in the Prep School computer lab.&lt;br /&gt;
&lt;br /&gt;
= When? =&lt;br /&gt;
&lt;br /&gt;
* Saturday June 27th 2009&lt;br /&gt;
* QGIS course: 08h30 to 15h30&lt;br /&gt;
* includes lunch and refreshments&lt;br /&gt;
&lt;br /&gt;
= Who =&lt;br /&gt;
&lt;br /&gt;
Your friendly presenters for the day will be:&lt;br /&gt;
&lt;br /&gt;
* '''Tim Sutton''' (tim at linfiniti.com) - QGIS hacker and FOSS GIS junkie extraordinaire. Tim eats Weetbix for breakfast because it sounds like Linux. He once rewrote Nkosi Sikelela in C++ because he was feeling patriotic.&lt;br /&gt;
* '''Graeme McFerren''' - (graeme.mcferren at gmail.com) - GIS researcher and FOSS4G user. Mmm, aspire to be like Tim then.&lt;br /&gt;
* '''Gavin Fleming''' (gavinjfleming at gmail dot com) - I enjoy my daily FOSS4G fix and telling people how great it was. I'm a 'geoinformation scientist' at Mintek and love to see cutting edge and useful geospatial applications emerging. &lt;br /&gt;
* '''Brendon Wolff-Piggott''' - (brendon at integratedgeodata.co.za) - Water resources consultant and FOSS GIS enthusiast.  I wish there were more hours in the day to keep up with FOSS4G!&lt;br /&gt;
&lt;br /&gt;
= RSVP =&lt;br /&gt;
Let gavinjfleming at gmail dot com know if you're coming as numbers are limited. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Programme in a nutshell =&lt;br /&gt;
&lt;br /&gt;
* Be there in time for a 8h30 start&lt;br /&gt;
&lt;br /&gt;
QGIS inside out&lt;br /&gt;
&lt;br /&gt;
Introduction: Purpose of the workshop and overview of QGIS.  &lt;br /&gt;
&lt;br /&gt;
Demo all QGIS functionality - every menu item, button and plugin.&lt;br /&gt;
&lt;br /&gt;
Loading and viewing data - common data formats, symbolisation.  Tips and tricks to enhance image display.&lt;br /&gt;
&lt;br /&gt;
Attribute viewing and management.  Switching from attribute query to spatial selection and vice versa.&lt;br /&gt;
&lt;br /&gt;
Editing spatial data in QGIS.&lt;br /&gt;
&lt;br /&gt;
* Tea break&lt;br /&gt;
&lt;br /&gt;
Setting up a QGIS Project.  Explain all the settings.  Which ones are used most.  Projections basics.&lt;br /&gt;
&lt;br /&gt;
Toolbars and plug-ins revisited.  &lt;br /&gt;
&lt;br /&gt;
KML and Google Earth.&lt;br /&gt;
&lt;br /&gt;
Using with PostGIS - SPIT.&lt;br /&gt;
&lt;br /&gt;
Where to get free spatial data - S-G, OpenStreetMaps, Tracks for Africa (?), GPS&lt;br /&gt;
&lt;br /&gt;
* Lunch &lt;br /&gt;
&lt;br /&gt;
Incl things like Actions, intro to Python console and perhaps API.&lt;br /&gt;
&lt;br /&gt;
Special section on 'advanced analysis with QGIS' - GRASS, Carson Farmer's&lt;br /&gt;
plugins with R, etc.&lt;br /&gt;
&lt;br /&gt;
Then spend a bit more time at the end revisiting areas that the audiences&lt;br /&gt;
wants.&lt;br /&gt;
&lt;br /&gt;
'''9. Show off session'''&lt;br /&gt;
&lt;br /&gt;
Here we can do some whizz bang demo stuff that we don't have time to do in  workshop format but that will give you some hints as to what else can be achieved.&lt;br /&gt;
&lt;br /&gt;
Terrain modelling and drapes.&lt;br /&gt;
&lt;br /&gt;
'''10. General'''&lt;br /&gt;
&lt;br /&gt;
Questions and answers.  What you can do next.  Resources.  Possibly some in-depth examples based on frequent questions.  What would you like to see at future workshops?&lt;br /&gt;
&lt;br /&gt;
'''11. Your assessment of the workshop'''&lt;br /&gt;
&lt;br /&gt;
Tell us what you thought!&lt;br /&gt;
&lt;br /&gt;
= Workshop Notes =&lt;br /&gt;
&lt;br /&gt;
== Welcome, introductions and overview ==&lt;br /&gt;
&lt;br /&gt;
== Lets make a map - First steps with QGIS ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Working with attributes ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Making changes to the map ==&lt;br /&gt;
&lt;br /&gt;
== Setting up a QGIS Project == &lt;br /&gt;
&lt;br /&gt;
== Toolbars and plug-ins revisited ==&lt;br /&gt;
&lt;br /&gt;
== KML and Google Earth ==&lt;br /&gt;
&lt;br /&gt;
== Using with PostGIS - SPIT ==&lt;br /&gt;
&lt;br /&gt;
* Lunch &lt;br /&gt;
&lt;br /&gt;
[[Category:Africa]]&lt;/div&gt;</summary>
		<author><name>Wiki-Brendonwp</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=AfricaEvents27June2009&amp;diff=39142</id>
		<title>AfricaEvents27June2009</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=AfricaEvents27June2009&amp;diff=39142"/>
		<updated>2009-06-16T15:49:08Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Brendonwp: /* Lets make a map - First steps with QGIS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;...back to [[Africa_Local_Chapter]]&lt;br /&gt;
&lt;br /&gt;
= What? =&lt;br /&gt;
&lt;br /&gt;
Our first OSGeo local chapter meet up! We will chew the cud, show you some cool stuff and start to get people familiar with the brilliant FOSS GeoSpatial products out there!&lt;br /&gt;
&lt;br /&gt;
We'll go through installing some software and getting it to a point where you can have fun with it. &lt;br /&gt;
&lt;br /&gt;
= How Much? =&lt;br /&gt;
&lt;br /&gt;
There will be a door charge of R250 to cover costs &amp;amp; refreshments. That and an open mind are all you need to bring. &lt;br /&gt;
&lt;br /&gt;
= Where? =&lt;br /&gt;
&lt;br /&gt;
 St Davids Marist Inanda College&lt;br /&gt;
 36 Rivonia Rd&lt;br /&gt;
 Inanda&lt;br /&gt;
 Sandton&lt;br /&gt;
[http://www.stdavids.co.za/about_directions.asp Map and Directions]&lt;br /&gt;
&lt;br /&gt;
NB: We'll be in the Prep School computer lab.&lt;br /&gt;
&lt;br /&gt;
= When? =&lt;br /&gt;
&lt;br /&gt;
* Saturday June 27th 2009&lt;br /&gt;
* QGIS course: 08h30 to 15h30&lt;br /&gt;
* includes lunch and refreshments&lt;br /&gt;
&lt;br /&gt;
= Who =&lt;br /&gt;
&lt;br /&gt;
Your friendly presenters for the day will be:&lt;br /&gt;
&lt;br /&gt;
* '''Tim Sutton''' (tim at linfiniti.com) - QGIS hacker and FOSS GIS junkie extraordinaire. Tim eats Weetbix for breakfast because it sounds like Linux. He once rewrote Nkosi Sikelela in C++ because he was feeling patriotic.&lt;br /&gt;
* '''Graeme McFerren''' - (graeme.mcferren at gmail.com) - GIS researcher and FOSS4G user. Mmm, aspire to be like Tim then.&lt;br /&gt;
* '''Gavin Fleming''' (gavinjfleming at gmail dot com) - I enjoy my daily FOSS4G fix and telling people how great it was. I'm a 'geoinformation scientist' at Mintek and love to see cutting edge and useful geospatial applications emerging. &lt;br /&gt;
* '''Brendon Wolff-Piggott''' - (brendon at integratedgeodata.co.za) - Water resources consultant and FOSS GIS enthusiast.  I wish there were more hours in the day to keep up with FOSS4G!&lt;br /&gt;
&lt;br /&gt;
= RSVP =&lt;br /&gt;
Let gavinjfleming at gmail dot com know if you're coming as numbers are limited. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Programme in a nutshell =&lt;br /&gt;
&lt;br /&gt;
* Be there in time for a 8h30 start&lt;br /&gt;
&lt;br /&gt;
QGIS inside out&lt;br /&gt;
&lt;br /&gt;
Introduction: Purpose of the workshop and overview of QGIS.  &lt;br /&gt;
&lt;br /&gt;
Demo all QGIS functionality - every menu item, button and plugin.&lt;br /&gt;
&lt;br /&gt;
Loading and viewing data - common data formats, symbolisation.  Tips and tricks to enhance image display.&lt;br /&gt;
&lt;br /&gt;
Attribute viewing and management.  Switching from attribute query to spatial selection and vice versa.&lt;br /&gt;
&lt;br /&gt;
Editing spatial data in QGIS.&lt;br /&gt;
&lt;br /&gt;
* Tea break&lt;br /&gt;
&lt;br /&gt;
Setting up a QGIS Project.  Explain all the settings.  Which ones are used most.  Projections basics.&lt;br /&gt;
&lt;br /&gt;
Toolbars and plug-ins revisited.  &lt;br /&gt;
&lt;br /&gt;
KML and Google Earth.&lt;br /&gt;
&lt;br /&gt;
Using with PostGIS - SPIT.&lt;br /&gt;
&lt;br /&gt;
Where to get free spatial data - S-G, OpenStreetMaps, Tracks for Africa (?), GPS&lt;br /&gt;
&lt;br /&gt;
* Lunch &lt;br /&gt;
&lt;br /&gt;
Incl things like Actions, intro to Python console and perhaps API.&lt;br /&gt;
&lt;br /&gt;
Special section on 'advanced analysis with QGIS' - GRASS, Carson Farmer's&lt;br /&gt;
plugins with R, etc.&lt;br /&gt;
&lt;br /&gt;
Then spend a bit more time at the end revisiting areas that the audiences&lt;br /&gt;
wants.&lt;br /&gt;
&lt;br /&gt;
'''9. Show off session'''&lt;br /&gt;
&lt;br /&gt;
Here we can do some whizz bang demo stuff that we don't have time to do in  workshop format but that will give you some hints as to what else can be achieved.&lt;br /&gt;
&lt;br /&gt;
Terrain modelling and drapes.&lt;br /&gt;
&lt;br /&gt;
'''10. General'''&lt;br /&gt;
&lt;br /&gt;
Questions and answers.  What you can do next.  Resources.  Possibly some in-depth examples based on frequent questions.  What would you like to see at future workshops?&lt;br /&gt;
&lt;br /&gt;
'''11. Your assessment of the workshop'''&lt;br /&gt;
&lt;br /&gt;
Tell us what you thought!&lt;br /&gt;
&lt;br /&gt;
= Workshop Notes =&lt;br /&gt;
&lt;br /&gt;
== Welcome, introductions and overview ==&lt;br /&gt;
&lt;br /&gt;
== Lets make a map - First steps with QGIS ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Working with attributes ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Making changes to the map ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Africa]]&lt;/div&gt;</summary>
		<author><name>Wiki-Brendonwp</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=AfricaEvents27June2009&amp;diff=39140</id>
		<title>AfricaEvents27June2009</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=AfricaEvents27June2009&amp;diff=39140"/>
		<updated>2009-06-16T15:26:48Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Brendonwp: /* Programme in a nutshell */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;...back to [[Africa_Local_Chapter]]&lt;br /&gt;
&lt;br /&gt;
= What? =&lt;br /&gt;
&lt;br /&gt;
Our first OSGeo local chapter meet up! We will chew the cud, show you some cool stuff and start to get people familiar with the brilliant FOSS GeoSpatial products out there!&lt;br /&gt;
&lt;br /&gt;
We'll go through installing some software and getting it to a point where you can have fun with it. &lt;br /&gt;
&lt;br /&gt;
= How Much? =&lt;br /&gt;
&lt;br /&gt;
There will be a door charge of R250 to cover costs &amp;amp; refreshments. That and an open mind are all you need to bring. &lt;br /&gt;
&lt;br /&gt;
= Where? =&lt;br /&gt;
&lt;br /&gt;
 St Davids Marist Inanda College&lt;br /&gt;
 36 Rivonia Rd&lt;br /&gt;
 Inanda&lt;br /&gt;
 Sandton&lt;br /&gt;
[http://www.stdavids.co.za/about_directions.asp Map and Directions]&lt;br /&gt;
&lt;br /&gt;
NB: We'll be in the Prep School computer lab.&lt;br /&gt;
&lt;br /&gt;
= When? =&lt;br /&gt;
&lt;br /&gt;
* Saturday June 27th 2009&lt;br /&gt;
* QGIS course: 08h30 to 15h30&lt;br /&gt;
* includes lunch and refreshments&lt;br /&gt;
&lt;br /&gt;
= Who =&lt;br /&gt;
&lt;br /&gt;
Your friendly presenters for the day will be:&lt;br /&gt;
&lt;br /&gt;
* '''Tim Sutton''' (tim at linfiniti.com) - QGIS hacker and FOSS GIS junkie extraordinaire. Tim eats Weetbix for breakfast because it sounds like Linux. He once rewrote Nkosi Sikelela in C++ because he was feeling patriotic.&lt;br /&gt;
* '''Graeme McFerren''' - (graeme.mcferren at gmail.com) - GIS researcher and FOSS4G user. Mmm, aspire to be like Tim then.&lt;br /&gt;
* '''Gavin Fleming''' (gavinjfleming at gmail dot com) - I enjoy my daily FOSS4G fix and telling people how great it was. I'm a 'geoinformation scientist' at Mintek and love to see cutting edge and useful geospatial applications emerging. &lt;br /&gt;
* '''Brendon Wolff-Piggott''' - (brendon at integratedgeodata.co.za) - Water resources consultant and FOSS GIS enthusiast.  I wish there were more hours in the day to keep up with FOSS4G!&lt;br /&gt;
&lt;br /&gt;
= RSVP =&lt;br /&gt;
Let gavinjfleming at gmail dot com know if you're coming as numbers are limited. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Programme in a nutshell =&lt;br /&gt;
&lt;br /&gt;
* Be there in time for a 8h30 start&lt;br /&gt;
&lt;br /&gt;
QGIS inside out&lt;br /&gt;
&lt;br /&gt;
Introduction: Purpose of the workshop and overview of QGIS.  &lt;br /&gt;
&lt;br /&gt;
Demo all QGIS functionality - every menu item, button and plugin.&lt;br /&gt;
&lt;br /&gt;
Loading and viewing data - common data formats, symbolisation.  Tips and tricks to enhance image display.&lt;br /&gt;
&lt;br /&gt;
Attribute viewing and management.  Switching from attribute query to spatial selection and vice versa.&lt;br /&gt;
&lt;br /&gt;
Editing spatial data in QGIS.&lt;br /&gt;
&lt;br /&gt;
* Tea break&lt;br /&gt;
&lt;br /&gt;
Setting up a QGIS Project.  Explain all the settings.  Which ones are used most.  Projections basics.&lt;br /&gt;
&lt;br /&gt;
Toolbars and plug-ins revisited.  &lt;br /&gt;
&lt;br /&gt;
KML and Google Earth.&lt;br /&gt;
&lt;br /&gt;
Using with PostGIS - SPIT.&lt;br /&gt;
&lt;br /&gt;
Where to get free spatial data - S-G, OpenStreetMaps, Tracks for Africa (?), GPS&lt;br /&gt;
&lt;br /&gt;
* Lunch &lt;br /&gt;
&lt;br /&gt;
Incl things like Actions, intro to Python console and perhaps API.&lt;br /&gt;
&lt;br /&gt;
Special section on 'advanced analysis with QGIS' - GRASS, Carson Farmer's&lt;br /&gt;
plugins with R, etc.&lt;br /&gt;
&lt;br /&gt;
Then spend a bit more time at the end revisiting areas that the audiences&lt;br /&gt;
wants.&lt;br /&gt;
&lt;br /&gt;
'''9. Show off session'''&lt;br /&gt;
&lt;br /&gt;
Here we can do some whizz bang demo stuff that we don't have time to do in  workshop format but that will give you some hints as to what else can be achieved.&lt;br /&gt;
&lt;br /&gt;
Terrain modelling and drapes.&lt;br /&gt;
&lt;br /&gt;
'''10. General'''&lt;br /&gt;
&lt;br /&gt;
Questions and answers.  What you can do next.  Resources.  Possibly some in-depth examples based on frequent questions.  What would you like to see at future workshops?&lt;br /&gt;
&lt;br /&gt;
'''11. Your assessment of the workshop'''&lt;br /&gt;
&lt;br /&gt;
Tell us what you thought!&lt;br /&gt;
&lt;br /&gt;
= Workshop Notes =&lt;br /&gt;
&lt;br /&gt;
== Welcome, introductions and overview ==&lt;br /&gt;
&lt;br /&gt;
== Lets make a map - First steps with QGIS ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Africa]]&lt;/div&gt;</summary>
		<author><name>Wiki-Brendonwp</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=AfricaEvents29November2008&amp;diff=32748</id>
		<title>AfricaEvents29November2008</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=AfricaEvents29November2008&amp;diff=32748"/>
		<updated>2008-12-01T09:07:57Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Brendonwp: /* First we show you */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;...back to [[Africa_Local_Chapter]]&lt;br /&gt;
&lt;br /&gt;
= What? =&lt;br /&gt;
&lt;br /&gt;
Our first OSGeo local chapter meet up! We will chew the cud, show you some cool stuff and start to get people familiar with the brilliant FOSS GeoSpatial products out there!&lt;br /&gt;
&lt;br /&gt;
We'll go through installing some software and getting it to a point where you can have fun with it. &lt;br /&gt;
&lt;br /&gt;
= How Much? =&lt;br /&gt;
&lt;br /&gt;
There will be a door charge of R50 to cover costs &amp;amp; refreshments. That and an open mind are all you need to bring. If you're staying for the QGIS session in the afternoon you can bring your laptop (Windows, Linux or Mac!)&lt;br /&gt;
&lt;br /&gt;
= Where? =&lt;br /&gt;
&lt;br /&gt;
 St Davids Marist Inanda College&lt;br /&gt;
 36 Rivonia Rd&lt;br /&gt;
 Inanda&lt;br /&gt;
 Sandton&lt;br /&gt;
[http://www.stdavids.co.za/about_directions.asp Map and Directions]&lt;br /&gt;
&lt;br /&gt;
NB: We'll be in the Prep School computer lab.&lt;br /&gt;
&lt;br /&gt;
= When? =&lt;br /&gt;
&lt;br /&gt;
* November 29th&lt;br /&gt;
* Presentation and workshop segment: 9am to 12pm&lt;br /&gt;
* QGIS Bug Party! 12h30 onwards&lt;br /&gt;
&lt;br /&gt;
= Who =&lt;br /&gt;
&lt;br /&gt;
Your friendly presenters for the day will be:&lt;br /&gt;
&lt;br /&gt;
* '''Tim Sutton''' (tim at linfiniti.com) - QGIS hacker and FOSS GIS junkie extraordinaire. Tim eats Weetbix for breakfast because it sounds like Linux. He once rewrote Nkosi Sikelela in C++ because he was feeling patriotic.&lt;br /&gt;
* '''Graeme McFerren''' - (graeme.mcferren at gmail.com) - GIS researcher and FOSS4G user. Mmm, aspire to be like Tim then.&lt;br /&gt;
* '''Gavin Fleming''' (gavinjfleming at gmail dot com) - I enjoy my daily FOSS4G fix and telling people how great it was. I'm a 'geoinformation scientist' at Mintek and love to see cutting edge and useful geospatial applications emerging. &lt;br /&gt;
* '''Brendon Wolff-Piggott''' - (brendon at integratedgeodata.co.za) - Water resources consultant and FOSS GIS enthusiast.  I wish there were more hours in the day to keep up with FOSS4G!&lt;br /&gt;
&lt;br /&gt;
= RSVP =&lt;br /&gt;
Let gavinjfleming at gmail dot com know if you're coming as numbers are limited. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= QGIS Bug Party =&lt;br /&gt;
&lt;br /&gt;
As a preview release there are still various bugs that need resolving and various elements (e.g. translation) that may be incomplete. On Saturday the 29th in Johannesburg, South Africa, members from the Africa OSGeo chapter will be holding a QGIS Bug Hunt Party. We would like to invite people from around the world to virtually participate. Each person attending will get a free copy of QGIS 1.0.0 Preview 2 absolutely free of charge! Sorry no shrink wrap copies available. Preview 2 is the second in a series of preview releases we are making before we release the Stable QGIS 1.0.0 with long term support. &lt;br /&gt;
We are going to great lengths to polish up QGIS 1.0 for you (inside and out) and we really appreciate all the feedback we have received thus far. Its virtually impossible to ship any software completely bug free, but with your help we can add just a little more shine to the polish! We need your help to:&lt;br /&gt;
&lt;br /&gt;
* test on different machine configurations (bring your laptops!)&lt;br /&gt;
* validate existing bugs on each platform&lt;br /&gt;
* mark bugs that can no longer be replicated as ready for closure&lt;br /&gt;
* create new tickets for bugs that have not been reported yet (please search first to avoid posting duplicates!)&lt;br /&gt;
* mark bugs that are duplicates&lt;br /&gt;
* provide additional diagnostics so that developers can replicate issues&lt;br /&gt;
&lt;br /&gt;
The idea is not to try to *fix* the bugs, but rather to do a QA session on the bugs in the bug tracker. In the process you will learn how to interact with an Open Source project the Right Way i.e. filing good quality bug reports.&lt;br /&gt;
&lt;br /&gt;
I will start off with a simple show and tell covering:&lt;br /&gt;
* where to find the QGIS (and other OSGeo projects bug tracking sites)&lt;br /&gt;
* creating an account so you can file non-anonymous bugs and feedback on any OSGeo project bug tracker&lt;br /&gt;
* how the bug tracking system works - what the various input fields in the QGIS tracker mean&lt;br /&gt;
&lt;br /&gt;
The approach will be to start by going through any bugs that have not been revised recently, adding additional status information. If you think the bug is fixed, add a comment:&lt;br /&gt;
&lt;br /&gt;
'''Works for me now, recommend closure, &amp;lt;Your Name&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
If you can replicate the bug, add a comment like:&lt;br /&gt;
&lt;br /&gt;
'''Can replicate, OS: Ubuntu 8.10, QGIS Preview 2, &amp;lt;Your Name&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Use your initiative to deal with tickets that don't fit into the categories above, following a similar approach.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After that I will turn you loose on the queue and a shiny copy of QGIS preview 2 and let you have at it. Party is over when the last man falls asleep at the keyboard! Ok probably we will finish at between 4:30pm and 5pm if my wife has anything to do with it!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We look forward to seeing you at the QGIS Bug Party!!!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Programme in a nutshell =&lt;br /&gt;
&lt;br /&gt;
* Be there in time for a 9am start&lt;br /&gt;
* Morning session: Introducing QGIS, PostGIS, GeoServer, uDig&lt;br /&gt;
* Afternoon session: QGIS Bug Party&lt;br /&gt;
&lt;br /&gt;
Note: There will be frequent rest breaks and lots of time to ask questions!&lt;br /&gt;
&lt;br /&gt;
'''1. Welcome, Introduction and Overview: Starting up (5 minutes)'''&lt;br /&gt;
&lt;br /&gt;
What am I looking at here? What do I need to do to get started?&lt;br /&gt;
&lt;br /&gt;
'''2. QGIS: Opening and viewing spatial data. Your first map. (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
What can I look at? How do I set up a simple map?  Toolbars and Plug-ins. &lt;br /&gt;
&lt;br /&gt;
'''3. PostGIS: Why use PostGIS? Simple example of loading data. (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
Why use a spatial database? What does one look like? How do I populate a spatial database and where does my data live?&lt;br /&gt;
&lt;br /&gt;
'''4. QGIS: Looking at PostGIS data from QGIS.  (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
View a PostGIS database from QGIS.  Setting up data definitions for PostGIS sources.  Loading data into PostGIS with the Spit Loader (no, please don't touch the screen!)&lt;br /&gt;
&lt;br /&gt;
'''5. PostGIS: More than a place to dump data... (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
PostGIS is not just good for storing data, one can manipulate it too! GIS can be done inside the database, which is rather nice when you think about it.&lt;br /&gt;
&lt;br /&gt;
'''6. uDig: Why uDig?  GIS and the Web.  (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
Getting GIS data ready for presentation on the Web! Editing SLDs.&lt;br /&gt;
&lt;br /&gt;
'''7. GeoServer: Tell everyone about it!  (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
Displaying GIS data on the web.  Grouped WMS.  Scale-dependent rendering.&lt;br /&gt;
&lt;br /&gt;
'''8. And more QGIS.'''&lt;br /&gt;
&lt;br /&gt;
Detail on symbology.  Topological editing. QML, SPD and Openlayers.  (15 minutes)&lt;br /&gt;
&lt;br /&gt;
'''9. Show off session'''&lt;br /&gt;
&lt;br /&gt;
Here we can do some whizz bang demo stuff that we don't have time to do in  workshop format but that will give you some hints as to what else can be achieved.&lt;br /&gt;
&lt;br /&gt;
'''10. General'''&lt;br /&gt;
&lt;br /&gt;
Questions and answers.  What you can do next.  Resources.  Possibly some in-depth examples based on frequent questions.  What would you like to see at future workshops?&lt;br /&gt;
&lt;br /&gt;
'''11. Your assessment of the workshop'''&lt;br /&gt;
&lt;br /&gt;
Tell us what you thought!&lt;br /&gt;
&lt;br /&gt;
= Workshop Notes =&lt;br /&gt;
&lt;br /&gt;
== Welcome, introductions and overview ==&lt;br /&gt;
&lt;br /&gt;
== Lets make a map - First steps with QGIS ==&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
* Open QGIS using the icon on the top Gnome Panel&lt;br /&gt;
* From the Layer menu, select '''Add Vector Layer'''&lt;br /&gt;
  Layer -&amp;gt; Add Vector Layer&lt;br /&gt;
* A dialog box will appear&lt;br /&gt;
* Navigate to &lt;br /&gt;
  /home/workshop/gisdata/za/brits/SAExplorer/&lt;br /&gt;
* Add the following layer :&lt;br /&gt;
  Provinces.shp&lt;br /&gt;
* Experiment with the '''map navigation toolbar''' to zoom in / out, pan, select etc features.&lt;br /&gt;
* Open the '''Layer properties dialog'''. There are several ways you can do this:&lt;br /&gt;
  1) Select the layer in the legend and then from the menu do Layer -&amp;gt; Properties&lt;br /&gt;
  or&lt;br /&gt;
  2) Right click on the layer in the legend and choose Properties from the context menu&lt;br /&gt;
  or&lt;br /&gt;
  3) Double click on the layer in the legend&lt;br /&gt;
* Familiarise yourself with the various panels in the vector properties dialog.&lt;br /&gt;
* Select the '''Symbology''' tab (second from the left)&lt;br /&gt;
* From the '''Style Options''' panel, choose a pleasing '''fill colour''' for the provinces then &lt;br /&gt;
  Click OK&lt;br /&gt;
&lt;br /&gt;
Or you can:&lt;br /&gt;
* Select the '''Legend Type''' as ''Unique Value''.  &lt;br /&gt;
* Set the '''Classification field''' to ''PROVNAME''&lt;br /&gt;
* Click on the '''Classify''' button to set '''different colours for each province'''.&lt;br /&gt;
  Click OK&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
'''Add''' the following layers (also from the /home/workshop/gisdata/za/brits/SAExplorer/ directory)&lt;br /&gt;
&lt;br /&gt;
  Transport_NationalRoads.shp&lt;br /&gt;
  Transport_Railways.shp&lt;br /&gt;
  RSATowns.shp&lt;br /&gt;
  Dams.shp&lt;br /&gt;
 &lt;br /&gt;
'''Zoom and pan''' around a little to explore your data'''&lt;br /&gt;
'''Symbolise''' each layer with an appropriate colour to make the most awe inspiring map.&lt;br /&gt;
&lt;br /&gt;
Activate the '''Identify features''' icon on the middle toolbar to identify the attribute values associated with a spatial feature for the layer highlighted in the Legend Box.&lt;br /&gt;
&lt;br /&gt;
Activate the '''Select Features''' icon next to Identify Features to select one or more features.  &lt;br /&gt;
&lt;br /&gt;
Open the attribute table to view all feature attributes. Note that selected features will have highlighted rows in the attribute table.  You can do this using the neighbouring '''Open Attribute Table''' icon, or by selecting the Open Attribute Table option on the context menu for the layer in the legend using right-click on the mouse.&lt;br /&gt;
&lt;br /&gt;
You can also select rows in the attribute table by:&lt;br /&gt;
* Left-clicking on the desired rows.&lt;br /&gt;
* Using the '''Search''' box at the bottom-left of the form.&lt;br /&gt;
* Selecting the '''Advanced''' button and opening the '''Search Query Builder'''. &lt;br /&gt;
&lt;br /&gt;
Save your project using &lt;br /&gt;
 File -&amp;gt; Save&lt;br /&gt;
&lt;br /&gt;
And put it into&lt;br /&gt;
 /home/workshop/gisdata/brits.qgs&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
In ten minutes you now know how to '''add vector layers''' into QGIS, '''pan and zoom''' to navigate the map, and set the colour of vectors using the '''Single Symbol''' or '''Unique Values''' options in the '''Layer Properties'''.&lt;br /&gt;
&lt;br /&gt;
You have also learnt how to use the interactive '''Identify''' and '''Select''' functions, '''opened attribute tables''' and found out how to '''search''' them.&lt;br /&gt;
&lt;br /&gt;
== More on QGIS Mapping ==&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
Add the vector layer '''Education_Schools2000.shp''' from the SAExplorer directory.  Notice how dense the points are!&lt;br /&gt;
&lt;br /&gt;
* Right-click on the schools layer in the Legend frame.&lt;br /&gt;
* Select '''Properties'''&lt;br /&gt;
* Select the '''General tab'''&lt;br /&gt;
* Check '''Use scale dependent rendering'''&lt;br /&gt;
* Set the maximum field to 1000000&lt;br /&gt;
&lt;br /&gt;
* Zoom out to view the whole country.    '''Notice that the schools no longer appear on the map!''' &lt;br /&gt;
* Now start zooming in, keeping an eye on the scale shown in the '''scale box''' at the bottom of the screen.&lt;br /&gt;
&lt;br /&gt;
 Notice how the schools points reappear when the scale decreases below 1:1000000&lt;br /&gt;
 &lt;br /&gt;
* From the Layer menu, select '''Add Raster Layer'''&lt;br /&gt;
  Layer -&amp;gt; Add Raster Layer&lt;br /&gt;
* A dialog box will appear&lt;br /&gt;
* Navigate to &lt;br /&gt;
  /home/workshop/gisdata/za/gauteng/&lt;br /&gt;
* Add the following layer :&lt;br /&gt;
 SOU-8_satellite.tif&lt;br /&gt;
&lt;br /&gt;
Notice that the image is largely in shades of greyish-brown, but that a dam can be seen towards the bottom of the image. &lt;br /&gt;
&lt;br /&gt;
* Open the Properties for the raster layer, in a similar way to that used for vector layers.&lt;br /&gt;
 Layer -&amp;gt; Properties&lt;br /&gt;
* Select the '''Transparency''' tab.&lt;br /&gt;
* Using the slider, set transparency to 25%&lt;br /&gt;
* Click OK&lt;br /&gt;
Notice how the you can now see the vector layers behind the satellite image.&lt;br /&gt;
 &lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
If you have not already done so, add the vector layers Transport_NationalRoads.shp and Transport_Mainroads.shp from /home/workshop/gisdata/za/brits/SAExplorer.&lt;br /&gt;
Set scale-dependent rendering so that the national roads display at all scales, while the main roads are only shown when you are zoomed in. &lt;br /&gt;
&lt;br /&gt;
Go to the satellite image properties, Symbology tab.  Try the different &amp;quot;Render as&amp;quot; options.  Then when you have found the one that suits you, have a look at the &amp;quot;Contast Enhancement&amp;quot; options.  Compare &amp;quot;No Stretch&amp;quot; and &amp;quot;Stretch to MinMax&amp;quot;.  &lt;br /&gt;
&lt;br /&gt;
Try &amp;quot;Render as Single Band Grey&amp;quot;.  Set the &amp;quot;Custom min/max values&amp;quot; radio button.  Change the Min and Max values.  Go to &amp;quot;Contract Enhancement&amp;quot; again and set it to &amp;quot;Stretch and Clip to MinMax&amp;quot;, and see the effect.&lt;br /&gt;
&lt;br /&gt;
Add raster images of 1: 50 000 map sheets from &amp;quot; /home/workshop/gisdata/za/brits/toposheet images&amp;quot; &lt;br /&gt;
You will need to set the Files of Type box to '''JPEG JFIF''' to see them, before you can select them.&lt;br /&gt;
Set their transparency to a value that allows you to see the vector features behind them.  Zoom in and look at how the vector features and image features match (or not!).&lt;br /&gt;
&lt;br /&gt;
Notice how you can zoom right in to vector data, and a point remains a point and a line remains a line.  When you zoom in to the satellite image it rapidly appears &amp;quot;blocky&amp;quot; compared to the 50 000 map sheets. Zoom in enough and even the map sheet raster blocks can be seen.  This is a basic difference between vector and raster data.&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
You have learnt to set scale-dependent rendering so that data sets are displayed at appropriate scales, how to add raster data and set raster display options.&lt;br /&gt;
&lt;br /&gt;
== Shapefiles shmapefiles....real (wo)men store their data in PostGIS ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
* '''Create''' a new PostgreSQL database. To do this, open the terminal application (icon to the right of Firefox icon on the top menu bar). Now at the prompt type the following command:&lt;br /&gt;
  createdb workshop&lt;br /&gt;
&lt;br /&gt;
* '''Verify''' your database exists (once again type this into the terminal)&lt;br /&gt;
  psql -l&lt;br /&gt;
* You should see something like this:&lt;br /&gt;
 workshop@heron:~$ psql -l&lt;br /&gt;
        List of databases&lt;br /&gt;
   Name    |  Owner   | Encoding &lt;br /&gt;
 -----------+----------+----------&lt;br /&gt;
 postgres  | postgres | UTF8&lt;br /&gt;
 template0 | postgres | UTF8&lt;br /&gt;
 template1 | postgres | UTF8&lt;br /&gt;
 workshop  | workshop | UTF8&lt;br /&gt;
 (4 rows)&lt;br /&gt;
* away from the terminal for a while - lets look at what a non-spatial, vanilla PostgreSQL database looks like. Open pgAdmin 3  (the icon with a blue elephant face)&lt;br /&gt;
* Double-click on the icon that has a red cross next to some text &amp;quot;gis (localhost:5432)&amp;quot; and press OK if another screen comes up. The database cluster called gis expands and you should see two databases: 'postgres' and 'workshop'. Expand workshop -&amp;gt; Schemas -&amp;gt; public&lt;br /&gt;
Specifically, let us look at Functions and Tables - don't look to deeply, this is just to show the differences after PostGIS is installed on the database (you will see later). Specifically, there is nothing in the db at the moment. So minimise pgAdmin and lets crack on with getting some data in!&lt;br /&gt;
&lt;br /&gt;
* Install the PostGIS spatial data extensions (again from the terminal).&lt;br /&gt;
'''Hint''' copy and paste these from the IRC channel or the wiki page!&lt;br /&gt;
 createlang plpgsql workshop&lt;br /&gt;
 psql workshop &amp;lt; /usr/share/postgresql-8.3-postgis/lwpostgis.sql&lt;br /&gt;
 psql workshop &amp;lt; /usr/share/postgresql-8.3-postgis/spatial_ref_sys.sql&lt;br /&gt;
&lt;br /&gt;
* Yegads! What did I just do? Firstly, you installed the '''plpgsql''' procedural language extensions into your PostgreSQL database. Then you ran two sql scripts which create the '''PostGIS''' spatial extensions to your database. You only need to do this '''once''' when you create a new spatial database, so don't worry about remembering those commands off by heart.&lt;br /&gt;
* Lets upload a shapefile into the database....once more into the black hole (terminal window).&lt;br /&gt;
 cd /home/workshop/gisdata/za/brits/SAExplorer&lt;br /&gt;
 shp2pgsql -I -s 4326 Dams.shp dams | psql -d workshop&lt;br /&gt;
* Erk! What does that all mean? Lets break it down:&lt;br /&gt;
 cd /home/workshop/gisdata/za/brits/SAExplorer - go to our data directory&lt;br /&gt;
 shp2pgsql - an application that loads shapefiles into a PostGIS database&lt;br /&gt;
 -I - an option to shp2pgsql telling it to create a spatial index&lt;br /&gt;
 -s - the coordinate reference system to use, expressed as an EPSG number. 4326 is the same as Lat/Long WGS84&lt;br /&gt;
 Dams.shp - the filename of the shapefile to load&lt;br /&gt;
 dams - the table name that the data should be loaded into&lt;br /&gt;
 | psql workshop - send the results of the shp2pgsql into the psql application, workshop database&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Lets take a peek inside our database now and see what we have - back to pgAdmin, click on the 'workshop' database icon and then refresh it (red/green circular arrows icon).&lt;br /&gt;
Three major things to look at:&lt;br /&gt;
 &lt;br /&gt;
 Hundreds of Functions for working with spatial data: &lt;br /&gt;
 * geometry constructors, &lt;br /&gt;
 * spatial predicates, &lt;br /&gt;
 * geometry editors, &lt;br /&gt;
 * geometry aggregators, &lt;br /&gt;
 * geometry accessors, &lt;br /&gt;
 * measurements, &lt;br /&gt;
 * linear referencing&lt;br /&gt;
 * and outputting  of spatial data. &lt;br /&gt;
 &lt;br /&gt;
 2 important meta-tables: (expand the Tables object)&lt;br /&gt;
 * geometry_columns (for describing the different spatial datasets) - right-click -&amp;gt; &lt;br /&gt;
 * and spatial_ref_sys(a list of projections/coordinate systems and different representations thereof)&lt;br /&gt;
&lt;br /&gt;
 A 'dams' table which, when expanded should show a bunch of Columns, Constraints (e.g. Primary Key), Indexes, Rules and Triggers. &lt;br /&gt;
 * Note the geometry type of column 'the_geom'. &lt;br /&gt;
 * Also note the spatial index present - this allows for optimal retrieval of data based on the spatial properties of the data.&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
'''Load''' the following layers (also from the /home/workshop/gisdata/za/brits/SAExplorer/ directory)&lt;br /&gt;
&lt;br /&gt;
 Hydrology_DWAFRivers.shp -&amp;gt; call the table 'rivers'&lt;br /&gt;
 Transport_Mainroads.shp -&amp;gt; call the table 'roads'&lt;br /&gt;
 ProvincialBoundary.shp -&amp;gt; call the table 'provinces'&lt;br /&gt;
&lt;br /&gt;
And to show that this can scale a bit, let us load in the background a dataset of over 350 000 points (which we will use a bit later)&lt;br /&gt;
 * cd /home/workshop/gisdata/za/fire/modis_af/&lt;br /&gt;
 * shp2pgsql -I -s 4326 modis_af.shp fires | psql -d workshop  &amp;amp;&amp;gt; /dev/null (puts output into background)&lt;br /&gt;
 * shp2pgsql -I -s -D 4326 modis_af.shp fires | psql -d workshop (simpler and faster)&lt;br /&gt;
&lt;br /&gt;
=== Super duper advanced ===&lt;br /&gt;
&lt;br /&gt;
What if I want to load a batch of shapefiles in a directory in 1 go? Try this nifty bash script one liner!&lt;br /&gt;
&lt;br /&gt;
 for FILE in `ls *.shp`; do TABLE=`echo $FILE | sed 's/\.shp//g'`; echo $TABLE;shp2pgsql -I -s 4326 $FILE $TABLE | psql -d workshop; done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This takes a while so lets move on.&lt;br /&gt;
&lt;br /&gt;
=== What have I learnt? ===&lt;br /&gt;
&lt;br /&gt;
* PostgreSQL is an enterprise-ready relational database management system - and it's Free and Open Source Software&lt;br /&gt;
* You can create a new database using the '''createdb''' command.&lt;br /&gt;
* '''PostGIS''' is a add-on to PostgreSQL that lets you store spatial data and carry out spatial analysis within the database.&lt;br /&gt;
* In order to set up PostGIS you need to run a couple of SQL scripts&lt;br /&gt;
* '''shp2pgsql''' is a command line application that lets you load shapefiles into your spatial datastore&lt;br /&gt;
&lt;br /&gt;
== Using PostGIS data from QGIS ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
Once your data is in PostGIS, its easy to share across your organisation. Because it's in a database you get row level locking (instead of file locking in a shapefile), so many users can be editing and viewing data at the same time. There are many clients that let you visualise your PostGIS data..lets take a look at how we do it in QGIS.&lt;br /&gt;
&lt;br /&gt;
* Open QGIS&lt;br /&gt;
* Start a new project&lt;br /&gt;
  File -&amp;gt; New Project&lt;br /&gt;
* Add a PostGIS layer&lt;br /&gt;
  Layer -&amp;gt; Add PostGIS Layer&lt;br /&gt;
* From the connections list, choose '''workshop'''&lt;br /&gt;
  Click connect&lt;br /&gt;
* In the table list, click on '''dams'''&lt;br /&gt;
  Click Add&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
* Add the following layers from your database&lt;br /&gt;
 rivers&lt;br /&gt;
 roads&lt;br /&gt;
 provinces&lt;br /&gt;
&lt;br /&gt;
* set some nice colors for your layers - notice how the process is exactly the same as when setting colours for a shapefile.&lt;br /&gt;
&lt;br /&gt;
* save your project into&lt;br /&gt;
&lt;br /&gt;
 /home/workshop/gisdata/brits_pg.qgs&lt;br /&gt;
&lt;br /&gt;
=== What have I learnt? ===&lt;br /&gt;
&lt;br /&gt;
* You can '''visualise''' PostGIS spatial database tables inside QGIS&lt;br /&gt;
* To add a PostGIS layer, use the '''Layer -&amp;gt; Add PostGIS Layer''' menu option.&lt;br /&gt;
* Once a PostGIS layer, you can treat it just like any other (e.g. shapefile) layer&lt;br /&gt;
* Your presenters are truly amazing....however would I have figured this stuff out for my self :-)&lt;br /&gt;
&lt;br /&gt;
== More on PostGIS Data in QGIS ==&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
* Click on the '''Blue Elephant''' icon in the middle toolbar row to start SPIT loader.&lt;br /&gt;
* Select the PostgreSQL Connection as &amp;quot;workshop&amp;quot;.&lt;br /&gt;
* Click on Connect to verify your connection&lt;br /&gt;
* Now click &amp;quot;Add&amp;quot; - the &amp;quot;Add Shapefile&amp;quot; dialog box comes up. &lt;br /&gt;
&lt;br /&gt;
Navigate to /home/workshop/gisdata/za/brits/SAExplorer.&lt;br /&gt;
&lt;br /&gt;
* Select &amp;quot;Rsatowns.shp&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 Click &amp;quot;Open&amp;quot;.  PostGIS scans the file and lists it in the display frame.&lt;br /&gt;
&lt;br /&gt;
 Click &amp;quot;OK&amp;quot;.  QGIS loads the shapefile data into PostGIS with no need to use the terminal!&lt;br /&gt;
&lt;br /&gt;
* Use Layer -&amp;gt; Add PostGIS Layer to load the layer from PostGIS directly into QGIS.  &lt;br /&gt;
&lt;br /&gt;
* Now add the rivers PostGIS layer to QGIS to see another advantage of using PostGIS layers.&lt;br /&gt;
* Open the Layer properties form.  &lt;br /&gt;
* On the General tab, click &amp;quot;Query Builder&amp;quot; near the bottom right-hand corner. This opens the Query Builder. &lt;br /&gt;
* Click Field &amp;quot;RIVER_CLAS&amp;quot;.&lt;br /&gt;
* Click the &amp;quot;All&amp;quot; button under the &amp;quot;Values&amp;quot; frame.&lt;br /&gt;
* Build the Query &lt;br /&gt;
 &amp;quot;RIVER_CLAS&amp;quot; LIKE 'Perennial' OR &amp;quot;RIVER_CLAS&amp;quot; LIKE 'Perennial river'&lt;br /&gt;
* Click &amp;quot;Test&amp;quot; to check that it will work.&lt;br /&gt;
* Click &amp;quot;OK&amp;quot; twice to apply it.&lt;br /&gt;
&lt;br /&gt;
Now look at the display - the query has not merely highlighted the selected features, it has filtered the non-selected features out so that they are not displayed.  &lt;br /&gt;
&lt;br /&gt;
=== Now you try ===&lt;br /&gt;
&lt;br /&gt;
* Try loading other layers into PostGIS using the Spit loader.&lt;br /&gt;
* Load these into QGIS, and use the &amp;quot;Query Builder&amp;quot; to define the data sets that you want to see.&lt;br /&gt;
* You could define the non-perennial rivers as a separate data set, and use scale-dependent rendering to show them only when you zoom right in.&lt;br /&gt;
&lt;br /&gt;
=== What I have learnt ===&lt;br /&gt;
&lt;br /&gt;
How to rapidly load data into postgis using the spit loader.  How to set up data queries to filter spatial data display from postgis.&lt;br /&gt;
&lt;br /&gt;
== The Zen of PostGIS - not just a pretty place to store data! ==&lt;br /&gt;
&lt;br /&gt;
Okay, we will go a bit deeper into the woods here! We want to show that with some SQL (I won't say simple) you can do some complex - and repeatable - spatial analysis right inside your database, and then visualise the results in various clients.&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
We will use pgAdmin (your great PostgreSQL friend) to get this happening. Click on the Tables object of your workshop db. Then Tools -&amp;gt; Query tool from the menu. This should present a dialog box with 3 panels.&lt;br /&gt;
&lt;br /&gt;
We are going to do a simple intersection to get started.&lt;br /&gt;
In the top left panel paste &lt;br /&gt;
 SELECT roads.gid, roads.code, roads.route_nr, roads.shape_leng, roads.the_geom FROM roads, rivers WHERE (roads.the_geom &amp;amp;&amp;amp; rivers.the_geom AND intersects(roads.the_geom, rivers.the_geom));&lt;br /&gt;
and click Query -&amp;gt; Execute&lt;br /&gt;
This should take a few seconds, then you will see a result returned into the Data Output grid. Something like 3338 rows are returned from the original roads dataset of 11964.&lt;br /&gt;
&lt;br /&gt;
So what is going on here?&lt;br /&gt;
&lt;br /&gt;
You are performing a spatial overlay with a SQL query, asking the database to return records from the roads table that spatially intersect records from the rivers table. &lt;br /&gt;
* the &amp;amp;&amp;amp; operator is a fast bounding box 'overlaps' test that takes advantage of the spatial indexes of the table to narrow the search space for the true intersection test.&lt;br /&gt;
* the intersects part of the query tests the geometries of the subset selected above for spatial intersection and returns a result.&lt;br /&gt;
&lt;br /&gt;
To show some other functionality, paste the following text into the query window and execute:&lt;br /&gt;
 ALTER TABLE roads DROP CONSTRAINT enforce_srid_the_geom;UPDATE geometry_columns SET srid = 4148 WHERE f_table_name = 'roads';COMMIT; UPDATE roads SET the_geom = ST_Transform(the_geom,4148);COMMIT; ALTER TABLE roads ADD CONSTRAINT enforce_srid_the_geom CHECK (srid(the_geom) = 4148);&lt;br /&gt;
We are being good South African GIS types and using our Haartebeesthoek94 Datum. Lets do the same for rivers:&lt;br /&gt;
 ALTER TABLE rivers DROP CONSTRAINT enforce_srid_the_geom;UPDATE geometry_columns SET srid = 4148 WHERE f_table_name = 'rivers';COMMIT; UPDATE rivers SET the_geom = ST_Transform(the_geom,4148);COMMIT; ALTER TABLE rivers ADD CONSTRAINT enforce_srid_the_geom CHECK (srid(the_geom) = 4148);&lt;br /&gt;
&lt;br /&gt;
This looks fairly intense, but the main points are the changing of the data in the geometry_columns meta-table and then updating the geometries in each table to a different CRS (4148, or Haartebeesthoek94). We demonstrate the use of the UPDATE SQL command, used to change data in the database, and the use of the ST_Transform function of PostGIS, which does the work. Now lets try the original query again:&lt;br /&gt;
 SELECT roads.gid, roads.code, roads.route_nr, roads.shape_leng, roads.the_geom FROM roads, rivers WHERE st_intersects(roads.the_geom, rivers.the_geom);&lt;br /&gt;
...which returns the same number of features, but in our own CRS. Note that we have used the ST_Intersects function rather than the Intersects function as previously shown. ST_ type functions are more standards compliant, so should be used in place of the older style functions.&lt;br /&gt;
Ideally we would project the data as appropriate, using the very same technique, but substituting 4148 for the EPSG code for our projection of choice. This is a demo though, folks, so I will get away with murder...&lt;br /&gt;
Lets quickly repeat the process for the other datasets we will use in a minute:&lt;br /&gt;
 ALTER TABLE provinces DROP CONSTRAINT enforce_srid_the_geom;UPDATE geometry_columns SET srid = 4148 WHERE f_table_name = 'provinces';COMMIT; UPDATE provinces SET the_geom = ST_Transform(the_geom,4148);COMMIT; ALTER TABLE provinces ADD CONSTRAINT enforce_srid_the_geom CHECK (srid(the_geom) = 4148);&lt;br /&gt;
 ALTER TABLE fires DROP CONSTRAINT enforce_srid_the_geom;UPDATE geometry_columns SET srid = 4148 WHERE f_table_name = 'fires';COMMIT; UPDATE fires SET the_geom = ST_Transform(the_geom,4148);COMMIT; ALTER TABLE fires ADD CONSTRAINT enforce_srid_the_geom CHECK (srid(the_geom) = 4148);&lt;br /&gt;
&lt;br /&gt;
So, while that goes ahead (it will take a minute or so to transform 350k points), let us think out another analysis. Lets make it a bit tricky. Okay, we want to create a table for serving up data to the outside world (Gavin will do this later) that has all the intense fires in Gauteng or NorthWest Province, that have occurred within 3000 metres of a main road. There are many ways to skin this cat in PostGIS, so I will pick a method and explain why I did so.&lt;br /&gt;
First, a convenience table is created:&lt;br /&gt;
 SELECT roads.gid, ST_Buffer(roads.the_geom,0.027) AS geom INTO roads_buffer FROM roads, (SELECT * FROM provinces WHERE prov_code = 'GT' OR prov_code = 'NW') AS prov WHERE ST_Within(roads.the_geom, prov.the_geom);&lt;br /&gt;
This is a table of polygons representing ~3000 metre road buffers, and note the use of the function to populate the geometry_columns meta-table with our new layer.&lt;br /&gt;
 SELECT DISTINCT fires.gid, fires.frp, fires.acqdatetim, fires.the_geom INTO fires_analysis_3000m FROM fires, (SELECT * FROM provinces WHERE prov_code = 'GT' OR prov_code = 'NW') AS prov, roads_buffer  WHERE fires.frp &amp;gt; 200 AND ST_Within(fires.the_geom, prov.the_geom) AND ST_Within(fires.the_geom, roads_buffer.geom);&lt;br /&gt;
The main feature of this query is the longish WHERE clause, which tests weather the fire is intense, whether it falls within Gauteng or NW Province and whether the fire occurred within appx 3000 metres of one of our main roads.&lt;br /&gt;
&lt;br /&gt;
There are not too many fires that fall out of this analysis, but it shows how we have relatively easily worked with and reduced a large dataset to a few points. These queries can be further tuned to take advantage of spatial and other indexes, but that is perhaps for another time.&lt;br /&gt;
&lt;br /&gt;
The final thing we will do is prepare this layer for use on the web...&lt;br /&gt;
 INSERT INTO geometry_columns(f_table_catalog,f_table_schema,f_table_name,f_geometry_column,coord_dimension,srid,&amp;quot;type&amp;quot;) VALUES('','public','fires_analysis_3000m','the_geom',2,4148,'MULTIPOINT');&lt;br /&gt;
Normal meta-table stuff&lt;br /&gt;
 ALTER TABLE fires_analysis_3000m ADD PRIMARY KEY (gid);&lt;br /&gt;
And if we wanted to we could add a spatial index:&lt;br /&gt;
 CREATE INDEX fires_Analysis_3000m_the_geom_gist ON fires_Analysis_3000m USING gist(the_geom);&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
Well, no you do not - but you can ask questions...&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
Well, hopefully a fair bit. You can, with a bit of practice and reading up on the matter, get PostGIS to do some rather interesting and powerful things. We have just seen a database do GIS... Some of you may be in the know about such matters, but hopefully this shows some possibilities to others.&lt;br /&gt;
&lt;br /&gt;
== uDig ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
uDig ('user-friendly desktop internet GIS') is another excellent desktop GIS. let's check out the basics&lt;br /&gt;
&lt;br /&gt;
* Open uDig&lt;br /&gt;
* start adding layers (note the variety of data that can be used)&lt;br /&gt;
** Add a PostGIS layer&lt;br /&gt;
** add a shapefile&lt;br /&gt;
* theme the layers&lt;br /&gt;
* check out the table view, catalogue and some functionality&lt;br /&gt;
&lt;br /&gt;
There's no need to save projects - you can just close uDig and it will save automatically. Note &lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
* Add the following layers from your database&lt;br /&gt;
 rivers, dams, schools, roads, more if you like&lt;br /&gt;
&lt;br /&gt;
* theme the school layer with nice symbols and labels - we're going to try scale-dependent rendering&lt;br /&gt;
**zoom in closer than 1:50000 and set the max scale to 50000&lt;br /&gt;
**on the theme dialog, click XML&lt;br /&gt;
**select the &amp;lt;rule&amp;gt;&amp;lt;/rule&amp;gt; section and copy it to a text editor.&lt;br /&gt;
**zoom out beyond 50000, go back to 'theme' and simplify your symbols, removing the labels.&lt;br /&gt;
**set the min scale to 50000&lt;br /&gt;
**click 'XML'&lt;br /&gt;
**paste the previous 'rule' into the XML, before or after the one you see.&lt;br /&gt;
**click OK! now zoom in and out past to see the result. &lt;br /&gt;
 &lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
* Viewing and rendering different formats in uDig&lt;br /&gt;
* Theming with SLD (Styled layer descriptor), the OGC standard.&lt;br /&gt;
* scale-dependent rendering&lt;br /&gt;
** with a point - we're going to come back to uDig!&lt;br /&gt;
&lt;br /&gt;
== GeoServer ==&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
 cd&lt;br /&gt;
 export JAVA_HOME=/usr&lt;br /&gt;
 cd Apps/geoserver&lt;br /&gt;
 bin/startup.sh&lt;br /&gt;
&lt;br /&gt;
* Start geoserver (normally set to start automatically and run all the time)&lt;br /&gt;
* All admin is done via the web&lt;br /&gt;
* set up a namespace&lt;br /&gt;
* set up data stores&lt;br /&gt;
* set up feature types&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
* start GeoServer&lt;br /&gt;
* click Config -&amp;gt; Data&lt;br /&gt;
* Set Namespace to any name and any url&lt;br /&gt;
* Set Datastore to your postGIS database&lt;br /&gt;
* define a FeatureType for schools, choose a point style&lt;br /&gt;
'''Styling'''&lt;br /&gt;
*Go to Data -&amp;gt; Style -&amp;gt; new&lt;br /&gt;
**give your style a name and paste in your school SLD from uDig&lt;br /&gt;
**submit&lt;br /&gt;
**Go back to FeatureTypes and Edit your schools Feature, applying your new style&lt;br /&gt;
**Check out the results in the GeoServer demo pages&lt;br /&gt;
&lt;br /&gt;
'''Group layers'''&lt;br /&gt;
* Set up a group in the 'WMS' section&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Back to uDig&lt;br /&gt;
*bring in a WMS layer from http://localhost/geoserver:8080/wms&lt;br /&gt;
*bring in the same layer as WFS&lt;br /&gt;
**theme it&lt;br /&gt;
**save it as a shapefile&lt;br /&gt;
*try this with QGIS too (and with ArcGIS back at the office!)&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
* you can use GeoServer to serve your spatial data from any source as WMS, WFS, KML and more!&lt;br /&gt;
* You can use WMS and WFS layers in a desktop GIS&lt;br /&gt;
* impress your colleagues by sending them kml links from your geoserver so they can view them live in Google Earth!&lt;br /&gt;
&lt;br /&gt;
== More Advanced QGIS Use ==&lt;br /&gt;
Here are some more things you can do with QGIS!  Don't be put off by the heading of this section, we'll take you through step-by-step as before..&lt;br /&gt;
&lt;br /&gt;
=== ''Quick Qml with QGIS'' ===&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
If you have used  ArcView before, you might have used the avl feature which lets you store the symbology settings for a layer. QGIS has a similar feature called 'qml' which lets you create default symbology settings for a layer, that will be applied when ever that layer is loaded. We are also going to take a quick peek at how to create more complex symbology for a layer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Open QGIS if its not already running.&lt;br /&gt;
* Add the dams layer from the Postgresql 'Workshop' database&lt;br /&gt;
* Double click on the layer entry in the legend&lt;br /&gt;
* Activate the symbology tab&lt;br /&gt;
* Now change the legend type to '''Graduated Symbol'''&lt;br /&gt;
* Change the classification field to '''shape_area'''&lt;br /&gt;
* Set the '''number of classes''' to 5&lt;br /&gt;
* Click the '''classify''' button&lt;br /&gt;
* Click the '''Apply''' button&lt;br /&gt;
&lt;br /&gt;
You should see the shapes in the main window have now adopted a range of scintillating colours! However is you add that layer to another QGIS project you would normally have to do all this work again! Qml to the rescue.&lt;br /&gt;
&lt;br /&gt;
* Save your symbology settings by clicking the '''save as default''' button&lt;br /&gt;
&lt;br /&gt;
Ok lets test it out!&lt;br /&gt;
&lt;br /&gt;
* Close QGIS&lt;br /&gt;
* Reopen QGIS&lt;br /&gt;
* Add the Dams layer from the Postgresql 'Workshop' database&lt;br /&gt;
&lt;br /&gt;
If the planets are correctly aligned, your dams will appear all beautifully coloured according to your personal preference.&lt;br /&gt;
&lt;br /&gt;
If you want to you can also save your settings as non-default, and them restore them by selecting a .qml file again later. Refer to the '''Load style''' and '''Save style''' buttons on the vector properties dialog.&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
Ok give it a whirl, create default appearances for your other layers stored in your PostGIS database. Also try experimenting with the other legend types such as '''Continuous Colour''' and '''Unique Value'''. &lt;br /&gt;
Once you have set your default appearances, close QGIS and then reopen it. Now add all your PostGIS layers to the blank project and they should all magically appear with your preferred appearance.&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
The '''Layer Properties''' dialog in QGIS will let you specify the '''default appearance''' for a layer.&lt;br /&gt;
&lt;br /&gt;
=== ''Setting Projections'' ===&lt;br /&gt;
Projections are a mathematical way of transforming latitude and longitude coordinates into a form that can be meaningfully used in a map.  Sources to be added.&lt;br /&gt;
Some projections in common use in South Africa are the Albers Equal Area, Lamberts Conformal Conic and Gauss (LO) projections.&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
* Make sure that you are zoomed in to Gauteng.&lt;br /&gt;
* From the File menu, select Project Properties.&lt;br /&gt;
  File -&amp;gt; Project Properties&lt;br /&gt;
* Activate the Coordinate Reference System tab&lt;br /&gt;
* Check &amp;quot;Enable &amp;quot;on the fly&amp;quot; CRS Transformation&lt;br /&gt;
* Note that the current Coordinate Reference System is WGS84, which is a standard for displaying geographic coordinates.&lt;br /&gt;
* Look at the column EPSG - this a standard for identifying coordinate systems.  When you have selected a coordinate system you can always find it again quickly by noting the EPSG code and entering it into the '''Find box''' at the bottom of the form.&lt;br /&gt;
* Highlight the ''Projected Coordinate Systems&amp;quot; heading, and double-click to open the list.&lt;br /&gt;
* Scroll down and highlight the &amp;quot;Universal Transverse Mercator&amp;quot; heading.&lt;br /&gt;
* Select the '''Name''' radio button.&lt;br /&gt;
* Enter &amp;quot;33S&amp;quot; in the text box, and press find.  Keep pressing find until you get to &amp;quot;WGS 84/UTM Zone 33&amp;quot;.  &lt;br /&gt;
 Or select the EPSG ID radio button, enter 32733 and press the Find button.    Isn't that easier?&lt;br /&gt;
* Notice that the overall shape of the country has changed due to the projection.&lt;br /&gt;
* Zoom into Gauteng again.  Move your cursor and look at the coordinates shown at the bottom of the screen.  Notice how they have changed.  They are now in meters rather than decimal degrees.&lt;br /&gt;
&lt;br /&gt;
=== Now You Try! ===&lt;br /&gt;
First of all try a related projection such as UTM Zone 34S or UTM 38S, and see what the impact is.  Move your cursor around - how do the coordinates differ from ones shown under UTM 36S?&lt;br /&gt;
&lt;br /&gt;
Then try one of the Stereographic South projections, such as EPSG=3031,  for a very different view of South Africa!&lt;br /&gt;
&lt;br /&gt;
QGIS calculates the effect of the projection before displaying the data and doesn't make any changes, so you can try anything you like!&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
You have learnt how to set an on-the-fly projection for display in QGIS, and how to use EPSG codes to rapidly find a specific projection. Remember, if you are trying to develop a map for use in the field you will need to use a projection specific to South Africa.&lt;br /&gt;
&lt;br /&gt;
=== ''Editing Vector Data'' ===&lt;br /&gt;
Have a look at the boundary of the Eastern and Western Cape on the coast.  The rivers and provincial boundary seem to follow each other closely. Now zoom right in and notice how the provincial boundary is much more detailed than the rivers, and they don't follow each other well at all.&lt;br /&gt;
&lt;br /&gt;
QGIS to the rescue!&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
* Select the rivers layer in the Legend panel on the left.&lt;br /&gt;
* Click on the blue Pencil icon (Toggle Editing) on the leftmost toolbar on the bottom row or &amp;lt;menu option&amp;gt;.  &lt;br /&gt;
* Now click on the &amp;lt;edit vertices&amp;gt; icon. Notice how the river lines have suddenly sprouted small circles wherever the line changes direction.  These are the vertices - if you have used a drawing program before you might have seen something like this. &lt;br /&gt;
* Drag the vertices of the rivers to align with the provincial boundary.&lt;br /&gt;
 Notice that we don't have enough vertices to do this exactly.&lt;br /&gt;
* Click on the add vertices icon.  Now click on the river wherever more vertices are needed.  &lt;br /&gt;
* When you have enough vertices go back to &amp;quot;Edit Vertices&amp;quot; and move them where they need to be.&lt;br /&gt;
* Now save your changes using by clicking on &amp;quot;Toggle Editing&amp;quot; and selecting &amp;quot;Save&amp;quot; on the dialog box.&lt;br /&gt;
&lt;br /&gt;
=== Now You Try! ===&lt;br /&gt;
Go to Gauteng and bring up the JPEG map sheets behind the roads.  Have a look at the roads and notice where the vectors are not aligned with the base map.  Use the skills you have used to correct the roads vectors.  Try other tools like Split Features, Move Features and other to see what they do.  &lt;br /&gt;
&lt;br /&gt;
Then look at the rivers and provincial boundaries again.  See if you can find another place where the two are not aligned.  Experiment with the Snapping Options under Project Properties.  Use the Measure Length tool to decide on reasonable initial tolerance values.&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
You have now learned how to edit vector data in QGIS using the edit toolbar.  Editing data may not be as immediately rewarding as setting up a map onscreen or for printing, but it is important to be able to do this to get rid of errors that will spoil all the effort put into drawing up an impressive map!&lt;br /&gt;
&lt;br /&gt;
[[Category:Africa]]&lt;/div&gt;</summary>
		<author><name>Wiki-Brendonwp</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=AfricaEvents29November2008&amp;diff=32747</id>
		<title>AfricaEvents29November2008</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=AfricaEvents29November2008&amp;diff=32747"/>
		<updated>2008-12-01T09:05:47Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Brendonwp: /* What have I learned? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;...back to [[Africa_Local_Chapter]]&lt;br /&gt;
&lt;br /&gt;
= What? =&lt;br /&gt;
&lt;br /&gt;
Our first OSGeo local chapter meet up! We will chew the cud, show you some cool stuff and start to get people familiar with the brilliant FOSS GeoSpatial products out there!&lt;br /&gt;
&lt;br /&gt;
We'll go through installing some software and getting it to a point where you can have fun with it. &lt;br /&gt;
&lt;br /&gt;
= How Much? =&lt;br /&gt;
&lt;br /&gt;
There will be a door charge of R50 to cover costs &amp;amp; refreshments. That and an open mind are all you need to bring. If you're staying for the QGIS session in the afternoon you can bring your laptop (Windows, Linux or Mac!)&lt;br /&gt;
&lt;br /&gt;
= Where? =&lt;br /&gt;
&lt;br /&gt;
 St Davids Marist Inanda College&lt;br /&gt;
 36 Rivonia Rd&lt;br /&gt;
 Inanda&lt;br /&gt;
 Sandton&lt;br /&gt;
[http://www.stdavids.co.za/about_directions.asp Map and Directions]&lt;br /&gt;
&lt;br /&gt;
NB: We'll be in the Prep School computer lab.&lt;br /&gt;
&lt;br /&gt;
= When? =&lt;br /&gt;
&lt;br /&gt;
* November 29th&lt;br /&gt;
* Presentation and workshop segment: 9am to 12pm&lt;br /&gt;
* QGIS Bug Party! 12h30 onwards&lt;br /&gt;
&lt;br /&gt;
= Who =&lt;br /&gt;
&lt;br /&gt;
Your friendly presenters for the day will be:&lt;br /&gt;
&lt;br /&gt;
* '''Tim Sutton''' (tim at linfiniti.com) - QGIS hacker and FOSS GIS junkie extraordinaire. Tim eats Weetbix for breakfast because it sounds like Linux. He once rewrote Nkosi Sikelela in C++ because he was feeling patriotic.&lt;br /&gt;
* '''Graeme McFerren''' - (graeme.mcferren at gmail.com) - GIS researcher and FOSS4G user. Mmm, aspire to be like Tim then.&lt;br /&gt;
* '''Gavin Fleming''' (gavinjfleming at gmail dot com) - I enjoy my daily FOSS4G fix and telling people how great it was. I'm a 'geoinformation scientist' at Mintek and love to see cutting edge and useful geospatial applications emerging. &lt;br /&gt;
* '''Brendon Wolff-Piggott''' - (brendon at integratedgeodata.co.za) - Water resources consultant and FOSS GIS enthusiast.  I wish there were more hours in the day to keep up with FOSS4G!&lt;br /&gt;
&lt;br /&gt;
= RSVP =&lt;br /&gt;
Let gavinjfleming at gmail dot com know if you're coming as numbers are limited. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= QGIS Bug Party =&lt;br /&gt;
&lt;br /&gt;
As a preview release there are still various bugs that need resolving and various elements (e.g. translation) that may be incomplete. On Saturday the 29th in Johannesburg, South Africa, members from the Africa OSGeo chapter will be holding a QGIS Bug Hunt Party. We would like to invite people from around the world to virtually participate. Each person attending will get a free copy of QGIS 1.0.0 Preview 2 absolutely free of charge! Sorry no shrink wrap copies available. Preview 2 is the second in a series of preview releases we are making before we release the Stable QGIS 1.0.0 with long term support. &lt;br /&gt;
We are going to great lengths to polish up QGIS 1.0 for you (inside and out) and we really appreciate all the feedback we have received thus far. Its virtually impossible to ship any software completely bug free, but with your help we can add just a little more shine to the polish! We need your help to:&lt;br /&gt;
&lt;br /&gt;
* test on different machine configurations (bring your laptops!)&lt;br /&gt;
* validate existing bugs on each platform&lt;br /&gt;
* mark bugs that can no longer be replicated as ready for closure&lt;br /&gt;
* create new tickets for bugs that have not been reported yet (please search first to avoid posting duplicates!)&lt;br /&gt;
* mark bugs that are duplicates&lt;br /&gt;
* provide additional diagnostics so that developers can replicate issues&lt;br /&gt;
&lt;br /&gt;
The idea is not to try to *fix* the bugs, but rather to do a QA session on the bugs in the bug tracker. In the process you will learn how to interact with an Open Source project the Right Way i.e. filing good quality bug reports.&lt;br /&gt;
&lt;br /&gt;
I will start off with a simple show and tell covering:&lt;br /&gt;
* where to find the QGIS (and other OSGeo projects bug tracking sites)&lt;br /&gt;
* creating an account so you can file non-anonymous bugs and feedback on any OSGeo project bug tracker&lt;br /&gt;
* how the bug tracking system works - what the various input fields in the QGIS tracker mean&lt;br /&gt;
&lt;br /&gt;
The approach will be to start by going through any bugs that have not been revised recently, adding additional status information. If you think the bug is fixed, add a comment:&lt;br /&gt;
&lt;br /&gt;
'''Works for me now, recommend closure, &amp;lt;Your Name&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
If you can replicate the bug, add a comment like:&lt;br /&gt;
&lt;br /&gt;
'''Can replicate, OS: Ubuntu 8.10, QGIS Preview 2, &amp;lt;Your Name&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Use your initiative to deal with tickets that don't fit into the categories above, following a similar approach.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After that I will turn you loose on the queue and a shiny copy of QGIS preview 2 and let you have at it. Party is over when the last man falls asleep at the keyboard! Ok probably we will finish at between 4:30pm and 5pm if my wife has anything to do with it!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We look forward to seeing you at the QGIS Bug Party!!!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Programme in a nutshell =&lt;br /&gt;
&lt;br /&gt;
* Be there in time for a 9am start&lt;br /&gt;
* Morning session: Introducing QGIS, PostGIS, GeoServer, uDig&lt;br /&gt;
* Afternoon session: QGIS Bug Party&lt;br /&gt;
&lt;br /&gt;
Note: There will be frequent rest breaks and lots of time to ask questions!&lt;br /&gt;
&lt;br /&gt;
'''1. Welcome, Introduction and Overview: Starting up (5 minutes)'''&lt;br /&gt;
&lt;br /&gt;
What am I looking at here? What do I need to do to get started?&lt;br /&gt;
&lt;br /&gt;
'''2. QGIS: Opening and viewing spatial data. Your first map. (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
What can I look at? How do I set up a simple map?  Toolbars and Plug-ins. &lt;br /&gt;
&lt;br /&gt;
'''3. PostGIS: Why use PostGIS? Simple example of loading data. (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
Why use a spatial database? What does one look like? How do I populate a spatial database and where does my data live?&lt;br /&gt;
&lt;br /&gt;
'''4. QGIS: Looking at PostGIS data from QGIS.  (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
View a PostGIS database from QGIS.  Setting up data definitions for PostGIS sources.  Loading data into PostGIS with the Spit Loader (no, please don't touch the screen!)&lt;br /&gt;
&lt;br /&gt;
'''5. PostGIS: More than a place to dump data... (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
PostGIS is not just good for storing data, one can manipulate it too! GIS can be done inside the database, which is rather nice when you think about it.&lt;br /&gt;
&lt;br /&gt;
'''6. uDig: Why uDig?  GIS and the Web.  (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
Getting GIS data ready for presentation on the Web! Editing SLDs.&lt;br /&gt;
&lt;br /&gt;
'''7. GeoServer: Tell everyone about it!  (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
Displaying GIS data on the web.  Grouped WMS.  Scale-dependent rendering.&lt;br /&gt;
&lt;br /&gt;
'''8. And more QGIS.'''&lt;br /&gt;
&lt;br /&gt;
Detail on symbology.  Topological editing. QML, SPD and Openlayers.  (15 minutes)&lt;br /&gt;
&lt;br /&gt;
'''9. Show off session'''&lt;br /&gt;
&lt;br /&gt;
Here we can do some whizz bang demo stuff that we don't have time to do in  workshop format but that will give you some hints as to what else can be achieved.&lt;br /&gt;
&lt;br /&gt;
'''10. General'''&lt;br /&gt;
&lt;br /&gt;
Questions and answers.  What you can do next.  Resources.  Possibly some in-depth examples based on frequent questions.  What would you like to see at future workshops?&lt;br /&gt;
&lt;br /&gt;
'''11. Your assessment of the workshop'''&lt;br /&gt;
&lt;br /&gt;
Tell us what you thought!&lt;br /&gt;
&lt;br /&gt;
= Workshop Notes =&lt;br /&gt;
&lt;br /&gt;
== Welcome, introductions and overview ==&lt;br /&gt;
&lt;br /&gt;
== Lets make a map - First steps with QGIS ==&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
* Open QGIS using the icon on the top Gnome Panel&lt;br /&gt;
* From the Layer menu, select '''Add Vector Layer'''&lt;br /&gt;
  Layer -&amp;gt; Add Vector Layer&lt;br /&gt;
* A dialog box will appear&lt;br /&gt;
* Navigate to &lt;br /&gt;
  /home/workshop/gisdata/za/brits/SAExplorer/&lt;br /&gt;
* Add the following layer :&lt;br /&gt;
  Provinces.shp&lt;br /&gt;
* Experiment with the '''map navigation toolbar''' to zoom in / out, pan, select etc features.&lt;br /&gt;
* Open the '''Layer properties dialog'''. There are several ways you can do this:&lt;br /&gt;
  1) Select the layer in the legend and then from the menu do Layer -&amp;gt; Properties&lt;br /&gt;
  or&lt;br /&gt;
  2) Right click on the layer in the legend and choose Properties from the context menu&lt;br /&gt;
  or&lt;br /&gt;
  3) Double click on the layer in the legend&lt;br /&gt;
* Familiarise yourself with the various panels in the vector properties dialog.&lt;br /&gt;
* Select the '''Symbology''' tab (second from the left)&lt;br /&gt;
* From the '''Style Options''' panel, choose a pleasing '''fill colour''' for the provinces then &lt;br /&gt;
  Click OK&lt;br /&gt;
&lt;br /&gt;
Or you can:&lt;br /&gt;
* Select the '''Legend Type''' as ''Unique Value''.  &lt;br /&gt;
* Set the '''Classification field''' to ''PROVNAME''&lt;br /&gt;
* Click on the '''Classify''' button to set '''different colours for each province'''.&lt;br /&gt;
  Click OK&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
'''Add''' the following layers (also from the /home/workshop/gisdata/za/brits/SAExplorer/ directory)&lt;br /&gt;
&lt;br /&gt;
  Transport_NationalRoads.shp&lt;br /&gt;
  Transport_Railways.shp&lt;br /&gt;
  RSATowns.shp&lt;br /&gt;
  Dams.shp&lt;br /&gt;
 &lt;br /&gt;
'''Zoom and pan''' around a little to explore your data'''&lt;br /&gt;
'''Symbolise''' each layer with an appropriate colour to make the most awe inspiring map.&lt;br /&gt;
&lt;br /&gt;
Activate the '''Identify features''' icon on the middle toolbar to identify the attribute values associated with a spatial feature for the layer highlighted in the Legend Box.&lt;br /&gt;
&lt;br /&gt;
Activate the '''Select Features''' icon next to Identify Features to select one or more features.  &lt;br /&gt;
&lt;br /&gt;
Open the attribute table to view all feature attributes. Note that selected features will have highlighted rows in the attribute table.  You can do this using the neighbouring '''Open Attribute Table''' icon, or by selecting the Open Attribute Table option on the context menu for the layer in the legend using right-click on the mouse.&lt;br /&gt;
&lt;br /&gt;
You can also select rows in the attribute table by:&lt;br /&gt;
* Left-clicking on the desired rows.&lt;br /&gt;
* Using the '''Search''' box at the bottom-left of the form.&lt;br /&gt;
* Selecting the '''Advanced''' button and opening the '''Search Query Builder'''. &lt;br /&gt;
&lt;br /&gt;
Save your project using &lt;br /&gt;
 File -&amp;gt; Save&lt;br /&gt;
&lt;br /&gt;
And put it into&lt;br /&gt;
 /home/workshop/gisdata/brits.qgs&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
In ten minutes you now know how to '''add vector layers''' into QGIS, '''pan and zoom''' to navigate the map, and set the colour of vectors using the '''Single Symbol''' or '''Unique Values''' options in the '''Layer Properties'''.&lt;br /&gt;
&lt;br /&gt;
You have also learnt how to use the interactive '''Identify''' and '''Select''' functions, '''opened attribute tables''' and found out how to '''search''' them.&lt;br /&gt;
&lt;br /&gt;
== More on QGIS Mapping ==&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
Add the vector layer '''Education_Schools2000.shp''' from the SAExplorer directory.  Notice how dense the points are!&lt;br /&gt;
&lt;br /&gt;
* Right-click on the schools layer in the Legend frame.&lt;br /&gt;
* Select '''Properties'''&lt;br /&gt;
* Select the '''General tab'''&lt;br /&gt;
* Check '''Use scale dependent rendering'''&lt;br /&gt;
* Set the maximum field to 1000000&lt;br /&gt;
&lt;br /&gt;
* Zoom out to view the whole country.    '''Notice that the schools no longer appear on the map!''' &lt;br /&gt;
* Now start zooming in, keeping an eye on the scale shown in the '''scale box''' at the bottom of the screen.&lt;br /&gt;
&lt;br /&gt;
 Notice how the schools points reappear when the scale decreases below 1:1000000&lt;br /&gt;
 &lt;br /&gt;
* From the Layer menu, select '''Add Raster Layer'''&lt;br /&gt;
  Layer -&amp;gt; Add Raster Layer&lt;br /&gt;
* A dialog box will appear&lt;br /&gt;
* Navigate to &lt;br /&gt;
  /home/workshop/gisdata/za/gauteng/&lt;br /&gt;
* Add the following layer :&lt;br /&gt;
 SOU-8_satellite.tif&lt;br /&gt;
&lt;br /&gt;
Notice that the image is largely in shades of greyish-brown, but that a dam can be seen towards the bottom of the image. &lt;br /&gt;
&lt;br /&gt;
* Open the Properties for the raster layer, in a similar way to that used for vector layers.&lt;br /&gt;
 Layer -&amp;gt; Properties&lt;br /&gt;
* Select the '''Transparency''' tab.&lt;br /&gt;
* Using the slider, set transparency to 25%&lt;br /&gt;
* Click OK&lt;br /&gt;
Notice how the you can now see the vector layers behind the satellite image.&lt;br /&gt;
 &lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
If you have not already done so, add the vector layers Transport_NationalRoads.shp and Transport_Mainroads.shp from /home/workshop/gisdata/za/brits/SAExplorer.&lt;br /&gt;
Set scale-dependent rendering so that the national roads display at all scales, while the main roads are only shown when you are zoomed in. &lt;br /&gt;
&lt;br /&gt;
Go to the satellite image properties, Symbology tab.  Try the different &amp;quot;Render as&amp;quot; options.  Then when you have found the one that suits you, have a look at the &amp;quot;Contast Enhancement&amp;quot; options.  Compare &amp;quot;No Stretch&amp;quot; and &amp;quot;Stretch to MinMax&amp;quot;.  &lt;br /&gt;
&lt;br /&gt;
Try &amp;quot;Render as Single Band Grey&amp;quot;.  Set the &amp;quot;Custom min/max values&amp;quot; radio button.  Change the Min and Max values.  Go to &amp;quot;Contract Enhancement&amp;quot; again and set it to &amp;quot;Stretch and Clip to MinMax&amp;quot;, and see the effect.&lt;br /&gt;
&lt;br /&gt;
Add raster images of 1: 50 000 map sheets from &amp;quot; /home/workshop/gisdata/za/brits/toposheet images&amp;quot; &lt;br /&gt;
You will need to set the Files of Type box to '''JPEG JFIF''' to see them, before you can select them.&lt;br /&gt;
Set their transparency to a value that allows you to see the vector features behind them.  Zoom in and look at how the vector features and image features match (or not!).&lt;br /&gt;
&lt;br /&gt;
Notice how you can zoom right in to vector data, and a point remains a point and a line remains a line.  When you zoom in to the satellite image it rapidly appears &amp;quot;blocky&amp;quot; compared to the 50 000 map sheets. Zoom in enough and even the map sheet raster blocks can be seen.  This is a basic difference between vector and raster data.&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
You have learnt to set scale-dependent rendering so that data sets are displayed at appropriate scales, how to add raster data and set raster display options.&lt;br /&gt;
&lt;br /&gt;
== Shapefiles shmapefiles....real (wo)men store their data in PostGIS ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
* '''Create''' a new PostgreSQL database. To do this, open the terminal application (icon to the right of Firefox icon on the top menu bar). Now at the prompt type the following command:&lt;br /&gt;
  createdb workshop&lt;br /&gt;
&lt;br /&gt;
* '''Verify''' your database exists (once again type this into the terminal)&lt;br /&gt;
  psql -l&lt;br /&gt;
* You should see something like this:&lt;br /&gt;
 workshop@heron:~$ psql -l&lt;br /&gt;
        List of databases&lt;br /&gt;
   Name    |  Owner   | Encoding &lt;br /&gt;
 -----------+----------+----------&lt;br /&gt;
 postgres  | postgres | UTF8&lt;br /&gt;
 template0 | postgres | UTF8&lt;br /&gt;
 template1 | postgres | UTF8&lt;br /&gt;
 workshop  | workshop | UTF8&lt;br /&gt;
 (4 rows)&lt;br /&gt;
* away from the terminal for a while - lets look at what a non-spatial, vanilla PostgreSQL database looks like. Open pgAdmin 3  (the icon with a blue elephant face)&lt;br /&gt;
* Double-click on the icon that has a red cross next to some text &amp;quot;gis (localhost:5432)&amp;quot; and press OK if another screen comes up. The database cluster called gis expands and you should see two databases: 'postgres' and 'workshop'. Expand workshop -&amp;gt; Schemas -&amp;gt; public&lt;br /&gt;
Specifically, let us look at Functions and Tables - don't look to deeply, this is just to show the differences after PostGIS is installed on the database (you will see later). Specifically, there is nothing in the db at the moment. So minimise pgAdmin and lets crack on with getting some data in!&lt;br /&gt;
&lt;br /&gt;
* Install the PostGIS spatial data extensions (again from the terminal).&lt;br /&gt;
'''Hint''' copy and paste these from the IRC channel or the wiki page!&lt;br /&gt;
 createlang plpgsql workshop&lt;br /&gt;
 psql workshop &amp;lt; /usr/share/postgresql-8.3-postgis/lwpostgis.sql&lt;br /&gt;
 psql workshop &amp;lt; /usr/share/postgresql-8.3-postgis/spatial_ref_sys.sql&lt;br /&gt;
&lt;br /&gt;
* Yegads! What did I just do? Firstly, you installed the '''plpgsql''' procedural language extensions into your PostgreSQL database. Then you ran two sql scripts which create the '''PostGIS''' spatial extensions to your database. You only need to do this '''once''' when you create a new spatial database, so don't worry about remembering those commands off by heart.&lt;br /&gt;
* Lets upload a shapefile into the database....once more into the black hole (terminal window).&lt;br /&gt;
 cd /home/workshop/gisdata/za/brits/SAExplorer&lt;br /&gt;
 shp2pgsql -I -s 4326 Dams.shp dams | psql -d workshop&lt;br /&gt;
* Erk! What does that all mean? Lets break it down:&lt;br /&gt;
 cd /home/workshop/gisdata/za/brits/SAExplorer - go to our data directory&lt;br /&gt;
 shp2pgsql - an application that loads shapefiles into a PostGIS database&lt;br /&gt;
 -I - an option to shp2pgsql telling it to create a spatial index&lt;br /&gt;
 -s - the coordinate reference system to use, expressed as an EPSG number. 4326 is the same as Lat/Long WGS84&lt;br /&gt;
 Dams.shp - the filename of the shapefile to load&lt;br /&gt;
 dams - the table name that the data should be loaded into&lt;br /&gt;
 | psql workshop - send the results of the shp2pgsql into the psql application, workshop database&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Lets take a peek inside our database now and see what we have - back to pgAdmin, click on the 'workshop' database icon and then refresh it (red/green circular arrows icon).&lt;br /&gt;
Three major things to look at:&lt;br /&gt;
 &lt;br /&gt;
 Hundreds of Functions for working with spatial data: &lt;br /&gt;
 * geometry constructors, &lt;br /&gt;
 * spatial predicates, &lt;br /&gt;
 * geometry editors, &lt;br /&gt;
 * geometry aggregators, &lt;br /&gt;
 * geometry accessors, &lt;br /&gt;
 * measurements, &lt;br /&gt;
 * linear referencing&lt;br /&gt;
 * and outputting  of spatial data. &lt;br /&gt;
 &lt;br /&gt;
 2 important meta-tables: (expand the Tables object)&lt;br /&gt;
 * geometry_columns (for describing the different spatial datasets) - right-click -&amp;gt; &lt;br /&gt;
 * and spatial_ref_sys(a list of projections/coordinate systems and different representations thereof)&lt;br /&gt;
&lt;br /&gt;
 A 'dams' table which, when expanded should show a bunch of Columns, Constraints (e.g. Primary Key), Indexes, Rules and Triggers. &lt;br /&gt;
 * Note the geometry type of column 'the_geom'. &lt;br /&gt;
 * Also note the spatial index present - this allows for optimal retrieval of data based on the spatial properties of the data.&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
'''Load''' the following layers (also from the /home/workshop/gisdata/za/brits/SAExplorer/ directory)&lt;br /&gt;
&lt;br /&gt;
 Hydrology_DWAFRivers.shp -&amp;gt; call the table 'rivers'&lt;br /&gt;
 Transport_Mainroads.shp -&amp;gt; call the table 'roads'&lt;br /&gt;
 ProvincialBoundary.shp -&amp;gt; call the table 'provinces'&lt;br /&gt;
&lt;br /&gt;
And to show that this can scale a bit, let us load in the background a dataset of over 350 000 points (which we will use a bit later)&lt;br /&gt;
 * cd /home/workshop/gisdata/za/fire/modis_af/&lt;br /&gt;
 * shp2pgsql -I -s 4326 modis_af.shp fires | psql -d workshop  &amp;amp;&amp;gt; /dev/null (puts output into background)&lt;br /&gt;
 * shp2pgsql -I -s -D 4326 modis_af.shp fires | psql -d workshop (simpler and faster)&lt;br /&gt;
&lt;br /&gt;
=== Super duper advanced ===&lt;br /&gt;
&lt;br /&gt;
What if I want to load a batch of shapefiles in a directory in 1 go? Try this nifty bash script one liner!&lt;br /&gt;
&lt;br /&gt;
 for FILE in `ls *.shp`; do TABLE=`echo $FILE | sed 's/\.shp//g'`; echo $TABLE;shp2pgsql -I -s 4326 $FILE $TABLE | psql -d workshop; done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This takes a while so lets move on.&lt;br /&gt;
&lt;br /&gt;
=== What have I learnt? ===&lt;br /&gt;
&lt;br /&gt;
* PostgreSQL is an enterprise-ready relational database management system - and it's Free and Open Source Software&lt;br /&gt;
* You can create a new database using the '''createdb''' command.&lt;br /&gt;
* '''PostGIS''' is a add-on to PostgreSQL that lets you store spatial data and carry out spatial analysis within the database.&lt;br /&gt;
* In order to set up PostGIS you need to run a couple of SQL scripts&lt;br /&gt;
* '''shp2pgsql''' is a command line application that lets you load shapefiles into your spatial datastore&lt;br /&gt;
&lt;br /&gt;
== Using PostGIS data from QGIS ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
Once your data is in PostGIS, its easy to share across your organisation. Because it's in a database you get row level locking (instead of file locking in a shapefile), so many users can be editing and viewing data at the same time. There are many clients that let you visualise your PostGIS data..lets take a look at how we do it in QGIS.&lt;br /&gt;
&lt;br /&gt;
* Open QGIS&lt;br /&gt;
* Start a new project&lt;br /&gt;
  File -&amp;gt; New Project&lt;br /&gt;
* Add a PostGIS layer&lt;br /&gt;
  Layer -&amp;gt; Add PostGIS Layer&lt;br /&gt;
* From the connections list, choose '''workshop'''&lt;br /&gt;
  Click connect&lt;br /&gt;
* In the table list, click on '''dams'''&lt;br /&gt;
  Click Add&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
* Add the following layers from your database&lt;br /&gt;
 rivers&lt;br /&gt;
 roads&lt;br /&gt;
 provinces&lt;br /&gt;
&lt;br /&gt;
* set some nice colors for your layers - notice how the process is exactly the same as when setting colours for a shapefile.&lt;br /&gt;
&lt;br /&gt;
* save your project into&lt;br /&gt;
&lt;br /&gt;
 /home/workshop/gisdata/brits_pg.qgs&lt;br /&gt;
&lt;br /&gt;
=== What have I learnt? ===&lt;br /&gt;
&lt;br /&gt;
* You can '''visualise''' PostGIS spatial database tables inside QGIS&lt;br /&gt;
* To add a PostGIS layer, use the '''Layer -&amp;gt; Add PostGIS Layer''' menu option.&lt;br /&gt;
* Once a PostGIS layer, you can treat it just like any other (e.g. shapefile) layer&lt;br /&gt;
* Your presenters are truly amazing....however would I have figured this stuff out for my self :-)&lt;br /&gt;
&lt;br /&gt;
== More on PostGIS Data in QGIS ==&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
* Click on the '''Blue Elephant''' icon in the middle toolbar row to start SPIT loader.&lt;br /&gt;
* Select the PostgreSQL Connection as &amp;quot;workshop&amp;quot;.&lt;br /&gt;
* Click on Connect to verify your connection&lt;br /&gt;
* Now click &amp;quot;Add&amp;quot; - the &amp;quot;Add Shapefile&amp;quot; dialog box comes up. &lt;br /&gt;
&lt;br /&gt;
Navigate to /home/workshop/gisdata/za/brits/SAExplorer.&lt;br /&gt;
&lt;br /&gt;
* Select &amp;quot;Rsatowns.shp&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 Click &amp;quot;Open&amp;quot;.  PostGIS scans the file and lists it in the display frame.&lt;br /&gt;
&lt;br /&gt;
 Click &amp;quot;OK&amp;quot;.  QGIS loads the shapefile data into PostGIS with no need to use the terminal!&lt;br /&gt;
&lt;br /&gt;
* Use Layer -&amp;gt; Add PostGIS Layer to load the layer from PostGIS directly into QGIS.  &lt;br /&gt;
&lt;br /&gt;
* Now add the rivers PostGIS layer to QGIS to see another advantage of using PostGIS layers.&lt;br /&gt;
* Open the Layer properties form.  &lt;br /&gt;
* On the General tab, click &amp;quot;Query Builder&amp;quot; near the bottom right-hand corner. This opens the Query Builder. &lt;br /&gt;
* Click Field &amp;quot;RIVER_CLAS&amp;quot;.&lt;br /&gt;
* Click the &amp;quot;All&amp;quot; button under the &amp;quot;Values&amp;quot; frame.&lt;br /&gt;
* Build the Query &lt;br /&gt;
 &amp;quot;RIVER_CLAS&amp;quot; LIKE 'Perennial' OR &amp;quot;RIVER_CLAS&amp;quot; LIKE 'Perennial river'&lt;br /&gt;
* Click &amp;quot;Test&amp;quot; to check that it will work.&lt;br /&gt;
* Click &amp;quot;OK&amp;quot; twice to apply it.&lt;br /&gt;
&lt;br /&gt;
Now look at the display - the query has not merely highlighted the selected features, it has filtered the non-selected features out so that they are not displayed.  &lt;br /&gt;
&lt;br /&gt;
=== Now you try ===&lt;br /&gt;
&lt;br /&gt;
* Try loading other layers into PostGIS using the Spit loader.&lt;br /&gt;
* Load these into QGIS, and use the &amp;quot;Query Builder&amp;quot; to define the data sets that you want to see.&lt;br /&gt;
* You could define the non-perennial rivers as a separate data set, and use scale-dependent rendering to show them only when you zoom right in.&lt;br /&gt;
&lt;br /&gt;
=== What I have learnt ===&lt;br /&gt;
&lt;br /&gt;
How to rapidly load data into postgis using the spit loader.  How to set up data queries to filter spatial data display from postgis.&lt;br /&gt;
&lt;br /&gt;
== The Zen of PostGIS - not just a pretty place to store data! ==&lt;br /&gt;
&lt;br /&gt;
Okay, we will go a bit deeper into the woods here! We want to show that with some SQL (I won't say simple) you can do some complex - and repeatable - spatial analysis right inside your database, and then visualise the results in various clients.&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
We will use pgAdmin (your great PostgreSQL friend) to get this happening. Click on the Tables object of your workshop db. Then Tools -&amp;gt; Query tool from the menu. This should present a dialog box with 3 panels.&lt;br /&gt;
&lt;br /&gt;
We are going to do a simple intersection to get started.&lt;br /&gt;
In the top left panel paste &lt;br /&gt;
 SELECT roads.gid, roads.code, roads.route_nr, roads.shape_leng, roads.the_geom FROM roads, rivers WHERE (roads.the_geom &amp;amp;&amp;amp; rivers.the_geom AND intersects(roads.the_geom, rivers.the_geom));&lt;br /&gt;
and click Query -&amp;gt; Execute&lt;br /&gt;
This should take a few seconds, then you will see a result returned into the Data Output grid. Something like 3338 rows are returned from the original roads dataset of 11964.&lt;br /&gt;
&lt;br /&gt;
So what is going on here?&lt;br /&gt;
&lt;br /&gt;
You are performing a spatial overlay with a SQL query, asking the database to return records from the roads table that spatially intersect records from the rivers table. &lt;br /&gt;
* the &amp;amp;&amp;amp; operator is a fast bounding box 'overlaps' test that takes advantage of the spatial indexes of the table to narrow the search space for the true intersection test.&lt;br /&gt;
* the intersects part of the query tests the geometries of the subset selected above for spatial intersection and returns a result.&lt;br /&gt;
&lt;br /&gt;
To show some other functionality, paste the following text into the query window and execute:&lt;br /&gt;
 ALTER TABLE roads DROP CONSTRAINT enforce_srid_the_geom;UPDATE geometry_columns SET srid = 4148 WHERE f_table_name = 'roads';COMMIT; UPDATE roads SET the_geom = ST_Transform(the_geom,4148);COMMIT; ALTER TABLE roads ADD CONSTRAINT enforce_srid_the_geom CHECK (srid(the_geom) = 4148);&lt;br /&gt;
We are being good South African GIS types and using our Haartebeesthoek94 Datum. Lets do the same for rivers:&lt;br /&gt;
 ALTER TABLE rivers DROP CONSTRAINT enforce_srid_the_geom;UPDATE geometry_columns SET srid = 4148 WHERE f_table_name = 'rivers';COMMIT; UPDATE rivers SET the_geom = ST_Transform(the_geom,4148);COMMIT; ALTER TABLE rivers ADD CONSTRAINT enforce_srid_the_geom CHECK (srid(the_geom) = 4148);&lt;br /&gt;
&lt;br /&gt;
This looks fairly intense, but the main points are the changing of the data in the geometry_columns meta-table and then updating the geometries in each table to a different CRS (4148, or Haartebeesthoek94). We demonstrate the use of the UPDATE SQL command, used to change data in the database, and the use of the ST_Transform function of PostGIS, which does the work. Now lets try the original query again:&lt;br /&gt;
 SELECT roads.gid, roads.code, roads.route_nr, roads.shape_leng, roads.the_geom FROM roads, rivers WHERE st_intersects(roads.the_geom, rivers.the_geom);&lt;br /&gt;
...which returns the same number of features, but in our own CRS. Note that we have used the ST_Intersects function rather than the Intersects function as previously shown. ST_ type functions are more standards compliant, so should be used in place of the older style functions.&lt;br /&gt;
Ideally we would project the data as appropriate, using the very same technique, but substituting 4148 for the EPSG code for our projection of choice. This is a demo though, folks, so I will get away with murder...&lt;br /&gt;
Lets quickly repeat the process for the other datasets we will use in a minute:&lt;br /&gt;
 ALTER TABLE provinces DROP CONSTRAINT enforce_srid_the_geom;UPDATE geometry_columns SET srid = 4148 WHERE f_table_name = 'provinces';COMMIT; UPDATE provinces SET the_geom = ST_Transform(the_geom,4148);COMMIT; ALTER TABLE provinces ADD CONSTRAINT enforce_srid_the_geom CHECK (srid(the_geom) = 4148);&lt;br /&gt;
 ALTER TABLE fires DROP CONSTRAINT enforce_srid_the_geom;UPDATE geometry_columns SET srid = 4148 WHERE f_table_name = 'fires';COMMIT; UPDATE fires SET the_geom = ST_Transform(the_geom,4148);COMMIT; ALTER TABLE fires ADD CONSTRAINT enforce_srid_the_geom CHECK (srid(the_geom) = 4148);&lt;br /&gt;
&lt;br /&gt;
So, while that goes ahead (it will take a minute or so to transform 350k points), let us think out another analysis. Lets make it a bit tricky. Okay, we want to create a table for serving up data to the outside world (Gavin will do this later) that has all the intense fires in Gauteng or NorthWest Province, that have occurred within 3000 metres of a main road. There are many ways to skin this cat in PostGIS, so I will pick a method and explain why I did so.&lt;br /&gt;
First, a convenience table is created:&lt;br /&gt;
 SELECT roads.gid, ST_Buffer(roads.the_geom,0.027) AS geom INTO roads_buffer FROM roads, (SELECT * FROM provinces WHERE prov_code = 'GT' OR prov_code = 'NW') AS prov WHERE ST_Within(roads.the_geom, prov.the_geom);&lt;br /&gt;
This is a table of polygons representing ~3000 metre road buffers, and note the use of the function to populate the geometry_columns meta-table with our new layer.&lt;br /&gt;
 SELECT DISTINCT fires.gid, fires.frp, fires.acqdatetim, fires.the_geom INTO fires_analysis_3000m FROM fires, (SELECT * FROM provinces WHERE prov_code = 'GT' OR prov_code = 'NW') AS prov, roads_buffer  WHERE fires.frp &amp;gt; 200 AND ST_Within(fires.the_geom, prov.the_geom) AND ST_Within(fires.the_geom, roads_buffer.geom);&lt;br /&gt;
The main feature of this query is the longish WHERE clause, which tests weather the fire is intense, whether it falls within Gauteng or NW Province and whether the fire occurred within appx 3000 metres of one of our main roads.&lt;br /&gt;
&lt;br /&gt;
There are not too many fires that fall out of this analysis, but it shows how we have relatively easily worked with and reduced a large dataset to a few points. These queries can be further tuned to take advantage of spatial and other indexes, but that is perhaps for another time.&lt;br /&gt;
&lt;br /&gt;
The final thing we will do is prepare this layer for use on the web...&lt;br /&gt;
 INSERT INTO geometry_columns(f_table_catalog,f_table_schema,f_table_name,f_geometry_column,coord_dimension,srid,&amp;quot;type&amp;quot;) VALUES('','public','fires_analysis_3000m','the_geom',2,4148,'MULTIPOINT');&lt;br /&gt;
Normal meta-table stuff&lt;br /&gt;
 ALTER TABLE fires_analysis_3000m ADD PRIMARY KEY (gid);&lt;br /&gt;
And if we wanted to we could add a spatial index:&lt;br /&gt;
 CREATE INDEX fires_Analysis_3000m_the_geom_gist ON fires_Analysis_3000m USING gist(the_geom);&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
Well, no you do not - but you can ask questions...&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
Well, hopefully a fair bit. You can, with a bit of practice and reading up on the matter, get PostGIS to do some rather interesting and powerful things. We have just seen a database do GIS... Some of you may be in the know about such matters, but hopefully this shows some possibilities to others.&lt;br /&gt;
&lt;br /&gt;
== uDig ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
uDig ('user-friendly desktop internet GIS') is another excellent desktop GIS. let's check out the basics&lt;br /&gt;
&lt;br /&gt;
* Open uDig&lt;br /&gt;
* start adding layers (note the variety of data that can be used)&lt;br /&gt;
** Add a PostGIS layer&lt;br /&gt;
** add a shapefile&lt;br /&gt;
* theme the layers&lt;br /&gt;
* check out the table view, catalogue and some functionality&lt;br /&gt;
&lt;br /&gt;
There's no need to save projects - you can just close uDig and it will save automatically. Note &lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
* Add the following layers from your database&lt;br /&gt;
 rivers, dams, schools, roads, more if you like&lt;br /&gt;
&lt;br /&gt;
* theme the school layer with nice symbols and labels - we're going to try scale-dependent rendering&lt;br /&gt;
**zoom in closer than 1:50000 and set the max scale to 50000&lt;br /&gt;
**on the theme dialog, click XML&lt;br /&gt;
**select the &amp;lt;rule&amp;gt;&amp;lt;/rule&amp;gt; section and copy it to a text editor.&lt;br /&gt;
**zoom out beyond 50000, go back to 'theme' and simplify your symbols, removing the labels.&lt;br /&gt;
**set the min scale to 50000&lt;br /&gt;
**click 'XML'&lt;br /&gt;
**paste the previous 'rule' into the XML, before or after the one you see.&lt;br /&gt;
**click OK! now zoom in and out past to see the result. &lt;br /&gt;
 &lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
* Viewing and rendering different formats in uDig&lt;br /&gt;
* Theming with SLD (Styled layer descriptor), the OGC standard.&lt;br /&gt;
* scale-dependent rendering&lt;br /&gt;
** with a point - we're going to come back to uDig!&lt;br /&gt;
&lt;br /&gt;
== GeoServer ==&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
 cd&lt;br /&gt;
 export JAVA_HOME=/usr&lt;br /&gt;
 cd Apps/geoserver&lt;br /&gt;
 bin/startup.sh&lt;br /&gt;
&lt;br /&gt;
* Start geoserver (normally set to start automatically and run all the time)&lt;br /&gt;
* All admin is done via the web&lt;br /&gt;
* set up a namespace&lt;br /&gt;
* set up data stores&lt;br /&gt;
* set up feature types&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
* start GeoServer&lt;br /&gt;
* click Config -&amp;gt; Data&lt;br /&gt;
* Set Namespace to any name and any url&lt;br /&gt;
* Set Datastore to your postGIS database&lt;br /&gt;
* define a FeatureType for schools, choose a point style&lt;br /&gt;
'''Styling'''&lt;br /&gt;
*Go to Data -&amp;gt; Style -&amp;gt; new&lt;br /&gt;
**give your style a name and paste in your school SLD from uDig&lt;br /&gt;
**submit&lt;br /&gt;
**Go back to FeatureTypes and Edit your schools Feature, applying your new style&lt;br /&gt;
**Check out the results in the GeoServer demo pages&lt;br /&gt;
&lt;br /&gt;
'''Group layers'''&lt;br /&gt;
* Set up a group in the 'WMS' section&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Back to uDig&lt;br /&gt;
*bring in a WMS layer from http://localhost/geoserver:8080/wms&lt;br /&gt;
*bring in the same layer as WFS&lt;br /&gt;
**theme it&lt;br /&gt;
**save it as a shapefile&lt;br /&gt;
*try this with QGIS too (and with ArcGIS back at the office!)&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
* you can use GeoServer to serve your spatial data from any source as WMS, WFS, KML and more!&lt;br /&gt;
* You can use WMS and WFS layers in a desktop GIS&lt;br /&gt;
* impress your colleagues by sending them kml links from your geoserver so they can view them live in Google Earth!&lt;br /&gt;
&lt;br /&gt;
== More Advanced QGIS Use ==&lt;br /&gt;
Here are some more things you can do with QGIS!  Don't be put off by the heading of this section, we'll take you through step-by-step as before..&lt;br /&gt;
&lt;br /&gt;
=== ''Quick Qml with QGIS'' ===&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
If you have used  ArcView before, you might have used the avl feature which lets you store the symbology settings for a layer. QGIS has a similar feature called 'qml' which lets you create default symbology settings for a layer, that will be applied when ever that layer is loaded. We are also going to take a quick peek at how to create more complex symbology for a layer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Open QGIS if its not already running.&lt;br /&gt;
* Add the dams layer from the Postgresql 'Workshop' database&lt;br /&gt;
* Double click on the layer entry in the legend&lt;br /&gt;
* Activate the symbology tab&lt;br /&gt;
* Now change the legend type to '''Graduated Symbol'''&lt;br /&gt;
* Change the classification field to '''shape_area'''&lt;br /&gt;
* Set the '''number of classes''' to 5&lt;br /&gt;
* Click the '''classify''' button&lt;br /&gt;
* Click the '''Apply''' button&lt;br /&gt;
&lt;br /&gt;
You should see the shapes in the main window have now adopted a range of scintillating colours! However is you add that layer to another QGIS project you would normally have to do all this work again! Qml to the rescue.&lt;br /&gt;
&lt;br /&gt;
* Save your symbology settings by clicking the '''save as default''' button&lt;br /&gt;
&lt;br /&gt;
Ok lets test it out!&lt;br /&gt;
&lt;br /&gt;
* Close QGIS&lt;br /&gt;
* Reopen QGIS&lt;br /&gt;
* Add the Dams layer from the Postgresql 'Workshop' database&lt;br /&gt;
&lt;br /&gt;
If the planets are correctly aligned, your dams will appear all beautifully coloured according to your personal preference.&lt;br /&gt;
&lt;br /&gt;
If you want to you can also save your settings as non-default, and them restore them by selecting a .qml file again later. Refer to the '''Load style''' and '''Save style''' buttons on the vector properties dialog.&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
Ok give it a whirl, create default appearances for your other layers stored in your PostGIS database. Also try experimenting with the other legend types such as '''Continuous Colour''' and '''Unique Value'''. &lt;br /&gt;
Once you have set your default appearances, close QGIS and then reopen it. Now add all your PostGIS layers to the blank project and they should all magically appear with your preferred appearance.&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
The '''Layer Properties''' dialog in QGIS will let you specify the '''default appearance''' for a layer.&lt;br /&gt;
&lt;br /&gt;
=== ''Setting Projections'' ===&lt;br /&gt;
Projections are a mathematical way of transforming latitude and longitude coordinates into a form that can be meaningfully used in a map.  Sources to be added.&lt;br /&gt;
Some projections in common use in South Africa are the Albers Equal Area, Lamberts Conformal Conic and Gauss (LO) projections.&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
* Make sure that you are zoomed in to Gauteng.&lt;br /&gt;
* From the File menu, select Project Properties.&lt;br /&gt;
  File -&amp;gt; Project Properties&lt;br /&gt;
* Activate the Coordinate Reference System tab&lt;br /&gt;
* Check &amp;quot;Enable &amp;quot;on the fly&amp;quot; CRS Transformation&lt;br /&gt;
* Note that the current Coordinate Reference System is WGS84, which is a standard for displaying geographic coordinates.&lt;br /&gt;
* Look at the column EPSG - this a standard for identifying coordinate systems.  When you have selected a coordinate system you can always find it again quickly by noting the EPSG code and entering it into the '''Find box''' at the bottom of the form.&lt;br /&gt;
* Highlight the ''Projected Coordinate Systems&amp;quot; heading, and double-click to open the list.&lt;br /&gt;
* Scroll down and highlight the &amp;quot;Universal Transverse Mercator&amp;quot; heading.&lt;br /&gt;
* Select the '''Name''' radio button.&lt;br /&gt;
* Enter &amp;quot;33S&amp;quot; in the text box, and press find.  Keep pressing find until you get to &amp;quot;WGS 84/UTM Zone 33&amp;quot;.  &lt;br /&gt;
 Or select the EPSG ID radio button, enter 32733 and press the Find button.    Isn't that easier?&lt;br /&gt;
* Notice that the overall shape of the country has changed due to the projection.&lt;br /&gt;
* Zoom into Gauteng again.  Move your cursor and look at the coordinates shown at the bottom of the screen.  Notice how they have changed.  They are now in meters rather than decimal degrees.&lt;br /&gt;
&lt;br /&gt;
=== Now You Try! ===&lt;br /&gt;
First of all try a related projection such as UTM Zone 34S or UTM 38S, and see what the impact is.  Move your cursor around - how do the coordinates differ from ones shown under UTM 36S?&lt;br /&gt;
&lt;br /&gt;
Then try one of the Stereographic South projections, such as EPSG=3031,  for a very different view of South Africa!&lt;br /&gt;
&lt;br /&gt;
QGIS calculates the effect of the projection before displaying the data and doesn't make any changes, so you can try anything you like!&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
You have learnt how to set an on-the-fly projection for display in QGIS, and how to use EPSG codes to rapidly find a specific projection. Remember, if you are trying to develop a map for use in the field you will need to use a projection specific to South Africa.&lt;br /&gt;
&lt;br /&gt;
=== ''Editing Vector Data'' ===&lt;br /&gt;
Have a look at the boundary of the Eastern and Western Cape on the coast.  The rivers and provincial boundary seem to follow each other closely. Now zoom right in and notice how the provincial boundary is much more detailed than the rivers, and they don't follow each other well at all.&lt;br /&gt;
&lt;br /&gt;
QGIS to the rescue!&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
* Select the rivers layer in the Legend panel on the left.&lt;br /&gt;
* Click on the blue Pencil icon on the leftmost toolbar on the bottom row or &amp;lt;menu option&amp;gt;.  &lt;br /&gt;
* Now click on the &amp;lt;edit vertices&amp;gt; icon. Notice how the river lines have suddenly sprouted small circles wherever the line changes direction.  These are the vertices - if you have used a drawing program before you might have seen something like this. &lt;br /&gt;
* Drag the vertices of the rivers to align with the provincial boundary.&lt;br /&gt;
 Notice that we don't have enough vertices to do this exactly.&lt;br /&gt;
* Click on the add vertices icon.  Now click on the river wherever more vertices are needed.  &lt;br /&gt;
* When you have enough vertices go back to &amp;quot;Edit Vertices&amp;quot; and move them where they need to be.&lt;br /&gt;
* Now save you changes using &amp;lt;&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Now You Try! ===&lt;br /&gt;
Go to Gauteng and bring up the JPEG map sheets behind the roads.  Have a look at the roads and notice where the vectors are not aligned with the base map.  Use the skills you have used to correct the roads vectors.  Try other tools like Split Features, Move Features and other to see what they do.  &lt;br /&gt;
&lt;br /&gt;
Then look at the rivers and provincial boundaries again.  See if you can find another place where the two are not aligned.  Experiment with the Snapping Options under Project Properties.  Use the Measure Length tool to decide on reasonable initial tolerance values.&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
You have now learned how to edit vector data in QGIS using the edit toolbar.  Editing data may not be as immediately rewarding as setting up a map onscreen or for printing, but it is important to be able to do this to get rid of errors that will spoil all the effort put into drawing up an impressive map!&lt;br /&gt;
&lt;br /&gt;
[[Category:Africa]]&lt;/div&gt;</summary>
		<author><name>Wiki-Brendonwp</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=AfricaEvents29November2008&amp;diff=32746</id>
		<title>AfricaEvents29November2008</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=AfricaEvents29November2008&amp;diff=32746"/>
		<updated>2008-12-01T09:01:34Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Brendonwp: /* Now You Try! */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;...back to [[Africa_Local_Chapter]]&lt;br /&gt;
&lt;br /&gt;
= What? =&lt;br /&gt;
&lt;br /&gt;
Our first OSGeo local chapter meet up! We will chew the cud, show you some cool stuff and start to get people familiar with the brilliant FOSS GeoSpatial products out there!&lt;br /&gt;
&lt;br /&gt;
We'll go through installing some software and getting it to a point where you can have fun with it. &lt;br /&gt;
&lt;br /&gt;
= How Much? =&lt;br /&gt;
&lt;br /&gt;
There will be a door charge of R50 to cover costs &amp;amp; refreshments. That and an open mind are all you need to bring. If you're staying for the QGIS session in the afternoon you can bring your laptop (Windows, Linux or Mac!)&lt;br /&gt;
&lt;br /&gt;
= Where? =&lt;br /&gt;
&lt;br /&gt;
 St Davids Marist Inanda College&lt;br /&gt;
 36 Rivonia Rd&lt;br /&gt;
 Inanda&lt;br /&gt;
 Sandton&lt;br /&gt;
[http://www.stdavids.co.za/about_directions.asp Map and Directions]&lt;br /&gt;
&lt;br /&gt;
NB: We'll be in the Prep School computer lab.&lt;br /&gt;
&lt;br /&gt;
= When? =&lt;br /&gt;
&lt;br /&gt;
* November 29th&lt;br /&gt;
* Presentation and workshop segment: 9am to 12pm&lt;br /&gt;
* QGIS Bug Party! 12h30 onwards&lt;br /&gt;
&lt;br /&gt;
= Who =&lt;br /&gt;
&lt;br /&gt;
Your friendly presenters for the day will be:&lt;br /&gt;
&lt;br /&gt;
* '''Tim Sutton''' (tim at linfiniti.com) - QGIS hacker and FOSS GIS junkie extraordinaire. Tim eats Weetbix for breakfast because it sounds like Linux. He once rewrote Nkosi Sikelela in C++ because he was feeling patriotic.&lt;br /&gt;
* '''Graeme McFerren''' - (graeme.mcferren at gmail.com) - GIS researcher and FOSS4G user. Mmm, aspire to be like Tim then.&lt;br /&gt;
* '''Gavin Fleming''' (gavinjfleming at gmail dot com) - I enjoy my daily FOSS4G fix and telling people how great it was. I'm a 'geoinformation scientist' at Mintek and love to see cutting edge and useful geospatial applications emerging. &lt;br /&gt;
* '''Brendon Wolff-Piggott''' - (brendon at integratedgeodata.co.za) - Water resources consultant and FOSS GIS enthusiast.  I wish there were more hours in the day to keep up with FOSS4G!&lt;br /&gt;
&lt;br /&gt;
= RSVP =&lt;br /&gt;
Let gavinjfleming at gmail dot com know if you're coming as numbers are limited. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= QGIS Bug Party =&lt;br /&gt;
&lt;br /&gt;
As a preview release there are still various bugs that need resolving and various elements (e.g. translation) that may be incomplete. On Saturday the 29th in Johannesburg, South Africa, members from the Africa OSGeo chapter will be holding a QGIS Bug Hunt Party. We would like to invite people from around the world to virtually participate. Each person attending will get a free copy of QGIS 1.0.0 Preview 2 absolutely free of charge! Sorry no shrink wrap copies available. Preview 2 is the second in a series of preview releases we are making before we release the Stable QGIS 1.0.0 with long term support. &lt;br /&gt;
We are going to great lengths to polish up QGIS 1.0 for you (inside and out) and we really appreciate all the feedback we have received thus far. Its virtually impossible to ship any software completely bug free, but with your help we can add just a little more shine to the polish! We need your help to:&lt;br /&gt;
&lt;br /&gt;
* test on different machine configurations (bring your laptops!)&lt;br /&gt;
* validate existing bugs on each platform&lt;br /&gt;
* mark bugs that can no longer be replicated as ready for closure&lt;br /&gt;
* create new tickets for bugs that have not been reported yet (please search first to avoid posting duplicates!)&lt;br /&gt;
* mark bugs that are duplicates&lt;br /&gt;
* provide additional diagnostics so that developers can replicate issues&lt;br /&gt;
&lt;br /&gt;
The idea is not to try to *fix* the bugs, but rather to do a QA session on the bugs in the bug tracker. In the process you will learn how to interact with an Open Source project the Right Way i.e. filing good quality bug reports.&lt;br /&gt;
&lt;br /&gt;
I will start off with a simple show and tell covering:&lt;br /&gt;
* where to find the QGIS (and other OSGeo projects bug tracking sites)&lt;br /&gt;
* creating an account so you can file non-anonymous bugs and feedback on any OSGeo project bug tracker&lt;br /&gt;
* how the bug tracking system works - what the various input fields in the QGIS tracker mean&lt;br /&gt;
&lt;br /&gt;
The approach will be to start by going through any bugs that have not been revised recently, adding additional status information. If you think the bug is fixed, add a comment:&lt;br /&gt;
&lt;br /&gt;
'''Works for me now, recommend closure, &amp;lt;Your Name&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
If you can replicate the bug, add a comment like:&lt;br /&gt;
&lt;br /&gt;
'''Can replicate, OS: Ubuntu 8.10, QGIS Preview 2, &amp;lt;Your Name&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Use your initiative to deal with tickets that don't fit into the categories above, following a similar approach.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After that I will turn you loose on the queue and a shiny copy of QGIS preview 2 and let you have at it. Party is over when the last man falls asleep at the keyboard! Ok probably we will finish at between 4:30pm and 5pm if my wife has anything to do with it!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We look forward to seeing you at the QGIS Bug Party!!!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Programme in a nutshell =&lt;br /&gt;
&lt;br /&gt;
* Be there in time for a 9am start&lt;br /&gt;
* Morning session: Introducing QGIS, PostGIS, GeoServer, uDig&lt;br /&gt;
* Afternoon session: QGIS Bug Party&lt;br /&gt;
&lt;br /&gt;
Note: There will be frequent rest breaks and lots of time to ask questions!&lt;br /&gt;
&lt;br /&gt;
'''1. Welcome, Introduction and Overview: Starting up (5 minutes)'''&lt;br /&gt;
&lt;br /&gt;
What am I looking at here? What do I need to do to get started?&lt;br /&gt;
&lt;br /&gt;
'''2. QGIS: Opening and viewing spatial data. Your first map. (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
What can I look at? How do I set up a simple map?  Toolbars and Plug-ins. &lt;br /&gt;
&lt;br /&gt;
'''3. PostGIS: Why use PostGIS? Simple example of loading data. (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
Why use a spatial database? What does one look like? How do I populate a spatial database and where does my data live?&lt;br /&gt;
&lt;br /&gt;
'''4. QGIS: Looking at PostGIS data from QGIS.  (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
View a PostGIS database from QGIS.  Setting up data definitions for PostGIS sources.  Loading data into PostGIS with the Spit Loader (no, please don't touch the screen!)&lt;br /&gt;
&lt;br /&gt;
'''5. PostGIS: More than a place to dump data... (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
PostGIS is not just good for storing data, one can manipulate it too! GIS can be done inside the database, which is rather nice when you think about it.&lt;br /&gt;
&lt;br /&gt;
'''6. uDig: Why uDig?  GIS and the Web.  (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
Getting GIS data ready for presentation on the Web! Editing SLDs.&lt;br /&gt;
&lt;br /&gt;
'''7. GeoServer: Tell everyone about it!  (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
Displaying GIS data on the web.  Grouped WMS.  Scale-dependent rendering.&lt;br /&gt;
&lt;br /&gt;
'''8. And more QGIS.'''&lt;br /&gt;
&lt;br /&gt;
Detail on symbology.  Topological editing. QML, SPD and Openlayers.  (15 minutes)&lt;br /&gt;
&lt;br /&gt;
'''9. Show off session'''&lt;br /&gt;
&lt;br /&gt;
Here we can do some whizz bang demo stuff that we don't have time to do in  workshop format but that will give you some hints as to what else can be achieved.&lt;br /&gt;
&lt;br /&gt;
'''10. General'''&lt;br /&gt;
&lt;br /&gt;
Questions and answers.  What you can do next.  Resources.  Possibly some in-depth examples based on frequent questions.  What would you like to see at future workshops?&lt;br /&gt;
&lt;br /&gt;
'''11. Your assessment of the workshop'''&lt;br /&gt;
&lt;br /&gt;
Tell us what you thought!&lt;br /&gt;
&lt;br /&gt;
= Workshop Notes =&lt;br /&gt;
&lt;br /&gt;
== Welcome, introductions and overview ==&lt;br /&gt;
&lt;br /&gt;
== Lets make a map - First steps with QGIS ==&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
* Open QGIS using the icon on the top Gnome Panel&lt;br /&gt;
* From the Layer menu, select '''Add Vector Layer'''&lt;br /&gt;
  Layer -&amp;gt; Add Vector Layer&lt;br /&gt;
* A dialog box will appear&lt;br /&gt;
* Navigate to &lt;br /&gt;
  /home/workshop/gisdata/za/brits/SAExplorer/&lt;br /&gt;
* Add the following layer :&lt;br /&gt;
  Provinces.shp&lt;br /&gt;
* Experiment with the '''map navigation toolbar''' to zoom in / out, pan, select etc features.&lt;br /&gt;
* Open the '''Layer properties dialog'''. There are several ways you can do this:&lt;br /&gt;
  1) Select the layer in the legend and then from the menu do Layer -&amp;gt; Properties&lt;br /&gt;
  or&lt;br /&gt;
  2) Right click on the layer in the legend and choose Properties from the context menu&lt;br /&gt;
  or&lt;br /&gt;
  3) Double click on the layer in the legend&lt;br /&gt;
* Familiarise yourself with the various panels in the vector properties dialog.&lt;br /&gt;
* Select the '''Symbology''' tab (second from the left)&lt;br /&gt;
* From the '''Style Options''' panel, choose a pleasing '''fill colour''' for the provinces then &lt;br /&gt;
  Click OK&lt;br /&gt;
&lt;br /&gt;
Or you can:&lt;br /&gt;
* Select the '''Legend Type''' as ''Unique Value''.  &lt;br /&gt;
* Set the '''Classification field''' to ''PROVNAME''&lt;br /&gt;
* Click on the '''Classify''' button to set '''different colours for each province'''.&lt;br /&gt;
  Click OK&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
'''Add''' the following layers (also from the /home/workshop/gisdata/za/brits/SAExplorer/ directory)&lt;br /&gt;
&lt;br /&gt;
  Transport_NationalRoads.shp&lt;br /&gt;
  Transport_Railways.shp&lt;br /&gt;
  RSATowns.shp&lt;br /&gt;
  Dams.shp&lt;br /&gt;
 &lt;br /&gt;
'''Zoom and pan''' around a little to explore your data'''&lt;br /&gt;
'''Symbolise''' each layer with an appropriate colour to make the most awe inspiring map.&lt;br /&gt;
&lt;br /&gt;
Activate the '''Identify features''' icon on the middle toolbar to identify the attribute values associated with a spatial feature for the layer highlighted in the Legend Box.&lt;br /&gt;
&lt;br /&gt;
Activate the '''Select Features''' icon next to Identify Features to select one or more features.  &lt;br /&gt;
&lt;br /&gt;
Open the attribute table to view all feature attributes. Note that selected features will have highlighted rows in the attribute table.  You can do this using the neighbouring '''Open Attribute Table''' icon, or by selecting the Open Attribute Table option on the context menu for the layer in the legend using right-click on the mouse.&lt;br /&gt;
&lt;br /&gt;
You can also select rows in the attribute table by:&lt;br /&gt;
* Left-clicking on the desired rows.&lt;br /&gt;
* Using the '''Search''' box at the bottom-left of the form.&lt;br /&gt;
* Selecting the '''Advanced''' button and opening the '''Search Query Builder'''. &lt;br /&gt;
&lt;br /&gt;
Save your project using &lt;br /&gt;
 File -&amp;gt; Save&lt;br /&gt;
&lt;br /&gt;
And put it into&lt;br /&gt;
 /home/workshop/gisdata/brits.qgs&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
In ten minutes you now know how to '''add vector layers''' into QGIS, '''pan and zoom''' to navigate the map, and set the colour of vectors using the '''Single Symbol''' or '''Unique Values''' options in the '''Layer Properties'''.&lt;br /&gt;
&lt;br /&gt;
You have also learnt how to use the interactive '''Identify''' and '''Select''' functions, '''opened attribute tables''' and found out how to '''search''' them.&lt;br /&gt;
&lt;br /&gt;
== More on QGIS Mapping ==&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
Add the vector layer '''Education_Schools2000.shp''' from the SAExplorer directory.  Notice how dense the points are!&lt;br /&gt;
&lt;br /&gt;
* Right-click on the schools layer in the Legend frame.&lt;br /&gt;
* Select '''Properties'''&lt;br /&gt;
* Select the '''General tab'''&lt;br /&gt;
* Check '''Use scale dependent rendering'''&lt;br /&gt;
* Set the maximum field to 1000000&lt;br /&gt;
&lt;br /&gt;
* Zoom out to view the whole country.    '''Notice that the schools no longer appear on the map!''' &lt;br /&gt;
* Now start zooming in, keeping an eye on the scale shown in the '''scale box''' at the bottom of the screen.&lt;br /&gt;
&lt;br /&gt;
 Notice how the schools points reappear when the scale decreases below 1:1000000&lt;br /&gt;
 &lt;br /&gt;
* From the Layer menu, select '''Add Raster Layer'''&lt;br /&gt;
  Layer -&amp;gt; Add Raster Layer&lt;br /&gt;
* A dialog box will appear&lt;br /&gt;
* Navigate to &lt;br /&gt;
  /home/workshop/gisdata/za/gauteng/&lt;br /&gt;
* Add the following layer :&lt;br /&gt;
 SOU-8_satellite.tif&lt;br /&gt;
&lt;br /&gt;
Notice that the image is largely in shades of greyish-brown, but that a dam can be seen towards the bottom of the image. &lt;br /&gt;
&lt;br /&gt;
* Open the Properties for the raster layer, in a similar way to that used for vector layers.&lt;br /&gt;
 Layer -&amp;gt; Properties&lt;br /&gt;
* Select the '''Transparency''' tab.&lt;br /&gt;
* Using the slider, set transparency to 25%&lt;br /&gt;
* Click OK&lt;br /&gt;
Notice how the you can now see the vector layers behind the satellite image.&lt;br /&gt;
 &lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
If you have not already done so, add the vector layers Transport_NationalRoads.shp and Transport_Mainroads.shp from /home/workshop/gisdata/za/brits/SAExplorer.&lt;br /&gt;
Set scale-dependent rendering so that the national roads display at all scales, while the main roads are only shown when you are zoomed in. &lt;br /&gt;
&lt;br /&gt;
Go to the satellite image properties, Symbology tab.  Try the different &amp;quot;Render as&amp;quot; options.  Then when you have found the one that suits you, have a look at the &amp;quot;Contast Enhancement&amp;quot; options.  Compare &amp;quot;No Stretch&amp;quot; and &amp;quot;Stretch to MinMax&amp;quot;.  &lt;br /&gt;
&lt;br /&gt;
Try &amp;quot;Render as Single Band Grey&amp;quot;.  Set the &amp;quot;Custom min/max values&amp;quot; radio button.  Change the Min and Max values.  Go to &amp;quot;Contract Enhancement&amp;quot; again and set it to &amp;quot;Stretch and Clip to MinMax&amp;quot;, and see the effect.&lt;br /&gt;
&lt;br /&gt;
Add raster images of 1: 50 000 map sheets from &amp;quot; /home/workshop/gisdata/za/brits/toposheet images&amp;quot; &lt;br /&gt;
You will need to set the Files of Type box to '''JPEG JFIF''' to see them, before you can select them.&lt;br /&gt;
Set their transparency to a value that allows you to see the vector features behind them.  Zoom in and look at how the vector features and image features match (or not!).&lt;br /&gt;
&lt;br /&gt;
Notice how you can zoom right in to vector data, and a point remains a point and a line remains a line.  When you zoom in to the satellite image it rapidly appears &amp;quot;blocky&amp;quot; compared to the 50 000 map sheets. Zoom in enough and even the map sheet raster blocks can be seen.  This is a basic difference between vector and raster data.&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
You have learnt to set scale-dependent rendering so that data sets are displayed at appropriate scales, how to add raster data and set raster display options.&lt;br /&gt;
&lt;br /&gt;
== Shapefiles shmapefiles....real (wo)men store their data in PostGIS ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
* '''Create''' a new PostgreSQL database. To do this, open the terminal application (icon to the right of Firefox icon on the top menu bar). Now at the prompt type the following command:&lt;br /&gt;
  createdb workshop&lt;br /&gt;
&lt;br /&gt;
* '''Verify''' your database exists (once again type this into the terminal)&lt;br /&gt;
  psql -l&lt;br /&gt;
* You should see something like this:&lt;br /&gt;
 workshop@heron:~$ psql -l&lt;br /&gt;
        List of databases&lt;br /&gt;
   Name    |  Owner   | Encoding &lt;br /&gt;
 -----------+----------+----------&lt;br /&gt;
 postgres  | postgres | UTF8&lt;br /&gt;
 template0 | postgres | UTF8&lt;br /&gt;
 template1 | postgres | UTF8&lt;br /&gt;
 workshop  | workshop | UTF8&lt;br /&gt;
 (4 rows)&lt;br /&gt;
* away from the terminal for a while - lets look at what a non-spatial, vanilla PostgreSQL database looks like. Open pgAdmin 3  (the icon with a blue elephant face)&lt;br /&gt;
* Double-click on the icon that has a red cross next to some text &amp;quot;gis (localhost:5432)&amp;quot; and press OK if another screen comes up. The database cluster called gis expands and you should see two databases: 'postgres' and 'workshop'. Expand workshop -&amp;gt; Schemas -&amp;gt; public&lt;br /&gt;
Specifically, let us look at Functions and Tables - don't look to deeply, this is just to show the differences after PostGIS is installed on the database (you will see later). Specifically, there is nothing in the db at the moment. So minimise pgAdmin and lets crack on with getting some data in!&lt;br /&gt;
&lt;br /&gt;
* Install the PostGIS spatial data extensions (again from the terminal).&lt;br /&gt;
'''Hint''' copy and paste these from the IRC channel or the wiki page!&lt;br /&gt;
 createlang plpgsql workshop&lt;br /&gt;
 psql workshop &amp;lt; /usr/share/postgresql-8.3-postgis/lwpostgis.sql&lt;br /&gt;
 psql workshop &amp;lt; /usr/share/postgresql-8.3-postgis/spatial_ref_sys.sql&lt;br /&gt;
&lt;br /&gt;
* Yegads! What did I just do? Firstly, you installed the '''plpgsql''' procedural language extensions into your PostgreSQL database. Then you ran two sql scripts which create the '''PostGIS''' spatial extensions to your database. You only need to do this '''once''' when you create a new spatial database, so don't worry about remembering those commands off by heart.&lt;br /&gt;
* Lets upload a shapefile into the database....once more into the black hole (terminal window).&lt;br /&gt;
 cd /home/workshop/gisdata/za/brits/SAExplorer&lt;br /&gt;
 shp2pgsql -I -s 4326 Dams.shp dams | psql -d workshop&lt;br /&gt;
* Erk! What does that all mean? Lets break it down:&lt;br /&gt;
 cd /home/workshop/gisdata/za/brits/SAExplorer - go to our data directory&lt;br /&gt;
 shp2pgsql - an application that loads shapefiles into a PostGIS database&lt;br /&gt;
 -I - an option to shp2pgsql telling it to create a spatial index&lt;br /&gt;
 -s - the coordinate reference system to use, expressed as an EPSG number. 4326 is the same as Lat/Long WGS84&lt;br /&gt;
 Dams.shp - the filename of the shapefile to load&lt;br /&gt;
 dams - the table name that the data should be loaded into&lt;br /&gt;
 | psql workshop - send the results of the shp2pgsql into the psql application, workshop database&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Lets take a peek inside our database now and see what we have - back to pgAdmin, click on the 'workshop' database icon and then refresh it (red/green circular arrows icon).&lt;br /&gt;
Three major things to look at:&lt;br /&gt;
 &lt;br /&gt;
 Hundreds of Functions for working with spatial data: &lt;br /&gt;
 * geometry constructors, &lt;br /&gt;
 * spatial predicates, &lt;br /&gt;
 * geometry editors, &lt;br /&gt;
 * geometry aggregators, &lt;br /&gt;
 * geometry accessors, &lt;br /&gt;
 * measurements, &lt;br /&gt;
 * linear referencing&lt;br /&gt;
 * and outputting  of spatial data. &lt;br /&gt;
 &lt;br /&gt;
 2 important meta-tables: (expand the Tables object)&lt;br /&gt;
 * geometry_columns (for describing the different spatial datasets) - right-click -&amp;gt; &lt;br /&gt;
 * and spatial_ref_sys(a list of projections/coordinate systems and different representations thereof)&lt;br /&gt;
&lt;br /&gt;
 A 'dams' table which, when expanded should show a bunch of Columns, Constraints (e.g. Primary Key), Indexes, Rules and Triggers. &lt;br /&gt;
 * Note the geometry type of column 'the_geom'. &lt;br /&gt;
 * Also note the spatial index present - this allows for optimal retrieval of data based on the spatial properties of the data.&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
'''Load''' the following layers (also from the /home/workshop/gisdata/za/brits/SAExplorer/ directory)&lt;br /&gt;
&lt;br /&gt;
 Hydrology_DWAFRivers.shp -&amp;gt; call the table 'rivers'&lt;br /&gt;
 Transport_Mainroads.shp -&amp;gt; call the table 'roads'&lt;br /&gt;
 ProvincialBoundary.shp -&amp;gt; call the table 'provinces'&lt;br /&gt;
&lt;br /&gt;
And to show that this can scale a bit, let us load in the background a dataset of over 350 000 points (which we will use a bit later)&lt;br /&gt;
 * cd /home/workshop/gisdata/za/fire/modis_af/&lt;br /&gt;
 * shp2pgsql -I -s 4326 modis_af.shp fires | psql -d workshop  &amp;amp;&amp;gt; /dev/null (puts output into background)&lt;br /&gt;
 * shp2pgsql -I -s -D 4326 modis_af.shp fires | psql -d workshop (simpler and faster)&lt;br /&gt;
&lt;br /&gt;
=== Super duper advanced ===&lt;br /&gt;
&lt;br /&gt;
What if I want to load a batch of shapefiles in a directory in 1 go? Try this nifty bash script one liner!&lt;br /&gt;
&lt;br /&gt;
 for FILE in `ls *.shp`; do TABLE=`echo $FILE | sed 's/\.shp//g'`; echo $TABLE;shp2pgsql -I -s 4326 $FILE $TABLE | psql -d workshop; done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This takes a while so lets move on.&lt;br /&gt;
&lt;br /&gt;
=== What have I learnt? ===&lt;br /&gt;
&lt;br /&gt;
* PostgreSQL is an enterprise-ready relational database management system - and it's Free and Open Source Software&lt;br /&gt;
* You can create a new database using the '''createdb''' command.&lt;br /&gt;
* '''PostGIS''' is a add-on to PostgreSQL that lets you store spatial data and carry out spatial analysis within the database.&lt;br /&gt;
* In order to set up PostGIS you need to run a couple of SQL scripts&lt;br /&gt;
* '''shp2pgsql''' is a command line application that lets you load shapefiles into your spatial datastore&lt;br /&gt;
&lt;br /&gt;
== Using PostGIS data from QGIS ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
Once your data is in PostGIS, its easy to share across your organisation. Because it's in a database you get row level locking (instead of file locking in a shapefile), so many users can be editing and viewing data at the same time. There are many clients that let you visualise your PostGIS data..lets take a look at how we do it in QGIS.&lt;br /&gt;
&lt;br /&gt;
* Open QGIS&lt;br /&gt;
* Start a new project&lt;br /&gt;
  File -&amp;gt; New Project&lt;br /&gt;
* Add a PostGIS layer&lt;br /&gt;
  Layer -&amp;gt; Add PostGIS Layer&lt;br /&gt;
* From the connections list, choose '''workshop'''&lt;br /&gt;
  Click connect&lt;br /&gt;
* In the table list, click on '''dams'''&lt;br /&gt;
  Click Add&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
* Add the following layers from your database&lt;br /&gt;
 rivers&lt;br /&gt;
 roads&lt;br /&gt;
 provinces&lt;br /&gt;
&lt;br /&gt;
* set some nice colors for your layers - notice how the process is exactly the same as when setting colours for a shapefile.&lt;br /&gt;
&lt;br /&gt;
* save your project into&lt;br /&gt;
&lt;br /&gt;
 /home/workshop/gisdata/brits_pg.qgs&lt;br /&gt;
&lt;br /&gt;
=== What have I learnt? ===&lt;br /&gt;
&lt;br /&gt;
* You can '''visualise''' PostGIS spatial database tables inside QGIS&lt;br /&gt;
* To add a PostGIS layer, use the '''Layer -&amp;gt; Add PostGIS Layer''' menu option.&lt;br /&gt;
* Once a PostGIS layer, you can treat it just like any other (e.g. shapefile) layer&lt;br /&gt;
* Your presenters are truly amazing....however would I have figured this stuff out for my self :-)&lt;br /&gt;
&lt;br /&gt;
== More on PostGIS Data in QGIS ==&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
* Click on the '''Blue Elephant''' icon in the middle toolbar row to start SPIT loader.&lt;br /&gt;
* Select the PostgreSQL Connection as &amp;quot;workshop&amp;quot;.&lt;br /&gt;
* Click on Connect to verify your connection&lt;br /&gt;
* Now click &amp;quot;Add&amp;quot; - the &amp;quot;Add Shapefile&amp;quot; dialog box comes up. &lt;br /&gt;
&lt;br /&gt;
Navigate to /home/workshop/gisdata/za/brits/SAExplorer.&lt;br /&gt;
&lt;br /&gt;
* Select &amp;quot;Rsatowns.shp&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 Click &amp;quot;Open&amp;quot;.  PostGIS scans the file and lists it in the display frame.&lt;br /&gt;
&lt;br /&gt;
 Click &amp;quot;OK&amp;quot;.  QGIS loads the shapefile data into PostGIS with no need to use the terminal!&lt;br /&gt;
&lt;br /&gt;
* Use Layer -&amp;gt; Add PostGIS Layer to load the layer from PostGIS directly into QGIS.  &lt;br /&gt;
&lt;br /&gt;
* Now add the rivers PostGIS layer to QGIS to see another advantage of using PostGIS layers.&lt;br /&gt;
* Open the Layer properties form.  &lt;br /&gt;
* On the General tab, click &amp;quot;Query Builder&amp;quot; near the bottom right-hand corner. This opens the Query Builder. &lt;br /&gt;
* Click Field &amp;quot;RIVER_CLAS&amp;quot;.&lt;br /&gt;
* Click the &amp;quot;All&amp;quot; button under the &amp;quot;Values&amp;quot; frame.&lt;br /&gt;
* Build the Query &lt;br /&gt;
 &amp;quot;RIVER_CLAS&amp;quot; LIKE 'Perennial' OR &amp;quot;RIVER_CLAS&amp;quot; LIKE 'Perennial river'&lt;br /&gt;
* Click &amp;quot;Test&amp;quot; to check that it will work.&lt;br /&gt;
* Click &amp;quot;OK&amp;quot; twice to apply it.&lt;br /&gt;
&lt;br /&gt;
Now look at the display - the query has not merely highlighted the selected features, it has filtered the non-selected features out so that they are not displayed.  &lt;br /&gt;
&lt;br /&gt;
=== Now you try ===&lt;br /&gt;
&lt;br /&gt;
* Try loading other layers into PostGIS using the Spit loader.&lt;br /&gt;
* Load these into QGIS, and use the &amp;quot;Query Builder&amp;quot; to define the data sets that you want to see.&lt;br /&gt;
* You could define the non-perennial rivers as a separate data set, and use scale-dependent rendering to show them only when you zoom right in.&lt;br /&gt;
&lt;br /&gt;
=== What I have learnt ===&lt;br /&gt;
&lt;br /&gt;
How to rapidly load data into postgis using the spit loader.  How to set up data queries to filter spatial data display from postgis.&lt;br /&gt;
&lt;br /&gt;
== The Zen of PostGIS - not just a pretty place to store data! ==&lt;br /&gt;
&lt;br /&gt;
Okay, we will go a bit deeper into the woods here! We want to show that with some SQL (I won't say simple) you can do some complex - and repeatable - spatial analysis right inside your database, and then visualise the results in various clients.&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
We will use pgAdmin (your great PostgreSQL friend) to get this happening. Click on the Tables object of your workshop db. Then Tools -&amp;gt; Query tool from the menu. This should present a dialog box with 3 panels.&lt;br /&gt;
&lt;br /&gt;
We are going to do a simple intersection to get started.&lt;br /&gt;
In the top left panel paste &lt;br /&gt;
 SELECT roads.gid, roads.code, roads.route_nr, roads.shape_leng, roads.the_geom FROM roads, rivers WHERE (roads.the_geom &amp;amp;&amp;amp; rivers.the_geom AND intersects(roads.the_geom, rivers.the_geom));&lt;br /&gt;
and click Query -&amp;gt; Execute&lt;br /&gt;
This should take a few seconds, then you will see a result returned into the Data Output grid. Something like 3338 rows are returned from the original roads dataset of 11964.&lt;br /&gt;
&lt;br /&gt;
So what is going on here?&lt;br /&gt;
&lt;br /&gt;
You are performing a spatial overlay with a SQL query, asking the database to return records from the roads table that spatially intersect records from the rivers table. &lt;br /&gt;
* the &amp;amp;&amp;amp; operator is a fast bounding box 'overlaps' test that takes advantage of the spatial indexes of the table to narrow the search space for the true intersection test.&lt;br /&gt;
* the intersects part of the query tests the geometries of the subset selected above for spatial intersection and returns a result.&lt;br /&gt;
&lt;br /&gt;
To show some other functionality, paste the following text into the query window and execute:&lt;br /&gt;
 ALTER TABLE roads DROP CONSTRAINT enforce_srid_the_geom;UPDATE geometry_columns SET srid = 4148 WHERE f_table_name = 'roads';COMMIT; UPDATE roads SET the_geom = ST_Transform(the_geom,4148);COMMIT; ALTER TABLE roads ADD CONSTRAINT enforce_srid_the_geom CHECK (srid(the_geom) = 4148);&lt;br /&gt;
We are being good South African GIS types and using our Haartebeesthoek94 Datum. Lets do the same for rivers:&lt;br /&gt;
 ALTER TABLE rivers DROP CONSTRAINT enforce_srid_the_geom;UPDATE geometry_columns SET srid = 4148 WHERE f_table_name = 'rivers';COMMIT; UPDATE rivers SET the_geom = ST_Transform(the_geom,4148);COMMIT; ALTER TABLE rivers ADD CONSTRAINT enforce_srid_the_geom CHECK (srid(the_geom) = 4148);&lt;br /&gt;
&lt;br /&gt;
This looks fairly intense, but the main points are the changing of the data in the geometry_columns meta-table and then updating the geometries in each table to a different CRS (4148, or Haartebeesthoek94). We demonstrate the use of the UPDATE SQL command, used to change data in the database, and the use of the ST_Transform function of PostGIS, which does the work. Now lets try the original query again:&lt;br /&gt;
 SELECT roads.gid, roads.code, roads.route_nr, roads.shape_leng, roads.the_geom FROM roads, rivers WHERE st_intersects(roads.the_geom, rivers.the_geom);&lt;br /&gt;
...which returns the same number of features, but in our own CRS. Note that we have used the ST_Intersects function rather than the Intersects function as previously shown. ST_ type functions are more standards compliant, so should be used in place of the older style functions.&lt;br /&gt;
Ideally we would project the data as appropriate, using the very same technique, but substituting 4148 for the EPSG code for our projection of choice. This is a demo though, folks, so I will get away with murder...&lt;br /&gt;
Lets quickly repeat the process for the other datasets we will use in a minute:&lt;br /&gt;
 ALTER TABLE provinces DROP CONSTRAINT enforce_srid_the_geom;UPDATE geometry_columns SET srid = 4148 WHERE f_table_name = 'provinces';COMMIT; UPDATE provinces SET the_geom = ST_Transform(the_geom,4148);COMMIT; ALTER TABLE provinces ADD CONSTRAINT enforce_srid_the_geom CHECK (srid(the_geom) = 4148);&lt;br /&gt;
 ALTER TABLE fires DROP CONSTRAINT enforce_srid_the_geom;UPDATE geometry_columns SET srid = 4148 WHERE f_table_name = 'fires';COMMIT; UPDATE fires SET the_geom = ST_Transform(the_geom,4148);COMMIT; ALTER TABLE fires ADD CONSTRAINT enforce_srid_the_geom CHECK (srid(the_geom) = 4148);&lt;br /&gt;
&lt;br /&gt;
So, while that goes ahead (it will take a minute or so to transform 350k points), let us think out another analysis. Lets make it a bit tricky. Okay, we want to create a table for serving up data to the outside world (Gavin will do this later) that has all the intense fires in Gauteng or NorthWest Province, that have occurred within 3000 metres of a main road. There are many ways to skin this cat in PostGIS, so I will pick a method and explain why I did so.&lt;br /&gt;
First, a convenience table is created:&lt;br /&gt;
 SELECT roads.gid, ST_Buffer(roads.the_geom,0.027) AS geom INTO roads_buffer FROM roads, (SELECT * FROM provinces WHERE prov_code = 'GT' OR prov_code = 'NW') AS prov WHERE ST_Within(roads.the_geom, prov.the_geom);&lt;br /&gt;
This is a table of polygons representing ~3000 metre road buffers, and note the use of the function to populate the geometry_columns meta-table with our new layer.&lt;br /&gt;
 SELECT DISTINCT fires.gid, fires.frp, fires.acqdatetim, fires.the_geom INTO fires_analysis_3000m FROM fires, (SELECT * FROM provinces WHERE prov_code = 'GT' OR prov_code = 'NW') AS prov, roads_buffer  WHERE fires.frp &amp;gt; 200 AND ST_Within(fires.the_geom, prov.the_geom) AND ST_Within(fires.the_geom, roads_buffer.geom);&lt;br /&gt;
The main feature of this query is the longish WHERE clause, which tests weather the fire is intense, whether it falls within Gauteng or NW Province and whether the fire occurred within appx 3000 metres of one of our main roads.&lt;br /&gt;
&lt;br /&gt;
There are not too many fires that fall out of this analysis, but it shows how we have relatively easily worked with and reduced a large dataset to a few points. These queries can be further tuned to take advantage of spatial and other indexes, but that is perhaps for another time.&lt;br /&gt;
&lt;br /&gt;
The final thing we will do is prepare this layer for use on the web...&lt;br /&gt;
 INSERT INTO geometry_columns(f_table_catalog,f_table_schema,f_table_name,f_geometry_column,coord_dimension,srid,&amp;quot;type&amp;quot;) VALUES('','public','fires_analysis_3000m','the_geom',2,4148,'MULTIPOINT');&lt;br /&gt;
Normal meta-table stuff&lt;br /&gt;
 ALTER TABLE fires_analysis_3000m ADD PRIMARY KEY (gid);&lt;br /&gt;
And if we wanted to we could add a spatial index:&lt;br /&gt;
 CREATE INDEX fires_Analysis_3000m_the_geom_gist ON fires_Analysis_3000m USING gist(the_geom);&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
Well, no you do not - but you can ask questions...&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
Well, hopefully a fair bit. You can, with a bit of practice and reading up on the matter, get PostGIS to do some rather interesting and powerful things. We have just seen a database do GIS... Some of you may be in the know about such matters, but hopefully this shows some possibilities to others.&lt;br /&gt;
&lt;br /&gt;
== uDig ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
uDig ('user-friendly desktop internet GIS') is another excellent desktop GIS. let's check out the basics&lt;br /&gt;
&lt;br /&gt;
* Open uDig&lt;br /&gt;
* start adding layers (note the variety of data that can be used)&lt;br /&gt;
** Add a PostGIS layer&lt;br /&gt;
** add a shapefile&lt;br /&gt;
* theme the layers&lt;br /&gt;
* check out the table view, catalogue and some functionality&lt;br /&gt;
&lt;br /&gt;
There's no need to save projects - you can just close uDig and it will save automatically. Note &lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
* Add the following layers from your database&lt;br /&gt;
 rivers, dams, schools, roads, more if you like&lt;br /&gt;
&lt;br /&gt;
* theme the school layer with nice symbols and labels - we're going to try scale-dependent rendering&lt;br /&gt;
**zoom in closer than 1:50000 and set the max scale to 50000&lt;br /&gt;
**on the theme dialog, click XML&lt;br /&gt;
**select the &amp;lt;rule&amp;gt;&amp;lt;/rule&amp;gt; section and copy it to a text editor.&lt;br /&gt;
**zoom out beyond 50000, go back to 'theme' and simplify your symbols, removing the labels.&lt;br /&gt;
**set the min scale to 50000&lt;br /&gt;
**click 'XML'&lt;br /&gt;
**paste the previous 'rule' into the XML, before or after the one you see.&lt;br /&gt;
**click OK! now zoom in and out past to see the result. &lt;br /&gt;
 &lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
* Viewing and rendering different formats in uDig&lt;br /&gt;
* Theming with SLD (Styled layer descriptor), the OGC standard.&lt;br /&gt;
* scale-dependent rendering&lt;br /&gt;
** with a point - we're going to come back to uDig!&lt;br /&gt;
&lt;br /&gt;
== GeoServer ==&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
 cd&lt;br /&gt;
 export JAVA_HOME=/usr&lt;br /&gt;
 cd Apps/geoserver&lt;br /&gt;
 bin/startup.sh&lt;br /&gt;
&lt;br /&gt;
* Start geoserver (normally set to start automatically and run all the time)&lt;br /&gt;
* All admin is done via the web&lt;br /&gt;
* set up a namespace&lt;br /&gt;
* set up data stores&lt;br /&gt;
* set up feature types&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
* start GeoServer&lt;br /&gt;
* click Config -&amp;gt; Data&lt;br /&gt;
* Set Namespace to any name and any url&lt;br /&gt;
* Set Datastore to your postGIS database&lt;br /&gt;
* define a FeatureType for schools, choose a point style&lt;br /&gt;
'''Styling'''&lt;br /&gt;
*Go to Data -&amp;gt; Style -&amp;gt; new&lt;br /&gt;
**give your style a name and paste in your school SLD from uDig&lt;br /&gt;
**submit&lt;br /&gt;
**Go back to FeatureTypes and Edit your schools Feature, applying your new style&lt;br /&gt;
**Check out the results in the GeoServer demo pages&lt;br /&gt;
&lt;br /&gt;
'''Group layers'''&lt;br /&gt;
* Set up a group in the 'WMS' section&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Back to uDig&lt;br /&gt;
*bring in a WMS layer from http://localhost/geoserver:8080/wms&lt;br /&gt;
*bring in the same layer as WFS&lt;br /&gt;
**theme it&lt;br /&gt;
**save it as a shapefile&lt;br /&gt;
*try this with QGIS too (and with ArcGIS back at the office!)&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
* you can use GeoServer to serve your spatial data from any source as WMS, WFS, KML and more!&lt;br /&gt;
* You can use WMS and WFS layers in a desktop GIS&lt;br /&gt;
* impress your colleagues by sending them kml links from your geoserver so they can view them live in Google Earth!&lt;br /&gt;
&lt;br /&gt;
== More Advanced QGIS Use ==&lt;br /&gt;
Here are some more things you can do with QGIS!  Don't be put off by the heading of this section, we'll take you through step-by-step as before..&lt;br /&gt;
&lt;br /&gt;
=== ''Quick Qml with QGIS'' ===&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
If you have used  ArcView before, you might have used the avl feature which lets you store the symbology settings for a layer. QGIS has a similar feature called 'qml' which lets you create default symbology settings for a layer, that will be applied when ever that layer is loaded. We are also going to take a quick peek at how to create more complex symbology for a layer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Open QGIS if its not already running.&lt;br /&gt;
* Add the dams layer from the Postgresql 'Workshop' database&lt;br /&gt;
* Double click on the layer entry in the legend&lt;br /&gt;
* Activate the symbology tab&lt;br /&gt;
* Now change the legend type to '''Graduated Symbol'''&lt;br /&gt;
* Change the classification field to '''shape_area'''&lt;br /&gt;
* Set the '''number of classes''' to 5&lt;br /&gt;
* Click the '''classify''' button&lt;br /&gt;
* Click the '''Apply''' button&lt;br /&gt;
&lt;br /&gt;
You should see the shapes in the main window have now adopted a range of scintillating colours! However is you add that layer to another QGIS project you would normally have to do all this work again! Qml to the rescue.&lt;br /&gt;
&lt;br /&gt;
* Save your symbology settings by clicking the '''save as default''' button&lt;br /&gt;
&lt;br /&gt;
Ok lets test it out!&lt;br /&gt;
&lt;br /&gt;
* Close QGIS&lt;br /&gt;
* Reopen QGIS&lt;br /&gt;
* Add the Dams layer from the Postgresql 'Workshop' database&lt;br /&gt;
&lt;br /&gt;
If the planets are correctly aligned, your dams will appear all beautifully coloured according to your personal preference.&lt;br /&gt;
&lt;br /&gt;
If you want to you can also save your settings as non-default, and them restore them by selecting a .qml file again later. Refer to the '''Load style''' and '''Save style''' buttons on the vector properties dialog.&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
Ok give it a whirl, create default appearances for your other layers stored in your PostGIS database. Also try experimenting with the other legend types such as '''Continuous Colour''' and '''Unique Value'''. &lt;br /&gt;
Once you have set your default appearances, close QGIS and then reopen it. Now add all your PostGIS layers to the blank project and they should all magically appear with your preferred appearance.&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
The '''Layer Properties''' dialog in QGIS will let you specify the '''default appearance''' for a layer.&lt;br /&gt;
&lt;br /&gt;
=== ''Setting Projections'' ===&lt;br /&gt;
Projections are a mathematical way of transforming latitude and longitude coordinates into a form that can be meaningfully used in a map.  Sources to be added.&lt;br /&gt;
Some projections in common use in South Africa are the Albers Equal Area, Lamberts Conformal Conic and Gauss (LO) projections.&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
* Make sure that you are zoomed in to Gauteng.&lt;br /&gt;
* From the File menu, select Project Properties.&lt;br /&gt;
  File -&amp;gt; Project Properties&lt;br /&gt;
* Activate the Coordinate Reference System tab&lt;br /&gt;
* Check &amp;quot;Enable &amp;quot;on the fly&amp;quot; CRS Transformation&lt;br /&gt;
* Note that the current Coordinate Reference System is WGS84, which is a standard for displaying geographic coordinates.&lt;br /&gt;
* Look at the column EPSG - this a standard for identifying coordinate systems.  When you have selected a coordinate system you can always find it again quickly by noting the EPSG code and entering it into the '''Find box''' at the bottom of the form.&lt;br /&gt;
* Highlight the ''Projected Coordinate Systems&amp;quot; heading, and double-click to open the list.&lt;br /&gt;
* Scroll down and highlight the &amp;quot;Universal Transverse Mercator&amp;quot; heading.&lt;br /&gt;
* Select the '''Name''' radio button.&lt;br /&gt;
* Enter &amp;quot;33S&amp;quot; in the text box, and press find.  Keep pressing find until you get to &amp;quot;WGS 84/UTM Zone 33&amp;quot;.  &lt;br /&gt;
 Or select the EPSG ID radio button, enter 32733 and press the Find button.    Isn't that easier?&lt;br /&gt;
* Notice that the overall shape of the country has changed due to the projection.&lt;br /&gt;
* Zoom into Gauteng again.  Move your cursor and look at the coordinates shown at the bottom of the screen.  Notice how they have changed.  They are now in meters rather than decimal degrees.&lt;br /&gt;
&lt;br /&gt;
=== Now You Try! ===&lt;br /&gt;
First of all try a related projection such as UTM Zone 34S or UTM 38S, and see what the impact is.  Move your cursor around - how do the coordinates differ from ones shown under UTM 36S?&lt;br /&gt;
&lt;br /&gt;
Then try one of the Stereographic South projections, such as EPSG=3031,  for a very different view of South Africa!&lt;br /&gt;
&lt;br /&gt;
QGIS calculates the effect of the projection before displaying the data and doesn't make any changes, so you can try anything you like!&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
You have learnt how to set an on-the-fly projection for display in QGIS, and how to use EPSG codes to rapidly find a specific projection. Remember, if you are trying to develop a map for use in the field you will need to use a projection specific to South Africa.&lt;br /&gt;
&lt;br /&gt;
=== ''Editing Vector Data'' ===&lt;br /&gt;
Have a look at the boundary of the Eastern and Western Cape on the coast.  The rivers and provincial boundary seem to follow each other closely. Now zoom right in and notice how the provincial boundary is much more detailed than the rivers, and they don't follow each other well at all.&lt;br /&gt;
&lt;br /&gt;
QGIS to the rescue!&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
* Select the rivers layer in the Legend panel on the left.&lt;br /&gt;
* Click on the blue Pencil icon on the leftmost toolbar on the bottom row or &amp;lt;menu option&amp;gt;.  &lt;br /&gt;
* Now click on the &amp;lt;edit vertices&amp;gt; icon. Notice how the river lines have suddenly sprouted small circles wherever the line changes direction.  These are the vertices - if you have used a drawing program before you might have seen something like this. &lt;br /&gt;
* Drag the vertices of the rivers to align with the provincial boundary.&lt;br /&gt;
 Notice that we don't have enough vertices to do this exactly.&lt;br /&gt;
* Click on the add vertices icon.  Now click on the river wherever more vertices are needed.  &lt;br /&gt;
* When you have enough vertices go back to &amp;quot;Edit Vertices&amp;quot; and move them where they need to be.&lt;br /&gt;
* Now save you changes using &amp;lt;&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Now You Try! ===&lt;br /&gt;
Go to Gauteng and bring up the JPEG map sheets behind the roads.  Have a look at the roads and notice where the vectors are not aligned with the base map.  Use the skills you have used to correct the roads vectors.  Try other tools like Split Features, Move Features and other to see what they do.  &lt;br /&gt;
&lt;br /&gt;
Then look at the rivers and provincial boundaries again.  See if you can find another place where the two are not aligned.  Experiment with the Snapping Options under Project Properties.  Use the Measure Length tool to decide on reasonable initial tolerance values.&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
You have now learned how to edit vector data in QGIS using the Add Vertices and Move Vertices functions.  &lt;br /&gt;
&lt;br /&gt;
[[Category:Africa]]&lt;/div&gt;</summary>
		<author><name>Wiki-Brendonwp</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=AfricaEvents29November2008&amp;diff=32745</id>
		<title>AfricaEvents29November2008</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=AfricaEvents29November2008&amp;diff=32745"/>
		<updated>2008-12-01T08:56:10Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Brendonwp: /* What have I learned? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;...back to [[Africa_Local_Chapter]]&lt;br /&gt;
&lt;br /&gt;
= What? =&lt;br /&gt;
&lt;br /&gt;
Our first OSGeo local chapter meet up! We will chew the cud, show you some cool stuff and start to get people familiar with the brilliant FOSS GeoSpatial products out there!&lt;br /&gt;
&lt;br /&gt;
We'll go through installing some software and getting it to a point where you can have fun with it. &lt;br /&gt;
&lt;br /&gt;
= How Much? =&lt;br /&gt;
&lt;br /&gt;
There will be a door charge of R50 to cover costs &amp;amp; refreshments. That and an open mind are all you need to bring. If you're staying for the QGIS session in the afternoon you can bring your laptop (Windows, Linux or Mac!)&lt;br /&gt;
&lt;br /&gt;
= Where? =&lt;br /&gt;
&lt;br /&gt;
 St Davids Marist Inanda College&lt;br /&gt;
 36 Rivonia Rd&lt;br /&gt;
 Inanda&lt;br /&gt;
 Sandton&lt;br /&gt;
[http://www.stdavids.co.za/about_directions.asp Map and Directions]&lt;br /&gt;
&lt;br /&gt;
NB: We'll be in the Prep School computer lab.&lt;br /&gt;
&lt;br /&gt;
= When? =&lt;br /&gt;
&lt;br /&gt;
* November 29th&lt;br /&gt;
* Presentation and workshop segment: 9am to 12pm&lt;br /&gt;
* QGIS Bug Party! 12h30 onwards&lt;br /&gt;
&lt;br /&gt;
= Who =&lt;br /&gt;
&lt;br /&gt;
Your friendly presenters for the day will be:&lt;br /&gt;
&lt;br /&gt;
* '''Tim Sutton''' (tim at linfiniti.com) - QGIS hacker and FOSS GIS junkie extraordinaire. Tim eats Weetbix for breakfast because it sounds like Linux. He once rewrote Nkosi Sikelela in C++ because he was feeling patriotic.&lt;br /&gt;
* '''Graeme McFerren''' - (graeme.mcferren at gmail.com) - GIS researcher and FOSS4G user. Mmm, aspire to be like Tim then.&lt;br /&gt;
* '''Gavin Fleming''' (gavinjfleming at gmail dot com) - I enjoy my daily FOSS4G fix and telling people how great it was. I'm a 'geoinformation scientist' at Mintek and love to see cutting edge and useful geospatial applications emerging. &lt;br /&gt;
* '''Brendon Wolff-Piggott''' - (brendon at integratedgeodata.co.za) - Water resources consultant and FOSS GIS enthusiast.  I wish there were more hours in the day to keep up with FOSS4G!&lt;br /&gt;
&lt;br /&gt;
= RSVP =&lt;br /&gt;
Let gavinjfleming at gmail dot com know if you're coming as numbers are limited. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= QGIS Bug Party =&lt;br /&gt;
&lt;br /&gt;
As a preview release there are still various bugs that need resolving and various elements (e.g. translation) that may be incomplete. On Saturday the 29th in Johannesburg, South Africa, members from the Africa OSGeo chapter will be holding a QGIS Bug Hunt Party. We would like to invite people from around the world to virtually participate. Each person attending will get a free copy of QGIS 1.0.0 Preview 2 absolutely free of charge! Sorry no shrink wrap copies available. Preview 2 is the second in a series of preview releases we are making before we release the Stable QGIS 1.0.0 with long term support. &lt;br /&gt;
We are going to great lengths to polish up QGIS 1.0 for you (inside and out) and we really appreciate all the feedback we have received thus far. Its virtually impossible to ship any software completely bug free, but with your help we can add just a little more shine to the polish! We need your help to:&lt;br /&gt;
&lt;br /&gt;
* test on different machine configurations (bring your laptops!)&lt;br /&gt;
* validate existing bugs on each platform&lt;br /&gt;
* mark bugs that can no longer be replicated as ready for closure&lt;br /&gt;
* create new tickets for bugs that have not been reported yet (please search first to avoid posting duplicates!)&lt;br /&gt;
* mark bugs that are duplicates&lt;br /&gt;
* provide additional diagnostics so that developers can replicate issues&lt;br /&gt;
&lt;br /&gt;
The idea is not to try to *fix* the bugs, but rather to do a QA session on the bugs in the bug tracker. In the process you will learn how to interact with an Open Source project the Right Way i.e. filing good quality bug reports.&lt;br /&gt;
&lt;br /&gt;
I will start off with a simple show and tell covering:&lt;br /&gt;
* where to find the QGIS (and other OSGeo projects bug tracking sites)&lt;br /&gt;
* creating an account so you can file non-anonymous bugs and feedback on any OSGeo project bug tracker&lt;br /&gt;
* how the bug tracking system works - what the various input fields in the QGIS tracker mean&lt;br /&gt;
&lt;br /&gt;
The approach will be to start by going through any bugs that have not been revised recently, adding additional status information. If you think the bug is fixed, add a comment:&lt;br /&gt;
&lt;br /&gt;
'''Works for me now, recommend closure, &amp;lt;Your Name&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
If you can replicate the bug, add a comment like:&lt;br /&gt;
&lt;br /&gt;
'''Can replicate, OS: Ubuntu 8.10, QGIS Preview 2, &amp;lt;Your Name&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Use your initiative to deal with tickets that don't fit into the categories above, following a similar approach.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After that I will turn you loose on the queue and a shiny copy of QGIS preview 2 and let you have at it. Party is over when the last man falls asleep at the keyboard! Ok probably we will finish at between 4:30pm and 5pm if my wife has anything to do with it!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We look forward to seeing you at the QGIS Bug Party!!!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Programme in a nutshell =&lt;br /&gt;
&lt;br /&gt;
* Be there in time for a 9am start&lt;br /&gt;
* Morning session: Introducing QGIS, PostGIS, GeoServer, uDig&lt;br /&gt;
* Afternoon session: QGIS Bug Party&lt;br /&gt;
&lt;br /&gt;
Note: There will be frequent rest breaks and lots of time to ask questions!&lt;br /&gt;
&lt;br /&gt;
'''1. Welcome, Introduction and Overview: Starting up (5 minutes)'''&lt;br /&gt;
&lt;br /&gt;
What am I looking at here? What do I need to do to get started?&lt;br /&gt;
&lt;br /&gt;
'''2. QGIS: Opening and viewing spatial data. Your first map. (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
What can I look at? How do I set up a simple map?  Toolbars and Plug-ins. &lt;br /&gt;
&lt;br /&gt;
'''3. PostGIS: Why use PostGIS? Simple example of loading data. (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
Why use a spatial database? What does one look like? How do I populate a spatial database and where does my data live?&lt;br /&gt;
&lt;br /&gt;
'''4. QGIS: Looking at PostGIS data from QGIS.  (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
View a PostGIS database from QGIS.  Setting up data definitions for PostGIS sources.  Loading data into PostGIS with the Spit Loader (no, please don't touch the screen!)&lt;br /&gt;
&lt;br /&gt;
'''5. PostGIS: More than a place to dump data... (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
PostGIS is not just good for storing data, one can manipulate it too! GIS can be done inside the database, which is rather nice when you think about it.&lt;br /&gt;
&lt;br /&gt;
'''6. uDig: Why uDig?  GIS and the Web.  (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
Getting GIS data ready for presentation on the Web! Editing SLDs.&lt;br /&gt;
&lt;br /&gt;
'''7. GeoServer: Tell everyone about it!  (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
Displaying GIS data on the web.  Grouped WMS.  Scale-dependent rendering.&lt;br /&gt;
&lt;br /&gt;
'''8. And more QGIS.'''&lt;br /&gt;
&lt;br /&gt;
Detail on symbology.  Topological editing. QML, SPD and Openlayers.  (15 minutes)&lt;br /&gt;
&lt;br /&gt;
'''9. Show off session'''&lt;br /&gt;
&lt;br /&gt;
Here we can do some whizz bang demo stuff that we don't have time to do in  workshop format but that will give you some hints as to what else can be achieved.&lt;br /&gt;
&lt;br /&gt;
'''10. General'''&lt;br /&gt;
&lt;br /&gt;
Questions and answers.  What you can do next.  Resources.  Possibly some in-depth examples based on frequent questions.  What would you like to see at future workshops?&lt;br /&gt;
&lt;br /&gt;
'''11. Your assessment of the workshop'''&lt;br /&gt;
&lt;br /&gt;
Tell us what you thought!&lt;br /&gt;
&lt;br /&gt;
= Workshop Notes =&lt;br /&gt;
&lt;br /&gt;
== Welcome, introductions and overview ==&lt;br /&gt;
&lt;br /&gt;
== Lets make a map - First steps with QGIS ==&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
* Open QGIS using the icon on the top Gnome Panel&lt;br /&gt;
* From the Layer menu, select '''Add Vector Layer'''&lt;br /&gt;
  Layer -&amp;gt; Add Vector Layer&lt;br /&gt;
* A dialog box will appear&lt;br /&gt;
* Navigate to &lt;br /&gt;
  /home/workshop/gisdata/za/brits/SAExplorer/&lt;br /&gt;
* Add the following layer :&lt;br /&gt;
  Provinces.shp&lt;br /&gt;
* Experiment with the '''map navigation toolbar''' to zoom in / out, pan, select etc features.&lt;br /&gt;
* Open the '''Layer properties dialog'''. There are several ways you can do this:&lt;br /&gt;
  1) Select the layer in the legend and then from the menu do Layer -&amp;gt; Properties&lt;br /&gt;
  or&lt;br /&gt;
  2) Right click on the layer in the legend and choose Properties from the context menu&lt;br /&gt;
  or&lt;br /&gt;
  3) Double click on the layer in the legend&lt;br /&gt;
* Familiarise yourself with the various panels in the vector properties dialog.&lt;br /&gt;
* Select the '''Symbology''' tab (second from the left)&lt;br /&gt;
* From the '''Style Options''' panel, choose a pleasing '''fill colour''' for the provinces then &lt;br /&gt;
  Click OK&lt;br /&gt;
&lt;br /&gt;
Or you can:&lt;br /&gt;
* Select the '''Legend Type''' as ''Unique Value''.  &lt;br /&gt;
* Set the '''Classification field''' to ''PROVNAME''&lt;br /&gt;
* Click on the '''Classify''' button to set '''different colours for each province'''.&lt;br /&gt;
  Click OK&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
'''Add''' the following layers (also from the /home/workshop/gisdata/za/brits/SAExplorer/ directory)&lt;br /&gt;
&lt;br /&gt;
  Transport_NationalRoads.shp&lt;br /&gt;
  Transport_Railways.shp&lt;br /&gt;
  RSATowns.shp&lt;br /&gt;
  Dams.shp&lt;br /&gt;
 &lt;br /&gt;
'''Zoom and pan''' around a little to explore your data'''&lt;br /&gt;
'''Symbolise''' each layer with an appropriate colour to make the most awe inspiring map.&lt;br /&gt;
&lt;br /&gt;
Activate the '''Identify features''' icon on the middle toolbar to identify the attribute values associated with a spatial feature for the layer highlighted in the Legend Box.&lt;br /&gt;
&lt;br /&gt;
Activate the '''Select Features''' icon next to Identify Features to select one or more features.  &lt;br /&gt;
&lt;br /&gt;
Open the attribute table to view all feature attributes. Note that selected features will have highlighted rows in the attribute table.  You can do this using the neighbouring '''Open Attribute Table''' icon, or by selecting the Open Attribute Table option on the context menu for the layer in the legend using right-click on the mouse.&lt;br /&gt;
&lt;br /&gt;
You can also select rows in the attribute table by:&lt;br /&gt;
* Left-clicking on the desired rows.&lt;br /&gt;
* Using the '''Search''' box at the bottom-left of the form.&lt;br /&gt;
* Selecting the '''Advanced''' button and opening the '''Search Query Builder'''. &lt;br /&gt;
&lt;br /&gt;
Save your project using &lt;br /&gt;
 File -&amp;gt; Save&lt;br /&gt;
&lt;br /&gt;
And put it into&lt;br /&gt;
 /home/workshop/gisdata/brits.qgs&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
In ten minutes you now know how to '''add vector layers''' into QGIS, '''pan and zoom''' to navigate the map, and set the colour of vectors using the '''Single Symbol''' or '''Unique Values''' options in the '''Layer Properties'''.&lt;br /&gt;
&lt;br /&gt;
You have also learnt how to use the interactive '''Identify''' and '''Select''' functions, '''opened attribute tables''' and found out how to '''search''' them.&lt;br /&gt;
&lt;br /&gt;
== More on QGIS Mapping ==&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
Add the vector layer '''Education_Schools2000.shp''' from the SAExplorer directory.  Notice how dense the points are!&lt;br /&gt;
&lt;br /&gt;
* Right-click on the schools layer in the Legend frame.&lt;br /&gt;
* Select '''Properties'''&lt;br /&gt;
* Select the '''General tab'''&lt;br /&gt;
* Check '''Use scale dependent rendering'''&lt;br /&gt;
* Set the maximum field to 1000000&lt;br /&gt;
&lt;br /&gt;
* Zoom out to view the whole country.    '''Notice that the schools no longer appear on the map!''' &lt;br /&gt;
* Now start zooming in, keeping an eye on the scale shown in the '''scale box''' at the bottom of the screen.&lt;br /&gt;
&lt;br /&gt;
 Notice how the schools points reappear when the scale decreases below 1:1000000&lt;br /&gt;
 &lt;br /&gt;
* From the Layer menu, select '''Add Raster Layer'''&lt;br /&gt;
  Layer -&amp;gt; Add Raster Layer&lt;br /&gt;
* A dialog box will appear&lt;br /&gt;
* Navigate to &lt;br /&gt;
  /home/workshop/gisdata/za/gauteng/&lt;br /&gt;
* Add the following layer :&lt;br /&gt;
 SOU-8_satellite.tif&lt;br /&gt;
&lt;br /&gt;
Notice that the image is largely in shades of greyish-brown, but that a dam can be seen towards the bottom of the image. &lt;br /&gt;
&lt;br /&gt;
* Open the Properties for the raster layer, in a similar way to that used for vector layers.&lt;br /&gt;
 Layer -&amp;gt; Properties&lt;br /&gt;
* Select the '''Transparency''' tab.&lt;br /&gt;
* Using the slider, set transparency to 25%&lt;br /&gt;
* Click OK&lt;br /&gt;
Notice how the you can now see the vector layers behind the satellite image.&lt;br /&gt;
 &lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
If you have not already done so, add the vector layers Transport_NationalRoads.shp and Transport_Mainroads.shp from /home/workshop/gisdata/za/brits/SAExplorer.&lt;br /&gt;
Set scale-dependent rendering so that the national roads display at all scales, while the main roads are only shown when you are zoomed in. &lt;br /&gt;
&lt;br /&gt;
Go to the satellite image properties, Symbology tab.  Try the different &amp;quot;Render as&amp;quot; options.  Then when you have found the one that suits you, have a look at the &amp;quot;Contast Enhancement&amp;quot; options.  Compare &amp;quot;No Stretch&amp;quot; and &amp;quot;Stretch to MinMax&amp;quot;.  &lt;br /&gt;
&lt;br /&gt;
Try &amp;quot;Render as Single Band Grey&amp;quot;.  Set the &amp;quot;Custom min/max values&amp;quot; radio button.  Change the Min and Max values.  Go to &amp;quot;Contract Enhancement&amp;quot; again and set it to &amp;quot;Stretch and Clip to MinMax&amp;quot;, and see the effect.&lt;br /&gt;
&lt;br /&gt;
Add raster images of 1: 50 000 map sheets from &amp;quot; /home/workshop/gisdata/za/brits/toposheet images&amp;quot; &lt;br /&gt;
You will need to set the Files of Type box to '''JPEG JFIF''' to see them, before you can select them.&lt;br /&gt;
Set their transparency to a value that allows you to see the vector features behind them.  Zoom in and look at how the vector features and image features match (or not!).&lt;br /&gt;
&lt;br /&gt;
Notice how you can zoom right in to vector data, and a point remains a point and a line remains a line.  When you zoom in to the satellite image it rapidly appears &amp;quot;blocky&amp;quot; compared to the 50 000 map sheets. Zoom in enough and even the map sheet raster blocks can be seen.  This is a basic difference between vector and raster data.&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
You have learnt to set scale-dependent rendering so that data sets are displayed at appropriate scales, how to add raster data and set raster display options.&lt;br /&gt;
&lt;br /&gt;
== Shapefiles shmapefiles....real (wo)men store their data in PostGIS ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
* '''Create''' a new PostgreSQL database. To do this, open the terminal application (icon to the right of Firefox icon on the top menu bar). Now at the prompt type the following command:&lt;br /&gt;
  createdb workshop&lt;br /&gt;
&lt;br /&gt;
* '''Verify''' your database exists (once again type this into the terminal)&lt;br /&gt;
  psql -l&lt;br /&gt;
* You should see something like this:&lt;br /&gt;
 workshop@heron:~$ psql -l&lt;br /&gt;
        List of databases&lt;br /&gt;
   Name    |  Owner   | Encoding &lt;br /&gt;
 -----------+----------+----------&lt;br /&gt;
 postgres  | postgres | UTF8&lt;br /&gt;
 template0 | postgres | UTF8&lt;br /&gt;
 template1 | postgres | UTF8&lt;br /&gt;
 workshop  | workshop | UTF8&lt;br /&gt;
 (4 rows)&lt;br /&gt;
* away from the terminal for a while - lets look at what a non-spatial, vanilla PostgreSQL database looks like. Open pgAdmin 3  (the icon with a blue elephant face)&lt;br /&gt;
* Double-click on the icon that has a red cross next to some text &amp;quot;gis (localhost:5432)&amp;quot; and press OK if another screen comes up. The database cluster called gis expands and you should see two databases: 'postgres' and 'workshop'. Expand workshop -&amp;gt; Schemas -&amp;gt; public&lt;br /&gt;
Specifically, let us look at Functions and Tables - don't look to deeply, this is just to show the differences after PostGIS is installed on the database (you will see later). Specifically, there is nothing in the db at the moment. So minimise pgAdmin and lets crack on with getting some data in!&lt;br /&gt;
&lt;br /&gt;
* Install the PostGIS spatial data extensions (again from the terminal).&lt;br /&gt;
'''Hint''' copy and paste these from the IRC channel or the wiki page!&lt;br /&gt;
 createlang plpgsql workshop&lt;br /&gt;
 psql workshop &amp;lt; /usr/share/postgresql-8.3-postgis/lwpostgis.sql&lt;br /&gt;
 psql workshop &amp;lt; /usr/share/postgresql-8.3-postgis/spatial_ref_sys.sql&lt;br /&gt;
&lt;br /&gt;
* Yegads! What did I just do? Firstly, you installed the '''plpgsql''' procedural language extensions into your PostgreSQL database. Then you ran two sql scripts which create the '''PostGIS''' spatial extensions to your database. You only need to do this '''once''' when you create a new spatial database, so don't worry about remembering those commands off by heart.&lt;br /&gt;
* Lets upload a shapefile into the database....once more into the black hole (terminal window).&lt;br /&gt;
 cd /home/workshop/gisdata/za/brits/SAExplorer&lt;br /&gt;
 shp2pgsql -I -s 4326 Dams.shp dams | psql -d workshop&lt;br /&gt;
* Erk! What does that all mean? Lets break it down:&lt;br /&gt;
 cd /home/workshop/gisdata/za/brits/SAExplorer - go to our data directory&lt;br /&gt;
 shp2pgsql - an application that loads shapefiles into a PostGIS database&lt;br /&gt;
 -I - an option to shp2pgsql telling it to create a spatial index&lt;br /&gt;
 -s - the coordinate reference system to use, expressed as an EPSG number. 4326 is the same as Lat/Long WGS84&lt;br /&gt;
 Dams.shp - the filename of the shapefile to load&lt;br /&gt;
 dams - the table name that the data should be loaded into&lt;br /&gt;
 | psql workshop - send the results of the shp2pgsql into the psql application, workshop database&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Lets take a peek inside our database now and see what we have - back to pgAdmin, click on the 'workshop' database icon and then refresh it (red/green circular arrows icon).&lt;br /&gt;
Three major things to look at:&lt;br /&gt;
 &lt;br /&gt;
 Hundreds of Functions for working with spatial data: &lt;br /&gt;
 * geometry constructors, &lt;br /&gt;
 * spatial predicates, &lt;br /&gt;
 * geometry editors, &lt;br /&gt;
 * geometry aggregators, &lt;br /&gt;
 * geometry accessors, &lt;br /&gt;
 * measurements, &lt;br /&gt;
 * linear referencing&lt;br /&gt;
 * and outputting  of spatial data. &lt;br /&gt;
 &lt;br /&gt;
 2 important meta-tables: (expand the Tables object)&lt;br /&gt;
 * geometry_columns (for describing the different spatial datasets) - right-click -&amp;gt; &lt;br /&gt;
 * and spatial_ref_sys(a list of projections/coordinate systems and different representations thereof)&lt;br /&gt;
&lt;br /&gt;
 A 'dams' table which, when expanded should show a bunch of Columns, Constraints (e.g. Primary Key), Indexes, Rules and Triggers. &lt;br /&gt;
 * Note the geometry type of column 'the_geom'. &lt;br /&gt;
 * Also note the spatial index present - this allows for optimal retrieval of data based on the spatial properties of the data.&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
'''Load''' the following layers (also from the /home/workshop/gisdata/za/brits/SAExplorer/ directory)&lt;br /&gt;
&lt;br /&gt;
 Hydrology_DWAFRivers.shp -&amp;gt; call the table 'rivers'&lt;br /&gt;
 Transport_Mainroads.shp -&amp;gt; call the table 'roads'&lt;br /&gt;
 ProvincialBoundary.shp -&amp;gt; call the table 'provinces'&lt;br /&gt;
&lt;br /&gt;
And to show that this can scale a bit, let us load in the background a dataset of over 350 000 points (which we will use a bit later)&lt;br /&gt;
 * cd /home/workshop/gisdata/za/fire/modis_af/&lt;br /&gt;
 * shp2pgsql -I -s 4326 modis_af.shp fires | psql -d workshop  &amp;amp;&amp;gt; /dev/null (puts output into background)&lt;br /&gt;
 * shp2pgsql -I -s -D 4326 modis_af.shp fires | psql -d workshop (simpler and faster)&lt;br /&gt;
&lt;br /&gt;
=== Super duper advanced ===&lt;br /&gt;
&lt;br /&gt;
What if I want to load a batch of shapefiles in a directory in 1 go? Try this nifty bash script one liner!&lt;br /&gt;
&lt;br /&gt;
 for FILE in `ls *.shp`; do TABLE=`echo $FILE | sed 's/\.shp//g'`; echo $TABLE;shp2pgsql -I -s 4326 $FILE $TABLE | psql -d workshop; done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This takes a while so lets move on.&lt;br /&gt;
&lt;br /&gt;
=== What have I learnt? ===&lt;br /&gt;
&lt;br /&gt;
* PostgreSQL is an enterprise-ready relational database management system - and it's Free and Open Source Software&lt;br /&gt;
* You can create a new database using the '''createdb''' command.&lt;br /&gt;
* '''PostGIS''' is a add-on to PostgreSQL that lets you store spatial data and carry out spatial analysis within the database.&lt;br /&gt;
* In order to set up PostGIS you need to run a couple of SQL scripts&lt;br /&gt;
* '''shp2pgsql''' is a command line application that lets you load shapefiles into your spatial datastore&lt;br /&gt;
&lt;br /&gt;
== Using PostGIS data from QGIS ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
Once your data is in PostGIS, its easy to share across your organisation. Because it's in a database you get row level locking (instead of file locking in a shapefile), so many users can be editing and viewing data at the same time. There are many clients that let you visualise your PostGIS data..lets take a look at how we do it in QGIS.&lt;br /&gt;
&lt;br /&gt;
* Open QGIS&lt;br /&gt;
* Start a new project&lt;br /&gt;
  File -&amp;gt; New Project&lt;br /&gt;
* Add a PostGIS layer&lt;br /&gt;
  Layer -&amp;gt; Add PostGIS Layer&lt;br /&gt;
* From the connections list, choose '''workshop'''&lt;br /&gt;
  Click connect&lt;br /&gt;
* In the table list, click on '''dams'''&lt;br /&gt;
  Click Add&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
* Add the following layers from your database&lt;br /&gt;
 rivers&lt;br /&gt;
 roads&lt;br /&gt;
 provinces&lt;br /&gt;
&lt;br /&gt;
* set some nice colors for your layers - notice how the process is exactly the same as when setting colours for a shapefile.&lt;br /&gt;
&lt;br /&gt;
* save your project into&lt;br /&gt;
&lt;br /&gt;
 /home/workshop/gisdata/brits_pg.qgs&lt;br /&gt;
&lt;br /&gt;
=== What have I learnt? ===&lt;br /&gt;
&lt;br /&gt;
* You can '''visualise''' PostGIS spatial database tables inside QGIS&lt;br /&gt;
* To add a PostGIS layer, use the '''Layer -&amp;gt; Add PostGIS Layer''' menu option.&lt;br /&gt;
* Once a PostGIS layer, you can treat it just like any other (e.g. shapefile) layer&lt;br /&gt;
* Your presenters are truly amazing....however would I have figured this stuff out for my self :-)&lt;br /&gt;
&lt;br /&gt;
== More on PostGIS Data in QGIS ==&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
* Click on the '''Blue Elephant''' icon in the middle toolbar row to start SPIT loader.&lt;br /&gt;
* Select the PostgreSQL Connection as &amp;quot;workshop&amp;quot;.&lt;br /&gt;
* Click on Connect to verify your connection&lt;br /&gt;
* Now click &amp;quot;Add&amp;quot; - the &amp;quot;Add Shapefile&amp;quot; dialog box comes up. &lt;br /&gt;
&lt;br /&gt;
Navigate to /home/workshop/gisdata/za/brits/SAExplorer.&lt;br /&gt;
&lt;br /&gt;
* Select &amp;quot;Rsatowns.shp&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 Click &amp;quot;Open&amp;quot;.  PostGIS scans the file and lists it in the display frame.&lt;br /&gt;
&lt;br /&gt;
 Click &amp;quot;OK&amp;quot;.  QGIS loads the shapefile data into PostGIS with no need to use the terminal!&lt;br /&gt;
&lt;br /&gt;
* Use Layer -&amp;gt; Add PostGIS Layer to load the layer from PostGIS directly into QGIS.  &lt;br /&gt;
&lt;br /&gt;
* Now add the rivers PostGIS layer to QGIS to see another advantage of using PostGIS layers.&lt;br /&gt;
* Open the Layer properties form.  &lt;br /&gt;
* On the General tab, click &amp;quot;Query Builder&amp;quot; near the bottom right-hand corner. This opens the Query Builder. &lt;br /&gt;
* Click Field &amp;quot;RIVER_CLAS&amp;quot;.&lt;br /&gt;
* Click the &amp;quot;All&amp;quot; button under the &amp;quot;Values&amp;quot; frame.&lt;br /&gt;
* Build the Query &lt;br /&gt;
 &amp;quot;RIVER_CLAS&amp;quot; LIKE 'Perennial' OR &amp;quot;RIVER_CLAS&amp;quot; LIKE 'Perennial river'&lt;br /&gt;
* Click &amp;quot;Test&amp;quot; to check that it will work.&lt;br /&gt;
* Click &amp;quot;OK&amp;quot; twice to apply it.&lt;br /&gt;
&lt;br /&gt;
Now look at the display - the query has not merely highlighted the selected features, it has filtered the non-selected features out so that they are not displayed.  &lt;br /&gt;
&lt;br /&gt;
=== Now you try ===&lt;br /&gt;
&lt;br /&gt;
* Try loading other layers into PostGIS using the Spit loader.&lt;br /&gt;
* Load these into QGIS, and use the &amp;quot;Query Builder&amp;quot; to define the data sets that you want to see.&lt;br /&gt;
* You could define the non-perennial rivers as a separate data set, and use scale-dependent rendering to show them only when you zoom right in.&lt;br /&gt;
&lt;br /&gt;
=== What I have learnt ===&lt;br /&gt;
&lt;br /&gt;
How to rapidly load data into postgis using the spit loader.  How to set up data queries to filter spatial data display from postgis.&lt;br /&gt;
&lt;br /&gt;
== The Zen of PostGIS - not just a pretty place to store data! ==&lt;br /&gt;
&lt;br /&gt;
Okay, we will go a bit deeper into the woods here! We want to show that with some SQL (I won't say simple) you can do some complex - and repeatable - spatial analysis right inside your database, and then visualise the results in various clients.&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
We will use pgAdmin (your great PostgreSQL friend) to get this happening. Click on the Tables object of your workshop db. Then Tools -&amp;gt; Query tool from the menu. This should present a dialog box with 3 panels.&lt;br /&gt;
&lt;br /&gt;
We are going to do a simple intersection to get started.&lt;br /&gt;
In the top left panel paste &lt;br /&gt;
 SELECT roads.gid, roads.code, roads.route_nr, roads.shape_leng, roads.the_geom FROM roads, rivers WHERE (roads.the_geom &amp;amp;&amp;amp; rivers.the_geom AND intersects(roads.the_geom, rivers.the_geom));&lt;br /&gt;
and click Query -&amp;gt; Execute&lt;br /&gt;
This should take a few seconds, then you will see a result returned into the Data Output grid. Something like 3338 rows are returned from the original roads dataset of 11964.&lt;br /&gt;
&lt;br /&gt;
So what is going on here?&lt;br /&gt;
&lt;br /&gt;
You are performing a spatial overlay with a SQL query, asking the database to return records from the roads table that spatially intersect records from the rivers table. &lt;br /&gt;
* the &amp;amp;&amp;amp; operator is a fast bounding box 'overlaps' test that takes advantage of the spatial indexes of the table to narrow the search space for the true intersection test.&lt;br /&gt;
* the intersects part of the query tests the geometries of the subset selected above for spatial intersection and returns a result.&lt;br /&gt;
&lt;br /&gt;
To show some other functionality, paste the following text into the query window and execute:&lt;br /&gt;
 ALTER TABLE roads DROP CONSTRAINT enforce_srid_the_geom;UPDATE geometry_columns SET srid = 4148 WHERE f_table_name = 'roads';COMMIT; UPDATE roads SET the_geom = ST_Transform(the_geom,4148);COMMIT; ALTER TABLE roads ADD CONSTRAINT enforce_srid_the_geom CHECK (srid(the_geom) = 4148);&lt;br /&gt;
We are being good South African GIS types and using our Haartebeesthoek94 Datum. Lets do the same for rivers:&lt;br /&gt;
 ALTER TABLE rivers DROP CONSTRAINT enforce_srid_the_geom;UPDATE geometry_columns SET srid = 4148 WHERE f_table_name = 'rivers';COMMIT; UPDATE rivers SET the_geom = ST_Transform(the_geom,4148);COMMIT; ALTER TABLE rivers ADD CONSTRAINT enforce_srid_the_geom CHECK (srid(the_geom) = 4148);&lt;br /&gt;
&lt;br /&gt;
This looks fairly intense, but the main points are the changing of the data in the geometry_columns meta-table and then updating the geometries in each table to a different CRS (4148, or Haartebeesthoek94). We demonstrate the use of the UPDATE SQL command, used to change data in the database, and the use of the ST_Transform function of PostGIS, which does the work. Now lets try the original query again:&lt;br /&gt;
 SELECT roads.gid, roads.code, roads.route_nr, roads.shape_leng, roads.the_geom FROM roads, rivers WHERE st_intersects(roads.the_geom, rivers.the_geom);&lt;br /&gt;
...which returns the same number of features, but in our own CRS. Note that we have used the ST_Intersects function rather than the Intersects function as previously shown. ST_ type functions are more standards compliant, so should be used in place of the older style functions.&lt;br /&gt;
Ideally we would project the data as appropriate, using the very same technique, but substituting 4148 for the EPSG code for our projection of choice. This is a demo though, folks, so I will get away with murder...&lt;br /&gt;
Lets quickly repeat the process for the other datasets we will use in a minute:&lt;br /&gt;
 ALTER TABLE provinces DROP CONSTRAINT enforce_srid_the_geom;UPDATE geometry_columns SET srid = 4148 WHERE f_table_name = 'provinces';COMMIT; UPDATE provinces SET the_geom = ST_Transform(the_geom,4148);COMMIT; ALTER TABLE provinces ADD CONSTRAINT enforce_srid_the_geom CHECK (srid(the_geom) = 4148);&lt;br /&gt;
 ALTER TABLE fires DROP CONSTRAINT enforce_srid_the_geom;UPDATE geometry_columns SET srid = 4148 WHERE f_table_name = 'fires';COMMIT; UPDATE fires SET the_geom = ST_Transform(the_geom,4148);COMMIT; ALTER TABLE fires ADD CONSTRAINT enforce_srid_the_geom CHECK (srid(the_geom) = 4148);&lt;br /&gt;
&lt;br /&gt;
So, while that goes ahead (it will take a minute or so to transform 350k points), let us think out another analysis. Lets make it a bit tricky. Okay, we want to create a table for serving up data to the outside world (Gavin will do this later) that has all the intense fires in Gauteng or NorthWest Province, that have occurred within 3000 metres of a main road. There are many ways to skin this cat in PostGIS, so I will pick a method and explain why I did so.&lt;br /&gt;
First, a convenience table is created:&lt;br /&gt;
 SELECT roads.gid, ST_Buffer(roads.the_geom,0.027) AS geom INTO roads_buffer FROM roads, (SELECT * FROM provinces WHERE prov_code = 'GT' OR prov_code = 'NW') AS prov WHERE ST_Within(roads.the_geom, prov.the_geom);&lt;br /&gt;
This is a table of polygons representing ~3000 metre road buffers, and note the use of the function to populate the geometry_columns meta-table with our new layer.&lt;br /&gt;
 SELECT DISTINCT fires.gid, fires.frp, fires.acqdatetim, fires.the_geom INTO fires_analysis_3000m FROM fires, (SELECT * FROM provinces WHERE prov_code = 'GT' OR prov_code = 'NW') AS prov, roads_buffer  WHERE fires.frp &amp;gt; 200 AND ST_Within(fires.the_geom, prov.the_geom) AND ST_Within(fires.the_geom, roads_buffer.geom);&lt;br /&gt;
The main feature of this query is the longish WHERE clause, which tests weather the fire is intense, whether it falls within Gauteng or NW Province and whether the fire occurred within appx 3000 metres of one of our main roads.&lt;br /&gt;
&lt;br /&gt;
There are not too many fires that fall out of this analysis, but it shows how we have relatively easily worked with and reduced a large dataset to a few points. These queries can be further tuned to take advantage of spatial and other indexes, but that is perhaps for another time.&lt;br /&gt;
&lt;br /&gt;
The final thing we will do is prepare this layer for use on the web...&lt;br /&gt;
 INSERT INTO geometry_columns(f_table_catalog,f_table_schema,f_table_name,f_geometry_column,coord_dimension,srid,&amp;quot;type&amp;quot;) VALUES('','public','fires_analysis_3000m','the_geom',2,4148,'MULTIPOINT');&lt;br /&gt;
Normal meta-table stuff&lt;br /&gt;
 ALTER TABLE fires_analysis_3000m ADD PRIMARY KEY (gid);&lt;br /&gt;
And if we wanted to we could add a spatial index:&lt;br /&gt;
 CREATE INDEX fires_Analysis_3000m_the_geom_gist ON fires_Analysis_3000m USING gist(the_geom);&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
Well, no you do not - but you can ask questions...&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
Well, hopefully a fair bit. You can, with a bit of practice and reading up on the matter, get PostGIS to do some rather interesting and powerful things. We have just seen a database do GIS... Some of you may be in the know about such matters, but hopefully this shows some possibilities to others.&lt;br /&gt;
&lt;br /&gt;
== uDig ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
uDig ('user-friendly desktop internet GIS') is another excellent desktop GIS. let's check out the basics&lt;br /&gt;
&lt;br /&gt;
* Open uDig&lt;br /&gt;
* start adding layers (note the variety of data that can be used)&lt;br /&gt;
** Add a PostGIS layer&lt;br /&gt;
** add a shapefile&lt;br /&gt;
* theme the layers&lt;br /&gt;
* check out the table view, catalogue and some functionality&lt;br /&gt;
&lt;br /&gt;
There's no need to save projects - you can just close uDig and it will save automatically. Note &lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
* Add the following layers from your database&lt;br /&gt;
 rivers, dams, schools, roads, more if you like&lt;br /&gt;
&lt;br /&gt;
* theme the school layer with nice symbols and labels - we're going to try scale-dependent rendering&lt;br /&gt;
**zoom in closer than 1:50000 and set the max scale to 50000&lt;br /&gt;
**on the theme dialog, click XML&lt;br /&gt;
**select the &amp;lt;rule&amp;gt;&amp;lt;/rule&amp;gt; section and copy it to a text editor.&lt;br /&gt;
**zoom out beyond 50000, go back to 'theme' and simplify your symbols, removing the labels.&lt;br /&gt;
**set the min scale to 50000&lt;br /&gt;
**click 'XML'&lt;br /&gt;
**paste the previous 'rule' into the XML, before or after the one you see.&lt;br /&gt;
**click OK! now zoom in and out past to see the result. &lt;br /&gt;
 &lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
* Viewing and rendering different formats in uDig&lt;br /&gt;
* Theming with SLD (Styled layer descriptor), the OGC standard.&lt;br /&gt;
* scale-dependent rendering&lt;br /&gt;
** with a point - we're going to come back to uDig!&lt;br /&gt;
&lt;br /&gt;
== GeoServer ==&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
 cd&lt;br /&gt;
 export JAVA_HOME=/usr&lt;br /&gt;
 cd Apps/geoserver&lt;br /&gt;
 bin/startup.sh&lt;br /&gt;
&lt;br /&gt;
* Start geoserver (normally set to start automatically and run all the time)&lt;br /&gt;
* All admin is done via the web&lt;br /&gt;
* set up a namespace&lt;br /&gt;
* set up data stores&lt;br /&gt;
* set up feature types&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
* start GeoServer&lt;br /&gt;
* click Config -&amp;gt; Data&lt;br /&gt;
* Set Namespace to any name and any url&lt;br /&gt;
* Set Datastore to your postGIS database&lt;br /&gt;
* define a FeatureType for schools, choose a point style&lt;br /&gt;
'''Styling'''&lt;br /&gt;
*Go to Data -&amp;gt; Style -&amp;gt; new&lt;br /&gt;
**give your style a name and paste in your school SLD from uDig&lt;br /&gt;
**submit&lt;br /&gt;
**Go back to FeatureTypes and Edit your schools Feature, applying your new style&lt;br /&gt;
**Check out the results in the GeoServer demo pages&lt;br /&gt;
&lt;br /&gt;
'''Group layers'''&lt;br /&gt;
* Set up a group in the 'WMS' section&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Back to uDig&lt;br /&gt;
*bring in a WMS layer from http://localhost/geoserver:8080/wms&lt;br /&gt;
*bring in the same layer as WFS&lt;br /&gt;
**theme it&lt;br /&gt;
**save it as a shapefile&lt;br /&gt;
*try this with QGIS too (and with ArcGIS back at the office!)&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
* you can use GeoServer to serve your spatial data from any source as WMS, WFS, KML and more!&lt;br /&gt;
* You can use WMS and WFS layers in a desktop GIS&lt;br /&gt;
* impress your colleagues by sending them kml links from your geoserver so they can view them live in Google Earth!&lt;br /&gt;
&lt;br /&gt;
== More Advanced QGIS Use ==&lt;br /&gt;
Here are some more things you can do with QGIS!  Don't be put off by the heading of this section, we'll take you through step-by-step as before..&lt;br /&gt;
&lt;br /&gt;
=== ''Quick Qml with QGIS'' ===&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
If you have used  ArcView before, you might have used the avl feature which lets you store the symbology settings for a layer. QGIS has a similar feature called 'qml' which lets you create default symbology settings for a layer, that will be applied when ever that layer is loaded. We are also going to take a quick peek at how to create more complex symbology for a layer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Open QGIS if its not already running.&lt;br /&gt;
* Add the dams layer from the Postgresql 'Workshop' database&lt;br /&gt;
* Double click on the layer entry in the legend&lt;br /&gt;
* Activate the symbology tab&lt;br /&gt;
* Now change the legend type to '''Graduated Symbol'''&lt;br /&gt;
* Change the classification field to '''shape_area'''&lt;br /&gt;
* Set the '''number of classes''' to 5&lt;br /&gt;
* Click the '''classify''' button&lt;br /&gt;
* Click the '''Apply''' button&lt;br /&gt;
&lt;br /&gt;
You should see the shapes in the main window have now adopted a range of scintillating colours! However is you add that layer to another QGIS project you would normally have to do all this work again! Qml to the rescue.&lt;br /&gt;
&lt;br /&gt;
* Save your symbology settings by clicking the '''save as default''' button&lt;br /&gt;
&lt;br /&gt;
Ok lets test it out!&lt;br /&gt;
&lt;br /&gt;
* Close QGIS&lt;br /&gt;
* Reopen QGIS&lt;br /&gt;
* Add the Dams layer from the Postgresql 'Workshop' database&lt;br /&gt;
&lt;br /&gt;
If the planets are correctly aligned, your dams will appear all beautifully coloured according to your personal preference.&lt;br /&gt;
&lt;br /&gt;
If you want to you can also save your settings as non-default, and them restore them by selecting a .qml file again later. Refer to the '''Load style''' and '''Save style''' buttons on the vector properties dialog.&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
Ok give it a whirl, create default appearances for your other layers stored in your PostGIS database. Also try experimenting with the other legend types such as '''Continuous Colour''' and '''Unique Value'''. &lt;br /&gt;
Once you have set your default appearances, close QGIS and then reopen it. Now add all your PostGIS layers to the blank project and they should all magically appear with your preferred appearance.&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
The '''Layer Properties''' dialog in QGIS will let you specify the '''default appearance''' for a layer.&lt;br /&gt;
&lt;br /&gt;
=== ''Setting Projections'' ===&lt;br /&gt;
Projections are a mathematical way of transforming latitude and longitude coordinates into a form that can be meaningfully used in a map.  Sources to be added.&lt;br /&gt;
Some projections in common use in South Africa are the Albers Equal Area, Lamberts Conformal Conic and Gauss (LO) projections.&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
* Make sure that you are zoomed in to Gauteng.&lt;br /&gt;
* From the File menu, select Project Properties.&lt;br /&gt;
  File -&amp;gt; Project Properties&lt;br /&gt;
* Activate the Coordinate Reference System tab&lt;br /&gt;
* Check &amp;quot;Enable &amp;quot;on the fly&amp;quot; CRS Transformation&lt;br /&gt;
* Note that the current Coordinate Reference System is WGS84, which is a standard for displaying geographic coordinates.&lt;br /&gt;
* Look at the column EPSG - this a standard for identifying coordinate systems.  When you have selected a coordinate system you can always find it again quickly by noting the EPSG code and entering it into the '''Find box''' at the bottom of the form.&lt;br /&gt;
* Highlight the ''Projected Coordinate Systems&amp;quot; heading, and double-click to open the list.&lt;br /&gt;
* Scroll down and highlight the &amp;quot;Universal Transverse Mercator&amp;quot; heading.&lt;br /&gt;
* Select the '''Name''' radio button.&lt;br /&gt;
* Enter &amp;quot;33S&amp;quot; in the text box, and press find.  Keep pressing find until you get to &amp;quot;WGS 84/UTM Zone 33&amp;quot;.  &lt;br /&gt;
 Or select the EPSG ID radio button, enter 32733 and press the Find button.    Isn't that easier?&lt;br /&gt;
* Notice that the overall shape of the country has changed due to the projection.&lt;br /&gt;
* Zoom into Gauteng again.  Move your cursor and look at the coordinates shown at the bottom of the screen.  Notice how they have changed.  They are now in meters rather than decimal degrees.&lt;br /&gt;
&lt;br /&gt;
=== Now You Try! ===&lt;br /&gt;
First of all try a related projection such as UTM Zone 34S or UTM 38S, and see what the impact is.  Move your cursor around - how do the coordinates differ from ones shown under UTM 36S?&lt;br /&gt;
&lt;br /&gt;
Then try one of the Stereographic South projections, such as EPSG=3031,  for a very different view of South Africa!&lt;br /&gt;
&lt;br /&gt;
QGIS calculates the effect of the projection before displaying the data and doesn't make any changes, so you can try anything you like!&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
You have learnt how to set an on-the-fly projection for display in QGIS, and how to use EPSG codes to rapidly find a specific projection. Remember, if you are trying to develop a map for use in the field you will need to use a projection specific to South Africa.&lt;br /&gt;
&lt;br /&gt;
=== ''Editing Vector Data'' ===&lt;br /&gt;
Have a look at the boundary of the Eastern and Western Cape on the coast.  The rivers and provincial boundary seem to follow each other closely. Now zoom right in and notice how the provincial boundary is much more detailed than the rivers, and they don't follow each other well at all.&lt;br /&gt;
&lt;br /&gt;
QGIS to the rescue!&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
* Select the rivers layer in the Legend panel on the left.&lt;br /&gt;
* Click on the blue Pencil icon on the leftmost toolbar on the bottom row or &amp;lt;menu option&amp;gt;.  &lt;br /&gt;
* Now click on the &amp;lt;edit vertices&amp;gt; icon. Notice how the river lines have suddenly sprouted small circles wherever the line changes direction.  These are the vertices - if you have used a drawing program before you might have seen something like this. &lt;br /&gt;
* Drag the vertices of the rivers to align with the provincial boundary.&lt;br /&gt;
 Notice that we don't have enough vertices to do this exactly.&lt;br /&gt;
* Click on the add vertices icon.  Now click on the river wherever more vertices are needed.  &lt;br /&gt;
* When you have enough vertices go back to &amp;quot;Edit Vertices&amp;quot; and move them where they need to be.&lt;br /&gt;
* Now save you changes using &amp;lt;&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Now You Try! ===&lt;br /&gt;
Go to Gauteng and bring up the JPEG map sheets behind the roads.  Have a look at the roads and notice where the vectors are not aligned with the base map.  Use the edit features to correct the roads vectors.&lt;br /&gt;
&lt;br /&gt;
Then look at the rivers and provincial boundaries again.  See if you can find another place where the two are not aligned.  Experiment with the Snapping Options under Project Properties.  Use the Measure Length tool to decide on reasonable initial tolerance values.&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
You have now learned how to edit vector data in QGIS using the Add Vertices and Move Vertices functions.  &lt;br /&gt;
&lt;br /&gt;
[[Category:Africa]]&lt;/div&gt;</summary>
		<author><name>Wiki-Brendonwp</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=AfricaEvents29November2008&amp;diff=32744</id>
		<title>AfricaEvents29November2008</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=AfricaEvents29November2008&amp;diff=32744"/>
		<updated>2008-12-01T08:53:24Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Brendonwp: /* What have I learnt? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;...back to [[Africa_Local_Chapter]]&lt;br /&gt;
&lt;br /&gt;
= What? =&lt;br /&gt;
&lt;br /&gt;
Our first OSGeo local chapter meet up! We will chew the cud, show you some cool stuff and start to get people familiar with the brilliant FOSS GeoSpatial products out there!&lt;br /&gt;
&lt;br /&gt;
We'll go through installing some software and getting it to a point where you can have fun with it. &lt;br /&gt;
&lt;br /&gt;
= How Much? =&lt;br /&gt;
&lt;br /&gt;
There will be a door charge of R50 to cover costs &amp;amp; refreshments. That and an open mind are all you need to bring. If you're staying for the QGIS session in the afternoon you can bring your laptop (Windows, Linux or Mac!)&lt;br /&gt;
&lt;br /&gt;
= Where? =&lt;br /&gt;
&lt;br /&gt;
 St Davids Marist Inanda College&lt;br /&gt;
 36 Rivonia Rd&lt;br /&gt;
 Inanda&lt;br /&gt;
 Sandton&lt;br /&gt;
[http://www.stdavids.co.za/about_directions.asp Map and Directions]&lt;br /&gt;
&lt;br /&gt;
NB: We'll be in the Prep School computer lab.&lt;br /&gt;
&lt;br /&gt;
= When? =&lt;br /&gt;
&lt;br /&gt;
* November 29th&lt;br /&gt;
* Presentation and workshop segment: 9am to 12pm&lt;br /&gt;
* QGIS Bug Party! 12h30 onwards&lt;br /&gt;
&lt;br /&gt;
= Who =&lt;br /&gt;
&lt;br /&gt;
Your friendly presenters for the day will be:&lt;br /&gt;
&lt;br /&gt;
* '''Tim Sutton''' (tim at linfiniti.com) - QGIS hacker and FOSS GIS junkie extraordinaire. Tim eats Weetbix for breakfast because it sounds like Linux. He once rewrote Nkosi Sikelela in C++ because he was feeling patriotic.&lt;br /&gt;
* '''Graeme McFerren''' - (graeme.mcferren at gmail.com) - GIS researcher and FOSS4G user. Mmm, aspire to be like Tim then.&lt;br /&gt;
* '''Gavin Fleming''' (gavinjfleming at gmail dot com) - I enjoy my daily FOSS4G fix and telling people how great it was. I'm a 'geoinformation scientist' at Mintek and love to see cutting edge and useful geospatial applications emerging. &lt;br /&gt;
* '''Brendon Wolff-Piggott''' - (brendon at integratedgeodata.co.za) - Water resources consultant and FOSS GIS enthusiast.  I wish there were more hours in the day to keep up with FOSS4G!&lt;br /&gt;
&lt;br /&gt;
= RSVP =&lt;br /&gt;
Let gavinjfleming at gmail dot com know if you're coming as numbers are limited. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= QGIS Bug Party =&lt;br /&gt;
&lt;br /&gt;
As a preview release there are still various bugs that need resolving and various elements (e.g. translation) that may be incomplete. On Saturday the 29th in Johannesburg, South Africa, members from the Africa OSGeo chapter will be holding a QGIS Bug Hunt Party. We would like to invite people from around the world to virtually participate. Each person attending will get a free copy of QGIS 1.0.0 Preview 2 absolutely free of charge! Sorry no shrink wrap copies available. Preview 2 is the second in a series of preview releases we are making before we release the Stable QGIS 1.0.0 with long term support. &lt;br /&gt;
We are going to great lengths to polish up QGIS 1.0 for you (inside and out) and we really appreciate all the feedback we have received thus far. Its virtually impossible to ship any software completely bug free, but with your help we can add just a little more shine to the polish! We need your help to:&lt;br /&gt;
&lt;br /&gt;
* test on different machine configurations (bring your laptops!)&lt;br /&gt;
* validate existing bugs on each platform&lt;br /&gt;
* mark bugs that can no longer be replicated as ready for closure&lt;br /&gt;
* create new tickets for bugs that have not been reported yet (please search first to avoid posting duplicates!)&lt;br /&gt;
* mark bugs that are duplicates&lt;br /&gt;
* provide additional diagnostics so that developers can replicate issues&lt;br /&gt;
&lt;br /&gt;
The idea is not to try to *fix* the bugs, but rather to do a QA session on the bugs in the bug tracker. In the process you will learn how to interact with an Open Source project the Right Way i.e. filing good quality bug reports.&lt;br /&gt;
&lt;br /&gt;
I will start off with a simple show and tell covering:&lt;br /&gt;
* where to find the QGIS (and other OSGeo projects bug tracking sites)&lt;br /&gt;
* creating an account so you can file non-anonymous bugs and feedback on any OSGeo project bug tracker&lt;br /&gt;
* how the bug tracking system works - what the various input fields in the QGIS tracker mean&lt;br /&gt;
&lt;br /&gt;
The approach will be to start by going through any bugs that have not been revised recently, adding additional status information. If you think the bug is fixed, add a comment:&lt;br /&gt;
&lt;br /&gt;
'''Works for me now, recommend closure, &amp;lt;Your Name&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
If you can replicate the bug, add a comment like:&lt;br /&gt;
&lt;br /&gt;
'''Can replicate, OS: Ubuntu 8.10, QGIS Preview 2, &amp;lt;Your Name&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Use your initiative to deal with tickets that don't fit into the categories above, following a similar approach.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After that I will turn you loose on the queue and a shiny copy of QGIS preview 2 and let you have at it. Party is over when the last man falls asleep at the keyboard! Ok probably we will finish at between 4:30pm and 5pm if my wife has anything to do with it!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We look forward to seeing you at the QGIS Bug Party!!!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Programme in a nutshell =&lt;br /&gt;
&lt;br /&gt;
* Be there in time for a 9am start&lt;br /&gt;
* Morning session: Introducing QGIS, PostGIS, GeoServer, uDig&lt;br /&gt;
* Afternoon session: QGIS Bug Party&lt;br /&gt;
&lt;br /&gt;
Note: There will be frequent rest breaks and lots of time to ask questions!&lt;br /&gt;
&lt;br /&gt;
'''1. Welcome, Introduction and Overview: Starting up (5 minutes)'''&lt;br /&gt;
&lt;br /&gt;
What am I looking at here? What do I need to do to get started?&lt;br /&gt;
&lt;br /&gt;
'''2. QGIS: Opening and viewing spatial data. Your first map. (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
What can I look at? How do I set up a simple map?  Toolbars and Plug-ins. &lt;br /&gt;
&lt;br /&gt;
'''3. PostGIS: Why use PostGIS? Simple example of loading data. (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
Why use a spatial database? What does one look like? How do I populate a spatial database and where does my data live?&lt;br /&gt;
&lt;br /&gt;
'''4. QGIS: Looking at PostGIS data from QGIS.  (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
View a PostGIS database from QGIS.  Setting up data definitions for PostGIS sources.  Loading data into PostGIS with the Spit Loader (no, please don't touch the screen!)&lt;br /&gt;
&lt;br /&gt;
'''5. PostGIS: More than a place to dump data... (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
PostGIS is not just good for storing data, one can manipulate it too! GIS can be done inside the database, which is rather nice when you think about it.&lt;br /&gt;
&lt;br /&gt;
'''6. uDig: Why uDig?  GIS and the Web.  (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
Getting GIS data ready for presentation on the Web! Editing SLDs.&lt;br /&gt;
&lt;br /&gt;
'''7. GeoServer: Tell everyone about it!  (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
Displaying GIS data on the web.  Grouped WMS.  Scale-dependent rendering.&lt;br /&gt;
&lt;br /&gt;
'''8. And more QGIS.'''&lt;br /&gt;
&lt;br /&gt;
Detail on symbology.  Topological editing. QML, SPD and Openlayers.  (15 minutes)&lt;br /&gt;
&lt;br /&gt;
'''9. Show off session'''&lt;br /&gt;
&lt;br /&gt;
Here we can do some whizz bang demo stuff that we don't have time to do in  workshop format but that will give you some hints as to what else can be achieved.&lt;br /&gt;
&lt;br /&gt;
'''10. General'''&lt;br /&gt;
&lt;br /&gt;
Questions and answers.  What you can do next.  Resources.  Possibly some in-depth examples based on frequent questions.  What would you like to see at future workshops?&lt;br /&gt;
&lt;br /&gt;
'''11. Your assessment of the workshop'''&lt;br /&gt;
&lt;br /&gt;
Tell us what you thought!&lt;br /&gt;
&lt;br /&gt;
= Workshop Notes =&lt;br /&gt;
&lt;br /&gt;
== Welcome, introductions and overview ==&lt;br /&gt;
&lt;br /&gt;
== Lets make a map - First steps with QGIS ==&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
* Open QGIS using the icon on the top Gnome Panel&lt;br /&gt;
* From the Layer menu, select '''Add Vector Layer'''&lt;br /&gt;
  Layer -&amp;gt; Add Vector Layer&lt;br /&gt;
* A dialog box will appear&lt;br /&gt;
* Navigate to &lt;br /&gt;
  /home/workshop/gisdata/za/brits/SAExplorer/&lt;br /&gt;
* Add the following layer :&lt;br /&gt;
  Provinces.shp&lt;br /&gt;
* Experiment with the '''map navigation toolbar''' to zoom in / out, pan, select etc features.&lt;br /&gt;
* Open the '''Layer properties dialog'''. There are several ways you can do this:&lt;br /&gt;
  1) Select the layer in the legend and then from the menu do Layer -&amp;gt; Properties&lt;br /&gt;
  or&lt;br /&gt;
  2) Right click on the layer in the legend and choose Properties from the context menu&lt;br /&gt;
  or&lt;br /&gt;
  3) Double click on the layer in the legend&lt;br /&gt;
* Familiarise yourself with the various panels in the vector properties dialog.&lt;br /&gt;
* Select the '''Symbology''' tab (second from the left)&lt;br /&gt;
* From the '''Style Options''' panel, choose a pleasing '''fill colour''' for the provinces then &lt;br /&gt;
  Click OK&lt;br /&gt;
&lt;br /&gt;
Or you can:&lt;br /&gt;
* Select the '''Legend Type''' as ''Unique Value''.  &lt;br /&gt;
* Set the '''Classification field''' to ''PROVNAME''&lt;br /&gt;
* Click on the '''Classify''' button to set '''different colours for each province'''.&lt;br /&gt;
  Click OK&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
'''Add''' the following layers (also from the /home/workshop/gisdata/za/brits/SAExplorer/ directory)&lt;br /&gt;
&lt;br /&gt;
  Transport_NationalRoads.shp&lt;br /&gt;
  Transport_Railways.shp&lt;br /&gt;
  RSATowns.shp&lt;br /&gt;
  Dams.shp&lt;br /&gt;
 &lt;br /&gt;
'''Zoom and pan''' around a little to explore your data'''&lt;br /&gt;
'''Symbolise''' each layer with an appropriate colour to make the most awe inspiring map.&lt;br /&gt;
&lt;br /&gt;
Activate the '''Identify features''' icon on the middle toolbar to identify the attribute values associated with a spatial feature for the layer highlighted in the Legend Box.&lt;br /&gt;
&lt;br /&gt;
Activate the '''Select Features''' icon next to Identify Features to select one or more features.  &lt;br /&gt;
&lt;br /&gt;
Open the attribute table to view all feature attributes. Note that selected features will have highlighted rows in the attribute table.  You can do this using the neighbouring '''Open Attribute Table''' icon, or by selecting the Open Attribute Table option on the context menu for the layer in the legend using right-click on the mouse.&lt;br /&gt;
&lt;br /&gt;
You can also select rows in the attribute table by:&lt;br /&gt;
* Left-clicking on the desired rows.&lt;br /&gt;
* Using the '''Search''' box at the bottom-left of the form.&lt;br /&gt;
* Selecting the '''Advanced''' button and opening the '''Search Query Builder'''. &lt;br /&gt;
&lt;br /&gt;
Save your project using &lt;br /&gt;
 File -&amp;gt; Save&lt;br /&gt;
&lt;br /&gt;
And put it into&lt;br /&gt;
 /home/workshop/gisdata/brits.qgs&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
In ten minutes you now know how to '''add vector layers''' into QGIS, '''pan and zoom''' to navigate the map, and set the colour of vectors using the '''Single Symbol''' or '''Unique Values''' options in the '''Layer Properties'''.&lt;br /&gt;
&lt;br /&gt;
You have also learnt how to use the interactive '''Identify''' and '''Select''' functions, '''opened attribute tables''' and found out how to '''search''' them.&lt;br /&gt;
&lt;br /&gt;
== More on QGIS Mapping ==&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
Add the vector layer '''Education_Schools2000.shp''' from the SAExplorer directory.  Notice how dense the points are!&lt;br /&gt;
&lt;br /&gt;
* Right-click on the schools layer in the Legend frame.&lt;br /&gt;
* Select '''Properties'''&lt;br /&gt;
* Select the '''General tab'''&lt;br /&gt;
* Check '''Use scale dependent rendering'''&lt;br /&gt;
* Set the maximum field to 1000000&lt;br /&gt;
&lt;br /&gt;
* Zoom out to view the whole country.    '''Notice that the schools no longer appear on the map!''' &lt;br /&gt;
* Now start zooming in, keeping an eye on the scale shown in the '''scale box''' at the bottom of the screen.&lt;br /&gt;
&lt;br /&gt;
 Notice how the schools points reappear when the scale decreases below 1:1000000&lt;br /&gt;
 &lt;br /&gt;
* From the Layer menu, select '''Add Raster Layer'''&lt;br /&gt;
  Layer -&amp;gt; Add Raster Layer&lt;br /&gt;
* A dialog box will appear&lt;br /&gt;
* Navigate to &lt;br /&gt;
  /home/workshop/gisdata/za/gauteng/&lt;br /&gt;
* Add the following layer :&lt;br /&gt;
 SOU-8_satellite.tif&lt;br /&gt;
&lt;br /&gt;
Notice that the image is largely in shades of greyish-brown, but that a dam can be seen towards the bottom of the image. &lt;br /&gt;
&lt;br /&gt;
* Open the Properties for the raster layer, in a similar way to that used for vector layers.&lt;br /&gt;
 Layer -&amp;gt; Properties&lt;br /&gt;
* Select the '''Transparency''' tab.&lt;br /&gt;
* Using the slider, set transparency to 25%&lt;br /&gt;
* Click OK&lt;br /&gt;
Notice how the you can now see the vector layers behind the satellite image.&lt;br /&gt;
 &lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
If you have not already done so, add the vector layers Transport_NationalRoads.shp and Transport_Mainroads.shp from /home/workshop/gisdata/za/brits/SAExplorer.&lt;br /&gt;
Set scale-dependent rendering so that the national roads display at all scales, while the main roads are only shown when you are zoomed in. &lt;br /&gt;
&lt;br /&gt;
Go to the satellite image properties, Symbology tab.  Try the different &amp;quot;Render as&amp;quot; options.  Then when you have found the one that suits you, have a look at the &amp;quot;Contast Enhancement&amp;quot; options.  Compare &amp;quot;No Stretch&amp;quot; and &amp;quot;Stretch to MinMax&amp;quot;.  &lt;br /&gt;
&lt;br /&gt;
Try &amp;quot;Render as Single Band Grey&amp;quot;.  Set the &amp;quot;Custom min/max values&amp;quot; radio button.  Change the Min and Max values.  Go to &amp;quot;Contract Enhancement&amp;quot; again and set it to &amp;quot;Stretch and Clip to MinMax&amp;quot;, and see the effect.&lt;br /&gt;
&lt;br /&gt;
Add raster images of 1: 50 000 map sheets from &amp;quot; /home/workshop/gisdata/za/brits/toposheet images&amp;quot; &lt;br /&gt;
You will need to set the Files of Type box to '''JPEG JFIF''' to see them, before you can select them.&lt;br /&gt;
Set their transparency to a value that allows you to see the vector features behind them.  Zoom in and look at how the vector features and image features match (or not!).&lt;br /&gt;
&lt;br /&gt;
Notice how you can zoom right in to vector data, and a point remains a point and a line remains a line.  When you zoom in to the satellite image it rapidly appears &amp;quot;blocky&amp;quot; compared to the 50 000 map sheets. Zoom in enough and even the map sheet raster blocks can be seen.  This is a basic difference between vector and raster data.&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
You have learnt to set scale-dependent rendering so that data sets are displayed at appropriate scales, how to add raster data and set raster display options.&lt;br /&gt;
&lt;br /&gt;
== Shapefiles shmapefiles....real (wo)men store their data in PostGIS ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
* '''Create''' a new PostgreSQL database. To do this, open the terminal application (icon to the right of Firefox icon on the top menu bar). Now at the prompt type the following command:&lt;br /&gt;
  createdb workshop&lt;br /&gt;
&lt;br /&gt;
* '''Verify''' your database exists (once again type this into the terminal)&lt;br /&gt;
  psql -l&lt;br /&gt;
* You should see something like this:&lt;br /&gt;
 workshop@heron:~$ psql -l&lt;br /&gt;
        List of databases&lt;br /&gt;
   Name    |  Owner   | Encoding &lt;br /&gt;
 -----------+----------+----------&lt;br /&gt;
 postgres  | postgres | UTF8&lt;br /&gt;
 template0 | postgres | UTF8&lt;br /&gt;
 template1 | postgres | UTF8&lt;br /&gt;
 workshop  | workshop | UTF8&lt;br /&gt;
 (4 rows)&lt;br /&gt;
* away from the terminal for a while - lets look at what a non-spatial, vanilla PostgreSQL database looks like. Open pgAdmin 3  (the icon with a blue elephant face)&lt;br /&gt;
* Double-click on the icon that has a red cross next to some text &amp;quot;gis (localhost:5432)&amp;quot; and press OK if another screen comes up. The database cluster called gis expands and you should see two databases: 'postgres' and 'workshop'. Expand workshop -&amp;gt; Schemas -&amp;gt; public&lt;br /&gt;
Specifically, let us look at Functions and Tables - don't look to deeply, this is just to show the differences after PostGIS is installed on the database (you will see later). Specifically, there is nothing in the db at the moment. So minimise pgAdmin and lets crack on with getting some data in!&lt;br /&gt;
&lt;br /&gt;
* Install the PostGIS spatial data extensions (again from the terminal).&lt;br /&gt;
'''Hint''' copy and paste these from the IRC channel or the wiki page!&lt;br /&gt;
 createlang plpgsql workshop&lt;br /&gt;
 psql workshop &amp;lt; /usr/share/postgresql-8.3-postgis/lwpostgis.sql&lt;br /&gt;
 psql workshop &amp;lt; /usr/share/postgresql-8.3-postgis/spatial_ref_sys.sql&lt;br /&gt;
&lt;br /&gt;
* Yegads! What did I just do? Firstly, you installed the '''plpgsql''' procedural language extensions into your PostgreSQL database. Then you ran two sql scripts which create the '''PostGIS''' spatial extensions to your database. You only need to do this '''once''' when you create a new spatial database, so don't worry about remembering those commands off by heart.&lt;br /&gt;
* Lets upload a shapefile into the database....once more into the black hole (terminal window).&lt;br /&gt;
 cd /home/workshop/gisdata/za/brits/SAExplorer&lt;br /&gt;
 shp2pgsql -I -s 4326 Dams.shp dams | psql -d workshop&lt;br /&gt;
* Erk! What does that all mean? Lets break it down:&lt;br /&gt;
 cd /home/workshop/gisdata/za/brits/SAExplorer - go to our data directory&lt;br /&gt;
 shp2pgsql - an application that loads shapefiles into a PostGIS database&lt;br /&gt;
 -I - an option to shp2pgsql telling it to create a spatial index&lt;br /&gt;
 -s - the coordinate reference system to use, expressed as an EPSG number. 4326 is the same as Lat/Long WGS84&lt;br /&gt;
 Dams.shp - the filename of the shapefile to load&lt;br /&gt;
 dams - the table name that the data should be loaded into&lt;br /&gt;
 | psql workshop - send the results of the shp2pgsql into the psql application, workshop database&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Lets take a peek inside our database now and see what we have - back to pgAdmin, click on the 'workshop' database icon and then refresh it (red/green circular arrows icon).&lt;br /&gt;
Three major things to look at:&lt;br /&gt;
 &lt;br /&gt;
 Hundreds of Functions for working with spatial data: &lt;br /&gt;
 * geometry constructors, &lt;br /&gt;
 * spatial predicates, &lt;br /&gt;
 * geometry editors, &lt;br /&gt;
 * geometry aggregators, &lt;br /&gt;
 * geometry accessors, &lt;br /&gt;
 * measurements, &lt;br /&gt;
 * linear referencing&lt;br /&gt;
 * and outputting  of spatial data. &lt;br /&gt;
 &lt;br /&gt;
 2 important meta-tables: (expand the Tables object)&lt;br /&gt;
 * geometry_columns (for describing the different spatial datasets) - right-click -&amp;gt; &lt;br /&gt;
 * and spatial_ref_sys(a list of projections/coordinate systems and different representations thereof)&lt;br /&gt;
&lt;br /&gt;
 A 'dams' table which, when expanded should show a bunch of Columns, Constraints (e.g. Primary Key), Indexes, Rules and Triggers. &lt;br /&gt;
 * Note the geometry type of column 'the_geom'. &lt;br /&gt;
 * Also note the spatial index present - this allows for optimal retrieval of data based on the spatial properties of the data.&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
'''Load''' the following layers (also from the /home/workshop/gisdata/za/brits/SAExplorer/ directory)&lt;br /&gt;
&lt;br /&gt;
 Hydrology_DWAFRivers.shp -&amp;gt; call the table 'rivers'&lt;br /&gt;
 Transport_Mainroads.shp -&amp;gt; call the table 'roads'&lt;br /&gt;
 ProvincialBoundary.shp -&amp;gt; call the table 'provinces'&lt;br /&gt;
&lt;br /&gt;
And to show that this can scale a bit, let us load in the background a dataset of over 350 000 points (which we will use a bit later)&lt;br /&gt;
 * cd /home/workshop/gisdata/za/fire/modis_af/&lt;br /&gt;
 * shp2pgsql -I -s 4326 modis_af.shp fires | psql -d workshop  &amp;amp;&amp;gt; /dev/null (puts output into background)&lt;br /&gt;
 * shp2pgsql -I -s -D 4326 modis_af.shp fires | psql -d workshop (simpler and faster)&lt;br /&gt;
&lt;br /&gt;
=== Super duper advanced ===&lt;br /&gt;
&lt;br /&gt;
What if I want to load a batch of shapefiles in a directory in 1 go? Try this nifty bash script one liner!&lt;br /&gt;
&lt;br /&gt;
 for FILE in `ls *.shp`; do TABLE=`echo $FILE | sed 's/\.shp//g'`; echo $TABLE;shp2pgsql -I -s 4326 $FILE $TABLE | psql -d workshop; done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This takes a while so lets move on.&lt;br /&gt;
&lt;br /&gt;
=== What have I learnt? ===&lt;br /&gt;
&lt;br /&gt;
* PostgreSQL is an enterprise-ready relational database management system - and it's Free and Open Source Software&lt;br /&gt;
* You can create a new database using the '''createdb''' command.&lt;br /&gt;
* '''PostGIS''' is a add-on to PostgreSQL that lets you store spatial data and carry out spatial analysis within the database.&lt;br /&gt;
* In order to set up PostGIS you need to run a couple of SQL scripts&lt;br /&gt;
* '''shp2pgsql''' is a command line application that lets you load shapefiles into your spatial datastore&lt;br /&gt;
&lt;br /&gt;
== Using PostGIS data from QGIS ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
Once your data is in PostGIS, its easy to share across your organisation. Because it's in a database you get row level locking (instead of file locking in a shapefile), so many users can be editing and viewing data at the same time. There are many clients that let you visualise your PostGIS data..lets take a look at how we do it in QGIS.&lt;br /&gt;
&lt;br /&gt;
* Open QGIS&lt;br /&gt;
* Start a new project&lt;br /&gt;
  File -&amp;gt; New Project&lt;br /&gt;
* Add a PostGIS layer&lt;br /&gt;
  Layer -&amp;gt; Add PostGIS Layer&lt;br /&gt;
* From the connections list, choose '''workshop'''&lt;br /&gt;
  Click connect&lt;br /&gt;
* In the table list, click on '''dams'''&lt;br /&gt;
  Click Add&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
* Add the following layers from your database&lt;br /&gt;
 rivers&lt;br /&gt;
 roads&lt;br /&gt;
 provinces&lt;br /&gt;
&lt;br /&gt;
* set some nice colors for your layers - notice how the process is exactly the same as when setting colours for a shapefile.&lt;br /&gt;
&lt;br /&gt;
* save your project into&lt;br /&gt;
&lt;br /&gt;
 /home/workshop/gisdata/brits_pg.qgs&lt;br /&gt;
&lt;br /&gt;
=== What have I learnt? ===&lt;br /&gt;
&lt;br /&gt;
* You can '''visualise''' PostGIS spatial database tables inside QGIS&lt;br /&gt;
* To add a PostGIS layer, use the '''Layer -&amp;gt; Add PostGIS Layer''' menu option.&lt;br /&gt;
* Once a PostGIS layer, you can treat it just like any other (e.g. shapefile) layer&lt;br /&gt;
* Your presenters are truly amazing....however would I have figured this stuff out for my self :-)&lt;br /&gt;
&lt;br /&gt;
== More on PostGIS Data in QGIS ==&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
* Click on the '''Blue Elephant''' icon in the middle toolbar row to start SPIT loader.&lt;br /&gt;
* Select the PostgreSQL Connection as &amp;quot;workshop&amp;quot;.&lt;br /&gt;
* Click on Connect to verify your connection&lt;br /&gt;
* Now click &amp;quot;Add&amp;quot; - the &amp;quot;Add Shapefile&amp;quot; dialog box comes up. &lt;br /&gt;
&lt;br /&gt;
Navigate to /home/workshop/gisdata/za/brits/SAExplorer.&lt;br /&gt;
&lt;br /&gt;
* Select &amp;quot;Rsatowns.shp&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 Click &amp;quot;Open&amp;quot;.  PostGIS scans the file and lists it in the display frame.&lt;br /&gt;
&lt;br /&gt;
 Click &amp;quot;OK&amp;quot;.  QGIS loads the shapefile data into PostGIS with no need to use the terminal!&lt;br /&gt;
&lt;br /&gt;
* Use Layer -&amp;gt; Add PostGIS Layer to load the layer from PostGIS directly into QGIS.  &lt;br /&gt;
&lt;br /&gt;
* Now add the rivers PostGIS layer to QGIS to see another advantage of using PostGIS layers.&lt;br /&gt;
* Open the Layer properties form.  &lt;br /&gt;
* On the General tab, click &amp;quot;Query Builder&amp;quot; near the bottom right-hand corner. This opens the Query Builder. &lt;br /&gt;
* Click Field &amp;quot;RIVER_CLAS&amp;quot;.&lt;br /&gt;
* Click the &amp;quot;All&amp;quot; button under the &amp;quot;Values&amp;quot; frame.&lt;br /&gt;
* Build the Query &lt;br /&gt;
 &amp;quot;RIVER_CLAS&amp;quot; LIKE 'Perennial' OR &amp;quot;RIVER_CLAS&amp;quot; LIKE 'Perennial river'&lt;br /&gt;
* Click &amp;quot;Test&amp;quot; to check that it will work.&lt;br /&gt;
* Click &amp;quot;OK&amp;quot; twice to apply it.&lt;br /&gt;
&lt;br /&gt;
Now look at the display - the query has not merely highlighted the selected features, it has filtered the non-selected features out so that they are not displayed.  &lt;br /&gt;
&lt;br /&gt;
=== Now you try ===&lt;br /&gt;
&lt;br /&gt;
* Try loading other layers into PostGIS using the Spit loader.&lt;br /&gt;
* Load these into QGIS, and use the &amp;quot;Query Builder&amp;quot; to define the data sets that you want to see.&lt;br /&gt;
* You could define the non-perennial rivers as a separate data set, and use scale-dependent rendering to show them only when you zoom right in.&lt;br /&gt;
&lt;br /&gt;
=== What I have learnt ===&lt;br /&gt;
&lt;br /&gt;
How to rapidly load data into postgis using the spit loader.  How to set up data queries to filter spatial data display from postgis.&lt;br /&gt;
&lt;br /&gt;
== The Zen of PostGIS - not just a pretty place to store data! ==&lt;br /&gt;
&lt;br /&gt;
Okay, we will go a bit deeper into the woods here! We want to show that with some SQL (I won't say simple) you can do some complex - and repeatable - spatial analysis right inside your database, and then visualise the results in various clients.&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
We will use pgAdmin (your great PostgreSQL friend) to get this happening. Click on the Tables object of your workshop db. Then Tools -&amp;gt; Query tool from the menu. This should present a dialog box with 3 panels.&lt;br /&gt;
&lt;br /&gt;
We are going to do a simple intersection to get started.&lt;br /&gt;
In the top left panel paste &lt;br /&gt;
 SELECT roads.gid, roads.code, roads.route_nr, roads.shape_leng, roads.the_geom FROM roads, rivers WHERE (roads.the_geom &amp;amp;&amp;amp; rivers.the_geom AND intersects(roads.the_geom, rivers.the_geom));&lt;br /&gt;
and click Query -&amp;gt; Execute&lt;br /&gt;
This should take a few seconds, then you will see a result returned into the Data Output grid. Something like 3338 rows are returned from the original roads dataset of 11964.&lt;br /&gt;
&lt;br /&gt;
So what is going on here?&lt;br /&gt;
&lt;br /&gt;
You are performing a spatial overlay with a SQL query, asking the database to return records from the roads table that spatially intersect records from the rivers table. &lt;br /&gt;
* the &amp;amp;&amp;amp; operator is a fast bounding box 'overlaps' test that takes advantage of the spatial indexes of the table to narrow the search space for the true intersection test.&lt;br /&gt;
* the intersects part of the query tests the geometries of the subset selected above for spatial intersection and returns a result.&lt;br /&gt;
&lt;br /&gt;
To show some other functionality, paste the following text into the query window and execute:&lt;br /&gt;
 ALTER TABLE roads DROP CONSTRAINT enforce_srid_the_geom;UPDATE geometry_columns SET srid = 4148 WHERE f_table_name = 'roads';COMMIT; UPDATE roads SET the_geom = ST_Transform(the_geom,4148);COMMIT; ALTER TABLE roads ADD CONSTRAINT enforce_srid_the_geom CHECK (srid(the_geom) = 4148);&lt;br /&gt;
We are being good South African GIS types and using our Haartebeesthoek94 Datum. Lets do the same for rivers:&lt;br /&gt;
 ALTER TABLE rivers DROP CONSTRAINT enforce_srid_the_geom;UPDATE geometry_columns SET srid = 4148 WHERE f_table_name = 'rivers';COMMIT; UPDATE rivers SET the_geom = ST_Transform(the_geom,4148);COMMIT; ALTER TABLE rivers ADD CONSTRAINT enforce_srid_the_geom CHECK (srid(the_geom) = 4148);&lt;br /&gt;
&lt;br /&gt;
This looks fairly intense, but the main points are the changing of the data in the geometry_columns meta-table and then updating the geometries in each table to a different CRS (4148, or Haartebeesthoek94). We demonstrate the use of the UPDATE SQL command, used to change data in the database, and the use of the ST_Transform function of PostGIS, which does the work. Now lets try the original query again:&lt;br /&gt;
 SELECT roads.gid, roads.code, roads.route_nr, roads.shape_leng, roads.the_geom FROM roads, rivers WHERE st_intersects(roads.the_geom, rivers.the_geom);&lt;br /&gt;
...which returns the same number of features, but in our own CRS. Note that we have used the ST_Intersects function rather than the Intersects function as previously shown. ST_ type functions are more standards compliant, so should be used in place of the older style functions.&lt;br /&gt;
Ideally we would project the data as appropriate, using the very same technique, but substituting 4148 for the EPSG code for our projection of choice. This is a demo though, folks, so I will get away with murder...&lt;br /&gt;
Lets quickly repeat the process for the other datasets we will use in a minute:&lt;br /&gt;
 ALTER TABLE provinces DROP CONSTRAINT enforce_srid_the_geom;UPDATE geometry_columns SET srid = 4148 WHERE f_table_name = 'provinces';COMMIT; UPDATE provinces SET the_geom = ST_Transform(the_geom,4148);COMMIT; ALTER TABLE provinces ADD CONSTRAINT enforce_srid_the_geom CHECK (srid(the_geom) = 4148);&lt;br /&gt;
 ALTER TABLE fires DROP CONSTRAINT enforce_srid_the_geom;UPDATE geometry_columns SET srid = 4148 WHERE f_table_name = 'fires';COMMIT; UPDATE fires SET the_geom = ST_Transform(the_geom,4148);COMMIT; ALTER TABLE fires ADD CONSTRAINT enforce_srid_the_geom CHECK (srid(the_geom) = 4148);&lt;br /&gt;
&lt;br /&gt;
So, while that goes ahead (it will take a minute or so to transform 350k points), let us think out another analysis. Lets make it a bit tricky. Okay, we want to create a table for serving up data to the outside world (Gavin will do this later) that has all the intense fires in Gauteng or NorthWest Province, that have occurred within 3000 metres of a main road. There are many ways to skin this cat in PostGIS, so I will pick a method and explain why I did so.&lt;br /&gt;
First, a convenience table is created:&lt;br /&gt;
 SELECT roads.gid, ST_Buffer(roads.the_geom,0.027) AS geom INTO roads_buffer FROM roads, (SELECT * FROM provinces WHERE prov_code = 'GT' OR prov_code = 'NW') AS prov WHERE ST_Within(roads.the_geom, prov.the_geom);&lt;br /&gt;
This is a table of polygons representing ~3000 metre road buffers, and note the use of the function to populate the geometry_columns meta-table with our new layer.&lt;br /&gt;
 SELECT DISTINCT fires.gid, fires.frp, fires.acqdatetim, fires.the_geom INTO fires_analysis_3000m FROM fires, (SELECT * FROM provinces WHERE prov_code = 'GT' OR prov_code = 'NW') AS prov, roads_buffer  WHERE fires.frp &amp;gt; 200 AND ST_Within(fires.the_geom, prov.the_geom) AND ST_Within(fires.the_geom, roads_buffer.geom);&lt;br /&gt;
The main feature of this query is the longish WHERE clause, which tests weather the fire is intense, whether it falls within Gauteng or NW Province and whether the fire occurred within appx 3000 metres of one of our main roads.&lt;br /&gt;
&lt;br /&gt;
There are not too many fires that fall out of this analysis, but it shows how we have relatively easily worked with and reduced a large dataset to a few points. These queries can be further tuned to take advantage of spatial and other indexes, but that is perhaps for another time.&lt;br /&gt;
&lt;br /&gt;
The final thing we will do is prepare this layer for use on the web...&lt;br /&gt;
 INSERT INTO geometry_columns(f_table_catalog,f_table_schema,f_table_name,f_geometry_column,coord_dimension,srid,&amp;quot;type&amp;quot;) VALUES('','public','fires_analysis_3000m','the_geom',2,4148,'MULTIPOINT');&lt;br /&gt;
Normal meta-table stuff&lt;br /&gt;
 ALTER TABLE fires_analysis_3000m ADD PRIMARY KEY (gid);&lt;br /&gt;
And if we wanted to we could add a spatial index:&lt;br /&gt;
 CREATE INDEX fires_Analysis_3000m_the_geom_gist ON fires_Analysis_3000m USING gist(the_geom);&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
Well, no you do not - but you can ask questions...&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
Well, hopefully a fair bit. You can, with a bit of practice and reading up on the matter, get PostGIS to do some rather interesting and powerful things. We have just seen a database do GIS... Some of you may be in the know about such matters, but hopefully this shows some possibilities to others.&lt;br /&gt;
&lt;br /&gt;
== uDig ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
uDig ('user-friendly desktop internet GIS') is another excellent desktop GIS. let's check out the basics&lt;br /&gt;
&lt;br /&gt;
* Open uDig&lt;br /&gt;
* start adding layers (note the variety of data that can be used)&lt;br /&gt;
** Add a PostGIS layer&lt;br /&gt;
** add a shapefile&lt;br /&gt;
* theme the layers&lt;br /&gt;
* check out the table view, catalogue and some functionality&lt;br /&gt;
&lt;br /&gt;
There's no need to save projects - you can just close uDig and it will save automatically. Note &lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
* Add the following layers from your database&lt;br /&gt;
 rivers, dams, schools, roads, more if you like&lt;br /&gt;
&lt;br /&gt;
* theme the school layer with nice symbols and labels - we're going to try scale-dependent rendering&lt;br /&gt;
**zoom in closer than 1:50000 and set the max scale to 50000&lt;br /&gt;
**on the theme dialog, click XML&lt;br /&gt;
**select the &amp;lt;rule&amp;gt;&amp;lt;/rule&amp;gt; section and copy it to a text editor.&lt;br /&gt;
**zoom out beyond 50000, go back to 'theme' and simplify your symbols, removing the labels.&lt;br /&gt;
**set the min scale to 50000&lt;br /&gt;
**click 'XML'&lt;br /&gt;
**paste the previous 'rule' into the XML, before or after the one you see.&lt;br /&gt;
**click OK! now zoom in and out past to see the result. &lt;br /&gt;
 &lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
* Viewing and rendering different formats in uDig&lt;br /&gt;
* Theming with SLD (Styled layer descriptor), the OGC standard.&lt;br /&gt;
* scale-dependent rendering&lt;br /&gt;
** with a point - we're going to come back to uDig!&lt;br /&gt;
&lt;br /&gt;
== GeoServer ==&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
 cd&lt;br /&gt;
 export JAVA_HOME=/usr&lt;br /&gt;
 cd Apps/geoserver&lt;br /&gt;
 bin/startup.sh&lt;br /&gt;
&lt;br /&gt;
* Start geoserver (normally set to start automatically and run all the time)&lt;br /&gt;
* All admin is done via the web&lt;br /&gt;
* set up a namespace&lt;br /&gt;
* set up data stores&lt;br /&gt;
* set up feature types&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
* start GeoServer&lt;br /&gt;
* click Config -&amp;gt; Data&lt;br /&gt;
* Set Namespace to any name and any url&lt;br /&gt;
* Set Datastore to your postGIS database&lt;br /&gt;
* define a FeatureType for schools, choose a point style&lt;br /&gt;
'''Styling'''&lt;br /&gt;
*Go to Data -&amp;gt; Style -&amp;gt; new&lt;br /&gt;
**give your style a name and paste in your school SLD from uDig&lt;br /&gt;
**submit&lt;br /&gt;
**Go back to FeatureTypes and Edit your schools Feature, applying your new style&lt;br /&gt;
**Check out the results in the GeoServer demo pages&lt;br /&gt;
&lt;br /&gt;
'''Group layers'''&lt;br /&gt;
* Set up a group in the 'WMS' section&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Back to uDig&lt;br /&gt;
*bring in a WMS layer from http://localhost/geoserver:8080/wms&lt;br /&gt;
*bring in the same layer as WFS&lt;br /&gt;
**theme it&lt;br /&gt;
**save it as a shapefile&lt;br /&gt;
*try this with QGIS too (and with ArcGIS back at the office!)&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
* you can use GeoServer to serve your spatial data from any source as WMS, WFS, KML and more!&lt;br /&gt;
* You can use WMS and WFS layers in a desktop GIS&lt;br /&gt;
* impress your colleagues by sending them kml links from your geoserver so they can view them live in Google Earth!&lt;br /&gt;
&lt;br /&gt;
== More Advanced QGIS Use ==&lt;br /&gt;
Here are some more things you can do with QGIS!  Don't be put off by the heading of this section, we'll take you through step-by-step as before..&lt;br /&gt;
&lt;br /&gt;
=== ''Quick Qml with QGIS'' ===&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
If you have used  ArcView before, you might have used the avl feature which lets you store the symbology settings for a layer. QGIS has a similar feature called 'qml' which lets you create default symbology settings for a layer, that will be applied when ever that layer is loaded. We are also going to take a quick peek at how to create more complex symbology for a layer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Open QGIS if its not already running.&lt;br /&gt;
* Add the dams layer from the Postgresql 'Workshop' database&lt;br /&gt;
* Double click on the layer entry in the legend&lt;br /&gt;
* Activate the symbology tab&lt;br /&gt;
* Now change the legend type to '''Graduated Symbol'''&lt;br /&gt;
* Change the classification field to '''shape_area'''&lt;br /&gt;
* Set the '''number of classes''' to 5&lt;br /&gt;
* Click the '''classify''' button&lt;br /&gt;
* Click the '''Apply''' button&lt;br /&gt;
&lt;br /&gt;
You should see the shapes in the main window have now adopted a range of scintillating colours! However is you add that layer to another QGIS project you would normally have to do all this work again! Qml to the rescue.&lt;br /&gt;
&lt;br /&gt;
* Save your symbology settings by clicking the '''save as default''' button&lt;br /&gt;
&lt;br /&gt;
Ok lets test it out!&lt;br /&gt;
&lt;br /&gt;
* Close QGIS&lt;br /&gt;
* Reopen QGIS&lt;br /&gt;
* Add the Dams layer from the Postgresql 'Workshop' database&lt;br /&gt;
&lt;br /&gt;
If the planets are correctly aligned, your dams will appear all beautifully coloured according to your personal preference.&lt;br /&gt;
&lt;br /&gt;
If you want to you can also save your settings as non-default, and them restore them by selecting a .qml file again later. Refer to the '''Load style''' and '''Save style''' buttons on the vector properties dialog.&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
Ok give it a whirl, create default appearances for your other layers stored in your PostGIS database. Also try experimenting with the other legend types such as '''Continuous Colour''' and '''Unique Value'''. &lt;br /&gt;
Once you have set your default appearances, close QGIS and then reopen it. Now add all your PostGIS layers to the blank project and they should all magically appear with your preferred appearance.&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
The '''Layer Properties''' dialog in QGIS will let you specify the '''default appearance''' for a layer.&lt;br /&gt;
&lt;br /&gt;
=== ''Setting Projections'' ===&lt;br /&gt;
Projections are a mathematical way of transforming latitude and longitude coordinates into a form that can be meaningfully used in a map.  Sources to be added.&lt;br /&gt;
Some projections in common use in South Africa are the Albers Equal Area, Lamberts Conformal Conic and Gauss (LO) projections.&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
* Make sure that you are zoomed in to Gauteng.&lt;br /&gt;
* From the File menu, select Project Properties.&lt;br /&gt;
  File -&amp;gt; Project Properties&lt;br /&gt;
* Activate the Coordinate Reference System tab&lt;br /&gt;
* Check &amp;quot;Enable &amp;quot;on the fly&amp;quot; CRS Transformation&lt;br /&gt;
* Note that the current Coordinate Reference System is WGS84, which is a standard for displaying geographic coordinates.&lt;br /&gt;
* Look at the column EPSG - this a standard for identifying coordinate systems.  When you have selected a coordinate system you can always find it again quickly by noting the EPSG code and entering it into the '''Find box''' at the bottom of the form.&lt;br /&gt;
* Highlight the ''Projected Coordinate Systems&amp;quot; heading, and double-click to open the list.&lt;br /&gt;
* Scroll down and highlight the &amp;quot;Universal Transverse Mercator&amp;quot; heading.&lt;br /&gt;
* Select the '''Name''' radio button.&lt;br /&gt;
* Enter &amp;quot;33S&amp;quot; in the text box, and press find.  Keep pressing find until you get to &amp;quot;WGS 84/UTM Zone 33&amp;quot;.  &lt;br /&gt;
 Or select the EPSG ID radio button, enter 32733 and press the Find button.    Isn't that easier?&lt;br /&gt;
* Notice that the overall shape of the country has changed due to the projection.&lt;br /&gt;
* Zoom into Gauteng again.  Move your cursor and look at the coordinates shown at the bottom of the screen.  Notice how they have changed.  They are now in meters rather than decimal degrees.&lt;br /&gt;
&lt;br /&gt;
=== Now You Try! ===&lt;br /&gt;
First of all try a related projection such as UTM Zone 34S or UTM 38S, and see what the impact is.  Move your cursor around - how do the coordinates differ from ones shown under UTM 36S?&lt;br /&gt;
&lt;br /&gt;
Then try one of the Stereographic South projections, such as EPSG=3031,  for a very different view of South Africa!&lt;br /&gt;
&lt;br /&gt;
QGIS calculates the effect of the projection before displaying the data and doesn't make any changes, so you can try anything you like!&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
You have learnt how to set an on-the-fly projection for display in QGIS, and how to use EPSG codes to rapidly find a specific projection. Remember, if you are trying to develop a map for use in the field you will need to use a projection specific to South Africa.&lt;br /&gt;
&lt;br /&gt;
=== ''Editing Vector Data'' ===&lt;br /&gt;
Have a look at the boundary of the Eastern and Western Cape on the coast.  The rivers and provincial boundary seem to follow each other closely. Now zoom right in and notice how the provincial boundary is much more detailed than the rivers, and they don't follow each other well at all.&lt;br /&gt;
&lt;br /&gt;
QGIS to the rescue!&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
* Select the rivers layer in the Legend panel on the left.&lt;br /&gt;
* Click on the blue Pencil icon on the leftmost toolbar on the bottom row or &amp;lt;menu option&amp;gt;.  &lt;br /&gt;
* Now click on the &amp;lt;edit vertices&amp;gt; icon. Notice how the river lines have suddenly sprouted small circles wherever the line changes direction.  These are the vertices - if you have used a drawing program before you might have seen something like this. &lt;br /&gt;
* Drag the vertices of the rivers to align with the provincial boundary.&lt;br /&gt;
 Notice that we don't have enough vertices to do this exactly.&lt;br /&gt;
* Click on the add vertices icon.  Now click on the river wherever more vertices are needed.  &lt;br /&gt;
* When you have enough vertices go back to &amp;quot;Edit Vertices&amp;quot; and move them where they need to be.&lt;br /&gt;
* Now save you changes using &amp;lt;&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Now You Try! ===&lt;br /&gt;
Go to Gauteng and bring up the JPEG map sheets behind the roads.  Have a look at the roads and notice where the vectors are not aligned with the base map.  Use the edit features to correct the roads vectors.&lt;br /&gt;
&lt;br /&gt;
Then look at the rivers and provincial boundaries again.  See if you can find another place where the two are not aligned.  Experiment with the Snapping Options under Project Properties.  Use the Measure Length tool to decide on reasonable initial tolerance values.&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Africa]]&lt;/div&gt;</summary>
		<author><name>Wiki-Brendonwp</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=AfricaEvents29November2008&amp;diff=32743</id>
		<title>AfricaEvents29November2008</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=AfricaEvents29November2008&amp;diff=32743"/>
		<updated>2008-12-01T08:52:46Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Brendonwp: /* What have I learnt? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;...back to [[Africa_Local_Chapter]]&lt;br /&gt;
&lt;br /&gt;
= What? =&lt;br /&gt;
&lt;br /&gt;
Our first OSGeo local chapter meet up! We will chew the cud, show you some cool stuff and start to get people familiar with the brilliant FOSS GeoSpatial products out there!&lt;br /&gt;
&lt;br /&gt;
We'll go through installing some software and getting it to a point where you can have fun with it. &lt;br /&gt;
&lt;br /&gt;
= How Much? =&lt;br /&gt;
&lt;br /&gt;
There will be a door charge of R50 to cover costs &amp;amp; refreshments. That and an open mind are all you need to bring. If you're staying for the QGIS session in the afternoon you can bring your laptop (Windows, Linux or Mac!)&lt;br /&gt;
&lt;br /&gt;
= Where? =&lt;br /&gt;
&lt;br /&gt;
 St Davids Marist Inanda College&lt;br /&gt;
 36 Rivonia Rd&lt;br /&gt;
 Inanda&lt;br /&gt;
 Sandton&lt;br /&gt;
[http://www.stdavids.co.za/about_directions.asp Map and Directions]&lt;br /&gt;
&lt;br /&gt;
NB: We'll be in the Prep School computer lab.&lt;br /&gt;
&lt;br /&gt;
= When? =&lt;br /&gt;
&lt;br /&gt;
* November 29th&lt;br /&gt;
* Presentation and workshop segment: 9am to 12pm&lt;br /&gt;
* QGIS Bug Party! 12h30 onwards&lt;br /&gt;
&lt;br /&gt;
= Who =&lt;br /&gt;
&lt;br /&gt;
Your friendly presenters for the day will be:&lt;br /&gt;
&lt;br /&gt;
* '''Tim Sutton''' (tim at linfiniti.com) - QGIS hacker and FOSS GIS junkie extraordinaire. Tim eats Weetbix for breakfast because it sounds like Linux. He once rewrote Nkosi Sikelela in C++ because he was feeling patriotic.&lt;br /&gt;
* '''Graeme McFerren''' - (graeme.mcferren at gmail.com) - GIS researcher and FOSS4G user. Mmm, aspire to be like Tim then.&lt;br /&gt;
* '''Gavin Fleming''' (gavinjfleming at gmail dot com) - I enjoy my daily FOSS4G fix and telling people how great it was. I'm a 'geoinformation scientist' at Mintek and love to see cutting edge and useful geospatial applications emerging. &lt;br /&gt;
* '''Brendon Wolff-Piggott''' - (brendon at integratedgeodata.co.za) - Water resources consultant and FOSS GIS enthusiast.  I wish there were more hours in the day to keep up with FOSS4G!&lt;br /&gt;
&lt;br /&gt;
= RSVP =&lt;br /&gt;
Let gavinjfleming at gmail dot com know if you're coming as numbers are limited. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= QGIS Bug Party =&lt;br /&gt;
&lt;br /&gt;
As a preview release there are still various bugs that need resolving and various elements (e.g. translation) that may be incomplete. On Saturday the 29th in Johannesburg, South Africa, members from the Africa OSGeo chapter will be holding a QGIS Bug Hunt Party. We would like to invite people from around the world to virtually participate. Each person attending will get a free copy of QGIS 1.0.0 Preview 2 absolutely free of charge! Sorry no shrink wrap copies available. Preview 2 is the second in a series of preview releases we are making before we release the Stable QGIS 1.0.0 with long term support. &lt;br /&gt;
We are going to great lengths to polish up QGIS 1.0 for you (inside and out) and we really appreciate all the feedback we have received thus far. Its virtually impossible to ship any software completely bug free, but with your help we can add just a little more shine to the polish! We need your help to:&lt;br /&gt;
&lt;br /&gt;
* test on different machine configurations (bring your laptops!)&lt;br /&gt;
* validate existing bugs on each platform&lt;br /&gt;
* mark bugs that can no longer be replicated as ready for closure&lt;br /&gt;
* create new tickets for bugs that have not been reported yet (please search first to avoid posting duplicates!)&lt;br /&gt;
* mark bugs that are duplicates&lt;br /&gt;
* provide additional diagnostics so that developers can replicate issues&lt;br /&gt;
&lt;br /&gt;
The idea is not to try to *fix* the bugs, but rather to do a QA session on the bugs in the bug tracker. In the process you will learn how to interact with an Open Source project the Right Way i.e. filing good quality bug reports.&lt;br /&gt;
&lt;br /&gt;
I will start off with a simple show and tell covering:&lt;br /&gt;
* where to find the QGIS (and other OSGeo projects bug tracking sites)&lt;br /&gt;
* creating an account so you can file non-anonymous bugs and feedback on any OSGeo project bug tracker&lt;br /&gt;
* how the bug tracking system works - what the various input fields in the QGIS tracker mean&lt;br /&gt;
&lt;br /&gt;
The approach will be to start by going through any bugs that have not been revised recently, adding additional status information. If you think the bug is fixed, add a comment:&lt;br /&gt;
&lt;br /&gt;
'''Works for me now, recommend closure, &amp;lt;Your Name&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
If you can replicate the bug, add a comment like:&lt;br /&gt;
&lt;br /&gt;
'''Can replicate, OS: Ubuntu 8.10, QGIS Preview 2, &amp;lt;Your Name&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Use your initiative to deal with tickets that don't fit into the categories above, following a similar approach.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After that I will turn you loose on the queue and a shiny copy of QGIS preview 2 and let you have at it. Party is over when the last man falls asleep at the keyboard! Ok probably we will finish at between 4:30pm and 5pm if my wife has anything to do with it!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We look forward to seeing you at the QGIS Bug Party!!!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Programme in a nutshell =&lt;br /&gt;
&lt;br /&gt;
* Be there in time for a 9am start&lt;br /&gt;
* Morning session: Introducing QGIS, PostGIS, GeoServer, uDig&lt;br /&gt;
* Afternoon session: QGIS Bug Party&lt;br /&gt;
&lt;br /&gt;
Note: There will be frequent rest breaks and lots of time to ask questions!&lt;br /&gt;
&lt;br /&gt;
'''1. Welcome, Introduction and Overview: Starting up (5 minutes)'''&lt;br /&gt;
&lt;br /&gt;
What am I looking at here? What do I need to do to get started?&lt;br /&gt;
&lt;br /&gt;
'''2. QGIS: Opening and viewing spatial data. Your first map. (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
What can I look at? How do I set up a simple map?  Toolbars and Plug-ins. &lt;br /&gt;
&lt;br /&gt;
'''3. PostGIS: Why use PostGIS? Simple example of loading data. (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
Why use a spatial database? What does one look like? How do I populate a spatial database and where does my data live?&lt;br /&gt;
&lt;br /&gt;
'''4. QGIS: Looking at PostGIS data from QGIS.  (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
View a PostGIS database from QGIS.  Setting up data definitions for PostGIS sources.  Loading data into PostGIS with the Spit Loader (no, please don't touch the screen!)&lt;br /&gt;
&lt;br /&gt;
'''5. PostGIS: More than a place to dump data... (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
PostGIS is not just good for storing data, one can manipulate it too! GIS can be done inside the database, which is rather nice when you think about it.&lt;br /&gt;
&lt;br /&gt;
'''6. uDig: Why uDig?  GIS and the Web.  (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
Getting GIS data ready for presentation on the Web! Editing SLDs.&lt;br /&gt;
&lt;br /&gt;
'''7. GeoServer: Tell everyone about it!  (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
Displaying GIS data on the web.  Grouped WMS.  Scale-dependent rendering.&lt;br /&gt;
&lt;br /&gt;
'''8. And more QGIS.'''&lt;br /&gt;
&lt;br /&gt;
Detail on symbology.  Topological editing. QML, SPD and Openlayers.  (15 minutes)&lt;br /&gt;
&lt;br /&gt;
'''9. Show off session'''&lt;br /&gt;
&lt;br /&gt;
Here we can do some whizz bang demo stuff that we don't have time to do in  workshop format but that will give you some hints as to what else can be achieved.&lt;br /&gt;
&lt;br /&gt;
'''10. General'''&lt;br /&gt;
&lt;br /&gt;
Questions and answers.  What you can do next.  Resources.  Possibly some in-depth examples based on frequent questions.  What would you like to see at future workshops?&lt;br /&gt;
&lt;br /&gt;
'''11. Your assessment of the workshop'''&lt;br /&gt;
&lt;br /&gt;
Tell us what you thought!&lt;br /&gt;
&lt;br /&gt;
= Workshop Notes =&lt;br /&gt;
&lt;br /&gt;
== Welcome, introductions and overview ==&lt;br /&gt;
&lt;br /&gt;
== Lets make a map - First steps with QGIS ==&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
* Open QGIS using the icon on the top Gnome Panel&lt;br /&gt;
* From the Layer menu, select '''Add Vector Layer'''&lt;br /&gt;
  Layer -&amp;gt; Add Vector Layer&lt;br /&gt;
* A dialog box will appear&lt;br /&gt;
* Navigate to &lt;br /&gt;
  /home/workshop/gisdata/za/brits/SAExplorer/&lt;br /&gt;
* Add the following layer :&lt;br /&gt;
  Provinces.shp&lt;br /&gt;
* Experiment with the '''map navigation toolbar''' to zoom in / out, pan, select etc features.&lt;br /&gt;
* Open the '''Layer properties dialog'''. There are several ways you can do this:&lt;br /&gt;
  1) Select the layer in the legend and then from the menu do Layer -&amp;gt; Properties&lt;br /&gt;
  or&lt;br /&gt;
  2) Right click on the layer in the legend and choose Properties from the context menu&lt;br /&gt;
  or&lt;br /&gt;
  3) Double click on the layer in the legend&lt;br /&gt;
* Familiarise yourself with the various panels in the vector properties dialog.&lt;br /&gt;
* Select the '''Symbology''' tab (second from the left)&lt;br /&gt;
* From the '''Style Options''' panel, choose a pleasing '''fill colour''' for the provinces then &lt;br /&gt;
  Click OK&lt;br /&gt;
&lt;br /&gt;
Or you can:&lt;br /&gt;
* Select the '''Legend Type''' as ''Unique Value''.  &lt;br /&gt;
* Set the '''Classification field''' to ''PROVNAME''&lt;br /&gt;
* Click on the '''Classify''' button to set '''different colours for each province'''.&lt;br /&gt;
  Click OK&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
'''Add''' the following layers (also from the /home/workshop/gisdata/za/brits/SAExplorer/ directory)&lt;br /&gt;
&lt;br /&gt;
  Transport_NationalRoads.shp&lt;br /&gt;
  Transport_Railways.shp&lt;br /&gt;
  RSATowns.shp&lt;br /&gt;
  Dams.shp&lt;br /&gt;
 &lt;br /&gt;
'''Zoom and pan''' around a little to explore your data'''&lt;br /&gt;
'''Symbolise''' each layer with an appropriate colour to make the most awe inspiring map.&lt;br /&gt;
&lt;br /&gt;
Activate the '''Identify features''' icon on the middle toolbar to identify the attribute values associated with a spatial feature for the layer highlighted in the Legend Box.&lt;br /&gt;
&lt;br /&gt;
Activate the '''Select Features''' icon next to Identify Features to select one or more features.  &lt;br /&gt;
&lt;br /&gt;
Open the attribute table to view all feature attributes. Note that selected features will have highlighted rows in the attribute table.  You can do this using the neighbouring '''Open Attribute Table''' icon, or by selecting the Open Attribute Table option on the context menu for the layer in the legend using right-click on the mouse.&lt;br /&gt;
&lt;br /&gt;
You can also select rows in the attribute table by:&lt;br /&gt;
* Left-clicking on the desired rows.&lt;br /&gt;
* Using the '''Search''' box at the bottom-left of the form.&lt;br /&gt;
* Selecting the '''Advanced''' button and opening the '''Search Query Builder'''. &lt;br /&gt;
&lt;br /&gt;
Save your project using &lt;br /&gt;
 File -&amp;gt; Save&lt;br /&gt;
&lt;br /&gt;
And put it into&lt;br /&gt;
 /home/workshop/gisdata/brits.qgs&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
In ten minutes you now know how to '''add vector layers''' into QGIS, '''pan and zoom''' to navigate the map, and set the colour of vectors using the '''Single Symbol''' or '''Unique Values''' options in the '''Layer Properties'''.&lt;br /&gt;
&lt;br /&gt;
You have also learnt how to use the interactive '''Identify''' and '''Select''' functions, '''opened attribute tables''' and found out how to '''search''' them.&lt;br /&gt;
&lt;br /&gt;
== More on QGIS Mapping ==&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
Add the vector layer '''Education_Schools2000.shp''' from the SAExplorer directory.  Notice how dense the points are!&lt;br /&gt;
&lt;br /&gt;
* Right-click on the schools layer in the Legend frame.&lt;br /&gt;
* Select '''Properties'''&lt;br /&gt;
* Select the '''General tab'''&lt;br /&gt;
* Check '''Use scale dependent rendering'''&lt;br /&gt;
* Set the maximum field to 1000000&lt;br /&gt;
&lt;br /&gt;
* Zoom out to view the whole country.    '''Notice that the schools no longer appear on the map!''' &lt;br /&gt;
* Now start zooming in, keeping an eye on the scale shown in the '''scale box''' at the bottom of the screen.&lt;br /&gt;
&lt;br /&gt;
 Notice how the schools points reappear when the scale decreases below 1:1000000&lt;br /&gt;
 &lt;br /&gt;
* From the Layer menu, select '''Add Raster Layer'''&lt;br /&gt;
  Layer -&amp;gt; Add Raster Layer&lt;br /&gt;
* A dialog box will appear&lt;br /&gt;
* Navigate to &lt;br /&gt;
  /home/workshop/gisdata/za/gauteng/&lt;br /&gt;
* Add the following layer :&lt;br /&gt;
 SOU-8_satellite.tif&lt;br /&gt;
&lt;br /&gt;
Notice that the image is largely in shades of greyish-brown, but that a dam can be seen towards the bottom of the image. &lt;br /&gt;
&lt;br /&gt;
* Open the Properties for the raster layer, in a similar way to that used for vector layers.&lt;br /&gt;
 Layer -&amp;gt; Properties&lt;br /&gt;
* Select the '''Transparency''' tab.&lt;br /&gt;
* Using the slider, set transparency to 25%&lt;br /&gt;
* Click OK&lt;br /&gt;
Notice how the you can now see the vector layers behind the satellite image.&lt;br /&gt;
 &lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
If you have not already done so, add the vector layers Transport_NationalRoads.shp and Transport_Mainroads.shp from /home/workshop/gisdata/za/brits/SAExplorer.&lt;br /&gt;
Set scale-dependent rendering so that the national roads display at all scales, while the main roads are only shown when you are zoomed in. &lt;br /&gt;
&lt;br /&gt;
Go to the satellite image properties, Symbology tab.  Try the different &amp;quot;Render as&amp;quot; options.  Then when you have found the one that suits you, have a look at the &amp;quot;Contast Enhancement&amp;quot; options.  Compare &amp;quot;No Stretch&amp;quot; and &amp;quot;Stretch to MinMax&amp;quot;.  &lt;br /&gt;
&lt;br /&gt;
Try &amp;quot;Render as Single Band Grey&amp;quot;.  Set the &amp;quot;Custom min/max values&amp;quot; radio button.  Change the Min and Max values.  Go to &amp;quot;Contract Enhancement&amp;quot; again and set it to &amp;quot;Stretch and Clip to MinMax&amp;quot;, and see the effect.&lt;br /&gt;
&lt;br /&gt;
Add raster images of 1: 50 000 map sheets from &amp;quot; /home/workshop/gisdata/za/brits/toposheet images&amp;quot; &lt;br /&gt;
You will need to set the Files of Type box to '''JPEG JFIF''' to see them, before you can select them.&lt;br /&gt;
Set their transparency to a value that allows you to see the vector features behind them.  Zoom in and look at how the vector features and image features match (or not!).&lt;br /&gt;
&lt;br /&gt;
Notice how you can zoom right in to vector data, and a point remains a point and a line remains a line.  When you zoom in to the satellite image it rapidly appears &amp;quot;blocky&amp;quot; compared to the 50 000 map sheets. Zoom in enough and even the map sheet raster blocks can be seen.  This is a basic difference between vector and raster data.&lt;br /&gt;
&lt;br /&gt;
=== What have I learnt? ===&lt;br /&gt;
&lt;br /&gt;
You have learnt to set scale-dependent rendering so that data sets are displayed at appropriate scales, how to add raster data and set raster display options.&lt;br /&gt;
&lt;br /&gt;
== Shapefiles shmapefiles....real (wo)men store their data in PostGIS ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
* '''Create''' a new PostgreSQL database. To do this, open the terminal application (icon to the right of Firefox icon on the top menu bar). Now at the prompt type the following command:&lt;br /&gt;
  createdb workshop&lt;br /&gt;
&lt;br /&gt;
* '''Verify''' your database exists (once again type this into the terminal)&lt;br /&gt;
  psql -l&lt;br /&gt;
* You should see something like this:&lt;br /&gt;
 workshop@heron:~$ psql -l&lt;br /&gt;
        List of databases&lt;br /&gt;
   Name    |  Owner   | Encoding &lt;br /&gt;
 -----------+----------+----------&lt;br /&gt;
 postgres  | postgres | UTF8&lt;br /&gt;
 template0 | postgres | UTF8&lt;br /&gt;
 template1 | postgres | UTF8&lt;br /&gt;
 workshop  | workshop | UTF8&lt;br /&gt;
 (4 rows)&lt;br /&gt;
* away from the terminal for a while - lets look at what a non-spatial, vanilla PostgreSQL database looks like. Open pgAdmin 3  (the icon with a blue elephant face)&lt;br /&gt;
* Double-click on the icon that has a red cross next to some text &amp;quot;gis (localhost:5432)&amp;quot; and press OK if another screen comes up. The database cluster called gis expands and you should see two databases: 'postgres' and 'workshop'. Expand workshop -&amp;gt; Schemas -&amp;gt; public&lt;br /&gt;
Specifically, let us look at Functions and Tables - don't look to deeply, this is just to show the differences after PostGIS is installed on the database (you will see later). Specifically, there is nothing in the db at the moment. So minimise pgAdmin and lets crack on with getting some data in!&lt;br /&gt;
&lt;br /&gt;
* Install the PostGIS spatial data extensions (again from the terminal).&lt;br /&gt;
'''Hint''' copy and paste these from the IRC channel or the wiki page!&lt;br /&gt;
 createlang plpgsql workshop&lt;br /&gt;
 psql workshop &amp;lt; /usr/share/postgresql-8.3-postgis/lwpostgis.sql&lt;br /&gt;
 psql workshop &amp;lt; /usr/share/postgresql-8.3-postgis/spatial_ref_sys.sql&lt;br /&gt;
&lt;br /&gt;
* Yegads! What did I just do? Firstly, you installed the '''plpgsql''' procedural language extensions into your PostgreSQL database. Then you ran two sql scripts which create the '''PostGIS''' spatial extensions to your database. You only need to do this '''once''' when you create a new spatial database, so don't worry about remembering those commands off by heart.&lt;br /&gt;
* Lets upload a shapefile into the database....once more into the black hole (terminal window).&lt;br /&gt;
 cd /home/workshop/gisdata/za/brits/SAExplorer&lt;br /&gt;
 shp2pgsql -I -s 4326 Dams.shp dams | psql -d workshop&lt;br /&gt;
* Erk! What does that all mean? Lets break it down:&lt;br /&gt;
 cd /home/workshop/gisdata/za/brits/SAExplorer - go to our data directory&lt;br /&gt;
 shp2pgsql - an application that loads shapefiles into a PostGIS database&lt;br /&gt;
 -I - an option to shp2pgsql telling it to create a spatial index&lt;br /&gt;
 -s - the coordinate reference system to use, expressed as an EPSG number. 4326 is the same as Lat/Long WGS84&lt;br /&gt;
 Dams.shp - the filename of the shapefile to load&lt;br /&gt;
 dams - the table name that the data should be loaded into&lt;br /&gt;
 | psql workshop - send the results of the shp2pgsql into the psql application, workshop database&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Lets take a peek inside our database now and see what we have - back to pgAdmin, click on the 'workshop' database icon and then refresh it (red/green circular arrows icon).&lt;br /&gt;
Three major things to look at:&lt;br /&gt;
 &lt;br /&gt;
 Hundreds of Functions for working with spatial data: &lt;br /&gt;
 * geometry constructors, &lt;br /&gt;
 * spatial predicates, &lt;br /&gt;
 * geometry editors, &lt;br /&gt;
 * geometry aggregators, &lt;br /&gt;
 * geometry accessors, &lt;br /&gt;
 * measurements, &lt;br /&gt;
 * linear referencing&lt;br /&gt;
 * and outputting  of spatial data. &lt;br /&gt;
 &lt;br /&gt;
 2 important meta-tables: (expand the Tables object)&lt;br /&gt;
 * geometry_columns (for describing the different spatial datasets) - right-click -&amp;gt; &lt;br /&gt;
 * and spatial_ref_sys(a list of projections/coordinate systems and different representations thereof)&lt;br /&gt;
&lt;br /&gt;
 A 'dams' table which, when expanded should show a bunch of Columns, Constraints (e.g. Primary Key), Indexes, Rules and Triggers. &lt;br /&gt;
 * Note the geometry type of column 'the_geom'. &lt;br /&gt;
 * Also note the spatial index present - this allows for optimal retrieval of data based on the spatial properties of the data.&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
'''Load''' the following layers (also from the /home/workshop/gisdata/za/brits/SAExplorer/ directory)&lt;br /&gt;
&lt;br /&gt;
 Hydrology_DWAFRivers.shp -&amp;gt; call the table 'rivers'&lt;br /&gt;
 Transport_Mainroads.shp -&amp;gt; call the table 'roads'&lt;br /&gt;
 ProvincialBoundary.shp -&amp;gt; call the table 'provinces'&lt;br /&gt;
&lt;br /&gt;
And to show that this can scale a bit, let us load in the background a dataset of over 350 000 points (which we will use a bit later)&lt;br /&gt;
 * cd /home/workshop/gisdata/za/fire/modis_af/&lt;br /&gt;
 * shp2pgsql -I -s 4326 modis_af.shp fires | psql -d workshop  &amp;amp;&amp;gt; /dev/null (puts output into background)&lt;br /&gt;
 * shp2pgsql -I -s -D 4326 modis_af.shp fires | psql -d workshop (simpler and faster)&lt;br /&gt;
&lt;br /&gt;
=== Super duper advanced ===&lt;br /&gt;
&lt;br /&gt;
What if I want to load a batch of shapefiles in a directory in 1 go? Try this nifty bash script one liner!&lt;br /&gt;
&lt;br /&gt;
 for FILE in `ls *.shp`; do TABLE=`echo $FILE | sed 's/\.shp//g'`; echo $TABLE;shp2pgsql -I -s 4326 $FILE $TABLE | psql -d workshop; done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This takes a while so lets move on.&lt;br /&gt;
&lt;br /&gt;
=== What have I learnt? ===&lt;br /&gt;
&lt;br /&gt;
* PostgreSQL is an enterprise-ready relational database management system - and it's Free and Open Source Software&lt;br /&gt;
* You can create a new database using the '''createdb''' command.&lt;br /&gt;
* '''PostGIS''' is a add-on to PostgreSQL that lets you store spatial data and carry out spatial analysis within the database.&lt;br /&gt;
* In order to set up PostGIS you need to run a couple of SQL scripts&lt;br /&gt;
* '''shp2pgsql''' is a command line application that lets you load shapefiles into your spatial datastore&lt;br /&gt;
&lt;br /&gt;
== Using PostGIS data from QGIS ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
Once your data is in PostGIS, its easy to share across your organisation. Because it's in a database you get row level locking (instead of file locking in a shapefile), so many users can be editing and viewing data at the same time. There are many clients that let you visualise your PostGIS data..lets take a look at how we do it in QGIS.&lt;br /&gt;
&lt;br /&gt;
* Open QGIS&lt;br /&gt;
* Start a new project&lt;br /&gt;
  File -&amp;gt; New Project&lt;br /&gt;
* Add a PostGIS layer&lt;br /&gt;
  Layer -&amp;gt; Add PostGIS Layer&lt;br /&gt;
* From the connections list, choose '''workshop'''&lt;br /&gt;
  Click connect&lt;br /&gt;
* In the table list, click on '''dams'''&lt;br /&gt;
  Click Add&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
* Add the following layers from your database&lt;br /&gt;
 rivers&lt;br /&gt;
 roads&lt;br /&gt;
 provinces&lt;br /&gt;
&lt;br /&gt;
* set some nice colors for your layers - notice how the process is exactly the same as when setting colours for a shapefile.&lt;br /&gt;
&lt;br /&gt;
* save your project into&lt;br /&gt;
&lt;br /&gt;
 /home/workshop/gisdata/brits_pg.qgs&lt;br /&gt;
&lt;br /&gt;
=== What have I learnt? ===&lt;br /&gt;
&lt;br /&gt;
* You can '''visualise''' PostGIS spatial database tables inside QGIS&lt;br /&gt;
* To add a PostGIS layer, use the '''Layer -&amp;gt; Add PostGIS Layer''' menu option.&lt;br /&gt;
* Once a PostGIS layer, you can treat it just like any other (e.g. shapefile) layer&lt;br /&gt;
* Your presenters are truly amazing....however would I have figured this stuff out for my self :-)&lt;br /&gt;
&lt;br /&gt;
== More on PostGIS Data in QGIS ==&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
* Click on the '''Blue Elephant''' icon in the middle toolbar row to start SPIT loader.&lt;br /&gt;
* Select the PostgreSQL Connection as &amp;quot;workshop&amp;quot;.&lt;br /&gt;
* Click on Connect to verify your connection&lt;br /&gt;
* Now click &amp;quot;Add&amp;quot; - the &amp;quot;Add Shapefile&amp;quot; dialog box comes up. &lt;br /&gt;
&lt;br /&gt;
Navigate to /home/workshop/gisdata/za/brits/SAExplorer.&lt;br /&gt;
&lt;br /&gt;
* Select &amp;quot;Rsatowns.shp&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 Click &amp;quot;Open&amp;quot;.  PostGIS scans the file and lists it in the display frame.&lt;br /&gt;
&lt;br /&gt;
 Click &amp;quot;OK&amp;quot;.  QGIS loads the shapefile data into PostGIS with no need to use the terminal!&lt;br /&gt;
&lt;br /&gt;
* Use Layer -&amp;gt; Add PostGIS Layer to load the layer from PostGIS directly into QGIS.  &lt;br /&gt;
&lt;br /&gt;
* Now add the rivers PostGIS layer to QGIS to see another advantage of using PostGIS layers.&lt;br /&gt;
* Open the Layer properties form.  &lt;br /&gt;
* On the General tab, click &amp;quot;Query Builder&amp;quot; near the bottom right-hand corner. This opens the Query Builder. &lt;br /&gt;
* Click Field &amp;quot;RIVER_CLAS&amp;quot;.&lt;br /&gt;
* Click the &amp;quot;All&amp;quot; button under the &amp;quot;Values&amp;quot; frame.&lt;br /&gt;
* Build the Query &lt;br /&gt;
 &amp;quot;RIVER_CLAS&amp;quot; LIKE 'Perennial' OR &amp;quot;RIVER_CLAS&amp;quot; LIKE 'Perennial river'&lt;br /&gt;
* Click &amp;quot;Test&amp;quot; to check that it will work.&lt;br /&gt;
* Click &amp;quot;OK&amp;quot; twice to apply it.&lt;br /&gt;
&lt;br /&gt;
Now look at the display - the query has not merely highlighted the selected features, it has filtered the non-selected features out so that they are not displayed.  &lt;br /&gt;
&lt;br /&gt;
=== Now you try ===&lt;br /&gt;
&lt;br /&gt;
* Try loading other layers into PostGIS using the Spit loader.&lt;br /&gt;
* Load these into QGIS, and use the &amp;quot;Query Builder&amp;quot; to define the data sets that you want to see.&lt;br /&gt;
* You could define the non-perennial rivers as a separate data set, and use scale-dependent rendering to show them only when you zoom right in.&lt;br /&gt;
&lt;br /&gt;
=== What I have learnt ===&lt;br /&gt;
&lt;br /&gt;
How to rapidly load data into postgis using the spit loader.  How to set up data queries to filter spatial data display from postgis.&lt;br /&gt;
&lt;br /&gt;
== The Zen of PostGIS - not just a pretty place to store data! ==&lt;br /&gt;
&lt;br /&gt;
Okay, we will go a bit deeper into the woods here! We want to show that with some SQL (I won't say simple) you can do some complex - and repeatable - spatial analysis right inside your database, and then visualise the results in various clients.&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
We will use pgAdmin (your great PostgreSQL friend) to get this happening. Click on the Tables object of your workshop db. Then Tools -&amp;gt; Query tool from the menu. This should present a dialog box with 3 panels.&lt;br /&gt;
&lt;br /&gt;
We are going to do a simple intersection to get started.&lt;br /&gt;
In the top left panel paste &lt;br /&gt;
 SELECT roads.gid, roads.code, roads.route_nr, roads.shape_leng, roads.the_geom FROM roads, rivers WHERE (roads.the_geom &amp;amp;&amp;amp; rivers.the_geom AND intersects(roads.the_geom, rivers.the_geom));&lt;br /&gt;
and click Query -&amp;gt; Execute&lt;br /&gt;
This should take a few seconds, then you will see a result returned into the Data Output grid. Something like 3338 rows are returned from the original roads dataset of 11964.&lt;br /&gt;
&lt;br /&gt;
So what is going on here?&lt;br /&gt;
&lt;br /&gt;
You are performing a spatial overlay with a SQL query, asking the database to return records from the roads table that spatially intersect records from the rivers table. &lt;br /&gt;
* the &amp;amp;&amp;amp; operator is a fast bounding box 'overlaps' test that takes advantage of the spatial indexes of the table to narrow the search space for the true intersection test.&lt;br /&gt;
* the intersects part of the query tests the geometries of the subset selected above for spatial intersection and returns a result.&lt;br /&gt;
&lt;br /&gt;
To show some other functionality, paste the following text into the query window and execute:&lt;br /&gt;
 ALTER TABLE roads DROP CONSTRAINT enforce_srid_the_geom;UPDATE geometry_columns SET srid = 4148 WHERE f_table_name = 'roads';COMMIT; UPDATE roads SET the_geom = ST_Transform(the_geom,4148);COMMIT; ALTER TABLE roads ADD CONSTRAINT enforce_srid_the_geom CHECK (srid(the_geom) = 4148);&lt;br /&gt;
We are being good South African GIS types and using our Haartebeesthoek94 Datum. Lets do the same for rivers:&lt;br /&gt;
 ALTER TABLE rivers DROP CONSTRAINT enforce_srid_the_geom;UPDATE geometry_columns SET srid = 4148 WHERE f_table_name = 'rivers';COMMIT; UPDATE rivers SET the_geom = ST_Transform(the_geom,4148);COMMIT; ALTER TABLE rivers ADD CONSTRAINT enforce_srid_the_geom CHECK (srid(the_geom) = 4148);&lt;br /&gt;
&lt;br /&gt;
This looks fairly intense, but the main points are the changing of the data in the geometry_columns meta-table and then updating the geometries in each table to a different CRS (4148, or Haartebeesthoek94). We demonstrate the use of the UPDATE SQL command, used to change data in the database, and the use of the ST_Transform function of PostGIS, which does the work. Now lets try the original query again:&lt;br /&gt;
 SELECT roads.gid, roads.code, roads.route_nr, roads.shape_leng, roads.the_geom FROM roads, rivers WHERE st_intersects(roads.the_geom, rivers.the_geom);&lt;br /&gt;
...which returns the same number of features, but in our own CRS. Note that we have used the ST_Intersects function rather than the Intersects function as previously shown. ST_ type functions are more standards compliant, so should be used in place of the older style functions.&lt;br /&gt;
Ideally we would project the data as appropriate, using the very same technique, but substituting 4148 for the EPSG code for our projection of choice. This is a demo though, folks, so I will get away with murder...&lt;br /&gt;
Lets quickly repeat the process for the other datasets we will use in a minute:&lt;br /&gt;
 ALTER TABLE provinces DROP CONSTRAINT enforce_srid_the_geom;UPDATE geometry_columns SET srid = 4148 WHERE f_table_name = 'provinces';COMMIT; UPDATE provinces SET the_geom = ST_Transform(the_geom,4148);COMMIT; ALTER TABLE provinces ADD CONSTRAINT enforce_srid_the_geom CHECK (srid(the_geom) = 4148);&lt;br /&gt;
 ALTER TABLE fires DROP CONSTRAINT enforce_srid_the_geom;UPDATE geometry_columns SET srid = 4148 WHERE f_table_name = 'fires';COMMIT; UPDATE fires SET the_geom = ST_Transform(the_geom,4148);COMMIT; ALTER TABLE fires ADD CONSTRAINT enforce_srid_the_geom CHECK (srid(the_geom) = 4148);&lt;br /&gt;
&lt;br /&gt;
So, while that goes ahead (it will take a minute or so to transform 350k points), let us think out another analysis. Lets make it a bit tricky. Okay, we want to create a table for serving up data to the outside world (Gavin will do this later) that has all the intense fires in Gauteng or NorthWest Province, that have occurred within 3000 metres of a main road. There are many ways to skin this cat in PostGIS, so I will pick a method and explain why I did so.&lt;br /&gt;
First, a convenience table is created:&lt;br /&gt;
 SELECT roads.gid, ST_Buffer(roads.the_geom,0.027) AS geom INTO roads_buffer FROM roads, (SELECT * FROM provinces WHERE prov_code = 'GT' OR prov_code = 'NW') AS prov WHERE ST_Within(roads.the_geom, prov.the_geom);&lt;br /&gt;
This is a table of polygons representing ~3000 metre road buffers, and note the use of the function to populate the geometry_columns meta-table with our new layer.&lt;br /&gt;
 SELECT DISTINCT fires.gid, fires.frp, fires.acqdatetim, fires.the_geom INTO fires_analysis_3000m FROM fires, (SELECT * FROM provinces WHERE prov_code = 'GT' OR prov_code = 'NW') AS prov, roads_buffer  WHERE fires.frp &amp;gt; 200 AND ST_Within(fires.the_geom, prov.the_geom) AND ST_Within(fires.the_geom, roads_buffer.geom);&lt;br /&gt;
The main feature of this query is the longish WHERE clause, which tests weather the fire is intense, whether it falls within Gauteng or NW Province and whether the fire occurred within appx 3000 metres of one of our main roads.&lt;br /&gt;
&lt;br /&gt;
There are not too many fires that fall out of this analysis, but it shows how we have relatively easily worked with and reduced a large dataset to a few points. These queries can be further tuned to take advantage of spatial and other indexes, but that is perhaps for another time.&lt;br /&gt;
&lt;br /&gt;
The final thing we will do is prepare this layer for use on the web...&lt;br /&gt;
 INSERT INTO geometry_columns(f_table_catalog,f_table_schema,f_table_name,f_geometry_column,coord_dimension,srid,&amp;quot;type&amp;quot;) VALUES('','public','fires_analysis_3000m','the_geom',2,4148,'MULTIPOINT');&lt;br /&gt;
Normal meta-table stuff&lt;br /&gt;
 ALTER TABLE fires_analysis_3000m ADD PRIMARY KEY (gid);&lt;br /&gt;
And if we wanted to we could add a spatial index:&lt;br /&gt;
 CREATE INDEX fires_Analysis_3000m_the_geom_gist ON fires_Analysis_3000m USING gist(the_geom);&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
Well, no you do not - but you can ask questions...&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
Well, hopefully a fair bit. You can, with a bit of practice and reading up on the matter, get PostGIS to do some rather interesting and powerful things. We have just seen a database do GIS... Some of you may be in the know about such matters, but hopefully this shows some possibilities to others.&lt;br /&gt;
&lt;br /&gt;
== uDig ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
uDig ('user-friendly desktop internet GIS') is another excellent desktop GIS. let's check out the basics&lt;br /&gt;
&lt;br /&gt;
* Open uDig&lt;br /&gt;
* start adding layers (note the variety of data that can be used)&lt;br /&gt;
** Add a PostGIS layer&lt;br /&gt;
** add a shapefile&lt;br /&gt;
* theme the layers&lt;br /&gt;
* check out the table view, catalogue and some functionality&lt;br /&gt;
&lt;br /&gt;
There's no need to save projects - you can just close uDig and it will save automatically. Note &lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
* Add the following layers from your database&lt;br /&gt;
 rivers, dams, schools, roads, more if you like&lt;br /&gt;
&lt;br /&gt;
* theme the school layer with nice symbols and labels - we're going to try scale-dependent rendering&lt;br /&gt;
**zoom in closer than 1:50000 and set the max scale to 50000&lt;br /&gt;
**on the theme dialog, click XML&lt;br /&gt;
**select the &amp;lt;rule&amp;gt;&amp;lt;/rule&amp;gt; section and copy it to a text editor.&lt;br /&gt;
**zoom out beyond 50000, go back to 'theme' and simplify your symbols, removing the labels.&lt;br /&gt;
**set the min scale to 50000&lt;br /&gt;
**click 'XML'&lt;br /&gt;
**paste the previous 'rule' into the XML, before or after the one you see.&lt;br /&gt;
**click OK! now zoom in and out past to see the result. &lt;br /&gt;
 &lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
* Viewing and rendering different formats in uDig&lt;br /&gt;
* Theming with SLD (Styled layer descriptor), the OGC standard.&lt;br /&gt;
* scale-dependent rendering&lt;br /&gt;
** with a point - we're going to come back to uDig!&lt;br /&gt;
&lt;br /&gt;
== GeoServer ==&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
 cd&lt;br /&gt;
 export JAVA_HOME=/usr&lt;br /&gt;
 cd Apps/geoserver&lt;br /&gt;
 bin/startup.sh&lt;br /&gt;
&lt;br /&gt;
* Start geoserver (normally set to start automatically and run all the time)&lt;br /&gt;
* All admin is done via the web&lt;br /&gt;
* set up a namespace&lt;br /&gt;
* set up data stores&lt;br /&gt;
* set up feature types&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
* start GeoServer&lt;br /&gt;
* click Config -&amp;gt; Data&lt;br /&gt;
* Set Namespace to any name and any url&lt;br /&gt;
* Set Datastore to your postGIS database&lt;br /&gt;
* define a FeatureType for schools, choose a point style&lt;br /&gt;
'''Styling'''&lt;br /&gt;
*Go to Data -&amp;gt; Style -&amp;gt; new&lt;br /&gt;
**give your style a name and paste in your school SLD from uDig&lt;br /&gt;
**submit&lt;br /&gt;
**Go back to FeatureTypes and Edit your schools Feature, applying your new style&lt;br /&gt;
**Check out the results in the GeoServer demo pages&lt;br /&gt;
&lt;br /&gt;
'''Group layers'''&lt;br /&gt;
* Set up a group in the 'WMS' section&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Back to uDig&lt;br /&gt;
*bring in a WMS layer from http://localhost/geoserver:8080/wms&lt;br /&gt;
*bring in the same layer as WFS&lt;br /&gt;
**theme it&lt;br /&gt;
**save it as a shapefile&lt;br /&gt;
*try this with QGIS too (and with ArcGIS back at the office!)&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
* you can use GeoServer to serve your spatial data from any source as WMS, WFS, KML and more!&lt;br /&gt;
* You can use WMS and WFS layers in a desktop GIS&lt;br /&gt;
* impress your colleagues by sending them kml links from your geoserver so they can view them live in Google Earth!&lt;br /&gt;
&lt;br /&gt;
== More Advanced QGIS Use ==&lt;br /&gt;
Here are some more things you can do with QGIS!  Don't be put off by the heading of this section, we'll take you through step-by-step as before..&lt;br /&gt;
&lt;br /&gt;
=== ''Quick Qml with QGIS'' ===&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
If you have used  ArcView before, you might have used the avl feature which lets you store the symbology settings for a layer. QGIS has a similar feature called 'qml' which lets you create default symbology settings for a layer, that will be applied when ever that layer is loaded. We are also going to take a quick peek at how to create more complex symbology for a layer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Open QGIS if its not already running.&lt;br /&gt;
* Add the dams layer from the Postgresql 'Workshop' database&lt;br /&gt;
* Double click on the layer entry in the legend&lt;br /&gt;
* Activate the symbology tab&lt;br /&gt;
* Now change the legend type to '''Graduated Symbol'''&lt;br /&gt;
* Change the classification field to '''shape_area'''&lt;br /&gt;
* Set the '''number of classes''' to 5&lt;br /&gt;
* Click the '''classify''' button&lt;br /&gt;
* Click the '''Apply''' button&lt;br /&gt;
&lt;br /&gt;
You should see the shapes in the main window have now adopted a range of scintillating colours! However is you add that layer to another QGIS project you would normally have to do all this work again! Qml to the rescue.&lt;br /&gt;
&lt;br /&gt;
* Save your symbology settings by clicking the '''save as default''' button&lt;br /&gt;
&lt;br /&gt;
Ok lets test it out!&lt;br /&gt;
&lt;br /&gt;
* Close QGIS&lt;br /&gt;
* Reopen QGIS&lt;br /&gt;
* Add the Dams layer from the Postgresql 'Workshop' database&lt;br /&gt;
&lt;br /&gt;
If the planets are correctly aligned, your dams will appear all beautifully coloured according to your personal preference.&lt;br /&gt;
&lt;br /&gt;
If you want to you can also save your settings as non-default, and them restore them by selecting a .qml file again later. Refer to the '''Load style''' and '''Save style''' buttons on the vector properties dialog.&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
Ok give it a whirl, create default appearances for your other layers stored in your PostGIS database. Also try experimenting with the other legend types such as '''Continuous Colour''' and '''Unique Value'''. &lt;br /&gt;
Once you have set your default appearances, close QGIS and then reopen it. Now add all your PostGIS layers to the blank project and they should all magically appear with your preferred appearance.&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
The '''Layer Properties''' dialog in QGIS will let you specify the '''default appearance''' for a layer.&lt;br /&gt;
&lt;br /&gt;
=== ''Setting Projections'' ===&lt;br /&gt;
Projections are a mathematical way of transforming latitude and longitude coordinates into a form that can be meaningfully used in a map.  Sources to be added.&lt;br /&gt;
Some projections in common use in South Africa are the Albers Equal Area, Lamberts Conformal Conic and Gauss (LO) projections.&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
* Make sure that you are zoomed in to Gauteng.&lt;br /&gt;
* From the File menu, select Project Properties.&lt;br /&gt;
  File -&amp;gt; Project Properties&lt;br /&gt;
* Activate the Coordinate Reference System tab&lt;br /&gt;
* Check &amp;quot;Enable &amp;quot;on the fly&amp;quot; CRS Transformation&lt;br /&gt;
* Note that the current Coordinate Reference System is WGS84, which is a standard for displaying geographic coordinates.&lt;br /&gt;
* Look at the column EPSG - this a standard for identifying coordinate systems.  When you have selected a coordinate system you can always find it again quickly by noting the EPSG code and entering it into the '''Find box''' at the bottom of the form.&lt;br /&gt;
* Highlight the ''Projected Coordinate Systems&amp;quot; heading, and double-click to open the list.&lt;br /&gt;
* Scroll down and highlight the &amp;quot;Universal Transverse Mercator&amp;quot; heading.&lt;br /&gt;
* Select the '''Name''' radio button.&lt;br /&gt;
* Enter &amp;quot;33S&amp;quot; in the text box, and press find.  Keep pressing find until you get to &amp;quot;WGS 84/UTM Zone 33&amp;quot;.  &lt;br /&gt;
 Or select the EPSG ID radio button, enter 32733 and press the Find button.    Isn't that easier?&lt;br /&gt;
* Notice that the overall shape of the country has changed due to the projection.&lt;br /&gt;
* Zoom into Gauteng again.  Move your cursor and look at the coordinates shown at the bottom of the screen.  Notice how they have changed.  They are now in meters rather than decimal degrees.&lt;br /&gt;
&lt;br /&gt;
=== Now You Try! ===&lt;br /&gt;
First of all try a related projection such as UTM Zone 34S or UTM 38S, and see what the impact is.  Move your cursor around - how do the coordinates differ from ones shown under UTM 36S?&lt;br /&gt;
&lt;br /&gt;
Then try one of the Stereographic South projections, such as EPSG=3031,  for a very different view of South Africa!&lt;br /&gt;
&lt;br /&gt;
QGIS calculates the effect of the projection before displaying the data and doesn't make any changes, so you can try anything you like!&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
You have learnt how to set an on-the-fly projection for display in QGIS, and how to use EPSG codes to rapidly find a specific projection. Remember, if you are trying to develop a map for use in the field you will need to use a projection specific to South Africa.&lt;br /&gt;
&lt;br /&gt;
=== ''Editing Vector Data'' ===&lt;br /&gt;
Have a look at the boundary of the Eastern and Western Cape on the coast.  The rivers and provincial boundary seem to follow each other closely. Now zoom right in and notice how the provincial boundary is much more detailed than the rivers, and they don't follow each other well at all.&lt;br /&gt;
&lt;br /&gt;
QGIS to the rescue!&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
* Select the rivers layer in the Legend panel on the left.&lt;br /&gt;
* Click on the blue Pencil icon on the leftmost toolbar on the bottom row or &amp;lt;menu option&amp;gt;.  &lt;br /&gt;
* Now click on the &amp;lt;edit vertices&amp;gt; icon. Notice how the river lines have suddenly sprouted small circles wherever the line changes direction.  These are the vertices - if you have used a drawing program before you might have seen something like this. &lt;br /&gt;
* Drag the vertices of the rivers to align with the provincial boundary.&lt;br /&gt;
 Notice that we don't have enough vertices to do this exactly.&lt;br /&gt;
* Click on the add vertices icon.  Now click on the river wherever more vertices are needed.  &lt;br /&gt;
* When you have enough vertices go back to &amp;quot;Edit Vertices&amp;quot; and move them where they need to be.&lt;br /&gt;
* Now save you changes using &amp;lt;&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Now You Try! ===&lt;br /&gt;
Go to Gauteng and bring up the JPEG map sheets behind the roads.  Have a look at the roads and notice where the vectors are not aligned with the base map.  Use the edit features to correct the roads vectors.&lt;br /&gt;
&lt;br /&gt;
Then look at the rivers and provincial boundaries again.  See if you can find another place where the two are not aligned.  Experiment with the Snapping Options under Project Properties.  Use the Measure Length tool to decide on reasonable initial tolerance values.&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Africa]]&lt;/div&gt;</summary>
		<author><name>Wiki-Brendonwp</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=AfricaEvents29November2008&amp;diff=32742</id>
		<title>AfricaEvents29November2008</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=AfricaEvents29November2008&amp;diff=32742"/>
		<updated>2008-12-01T08:51:18Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Brendonwp: /* Now You Try! */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;...back to [[Africa_Local_Chapter]]&lt;br /&gt;
&lt;br /&gt;
= What? =&lt;br /&gt;
&lt;br /&gt;
Our first OSGeo local chapter meet up! We will chew the cud, show you some cool stuff and start to get people familiar with the brilliant FOSS GeoSpatial products out there!&lt;br /&gt;
&lt;br /&gt;
We'll go through installing some software and getting it to a point where you can have fun with it. &lt;br /&gt;
&lt;br /&gt;
= How Much? =&lt;br /&gt;
&lt;br /&gt;
There will be a door charge of R50 to cover costs &amp;amp; refreshments. That and an open mind are all you need to bring. If you're staying for the QGIS session in the afternoon you can bring your laptop (Windows, Linux or Mac!)&lt;br /&gt;
&lt;br /&gt;
= Where? =&lt;br /&gt;
&lt;br /&gt;
 St Davids Marist Inanda College&lt;br /&gt;
 36 Rivonia Rd&lt;br /&gt;
 Inanda&lt;br /&gt;
 Sandton&lt;br /&gt;
[http://www.stdavids.co.za/about_directions.asp Map and Directions]&lt;br /&gt;
&lt;br /&gt;
NB: We'll be in the Prep School computer lab.&lt;br /&gt;
&lt;br /&gt;
= When? =&lt;br /&gt;
&lt;br /&gt;
* November 29th&lt;br /&gt;
* Presentation and workshop segment: 9am to 12pm&lt;br /&gt;
* QGIS Bug Party! 12h30 onwards&lt;br /&gt;
&lt;br /&gt;
= Who =&lt;br /&gt;
&lt;br /&gt;
Your friendly presenters for the day will be:&lt;br /&gt;
&lt;br /&gt;
* '''Tim Sutton''' (tim at linfiniti.com) - QGIS hacker and FOSS GIS junkie extraordinaire. Tim eats Weetbix for breakfast because it sounds like Linux. He once rewrote Nkosi Sikelela in C++ because he was feeling patriotic.&lt;br /&gt;
* '''Graeme McFerren''' - (graeme.mcferren at gmail.com) - GIS researcher and FOSS4G user. Mmm, aspire to be like Tim then.&lt;br /&gt;
* '''Gavin Fleming''' (gavinjfleming at gmail dot com) - I enjoy my daily FOSS4G fix and telling people how great it was. I'm a 'geoinformation scientist' at Mintek and love to see cutting edge and useful geospatial applications emerging. &lt;br /&gt;
* '''Brendon Wolff-Piggott''' - (brendon at integratedgeodata.co.za) - Water resources consultant and FOSS GIS enthusiast.  I wish there were more hours in the day to keep up with FOSS4G!&lt;br /&gt;
&lt;br /&gt;
= RSVP =&lt;br /&gt;
Let gavinjfleming at gmail dot com know if you're coming as numbers are limited. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= QGIS Bug Party =&lt;br /&gt;
&lt;br /&gt;
As a preview release there are still various bugs that need resolving and various elements (e.g. translation) that may be incomplete. On Saturday the 29th in Johannesburg, South Africa, members from the Africa OSGeo chapter will be holding a QGIS Bug Hunt Party. We would like to invite people from around the world to virtually participate. Each person attending will get a free copy of QGIS 1.0.0 Preview 2 absolutely free of charge! Sorry no shrink wrap copies available. Preview 2 is the second in a series of preview releases we are making before we release the Stable QGIS 1.0.0 with long term support. &lt;br /&gt;
We are going to great lengths to polish up QGIS 1.0 for you (inside and out) and we really appreciate all the feedback we have received thus far. Its virtually impossible to ship any software completely bug free, but with your help we can add just a little more shine to the polish! We need your help to:&lt;br /&gt;
&lt;br /&gt;
* test on different machine configurations (bring your laptops!)&lt;br /&gt;
* validate existing bugs on each platform&lt;br /&gt;
* mark bugs that can no longer be replicated as ready for closure&lt;br /&gt;
* create new tickets for bugs that have not been reported yet (please search first to avoid posting duplicates!)&lt;br /&gt;
* mark bugs that are duplicates&lt;br /&gt;
* provide additional diagnostics so that developers can replicate issues&lt;br /&gt;
&lt;br /&gt;
The idea is not to try to *fix* the bugs, but rather to do a QA session on the bugs in the bug tracker. In the process you will learn how to interact with an Open Source project the Right Way i.e. filing good quality bug reports.&lt;br /&gt;
&lt;br /&gt;
I will start off with a simple show and tell covering:&lt;br /&gt;
* where to find the QGIS (and other OSGeo projects bug tracking sites)&lt;br /&gt;
* creating an account so you can file non-anonymous bugs and feedback on any OSGeo project bug tracker&lt;br /&gt;
* how the bug tracking system works - what the various input fields in the QGIS tracker mean&lt;br /&gt;
&lt;br /&gt;
The approach will be to start by going through any bugs that have not been revised recently, adding additional status information. If you think the bug is fixed, add a comment:&lt;br /&gt;
&lt;br /&gt;
'''Works for me now, recommend closure, &amp;lt;Your Name&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
If you can replicate the bug, add a comment like:&lt;br /&gt;
&lt;br /&gt;
'''Can replicate, OS: Ubuntu 8.10, QGIS Preview 2, &amp;lt;Your Name&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Use your initiative to deal with tickets that don't fit into the categories above, following a similar approach.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After that I will turn you loose on the queue and a shiny copy of QGIS preview 2 and let you have at it. Party is over when the last man falls asleep at the keyboard! Ok probably we will finish at between 4:30pm and 5pm if my wife has anything to do with it!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We look forward to seeing you at the QGIS Bug Party!!!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Programme in a nutshell =&lt;br /&gt;
&lt;br /&gt;
* Be there in time for a 9am start&lt;br /&gt;
* Morning session: Introducing QGIS, PostGIS, GeoServer, uDig&lt;br /&gt;
* Afternoon session: QGIS Bug Party&lt;br /&gt;
&lt;br /&gt;
Note: There will be frequent rest breaks and lots of time to ask questions!&lt;br /&gt;
&lt;br /&gt;
'''1. Welcome, Introduction and Overview: Starting up (5 minutes)'''&lt;br /&gt;
&lt;br /&gt;
What am I looking at here? What do I need to do to get started?&lt;br /&gt;
&lt;br /&gt;
'''2. QGIS: Opening and viewing spatial data. Your first map. (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
What can I look at? How do I set up a simple map?  Toolbars and Plug-ins. &lt;br /&gt;
&lt;br /&gt;
'''3. PostGIS: Why use PostGIS? Simple example of loading data. (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
Why use a spatial database? What does one look like? How do I populate a spatial database and where does my data live?&lt;br /&gt;
&lt;br /&gt;
'''4. QGIS: Looking at PostGIS data from QGIS.  (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
View a PostGIS database from QGIS.  Setting up data definitions for PostGIS sources.  Loading data into PostGIS with the Spit Loader (no, please don't touch the screen!)&lt;br /&gt;
&lt;br /&gt;
'''5. PostGIS: More than a place to dump data... (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
PostGIS is not just good for storing data, one can manipulate it too! GIS can be done inside the database, which is rather nice when you think about it.&lt;br /&gt;
&lt;br /&gt;
'''6. uDig: Why uDig?  GIS and the Web.  (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
Getting GIS data ready for presentation on the Web! Editing SLDs.&lt;br /&gt;
&lt;br /&gt;
'''7. GeoServer: Tell everyone about it!  (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
Displaying GIS data on the web.  Grouped WMS.  Scale-dependent rendering.&lt;br /&gt;
&lt;br /&gt;
'''8. And more QGIS.'''&lt;br /&gt;
&lt;br /&gt;
Detail on symbology.  Topological editing. QML, SPD and Openlayers.  (15 minutes)&lt;br /&gt;
&lt;br /&gt;
'''9. Show off session'''&lt;br /&gt;
&lt;br /&gt;
Here we can do some whizz bang demo stuff that we don't have time to do in  workshop format but that will give you some hints as to what else can be achieved.&lt;br /&gt;
&lt;br /&gt;
'''10. General'''&lt;br /&gt;
&lt;br /&gt;
Questions and answers.  What you can do next.  Resources.  Possibly some in-depth examples based on frequent questions.  What would you like to see at future workshops?&lt;br /&gt;
&lt;br /&gt;
'''11. Your assessment of the workshop'''&lt;br /&gt;
&lt;br /&gt;
Tell us what you thought!&lt;br /&gt;
&lt;br /&gt;
= Workshop Notes =&lt;br /&gt;
&lt;br /&gt;
== Welcome, introductions and overview ==&lt;br /&gt;
&lt;br /&gt;
== Lets make a map - First steps with QGIS ==&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
* Open QGIS using the icon on the top Gnome Panel&lt;br /&gt;
* From the Layer menu, select '''Add Vector Layer'''&lt;br /&gt;
  Layer -&amp;gt; Add Vector Layer&lt;br /&gt;
* A dialog box will appear&lt;br /&gt;
* Navigate to &lt;br /&gt;
  /home/workshop/gisdata/za/brits/SAExplorer/&lt;br /&gt;
* Add the following layer :&lt;br /&gt;
  Provinces.shp&lt;br /&gt;
* Experiment with the '''map navigation toolbar''' to zoom in / out, pan, select etc features.&lt;br /&gt;
* Open the '''Layer properties dialog'''. There are several ways you can do this:&lt;br /&gt;
  1) Select the layer in the legend and then from the menu do Layer -&amp;gt; Properties&lt;br /&gt;
  or&lt;br /&gt;
  2) Right click on the layer in the legend and choose Properties from the context menu&lt;br /&gt;
  or&lt;br /&gt;
  3) Double click on the layer in the legend&lt;br /&gt;
* Familiarise yourself with the various panels in the vector properties dialog.&lt;br /&gt;
* Select the '''Symbology''' tab (second from the left)&lt;br /&gt;
* From the '''Style Options''' panel, choose a pleasing '''fill colour''' for the provinces then &lt;br /&gt;
  Click OK&lt;br /&gt;
&lt;br /&gt;
Or you can:&lt;br /&gt;
* Select the '''Legend Type''' as ''Unique Value''.  &lt;br /&gt;
* Set the '''Classification field''' to ''PROVNAME''&lt;br /&gt;
* Click on the '''Classify''' button to set '''different colours for each province'''.&lt;br /&gt;
  Click OK&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
'''Add''' the following layers (also from the /home/workshop/gisdata/za/brits/SAExplorer/ directory)&lt;br /&gt;
&lt;br /&gt;
  Transport_NationalRoads.shp&lt;br /&gt;
  Transport_Railways.shp&lt;br /&gt;
  RSATowns.shp&lt;br /&gt;
  Dams.shp&lt;br /&gt;
 &lt;br /&gt;
'''Zoom and pan''' around a little to explore your data'''&lt;br /&gt;
'''Symbolise''' each layer with an appropriate colour to make the most awe inspiring map.&lt;br /&gt;
&lt;br /&gt;
Activate the '''Identify features''' icon on the middle toolbar to identify the attribute values associated with a spatial feature for the layer highlighted in the Legend Box.&lt;br /&gt;
&lt;br /&gt;
Activate the '''Select Features''' icon next to Identify Features to select one or more features.  &lt;br /&gt;
&lt;br /&gt;
Open the attribute table to view all feature attributes. Note that selected features will have highlighted rows in the attribute table.  You can do this using the neighbouring '''Open Attribute Table''' icon, or by selecting the Open Attribute Table option on the context menu for the layer in the legend using right-click on the mouse.&lt;br /&gt;
&lt;br /&gt;
You can also select rows in the attribute table by:&lt;br /&gt;
* Left-clicking on the desired rows.&lt;br /&gt;
* Using the '''Search''' box at the bottom-left of the form.&lt;br /&gt;
* Selecting the '''Advanced''' button and opening the '''Search Query Builder'''. &lt;br /&gt;
&lt;br /&gt;
Save your project using &lt;br /&gt;
 File -&amp;gt; Save&lt;br /&gt;
&lt;br /&gt;
And put it into&lt;br /&gt;
 /home/workshop/gisdata/brits.qgs&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
In ten minutes you now know how to '''add vector layers''' into QGIS, '''pan and zoom''' to navigate the map, and set the colour of vectors using the '''Single Symbol''' or '''Unique Values''' options in the '''Layer Properties'''.&lt;br /&gt;
&lt;br /&gt;
You have also learnt how to use the interactive '''Identify''' and '''Select''' functions, '''opened attribute tables''' and found out how to '''search''' them.&lt;br /&gt;
&lt;br /&gt;
== More on QGIS Mapping ==&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
Add the vector layer '''Education_Schools2000.shp''' from the SAExplorer directory.  Notice how dense the points are!&lt;br /&gt;
&lt;br /&gt;
* Right-click on the schools layer in the Legend frame.&lt;br /&gt;
* Select '''Properties'''&lt;br /&gt;
* Select the '''General tab'''&lt;br /&gt;
* Check '''Use scale dependent rendering'''&lt;br /&gt;
* Set the maximum field to 1000000&lt;br /&gt;
&lt;br /&gt;
* Zoom out to view the whole country.    '''Notice that the schools no longer appear on the map!''' &lt;br /&gt;
* Now start zooming in, keeping an eye on the scale shown in the '''scale box''' at the bottom of the screen.&lt;br /&gt;
&lt;br /&gt;
 Notice how the schools points reappear when the scale decreases below 1:1000000&lt;br /&gt;
 &lt;br /&gt;
* From the Layer menu, select '''Add Raster Layer'''&lt;br /&gt;
  Layer -&amp;gt; Add Raster Layer&lt;br /&gt;
* A dialog box will appear&lt;br /&gt;
* Navigate to &lt;br /&gt;
  /home/workshop/gisdata/za/gauteng/&lt;br /&gt;
* Add the following layer :&lt;br /&gt;
 SOU-8_satellite.tif&lt;br /&gt;
&lt;br /&gt;
Notice that the image is largely in shades of greyish-brown, but that a dam can be seen towards the bottom of the image. &lt;br /&gt;
&lt;br /&gt;
* Open the Properties for the raster layer, in a similar way to that used for vector layers.&lt;br /&gt;
 Layer -&amp;gt; Properties&lt;br /&gt;
* Select the '''Transparency''' tab.&lt;br /&gt;
* Using the slider, set transparency to 25%&lt;br /&gt;
* Click OK&lt;br /&gt;
Notice how the you can now see the vector layers behind the satellite image.&lt;br /&gt;
 &lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
If you have not already done so, add the vector layers Transport_NationalRoads.shp and Transport_Mainroads.shp from /home/workshop/gisdata/za/brits/SAExplorer.&lt;br /&gt;
Set scale-dependent rendering so that the national roads display at all scales, while the main roads are only shown when you are zoomed in. &lt;br /&gt;
&lt;br /&gt;
Go to the satellite image properties, Symbology tab.  Try the different &amp;quot;Render as&amp;quot; options.  Then when you have found the one that suits you, have a look at the &amp;quot;Contast Enhancement&amp;quot; options.  Compare &amp;quot;No Stretch&amp;quot; and &amp;quot;Stretch to MinMax&amp;quot;.  &lt;br /&gt;
&lt;br /&gt;
Try &amp;quot;Render as Single Band Grey&amp;quot;.  Set the &amp;quot;Custom min/max values&amp;quot; radio button.  Change the Min and Max values.  Go to &amp;quot;Contract Enhancement&amp;quot; again and set it to &amp;quot;Stretch and Clip to MinMax&amp;quot;, and see the effect.&lt;br /&gt;
&lt;br /&gt;
Add raster images of 1: 50 000 map sheets from &amp;quot; /home/workshop/gisdata/za/brits/toposheet images&amp;quot; &lt;br /&gt;
You will need to set the Files of Type box to '''JPEG JFIF''' to see them, before you can select them.&lt;br /&gt;
Set their transparency to a value that allows you to see the vector features behind them.  Zoom in and look at how the vector features and image features match (or not!).&lt;br /&gt;
&lt;br /&gt;
Notice how you can zoom right in to vector data, and a point remains a point and a line remains a line.  When you zoom in to the satellite image it rapidly appears &amp;quot;blocky&amp;quot; compared to the 50 000 map sheets. Zoom in enough and even the map sheet raster blocks can be seen.  This is a basic difference between vector and raster data.&lt;br /&gt;
&lt;br /&gt;
=== What have I learnt? ===&lt;br /&gt;
&lt;br /&gt;
You have learnt to set scale-dependent rendering so that data sets are displayed at appropriate scales, how to add raster data and set raster display options.&lt;br /&gt;
&lt;br /&gt;
== Shapefiles shmapefiles....real (wo)men store their data in PostGIS ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
* '''Create''' a new PostgreSQL database. To do this, open the terminal application (icon to the right of Firefox icon on the top menu bar). Now at the prompt type the following command:&lt;br /&gt;
  createdb workshop&lt;br /&gt;
&lt;br /&gt;
* '''Verify''' your database exists (once again type this into the terminal)&lt;br /&gt;
  psql -l&lt;br /&gt;
* You should see something like this:&lt;br /&gt;
 workshop@heron:~$ psql -l&lt;br /&gt;
        List of databases&lt;br /&gt;
   Name    |  Owner   | Encoding &lt;br /&gt;
 -----------+----------+----------&lt;br /&gt;
 postgres  | postgres | UTF8&lt;br /&gt;
 template0 | postgres | UTF8&lt;br /&gt;
 template1 | postgres | UTF8&lt;br /&gt;
 workshop  | workshop | UTF8&lt;br /&gt;
 (4 rows)&lt;br /&gt;
* away from the terminal for a while - lets look at what a non-spatial, vanilla PostgreSQL database looks like. Open pgAdmin 3  (the icon with a blue elephant face)&lt;br /&gt;
* Double-click on the icon that has a red cross next to some text &amp;quot;gis (localhost:5432)&amp;quot; and press OK if another screen comes up. The database cluster called gis expands and you should see two databases: 'postgres' and 'workshop'. Expand workshop -&amp;gt; Schemas -&amp;gt; public&lt;br /&gt;
Specifically, let us look at Functions and Tables - don't look to deeply, this is just to show the differences after PostGIS is installed on the database (you will see later). Specifically, there is nothing in the db at the moment. So minimise pgAdmin and lets crack on with getting some data in!&lt;br /&gt;
&lt;br /&gt;
* Install the PostGIS spatial data extensions (again from the terminal).&lt;br /&gt;
'''Hint''' copy and paste these from the IRC channel or the wiki page!&lt;br /&gt;
 createlang plpgsql workshop&lt;br /&gt;
 psql workshop &amp;lt; /usr/share/postgresql-8.3-postgis/lwpostgis.sql&lt;br /&gt;
 psql workshop &amp;lt; /usr/share/postgresql-8.3-postgis/spatial_ref_sys.sql&lt;br /&gt;
&lt;br /&gt;
* Yegads! What did I just do? Firstly, you installed the '''plpgsql''' procedural language extensions into your PostgreSQL database. Then you ran two sql scripts which create the '''PostGIS''' spatial extensions to your database. You only need to do this '''once''' when you create a new spatial database, so don't worry about remembering those commands off by heart.&lt;br /&gt;
* Lets upload a shapefile into the database....once more into the black hole (terminal window).&lt;br /&gt;
 cd /home/workshop/gisdata/za/brits/SAExplorer&lt;br /&gt;
 shp2pgsql -I -s 4326 Dams.shp dams | psql -d workshop&lt;br /&gt;
* Erk! What does that all mean? Lets break it down:&lt;br /&gt;
 cd /home/workshop/gisdata/za/brits/SAExplorer - go to our data directory&lt;br /&gt;
 shp2pgsql - an application that loads shapefiles into a PostGIS database&lt;br /&gt;
 -I - an option to shp2pgsql telling it to create a spatial index&lt;br /&gt;
 -s - the coordinate reference system to use, expressed as an EPSG number. 4326 is the same as Lat/Long WGS84&lt;br /&gt;
 Dams.shp - the filename of the shapefile to load&lt;br /&gt;
 dams - the table name that the data should be loaded into&lt;br /&gt;
 | psql workshop - send the results of the shp2pgsql into the psql application, workshop database&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Lets take a peek inside our database now and see what we have - back to pgAdmin, click on the 'workshop' database icon and then refresh it (red/green circular arrows icon).&lt;br /&gt;
Three major things to look at:&lt;br /&gt;
 &lt;br /&gt;
 Hundreds of Functions for working with spatial data: &lt;br /&gt;
 * geometry constructors, &lt;br /&gt;
 * spatial predicates, &lt;br /&gt;
 * geometry editors, &lt;br /&gt;
 * geometry aggregators, &lt;br /&gt;
 * geometry accessors, &lt;br /&gt;
 * measurements, &lt;br /&gt;
 * linear referencing&lt;br /&gt;
 * and outputting  of spatial data. &lt;br /&gt;
 &lt;br /&gt;
 2 important meta-tables: (expand the Tables object)&lt;br /&gt;
 * geometry_columns (for describing the different spatial datasets) - right-click -&amp;gt; &lt;br /&gt;
 * and spatial_ref_sys(a list of projections/coordinate systems and different representations thereof)&lt;br /&gt;
&lt;br /&gt;
 A 'dams' table which, when expanded should show a bunch of Columns, Constraints (e.g. Primary Key), Indexes, Rules and Triggers. &lt;br /&gt;
 * Note the geometry type of column 'the_geom'. &lt;br /&gt;
 * Also note the spatial index present - this allows for optimal retrieval of data based on the spatial properties of the data.&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
'''Load''' the following layers (also from the /home/workshop/gisdata/za/brits/SAExplorer/ directory)&lt;br /&gt;
&lt;br /&gt;
 Hydrology_DWAFRivers.shp -&amp;gt; call the table 'rivers'&lt;br /&gt;
 Transport_Mainroads.shp -&amp;gt; call the table 'roads'&lt;br /&gt;
 ProvincialBoundary.shp -&amp;gt; call the table 'provinces'&lt;br /&gt;
&lt;br /&gt;
And to show that this can scale a bit, let us load in the background a dataset of over 350 000 points (which we will use a bit later)&lt;br /&gt;
 * cd /home/workshop/gisdata/za/fire/modis_af/&lt;br /&gt;
 * shp2pgsql -I -s 4326 modis_af.shp fires | psql -d workshop  &amp;amp;&amp;gt; /dev/null (puts output into background)&lt;br /&gt;
 * shp2pgsql -I -s -D 4326 modis_af.shp fires | psql -d workshop (simpler and faster)&lt;br /&gt;
&lt;br /&gt;
=== Super duper advanced ===&lt;br /&gt;
&lt;br /&gt;
What if I want to load a batch of shapefiles in a directory in 1 go? Try this nifty bash script one liner!&lt;br /&gt;
&lt;br /&gt;
 for FILE in `ls *.shp`; do TABLE=`echo $FILE | sed 's/\.shp//g'`; echo $TABLE;shp2pgsql -I -s 4326 $FILE $TABLE | psql -d workshop; done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This takes a while so lets move on.&lt;br /&gt;
&lt;br /&gt;
=== What have I learnt? ===&lt;br /&gt;
&lt;br /&gt;
* PostgreSQL is an enterprise-ready relational database management system - and it's Free and Open Source Software&lt;br /&gt;
* You can create a new database using the '''createdb''' command.&lt;br /&gt;
* '''PostGIS''' is a add-on to PostgreSQL that lets you store spatial data and carry out spatial analysis within the database.&lt;br /&gt;
* In order to set up PostGIS you need to run a couple of SQL scripts&lt;br /&gt;
* '''shp2pgsql''' is a command line application that lets you load shapefiles into your spatial datastore&lt;br /&gt;
&lt;br /&gt;
== Using PostGIS data from QGIS ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
Once your data is in PostGIS, its easy to share across your organisation. Because it's in a database you get row level locking (instead of file locking in a shapefile), so many users can be editing and viewing data at the same time. There are many clients that let you visualise your PostGIS data..lets take a look at how we do it in QGIS.&lt;br /&gt;
&lt;br /&gt;
* Open QGIS&lt;br /&gt;
* Start a new project&lt;br /&gt;
  File -&amp;gt; New Project&lt;br /&gt;
* Add a PostGIS layer&lt;br /&gt;
  Layer -&amp;gt; Add PostGIS Layer&lt;br /&gt;
* From the connections list, choose '''workshop'''&lt;br /&gt;
  Click connect&lt;br /&gt;
* In the table list, click on '''dams'''&lt;br /&gt;
  Click Add&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
* Add the following layers from your database&lt;br /&gt;
 rivers&lt;br /&gt;
 roads&lt;br /&gt;
 provinces&lt;br /&gt;
&lt;br /&gt;
* set some nice colors for your layers - notice how the process is exactly the same as when setting colours for a shapefile.&lt;br /&gt;
&lt;br /&gt;
* save your project into&lt;br /&gt;
&lt;br /&gt;
 /home/workshop/gisdata/brits_pg.qgs&lt;br /&gt;
&lt;br /&gt;
=== What have I learnt? ===&lt;br /&gt;
&lt;br /&gt;
* You can '''visualise''' PostGIS spatial database tables inside QGIS&lt;br /&gt;
* To add a PostGIS layer, use the '''Layer -&amp;gt; Add PostGIS Layer''' menu option.&lt;br /&gt;
* Once a PostGIS layer, you can treat it just like any other (e.g. shapefile) layer&lt;br /&gt;
* Your presenters are truly amazing....however would I have figured this stuff out for my self :-)&lt;br /&gt;
&lt;br /&gt;
== More on PostGIS Data in QGIS ==&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
* Click on the '''Blue Elephant''' icon in the middle toolbar row to start SPIT loader.&lt;br /&gt;
* Select the PostgreSQL Connection as &amp;quot;workshop&amp;quot;.&lt;br /&gt;
* Click on Connect to verify your connection&lt;br /&gt;
* Now click &amp;quot;Add&amp;quot; - the &amp;quot;Add Shapefile&amp;quot; dialog box comes up. &lt;br /&gt;
&lt;br /&gt;
Navigate to /home/workshop/gisdata/za/brits/SAExplorer.&lt;br /&gt;
&lt;br /&gt;
* Select &amp;quot;Rsatowns.shp&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 Click &amp;quot;Open&amp;quot;.  PostGIS scans the file and lists it in the display frame.&lt;br /&gt;
&lt;br /&gt;
 Click &amp;quot;OK&amp;quot;.  QGIS loads the shapefile data into PostGIS with no need to use the terminal!&lt;br /&gt;
&lt;br /&gt;
* Use Layer -&amp;gt; Add PostGIS Layer to load the layer from PostGIS directly into QGIS.  &lt;br /&gt;
&lt;br /&gt;
* Now add the rivers PostGIS layer to QGIS to see another advantage of using PostGIS layers.&lt;br /&gt;
* Open the Layer properties form.  &lt;br /&gt;
* On the General tab, click &amp;quot;Query Builder&amp;quot; near the bottom right-hand corner. This opens the Query Builder. &lt;br /&gt;
* Click Field &amp;quot;RIVER_CLAS&amp;quot;.&lt;br /&gt;
* Click the &amp;quot;All&amp;quot; button under the &amp;quot;Values&amp;quot; frame.&lt;br /&gt;
* Build the Query &lt;br /&gt;
 &amp;quot;RIVER_CLAS&amp;quot; LIKE 'Perennial' OR &amp;quot;RIVER_CLAS&amp;quot; LIKE 'Perennial river'&lt;br /&gt;
* Click &amp;quot;Test&amp;quot; to check that it will work.&lt;br /&gt;
* Click &amp;quot;OK&amp;quot; twice to apply it.&lt;br /&gt;
&lt;br /&gt;
Now look at the display - the query has not merely highlighted the selected features, it has filtered the non-selected features out so that they are not displayed.  &lt;br /&gt;
&lt;br /&gt;
=== Now you try ===&lt;br /&gt;
&lt;br /&gt;
* Try loading other layers into PostGIS using the Spit loader.&lt;br /&gt;
* Load these into QGIS, and use the &amp;quot;Query Builder&amp;quot; to define the data sets that you want to see.&lt;br /&gt;
* You could define the non-perennial rivers as a separate data set, and use scale-dependent rendering to show them only when you zoom right in.&lt;br /&gt;
&lt;br /&gt;
=== What I have learnt ===&lt;br /&gt;
&lt;br /&gt;
How to rapidly load data into postgis using the spit loader.  How to set up data queries to filter spatial data display from postgis.&lt;br /&gt;
&lt;br /&gt;
== The Zen of PostGIS - not just a pretty place to store data! ==&lt;br /&gt;
&lt;br /&gt;
Okay, we will go a bit deeper into the woods here! We want to show that with some SQL (I won't say simple) you can do some complex - and repeatable - spatial analysis right inside your database, and then visualise the results in various clients.&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
We will use pgAdmin (your great PostgreSQL friend) to get this happening. Click on the Tables object of your workshop db. Then Tools -&amp;gt; Query tool from the menu. This should present a dialog box with 3 panels.&lt;br /&gt;
&lt;br /&gt;
We are going to do a simple intersection to get started.&lt;br /&gt;
In the top left panel paste &lt;br /&gt;
 SELECT roads.gid, roads.code, roads.route_nr, roads.shape_leng, roads.the_geom FROM roads, rivers WHERE (roads.the_geom &amp;amp;&amp;amp; rivers.the_geom AND intersects(roads.the_geom, rivers.the_geom));&lt;br /&gt;
and click Query -&amp;gt; Execute&lt;br /&gt;
This should take a few seconds, then you will see a result returned into the Data Output grid. Something like 3338 rows are returned from the original roads dataset of 11964.&lt;br /&gt;
&lt;br /&gt;
So what is going on here?&lt;br /&gt;
&lt;br /&gt;
You are performing a spatial overlay with a SQL query, asking the database to return records from the roads table that spatially intersect records from the rivers table. &lt;br /&gt;
* the &amp;amp;&amp;amp; operator is a fast bounding box 'overlaps' test that takes advantage of the spatial indexes of the table to narrow the search space for the true intersection test.&lt;br /&gt;
* the intersects part of the query tests the geometries of the subset selected above for spatial intersection and returns a result.&lt;br /&gt;
&lt;br /&gt;
To show some other functionality, paste the following text into the query window and execute:&lt;br /&gt;
 ALTER TABLE roads DROP CONSTRAINT enforce_srid_the_geom;UPDATE geometry_columns SET srid = 4148 WHERE f_table_name = 'roads';COMMIT; UPDATE roads SET the_geom = ST_Transform(the_geom,4148);COMMIT; ALTER TABLE roads ADD CONSTRAINT enforce_srid_the_geom CHECK (srid(the_geom) = 4148);&lt;br /&gt;
We are being good South African GIS types and using our Haartebeesthoek94 Datum. Lets do the same for rivers:&lt;br /&gt;
 ALTER TABLE rivers DROP CONSTRAINT enforce_srid_the_geom;UPDATE geometry_columns SET srid = 4148 WHERE f_table_name = 'rivers';COMMIT; UPDATE rivers SET the_geom = ST_Transform(the_geom,4148);COMMIT; ALTER TABLE rivers ADD CONSTRAINT enforce_srid_the_geom CHECK (srid(the_geom) = 4148);&lt;br /&gt;
&lt;br /&gt;
This looks fairly intense, but the main points are the changing of the data in the geometry_columns meta-table and then updating the geometries in each table to a different CRS (4148, or Haartebeesthoek94). We demonstrate the use of the UPDATE SQL command, used to change data in the database, and the use of the ST_Transform function of PostGIS, which does the work. Now lets try the original query again:&lt;br /&gt;
 SELECT roads.gid, roads.code, roads.route_nr, roads.shape_leng, roads.the_geom FROM roads, rivers WHERE st_intersects(roads.the_geom, rivers.the_geom);&lt;br /&gt;
...which returns the same number of features, but in our own CRS. Note that we have used the ST_Intersects function rather than the Intersects function as previously shown. ST_ type functions are more standards compliant, so should be used in place of the older style functions.&lt;br /&gt;
Ideally we would project the data as appropriate, using the very same technique, but substituting 4148 for the EPSG code for our projection of choice. This is a demo though, folks, so I will get away with murder...&lt;br /&gt;
Lets quickly repeat the process for the other datasets we will use in a minute:&lt;br /&gt;
 ALTER TABLE provinces DROP CONSTRAINT enforce_srid_the_geom;UPDATE geometry_columns SET srid = 4148 WHERE f_table_name = 'provinces';COMMIT; UPDATE provinces SET the_geom = ST_Transform(the_geom,4148);COMMIT; ALTER TABLE provinces ADD CONSTRAINT enforce_srid_the_geom CHECK (srid(the_geom) = 4148);&lt;br /&gt;
 ALTER TABLE fires DROP CONSTRAINT enforce_srid_the_geom;UPDATE geometry_columns SET srid = 4148 WHERE f_table_name = 'fires';COMMIT; UPDATE fires SET the_geom = ST_Transform(the_geom,4148);COMMIT; ALTER TABLE fires ADD CONSTRAINT enforce_srid_the_geom CHECK (srid(the_geom) = 4148);&lt;br /&gt;
&lt;br /&gt;
So, while that goes ahead (it will take a minute or so to transform 350k points), let us think out another analysis. Lets make it a bit tricky. Okay, we want to create a table for serving up data to the outside world (Gavin will do this later) that has all the intense fires in Gauteng or NorthWest Province, that have occurred within 3000 metres of a main road. There are many ways to skin this cat in PostGIS, so I will pick a method and explain why I did so.&lt;br /&gt;
First, a convenience table is created:&lt;br /&gt;
 SELECT roads.gid, ST_Buffer(roads.the_geom,0.027) AS geom INTO roads_buffer FROM roads, (SELECT * FROM provinces WHERE prov_code = 'GT' OR prov_code = 'NW') AS prov WHERE ST_Within(roads.the_geom, prov.the_geom);&lt;br /&gt;
This is a table of polygons representing ~3000 metre road buffers, and note the use of the function to populate the geometry_columns meta-table with our new layer.&lt;br /&gt;
 SELECT DISTINCT fires.gid, fires.frp, fires.acqdatetim, fires.the_geom INTO fires_analysis_3000m FROM fires, (SELECT * FROM provinces WHERE prov_code = 'GT' OR prov_code = 'NW') AS prov, roads_buffer  WHERE fires.frp &amp;gt; 200 AND ST_Within(fires.the_geom, prov.the_geom) AND ST_Within(fires.the_geom, roads_buffer.geom);&lt;br /&gt;
The main feature of this query is the longish WHERE clause, which tests weather the fire is intense, whether it falls within Gauteng or NW Province and whether the fire occurred within appx 3000 metres of one of our main roads.&lt;br /&gt;
&lt;br /&gt;
There are not too many fires that fall out of this analysis, but it shows how we have relatively easily worked with and reduced a large dataset to a few points. These queries can be further tuned to take advantage of spatial and other indexes, but that is perhaps for another time.&lt;br /&gt;
&lt;br /&gt;
The final thing we will do is prepare this layer for use on the web...&lt;br /&gt;
 INSERT INTO geometry_columns(f_table_catalog,f_table_schema,f_table_name,f_geometry_column,coord_dimension,srid,&amp;quot;type&amp;quot;) VALUES('','public','fires_analysis_3000m','the_geom',2,4148,'MULTIPOINT');&lt;br /&gt;
Normal meta-table stuff&lt;br /&gt;
 ALTER TABLE fires_analysis_3000m ADD PRIMARY KEY (gid);&lt;br /&gt;
And if we wanted to we could add a spatial index:&lt;br /&gt;
 CREATE INDEX fires_Analysis_3000m_the_geom_gist ON fires_Analysis_3000m USING gist(the_geom);&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
Well, no you do not - but you can ask questions...&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
Well, hopefully a fair bit. You can, with a bit of practice and reading up on the matter, get PostGIS to do some rather interesting and powerful things. We have just seen a database do GIS... Some of you may be in the know about such matters, but hopefully this shows some possibilities to others.&lt;br /&gt;
&lt;br /&gt;
== uDig ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
uDig ('user-friendly desktop internet GIS') is another excellent desktop GIS. let's check out the basics&lt;br /&gt;
&lt;br /&gt;
* Open uDig&lt;br /&gt;
* start adding layers (note the variety of data that can be used)&lt;br /&gt;
** Add a PostGIS layer&lt;br /&gt;
** add a shapefile&lt;br /&gt;
* theme the layers&lt;br /&gt;
* check out the table view, catalogue and some functionality&lt;br /&gt;
&lt;br /&gt;
There's no need to save projects - you can just close uDig and it will save automatically. Note &lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
* Add the following layers from your database&lt;br /&gt;
 rivers, dams, schools, roads, more if you like&lt;br /&gt;
&lt;br /&gt;
* theme the school layer with nice symbols and labels - we're going to try scale-dependent rendering&lt;br /&gt;
**zoom in closer than 1:50000 and set the max scale to 50000&lt;br /&gt;
**on the theme dialog, click XML&lt;br /&gt;
**select the &amp;lt;rule&amp;gt;&amp;lt;/rule&amp;gt; section and copy it to a text editor.&lt;br /&gt;
**zoom out beyond 50000, go back to 'theme' and simplify your symbols, removing the labels.&lt;br /&gt;
**set the min scale to 50000&lt;br /&gt;
**click 'XML'&lt;br /&gt;
**paste the previous 'rule' into the XML, before or after the one you see.&lt;br /&gt;
**click OK! now zoom in and out past to see the result. &lt;br /&gt;
 &lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
* Viewing and rendering different formats in uDig&lt;br /&gt;
* Theming with SLD (Styled layer descriptor), the OGC standard.&lt;br /&gt;
* scale-dependent rendering&lt;br /&gt;
** with a point - we're going to come back to uDig!&lt;br /&gt;
&lt;br /&gt;
== GeoServer ==&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
 cd&lt;br /&gt;
 export JAVA_HOME=/usr&lt;br /&gt;
 cd Apps/geoserver&lt;br /&gt;
 bin/startup.sh&lt;br /&gt;
&lt;br /&gt;
* Start geoserver (normally set to start automatically and run all the time)&lt;br /&gt;
* All admin is done via the web&lt;br /&gt;
* set up a namespace&lt;br /&gt;
* set up data stores&lt;br /&gt;
* set up feature types&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
* start GeoServer&lt;br /&gt;
* click Config -&amp;gt; Data&lt;br /&gt;
* Set Namespace to any name and any url&lt;br /&gt;
* Set Datastore to your postGIS database&lt;br /&gt;
* define a FeatureType for schools, choose a point style&lt;br /&gt;
'''Styling'''&lt;br /&gt;
*Go to Data -&amp;gt; Style -&amp;gt; new&lt;br /&gt;
**give your style a name and paste in your school SLD from uDig&lt;br /&gt;
**submit&lt;br /&gt;
**Go back to FeatureTypes and Edit your schools Feature, applying your new style&lt;br /&gt;
**Check out the results in the GeoServer demo pages&lt;br /&gt;
&lt;br /&gt;
'''Group layers'''&lt;br /&gt;
* Set up a group in the 'WMS' section&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Back to uDig&lt;br /&gt;
*bring in a WMS layer from http://localhost/geoserver:8080/wms&lt;br /&gt;
*bring in the same layer as WFS&lt;br /&gt;
**theme it&lt;br /&gt;
**save it as a shapefile&lt;br /&gt;
*try this with QGIS too (and with ArcGIS back at the office!)&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
* you can use GeoServer to serve your spatial data from any source as WMS, WFS, KML and more!&lt;br /&gt;
* You can use WMS and WFS layers in a desktop GIS&lt;br /&gt;
* impress your colleagues by sending them kml links from your geoserver so they can view them live in Google Earth!&lt;br /&gt;
&lt;br /&gt;
== More Advanced QGIS Use ==&lt;br /&gt;
Here are some more things you can do with QGIS!  Don't be put off by the heading of this section, we'll take you through step-by-step as before..&lt;br /&gt;
&lt;br /&gt;
=== ''Quick Qml with QGIS'' ===&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
If you have used  ArcView before, you might have used the avl feature which lets you store the symbology settings for a layer. QGIS has a similar feature called 'qml' which lets you create default symbology settings for a layer, that will be applied when ever that layer is loaded. We are also going to take a quick peek at how to create more complex symbology for a layer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Open QGIS if its not already running.&lt;br /&gt;
* Add the dams layer from the Postgresql 'Workshop' database&lt;br /&gt;
* Double click on the layer entry in the legend&lt;br /&gt;
* Activate the symbology tab&lt;br /&gt;
* Now change the legend type to '''Graduated Symbol'''&lt;br /&gt;
* Change the classification field to '''shape_area'''&lt;br /&gt;
* Set the '''number of classes''' to 5&lt;br /&gt;
* Click the '''classify''' button&lt;br /&gt;
* Click the '''Apply''' button&lt;br /&gt;
&lt;br /&gt;
You should see the shapes in the main window have now adopted a range of scintillating colours! However is you add that layer to another QGIS project you would normally have to do all this work again! Qml to the rescue.&lt;br /&gt;
&lt;br /&gt;
* Save your symbology settings by clicking the '''save as default''' button&lt;br /&gt;
&lt;br /&gt;
Ok lets test it out!&lt;br /&gt;
&lt;br /&gt;
* Close QGIS&lt;br /&gt;
* Reopen QGIS&lt;br /&gt;
* Add the Dams layer from the Postgresql 'Workshop' database&lt;br /&gt;
&lt;br /&gt;
If the planets are correctly aligned, your dams will appear all beautifully coloured according to your personal preference.&lt;br /&gt;
&lt;br /&gt;
If you want to you can also save your settings as non-default, and them restore them by selecting a .qml file again later. Refer to the '''Load style''' and '''Save style''' buttons on the vector properties dialog.&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
Ok give it a whirl, create default appearances for your other layers stored in your PostGIS database. Also try experimenting with the other legend types such as '''Continuous Colour''' and '''Unique Value'''. &lt;br /&gt;
Once you have set your default appearances, close QGIS and then reopen it. Now add all your PostGIS layers to the blank project and they should all magically appear with your preferred appearance.&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
The '''Layer Properties''' dialog in QGIS will let you specify the '''default appearance''' for a layer.&lt;br /&gt;
&lt;br /&gt;
=== ''Setting Projections'' ===&lt;br /&gt;
Projections are a mathematical way of transforming latitude and longitude coordinates into a form that can be meaningfully used in a map.  Sources to be added.&lt;br /&gt;
Some projections in common use in South Africa are the Albers Equal Area, Lamberts Conformal Conic and Gauss (LO) projections.&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
* Make sure that you are zoomed in to Gauteng.&lt;br /&gt;
* From the File menu, select Project Properties.&lt;br /&gt;
  File -&amp;gt; Project Properties&lt;br /&gt;
* Activate the Coordinate Reference System tab&lt;br /&gt;
* Check &amp;quot;Enable &amp;quot;on the fly&amp;quot; CRS Transformation&lt;br /&gt;
* Note that the current Coordinate Reference System is WGS84, which is a standard for displaying geographic coordinates.&lt;br /&gt;
* Look at the column EPSG - this a standard for identifying coordinate systems.  When you have selected a coordinate system you can always find it again quickly by noting the EPSG code and entering it into the '''Find box''' at the bottom of the form.&lt;br /&gt;
* Highlight the ''Projected Coordinate Systems&amp;quot; heading, and double-click to open the list.&lt;br /&gt;
* Scroll down and highlight the &amp;quot;Universal Transverse Mercator&amp;quot; heading.&lt;br /&gt;
* Select the '''Name''' radio button.&lt;br /&gt;
* Enter &amp;quot;33S&amp;quot; in the text box, and press find.  Keep pressing find until you get to &amp;quot;WGS 84/UTM Zone 33&amp;quot;.  &lt;br /&gt;
 Or select the EPSG ID radio button, enter 32733 and press the Find button.    Isn't that easier?&lt;br /&gt;
* Notice that the overall shape of the country has changed due to the projection.&lt;br /&gt;
* Zoom into Gauteng again.  Move your cursor and look at the coordinates shown at the bottom of the screen.  Notice how they have changed.  They are now in meters rather than decimal degrees.&lt;br /&gt;
&lt;br /&gt;
=== Now You Try! ===&lt;br /&gt;
First of all try a related projection such as UTM Zone 34S or UTM 38S, and see what the impact is.  Move your cursor around - how do the coordinates differ from ones shown under UTM 36S?&lt;br /&gt;
&lt;br /&gt;
Then try one of the Stereographic South projections, such as EPSG=3031,  for a very different view of South Africa!&lt;br /&gt;
&lt;br /&gt;
QGIS calculates the effect of the projection before displaying the data and doesn't make any changes, so you can try anything you like!&lt;br /&gt;
&lt;br /&gt;
=== What have I learnt? ===&lt;br /&gt;
You have learnt how to set an on-the-fly projection for display in QGIS, and how to use EPSG codes to rapidly find a specific projection. Remember, if you are trying to develop a map for use in the field you will need to use a projection specific to South Africa.&lt;br /&gt;
&lt;br /&gt;
=== ''Editing Vector Data'' ===&lt;br /&gt;
Have a look at the boundary of the Eastern and Western Cape on the coast.  The rivers and provincial boundary seem to follow each other closely. Now zoom right in and notice how the provincial boundary is much more detailed than the rivers, and they don't follow each other well at all.&lt;br /&gt;
&lt;br /&gt;
QGIS to the rescue!&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
* Select the rivers layer in the Legend panel on the left.&lt;br /&gt;
* Click on the blue Pencil icon on the leftmost toolbar on the bottom row or &amp;lt;menu option&amp;gt;.  &lt;br /&gt;
* Now click on the &amp;lt;edit vertices&amp;gt; icon. Notice how the river lines have suddenly sprouted small circles wherever the line changes direction.  These are the vertices - if you have used a drawing program before you might have seen something like this. &lt;br /&gt;
* Drag the vertices of the rivers to align with the provincial boundary.&lt;br /&gt;
 Notice that we don't have enough vertices to do this exactly.&lt;br /&gt;
* Click on the add vertices icon.  Now click on the river wherever more vertices are needed.  &lt;br /&gt;
* When you have enough vertices go back to &amp;quot;Edit Vertices&amp;quot; and move them where they need to be.&lt;br /&gt;
* Now save you changes using &amp;lt;&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Now You Try! ===&lt;br /&gt;
Go to Gauteng and bring up the JPEG map sheets behind the roads.  Have a look at the roads and notice where the vectors are not aligned with the base map.  Use the edit features to correct the roads vectors.&lt;br /&gt;
&lt;br /&gt;
Then look at the rivers and provincial boundaries again.  See if you can find another place where the two are not aligned.  Experiment with the Snapping Options under Project Properties.  Use the Measure Length tool to decide on reasonable initial tolerance values.&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Africa]]&lt;/div&gt;</summary>
		<author><name>Wiki-Brendonwp</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=AfricaEvents29November2008&amp;diff=32741</id>
		<title>AfricaEvents29November2008</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=AfricaEvents29November2008&amp;diff=32741"/>
		<updated>2008-12-01T08:44:07Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Brendonwp: /* First we show you */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;...back to [[Africa_Local_Chapter]]&lt;br /&gt;
&lt;br /&gt;
= What? =&lt;br /&gt;
&lt;br /&gt;
Our first OSGeo local chapter meet up! We will chew the cud, show you some cool stuff and start to get people familiar with the brilliant FOSS GeoSpatial products out there!&lt;br /&gt;
&lt;br /&gt;
We'll go through installing some software and getting it to a point where you can have fun with it. &lt;br /&gt;
&lt;br /&gt;
= How Much? =&lt;br /&gt;
&lt;br /&gt;
There will be a door charge of R50 to cover costs &amp;amp; refreshments. That and an open mind are all you need to bring. If you're staying for the QGIS session in the afternoon you can bring your laptop (Windows, Linux or Mac!)&lt;br /&gt;
&lt;br /&gt;
= Where? =&lt;br /&gt;
&lt;br /&gt;
 St Davids Marist Inanda College&lt;br /&gt;
 36 Rivonia Rd&lt;br /&gt;
 Inanda&lt;br /&gt;
 Sandton&lt;br /&gt;
[http://www.stdavids.co.za/about_directions.asp Map and Directions]&lt;br /&gt;
&lt;br /&gt;
NB: We'll be in the Prep School computer lab.&lt;br /&gt;
&lt;br /&gt;
= When? =&lt;br /&gt;
&lt;br /&gt;
* November 29th&lt;br /&gt;
* Presentation and workshop segment: 9am to 12pm&lt;br /&gt;
* QGIS Bug Party! 12h30 onwards&lt;br /&gt;
&lt;br /&gt;
= Who =&lt;br /&gt;
&lt;br /&gt;
Your friendly presenters for the day will be:&lt;br /&gt;
&lt;br /&gt;
* '''Tim Sutton''' (tim at linfiniti.com) - QGIS hacker and FOSS GIS junkie extraordinaire. Tim eats Weetbix for breakfast because it sounds like Linux. He once rewrote Nkosi Sikelela in C++ because he was feeling patriotic.&lt;br /&gt;
* '''Graeme McFerren''' - (graeme.mcferren at gmail.com) - GIS researcher and FOSS4G user. Mmm, aspire to be like Tim then.&lt;br /&gt;
* '''Gavin Fleming''' (gavinjfleming at gmail dot com) - I enjoy my daily FOSS4G fix and telling people how great it was. I'm a 'geoinformation scientist' at Mintek and love to see cutting edge and useful geospatial applications emerging. &lt;br /&gt;
* '''Brendon Wolff-Piggott''' - (brendon at integratedgeodata.co.za) - Water resources consultant and FOSS GIS enthusiast.  I wish there were more hours in the day to keep up with FOSS4G!&lt;br /&gt;
&lt;br /&gt;
= RSVP =&lt;br /&gt;
Let gavinjfleming at gmail dot com know if you're coming as numbers are limited. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= QGIS Bug Party =&lt;br /&gt;
&lt;br /&gt;
As a preview release there are still various bugs that need resolving and various elements (e.g. translation) that may be incomplete. On Saturday the 29th in Johannesburg, South Africa, members from the Africa OSGeo chapter will be holding a QGIS Bug Hunt Party. We would like to invite people from around the world to virtually participate. Each person attending will get a free copy of QGIS 1.0.0 Preview 2 absolutely free of charge! Sorry no shrink wrap copies available. Preview 2 is the second in a series of preview releases we are making before we release the Stable QGIS 1.0.0 with long term support. &lt;br /&gt;
We are going to great lengths to polish up QGIS 1.0 for you (inside and out) and we really appreciate all the feedback we have received thus far. Its virtually impossible to ship any software completely bug free, but with your help we can add just a little more shine to the polish! We need your help to:&lt;br /&gt;
&lt;br /&gt;
* test on different machine configurations (bring your laptops!)&lt;br /&gt;
* validate existing bugs on each platform&lt;br /&gt;
* mark bugs that can no longer be replicated as ready for closure&lt;br /&gt;
* create new tickets for bugs that have not been reported yet (please search first to avoid posting duplicates!)&lt;br /&gt;
* mark bugs that are duplicates&lt;br /&gt;
* provide additional diagnostics so that developers can replicate issues&lt;br /&gt;
&lt;br /&gt;
The idea is not to try to *fix* the bugs, but rather to do a QA session on the bugs in the bug tracker. In the process you will learn how to interact with an Open Source project the Right Way i.e. filing good quality bug reports.&lt;br /&gt;
&lt;br /&gt;
I will start off with a simple show and tell covering:&lt;br /&gt;
* where to find the QGIS (and other OSGeo projects bug tracking sites)&lt;br /&gt;
* creating an account so you can file non-anonymous bugs and feedback on any OSGeo project bug tracker&lt;br /&gt;
* how the bug tracking system works - what the various input fields in the QGIS tracker mean&lt;br /&gt;
&lt;br /&gt;
The approach will be to start by going through any bugs that have not been revised recently, adding additional status information. If you think the bug is fixed, add a comment:&lt;br /&gt;
&lt;br /&gt;
'''Works for me now, recommend closure, &amp;lt;Your Name&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
If you can replicate the bug, add a comment like:&lt;br /&gt;
&lt;br /&gt;
'''Can replicate, OS: Ubuntu 8.10, QGIS Preview 2, &amp;lt;Your Name&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Use your initiative to deal with tickets that don't fit into the categories above, following a similar approach.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After that I will turn you loose on the queue and a shiny copy of QGIS preview 2 and let you have at it. Party is over when the last man falls asleep at the keyboard! Ok probably we will finish at between 4:30pm and 5pm if my wife has anything to do with it!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We look forward to seeing you at the QGIS Bug Party!!!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Programme in a nutshell =&lt;br /&gt;
&lt;br /&gt;
* Be there in time for a 9am start&lt;br /&gt;
* Morning session: Introducing QGIS, PostGIS, GeoServer, uDig&lt;br /&gt;
* Afternoon session: QGIS Bug Party&lt;br /&gt;
&lt;br /&gt;
Note: There will be frequent rest breaks and lots of time to ask questions!&lt;br /&gt;
&lt;br /&gt;
'''1. Welcome, Introduction and Overview: Starting up (5 minutes)'''&lt;br /&gt;
&lt;br /&gt;
What am I looking at here? What do I need to do to get started?&lt;br /&gt;
&lt;br /&gt;
'''2. QGIS: Opening and viewing spatial data. Your first map. (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
What can I look at? How do I set up a simple map?  Toolbars and Plug-ins. &lt;br /&gt;
&lt;br /&gt;
'''3. PostGIS: Why use PostGIS? Simple example of loading data. (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
Why use a spatial database? What does one look like? How do I populate a spatial database and where does my data live?&lt;br /&gt;
&lt;br /&gt;
'''4. QGIS: Looking at PostGIS data from QGIS.  (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
View a PostGIS database from QGIS.  Setting up data definitions for PostGIS sources.  Loading data into PostGIS with the Spit Loader (no, please don't touch the screen!)&lt;br /&gt;
&lt;br /&gt;
'''5. PostGIS: More than a place to dump data... (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
PostGIS is not just good for storing data, one can manipulate it too! GIS can be done inside the database, which is rather nice when you think about it.&lt;br /&gt;
&lt;br /&gt;
'''6. uDig: Why uDig?  GIS and the Web.  (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
Getting GIS data ready for presentation on the Web! Editing SLDs.&lt;br /&gt;
&lt;br /&gt;
'''7. GeoServer: Tell everyone about it!  (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
Displaying GIS data on the web.  Grouped WMS.  Scale-dependent rendering.&lt;br /&gt;
&lt;br /&gt;
'''8. And more QGIS.'''&lt;br /&gt;
&lt;br /&gt;
Detail on symbology.  Topological editing. QML, SPD and Openlayers.  (15 minutes)&lt;br /&gt;
&lt;br /&gt;
'''9. Show off session'''&lt;br /&gt;
&lt;br /&gt;
Here we can do some whizz bang demo stuff that we don't have time to do in  workshop format but that will give you some hints as to what else can be achieved.&lt;br /&gt;
&lt;br /&gt;
'''10. General'''&lt;br /&gt;
&lt;br /&gt;
Questions and answers.  What you can do next.  Resources.  Possibly some in-depth examples based on frequent questions.  What would you like to see at future workshops?&lt;br /&gt;
&lt;br /&gt;
'''11. Your assessment of the workshop'''&lt;br /&gt;
&lt;br /&gt;
Tell us what you thought!&lt;br /&gt;
&lt;br /&gt;
= Workshop Notes =&lt;br /&gt;
&lt;br /&gt;
== Welcome, introductions and overview ==&lt;br /&gt;
&lt;br /&gt;
== Lets make a map - First steps with QGIS ==&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
* Open QGIS using the icon on the top Gnome Panel&lt;br /&gt;
* From the Layer menu, select '''Add Vector Layer'''&lt;br /&gt;
  Layer -&amp;gt; Add Vector Layer&lt;br /&gt;
* A dialog box will appear&lt;br /&gt;
* Navigate to &lt;br /&gt;
  /home/workshop/gisdata/za/brits/SAExplorer/&lt;br /&gt;
* Add the following layer :&lt;br /&gt;
  Provinces.shp&lt;br /&gt;
* Experiment with the '''map navigation toolbar''' to zoom in / out, pan, select etc features.&lt;br /&gt;
* Open the '''Layer properties dialog'''. There are several ways you can do this:&lt;br /&gt;
  1) Select the layer in the legend and then from the menu do Layer -&amp;gt; Properties&lt;br /&gt;
  or&lt;br /&gt;
  2) Right click on the layer in the legend and choose Properties from the context menu&lt;br /&gt;
  or&lt;br /&gt;
  3) Double click on the layer in the legend&lt;br /&gt;
* Familiarise yourself with the various panels in the vector properties dialog.&lt;br /&gt;
* Select the '''Symbology''' tab (second from the left)&lt;br /&gt;
* From the '''Style Options''' panel, choose a pleasing '''fill colour''' for the provinces then &lt;br /&gt;
  Click OK&lt;br /&gt;
&lt;br /&gt;
Or you can:&lt;br /&gt;
* Select the '''Legend Type''' as ''Unique Value''.  &lt;br /&gt;
* Set the '''Classification field''' to ''PROVNAME''&lt;br /&gt;
* Click on the '''Classify''' button to set '''different colours for each province'''.&lt;br /&gt;
  Click OK&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
'''Add''' the following layers (also from the /home/workshop/gisdata/za/brits/SAExplorer/ directory)&lt;br /&gt;
&lt;br /&gt;
  Transport_NationalRoads.shp&lt;br /&gt;
  Transport_Railways.shp&lt;br /&gt;
  RSATowns.shp&lt;br /&gt;
  Dams.shp&lt;br /&gt;
 &lt;br /&gt;
'''Zoom and pan''' around a little to explore your data'''&lt;br /&gt;
'''Symbolise''' each layer with an appropriate colour to make the most awe inspiring map.&lt;br /&gt;
&lt;br /&gt;
Activate the '''Identify features''' icon on the middle toolbar to identify the attribute values associated with a spatial feature for the layer highlighted in the Legend Box.&lt;br /&gt;
&lt;br /&gt;
Activate the '''Select Features''' icon next to Identify Features to select one or more features.  &lt;br /&gt;
&lt;br /&gt;
Open the attribute table to view all feature attributes. Note that selected features will have highlighted rows in the attribute table.  You can do this using the neighbouring '''Open Attribute Table''' icon, or by selecting the Open Attribute Table option on the context menu for the layer in the legend using right-click on the mouse.&lt;br /&gt;
&lt;br /&gt;
You can also select rows in the attribute table by:&lt;br /&gt;
* Left-clicking on the desired rows.&lt;br /&gt;
* Using the '''Search''' box at the bottom-left of the form.&lt;br /&gt;
* Selecting the '''Advanced''' button and opening the '''Search Query Builder'''. &lt;br /&gt;
&lt;br /&gt;
Save your project using &lt;br /&gt;
 File -&amp;gt; Save&lt;br /&gt;
&lt;br /&gt;
And put it into&lt;br /&gt;
 /home/workshop/gisdata/brits.qgs&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
In ten minutes you now know how to '''add vector layers''' into QGIS, '''pan and zoom''' to navigate the map, and set the colour of vectors using the '''Single Symbol''' or '''Unique Values''' options in the '''Layer Properties'''.&lt;br /&gt;
&lt;br /&gt;
You have also learnt how to use the interactive '''Identify''' and '''Select''' functions, '''opened attribute tables''' and found out how to '''search''' them.&lt;br /&gt;
&lt;br /&gt;
== More on QGIS Mapping ==&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
Add the vector layer '''Education_Schools2000.shp''' from the SAExplorer directory.  Notice how dense the points are!&lt;br /&gt;
&lt;br /&gt;
* Right-click on the schools layer in the Legend frame.&lt;br /&gt;
* Select '''Properties'''&lt;br /&gt;
* Select the '''General tab'''&lt;br /&gt;
* Check '''Use scale dependent rendering'''&lt;br /&gt;
* Set the maximum field to 1000000&lt;br /&gt;
&lt;br /&gt;
* Zoom out to view the whole country.    '''Notice that the schools no longer appear on the map!''' &lt;br /&gt;
* Now start zooming in, keeping an eye on the scale shown in the '''scale box''' at the bottom of the screen.&lt;br /&gt;
&lt;br /&gt;
 Notice how the schools points reappear when the scale decreases below 1:1000000&lt;br /&gt;
 &lt;br /&gt;
* From the Layer menu, select '''Add Raster Layer'''&lt;br /&gt;
  Layer -&amp;gt; Add Raster Layer&lt;br /&gt;
* A dialog box will appear&lt;br /&gt;
* Navigate to &lt;br /&gt;
  /home/workshop/gisdata/za/gauteng/&lt;br /&gt;
* Add the following layer :&lt;br /&gt;
 SOU-8_satellite.tif&lt;br /&gt;
&lt;br /&gt;
Notice that the image is largely in shades of greyish-brown, but that a dam can be seen towards the bottom of the image. &lt;br /&gt;
&lt;br /&gt;
* Open the Properties for the raster layer, in a similar way to that used for vector layers.&lt;br /&gt;
 Layer -&amp;gt; Properties&lt;br /&gt;
* Select the '''Transparency''' tab.&lt;br /&gt;
* Using the slider, set transparency to 25%&lt;br /&gt;
* Click OK&lt;br /&gt;
Notice how the you can now see the vector layers behind the satellite image.&lt;br /&gt;
 &lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
If you have not already done so, add the vector layers Transport_NationalRoads.shp and Transport_Mainroads.shp from /home/workshop/gisdata/za/brits/SAExplorer.&lt;br /&gt;
Set scale-dependent rendering so that the national roads display at all scales, while the main roads are only shown when you are zoomed in. &lt;br /&gt;
&lt;br /&gt;
Go to the satellite image properties, Symbology tab.  Try the different &amp;quot;Render as&amp;quot; options.  Then when you have found the one that suits you, have a look at the &amp;quot;Contast Enhancement&amp;quot; options.  Compare &amp;quot;No Stretch&amp;quot; and &amp;quot;Stretch to MinMax&amp;quot;.  &lt;br /&gt;
&lt;br /&gt;
Try &amp;quot;Render as Single Band Grey&amp;quot;.  Set the &amp;quot;Custom min/max values&amp;quot; radio button.  Change the Min and Max values.  Go to &amp;quot;Contract Enhancement&amp;quot; again and set it to &amp;quot;Stretch and Clip to MinMax&amp;quot;, and see the effect.&lt;br /&gt;
&lt;br /&gt;
Add raster images of 1: 50 000 map sheets from &amp;quot; /home/workshop/gisdata/za/brits/toposheet images&amp;quot; &lt;br /&gt;
You will need to set the Files of Type box to '''JPEG JFIF''' to see them, before you can select them.&lt;br /&gt;
Set their transparency to a value that allows you to see the vector features behind them.  Zoom in and look at how the vector features and image features match (or not!).&lt;br /&gt;
&lt;br /&gt;
Notice how you can zoom right in to vector data, and a point remains a point and a line remains a line.  When you zoom in to the satellite image it rapidly appears &amp;quot;blocky&amp;quot; compared to the 50 000 map sheets. Zoom in enough and even the map sheet raster blocks can be seen.  This is a basic difference between vector and raster data.&lt;br /&gt;
&lt;br /&gt;
=== What have I learnt? ===&lt;br /&gt;
&lt;br /&gt;
You have learnt to set scale-dependent rendering so that data sets are displayed at appropriate scales, how to add raster data and set raster display options.&lt;br /&gt;
&lt;br /&gt;
== Shapefiles shmapefiles....real (wo)men store their data in PostGIS ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
* '''Create''' a new PostgreSQL database. To do this, open the terminal application (icon to the right of Firefox icon on the top menu bar). Now at the prompt type the following command:&lt;br /&gt;
  createdb workshop&lt;br /&gt;
&lt;br /&gt;
* '''Verify''' your database exists (once again type this into the terminal)&lt;br /&gt;
  psql -l&lt;br /&gt;
* You should see something like this:&lt;br /&gt;
 workshop@heron:~$ psql -l&lt;br /&gt;
        List of databases&lt;br /&gt;
   Name    |  Owner   | Encoding &lt;br /&gt;
 -----------+----------+----------&lt;br /&gt;
 postgres  | postgres | UTF8&lt;br /&gt;
 template0 | postgres | UTF8&lt;br /&gt;
 template1 | postgres | UTF8&lt;br /&gt;
 workshop  | workshop | UTF8&lt;br /&gt;
 (4 rows)&lt;br /&gt;
* away from the terminal for a while - lets look at what a non-spatial, vanilla PostgreSQL database looks like. Open pgAdmin 3  (the icon with a blue elephant face)&lt;br /&gt;
* Double-click on the icon that has a red cross next to some text &amp;quot;gis (localhost:5432)&amp;quot; and press OK if another screen comes up. The database cluster called gis expands and you should see two databases: 'postgres' and 'workshop'. Expand workshop -&amp;gt; Schemas -&amp;gt; public&lt;br /&gt;
Specifically, let us look at Functions and Tables - don't look to deeply, this is just to show the differences after PostGIS is installed on the database (you will see later). Specifically, there is nothing in the db at the moment. So minimise pgAdmin and lets crack on with getting some data in!&lt;br /&gt;
&lt;br /&gt;
* Install the PostGIS spatial data extensions (again from the terminal).&lt;br /&gt;
'''Hint''' copy and paste these from the IRC channel or the wiki page!&lt;br /&gt;
 createlang plpgsql workshop&lt;br /&gt;
 psql workshop &amp;lt; /usr/share/postgresql-8.3-postgis/lwpostgis.sql&lt;br /&gt;
 psql workshop &amp;lt; /usr/share/postgresql-8.3-postgis/spatial_ref_sys.sql&lt;br /&gt;
&lt;br /&gt;
* Yegads! What did I just do? Firstly, you installed the '''plpgsql''' procedural language extensions into your PostgreSQL database. Then you ran two sql scripts which create the '''PostGIS''' spatial extensions to your database. You only need to do this '''once''' when you create a new spatial database, so don't worry about remembering those commands off by heart.&lt;br /&gt;
* Lets upload a shapefile into the database....once more into the black hole (terminal window).&lt;br /&gt;
 cd /home/workshop/gisdata/za/brits/SAExplorer&lt;br /&gt;
 shp2pgsql -I -s 4326 Dams.shp dams | psql -d workshop&lt;br /&gt;
* Erk! What does that all mean? Lets break it down:&lt;br /&gt;
 cd /home/workshop/gisdata/za/brits/SAExplorer - go to our data directory&lt;br /&gt;
 shp2pgsql - an application that loads shapefiles into a PostGIS database&lt;br /&gt;
 -I - an option to shp2pgsql telling it to create a spatial index&lt;br /&gt;
 -s - the coordinate reference system to use, expressed as an EPSG number. 4326 is the same as Lat/Long WGS84&lt;br /&gt;
 Dams.shp - the filename of the shapefile to load&lt;br /&gt;
 dams - the table name that the data should be loaded into&lt;br /&gt;
 | psql workshop - send the results of the shp2pgsql into the psql application, workshop database&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Lets take a peek inside our database now and see what we have - back to pgAdmin, click on the 'workshop' database icon and then refresh it (red/green circular arrows icon).&lt;br /&gt;
Three major things to look at:&lt;br /&gt;
 &lt;br /&gt;
 Hundreds of Functions for working with spatial data: &lt;br /&gt;
 * geometry constructors, &lt;br /&gt;
 * spatial predicates, &lt;br /&gt;
 * geometry editors, &lt;br /&gt;
 * geometry aggregators, &lt;br /&gt;
 * geometry accessors, &lt;br /&gt;
 * measurements, &lt;br /&gt;
 * linear referencing&lt;br /&gt;
 * and outputting  of spatial data. &lt;br /&gt;
 &lt;br /&gt;
 2 important meta-tables: (expand the Tables object)&lt;br /&gt;
 * geometry_columns (for describing the different spatial datasets) - right-click -&amp;gt; &lt;br /&gt;
 * and spatial_ref_sys(a list of projections/coordinate systems and different representations thereof)&lt;br /&gt;
&lt;br /&gt;
 A 'dams' table which, when expanded should show a bunch of Columns, Constraints (e.g. Primary Key), Indexes, Rules and Triggers. &lt;br /&gt;
 * Note the geometry type of column 'the_geom'. &lt;br /&gt;
 * Also note the spatial index present - this allows for optimal retrieval of data based on the spatial properties of the data.&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
'''Load''' the following layers (also from the /home/workshop/gisdata/za/brits/SAExplorer/ directory)&lt;br /&gt;
&lt;br /&gt;
 Hydrology_DWAFRivers.shp -&amp;gt; call the table 'rivers'&lt;br /&gt;
 Transport_Mainroads.shp -&amp;gt; call the table 'roads'&lt;br /&gt;
 ProvincialBoundary.shp -&amp;gt; call the table 'provinces'&lt;br /&gt;
&lt;br /&gt;
And to show that this can scale a bit, let us load in the background a dataset of over 350 000 points (which we will use a bit later)&lt;br /&gt;
 * cd /home/workshop/gisdata/za/fire/modis_af/&lt;br /&gt;
 * shp2pgsql -I -s 4326 modis_af.shp fires | psql -d workshop  &amp;amp;&amp;gt; /dev/null (puts output into background)&lt;br /&gt;
 * shp2pgsql -I -s -D 4326 modis_af.shp fires | psql -d workshop (simpler and faster)&lt;br /&gt;
&lt;br /&gt;
=== Super duper advanced ===&lt;br /&gt;
&lt;br /&gt;
What if I want to load a batch of shapefiles in a directory in 1 go? Try this nifty bash script one liner!&lt;br /&gt;
&lt;br /&gt;
 for FILE in `ls *.shp`; do TABLE=`echo $FILE | sed 's/\.shp//g'`; echo $TABLE;shp2pgsql -I -s 4326 $FILE $TABLE | psql -d workshop; done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This takes a while so lets move on.&lt;br /&gt;
&lt;br /&gt;
=== What have I learnt? ===&lt;br /&gt;
&lt;br /&gt;
* PostgreSQL is an enterprise-ready relational database management system - and it's Free and Open Source Software&lt;br /&gt;
* You can create a new database using the '''createdb''' command.&lt;br /&gt;
* '''PostGIS''' is a add-on to PostgreSQL that lets you store spatial data and carry out spatial analysis within the database.&lt;br /&gt;
* In order to set up PostGIS you need to run a couple of SQL scripts&lt;br /&gt;
* '''shp2pgsql''' is a command line application that lets you load shapefiles into your spatial datastore&lt;br /&gt;
&lt;br /&gt;
== Using PostGIS data from QGIS ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
Once your data is in PostGIS, its easy to share across your organisation. Because it's in a database you get row level locking (instead of file locking in a shapefile), so many users can be editing and viewing data at the same time. There are many clients that let you visualise your PostGIS data..lets take a look at how we do it in QGIS.&lt;br /&gt;
&lt;br /&gt;
* Open QGIS&lt;br /&gt;
* Start a new project&lt;br /&gt;
  File -&amp;gt; New Project&lt;br /&gt;
* Add a PostGIS layer&lt;br /&gt;
  Layer -&amp;gt; Add PostGIS Layer&lt;br /&gt;
* From the connections list, choose '''workshop'''&lt;br /&gt;
  Click connect&lt;br /&gt;
* In the table list, click on '''dams'''&lt;br /&gt;
  Click Add&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
* Add the following layers from your database&lt;br /&gt;
 rivers&lt;br /&gt;
 roads&lt;br /&gt;
 provinces&lt;br /&gt;
&lt;br /&gt;
* set some nice colors for your layers - notice how the process is exactly the same as when setting colours for a shapefile.&lt;br /&gt;
&lt;br /&gt;
* save your project into&lt;br /&gt;
&lt;br /&gt;
 /home/workshop/gisdata/brits_pg.qgs&lt;br /&gt;
&lt;br /&gt;
=== What have I learnt? ===&lt;br /&gt;
&lt;br /&gt;
* You can '''visualise''' PostGIS spatial database tables inside QGIS&lt;br /&gt;
* To add a PostGIS layer, use the '''Layer -&amp;gt; Add PostGIS Layer''' menu option.&lt;br /&gt;
* Once a PostGIS layer, you can treat it just like any other (e.g. shapefile) layer&lt;br /&gt;
* Your presenters are truly amazing....however would I have figured this stuff out for my self :-)&lt;br /&gt;
&lt;br /&gt;
== More on PostGIS Data in QGIS ==&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
* Click on the '''Blue Elephant''' icon in the middle toolbar row to start SPIT loader.&lt;br /&gt;
* Select the PostgreSQL Connection as &amp;quot;workshop&amp;quot;.&lt;br /&gt;
* Click on Connect to verify your connection&lt;br /&gt;
* Now click &amp;quot;Add&amp;quot; - the &amp;quot;Add Shapefile&amp;quot; dialog box comes up. &lt;br /&gt;
&lt;br /&gt;
Navigate to /home/workshop/gisdata/za/brits/SAExplorer.&lt;br /&gt;
&lt;br /&gt;
* Select &amp;quot;Rsatowns.shp&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 Click &amp;quot;Open&amp;quot;.  PostGIS scans the file and lists it in the display frame.&lt;br /&gt;
&lt;br /&gt;
 Click &amp;quot;OK&amp;quot;.  QGIS loads the shapefile data into PostGIS with no need to use the terminal!&lt;br /&gt;
&lt;br /&gt;
* Use Layer -&amp;gt; Add PostGIS Layer to load the layer from PostGIS directly into QGIS.  &lt;br /&gt;
&lt;br /&gt;
* Now add the rivers PostGIS layer to QGIS to see another advantage of using PostGIS layers.&lt;br /&gt;
* Open the Layer properties form.  &lt;br /&gt;
* On the General tab, click &amp;quot;Query Builder&amp;quot; near the bottom right-hand corner. This opens the Query Builder. &lt;br /&gt;
* Click Field &amp;quot;RIVER_CLAS&amp;quot;.&lt;br /&gt;
* Click the &amp;quot;All&amp;quot; button under the &amp;quot;Values&amp;quot; frame.&lt;br /&gt;
* Build the Query &lt;br /&gt;
 &amp;quot;RIVER_CLAS&amp;quot; LIKE 'Perennial' OR &amp;quot;RIVER_CLAS&amp;quot; LIKE 'Perennial river'&lt;br /&gt;
* Click &amp;quot;Test&amp;quot; to check that it will work.&lt;br /&gt;
* Click &amp;quot;OK&amp;quot; twice to apply it.&lt;br /&gt;
&lt;br /&gt;
Now look at the display - the query has not merely highlighted the selected features, it has filtered the non-selected features out so that they are not displayed.  &lt;br /&gt;
&lt;br /&gt;
=== Now you try ===&lt;br /&gt;
&lt;br /&gt;
* Try loading other layers into PostGIS using the Spit loader.&lt;br /&gt;
* Load these into QGIS, and use the &amp;quot;Query Builder&amp;quot; to define the data sets that you want to see.&lt;br /&gt;
* You could define the non-perennial rivers as a separate data set, and use scale-dependent rendering to show them only when you zoom right in.&lt;br /&gt;
&lt;br /&gt;
=== What I have learnt ===&lt;br /&gt;
&lt;br /&gt;
How to rapidly load data into postgis using the spit loader.  How to set up data queries to filter spatial data display from postgis.&lt;br /&gt;
&lt;br /&gt;
== The Zen of PostGIS - not just a pretty place to store data! ==&lt;br /&gt;
&lt;br /&gt;
Okay, we will go a bit deeper into the woods here! We want to show that with some SQL (I won't say simple) you can do some complex - and repeatable - spatial analysis right inside your database, and then visualise the results in various clients.&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
We will use pgAdmin (your great PostgreSQL friend) to get this happening. Click on the Tables object of your workshop db. Then Tools -&amp;gt; Query tool from the menu. This should present a dialog box with 3 panels.&lt;br /&gt;
&lt;br /&gt;
We are going to do a simple intersection to get started.&lt;br /&gt;
In the top left panel paste &lt;br /&gt;
 SELECT roads.gid, roads.code, roads.route_nr, roads.shape_leng, roads.the_geom FROM roads, rivers WHERE (roads.the_geom &amp;amp;&amp;amp; rivers.the_geom AND intersects(roads.the_geom, rivers.the_geom));&lt;br /&gt;
and click Query -&amp;gt; Execute&lt;br /&gt;
This should take a few seconds, then you will see a result returned into the Data Output grid. Something like 3338 rows are returned from the original roads dataset of 11964.&lt;br /&gt;
&lt;br /&gt;
So what is going on here?&lt;br /&gt;
&lt;br /&gt;
You are performing a spatial overlay with a SQL query, asking the database to return records from the roads table that spatially intersect records from the rivers table. &lt;br /&gt;
* the &amp;amp;&amp;amp; operator is a fast bounding box 'overlaps' test that takes advantage of the spatial indexes of the table to narrow the search space for the true intersection test.&lt;br /&gt;
* the intersects part of the query tests the geometries of the subset selected above for spatial intersection and returns a result.&lt;br /&gt;
&lt;br /&gt;
To show some other functionality, paste the following text into the query window and execute:&lt;br /&gt;
 ALTER TABLE roads DROP CONSTRAINT enforce_srid_the_geom;UPDATE geometry_columns SET srid = 4148 WHERE f_table_name = 'roads';COMMIT; UPDATE roads SET the_geom = ST_Transform(the_geom,4148);COMMIT; ALTER TABLE roads ADD CONSTRAINT enforce_srid_the_geom CHECK (srid(the_geom) = 4148);&lt;br /&gt;
We are being good South African GIS types and using our Haartebeesthoek94 Datum. Lets do the same for rivers:&lt;br /&gt;
 ALTER TABLE rivers DROP CONSTRAINT enforce_srid_the_geom;UPDATE geometry_columns SET srid = 4148 WHERE f_table_name = 'rivers';COMMIT; UPDATE rivers SET the_geom = ST_Transform(the_geom,4148);COMMIT; ALTER TABLE rivers ADD CONSTRAINT enforce_srid_the_geom CHECK (srid(the_geom) = 4148);&lt;br /&gt;
&lt;br /&gt;
This looks fairly intense, but the main points are the changing of the data in the geometry_columns meta-table and then updating the geometries in each table to a different CRS (4148, or Haartebeesthoek94). We demonstrate the use of the UPDATE SQL command, used to change data in the database, and the use of the ST_Transform function of PostGIS, which does the work. Now lets try the original query again:&lt;br /&gt;
 SELECT roads.gid, roads.code, roads.route_nr, roads.shape_leng, roads.the_geom FROM roads, rivers WHERE st_intersects(roads.the_geom, rivers.the_geom);&lt;br /&gt;
...which returns the same number of features, but in our own CRS. Note that we have used the ST_Intersects function rather than the Intersects function as previously shown. ST_ type functions are more standards compliant, so should be used in place of the older style functions.&lt;br /&gt;
Ideally we would project the data as appropriate, using the very same technique, but substituting 4148 for the EPSG code for our projection of choice. This is a demo though, folks, so I will get away with murder...&lt;br /&gt;
Lets quickly repeat the process for the other datasets we will use in a minute:&lt;br /&gt;
 ALTER TABLE provinces DROP CONSTRAINT enforce_srid_the_geom;UPDATE geometry_columns SET srid = 4148 WHERE f_table_name = 'provinces';COMMIT; UPDATE provinces SET the_geom = ST_Transform(the_geom,4148);COMMIT; ALTER TABLE provinces ADD CONSTRAINT enforce_srid_the_geom CHECK (srid(the_geom) = 4148);&lt;br /&gt;
 ALTER TABLE fires DROP CONSTRAINT enforce_srid_the_geom;UPDATE geometry_columns SET srid = 4148 WHERE f_table_name = 'fires';COMMIT; UPDATE fires SET the_geom = ST_Transform(the_geom,4148);COMMIT; ALTER TABLE fires ADD CONSTRAINT enforce_srid_the_geom CHECK (srid(the_geom) = 4148);&lt;br /&gt;
&lt;br /&gt;
So, while that goes ahead (it will take a minute or so to transform 350k points), let us think out another analysis. Lets make it a bit tricky. Okay, we want to create a table for serving up data to the outside world (Gavin will do this later) that has all the intense fires in Gauteng or NorthWest Province, that have occurred within 3000 metres of a main road. There are many ways to skin this cat in PostGIS, so I will pick a method and explain why I did so.&lt;br /&gt;
First, a convenience table is created:&lt;br /&gt;
 SELECT roads.gid, ST_Buffer(roads.the_geom,0.027) AS geom INTO roads_buffer FROM roads, (SELECT * FROM provinces WHERE prov_code = 'GT' OR prov_code = 'NW') AS prov WHERE ST_Within(roads.the_geom, prov.the_geom);&lt;br /&gt;
This is a table of polygons representing ~3000 metre road buffers, and note the use of the function to populate the geometry_columns meta-table with our new layer.&lt;br /&gt;
 SELECT DISTINCT fires.gid, fires.frp, fires.acqdatetim, fires.the_geom INTO fires_analysis_3000m FROM fires, (SELECT * FROM provinces WHERE prov_code = 'GT' OR prov_code = 'NW') AS prov, roads_buffer  WHERE fires.frp &amp;gt; 200 AND ST_Within(fires.the_geom, prov.the_geom) AND ST_Within(fires.the_geom, roads_buffer.geom);&lt;br /&gt;
The main feature of this query is the longish WHERE clause, which tests weather the fire is intense, whether it falls within Gauteng or NW Province and whether the fire occurred within appx 3000 metres of one of our main roads.&lt;br /&gt;
&lt;br /&gt;
There are not too many fires that fall out of this analysis, but it shows how we have relatively easily worked with and reduced a large dataset to a few points. These queries can be further tuned to take advantage of spatial and other indexes, but that is perhaps for another time.&lt;br /&gt;
&lt;br /&gt;
The final thing we will do is prepare this layer for use on the web...&lt;br /&gt;
 INSERT INTO geometry_columns(f_table_catalog,f_table_schema,f_table_name,f_geometry_column,coord_dimension,srid,&amp;quot;type&amp;quot;) VALUES('','public','fires_analysis_3000m','the_geom',2,4148,'MULTIPOINT');&lt;br /&gt;
Normal meta-table stuff&lt;br /&gt;
 ALTER TABLE fires_analysis_3000m ADD PRIMARY KEY (gid);&lt;br /&gt;
And if we wanted to we could add a spatial index:&lt;br /&gt;
 CREATE INDEX fires_Analysis_3000m_the_geom_gist ON fires_Analysis_3000m USING gist(the_geom);&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
Well, no you do not - but you can ask questions...&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
Well, hopefully a fair bit. You can, with a bit of practice and reading up on the matter, get PostGIS to do some rather interesting and powerful things. We have just seen a database do GIS... Some of you may be in the know about such matters, but hopefully this shows some possibilities to others.&lt;br /&gt;
&lt;br /&gt;
== uDig ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
uDig ('user-friendly desktop internet GIS') is another excellent desktop GIS. let's check out the basics&lt;br /&gt;
&lt;br /&gt;
* Open uDig&lt;br /&gt;
* start adding layers (note the variety of data that can be used)&lt;br /&gt;
** Add a PostGIS layer&lt;br /&gt;
** add a shapefile&lt;br /&gt;
* theme the layers&lt;br /&gt;
* check out the table view, catalogue and some functionality&lt;br /&gt;
&lt;br /&gt;
There's no need to save projects - you can just close uDig and it will save automatically. Note &lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
* Add the following layers from your database&lt;br /&gt;
 rivers, dams, schools, roads, more if you like&lt;br /&gt;
&lt;br /&gt;
* theme the school layer with nice symbols and labels - we're going to try scale-dependent rendering&lt;br /&gt;
**zoom in closer than 1:50000 and set the max scale to 50000&lt;br /&gt;
**on the theme dialog, click XML&lt;br /&gt;
**select the &amp;lt;rule&amp;gt;&amp;lt;/rule&amp;gt; section and copy it to a text editor.&lt;br /&gt;
**zoom out beyond 50000, go back to 'theme' and simplify your symbols, removing the labels.&lt;br /&gt;
**set the min scale to 50000&lt;br /&gt;
**click 'XML'&lt;br /&gt;
**paste the previous 'rule' into the XML, before or after the one you see.&lt;br /&gt;
**click OK! now zoom in and out past to see the result. &lt;br /&gt;
 &lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
* Viewing and rendering different formats in uDig&lt;br /&gt;
* Theming with SLD (Styled layer descriptor), the OGC standard.&lt;br /&gt;
* scale-dependent rendering&lt;br /&gt;
** with a point - we're going to come back to uDig!&lt;br /&gt;
&lt;br /&gt;
== GeoServer ==&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
 cd&lt;br /&gt;
 export JAVA_HOME=/usr&lt;br /&gt;
 cd Apps/geoserver&lt;br /&gt;
 bin/startup.sh&lt;br /&gt;
&lt;br /&gt;
* Start geoserver (normally set to start automatically and run all the time)&lt;br /&gt;
* All admin is done via the web&lt;br /&gt;
* set up a namespace&lt;br /&gt;
* set up data stores&lt;br /&gt;
* set up feature types&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
* start GeoServer&lt;br /&gt;
* click Config -&amp;gt; Data&lt;br /&gt;
* Set Namespace to any name and any url&lt;br /&gt;
* Set Datastore to your postGIS database&lt;br /&gt;
* define a FeatureType for schools, choose a point style&lt;br /&gt;
'''Styling'''&lt;br /&gt;
*Go to Data -&amp;gt; Style -&amp;gt; new&lt;br /&gt;
**give your style a name and paste in your school SLD from uDig&lt;br /&gt;
**submit&lt;br /&gt;
**Go back to FeatureTypes and Edit your schools Feature, applying your new style&lt;br /&gt;
**Check out the results in the GeoServer demo pages&lt;br /&gt;
&lt;br /&gt;
'''Group layers'''&lt;br /&gt;
* Set up a group in the 'WMS' section&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Back to uDig&lt;br /&gt;
*bring in a WMS layer from http://localhost/geoserver:8080/wms&lt;br /&gt;
*bring in the same layer as WFS&lt;br /&gt;
**theme it&lt;br /&gt;
**save it as a shapefile&lt;br /&gt;
*try this with QGIS too (and with ArcGIS back at the office!)&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
* you can use GeoServer to serve your spatial data from any source as WMS, WFS, KML and more!&lt;br /&gt;
* You can use WMS and WFS layers in a desktop GIS&lt;br /&gt;
* impress your colleagues by sending them kml links from your geoserver so they can view them live in Google Earth!&lt;br /&gt;
&lt;br /&gt;
== More Advanced QGIS Use ==&lt;br /&gt;
Here are some more things you can do with QGIS!  Don't be put off by the heading of this section, we'll take you through step-by-step as before..&lt;br /&gt;
&lt;br /&gt;
=== ''Quick Qml with QGIS'' ===&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
If you have used  ArcView before, you might have used the avl feature which lets you store the symbology settings for a layer. QGIS has a similar feature called 'qml' which lets you create default symbology settings for a layer, that will be applied when ever that layer is loaded. We are also going to take a quick peek at how to create more complex symbology for a layer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Open QGIS if its not already running.&lt;br /&gt;
* Add the dams layer from the Postgresql 'Workshop' database&lt;br /&gt;
* Double click on the layer entry in the legend&lt;br /&gt;
* Activate the symbology tab&lt;br /&gt;
* Now change the legend type to '''Graduated Symbol'''&lt;br /&gt;
* Change the classification field to '''shape_area'''&lt;br /&gt;
* Set the '''number of classes''' to 5&lt;br /&gt;
* Click the '''classify''' button&lt;br /&gt;
* Click the '''Apply''' button&lt;br /&gt;
&lt;br /&gt;
You should see the shapes in the main window have now adopted a range of scintillating colours! However is you add that layer to another QGIS project you would normally have to do all this work again! Qml to the rescue.&lt;br /&gt;
&lt;br /&gt;
* Save your symbology settings by clicking the '''save as default''' button&lt;br /&gt;
&lt;br /&gt;
Ok lets test it out!&lt;br /&gt;
&lt;br /&gt;
* Close QGIS&lt;br /&gt;
* Reopen QGIS&lt;br /&gt;
* Add the Dams layer from the Postgresql 'Workshop' database&lt;br /&gt;
&lt;br /&gt;
If the planets are correctly aligned, your dams will appear all beautifully coloured according to your personal preference.&lt;br /&gt;
&lt;br /&gt;
If you want to you can also save your settings as non-default, and them restore them by selecting a .qml file again later. Refer to the '''Load style''' and '''Save style''' buttons on the vector properties dialog.&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
Ok give it a whirl, create default appearances for your other layers stored in your PostGIS database. Also try experimenting with the other legend types such as '''Continuous Colour''' and '''Unique Value'''. &lt;br /&gt;
Once you have set your default appearances, close QGIS and then reopen it. Now add all your PostGIS layers to the blank project and they should all magically appear with your preferred appearance.&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
The '''Layer Properties''' dialog in QGIS will let you specify the '''default appearance''' for a layer.&lt;br /&gt;
&lt;br /&gt;
=== ''Setting Projections'' ===&lt;br /&gt;
Projections are a mathematical way of transforming latitude and longitude coordinates into a form that can be meaningfully used in a map.  Sources to be added.&lt;br /&gt;
Some projections in common use in South Africa are the Albers Equal Area, Lamberts Conformal Conic and Gauss (LO) projections.&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
* Make sure that you are zoomed in to Gauteng.&lt;br /&gt;
* From the File menu, select Project Properties.&lt;br /&gt;
  File -&amp;gt; Project Properties&lt;br /&gt;
* Activate the Coordinate Reference System tab&lt;br /&gt;
* Check &amp;quot;Enable &amp;quot;on the fly&amp;quot; CRS Transformation&lt;br /&gt;
* Note that the current Coordinate Reference System is WGS84, which is a standard for displaying geographic coordinates.&lt;br /&gt;
* Look at the column EPSG - this a standard for identifying coordinate systems.  When you have selected a coordinate system you can always find it again quickly by noting the EPSG code and entering it into the '''Find box''' at the bottom of the form.&lt;br /&gt;
* Highlight the ''Projected Coordinate Systems&amp;quot; heading, and double-click to open the list.&lt;br /&gt;
* Scroll down and highlight the &amp;quot;Universal Transverse Mercator&amp;quot; heading.&lt;br /&gt;
* Select the '''Name''' radio button.&lt;br /&gt;
* Enter &amp;quot;33S&amp;quot; in the text box, and press find.  Keep pressing find until you get to &amp;quot;WGS 84/UTM Zone 33&amp;quot;.  &lt;br /&gt;
 Or select the EPSG ID radio button, enter 32733 and press the Find button.    Isn't that easier?&lt;br /&gt;
* Notice that the overall shape of the country has changed due to the projection.&lt;br /&gt;
* Zoom into Gauteng again.  Move your cursor and look at the coordinates shown at the bottom of the screen.  Notice how they have changed.  They are now in meters rather than decimal degrees.&lt;br /&gt;
&lt;br /&gt;
=== Now You Try! ===&lt;br /&gt;
First of all try a related projection such as UTM Zone 34S or UTM 38S, and see what the impact is.  Move your cursor around - how do the coordinates differ from ones shown under UTM 36S?&lt;br /&gt;
&lt;br /&gt;
Then try one of the Stereographic South projections, such as EPSG=3031,  for a very different view of South Africa!&lt;br /&gt;
&lt;br /&gt;
QGIS calculates the effect of the projection before displaying the data and doesn't make any changes, so you can try anything you like!&lt;br /&gt;
&lt;br /&gt;
=== What have I learnt? ===&lt;br /&gt;
You have learnt how to set an on-the-fly projection for display in QGIS, and how to use EPSG codes to rapidly find a specific projection. Remember, if you are trying to develop a map for use in the field you will need to use a projection specific to South Africa.&lt;br /&gt;
&lt;br /&gt;
=== ''Editing Vector Data'' ===&lt;br /&gt;
Have a look at the boundary of the Eastern and Western Cape on the coast.  The rivers and provincial boundary seem to follow each other closely. Now zoom right in and notice how the provincial boundary is much more detailed than the rivers, and they don't follow each other well at all.&lt;br /&gt;
&lt;br /&gt;
QGIS to the rescue!&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
* Select the rivers layer in the Legend panel on the left.&lt;br /&gt;
* Click on the blue Pencil icon on the leftmost toolbar on the bottom row or &amp;lt;menu option&amp;gt;.  &lt;br /&gt;
* Now click on the &amp;lt;edit vertices&amp;gt; icon. Notice how the river lines have suddenly sprouted small circles wherever the line changes direction.  These are the vertices - if you have used a drawing program before you might have seen something like this. &lt;br /&gt;
* Drag the vertices of the rivers to align with the provincial boundary.&lt;br /&gt;
 Notice that we don't have enough vertices to do this exactly.&lt;br /&gt;
* Click on the add vertices icon.  Now click on the river wherever more vertices are needed.  &lt;br /&gt;
* When you have enough vertices go back to &amp;quot;Edit Vertices&amp;quot; and move them where they need to be.&lt;br /&gt;
* Now save you changes using &amp;lt;&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Now You Try! ===&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Africa]]&lt;/div&gt;</summary>
		<author><name>Wiki-Brendonwp</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=AfricaEvents29November2008&amp;diff=32738</id>
		<title>AfricaEvents29November2008</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=AfricaEvents29November2008&amp;diff=32738"/>
		<updated>2008-12-01T08:36:13Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Brendonwp: /* Editing Vector Data */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;...back to [[Africa_Local_Chapter]]&lt;br /&gt;
&lt;br /&gt;
= What? =&lt;br /&gt;
&lt;br /&gt;
Our first OSGeo local chapter meet up! We will chew the cud, show you some cool stuff and start to get people familiar with the brilliant FOSS GeoSpatial products out there!&lt;br /&gt;
&lt;br /&gt;
We'll go through installing some software and getting it to a point where you can have fun with it. &lt;br /&gt;
&lt;br /&gt;
= How Much? =&lt;br /&gt;
&lt;br /&gt;
There will be a door charge of R50 to cover costs &amp;amp; refreshments. That and an open mind are all you need to bring. If you're staying for the QGIS session in the afternoon you can bring your laptop (Windows, Linux or Mac!)&lt;br /&gt;
&lt;br /&gt;
= Where? =&lt;br /&gt;
&lt;br /&gt;
 St Davids Marist Inanda College&lt;br /&gt;
 36 Rivonia Rd&lt;br /&gt;
 Inanda&lt;br /&gt;
 Sandton&lt;br /&gt;
[http://www.stdavids.co.za/about_directions.asp Map and Directions]&lt;br /&gt;
&lt;br /&gt;
NB: We'll be in the Prep School computer lab.&lt;br /&gt;
&lt;br /&gt;
= When? =&lt;br /&gt;
&lt;br /&gt;
* November 29th&lt;br /&gt;
* Presentation and workshop segment: 9am to 12pm&lt;br /&gt;
* QGIS Bug Party! 12h30 onwards&lt;br /&gt;
&lt;br /&gt;
= Who =&lt;br /&gt;
&lt;br /&gt;
Your friendly presenters for the day will be:&lt;br /&gt;
&lt;br /&gt;
* '''Tim Sutton''' (tim at linfiniti.com) - QGIS hacker and FOSS GIS junkie extraordinaire. Tim eats Weetbix for breakfast because it sounds like Linux. He once rewrote Nkosi Sikelela in C++ because he was feeling patriotic.&lt;br /&gt;
* '''Graeme McFerren''' - (graeme.mcferren at gmail.com) - GIS researcher and FOSS4G user. Mmm, aspire to be like Tim then.&lt;br /&gt;
* '''Gavin Fleming''' (gavinjfleming at gmail dot com) - I enjoy my daily FOSS4G fix and telling people how great it was. I'm a 'geoinformation scientist' at Mintek and love to see cutting edge and useful geospatial applications emerging. &lt;br /&gt;
* '''Brendon Wolff-Piggott''' - (brendon at integratedgeodata.co.za) - Water resources consultant and FOSS GIS enthusiast.  I wish there were more hours in the day to keep up with FOSS4G!&lt;br /&gt;
&lt;br /&gt;
= RSVP =&lt;br /&gt;
Let gavinjfleming at gmail dot com know if you're coming as numbers are limited. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= QGIS Bug Party =&lt;br /&gt;
&lt;br /&gt;
As a preview release there are still various bugs that need resolving and various elements (e.g. translation) that may be incomplete. On Saturday the 29th in Johannesburg, South Africa, members from the Africa OSGeo chapter will be holding a QGIS Bug Hunt Party. We would like to invite people from around the world to virtually participate. Each person attending will get a free copy of QGIS 1.0.0 Preview 2 absolutely free of charge! Sorry no shrink wrap copies available. Preview 2 is the second in a series of preview releases we are making before we release the Stable QGIS 1.0.0 with long term support. &lt;br /&gt;
We are going to great lengths to polish up QGIS 1.0 for you (inside and out) and we really appreciate all the feedback we have received thus far. Its virtually impossible to ship any software completely bug free, but with your help we can add just a little more shine to the polish! We need your help to:&lt;br /&gt;
&lt;br /&gt;
* test on different machine configurations (bring your laptops!)&lt;br /&gt;
* validate existing bugs on each platform&lt;br /&gt;
* mark bugs that can no longer be replicated as ready for closure&lt;br /&gt;
* create new tickets for bugs that have not been reported yet (please search first to avoid posting duplicates!)&lt;br /&gt;
* mark bugs that are duplicates&lt;br /&gt;
* provide additional diagnostics so that developers can replicate issues&lt;br /&gt;
&lt;br /&gt;
The idea is not to try to *fix* the bugs, but rather to do a QA session on the bugs in the bug tracker. In the process you will learn how to interact with an Open Source project the Right Way i.e. filing good quality bug reports.&lt;br /&gt;
&lt;br /&gt;
I will start off with a simple show and tell covering:&lt;br /&gt;
* where to find the QGIS (and other OSGeo projects bug tracking sites)&lt;br /&gt;
* creating an account so you can file non-anonymous bugs and feedback on any OSGeo project bug tracker&lt;br /&gt;
* how the bug tracking system works - what the various input fields in the QGIS tracker mean&lt;br /&gt;
&lt;br /&gt;
The approach will be to start by going through any bugs that have not been revised recently, adding additional status information. If you think the bug is fixed, add a comment:&lt;br /&gt;
&lt;br /&gt;
'''Works for me now, recommend closure, &amp;lt;Your Name&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
If you can replicate the bug, add a comment like:&lt;br /&gt;
&lt;br /&gt;
'''Can replicate, OS: Ubuntu 8.10, QGIS Preview 2, &amp;lt;Your Name&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Use your initiative to deal with tickets that don't fit into the categories above, following a similar approach.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After that I will turn you loose on the queue and a shiny copy of QGIS preview 2 and let you have at it. Party is over when the last man falls asleep at the keyboard! Ok probably we will finish at between 4:30pm and 5pm if my wife has anything to do with it!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We look forward to seeing you at the QGIS Bug Party!!!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Programme in a nutshell =&lt;br /&gt;
&lt;br /&gt;
* Be there in time for a 9am start&lt;br /&gt;
* Morning session: Introducing QGIS, PostGIS, GeoServer, uDig&lt;br /&gt;
* Afternoon session: QGIS Bug Party&lt;br /&gt;
&lt;br /&gt;
Note: There will be frequent rest breaks and lots of time to ask questions!&lt;br /&gt;
&lt;br /&gt;
'''1. Welcome, Introduction and Overview: Starting up (5 minutes)'''&lt;br /&gt;
&lt;br /&gt;
What am I looking at here? What do I need to do to get started?&lt;br /&gt;
&lt;br /&gt;
'''2. QGIS: Opening and viewing spatial data. Your first map. (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
What can I look at? How do I set up a simple map?  Toolbars and Plug-ins. &lt;br /&gt;
&lt;br /&gt;
'''3. PostGIS: Why use PostGIS? Simple example of loading data. (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
Why use a spatial database? What does one look like? How do I populate a spatial database and where does my data live?&lt;br /&gt;
&lt;br /&gt;
'''4. QGIS: Looking at PostGIS data from QGIS.  (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
View a PostGIS database from QGIS.  Setting up data definitions for PostGIS sources.  Loading data into PostGIS with the Spit Loader (no, please don't touch the screen!)&lt;br /&gt;
&lt;br /&gt;
'''5. PostGIS: More than a place to dump data... (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
PostGIS is not just good for storing data, one can manipulate it too! GIS can be done inside the database, which is rather nice when you think about it.&lt;br /&gt;
&lt;br /&gt;
'''6. uDig: Why uDig?  GIS and the Web.  (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
Getting GIS data ready for presentation on the Web! Editing SLDs.&lt;br /&gt;
&lt;br /&gt;
'''7. GeoServer: Tell everyone about it!  (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
Displaying GIS data on the web.  Grouped WMS.  Scale-dependent rendering.&lt;br /&gt;
&lt;br /&gt;
'''8. And more QGIS.'''&lt;br /&gt;
&lt;br /&gt;
Detail on symbology.  Topological editing. QML, SPD and Openlayers.  (15 minutes)&lt;br /&gt;
&lt;br /&gt;
'''9. Show off session'''&lt;br /&gt;
&lt;br /&gt;
Here we can do some whizz bang demo stuff that we don't have time to do in  workshop format but that will give you some hints as to what else can be achieved.&lt;br /&gt;
&lt;br /&gt;
'''10. General'''&lt;br /&gt;
&lt;br /&gt;
Questions and answers.  What you can do next.  Resources.  Possibly some in-depth examples based on frequent questions.  What would you like to see at future workshops?&lt;br /&gt;
&lt;br /&gt;
'''11. Your assessment of the workshop'''&lt;br /&gt;
&lt;br /&gt;
Tell us what you thought!&lt;br /&gt;
&lt;br /&gt;
= Workshop Notes =&lt;br /&gt;
&lt;br /&gt;
== Welcome, introductions and overview ==&lt;br /&gt;
&lt;br /&gt;
== Lets make a map - First steps with QGIS ==&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
* Open QGIS using the icon on the top Gnome Panel&lt;br /&gt;
* From the Layer menu, select '''Add Vector Layer'''&lt;br /&gt;
  Layer -&amp;gt; Add Vector Layer&lt;br /&gt;
* A dialog box will appear&lt;br /&gt;
* Navigate to &lt;br /&gt;
  /home/workshop/gisdata/za/brits/SAExplorer/&lt;br /&gt;
* Add the following layer :&lt;br /&gt;
  Provinces.shp&lt;br /&gt;
* Experiment with the '''map navigation toolbar''' to zoom in / out, pan, select etc features.&lt;br /&gt;
* Open the '''Layer properties dialog'''. There are several ways you can do this:&lt;br /&gt;
  1) Select the layer in the legend and then from the menu do Layer -&amp;gt; Properties&lt;br /&gt;
  or&lt;br /&gt;
  2) Right click on the layer in the legend and choose Properties from the context menu&lt;br /&gt;
  or&lt;br /&gt;
  3) Double click on the layer in the legend&lt;br /&gt;
* Familiarise yourself with the various panels in the vector properties dialog.&lt;br /&gt;
* Select the '''Symbology''' tab (second from the left)&lt;br /&gt;
* From the '''Style Options''' panel, choose a pleasing '''fill colour''' for the provinces then &lt;br /&gt;
  Click OK&lt;br /&gt;
&lt;br /&gt;
Or you can:&lt;br /&gt;
* Select the '''Legend Type''' as ''Unique Value''.  &lt;br /&gt;
* Set the '''Classification field''' to ''PROVNAME''&lt;br /&gt;
* Click on the '''Classify''' button to set '''different colours for each province'''.&lt;br /&gt;
  Click OK&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
'''Add''' the following layers (also from the /home/workshop/gisdata/za/brits/SAExplorer/ directory)&lt;br /&gt;
&lt;br /&gt;
  Transport_NationalRoads.shp&lt;br /&gt;
  Transport_Railways.shp&lt;br /&gt;
  RSATowns.shp&lt;br /&gt;
  Dams.shp&lt;br /&gt;
 &lt;br /&gt;
'''Zoom and pan''' around a little to explore your data'''&lt;br /&gt;
'''Symbolise''' each layer with an appropriate colour to make the most awe inspiring map.&lt;br /&gt;
&lt;br /&gt;
Activate the '''Identify features''' icon on the middle toolbar to identify the attribute values associated with a spatial feature for the layer highlighted in the Legend Box.&lt;br /&gt;
&lt;br /&gt;
Activate the '''Select Features''' icon next to Identify Features to select one or more features.  &lt;br /&gt;
&lt;br /&gt;
Open the attribute table to view all feature attributes. Note that selected features will have highlighted rows in the attribute table.  You can do this using the neighbouring '''Open Attribute Table''' icon, or by selecting the Open Attribute Table option on the context menu for the layer in the legend using right-click on the mouse.&lt;br /&gt;
&lt;br /&gt;
You can also select rows in the attribute table by:&lt;br /&gt;
* Left-clicking on the desired rows.&lt;br /&gt;
* Using the '''Search''' box at the bottom-left of the form.&lt;br /&gt;
* Selecting the '''Advanced''' button and opening the '''Search Query Builder'''. &lt;br /&gt;
&lt;br /&gt;
Save your project using &lt;br /&gt;
 File -&amp;gt; Save&lt;br /&gt;
&lt;br /&gt;
And put it into&lt;br /&gt;
 /home/workshop/gisdata/brits.qgs&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
In ten minutes you now know how to '''add vector layers''' into QGIS, '''pan and zoom''' to navigate the map, and set the colour of vectors using the '''Single Symbol''' or '''Unique Values''' options in the '''Layer Properties'''.&lt;br /&gt;
&lt;br /&gt;
You have also learnt how to use the interactive '''Identify''' and '''Select''' functions, '''opened attribute tables''' and found out how to '''search''' them.&lt;br /&gt;
&lt;br /&gt;
== More on QGIS Mapping ==&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
Add the vector layer '''Education_Schools2000.shp''' from the SAExplorer directory.  Notice how dense the points are!&lt;br /&gt;
&lt;br /&gt;
* Right-click on the schools layer in the Legend frame.&lt;br /&gt;
* Select '''Properties'''&lt;br /&gt;
* Select the '''General tab'''&lt;br /&gt;
* Check '''Use scale dependent rendering'''&lt;br /&gt;
* Set the maximum field to 1000000&lt;br /&gt;
&lt;br /&gt;
* Zoom out to view the whole country.    '''Notice that the schools no longer appear on the map!''' &lt;br /&gt;
* Now start zooming in, keeping an eye on the scale shown in the '''scale box''' at the bottom of the screen.&lt;br /&gt;
&lt;br /&gt;
 Notice how the schools points reappear when the scale decreases below 1:1000000&lt;br /&gt;
 &lt;br /&gt;
* From the Layer menu, select '''Add Raster Layer'''&lt;br /&gt;
  Layer -&amp;gt; Add Raster Layer&lt;br /&gt;
* A dialog box will appear&lt;br /&gt;
* Navigate to &lt;br /&gt;
  /home/workshop/gisdata/za/gauteng/&lt;br /&gt;
* Add the following layer :&lt;br /&gt;
 SOU-8_satellite.tif&lt;br /&gt;
&lt;br /&gt;
Notice that the image is largely in shades of greyish-brown, but that a dam can be seen towards the bottom of the image. &lt;br /&gt;
&lt;br /&gt;
* Open the Properties for the raster layer, in a similar way to that used for vector layers.&lt;br /&gt;
 Layer -&amp;gt; Properties&lt;br /&gt;
* Select the '''Transparency''' tab.&lt;br /&gt;
* Using the slider, set transparency to 25%&lt;br /&gt;
* Click OK&lt;br /&gt;
Notice how the you can now see the vector layers behind the satellite image.&lt;br /&gt;
 &lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
If you have not already done so, add the vector layers Transport_NationalRoads.shp and Transport_Mainroads.shp from /home/workshop/gisdata/za/brits/SAExplorer.&lt;br /&gt;
Set scale-dependent rendering so that the national roads display at all scales, while the main roads are only shown when you are zoomed in. &lt;br /&gt;
&lt;br /&gt;
Go to the satellite image properties, Symbology tab.  Try the different &amp;quot;Render as&amp;quot; options.  Then when you have found the one that suits you, have a look at the &amp;quot;Contast Enhancement&amp;quot; options.  Compare &amp;quot;No Stretch&amp;quot; and &amp;quot;Stretch to MinMax&amp;quot;.  &lt;br /&gt;
&lt;br /&gt;
Try &amp;quot;Render as Single Band Grey&amp;quot;.  Set the &amp;quot;Custom min/max values&amp;quot; radio button.  Change the Min and Max values.  Go to &amp;quot;Contract Enhancement&amp;quot; again and set it to &amp;quot;Stretch and Clip to MinMax&amp;quot;, and see the effect.&lt;br /&gt;
&lt;br /&gt;
Add raster images of 1: 50 000 map sheets from &amp;quot; /home/workshop/gisdata/za/brits/toposheet images&amp;quot; &lt;br /&gt;
You will need to set the Files of Type box to '''JPEG JFIF''' to see them, before you can select them.&lt;br /&gt;
Set their transparency to a value that allows you to see the vector features behind them.  Zoom in and look at how the vector features and image features match (or not!).&lt;br /&gt;
&lt;br /&gt;
Notice how you can zoom right in to vector data, and a point remains a point and a line remains a line.  When you zoom in to the satellite image it rapidly appears &amp;quot;blocky&amp;quot; compared to the 50 000 map sheets. Zoom in enough and even the map sheet raster blocks can be seen.  This is a basic difference between vector and raster data.&lt;br /&gt;
&lt;br /&gt;
=== What have I learnt? ===&lt;br /&gt;
&lt;br /&gt;
You have learnt to set scale-dependent rendering so that data sets are displayed at appropriate scales, how to add raster data and set raster display options.&lt;br /&gt;
&lt;br /&gt;
== Shapefiles shmapefiles....real (wo)men store their data in PostGIS ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
* '''Create''' a new PostgreSQL database. To do this, open the terminal application (icon to the right of Firefox icon on the top menu bar). Now at the prompt type the following command:&lt;br /&gt;
  createdb workshop&lt;br /&gt;
&lt;br /&gt;
* '''Verify''' your database exists (once again type this into the terminal)&lt;br /&gt;
  psql -l&lt;br /&gt;
* You should see something like this:&lt;br /&gt;
 workshop@heron:~$ psql -l&lt;br /&gt;
        List of databases&lt;br /&gt;
   Name    |  Owner   | Encoding &lt;br /&gt;
 -----------+----------+----------&lt;br /&gt;
 postgres  | postgres | UTF8&lt;br /&gt;
 template0 | postgres | UTF8&lt;br /&gt;
 template1 | postgres | UTF8&lt;br /&gt;
 workshop  | workshop | UTF8&lt;br /&gt;
 (4 rows)&lt;br /&gt;
* away from the terminal for a while - lets look at what a non-spatial, vanilla PostgreSQL database looks like. Open pgAdmin 3  (the icon with a blue elephant face)&lt;br /&gt;
* Double-click on the icon that has a red cross next to some text &amp;quot;gis (localhost:5432)&amp;quot; and press OK if another screen comes up. The database cluster called gis expands and you should see two databases: 'postgres' and 'workshop'. Expand workshop -&amp;gt; Schemas -&amp;gt; public&lt;br /&gt;
Specifically, let us look at Functions and Tables - don't look to deeply, this is just to show the differences after PostGIS is installed on the database (you will see later). Specifically, there is nothing in the db at the moment. So minimise pgAdmin and lets crack on with getting some data in!&lt;br /&gt;
&lt;br /&gt;
* Install the PostGIS spatial data extensions (again from the terminal).&lt;br /&gt;
'''Hint''' copy and paste these from the IRC channel or the wiki page!&lt;br /&gt;
 createlang plpgsql workshop&lt;br /&gt;
 psql workshop &amp;lt; /usr/share/postgresql-8.3-postgis/lwpostgis.sql&lt;br /&gt;
 psql workshop &amp;lt; /usr/share/postgresql-8.3-postgis/spatial_ref_sys.sql&lt;br /&gt;
&lt;br /&gt;
* Yegads! What did I just do? Firstly, you installed the '''plpgsql''' procedural language extensions into your PostgreSQL database. Then you ran two sql scripts which create the '''PostGIS''' spatial extensions to your database. You only need to do this '''once''' when you create a new spatial database, so don't worry about remembering those commands off by heart.&lt;br /&gt;
* Lets upload a shapefile into the database....once more into the black hole (terminal window).&lt;br /&gt;
 cd /home/workshop/gisdata/za/brits/SAExplorer&lt;br /&gt;
 shp2pgsql -I -s 4326 Dams.shp dams | psql -d workshop&lt;br /&gt;
* Erk! What does that all mean? Lets break it down:&lt;br /&gt;
 cd /home/workshop/gisdata/za/brits/SAExplorer - go to our data directory&lt;br /&gt;
 shp2pgsql - an application that loads shapefiles into a PostGIS database&lt;br /&gt;
 -I - an option to shp2pgsql telling it to create a spatial index&lt;br /&gt;
 -s - the coordinate reference system to use, expressed as an EPSG number. 4326 is the same as Lat/Long WGS84&lt;br /&gt;
 Dams.shp - the filename of the shapefile to load&lt;br /&gt;
 dams - the table name that the data should be loaded into&lt;br /&gt;
 | psql workshop - send the results of the shp2pgsql into the psql application, workshop database&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Lets take a peek inside our database now and see what we have - back to pgAdmin, click on the 'workshop' database icon and then refresh it (red/green circular arrows icon).&lt;br /&gt;
Three major things to look at:&lt;br /&gt;
 &lt;br /&gt;
 Hundreds of Functions for working with spatial data: &lt;br /&gt;
 * geometry constructors, &lt;br /&gt;
 * spatial predicates, &lt;br /&gt;
 * geometry editors, &lt;br /&gt;
 * geometry aggregators, &lt;br /&gt;
 * geometry accessors, &lt;br /&gt;
 * measurements, &lt;br /&gt;
 * linear referencing&lt;br /&gt;
 * and outputting  of spatial data. &lt;br /&gt;
 &lt;br /&gt;
 2 important meta-tables: (expand the Tables object)&lt;br /&gt;
 * geometry_columns (for describing the different spatial datasets) - right-click -&amp;gt; &lt;br /&gt;
 * and spatial_ref_sys(a list of projections/coordinate systems and different representations thereof)&lt;br /&gt;
&lt;br /&gt;
 A 'dams' table which, when expanded should show a bunch of Columns, Constraints (e.g. Primary Key), Indexes, Rules and Triggers. &lt;br /&gt;
 * Note the geometry type of column 'the_geom'. &lt;br /&gt;
 * Also note the spatial index present - this allows for optimal retrieval of data based on the spatial properties of the data.&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
'''Load''' the following layers (also from the /home/workshop/gisdata/za/brits/SAExplorer/ directory)&lt;br /&gt;
&lt;br /&gt;
 Hydrology_DWAFRivers.shp -&amp;gt; call the table 'rivers'&lt;br /&gt;
 Transport_Mainroads.shp -&amp;gt; call the table 'roads'&lt;br /&gt;
 ProvincialBoundary.shp -&amp;gt; call the table 'provinces'&lt;br /&gt;
&lt;br /&gt;
And to show that this can scale a bit, let us load in the background a dataset of over 350 000 points (which we will use a bit later)&lt;br /&gt;
 * cd /home/workshop/gisdata/za/fire/modis_af/&lt;br /&gt;
 * shp2pgsql -I -s 4326 modis_af.shp fires | psql -d workshop  &amp;amp;&amp;gt; /dev/null (puts output into background)&lt;br /&gt;
 * shp2pgsql -I -s -D 4326 modis_af.shp fires | psql -d workshop (simpler and faster)&lt;br /&gt;
&lt;br /&gt;
=== Super duper advanced ===&lt;br /&gt;
&lt;br /&gt;
What if I want to load a batch of shapefiles in a directory in 1 go? Try this nifty bash script one liner!&lt;br /&gt;
&lt;br /&gt;
 for FILE in `ls *.shp`; do TABLE=`echo $FILE | sed 's/\.shp//g'`; echo $TABLE;shp2pgsql -I -s 4326 $FILE $TABLE | psql -d workshop; done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This takes a while so lets move on.&lt;br /&gt;
&lt;br /&gt;
=== What have I learnt? ===&lt;br /&gt;
&lt;br /&gt;
* PostgreSQL is an enterprise-ready relational database management system - and it's Free and Open Source Software&lt;br /&gt;
* You can create a new database using the '''createdb''' command.&lt;br /&gt;
* '''PostGIS''' is a add-on to PostgreSQL that lets you store spatial data and carry out spatial analysis within the database.&lt;br /&gt;
* In order to set up PostGIS you need to run a couple of SQL scripts&lt;br /&gt;
* '''shp2pgsql''' is a command line application that lets you load shapefiles into your spatial datastore&lt;br /&gt;
&lt;br /&gt;
== Using PostGIS data from QGIS ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
Once your data is in PostGIS, its easy to share across your organisation. Because it's in a database you get row level locking (instead of file locking in a shapefile), so many users can be editing and viewing data at the same time. There are many clients that let you visualise your PostGIS data..lets take a look at how we do it in QGIS.&lt;br /&gt;
&lt;br /&gt;
* Open QGIS&lt;br /&gt;
* Start a new project&lt;br /&gt;
  File -&amp;gt; New Project&lt;br /&gt;
* Add a PostGIS layer&lt;br /&gt;
  Layer -&amp;gt; Add PostGIS Layer&lt;br /&gt;
* From the connections list, choose '''workshop'''&lt;br /&gt;
  Click connect&lt;br /&gt;
* In the table list, click on '''dams'''&lt;br /&gt;
  Click Add&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
* Add the following layers from your database&lt;br /&gt;
 rivers&lt;br /&gt;
 roads&lt;br /&gt;
 provinces&lt;br /&gt;
&lt;br /&gt;
* set some nice colors for your layers - notice how the process is exactly the same as when setting colours for a shapefile.&lt;br /&gt;
&lt;br /&gt;
* save your project into&lt;br /&gt;
&lt;br /&gt;
 /home/workshop/gisdata/brits_pg.qgs&lt;br /&gt;
&lt;br /&gt;
=== What have I learnt? ===&lt;br /&gt;
&lt;br /&gt;
* You can '''visualise''' PostGIS spatial database tables inside QGIS&lt;br /&gt;
* To add a PostGIS layer, use the '''Layer -&amp;gt; Add PostGIS Layer''' menu option.&lt;br /&gt;
* Once a PostGIS layer, you can treat it just like any other (e.g. shapefile) layer&lt;br /&gt;
* Your presenters are truly amazing....however would I have figured this stuff out for my self :-)&lt;br /&gt;
&lt;br /&gt;
== More on PostGIS Data in QGIS ==&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
* Click on the '''Blue Elephant''' icon in the middle toolbar row to start SPIT loader.&lt;br /&gt;
* Select the PostgreSQL Connection as &amp;quot;workshop&amp;quot;.&lt;br /&gt;
* Click on Connect to verify your connection&lt;br /&gt;
* Now click &amp;quot;Add&amp;quot; - the &amp;quot;Add Shapefile&amp;quot; dialog box comes up. &lt;br /&gt;
&lt;br /&gt;
Navigate to /home/workshop/gisdata/za/brits/SAExplorer.&lt;br /&gt;
&lt;br /&gt;
* Select &amp;quot;Rsatowns.shp&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 Click &amp;quot;Open&amp;quot;.  PostGIS scans the file and lists it in the display frame.&lt;br /&gt;
&lt;br /&gt;
 Click &amp;quot;OK&amp;quot;.  QGIS loads the shapefile data into PostGIS with no need to use the terminal!&lt;br /&gt;
&lt;br /&gt;
* Use Layer -&amp;gt; Add PostGIS Layer to load the layer from PostGIS directly into QGIS.  &lt;br /&gt;
&lt;br /&gt;
* Now add the rivers PostGIS layer to QGIS to see another advantage of using PostGIS layers.&lt;br /&gt;
* Open the Layer properties form.  &lt;br /&gt;
* On the General tab, click &amp;quot;Query Builder&amp;quot; near the bottom right-hand corner. This opens the Query Builder. &lt;br /&gt;
* Click Field &amp;quot;RIVER_CLAS&amp;quot;.&lt;br /&gt;
* Click the &amp;quot;All&amp;quot; button under the &amp;quot;Values&amp;quot; frame.&lt;br /&gt;
* Build the Query &lt;br /&gt;
 &amp;quot;RIVER_CLAS&amp;quot; LIKE 'Perennial' OR &amp;quot;RIVER_CLAS&amp;quot; LIKE 'Perennial river'&lt;br /&gt;
* Click &amp;quot;Test&amp;quot; to check that it will work.&lt;br /&gt;
* Click &amp;quot;OK&amp;quot; twice to apply it.&lt;br /&gt;
&lt;br /&gt;
Now look at the display - the query has not merely highlighted the selected features, it has filtered the non-selected features out so that they are not displayed.  &lt;br /&gt;
&lt;br /&gt;
=== Now you try ===&lt;br /&gt;
&lt;br /&gt;
* Try loading other layers into PostGIS using the Spit loader.&lt;br /&gt;
* Load these into QGIS, and use the &amp;quot;Query Builder&amp;quot; to define the data sets that you want to see.&lt;br /&gt;
* You could define the non-perennial rivers as a separate data set, and use scale-dependent rendering to show them only when you zoom right in.&lt;br /&gt;
&lt;br /&gt;
=== What I have learnt ===&lt;br /&gt;
&lt;br /&gt;
How to rapidly load data into postgis using the spit loader.  How to set up data queries to filter spatial data display from postgis.&lt;br /&gt;
&lt;br /&gt;
== The Zen of PostGIS - not just a pretty place to store data! ==&lt;br /&gt;
&lt;br /&gt;
Okay, we will go a bit deeper into the woods here! We want to show that with some SQL (I won't say simple) you can do some complex - and repeatable - spatial analysis right inside your database, and then visualise the results in various clients.&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
We will use pgAdmin (your great PostgreSQL friend) to get this happening. Click on the Tables object of your workshop db. Then Tools -&amp;gt; Query tool from the menu. This should present a dialog box with 3 panels.&lt;br /&gt;
&lt;br /&gt;
We are going to do a simple intersection to get started.&lt;br /&gt;
In the top left panel paste &lt;br /&gt;
 SELECT roads.gid, roads.code, roads.route_nr, roads.shape_leng, roads.the_geom FROM roads, rivers WHERE (roads.the_geom &amp;amp;&amp;amp; rivers.the_geom AND intersects(roads.the_geom, rivers.the_geom));&lt;br /&gt;
and click Query -&amp;gt; Execute&lt;br /&gt;
This should take a few seconds, then you will see a result returned into the Data Output grid. Something like 3338 rows are returned from the original roads dataset of 11964.&lt;br /&gt;
&lt;br /&gt;
So what is going on here?&lt;br /&gt;
&lt;br /&gt;
You are performing a spatial overlay with a SQL query, asking the database to return records from the roads table that spatially intersect records from the rivers table. &lt;br /&gt;
* the &amp;amp;&amp;amp; operator is a fast bounding box 'overlaps' test that takes advantage of the spatial indexes of the table to narrow the search space for the true intersection test.&lt;br /&gt;
* the intersects part of the query tests the geometries of the subset selected above for spatial intersection and returns a result.&lt;br /&gt;
&lt;br /&gt;
To show some other functionality, paste the following text into the query window and execute:&lt;br /&gt;
 ALTER TABLE roads DROP CONSTRAINT enforce_srid_the_geom;UPDATE geometry_columns SET srid = 4148 WHERE f_table_name = 'roads';COMMIT; UPDATE roads SET the_geom = ST_Transform(the_geom,4148);COMMIT; ALTER TABLE roads ADD CONSTRAINT enforce_srid_the_geom CHECK (srid(the_geom) = 4148);&lt;br /&gt;
We are being good South African GIS types and using our Haartebeesthoek94 Datum. Lets do the same for rivers:&lt;br /&gt;
 ALTER TABLE rivers DROP CONSTRAINT enforce_srid_the_geom;UPDATE geometry_columns SET srid = 4148 WHERE f_table_name = 'rivers';COMMIT; UPDATE rivers SET the_geom = ST_Transform(the_geom,4148);COMMIT; ALTER TABLE rivers ADD CONSTRAINT enforce_srid_the_geom CHECK (srid(the_geom) = 4148);&lt;br /&gt;
&lt;br /&gt;
This looks fairly intense, but the main points are the changing of the data in the geometry_columns meta-table and then updating the geometries in each table to a different CRS (4148, or Haartebeesthoek94). We demonstrate the use of the UPDATE SQL command, used to change data in the database, and the use of the ST_Transform function of PostGIS, which does the work. Now lets try the original query again:&lt;br /&gt;
 SELECT roads.gid, roads.code, roads.route_nr, roads.shape_leng, roads.the_geom FROM roads, rivers WHERE st_intersects(roads.the_geom, rivers.the_geom);&lt;br /&gt;
...which returns the same number of features, but in our own CRS. Note that we have used the ST_Intersects function rather than the Intersects function as previously shown. ST_ type functions are more standards compliant, so should be used in place of the older style functions.&lt;br /&gt;
Ideally we would project the data as appropriate, using the very same technique, but substituting 4148 for the EPSG code for our projection of choice. This is a demo though, folks, so I will get away with murder...&lt;br /&gt;
Lets quickly repeat the process for the other datasets we will use in a minute:&lt;br /&gt;
 ALTER TABLE provinces DROP CONSTRAINT enforce_srid_the_geom;UPDATE geometry_columns SET srid = 4148 WHERE f_table_name = 'provinces';COMMIT; UPDATE provinces SET the_geom = ST_Transform(the_geom,4148);COMMIT; ALTER TABLE provinces ADD CONSTRAINT enforce_srid_the_geom CHECK (srid(the_geom) = 4148);&lt;br /&gt;
 ALTER TABLE fires DROP CONSTRAINT enforce_srid_the_geom;UPDATE geometry_columns SET srid = 4148 WHERE f_table_name = 'fires';COMMIT; UPDATE fires SET the_geom = ST_Transform(the_geom,4148);COMMIT; ALTER TABLE fires ADD CONSTRAINT enforce_srid_the_geom CHECK (srid(the_geom) = 4148);&lt;br /&gt;
&lt;br /&gt;
So, while that goes ahead (it will take a minute or so to transform 350k points), let us think out another analysis. Lets make it a bit tricky. Okay, we want to create a table for serving up data to the outside world (Gavin will do this later) that has all the intense fires in Gauteng or NorthWest Province, that have occurred within 3000 metres of a main road. There are many ways to skin this cat in PostGIS, so I will pick a method and explain why I did so.&lt;br /&gt;
First, a convenience table is created:&lt;br /&gt;
 SELECT roads.gid, ST_Buffer(roads.the_geom,0.027) AS geom INTO roads_buffer FROM roads, (SELECT * FROM provinces WHERE prov_code = 'GT' OR prov_code = 'NW') AS prov WHERE ST_Within(roads.the_geom, prov.the_geom);&lt;br /&gt;
This is a table of polygons representing ~3000 metre road buffers, and note the use of the function to populate the geometry_columns meta-table with our new layer.&lt;br /&gt;
 SELECT DISTINCT fires.gid, fires.frp, fires.acqdatetim, fires.the_geom INTO fires_analysis_3000m FROM fires, (SELECT * FROM provinces WHERE prov_code = 'GT' OR prov_code = 'NW') AS prov, roads_buffer  WHERE fires.frp &amp;gt; 200 AND ST_Within(fires.the_geom, prov.the_geom) AND ST_Within(fires.the_geom, roads_buffer.geom);&lt;br /&gt;
The main feature of this query is the longish WHERE clause, which tests weather the fire is intense, whether it falls within Gauteng or NW Province and whether the fire occurred within appx 3000 metres of one of our main roads.&lt;br /&gt;
&lt;br /&gt;
There are not too many fires that fall out of this analysis, but it shows how we have relatively easily worked with and reduced a large dataset to a few points. These queries can be further tuned to take advantage of spatial and other indexes, but that is perhaps for another time.&lt;br /&gt;
&lt;br /&gt;
The final thing we will do is prepare this layer for use on the web...&lt;br /&gt;
 INSERT INTO geometry_columns(f_table_catalog,f_table_schema,f_table_name,f_geometry_column,coord_dimension,srid,&amp;quot;type&amp;quot;) VALUES('','public','fires_analysis_3000m','the_geom',2,4148,'MULTIPOINT');&lt;br /&gt;
Normal meta-table stuff&lt;br /&gt;
 ALTER TABLE fires_analysis_3000m ADD PRIMARY KEY (gid);&lt;br /&gt;
And if we wanted to we could add a spatial index:&lt;br /&gt;
 CREATE INDEX fires_Analysis_3000m_the_geom_gist ON fires_Analysis_3000m USING gist(the_geom);&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
Well, no you do not - but you can ask questions...&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
Well, hopefully a fair bit. You can, with a bit of practice and reading up on the matter, get PostGIS to do some rather interesting and powerful things. We have just seen a database do GIS... Some of you may be in the know about such matters, but hopefully this shows some possibilities to others.&lt;br /&gt;
&lt;br /&gt;
== uDig ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
uDig ('user-friendly desktop internet GIS') is another excellent desktop GIS. let's check out the basics&lt;br /&gt;
&lt;br /&gt;
* Open uDig&lt;br /&gt;
* start adding layers (note the variety of data that can be used)&lt;br /&gt;
** Add a PostGIS layer&lt;br /&gt;
** add a shapefile&lt;br /&gt;
* theme the layers&lt;br /&gt;
* check out the table view, catalogue and some functionality&lt;br /&gt;
&lt;br /&gt;
There's no need to save projects - you can just close uDig and it will save automatically. Note &lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
* Add the following layers from your database&lt;br /&gt;
 rivers, dams, schools, roads, more if you like&lt;br /&gt;
&lt;br /&gt;
* theme the school layer with nice symbols and labels - we're going to try scale-dependent rendering&lt;br /&gt;
**zoom in closer than 1:50000 and set the max scale to 50000&lt;br /&gt;
**on the theme dialog, click XML&lt;br /&gt;
**select the &amp;lt;rule&amp;gt;&amp;lt;/rule&amp;gt; section and copy it to a text editor.&lt;br /&gt;
**zoom out beyond 50000, go back to 'theme' and simplify your symbols, removing the labels.&lt;br /&gt;
**set the min scale to 50000&lt;br /&gt;
**click 'XML'&lt;br /&gt;
**paste the previous 'rule' into the XML, before or after the one you see.&lt;br /&gt;
**click OK! now zoom in and out past to see the result. &lt;br /&gt;
 &lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
* Viewing and rendering different formats in uDig&lt;br /&gt;
* Theming with SLD (Styled layer descriptor), the OGC standard.&lt;br /&gt;
* scale-dependent rendering&lt;br /&gt;
** with a point - we're going to come back to uDig!&lt;br /&gt;
&lt;br /&gt;
== GeoServer ==&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
 cd&lt;br /&gt;
 export JAVA_HOME=/usr&lt;br /&gt;
 cd Apps/geoserver&lt;br /&gt;
 bin/startup.sh&lt;br /&gt;
&lt;br /&gt;
* Start geoserver (normally set to start automatically and run all the time)&lt;br /&gt;
* All admin is done via the web&lt;br /&gt;
* set up a namespace&lt;br /&gt;
* set up data stores&lt;br /&gt;
* set up feature types&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
* start GeoServer&lt;br /&gt;
* click Config -&amp;gt; Data&lt;br /&gt;
* Set Namespace to any name and any url&lt;br /&gt;
* Set Datastore to your postGIS database&lt;br /&gt;
* define a FeatureType for schools, choose a point style&lt;br /&gt;
'''Styling'''&lt;br /&gt;
*Go to Data -&amp;gt; Style -&amp;gt; new&lt;br /&gt;
**give your style a name and paste in your school SLD from uDig&lt;br /&gt;
**submit&lt;br /&gt;
**Go back to FeatureTypes and Edit your schools Feature, applying your new style&lt;br /&gt;
**Check out the results in the GeoServer demo pages&lt;br /&gt;
&lt;br /&gt;
'''Group layers'''&lt;br /&gt;
* Set up a group in the 'WMS' section&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Back to uDig&lt;br /&gt;
*bring in a WMS layer from http://localhost/geoserver:8080/wms&lt;br /&gt;
*bring in the same layer as WFS&lt;br /&gt;
**theme it&lt;br /&gt;
**save it as a shapefile&lt;br /&gt;
*try this with QGIS too (and with ArcGIS back at the office!)&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
* you can use GeoServer to serve your spatial data from any source as WMS, WFS, KML and more!&lt;br /&gt;
* You can use WMS and WFS layers in a desktop GIS&lt;br /&gt;
* impress your colleagues by sending them kml links from your geoserver so they can view them live in Google Earth!&lt;br /&gt;
&lt;br /&gt;
== More Advanced QGIS Use ==&lt;br /&gt;
Here are some more things you can do with QGIS!  Don't be put off by the heading of this section, we'll take you through step-by-step as before..&lt;br /&gt;
&lt;br /&gt;
=== ''Quick Qml with QGIS'' ===&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
If you have used  ArcView before, you might have used the avl feature which lets you store the symbology settings for a layer. QGIS has a similar feature called 'qml' which lets you create default symbology settings for a layer, that will be applied when ever that layer is loaded. We are also going to take a quick peek at how to create more complex symbology for a layer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Open QGIS if its not already running.&lt;br /&gt;
* Add the dams layer from the Postgresql 'Workshop' database&lt;br /&gt;
* Double click on the layer entry in the legend&lt;br /&gt;
* Activate the symbology tab&lt;br /&gt;
* Now change the legend type to '''Graduated Symbol'''&lt;br /&gt;
* Change the classification field to '''shape_area'''&lt;br /&gt;
* Set the '''number of classes''' to 5&lt;br /&gt;
* Click the '''classify''' button&lt;br /&gt;
* Click the '''Apply''' button&lt;br /&gt;
&lt;br /&gt;
You should see the shapes in the main window have now adopted a range of scintillating colours! However is you add that layer to another QGIS project you would normally have to do all this work again! Qml to the rescue.&lt;br /&gt;
&lt;br /&gt;
* Save your symbology settings by clicking the '''save as default''' button&lt;br /&gt;
&lt;br /&gt;
Ok lets test it out!&lt;br /&gt;
&lt;br /&gt;
* Close QGIS&lt;br /&gt;
* Reopen QGIS&lt;br /&gt;
* Add the Dams layer from the Postgresql 'Workshop' database&lt;br /&gt;
&lt;br /&gt;
If the planets are correctly aligned, your dams will appear all beautifully coloured according to your personal preference.&lt;br /&gt;
&lt;br /&gt;
If you want to you can also save your settings as non-default, and them restore them by selecting a .qml file again later. Refer to the '''Load style''' and '''Save style''' buttons on the vector properties dialog.&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
Ok give it a whirl, create default appearances for your other layers stored in your PostGIS database. Also try experimenting with the other legend types such as '''Continuous Colour''' and '''Unique Value'''. &lt;br /&gt;
Once you have set your default appearances, close QGIS and then reopen it. Now add all your PostGIS layers to the blank project and they should all magically appear with your preferred appearance.&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
The '''Layer Properties''' dialog in QGIS will let you specify the '''default appearance''' for a layer.&lt;br /&gt;
&lt;br /&gt;
=== ''Setting Projections'' ===&lt;br /&gt;
Projections are a mathematical way of transforming latitude and longitude coordinates into a form that can be meaningfully used in a map.  Sources to be added.&lt;br /&gt;
Some projections in common use in South Africa are the Albers Equal Area, Lamberts Conformal Conic and Gauss (LO) projections.&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
* Make sure that you are zoomed in to Gauteng.&lt;br /&gt;
* From the File menu, select Project Properties.&lt;br /&gt;
  File -&amp;gt; Project Properties&lt;br /&gt;
* Activate the Coordinate Reference System tab&lt;br /&gt;
* Check &amp;quot;Enable &amp;quot;on the fly&amp;quot; CRS Transformation&lt;br /&gt;
* Note that the current Coordinate Reference System is WGS84, which is a standard for displaying geographic coordinates.&lt;br /&gt;
* Look at the column EPSG - this a standard for identifying coordinate systems.  When you have selected a coordinate system you can always find it again quickly by noting the EPSG code and entering it into the '''Find box''' at the bottom of the form.&lt;br /&gt;
* Highlight the ''Projected Coordinate Systems&amp;quot; heading, and double-click to open the list.&lt;br /&gt;
* Scroll down and highlight the &amp;quot;Universal Transverse Mercator&amp;quot; heading.&lt;br /&gt;
* Select the '''Name''' radio button.&lt;br /&gt;
* Enter &amp;quot;33S&amp;quot; in the text box, and press find.  Keep pressing find until you get to &amp;quot;WGS 84/UTM Zone 33&amp;quot;.  &lt;br /&gt;
 Or select the EPSG ID radio button, enter 32733 and press the Find button.    Isn't that easier?&lt;br /&gt;
* Notice that the overall shape of the country has changed due to the projection.&lt;br /&gt;
* Zoom into Gauteng again.  Move your cursor and look at the coordinates shown at the bottom of the screen.  Notice how they have changed.  They are now in meters rather than decimal degrees.&lt;br /&gt;
&lt;br /&gt;
=== Now You Try! ===&lt;br /&gt;
First of all try a related projection such as UTM Zone 34S or UTM 38S, and see what the impact is.  Move your cursor around - how do the coordinates differ from ones shown under UTM 36S?&lt;br /&gt;
&lt;br /&gt;
Then try one of the Stereographic South projections, such as EPSG=3031,  for a very different view of South Africa!&lt;br /&gt;
&lt;br /&gt;
QGIS calculates the effect of the projection before displaying the data and doesn't make any changes, so you can try anything you like!&lt;br /&gt;
&lt;br /&gt;
=== What have I learnt? ===&lt;br /&gt;
You have learnt how to set an on-the-fly projection for display in QGIS, and how to use EPSG codes to rapidly find a specific projection. Remember, if you are trying to develop a map for use in the field you will need to use a projection specific to South Africa.&lt;br /&gt;
&lt;br /&gt;
=== ''Editing Vector Data'' ===&lt;br /&gt;
Have a look at the boundary of the Eastern and Western Cape on the coast.  The rivers and provincial boundary seem to follow each other closely. Now zoom right in and notice how the provincial boundary is much more detailed than the rivers, and they don't follow each other well at all.&lt;br /&gt;
&lt;br /&gt;
QGIS to the rescue!&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
=== Now You Try! ===&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Africa]]&lt;/div&gt;</summary>
		<author><name>Wiki-Brendonwp</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=AfricaEvents29November2008&amp;diff=32737</id>
		<title>AfricaEvents29November2008</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=AfricaEvents29November2008&amp;diff=32737"/>
		<updated>2008-12-01T08:29:15Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Brendonwp: /* What have I learned? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;...back to [[Africa_Local_Chapter]]&lt;br /&gt;
&lt;br /&gt;
= What? =&lt;br /&gt;
&lt;br /&gt;
Our first OSGeo local chapter meet up! We will chew the cud, show you some cool stuff and start to get people familiar with the brilliant FOSS GeoSpatial products out there!&lt;br /&gt;
&lt;br /&gt;
We'll go through installing some software and getting it to a point where you can have fun with it. &lt;br /&gt;
&lt;br /&gt;
= How Much? =&lt;br /&gt;
&lt;br /&gt;
There will be a door charge of R50 to cover costs &amp;amp; refreshments. That and an open mind are all you need to bring. If you're staying for the QGIS session in the afternoon you can bring your laptop (Windows, Linux or Mac!)&lt;br /&gt;
&lt;br /&gt;
= Where? =&lt;br /&gt;
&lt;br /&gt;
 St Davids Marist Inanda College&lt;br /&gt;
 36 Rivonia Rd&lt;br /&gt;
 Inanda&lt;br /&gt;
 Sandton&lt;br /&gt;
[http://www.stdavids.co.za/about_directions.asp Map and Directions]&lt;br /&gt;
&lt;br /&gt;
NB: We'll be in the Prep School computer lab.&lt;br /&gt;
&lt;br /&gt;
= When? =&lt;br /&gt;
&lt;br /&gt;
* November 29th&lt;br /&gt;
* Presentation and workshop segment: 9am to 12pm&lt;br /&gt;
* QGIS Bug Party! 12h30 onwards&lt;br /&gt;
&lt;br /&gt;
= Who =&lt;br /&gt;
&lt;br /&gt;
Your friendly presenters for the day will be:&lt;br /&gt;
&lt;br /&gt;
* '''Tim Sutton''' (tim at linfiniti.com) - QGIS hacker and FOSS GIS junkie extraordinaire. Tim eats Weetbix for breakfast because it sounds like Linux. He once rewrote Nkosi Sikelela in C++ because he was feeling patriotic.&lt;br /&gt;
* '''Graeme McFerren''' - (graeme.mcferren at gmail.com) - GIS researcher and FOSS4G user. Mmm, aspire to be like Tim then.&lt;br /&gt;
* '''Gavin Fleming''' (gavinjfleming at gmail dot com) - I enjoy my daily FOSS4G fix and telling people how great it was. I'm a 'geoinformation scientist' at Mintek and love to see cutting edge and useful geospatial applications emerging. &lt;br /&gt;
* '''Brendon Wolff-Piggott''' - (brendon at integratedgeodata.co.za) - Water resources consultant and FOSS GIS enthusiast.  I wish there were more hours in the day to keep up with FOSS4G!&lt;br /&gt;
&lt;br /&gt;
= RSVP =&lt;br /&gt;
Let gavinjfleming at gmail dot com know if you're coming as numbers are limited. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= QGIS Bug Party =&lt;br /&gt;
&lt;br /&gt;
As a preview release there are still various bugs that need resolving and various elements (e.g. translation) that may be incomplete. On Saturday the 29th in Johannesburg, South Africa, members from the Africa OSGeo chapter will be holding a QGIS Bug Hunt Party. We would like to invite people from around the world to virtually participate. Each person attending will get a free copy of QGIS 1.0.0 Preview 2 absolutely free of charge! Sorry no shrink wrap copies available. Preview 2 is the second in a series of preview releases we are making before we release the Stable QGIS 1.0.0 with long term support. &lt;br /&gt;
We are going to great lengths to polish up QGIS 1.0 for you (inside and out) and we really appreciate all the feedback we have received thus far. Its virtually impossible to ship any software completely bug free, but with your help we can add just a little more shine to the polish! We need your help to:&lt;br /&gt;
&lt;br /&gt;
* test on different machine configurations (bring your laptops!)&lt;br /&gt;
* validate existing bugs on each platform&lt;br /&gt;
* mark bugs that can no longer be replicated as ready for closure&lt;br /&gt;
* create new tickets for bugs that have not been reported yet (please search first to avoid posting duplicates!)&lt;br /&gt;
* mark bugs that are duplicates&lt;br /&gt;
* provide additional diagnostics so that developers can replicate issues&lt;br /&gt;
&lt;br /&gt;
The idea is not to try to *fix* the bugs, but rather to do a QA session on the bugs in the bug tracker. In the process you will learn how to interact with an Open Source project the Right Way i.e. filing good quality bug reports.&lt;br /&gt;
&lt;br /&gt;
I will start off with a simple show and tell covering:&lt;br /&gt;
* where to find the QGIS (and other OSGeo projects bug tracking sites)&lt;br /&gt;
* creating an account so you can file non-anonymous bugs and feedback on any OSGeo project bug tracker&lt;br /&gt;
* how the bug tracking system works - what the various input fields in the QGIS tracker mean&lt;br /&gt;
&lt;br /&gt;
The approach will be to start by going through any bugs that have not been revised recently, adding additional status information. If you think the bug is fixed, add a comment:&lt;br /&gt;
&lt;br /&gt;
'''Works for me now, recommend closure, &amp;lt;Your Name&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
If you can replicate the bug, add a comment like:&lt;br /&gt;
&lt;br /&gt;
'''Can replicate, OS: Ubuntu 8.10, QGIS Preview 2, &amp;lt;Your Name&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Use your initiative to deal with tickets that don't fit into the categories above, following a similar approach.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After that I will turn you loose on the queue and a shiny copy of QGIS preview 2 and let you have at it. Party is over when the last man falls asleep at the keyboard! Ok probably we will finish at between 4:30pm and 5pm if my wife has anything to do with it!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We look forward to seeing you at the QGIS Bug Party!!!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Programme in a nutshell =&lt;br /&gt;
&lt;br /&gt;
* Be there in time for a 9am start&lt;br /&gt;
* Morning session: Introducing QGIS, PostGIS, GeoServer, uDig&lt;br /&gt;
* Afternoon session: QGIS Bug Party&lt;br /&gt;
&lt;br /&gt;
Note: There will be frequent rest breaks and lots of time to ask questions!&lt;br /&gt;
&lt;br /&gt;
'''1. Welcome, Introduction and Overview: Starting up (5 minutes)'''&lt;br /&gt;
&lt;br /&gt;
What am I looking at here? What do I need to do to get started?&lt;br /&gt;
&lt;br /&gt;
'''2. QGIS: Opening and viewing spatial data. Your first map. (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
What can I look at? How do I set up a simple map?  Toolbars and Plug-ins. &lt;br /&gt;
&lt;br /&gt;
'''3. PostGIS: Why use PostGIS? Simple example of loading data. (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
Why use a spatial database? What does one look like? How do I populate a spatial database and where does my data live?&lt;br /&gt;
&lt;br /&gt;
'''4. QGIS: Looking at PostGIS data from QGIS.  (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
View a PostGIS database from QGIS.  Setting up data definitions for PostGIS sources.  Loading data into PostGIS with the Spit Loader (no, please don't touch the screen!)&lt;br /&gt;
&lt;br /&gt;
'''5. PostGIS: More than a place to dump data... (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
PostGIS is not just good for storing data, one can manipulate it too! GIS can be done inside the database, which is rather nice when you think about it.&lt;br /&gt;
&lt;br /&gt;
'''6. uDig: Why uDig?  GIS and the Web.  (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
Getting GIS data ready for presentation on the Web! Editing SLDs.&lt;br /&gt;
&lt;br /&gt;
'''7. GeoServer: Tell everyone about it!  (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
Displaying GIS data on the web.  Grouped WMS.  Scale-dependent rendering.&lt;br /&gt;
&lt;br /&gt;
'''8. And more QGIS.'''&lt;br /&gt;
&lt;br /&gt;
Detail on symbology.  Topological editing. QML, SPD and Openlayers.  (15 minutes)&lt;br /&gt;
&lt;br /&gt;
'''9. Show off session'''&lt;br /&gt;
&lt;br /&gt;
Here we can do some whizz bang demo stuff that we don't have time to do in  workshop format but that will give you some hints as to what else can be achieved.&lt;br /&gt;
&lt;br /&gt;
'''10. General'''&lt;br /&gt;
&lt;br /&gt;
Questions and answers.  What you can do next.  Resources.  Possibly some in-depth examples based on frequent questions.  What would you like to see at future workshops?&lt;br /&gt;
&lt;br /&gt;
'''11. Your assessment of the workshop'''&lt;br /&gt;
&lt;br /&gt;
Tell us what you thought!&lt;br /&gt;
&lt;br /&gt;
= Workshop Notes =&lt;br /&gt;
&lt;br /&gt;
== Welcome, introductions and overview ==&lt;br /&gt;
&lt;br /&gt;
== Lets make a map - First steps with QGIS ==&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
* Open QGIS using the icon on the top Gnome Panel&lt;br /&gt;
* From the Layer menu, select '''Add Vector Layer'''&lt;br /&gt;
  Layer -&amp;gt; Add Vector Layer&lt;br /&gt;
* A dialog box will appear&lt;br /&gt;
* Navigate to &lt;br /&gt;
  /home/workshop/gisdata/za/brits/SAExplorer/&lt;br /&gt;
* Add the following layer :&lt;br /&gt;
  Provinces.shp&lt;br /&gt;
* Experiment with the '''map navigation toolbar''' to zoom in / out, pan, select etc features.&lt;br /&gt;
* Open the '''Layer properties dialog'''. There are several ways you can do this:&lt;br /&gt;
  1) Select the layer in the legend and then from the menu do Layer -&amp;gt; Properties&lt;br /&gt;
  or&lt;br /&gt;
  2) Right click on the layer in the legend and choose Properties from the context menu&lt;br /&gt;
  or&lt;br /&gt;
  3) Double click on the layer in the legend&lt;br /&gt;
* Familiarise yourself with the various panels in the vector properties dialog.&lt;br /&gt;
* Select the '''Symbology''' tab (second from the left)&lt;br /&gt;
* From the '''Style Options''' panel, choose a pleasing '''fill colour''' for the provinces then &lt;br /&gt;
  Click OK&lt;br /&gt;
&lt;br /&gt;
Or you can:&lt;br /&gt;
* Select the '''Legend Type''' as ''Unique Value''.  &lt;br /&gt;
* Set the '''Classification field''' to ''PROVNAME''&lt;br /&gt;
* Click on the '''Classify''' button to set '''different colours for each province'''.&lt;br /&gt;
  Click OK&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
'''Add''' the following layers (also from the /home/workshop/gisdata/za/brits/SAExplorer/ directory)&lt;br /&gt;
&lt;br /&gt;
  Transport_NationalRoads.shp&lt;br /&gt;
  Transport_Railways.shp&lt;br /&gt;
  RSATowns.shp&lt;br /&gt;
  Dams.shp&lt;br /&gt;
 &lt;br /&gt;
'''Zoom and pan''' around a little to explore your data'''&lt;br /&gt;
'''Symbolise''' each layer with an appropriate colour to make the most awe inspiring map.&lt;br /&gt;
&lt;br /&gt;
Activate the '''Identify features''' icon on the middle toolbar to identify the attribute values associated with a spatial feature for the layer highlighted in the Legend Box.&lt;br /&gt;
&lt;br /&gt;
Activate the '''Select Features''' icon next to Identify Features to select one or more features.  &lt;br /&gt;
&lt;br /&gt;
Open the attribute table to view all feature attributes. Note that selected features will have highlighted rows in the attribute table.  You can do this using the neighbouring '''Open Attribute Table''' icon, or by selecting the Open Attribute Table option on the context menu for the layer in the legend using right-click on the mouse.&lt;br /&gt;
&lt;br /&gt;
You can also select rows in the attribute table by:&lt;br /&gt;
* Left-clicking on the desired rows.&lt;br /&gt;
* Using the '''Search''' box at the bottom-left of the form.&lt;br /&gt;
* Selecting the '''Advanced''' button and opening the '''Search Query Builder'''. &lt;br /&gt;
&lt;br /&gt;
Save your project using &lt;br /&gt;
 File -&amp;gt; Save&lt;br /&gt;
&lt;br /&gt;
And put it into&lt;br /&gt;
 /home/workshop/gisdata/brits.qgs&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
In ten minutes you now know how to '''add vector layers''' into QGIS, '''pan and zoom''' to navigate the map, and set the colour of vectors using the '''Single Symbol''' or '''Unique Values''' options in the '''Layer Properties'''.&lt;br /&gt;
&lt;br /&gt;
You have also learnt how to use the interactive '''Identify''' and '''Select''' functions, '''opened attribute tables''' and found out how to '''search''' them.&lt;br /&gt;
&lt;br /&gt;
== More on QGIS Mapping ==&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
Add the vector layer '''Education_Schools2000.shp''' from the SAExplorer directory.  Notice how dense the points are!&lt;br /&gt;
&lt;br /&gt;
* Right-click on the schools layer in the Legend frame.&lt;br /&gt;
* Select '''Properties'''&lt;br /&gt;
* Select the '''General tab'''&lt;br /&gt;
* Check '''Use scale dependent rendering'''&lt;br /&gt;
* Set the maximum field to 1000000&lt;br /&gt;
&lt;br /&gt;
* Zoom out to view the whole country.    '''Notice that the schools no longer appear on the map!''' &lt;br /&gt;
* Now start zooming in, keeping an eye on the scale shown in the '''scale box''' at the bottom of the screen.&lt;br /&gt;
&lt;br /&gt;
 Notice how the schools points reappear when the scale decreases below 1:1000000&lt;br /&gt;
 &lt;br /&gt;
* From the Layer menu, select '''Add Raster Layer'''&lt;br /&gt;
  Layer -&amp;gt; Add Raster Layer&lt;br /&gt;
* A dialog box will appear&lt;br /&gt;
* Navigate to &lt;br /&gt;
  /home/workshop/gisdata/za/gauteng/&lt;br /&gt;
* Add the following layer :&lt;br /&gt;
 SOU-8_satellite.tif&lt;br /&gt;
&lt;br /&gt;
Notice that the image is largely in shades of greyish-brown, but that a dam can be seen towards the bottom of the image. &lt;br /&gt;
&lt;br /&gt;
* Open the Properties for the raster layer, in a similar way to that used for vector layers.&lt;br /&gt;
 Layer -&amp;gt; Properties&lt;br /&gt;
* Select the '''Transparency''' tab.&lt;br /&gt;
* Using the slider, set transparency to 25%&lt;br /&gt;
* Click OK&lt;br /&gt;
Notice how the you can now see the vector layers behind the satellite image.&lt;br /&gt;
 &lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
If you have not already done so, add the vector layers Transport_NationalRoads.shp and Transport_Mainroads.shp from /home/workshop/gisdata/za/brits/SAExplorer.&lt;br /&gt;
Set scale-dependent rendering so that the national roads display at all scales, while the main roads are only shown when you are zoomed in. &lt;br /&gt;
&lt;br /&gt;
Go to the satellite image properties, Symbology tab.  Try the different &amp;quot;Render as&amp;quot; options.  Then when you have found the one that suits you, have a look at the &amp;quot;Contast Enhancement&amp;quot; options.  Compare &amp;quot;No Stretch&amp;quot; and &amp;quot;Stretch to MinMax&amp;quot;.  &lt;br /&gt;
&lt;br /&gt;
Try &amp;quot;Render as Single Band Grey&amp;quot;.  Set the &amp;quot;Custom min/max values&amp;quot; radio button.  Change the Min and Max values.  Go to &amp;quot;Contract Enhancement&amp;quot; again and set it to &amp;quot;Stretch and Clip to MinMax&amp;quot;, and see the effect.&lt;br /&gt;
&lt;br /&gt;
Add raster images of 1: 50 000 map sheets from &amp;quot; /home/workshop/gisdata/za/brits/toposheet images&amp;quot; &lt;br /&gt;
You will need to set the Files of Type box to '''JPEG JFIF''' to see them, before you can select them.&lt;br /&gt;
Set their transparency to a value that allows you to see the vector features behind them.  Zoom in and look at how the vector features and image features match (or not!).&lt;br /&gt;
&lt;br /&gt;
Notice how you can zoom right in to vector data, and a point remains a point and a line remains a line.  When you zoom in to the satellite image it rapidly appears &amp;quot;blocky&amp;quot; compared to the 50 000 map sheets. Zoom in enough and even the map sheet raster blocks can be seen.  This is a basic difference between vector and raster data.&lt;br /&gt;
&lt;br /&gt;
=== What have I learnt? ===&lt;br /&gt;
&lt;br /&gt;
You have learnt to set scale-dependent rendering so that data sets are displayed at appropriate scales, how to add raster data and set raster display options.&lt;br /&gt;
&lt;br /&gt;
== Shapefiles shmapefiles....real (wo)men store their data in PostGIS ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
* '''Create''' a new PostgreSQL database. To do this, open the terminal application (icon to the right of Firefox icon on the top menu bar). Now at the prompt type the following command:&lt;br /&gt;
  createdb workshop&lt;br /&gt;
&lt;br /&gt;
* '''Verify''' your database exists (once again type this into the terminal)&lt;br /&gt;
  psql -l&lt;br /&gt;
* You should see something like this:&lt;br /&gt;
 workshop@heron:~$ psql -l&lt;br /&gt;
        List of databases&lt;br /&gt;
   Name    |  Owner   | Encoding &lt;br /&gt;
 -----------+----------+----------&lt;br /&gt;
 postgres  | postgres | UTF8&lt;br /&gt;
 template0 | postgres | UTF8&lt;br /&gt;
 template1 | postgres | UTF8&lt;br /&gt;
 workshop  | workshop | UTF8&lt;br /&gt;
 (4 rows)&lt;br /&gt;
* away from the terminal for a while - lets look at what a non-spatial, vanilla PostgreSQL database looks like. Open pgAdmin 3  (the icon with a blue elephant face)&lt;br /&gt;
* Double-click on the icon that has a red cross next to some text &amp;quot;gis (localhost:5432)&amp;quot; and press OK if another screen comes up. The database cluster called gis expands and you should see two databases: 'postgres' and 'workshop'. Expand workshop -&amp;gt; Schemas -&amp;gt; public&lt;br /&gt;
Specifically, let us look at Functions and Tables - don't look to deeply, this is just to show the differences after PostGIS is installed on the database (you will see later). Specifically, there is nothing in the db at the moment. So minimise pgAdmin and lets crack on with getting some data in!&lt;br /&gt;
&lt;br /&gt;
* Install the PostGIS spatial data extensions (again from the terminal).&lt;br /&gt;
'''Hint''' copy and paste these from the IRC channel or the wiki page!&lt;br /&gt;
 createlang plpgsql workshop&lt;br /&gt;
 psql workshop &amp;lt; /usr/share/postgresql-8.3-postgis/lwpostgis.sql&lt;br /&gt;
 psql workshop &amp;lt; /usr/share/postgresql-8.3-postgis/spatial_ref_sys.sql&lt;br /&gt;
&lt;br /&gt;
* Yegads! What did I just do? Firstly, you installed the '''plpgsql''' procedural language extensions into your PostgreSQL database. Then you ran two sql scripts which create the '''PostGIS''' spatial extensions to your database. You only need to do this '''once''' when you create a new spatial database, so don't worry about remembering those commands off by heart.&lt;br /&gt;
* Lets upload a shapefile into the database....once more into the black hole (terminal window).&lt;br /&gt;
 cd /home/workshop/gisdata/za/brits/SAExplorer&lt;br /&gt;
 shp2pgsql -I -s 4326 Dams.shp dams | psql -d workshop&lt;br /&gt;
* Erk! What does that all mean? Lets break it down:&lt;br /&gt;
 cd /home/workshop/gisdata/za/brits/SAExplorer - go to our data directory&lt;br /&gt;
 shp2pgsql - an application that loads shapefiles into a PostGIS database&lt;br /&gt;
 -I - an option to shp2pgsql telling it to create a spatial index&lt;br /&gt;
 -s - the coordinate reference system to use, expressed as an EPSG number. 4326 is the same as Lat/Long WGS84&lt;br /&gt;
 Dams.shp - the filename of the shapefile to load&lt;br /&gt;
 dams - the table name that the data should be loaded into&lt;br /&gt;
 | psql workshop - send the results of the shp2pgsql into the psql application, workshop database&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Lets take a peek inside our database now and see what we have - back to pgAdmin, click on the 'workshop' database icon and then refresh it (red/green circular arrows icon).&lt;br /&gt;
Three major things to look at:&lt;br /&gt;
 &lt;br /&gt;
 Hundreds of Functions for working with spatial data: &lt;br /&gt;
 * geometry constructors, &lt;br /&gt;
 * spatial predicates, &lt;br /&gt;
 * geometry editors, &lt;br /&gt;
 * geometry aggregators, &lt;br /&gt;
 * geometry accessors, &lt;br /&gt;
 * measurements, &lt;br /&gt;
 * linear referencing&lt;br /&gt;
 * and outputting  of spatial data. &lt;br /&gt;
 &lt;br /&gt;
 2 important meta-tables: (expand the Tables object)&lt;br /&gt;
 * geometry_columns (for describing the different spatial datasets) - right-click -&amp;gt; &lt;br /&gt;
 * and spatial_ref_sys(a list of projections/coordinate systems and different representations thereof)&lt;br /&gt;
&lt;br /&gt;
 A 'dams' table which, when expanded should show a bunch of Columns, Constraints (e.g. Primary Key), Indexes, Rules and Triggers. &lt;br /&gt;
 * Note the geometry type of column 'the_geom'. &lt;br /&gt;
 * Also note the spatial index present - this allows for optimal retrieval of data based on the spatial properties of the data.&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
'''Load''' the following layers (also from the /home/workshop/gisdata/za/brits/SAExplorer/ directory)&lt;br /&gt;
&lt;br /&gt;
 Hydrology_DWAFRivers.shp -&amp;gt; call the table 'rivers'&lt;br /&gt;
 Transport_Mainroads.shp -&amp;gt; call the table 'roads'&lt;br /&gt;
 ProvincialBoundary.shp -&amp;gt; call the table 'provinces'&lt;br /&gt;
&lt;br /&gt;
And to show that this can scale a bit, let us load in the background a dataset of over 350 000 points (which we will use a bit later)&lt;br /&gt;
 * cd /home/workshop/gisdata/za/fire/modis_af/&lt;br /&gt;
 * shp2pgsql -I -s 4326 modis_af.shp fires | psql -d workshop  &amp;amp;&amp;gt; /dev/null (puts output into background)&lt;br /&gt;
 * shp2pgsql -I -s -D 4326 modis_af.shp fires | psql -d workshop (simpler and faster)&lt;br /&gt;
&lt;br /&gt;
=== Super duper advanced ===&lt;br /&gt;
&lt;br /&gt;
What if I want to load a batch of shapefiles in a directory in 1 go? Try this nifty bash script one liner!&lt;br /&gt;
&lt;br /&gt;
 for FILE in `ls *.shp`; do TABLE=`echo $FILE | sed 's/\.shp//g'`; echo $TABLE;shp2pgsql -I -s 4326 $FILE $TABLE | psql -d workshop; done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This takes a while so lets move on.&lt;br /&gt;
&lt;br /&gt;
=== What have I learnt? ===&lt;br /&gt;
&lt;br /&gt;
* PostgreSQL is an enterprise-ready relational database management system - and it's Free and Open Source Software&lt;br /&gt;
* You can create a new database using the '''createdb''' command.&lt;br /&gt;
* '''PostGIS''' is a add-on to PostgreSQL that lets you store spatial data and carry out spatial analysis within the database.&lt;br /&gt;
* In order to set up PostGIS you need to run a couple of SQL scripts&lt;br /&gt;
* '''shp2pgsql''' is a command line application that lets you load shapefiles into your spatial datastore&lt;br /&gt;
&lt;br /&gt;
== Using PostGIS data from QGIS ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
Once your data is in PostGIS, its easy to share across your organisation. Because it's in a database you get row level locking (instead of file locking in a shapefile), so many users can be editing and viewing data at the same time. There are many clients that let you visualise your PostGIS data..lets take a look at how we do it in QGIS.&lt;br /&gt;
&lt;br /&gt;
* Open QGIS&lt;br /&gt;
* Start a new project&lt;br /&gt;
  File -&amp;gt; New Project&lt;br /&gt;
* Add a PostGIS layer&lt;br /&gt;
  Layer -&amp;gt; Add PostGIS Layer&lt;br /&gt;
* From the connections list, choose '''workshop'''&lt;br /&gt;
  Click connect&lt;br /&gt;
* In the table list, click on '''dams'''&lt;br /&gt;
  Click Add&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
* Add the following layers from your database&lt;br /&gt;
 rivers&lt;br /&gt;
 roads&lt;br /&gt;
 provinces&lt;br /&gt;
&lt;br /&gt;
* set some nice colors for your layers - notice how the process is exactly the same as when setting colours for a shapefile.&lt;br /&gt;
&lt;br /&gt;
* save your project into&lt;br /&gt;
&lt;br /&gt;
 /home/workshop/gisdata/brits_pg.qgs&lt;br /&gt;
&lt;br /&gt;
=== What have I learnt? ===&lt;br /&gt;
&lt;br /&gt;
* You can '''visualise''' PostGIS spatial database tables inside QGIS&lt;br /&gt;
* To add a PostGIS layer, use the '''Layer -&amp;gt; Add PostGIS Layer''' menu option.&lt;br /&gt;
* Once a PostGIS layer, you can treat it just like any other (e.g. shapefile) layer&lt;br /&gt;
* Your presenters are truly amazing....however would I have figured this stuff out for my self :-)&lt;br /&gt;
&lt;br /&gt;
== More on PostGIS Data in QGIS ==&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
* Click on the '''Blue Elephant''' icon in the middle toolbar row to start SPIT loader.&lt;br /&gt;
* Select the PostgreSQL Connection as &amp;quot;workshop&amp;quot;.&lt;br /&gt;
* Click on Connect to verify your connection&lt;br /&gt;
* Now click &amp;quot;Add&amp;quot; - the &amp;quot;Add Shapefile&amp;quot; dialog box comes up. &lt;br /&gt;
&lt;br /&gt;
Navigate to /home/workshop/gisdata/za/brits/SAExplorer.&lt;br /&gt;
&lt;br /&gt;
* Select &amp;quot;Rsatowns.shp&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 Click &amp;quot;Open&amp;quot;.  PostGIS scans the file and lists it in the display frame.&lt;br /&gt;
&lt;br /&gt;
 Click &amp;quot;OK&amp;quot;.  QGIS loads the shapefile data into PostGIS with no need to use the terminal!&lt;br /&gt;
&lt;br /&gt;
* Use Layer -&amp;gt; Add PostGIS Layer to load the layer from PostGIS directly into QGIS.  &lt;br /&gt;
&lt;br /&gt;
* Now add the rivers PostGIS layer to QGIS to see another advantage of using PostGIS layers.&lt;br /&gt;
* Open the Layer properties form.  &lt;br /&gt;
* On the General tab, click &amp;quot;Query Builder&amp;quot; near the bottom right-hand corner. This opens the Query Builder. &lt;br /&gt;
* Click Field &amp;quot;RIVER_CLAS&amp;quot;.&lt;br /&gt;
* Click the &amp;quot;All&amp;quot; button under the &amp;quot;Values&amp;quot; frame.&lt;br /&gt;
* Build the Query &lt;br /&gt;
 &amp;quot;RIVER_CLAS&amp;quot; LIKE 'Perennial' OR &amp;quot;RIVER_CLAS&amp;quot; LIKE 'Perennial river'&lt;br /&gt;
* Click &amp;quot;Test&amp;quot; to check that it will work.&lt;br /&gt;
* Click &amp;quot;OK&amp;quot; twice to apply it.&lt;br /&gt;
&lt;br /&gt;
Now look at the display - the query has not merely highlighted the selected features, it has filtered the non-selected features out so that they are not displayed.  &lt;br /&gt;
&lt;br /&gt;
=== Now you try ===&lt;br /&gt;
&lt;br /&gt;
* Try loading other layers into PostGIS using the Spit loader.&lt;br /&gt;
* Load these into QGIS, and use the &amp;quot;Query Builder&amp;quot; to define the data sets that you want to see.&lt;br /&gt;
* You could define the non-perennial rivers as a separate data set, and use scale-dependent rendering to show them only when you zoom right in.&lt;br /&gt;
&lt;br /&gt;
=== What I have learnt ===&lt;br /&gt;
&lt;br /&gt;
How to rapidly load data into postgis using the spit loader.  How to set up data queries to filter spatial data display from postgis.&lt;br /&gt;
&lt;br /&gt;
== The Zen of PostGIS - not just a pretty place to store data! ==&lt;br /&gt;
&lt;br /&gt;
Okay, we will go a bit deeper into the woods here! We want to show that with some SQL (I won't say simple) you can do some complex - and repeatable - spatial analysis right inside your database, and then visualise the results in various clients.&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
We will use pgAdmin (your great PostgreSQL friend) to get this happening. Click on the Tables object of your workshop db. Then Tools -&amp;gt; Query tool from the menu. This should present a dialog box with 3 panels.&lt;br /&gt;
&lt;br /&gt;
We are going to do a simple intersection to get started.&lt;br /&gt;
In the top left panel paste &lt;br /&gt;
 SELECT roads.gid, roads.code, roads.route_nr, roads.shape_leng, roads.the_geom FROM roads, rivers WHERE (roads.the_geom &amp;amp;&amp;amp; rivers.the_geom AND intersects(roads.the_geom, rivers.the_geom));&lt;br /&gt;
and click Query -&amp;gt; Execute&lt;br /&gt;
This should take a few seconds, then you will see a result returned into the Data Output grid. Something like 3338 rows are returned from the original roads dataset of 11964.&lt;br /&gt;
&lt;br /&gt;
So what is going on here?&lt;br /&gt;
&lt;br /&gt;
You are performing a spatial overlay with a SQL query, asking the database to return records from the roads table that spatially intersect records from the rivers table. &lt;br /&gt;
* the &amp;amp;&amp;amp; operator is a fast bounding box 'overlaps' test that takes advantage of the spatial indexes of the table to narrow the search space for the true intersection test.&lt;br /&gt;
* the intersects part of the query tests the geometries of the subset selected above for spatial intersection and returns a result.&lt;br /&gt;
&lt;br /&gt;
To show some other functionality, paste the following text into the query window and execute:&lt;br /&gt;
 ALTER TABLE roads DROP CONSTRAINT enforce_srid_the_geom;UPDATE geometry_columns SET srid = 4148 WHERE f_table_name = 'roads';COMMIT; UPDATE roads SET the_geom = ST_Transform(the_geom,4148);COMMIT; ALTER TABLE roads ADD CONSTRAINT enforce_srid_the_geom CHECK (srid(the_geom) = 4148);&lt;br /&gt;
We are being good South African GIS types and using our Haartebeesthoek94 Datum. Lets do the same for rivers:&lt;br /&gt;
 ALTER TABLE rivers DROP CONSTRAINT enforce_srid_the_geom;UPDATE geometry_columns SET srid = 4148 WHERE f_table_name = 'rivers';COMMIT; UPDATE rivers SET the_geom = ST_Transform(the_geom,4148);COMMIT; ALTER TABLE rivers ADD CONSTRAINT enforce_srid_the_geom CHECK (srid(the_geom) = 4148);&lt;br /&gt;
&lt;br /&gt;
This looks fairly intense, but the main points are the changing of the data in the geometry_columns meta-table and then updating the geometries in each table to a different CRS (4148, or Haartebeesthoek94). We demonstrate the use of the UPDATE SQL command, used to change data in the database, and the use of the ST_Transform function of PostGIS, which does the work. Now lets try the original query again:&lt;br /&gt;
 SELECT roads.gid, roads.code, roads.route_nr, roads.shape_leng, roads.the_geom FROM roads, rivers WHERE st_intersects(roads.the_geom, rivers.the_geom);&lt;br /&gt;
...which returns the same number of features, but in our own CRS. Note that we have used the ST_Intersects function rather than the Intersects function as previously shown. ST_ type functions are more standards compliant, so should be used in place of the older style functions.&lt;br /&gt;
Ideally we would project the data as appropriate, using the very same technique, but substituting 4148 for the EPSG code for our projection of choice. This is a demo though, folks, so I will get away with murder...&lt;br /&gt;
Lets quickly repeat the process for the other datasets we will use in a minute:&lt;br /&gt;
 ALTER TABLE provinces DROP CONSTRAINT enforce_srid_the_geom;UPDATE geometry_columns SET srid = 4148 WHERE f_table_name = 'provinces';COMMIT; UPDATE provinces SET the_geom = ST_Transform(the_geom,4148);COMMIT; ALTER TABLE provinces ADD CONSTRAINT enforce_srid_the_geom CHECK (srid(the_geom) = 4148);&lt;br /&gt;
 ALTER TABLE fires DROP CONSTRAINT enforce_srid_the_geom;UPDATE geometry_columns SET srid = 4148 WHERE f_table_name = 'fires';COMMIT; UPDATE fires SET the_geom = ST_Transform(the_geom,4148);COMMIT; ALTER TABLE fires ADD CONSTRAINT enforce_srid_the_geom CHECK (srid(the_geom) = 4148);&lt;br /&gt;
&lt;br /&gt;
So, while that goes ahead (it will take a minute or so to transform 350k points), let us think out another analysis. Lets make it a bit tricky. Okay, we want to create a table for serving up data to the outside world (Gavin will do this later) that has all the intense fires in Gauteng or NorthWest Province, that have occurred within 3000 metres of a main road. There are many ways to skin this cat in PostGIS, so I will pick a method and explain why I did so.&lt;br /&gt;
First, a convenience table is created:&lt;br /&gt;
 SELECT roads.gid, ST_Buffer(roads.the_geom,0.027) AS geom INTO roads_buffer FROM roads, (SELECT * FROM provinces WHERE prov_code = 'GT' OR prov_code = 'NW') AS prov WHERE ST_Within(roads.the_geom, prov.the_geom);&lt;br /&gt;
This is a table of polygons representing ~3000 metre road buffers, and note the use of the function to populate the geometry_columns meta-table with our new layer.&lt;br /&gt;
 SELECT DISTINCT fires.gid, fires.frp, fires.acqdatetim, fires.the_geom INTO fires_analysis_3000m FROM fires, (SELECT * FROM provinces WHERE prov_code = 'GT' OR prov_code = 'NW') AS prov, roads_buffer  WHERE fires.frp &amp;gt; 200 AND ST_Within(fires.the_geom, prov.the_geom) AND ST_Within(fires.the_geom, roads_buffer.geom);&lt;br /&gt;
The main feature of this query is the longish WHERE clause, which tests weather the fire is intense, whether it falls within Gauteng or NW Province and whether the fire occurred within appx 3000 metres of one of our main roads.&lt;br /&gt;
&lt;br /&gt;
There are not too many fires that fall out of this analysis, but it shows how we have relatively easily worked with and reduced a large dataset to a few points. These queries can be further tuned to take advantage of spatial and other indexes, but that is perhaps for another time.&lt;br /&gt;
&lt;br /&gt;
The final thing we will do is prepare this layer for use on the web...&lt;br /&gt;
 INSERT INTO geometry_columns(f_table_catalog,f_table_schema,f_table_name,f_geometry_column,coord_dimension,srid,&amp;quot;type&amp;quot;) VALUES('','public','fires_analysis_3000m','the_geom',2,4148,'MULTIPOINT');&lt;br /&gt;
Normal meta-table stuff&lt;br /&gt;
 ALTER TABLE fires_analysis_3000m ADD PRIMARY KEY (gid);&lt;br /&gt;
And if we wanted to we could add a spatial index:&lt;br /&gt;
 CREATE INDEX fires_Analysis_3000m_the_geom_gist ON fires_Analysis_3000m USING gist(the_geom);&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
Well, no you do not - but you can ask questions...&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
Well, hopefully a fair bit. You can, with a bit of practice and reading up on the matter, get PostGIS to do some rather interesting and powerful things. We have just seen a database do GIS... Some of you may be in the know about such matters, but hopefully this shows some possibilities to others.&lt;br /&gt;
&lt;br /&gt;
== uDig ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
uDig ('user-friendly desktop internet GIS') is another excellent desktop GIS. let's check out the basics&lt;br /&gt;
&lt;br /&gt;
* Open uDig&lt;br /&gt;
* start adding layers (note the variety of data that can be used)&lt;br /&gt;
** Add a PostGIS layer&lt;br /&gt;
** add a shapefile&lt;br /&gt;
* theme the layers&lt;br /&gt;
* check out the table view, catalogue and some functionality&lt;br /&gt;
&lt;br /&gt;
There's no need to save projects - you can just close uDig and it will save automatically. Note &lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
* Add the following layers from your database&lt;br /&gt;
 rivers, dams, schools, roads, more if you like&lt;br /&gt;
&lt;br /&gt;
* theme the school layer with nice symbols and labels - we're going to try scale-dependent rendering&lt;br /&gt;
**zoom in closer than 1:50000 and set the max scale to 50000&lt;br /&gt;
**on the theme dialog, click XML&lt;br /&gt;
**select the &amp;lt;rule&amp;gt;&amp;lt;/rule&amp;gt; section and copy it to a text editor.&lt;br /&gt;
**zoom out beyond 50000, go back to 'theme' and simplify your symbols, removing the labels.&lt;br /&gt;
**set the min scale to 50000&lt;br /&gt;
**click 'XML'&lt;br /&gt;
**paste the previous 'rule' into the XML, before or after the one you see.&lt;br /&gt;
**click OK! now zoom in and out past to see the result. &lt;br /&gt;
 &lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
* Viewing and rendering different formats in uDig&lt;br /&gt;
* Theming with SLD (Styled layer descriptor), the OGC standard.&lt;br /&gt;
* scale-dependent rendering&lt;br /&gt;
** with a point - we're going to come back to uDig!&lt;br /&gt;
&lt;br /&gt;
== GeoServer ==&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
 cd&lt;br /&gt;
 export JAVA_HOME=/usr&lt;br /&gt;
 cd Apps/geoserver&lt;br /&gt;
 bin/startup.sh&lt;br /&gt;
&lt;br /&gt;
* Start geoserver (normally set to start automatically and run all the time)&lt;br /&gt;
* All admin is done via the web&lt;br /&gt;
* set up a namespace&lt;br /&gt;
* set up data stores&lt;br /&gt;
* set up feature types&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
* start GeoServer&lt;br /&gt;
* click Config -&amp;gt; Data&lt;br /&gt;
* Set Namespace to any name and any url&lt;br /&gt;
* Set Datastore to your postGIS database&lt;br /&gt;
* define a FeatureType for schools, choose a point style&lt;br /&gt;
'''Styling'''&lt;br /&gt;
*Go to Data -&amp;gt; Style -&amp;gt; new&lt;br /&gt;
**give your style a name and paste in your school SLD from uDig&lt;br /&gt;
**submit&lt;br /&gt;
**Go back to FeatureTypes and Edit your schools Feature, applying your new style&lt;br /&gt;
**Check out the results in the GeoServer demo pages&lt;br /&gt;
&lt;br /&gt;
'''Group layers'''&lt;br /&gt;
* Set up a group in the 'WMS' section&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Back to uDig&lt;br /&gt;
*bring in a WMS layer from http://localhost/geoserver:8080/wms&lt;br /&gt;
*bring in the same layer as WFS&lt;br /&gt;
**theme it&lt;br /&gt;
**save it as a shapefile&lt;br /&gt;
*try this with QGIS too (and with ArcGIS back at the office!)&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
* you can use GeoServer to serve your spatial data from any source as WMS, WFS, KML and more!&lt;br /&gt;
* You can use WMS and WFS layers in a desktop GIS&lt;br /&gt;
* impress your colleagues by sending them kml links from your geoserver so they can view them live in Google Earth!&lt;br /&gt;
&lt;br /&gt;
== More Advanced QGIS Use ==&lt;br /&gt;
Here are some more things you can do with QGIS!  Don't be put off by the heading of this section, we'll take you through step-by-step as before..&lt;br /&gt;
&lt;br /&gt;
=== ''Quick Qml with QGIS'' ===&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
If you have used  ArcView before, you might have used the avl feature which lets you store the symbology settings for a layer. QGIS has a similar feature called 'qml' which lets you create default symbology settings for a layer, that will be applied when ever that layer is loaded. We are also going to take a quick peek at how to create more complex symbology for a layer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Open QGIS if its not already running.&lt;br /&gt;
* Add the dams layer from the Postgresql 'Workshop' database&lt;br /&gt;
* Double click on the layer entry in the legend&lt;br /&gt;
* Activate the symbology tab&lt;br /&gt;
* Now change the legend type to '''Graduated Symbol'''&lt;br /&gt;
* Change the classification field to '''shape_area'''&lt;br /&gt;
* Set the '''number of classes''' to 5&lt;br /&gt;
* Click the '''classify''' button&lt;br /&gt;
* Click the '''Apply''' button&lt;br /&gt;
&lt;br /&gt;
You should see the shapes in the main window have now adopted a range of scintillating colours! However is you add that layer to another QGIS project you would normally have to do all this work again! Qml to the rescue.&lt;br /&gt;
&lt;br /&gt;
* Save your symbology settings by clicking the '''save as default''' button&lt;br /&gt;
&lt;br /&gt;
Ok lets test it out!&lt;br /&gt;
&lt;br /&gt;
* Close QGIS&lt;br /&gt;
* Reopen QGIS&lt;br /&gt;
* Add the Dams layer from the Postgresql 'Workshop' database&lt;br /&gt;
&lt;br /&gt;
If the planets are correctly aligned, your dams will appear all beautifully coloured according to your personal preference.&lt;br /&gt;
&lt;br /&gt;
If you want to you can also save your settings as non-default, and them restore them by selecting a .qml file again later. Refer to the '''Load style''' and '''Save style''' buttons on the vector properties dialog.&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
Ok give it a whirl, create default appearances for your other layers stored in your PostGIS database. Also try experimenting with the other legend types such as '''Continuous Colour''' and '''Unique Value'''. &lt;br /&gt;
Once you have set your default appearances, close QGIS and then reopen it. Now add all your PostGIS layers to the blank project and they should all magically appear with your preferred appearance.&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
The '''Layer Properties''' dialog in QGIS will let you specify the '''default appearance''' for a layer.&lt;br /&gt;
&lt;br /&gt;
=== ''Setting Projections'' ===&lt;br /&gt;
Projections are a mathematical way of transforming latitude and longitude coordinates into a form that can be meaningfully used in a map.  Sources to be added.&lt;br /&gt;
Some projections in common use in South Africa are the Albers Equal Area, Lamberts Conformal Conic and Gauss (LO) projections.&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
* Make sure that you are zoomed in to Gauteng.&lt;br /&gt;
* From the File menu, select Project Properties.&lt;br /&gt;
  File -&amp;gt; Project Properties&lt;br /&gt;
* Activate the Coordinate Reference System tab&lt;br /&gt;
* Check &amp;quot;Enable &amp;quot;on the fly&amp;quot; CRS Transformation&lt;br /&gt;
* Note that the current Coordinate Reference System is WGS84, which is a standard for displaying geographic coordinates.&lt;br /&gt;
* Look at the column EPSG - this a standard for identifying coordinate systems.  When you have selected a coordinate system you can always find it again quickly by noting the EPSG code and entering it into the '''Find box''' at the bottom of the form.&lt;br /&gt;
* Highlight the ''Projected Coordinate Systems&amp;quot; heading, and double-click to open the list.&lt;br /&gt;
* Scroll down and highlight the &amp;quot;Universal Transverse Mercator&amp;quot; heading.&lt;br /&gt;
* Select the '''Name''' radio button.&lt;br /&gt;
* Enter &amp;quot;33S&amp;quot; in the text box, and press find.  Keep pressing find until you get to &amp;quot;WGS 84/UTM Zone 33&amp;quot;.  &lt;br /&gt;
 Or select the EPSG ID radio button, enter 32733 and press the Find button.    Isn't that easier?&lt;br /&gt;
* Notice that the overall shape of the country has changed due to the projection.&lt;br /&gt;
* Zoom into Gauteng again.  Move your cursor and look at the coordinates shown at the bottom of the screen.  Notice how they have changed.  They are now in meters rather than decimal degrees.&lt;br /&gt;
&lt;br /&gt;
=== Now You Try! ===&lt;br /&gt;
First of all try a related projection such as UTM Zone 34S or UTM 38S, and see what the impact is.  Move your cursor around - how do the coordinates differ from ones shown under UTM 36S?&lt;br /&gt;
&lt;br /&gt;
Then try one of the Stereographic South projections, such as EPSG=3031,  for a very different view of South Africa!&lt;br /&gt;
&lt;br /&gt;
QGIS calculates the effect of the projection before displaying the data and doesn't make any changes, so you can try anything you like!&lt;br /&gt;
&lt;br /&gt;
=== What have I learnt? ===&lt;br /&gt;
You have learnt how to set an on-the-fly projection for display in QGIS, and how to use EPSG codes to rapidly find a specific projection. Remember, if you are trying to develop a map for use in the field you will need to use a projection specific to South Africa.&lt;br /&gt;
&lt;br /&gt;
=== ''Editing Vector Data'' === &lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
=== Now You Try! ===&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Africa]]&lt;/div&gt;</summary>
		<author><name>Wiki-Brendonwp</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=AfricaEvents29November2008&amp;diff=32736</id>
		<title>AfricaEvents29November2008</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=AfricaEvents29November2008&amp;diff=32736"/>
		<updated>2008-12-01T08:25:27Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Brendonwp: /* Now You Try! */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;...back to [[Africa_Local_Chapter]]&lt;br /&gt;
&lt;br /&gt;
= What? =&lt;br /&gt;
&lt;br /&gt;
Our first OSGeo local chapter meet up! We will chew the cud, show you some cool stuff and start to get people familiar with the brilliant FOSS GeoSpatial products out there!&lt;br /&gt;
&lt;br /&gt;
We'll go through installing some software and getting it to a point where you can have fun with it. &lt;br /&gt;
&lt;br /&gt;
= How Much? =&lt;br /&gt;
&lt;br /&gt;
There will be a door charge of R50 to cover costs &amp;amp; refreshments. That and an open mind are all you need to bring. If you're staying for the QGIS session in the afternoon you can bring your laptop (Windows, Linux or Mac!)&lt;br /&gt;
&lt;br /&gt;
= Where? =&lt;br /&gt;
&lt;br /&gt;
 St Davids Marist Inanda College&lt;br /&gt;
 36 Rivonia Rd&lt;br /&gt;
 Inanda&lt;br /&gt;
 Sandton&lt;br /&gt;
[http://www.stdavids.co.za/about_directions.asp Map and Directions]&lt;br /&gt;
&lt;br /&gt;
NB: We'll be in the Prep School computer lab.&lt;br /&gt;
&lt;br /&gt;
= When? =&lt;br /&gt;
&lt;br /&gt;
* November 29th&lt;br /&gt;
* Presentation and workshop segment: 9am to 12pm&lt;br /&gt;
* QGIS Bug Party! 12h30 onwards&lt;br /&gt;
&lt;br /&gt;
= Who =&lt;br /&gt;
&lt;br /&gt;
Your friendly presenters for the day will be:&lt;br /&gt;
&lt;br /&gt;
* '''Tim Sutton''' (tim at linfiniti.com) - QGIS hacker and FOSS GIS junkie extraordinaire. Tim eats Weetbix for breakfast because it sounds like Linux. He once rewrote Nkosi Sikelela in C++ because he was feeling patriotic.&lt;br /&gt;
* '''Graeme McFerren''' - (graeme.mcferren at gmail.com) - GIS researcher and FOSS4G user. Mmm, aspire to be like Tim then.&lt;br /&gt;
* '''Gavin Fleming''' (gavinjfleming at gmail dot com) - I enjoy my daily FOSS4G fix and telling people how great it was. I'm a 'geoinformation scientist' at Mintek and love to see cutting edge and useful geospatial applications emerging. &lt;br /&gt;
* '''Brendon Wolff-Piggott''' - (brendon at integratedgeodata.co.za) - Water resources consultant and FOSS GIS enthusiast.  I wish there were more hours in the day to keep up with FOSS4G!&lt;br /&gt;
&lt;br /&gt;
= RSVP =&lt;br /&gt;
Let gavinjfleming at gmail dot com know if you're coming as numbers are limited. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= QGIS Bug Party =&lt;br /&gt;
&lt;br /&gt;
As a preview release there are still various bugs that need resolving and various elements (e.g. translation) that may be incomplete. On Saturday the 29th in Johannesburg, South Africa, members from the Africa OSGeo chapter will be holding a QGIS Bug Hunt Party. We would like to invite people from around the world to virtually participate. Each person attending will get a free copy of QGIS 1.0.0 Preview 2 absolutely free of charge! Sorry no shrink wrap copies available. Preview 2 is the second in a series of preview releases we are making before we release the Stable QGIS 1.0.0 with long term support. &lt;br /&gt;
We are going to great lengths to polish up QGIS 1.0 for you (inside and out) and we really appreciate all the feedback we have received thus far. Its virtually impossible to ship any software completely bug free, but with your help we can add just a little more shine to the polish! We need your help to:&lt;br /&gt;
&lt;br /&gt;
* test on different machine configurations (bring your laptops!)&lt;br /&gt;
* validate existing bugs on each platform&lt;br /&gt;
* mark bugs that can no longer be replicated as ready for closure&lt;br /&gt;
* create new tickets for bugs that have not been reported yet (please search first to avoid posting duplicates!)&lt;br /&gt;
* mark bugs that are duplicates&lt;br /&gt;
* provide additional diagnostics so that developers can replicate issues&lt;br /&gt;
&lt;br /&gt;
The idea is not to try to *fix* the bugs, but rather to do a QA session on the bugs in the bug tracker. In the process you will learn how to interact with an Open Source project the Right Way i.e. filing good quality bug reports.&lt;br /&gt;
&lt;br /&gt;
I will start off with a simple show and tell covering:&lt;br /&gt;
* where to find the QGIS (and other OSGeo projects bug tracking sites)&lt;br /&gt;
* creating an account so you can file non-anonymous bugs and feedback on any OSGeo project bug tracker&lt;br /&gt;
* how the bug tracking system works - what the various input fields in the QGIS tracker mean&lt;br /&gt;
&lt;br /&gt;
The approach will be to start by going through any bugs that have not been revised recently, adding additional status information. If you think the bug is fixed, add a comment:&lt;br /&gt;
&lt;br /&gt;
'''Works for me now, recommend closure, &amp;lt;Your Name&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
If you can replicate the bug, add a comment like:&lt;br /&gt;
&lt;br /&gt;
'''Can replicate, OS: Ubuntu 8.10, QGIS Preview 2, &amp;lt;Your Name&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Use your initiative to deal with tickets that don't fit into the categories above, following a similar approach.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After that I will turn you loose on the queue and a shiny copy of QGIS preview 2 and let you have at it. Party is over when the last man falls asleep at the keyboard! Ok probably we will finish at between 4:30pm and 5pm if my wife has anything to do with it!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We look forward to seeing you at the QGIS Bug Party!!!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Programme in a nutshell =&lt;br /&gt;
&lt;br /&gt;
* Be there in time for a 9am start&lt;br /&gt;
* Morning session: Introducing QGIS, PostGIS, GeoServer, uDig&lt;br /&gt;
* Afternoon session: QGIS Bug Party&lt;br /&gt;
&lt;br /&gt;
Note: There will be frequent rest breaks and lots of time to ask questions!&lt;br /&gt;
&lt;br /&gt;
'''1. Welcome, Introduction and Overview: Starting up (5 minutes)'''&lt;br /&gt;
&lt;br /&gt;
What am I looking at here? What do I need to do to get started?&lt;br /&gt;
&lt;br /&gt;
'''2. QGIS: Opening and viewing spatial data. Your first map. (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
What can I look at? How do I set up a simple map?  Toolbars and Plug-ins. &lt;br /&gt;
&lt;br /&gt;
'''3. PostGIS: Why use PostGIS? Simple example of loading data. (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
Why use a spatial database? What does one look like? How do I populate a spatial database and where does my data live?&lt;br /&gt;
&lt;br /&gt;
'''4. QGIS: Looking at PostGIS data from QGIS.  (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
View a PostGIS database from QGIS.  Setting up data definitions for PostGIS sources.  Loading data into PostGIS with the Spit Loader (no, please don't touch the screen!)&lt;br /&gt;
&lt;br /&gt;
'''5. PostGIS: More than a place to dump data... (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
PostGIS is not just good for storing data, one can manipulate it too! GIS can be done inside the database, which is rather nice when you think about it.&lt;br /&gt;
&lt;br /&gt;
'''6. uDig: Why uDig?  GIS and the Web.  (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
Getting GIS data ready for presentation on the Web! Editing SLDs.&lt;br /&gt;
&lt;br /&gt;
'''7. GeoServer: Tell everyone about it!  (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
Displaying GIS data on the web.  Grouped WMS.  Scale-dependent rendering.&lt;br /&gt;
&lt;br /&gt;
'''8. And more QGIS.'''&lt;br /&gt;
&lt;br /&gt;
Detail on symbology.  Topological editing. QML, SPD and Openlayers.  (15 minutes)&lt;br /&gt;
&lt;br /&gt;
'''9. Show off session'''&lt;br /&gt;
&lt;br /&gt;
Here we can do some whizz bang demo stuff that we don't have time to do in  workshop format but that will give you some hints as to what else can be achieved.&lt;br /&gt;
&lt;br /&gt;
'''10. General'''&lt;br /&gt;
&lt;br /&gt;
Questions and answers.  What you can do next.  Resources.  Possibly some in-depth examples based on frequent questions.  What would you like to see at future workshops?&lt;br /&gt;
&lt;br /&gt;
'''11. Your assessment of the workshop'''&lt;br /&gt;
&lt;br /&gt;
Tell us what you thought!&lt;br /&gt;
&lt;br /&gt;
= Workshop Notes =&lt;br /&gt;
&lt;br /&gt;
== Welcome, introductions and overview ==&lt;br /&gt;
&lt;br /&gt;
== Lets make a map - First steps with QGIS ==&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
* Open QGIS using the icon on the top Gnome Panel&lt;br /&gt;
* From the Layer menu, select '''Add Vector Layer'''&lt;br /&gt;
  Layer -&amp;gt; Add Vector Layer&lt;br /&gt;
* A dialog box will appear&lt;br /&gt;
* Navigate to &lt;br /&gt;
  /home/workshop/gisdata/za/brits/SAExplorer/&lt;br /&gt;
* Add the following layer :&lt;br /&gt;
  Provinces.shp&lt;br /&gt;
* Experiment with the '''map navigation toolbar''' to zoom in / out, pan, select etc features.&lt;br /&gt;
* Open the '''Layer properties dialog'''. There are several ways you can do this:&lt;br /&gt;
  1) Select the layer in the legend and then from the menu do Layer -&amp;gt; Properties&lt;br /&gt;
  or&lt;br /&gt;
  2) Right click on the layer in the legend and choose Properties from the context menu&lt;br /&gt;
  or&lt;br /&gt;
  3) Double click on the layer in the legend&lt;br /&gt;
* Familiarise yourself with the various panels in the vector properties dialog.&lt;br /&gt;
* Select the '''Symbology''' tab (second from the left)&lt;br /&gt;
* From the '''Style Options''' panel, choose a pleasing '''fill colour''' for the provinces then &lt;br /&gt;
  Click OK&lt;br /&gt;
&lt;br /&gt;
Or you can:&lt;br /&gt;
* Select the '''Legend Type''' as ''Unique Value''.  &lt;br /&gt;
* Set the '''Classification field''' to ''PROVNAME''&lt;br /&gt;
* Click on the '''Classify''' button to set '''different colours for each province'''.&lt;br /&gt;
  Click OK&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
'''Add''' the following layers (also from the /home/workshop/gisdata/za/brits/SAExplorer/ directory)&lt;br /&gt;
&lt;br /&gt;
  Transport_NationalRoads.shp&lt;br /&gt;
  Transport_Railways.shp&lt;br /&gt;
  RSATowns.shp&lt;br /&gt;
  Dams.shp&lt;br /&gt;
 &lt;br /&gt;
'''Zoom and pan''' around a little to explore your data'''&lt;br /&gt;
'''Symbolise''' each layer with an appropriate colour to make the most awe inspiring map.&lt;br /&gt;
&lt;br /&gt;
Activate the '''Identify features''' icon on the middle toolbar to identify the attribute values associated with a spatial feature for the layer highlighted in the Legend Box.&lt;br /&gt;
&lt;br /&gt;
Activate the '''Select Features''' icon next to Identify Features to select one or more features.  &lt;br /&gt;
&lt;br /&gt;
Open the attribute table to view all feature attributes. Note that selected features will have highlighted rows in the attribute table.  You can do this using the neighbouring '''Open Attribute Table''' icon, or by selecting the Open Attribute Table option on the context menu for the layer in the legend using right-click on the mouse.&lt;br /&gt;
&lt;br /&gt;
You can also select rows in the attribute table by:&lt;br /&gt;
* Left-clicking on the desired rows.&lt;br /&gt;
* Using the '''Search''' box at the bottom-left of the form.&lt;br /&gt;
* Selecting the '''Advanced''' button and opening the '''Search Query Builder'''. &lt;br /&gt;
&lt;br /&gt;
Save your project using &lt;br /&gt;
 File -&amp;gt; Save&lt;br /&gt;
&lt;br /&gt;
And put it into&lt;br /&gt;
 /home/workshop/gisdata/brits.qgs&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
In ten minutes you now know how to '''add vector layers''' into QGIS, '''pan and zoom''' to navigate the map, and set the colour of vectors using the '''Single Symbol''' or '''Unique Values''' options in the '''Layer Properties'''.&lt;br /&gt;
&lt;br /&gt;
You have also learnt how to use the interactive '''Identify''' and '''Select''' functions, '''opened attribute tables''' and found out how to '''search''' them.&lt;br /&gt;
&lt;br /&gt;
== More on QGIS Mapping ==&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
Add the vector layer '''Education_Schools2000.shp''' from the SAExplorer directory.  Notice how dense the points are!&lt;br /&gt;
&lt;br /&gt;
* Right-click on the schools layer in the Legend frame.&lt;br /&gt;
* Select '''Properties'''&lt;br /&gt;
* Select the '''General tab'''&lt;br /&gt;
* Check '''Use scale dependent rendering'''&lt;br /&gt;
* Set the maximum field to 1000000&lt;br /&gt;
&lt;br /&gt;
* Zoom out to view the whole country.    '''Notice that the schools no longer appear on the map!''' &lt;br /&gt;
* Now start zooming in, keeping an eye on the scale shown in the '''scale box''' at the bottom of the screen.&lt;br /&gt;
&lt;br /&gt;
 Notice how the schools points reappear when the scale decreases below 1:1000000&lt;br /&gt;
 &lt;br /&gt;
* From the Layer menu, select '''Add Raster Layer'''&lt;br /&gt;
  Layer -&amp;gt; Add Raster Layer&lt;br /&gt;
* A dialog box will appear&lt;br /&gt;
* Navigate to &lt;br /&gt;
  /home/workshop/gisdata/za/gauteng/&lt;br /&gt;
* Add the following layer :&lt;br /&gt;
 SOU-8_satellite.tif&lt;br /&gt;
&lt;br /&gt;
Notice that the image is largely in shades of greyish-brown, but that a dam can be seen towards the bottom of the image. &lt;br /&gt;
&lt;br /&gt;
* Open the Properties for the raster layer, in a similar way to that used for vector layers.&lt;br /&gt;
 Layer -&amp;gt; Properties&lt;br /&gt;
* Select the '''Transparency''' tab.&lt;br /&gt;
* Using the slider, set transparency to 25%&lt;br /&gt;
* Click OK&lt;br /&gt;
Notice how the you can now see the vector layers behind the satellite image.&lt;br /&gt;
 &lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
If you have not already done so, add the vector layers Transport_NationalRoads.shp and Transport_Mainroads.shp from /home/workshop/gisdata/za/brits/SAExplorer.&lt;br /&gt;
Set scale-dependent rendering so that the national roads display at all scales, while the main roads are only shown when you are zoomed in. &lt;br /&gt;
&lt;br /&gt;
Go to the satellite image properties, Symbology tab.  Try the different &amp;quot;Render as&amp;quot; options.  Then when you have found the one that suits you, have a look at the &amp;quot;Contast Enhancement&amp;quot; options.  Compare &amp;quot;No Stretch&amp;quot; and &amp;quot;Stretch to MinMax&amp;quot;.  &lt;br /&gt;
&lt;br /&gt;
Try &amp;quot;Render as Single Band Grey&amp;quot;.  Set the &amp;quot;Custom min/max values&amp;quot; radio button.  Change the Min and Max values.  Go to &amp;quot;Contract Enhancement&amp;quot; again and set it to &amp;quot;Stretch and Clip to MinMax&amp;quot;, and see the effect.&lt;br /&gt;
&lt;br /&gt;
Add raster images of 1: 50 000 map sheets from &amp;quot; /home/workshop/gisdata/za/brits/toposheet images&amp;quot; &lt;br /&gt;
You will need to set the Files of Type box to '''JPEG JFIF''' to see them, before you can select them.&lt;br /&gt;
Set their transparency to a value that allows you to see the vector features behind them.  Zoom in and look at how the vector features and image features match (or not!).&lt;br /&gt;
&lt;br /&gt;
Notice how you can zoom right in to vector data, and a point remains a point and a line remains a line.  When you zoom in to the satellite image it rapidly appears &amp;quot;blocky&amp;quot; compared to the 50 000 map sheets. Zoom in enough and even the map sheet raster blocks can be seen.  This is a basic difference between vector and raster data.&lt;br /&gt;
&lt;br /&gt;
=== What have I learnt? ===&lt;br /&gt;
&lt;br /&gt;
You have learnt to set scale-dependent rendering so that data sets are displayed at appropriate scales, how to add raster data and set raster display options.&lt;br /&gt;
&lt;br /&gt;
== Shapefiles shmapefiles....real (wo)men store their data in PostGIS ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
* '''Create''' a new PostgreSQL database. To do this, open the terminal application (icon to the right of Firefox icon on the top menu bar). Now at the prompt type the following command:&lt;br /&gt;
  createdb workshop&lt;br /&gt;
&lt;br /&gt;
* '''Verify''' your database exists (once again type this into the terminal)&lt;br /&gt;
  psql -l&lt;br /&gt;
* You should see something like this:&lt;br /&gt;
 workshop@heron:~$ psql -l&lt;br /&gt;
        List of databases&lt;br /&gt;
   Name    |  Owner   | Encoding &lt;br /&gt;
 -----------+----------+----------&lt;br /&gt;
 postgres  | postgres | UTF8&lt;br /&gt;
 template0 | postgres | UTF8&lt;br /&gt;
 template1 | postgres | UTF8&lt;br /&gt;
 workshop  | workshop | UTF8&lt;br /&gt;
 (4 rows)&lt;br /&gt;
* away from the terminal for a while - lets look at what a non-spatial, vanilla PostgreSQL database looks like. Open pgAdmin 3  (the icon with a blue elephant face)&lt;br /&gt;
* Double-click on the icon that has a red cross next to some text &amp;quot;gis (localhost:5432)&amp;quot; and press OK if another screen comes up. The database cluster called gis expands and you should see two databases: 'postgres' and 'workshop'. Expand workshop -&amp;gt; Schemas -&amp;gt; public&lt;br /&gt;
Specifically, let us look at Functions and Tables - don't look to deeply, this is just to show the differences after PostGIS is installed on the database (you will see later). Specifically, there is nothing in the db at the moment. So minimise pgAdmin and lets crack on with getting some data in!&lt;br /&gt;
&lt;br /&gt;
* Install the PostGIS spatial data extensions (again from the terminal).&lt;br /&gt;
'''Hint''' copy and paste these from the IRC channel or the wiki page!&lt;br /&gt;
 createlang plpgsql workshop&lt;br /&gt;
 psql workshop &amp;lt; /usr/share/postgresql-8.3-postgis/lwpostgis.sql&lt;br /&gt;
 psql workshop &amp;lt; /usr/share/postgresql-8.3-postgis/spatial_ref_sys.sql&lt;br /&gt;
&lt;br /&gt;
* Yegads! What did I just do? Firstly, you installed the '''plpgsql''' procedural language extensions into your PostgreSQL database. Then you ran two sql scripts which create the '''PostGIS''' spatial extensions to your database. You only need to do this '''once''' when you create a new spatial database, so don't worry about remembering those commands off by heart.&lt;br /&gt;
* Lets upload a shapefile into the database....once more into the black hole (terminal window).&lt;br /&gt;
 cd /home/workshop/gisdata/za/brits/SAExplorer&lt;br /&gt;
 shp2pgsql -I -s 4326 Dams.shp dams | psql -d workshop&lt;br /&gt;
* Erk! What does that all mean? Lets break it down:&lt;br /&gt;
 cd /home/workshop/gisdata/za/brits/SAExplorer - go to our data directory&lt;br /&gt;
 shp2pgsql - an application that loads shapefiles into a PostGIS database&lt;br /&gt;
 -I - an option to shp2pgsql telling it to create a spatial index&lt;br /&gt;
 -s - the coordinate reference system to use, expressed as an EPSG number. 4326 is the same as Lat/Long WGS84&lt;br /&gt;
 Dams.shp - the filename of the shapefile to load&lt;br /&gt;
 dams - the table name that the data should be loaded into&lt;br /&gt;
 | psql workshop - send the results of the shp2pgsql into the psql application, workshop database&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Lets take a peek inside our database now and see what we have - back to pgAdmin, click on the 'workshop' database icon and then refresh it (red/green circular arrows icon).&lt;br /&gt;
Three major things to look at:&lt;br /&gt;
 &lt;br /&gt;
 Hundreds of Functions for working with spatial data: &lt;br /&gt;
 * geometry constructors, &lt;br /&gt;
 * spatial predicates, &lt;br /&gt;
 * geometry editors, &lt;br /&gt;
 * geometry aggregators, &lt;br /&gt;
 * geometry accessors, &lt;br /&gt;
 * measurements, &lt;br /&gt;
 * linear referencing&lt;br /&gt;
 * and outputting  of spatial data. &lt;br /&gt;
 &lt;br /&gt;
 2 important meta-tables: (expand the Tables object)&lt;br /&gt;
 * geometry_columns (for describing the different spatial datasets) - right-click -&amp;gt; &lt;br /&gt;
 * and spatial_ref_sys(a list of projections/coordinate systems and different representations thereof)&lt;br /&gt;
&lt;br /&gt;
 A 'dams' table which, when expanded should show a bunch of Columns, Constraints (e.g. Primary Key), Indexes, Rules and Triggers. &lt;br /&gt;
 * Note the geometry type of column 'the_geom'. &lt;br /&gt;
 * Also note the spatial index present - this allows for optimal retrieval of data based on the spatial properties of the data.&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
'''Load''' the following layers (also from the /home/workshop/gisdata/za/brits/SAExplorer/ directory)&lt;br /&gt;
&lt;br /&gt;
 Hydrology_DWAFRivers.shp -&amp;gt; call the table 'rivers'&lt;br /&gt;
 Transport_Mainroads.shp -&amp;gt; call the table 'roads'&lt;br /&gt;
 ProvincialBoundary.shp -&amp;gt; call the table 'provinces'&lt;br /&gt;
&lt;br /&gt;
And to show that this can scale a bit, let us load in the background a dataset of over 350 000 points (which we will use a bit later)&lt;br /&gt;
 * cd /home/workshop/gisdata/za/fire/modis_af/&lt;br /&gt;
 * shp2pgsql -I -s 4326 modis_af.shp fires | psql -d workshop  &amp;amp;&amp;gt; /dev/null (puts output into background)&lt;br /&gt;
 * shp2pgsql -I -s -D 4326 modis_af.shp fires | psql -d workshop (simpler and faster)&lt;br /&gt;
&lt;br /&gt;
=== Super duper advanced ===&lt;br /&gt;
&lt;br /&gt;
What if I want to load a batch of shapefiles in a directory in 1 go? Try this nifty bash script one liner!&lt;br /&gt;
&lt;br /&gt;
 for FILE in `ls *.shp`; do TABLE=`echo $FILE | sed 's/\.shp//g'`; echo $TABLE;shp2pgsql -I -s 4326 $FILE $TABLE | psql -d workshop; done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This takes a while so lets move on.&lt;br /&gt;
&lt;br /&gt;
=== What have I learnt? ===&lt;br /&gt;
&lt;br /&gt;
* PostgreSQL is an enterprise-ready relational database management system - and it's Free and Open Source Software&lt;br /&gt;
* You can create a new database using the '''createdb''' command.&lt;br /&gt;
* '''PostGIS''' is a add-on to PostgreSQL that lets you store spatial data and carry out spatial analysis within the database.&lt;br /&gt;
* In order to set up PostGIS you need to run a couple of SQL scripts&lt;br /&gt;
* '''shp2pgsql''' is a command line application that lets you load shapefiles into your spatial datastore&lt;br /&gt;
&lt;br /&gt;
== Using PostGIS data from QGIS ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
Once your data is in PostGIS, its easy to share across your organisation. Because it's in a database you get row level locking (instead of file locking in a shapefile), so many users can be editing and viewing data at the same time. There are many clients that let you visualise your PostGIS data..lets take a look at how we do it in QGIS.&lt;br /&gt;
&lt;br /&gt;
* Open QGIS&lt;br /&gt;
* Start a new project&lt;br /&gt;
  File -&amp;gt; New Project&lt;br /&gt;
* Add a PostGIS layer&lt;br /&gt;
  Layer -&amp;gt; Add PostGIS Layer&lt;br /&gt;
* From the connections list, choose '''workshop'''&lt;br /&gt;
  Click connect&lt;br /&gt;
* In the table list, click on '''dams'''&lt;br /&gt;
  Click Add&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
* Add the following layers from your database&lt;br /&gt;
 rivers&lt;br /&gt;
 roads&lt;br /&gt;
 provinces&lt;br /&gt;
&lt;br /&gt;
* set some nice colors for your layers - notice how the process is exactly the same as when setting colours for a shapefile.&lt;br /&gt;
&lt;br /&gt;
* save your project into&lt;br /&gt;
&lt;br /&gt;
 /home/workshop/gisdata/brits_pg.qgs&lt;br /&gt;
&lt;br /&gt;
=== What have I learnt? ===&lt;br /&gt;
&lt;br /&gt;
* You can '''visualise''' PostGIS spatial database tables inside QGIS&lt;br /&gt;
* To add a PostGIS layer, use the '''Layer -&amp;gt; Add PostGIS Layer''' menu option.&lt;br /&gt;
* Once a PostGIS layer, you can treat it just like any other (e.g. shapefile) layer&lt;br /&gt;
* Your presenters are truly amazing....however would I have figured this stuff out for my self :-)&lt;br /&gt;
&lt;br /&gt;
== More on PostGIS Data in QGIS ==&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
* Click on the '''Blue Elephant''' icon in the middle toolbar row to start SPIT loader.&lt;br /&gt;
* Select the PostgreSQL Connection as &amp;quot;workshop&amp;quot;.&lt;br /&gt;
* Click on Connect to verify your connection&lt;br /&gt;
* Now click &amp;quot;Add&amp;quot; - the &amp;quot;Add Shapefile&amp;quot; dialog box comes up. &lt;br /&gt;
&lt;br /&gt;
Navigate to /home/workshop/gisdata/za/brits/SAExplorer.&lt;br /&gt;
&lt;br /&gt;
* Select &amp;quot;Rsatowns.shp&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 Click &amp;quot;Open&amp;quot;.  PostGIS scans the file and lists it in the display frame.&lt;br /&gt;
&lt;br /&gt;
 Click &amp;quot;OK&amp;quot;.  QGIS loads the shapefile data into PostGIS with no need to use the terminal!&lt;br /&gt;
&lt;br /&gt;
* Use Layer -&amp;gt; Add PostGIS Layer to load the layer from PostGIS directly into QGIS.  &lt;br /&gt;
&lt;br /&gt;
* Now add the rivers PostGIS layer to QGIS to see another advantage of using PostGIS layers.&lt;br /&gt;
* Open the Layer properties form.  &lt;br /&gt;
* On the General tab, click &amp;quot;Query Builder&amp;quot; near the bottom right-hand corner. This opens the Query Builder. &lt;br /&gt;
* Click Field &amp;quot;RIVER_CLAS&amp;quot;.&lt;br /&gt;
* Click the &amp;quot;All&amp;quot; button under the &amp;quot;Values&amp;quot; frame.&lt;br /&gt;
* Build the Query &lt;br /&gt;
 &amp;quot;RIVER_CLAS&amp;quot; LIKE 'Perennial' OR &amp;quot;RIVER_CLAS&amp;quot; LIKE 'Perennial river'&lt;br /&gt;
* Click &amp;quot;Test&amp;quot; to check that it will work.&lt;br /&gt;
* Click &amp;quot;OK&amp;quot; twice to apply it.&lt;br /&gt;
&lt;br /&gt;
Now look at the display - the query has not merely highlighted the selected features, it has filtered the non-selected features out so that they are not displayed.  &lt;br /&gt;
&lt;br /&gt;
=== Now you try ===&lt;br /&gt;
&lt;br /&gt;
* Try loading other layers into PostGIS using the Spit loader.&lt;br /&gt;
* Load these into QGIS, and use the &amp;quot;Query Builder&amp;quot; to define the data sets that you want to see.&lt;br /&gt;
* You could define the non-perennial rivers as a separate data set, and use scale-dependent rendering to show them only when you zoom right in.&lt;br /&gt;
&lt;br /&gt;
=== What I have learnt ===&lt;br /&gt;
&lt;br /&gt;
How to rapidly load data into postgis using the spit loader.  How to set up data queries to filter spatial data display from postgis.&lt;br /&gt;
&lt;br /&gt;
== The Zen of PostGIS - not just a pretty place to store data! ==&lt;br /&gt;
&lt;br /&gt;
Okay, we will go a bit deeper into the woods here! We want to show that with some SQL (I won't say simple) you can do some complex - and repeatable - spatial analysis right inside your database, and then visualise the results in various clients.&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
We will use pgAdmin (your great PostgreSQL friend) to get this happening. Click on the Tables object of your workshop db. Then Tools -&amp;gt; Query tool from the menu. This should present a dialog box with 3 panels.&lt;br /&gt;
&lt;br /&gt;
We are going to do a simple intersection to get started.&lt;br /&gt;
In the top left panel paste &lt;br /&gt;
 SELECT roads.gid, roads.code, roads.route_nr, roads.shape_leng, roads.the_geom FROM roads, rivers WHERE (roads.the_geom &amp;amp;&amp;amp; rivers.the_geom AND intersects(roads.the_geom, rivers.the_geom));&lt;br /&gt;
and click Query -&amp;gt; Execute&lt;br /&gt;
This should take a few seconds, then you will see a result returned into the Data Output grid. Something like 3338 rows are returned from the original roads dataset of 11964.&lt;br /&gt;
&lt;br /&gt;
So what is going on here?&lt;br /&gt;
&lt;br /&gt;
You are performing a spatial overlay with a SQL query, asking the database to return records from the roads table that spatially intersect records from the rivers table. &lt;br /&gt;
* the &amp;amp;&amp;amp; operator is a fast bounding box 'overlaps' test that takes advantage of the spatial indexes of the table to narrow the search space for the true intersection test.&lt;br /&gt;
* the intersects part of the query tests the geometries of the subset selected above for spatial intersection and returns a result.&lt;br /&gt;
&lt;br /&gt;
To show some other functionality, paste the following text into the query window and execute:&lt;br /&gt;
 ALTER TABLE roads DROP CONSTRAINT enforce_srid_the_geom;UPDATE geometry_columns SET srid = 4148 WHERE f_table_name = 'roads';COMMIT; UPDATE roads SET the_geom = ST_Transform(the_geom,4148);COMMIT; ALTER TABLE roads ADD CONSTRAINT enforce_srid_the_geom CHECK (srid(the_geom) = 4148);&lt;br /&gt;
We are being good South African GIS types and using our Haartebeesthoek94 Datum. Lets do the same for rivers:&lt;br /&gt;
 ALTER TABLE rivers DROP CONSTRAINT enforce_srid_the_geom;UPDATE geometry_columns SET srid = 4148 WHERE f_table_name = 'rivers';COMMIT; UPDATE rivers SET the_geom = ST_Transform(the_geom,4148);COMMIT; ALTER TABLE rivers ADD CONSTRAINT enforce_srid_the_geom CHECK (srid(the_geom) = 4148);&lt;br /&gt;
&lt;br /&gt;
This looks fairly intense, but the main points are the changing of the data in the geometry_columns meta-table and then updating the geometries in each table to a different CRS (4148, or Haartebeesthoek94). We demonstrate the use of the UPDATE SQL command, used to change data in the database, and the use of the ST_Transform function of PostGIS, which does the work. Now lets try the original query again:&lt;br /&gt;
 SELECT roads.gid, roads.code, roads.route_nr, roads.shape_leng, roads.the_geom FROM roads, rivers WHERE st_intersects(roads.the_geom, rivers.the_geom);&lt;br /&gt;
...which returns the same number of features, but in our own CRS. Note that we have used the ST_Intersects function rather than the Intersects function as previously shown. ST_ type functions are more standards compliant, so should be used in place of the older style functions.&lt;br /&gt;
Ideally we would project the data as appropriate, using the very same technique, but substituting 4148 for the EPSG code for our projection of choice. This is a demo though, folks, so I will get away with murder...&lt;br /&gt;
Lets quickly repeat the process for the other datasets we will use in a minute:&lt;br /&gt;
 ALTER TABLE provinces DROP CONSTRAINT enforce_srid_the_geom;UPDATE geometry_columns SET srid = 4148 WHERE f_table_name = 'provinces';COMMIT; UPDATE provinces SET the_geom = ST_Transform(the_geom,4148);COMMIT; ALTER TABLE provinces ADD CONSTRAINT enforce_srid_the_geom CHECK (srid(the_geom) = 4148);&lt;br /&gt;
 ALTER TABLE fires DROP CONSTRAINT enforce_srid_the_geom;UPDATE geometry_columns SET srid = 4148 WHERE f_table_name = 'fires';COMMIT; UPDATE fires SET the_geom = ST_Transform(the_geom,4148);COMMIT; ALTER TABLE fires ADD CONSTRAINT enforce_srid_the_geom CHECK (srid(the_geom) = 4148);&lt;br /&gt;
&lt;br /&gt;
So, while that goes ahead (it will take a minute or so to transform 350k points), let us think out another analysis. Lets make it a bit tricky. Okay, we want to create a table for serving up data to the outside world (Gavin will do this later) that has all the intense fires in Gauteng or NorthWest Province, that have occurred within 3000 metres of a main road. There are many ways to skin this cat in PostGIS, so I will pick a method and explain why I did so.&lt;br /&gt;
First, a convenience table is created:&lt;br /&gt;
 SELECT roads.gid, ST_Buffer(roads.the_geom,0.027) AS geom INTO roads_buffer FROM roads, (SELECT * FROM provinces WHERE prov_code = 'GT' OR prov_code = 'NW') AS prov WHERE ST_Within(roads.the_geom, prov.the_geom);&lt;br /&gt;
This is a table of polygons representing ~3000 metre road buffers, and note the use of the function to populate the geometry_columns meta-table with our new layer.&lt;br /&gt;
 SELECT DISTINCT fires.gid, fires.frp, fires.acqdatetim, fires.the_geom INTO fires_analysis_3000m FROM fires, (SELECT * FROM provinces WHERE prov_code = 'GT' OR prov_code = 'NW') AS prov, roads_buffer  WHERE fires.frp &amp;gt; 200 AND ST_Within(fires.the_geom, prov.the_geom) AND ST_Within(fires.the_geom, roads_buffer.geom);&lt;br /&gt;
The main feature of this query is the longish WHERE clause, which tests weather the fire is intense, whether it falls within Gauteng or NW Province and whether the fire occurred within appx 3000 metres of one of our main roads.&lt;br /&gt;
&lt;br /&gt;
There are not too many fires that fall out of this analysis, but it shows how we have relatively easily worked with and reduced a large dataset to a few points. These queries can be further tuned to take advantage of spatial and other indexes, but that is perhaps for another time.&lt;br /&gt;
&lt;br /&gt;
The final thing we will do is prepare this layer for use on the web...&lt;br /&gt;
 INSERT INTO geometry_columns(f_table_catalog,f_table_schema,f_table_name,f_geometry_column,coord_dimension,srid,&amp;quot;type&amp;quot;) VALUES('','public','fires_analysis_3000m','the_geom',2,4148,'MULTIPOINT');&lt;br /&gt;
Normal meta-table stuff&lt;br /&gt;
 ALTER TABLE fires_analysis_3000m ADD PRIMARY KEY (gid);&lt;br /&gt;
And if we wanted to we could add a spatial index:&lt;br /&gt;
 CREATE INDEX fires_Analysis_3000m_the_geom_gist ON fires_Analysis_3000m USING gist(the_geom);&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
Well, no you do not - but you can ask questions...&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
Well, hopefully a fair bit. You can, with a bit of practice and reading up on the matter, get PostGIS to do some rather interesting and powerful things. We have just seen a database do GIS... Some of you may be in the know about such matters, but hopefully this shows some possibilities to others.&lt;br /&gt;
&lt;br /&gt;
== uDig ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
uDig ('user-friendly desktop internet GIS') is another excellent desktop GIS. let's check out the basics&lt;br /&gt;
&lt;br /&gt;
* Open uDig&lt;br /&gt;
* start adding layers (note the variety of data that can be used)&lt;br /&gt;
** Add a PostGIS layer&lt;br /&gt;
** add a shapefile&lt;br /&gt;
* theme the layers&lt;br /&gt;
* check out the table view, catalogue and some functionality&lt;br /&gt;
&lt;br /&gt;
There's no need to save projects - you can just close uDig and it will save automatically. Note &lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
* Add the following layers from your database&lt;br /&gt;
 rivers, dams, schools, roads, more if you like&lt;br /&gt;
&lt;br /&gt;
* theme the school layer with nice symbols and labels - we're going to try scale-dependent rendering&lt;br /&gt;
**zoom in closer than 1:50000 and set the max scale to 50000&lt;br /&gt;
**on the theme dialog, click XML&lt;br /&gt;
**select the &amp;lt;rule&amp;gt;&amp;lt;/rule&amp;gt; section and copy it to a text editor.&lt;br /&gt;
**zoom out beyond 50000, go back to 'theme' and simplify your symbols, removing the labels.&lt;br /&gt;
**set the min scale to 50000&lt;br /&gt;
**click 'XML'&lt;br /&gt;
**paste the previous 'rule' into the XML, before or after the one you see.&lt;br /&gt;
**click OK! now zoom in and out past to see the result. &lt;br /&gt;
 &lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
* Viewing and rendering different formats in uDig&lt;br /&gt;
* Theming with SLD (Styled layer descriptor), the OGC standard.&lt;br /&gt;
* scale-dependent rendering&lt;br /&gt;
** with a point - we're going to come back to uDig!&lt;br /&gt;
&lt;br /&gt;
== GeoServer ==&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
 cd&lt;br /&gt;
 export JAVA_HOME=/usr&lt;br /&gt;
 cd Apps/geoserver&lt;br /&gt;
 bin/startup.sh&lt;br /&gt;
&lt;br /&gt;
* Start geoserver (normally set to start automatically and run all the time)&lt;br /&gt;
* All admin is done via the web&lt;br /&gt;
* set up a namespace&lt;br /&gt;
* set up data stores&lt;br /&gt;
* set up feature types&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
* start GeoServer&lt;br /&gt;
* click Config -&amp;gt; Data&lt;br /&gt;
* Set Namespace to any name and any url&lt;br /&gt;
* Set Datastore to your postGIS database&lt;br /&gt;
* define a FeatureType for schools, choose a point style&lt;br /&gt;
'''Styling'''&lt;br /&gt;
*Go to Data -&amp;gt; Style -&amp;gt; new&lt;br /&gt;
**give your style a name and paste in your school SLD from uDig&lt;br /&gt;
**submit&lt;br /&gt;
**Go back to FeatureTypes and Edit your schools Feature, applying your new style&lt;br /&gt;
**Check out the results in the GeoServer demo pages&lt;br /&gt;
&lt;br /&gt;
'''Group layers'''&lt;br /&gt;
* Set up a group in the 'WMS' section&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Back to uDig&lt;br /&gt;
*bring in a WMS layer from http://localhost/geoserver:8080/wms&lt;br /&gt;
*bring in the same layer as WFS&lt;br /&gt;
**theme it&lt;br /&gt;
**save it as a shapefile&lt;br /&gt;
*try this with QGIS too (and with ArcGIS back at the office!)&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
* you can use GeoServer to serve your spatial data from any source as WMS, WFS, KML and more!&lt;br /&gt;
* You can use WMS and WFS layers in a desktop GIS&lt;br /&gt;
* impress your colleagues by sending them kml links from your geoserver so they can view them live in Google Earth!&lt;br /&gt;
&lt;br /&gt;
== More Advanced QGIS Use ==&lt;br /&gt;
Here are some more things you can do with QGIS!  Don't be put off by the heading of this section, we'll take you through step-by-step as before..&lt;br /&gt;
&lt;br /&gt;
=== ''Quick Qml with QGIS'' ===&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
If you have used  ArcView before, you might have used the avl feature which lets you store the symbology settings for a layer. QGIS has a similar feature called 'qml' which lets you create default symbology settings for a layer, that will be applied when ever that layer is loaded. We are also going to take a quick peek at how to create more complex symbology for a layer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Open QGIS if its not already running.&lt;br /&gt;
* Add the dams layer from the Postgresql 'Workshop' database&lt;br /&gt;
* Double click on the layer entry in the legend&lt;br /&gt;
* Activate the symbology tab&lt;br /&gt;
* Now change the legend type to '''Graduated Symbol'''&lt;br /&gt;
* Change the classification field to '''shape_area'''&lt;br /&gt;
* Set the '''number of classes''' to 5&lt;br /&gt;
* Click the '''classify''' button&lt;br /&gt;
* Click the '''Apply''' button&lt;br /&gt;
&lt;br /&gt;
You should see the shapes in the main window have now adopted a range of scintillating colours! However is you add that layer to another QGIS project you would normally have to do all this work again! Qml to the rescue.&lt;br /&gt;
&lt;br /&gt;
* Save your symbology settings by clicking the '''save as default''' button&lt;br /&gt;
&lt;br /&gt;
Ok lets test it out!&lt;br /&gt;
&lt;br /&gt;
* Close QGIS&lt;br /&gt;
* Reopen QGIS&lt;br /&gt;
* Add the Dams layer from the Postgresql 'Workshop' database&lt;br /&gt;
&lt;br /&gt;
If the planets are correctly aligned, your dams will appear all beautifully coloured according to your personal preference.&lt;br /&gt;
&lt;br /&gt;
If you want to you can also save your settings as non-default, and them restore them by selecting a .qml file again later. Refer to the '''Load style''' and '''Save style''' buttons on the vector properties dialog.&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
Ok give it a whirl, create default appearances for your other layers stored in your PostGIS database. Also try experimenting with the other legend types such as '''Continuous Colour''' and '''Unique Value'''. &lt;br /&gt;
Once you have set your default appearances, close QGIS and then reopen it. Now add all your PostGIS layers to the blank project and they should all magically appear with your preferred appearance.&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
The '''Layer Properties''' dialog in QGIS will let you specify the '''default appearance''' for a layer.&lt;br /&gt;
&lt;br /&gt;
=== ''Setting Projections'' ===&lt;br /&gt;
Projections are a mathematical way of transforming latitude and longitude coordinates into a form that can be meaningfully used in a map.  Sources to be added.&lt;br /&gt;
Some projections in common use in South Africa are the Albers Equal Area, Lamberts Conformal Conic and Gauss (LO) projections.&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
* Make sure that you are zoomed in to Gauteng.&lt;br /&gt;
* From the File menu, select Project Properties.&lt;br /&gt;
  File -&amp;gt; Project Properties&lt;br /&gt;
* Activate the Coordinate Reference System tab&lt;br /&gt;
* Check &amp;quot;Enable &amp;quot;on the fly&amp;quot; CRS Transformation&lt;br /&gt;
* Note that the current Coordinate Reference System is WGS84, which is a standard for displaying geographic coordinates.&lt;br /&gt;
* Look at the column EPSG - this a standard for identifying coordinate systems.  When you have selected a coordinate system you can always find it again quickly by noting the EPSG code and entering it into the '''Find box''' at the bottom of the form.&lt;br /&gt;
* Highlight the ''Projected Coordinate Systems&amp;quot; heading, and double-click to open the list.&lt;br /&gt;
* Scroll down and highlight the &amp;quot;Universal Transverse Mercator&amp;quot; heading.&lt;br /&gt;
* Select the '''Name''' radio button.&lt;br /&gt;
* Enter &amp;quot;33S&amp;quot; in the text box, and press find.  Keep pressing find until you get to &amp;quot;WGS 84/UTM Zone 33&amp;quot;.  &lt;br /&gt;
 Or select the EPSG ID radio button, enter 32733 and press the Find button.    Isn't that easier?&lt;br /&gt;
* Notice that the overall shape of the country has changed due to the projection.&lt;br /&gt;
* Zoom into Gauteng again.  Move your cursor and look at the coordinates shown at the bottom of the screen.  Notice how they have changed.  They are now in meters rather than decimal degrees.&lt;br /&gt;
&lt;br /&gt;
=== Now You Try! ===&lt;br /&gt;
First of all try a related projection such as UTM Zone 34S or UTM 38S, and see what the impact is.  Move your cursor around - how do the coordinates differ from ones shown under UTM 36S?&lt;br /&gt;
&lt;br /&gt;
Then try one of the Stereographic South projections, such as EPSG=3031,  for a very different view of South Africa!&lt;br /&gt;
&lt;br /&gt;
QGIS calculates the effect of the projection before displaying the data and doesn't make any changes, so you can try anything you like!&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
=== ''Editing Vector Data'' === &lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
=== Now You Try! ===&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Africa]]&lt;/div&gt;</summary>
		<author><name>Wiki-Brendonwp</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=AfricaEvents29November2008&amp;diff=32735</id>
		<title>AfricaEvents29November2008</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=AfricaEvents29November2008&amp;diff=32735"/>
		<updated>2008-12-01T08:22:50Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Brendonwp: /* Now You Try! */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;...back to [[Africa_Local_Chapter]]&lt;br /&gt;
&lt;br /&gt;
= What? =&lt;br /&gt;
&lt;br /&gt;
Our first OSGeo local chapter meet up! We will chew the cud, show you some cool stuff and start to get people familiar with the brilliant FOSS GeoSpatial products out there!&lt;br /&gt;
&lt;br /&gt;
We'll go through installing some software and getting it to a point where you can have fun with it. &lt;br /&gt;
&lt;br /&gt;
= How Much? =&lt;br /&gt;
&lt;br /&gt;
There will be a door charge of R50 to cover costs &amp;amp; refreshments. That and an open mind are all you need to bring. If you're staying for the QGIS session in the afternoon you can bring your laptop (Windows, Linux or Mac!)&lt;br /&gt;
&lt;br /&gt;
= Where? =&lt;br /&gt;
&lt;br /&gt;
 St Davids Marist Inanda College&lt;br /&gt;
 36 Rivonia Rd&lt;br /&gt;
 Inanda&lt;br /&gt;
 Sandton&lt;br /&gt;
[http://www.stdavids.co.za/about_directions.asp Map and Directions]&lt;br /&gt;
&lt;br /&gt;
NB: We'll be in the Prep School computer lab.&lt;br /&gt;
&lt;br /&gt;
= When? =&lt;br /&gt;
&lt;br /&gt;
* November 29th&lt;br /&gt;
* Presentation and workshop segment: 9am to 12pm&lt;br /&gt;
* QGIS Bug Party! 12h30 onwards&lt;br /&gt;
&lt;br /&gt;
= Who =&lt;br /&gt;
&lt;br /&gt;
Your friendly presenters for the day will be:&lt;br /&gt;
&lt;br /&gt;
* '''Tim Sutton''' (tim at linfiniti.com) - QGIS hacker and FOSS GIS junkie extraordinaire. Tim eats Weetbix for breakfast because it sounds like Linux. He once rewrote Nkosi Sikelela in C++ because he was feeling patriotic.&lt;br /&gt;
* '''Graeme McFerren''' - (graeme.mcferren at gmail.com) - GIS researcher and FOSS4G user. Mmm, aspire to be like Tim then.&lt;br /&gt;
* '''Gavin Fleming''' (gavinjfleming at gmail dot com) - I enjoy my daily FOSS4G fix and telling people how great it was. I'm a 'geoinformation scientist' at Mintek and love to see cutting edge and useful geospatial applications emerging. &lt;br /&gt;
* '''Brendon Wolff-Piggott''' - (brendon at integratedgeodata.co.za) - Water resources consultant and FOSS GIS enthusiast.  I wish there were more hours in the day to keep up with FOSS4G!&lt;br /&gt;
&lt;br /&gt;
= RSVP =&lt;br /&gt;
Let gavinjfleming at gmail dot com know if you're coming as numbers are limited. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= QGIS Bug Party =&lt;br /&gt;
&lt;br /&gt;
As a preview release there are still various bugs that need resolving and various elements (e.g. translation) that may be incomplete. On Saturday the 29th in Johannesburg, South Africa, members from the Africa OSGeo chapter will be holding a QGIS Bug Hunt Party. We would like to invite people from around the world to virtually participate. Each person attending will get a free copy of QGIS 1.0.0 Preview 2 absolutely free of charge! Sorry no shrink wrap copies available. Preview 2 is the second in a series of preview releases we are making before we release the Stable QGIS 1.0.0 with long term support. &lt;br /&gt;
We are going to great lengths to polish up QGIS 1.0 for you (inside and out) and we really appreciate all the feedback we have received thus far. Its virtually impossible to ship any software completely bug free, but with your help we can add just a little more shine to the polish! We need your help to:&lt;br /&gt;
&lt;br /&gt;
* test on different machine configurations (bring your laptops!)&lt;br /&gt;
* validate existing bugs on each platform&lt;br /&gt;
* mark bugs that can no longer be replicated as ready for closure&lt;br /&gt;
* create new tickets for bugs that have not been reported yet (please search first to avoid posting duplicates!)&lt;br /&gt;
* mark bugs that are duplicates&lt;br /&gt;
* provide additional diagnostics so that developers can replicate issues&lt;br /&gt;
&lt;br /&gt;
The idea is not to try to *fix* the bugs, but rather to do a QA session on the bugs in the bug tracker. In the process you will learn how to interact with an Open Source project the Right Way i.e. filing good quality bug reports.&lt;br /&gt;
&lt;br /&gt;
I will start off with a simple show and tell covering:&lt;br /&gt;
* where to find the QGIS (and other OSGeo projects bug tracking sites)&lt;br /&gt;
* creating an account so you can file non-anonymous bugs and feedback on any OSGeo project bug tracker&lt;br /&gt;
* how the bug tracking system works - what the various input fields in the QGIS tracker mean&lt;br /&gt;
&lt;br /&gt;
The approach will be to start by going through any bugs that have not been revised recently, adding additional status information. If you think the bug is fixed, add a comment:&lt;br /&gt;
&lt;br /&gt;
'''Works for me now, recommend closure, &amp;lt;Your Name&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
If you can replicate the bug, add a comment like:&lt;br /&gt;
&lt;br /&gt;
'''Can replicate, OS: Ubuntu 8.10, QGIS Preview 2, &amp;lt;Your Name&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Use your initiative to deal with tickets that don't fit into the categories above, following a similar approach.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After that I will turn you loose on the queue and a shiny copy of QGIS preview 2 and let you have at it. Party is over when the last man falls asleep at the keyboard! Ok probably we will finish at between 4:30pm and 5pm if my wife has anything to do with it!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We look forward to seeing you at the QGIS Bug Party!!!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Programme in a nutshell =&lt;br /&gt;
&lt;br /&gt;
* Be there in time for a 9am start&lt;br /&gt;
* Morning session: Introducing QGIS, PostGIS, GeoServer, uDig&lt;br /&gt;
* Afternoon session: QGIS Bug Party&lt;br /&gt;
&lt;br /&gt;
Note: There will be frequent rest breaks and lots of time to ask questions!&lt;br /&gt;
&lt;br /&gt;
'''1. Welcome, Introduction and Overview: Starting up (5 minutes)'''&lt;br /&gt;
&lt;br /&gt;
What am I looking at here? What do I need to do to get started?&lt;br /&gt;
&lt;br /&gt;
'''2. QGIS: Opening and viewing spatial data. Your first map. (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
What can I look at? How do I set up a simple map?  Toolbars and Plug-ins. &lt;br /&gt;
&lt;br /&gt;
'''3. PostGIS: Why use PostGIS? Simple example of loading data. (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
Why use a spatial database? What does one look like? How do I populate a spatial database and where does my data live?&lt;br /&gt;
&lt;br /&gt;
'''4. QGIS: Looking at PostGIS data from QGIS.  (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
View a PostGIS database from QGIS.  Setting up data definitions for PostGIS sources.  Loading data into PostGIS with the Spit Loader (no, please don't touch the screen!)&lt;br /&gt;
&lt;br /&gt;
'''5. PostGIS: More than a place to dump data... (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
PostGIS is not just good for storing data, one can manipulate it too! GIS can be done inside the database, which is rather nice when you think about it.&lt;br /&gt;
&lt;br /&gt;
'''6. uDig: Why uDig?  GIS and the Web.  (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
Getting GIS data ready for presentation on the Web! Editing SLDs.&lt;br /&gt;
&lt;br /&gt;
'''7. GeoServer: Tell everyone about it!  (15 minutes)'''&lt;br /&gt;
&lt;br /&gt;
Displaying GIS data on the web.  Grouped WMS.  Scale-dependent rendering.&lt;br /&gt;
&lt;br /&gt;
'''8. And more QGIS.'''&lt;br /&gt;
&lt;br /&gt;
Detail on symbology.  Topological editing. QML, SPD and Openlayers.  (15 minutes)&lt;br /&gt;
&lt;br /&gt;
'''9. Show off session'''&lt;br /&gt;
&lt;br /&gt;
Here we can do some whizz bang demo stuff that we don't have time to do in  workshop format but that will give you some hints as to what else can be achieved.&lt;br /&gt;
&lt;br /&gt;
'''10. General'''&lt;br /&gt;
&lt;br /&gt;
Questions and answers.  What you can do next.  Resources.  Possibly some in-depth examples based on frequent questions.  What would you like to see at future workshops?&lt;br /&gt;
&lt;br /&gt;
'''11. Your assessment of the workshop'''&lt;br /&gt;
&lt;br /&gt;
Tell us what you thought!&lt;br /&gt;
&lt;br /&gt;
= Workshop Notes =&lt;br /&gt;
&lt;br /&gt;
== Welcome, introductions and overview ==&lt;br /&gt;
&lt;br /&gt;
== Lets make a map - First steps with QGIS ==&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
* Open QGIS using the icon on the top Gnome Panel&lt;br /&gt;
* From the Layer menu, select '''Add Vector Layer'''&lt;br /&gt;
  Layer -&amp;gt; Add Vector Layer&lt;br /&gt;
* A dialog box will appear&lt;br /&gt;
* Navigate to &lt;br /&gt;
  /home/workshop/gisdata/za/brits/SAExplorer/&lt;br /&gt;
* Add the following layer :&lt;br /&gt;
  Provinces.shp&lt;br /&gt;
* Experiment with the '''map navigation toolbar''' to zoom in / out, pan, select etc features.&lt;br /&gt;
* Open the '''Layer properties dialog'''. There are several ways you can do this:&lt;br /&gt;
  1) Select the layer in the legend and then from the menu do Layer -&amp;gt; Properties&lt;br /&gt;
  or&lt;br /&gt;
  2) Right click on the layer in the legend and choose Properties from the context menu&lt;br /&gt;
  or&lt;br /&gt;
  3) Double click on the layer in the legend&lt;br /&gt;
* Familiarise yourself with the various panels in the vector properties dialog.&lt;br /&gt;
* Select the '''Symbology''' tab (second from the left)&lt;br /&gt;
* From the '''Style Options''' panel, choose a pleasing '''fill colour''' for the provinces then &lt;br /&gt;
  Click OK&lt;br /&gt;
&lt;br /&gt;
Or you can:&lt;br /&gt;
* Select the '''Legend Type''' as ''Unique Value''.  &lt;br /&gt;
* Set the '''Classification field''' to ''PROVNAME''&lt;br /&gt;
* Click on the '''Classify''' button to set '''different colours for each province'''.&lt;br /&gt;
  Click OK&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
'''Add''' the following layers (also from the /home/workshop/gisdata/za/brits/SAExplorer/ directory)&lt;br /&gt;
&lt;br /&gt;
  Transport_NationalRoads.shp&lt;br /&gt;
  Transport_Railways.shp&lt;br /&gt;
  RSATowns.shp&lt;br /&gt;
  Dams.shp&lt;br /&gt;
 &lt;br /&gt;
'''Zoom and pan''' around a little to explore your data'''&lt;br /&gt;
'''Symbolise''' each layer with an appropriate colour to make the most awe inspiring map.&lt;br /&gt;
&lt;br /&gt;
Activate the '''Identify features''' icon on the middle toolbar to identify the attribute values associated with a spatial feature for the layer highlighted in the Legend Box.&lt;br /&gt;
&lt;br /&gt;
Activate the '''Select Features''' icon next to Identify Features to select one or more features.  &lt;br /&gt;
&lt;br /&gt;
Open the attribute table to view all feature attributes. Note that selected features will have highlighted rows in the attribute table.  You can do this using the neighbouring '''Open Attribute Table''' icon, or by selecting the Open Attribute Table option on the context menu for the layer in the legend using right-click on the mouse.&lt;br /&gt;
&lt;br /&gt;
You can also select rows in the attribute table by:&lt;br /&gt;
* Left-clicking on the desired rows.&lt;br /&gt;
* Using the '''Search''' box at the bottom-left of the form.&lt;br /&gt;
* Selecting the '''Advanced''' button and opening the '''Search Query Builder'''. &lt;br /&gt;
&lt;br /&gt;
Save your project using &lt;br /&gt;
 File -&amp;gt; Save&lt;br /&gt;
&lt;br /&gt;
And put it into&lt;br /&gt;
 /home/workshop/gisdata/brits.qgs&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
In ten minutes you now know how to '''add vector layers''' into QGIS, '''pan and zoom''' to navigate the map, and set the colour of vectors using the '''Single Symbol''' or '''Unique Values''' options in the '''Layer Properties'''.&lt;br /&gt;
&lt;br /&gt;
You have also learnt how to use the interactive '''Identify''' and '''Select''' functions, '''opened attribute tables''' and found out how to '''search''' them.&lt;br /&gt;
&lt;br /&gt;
== More on QGIS Mapping ==&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
Add the vector layer '''Education_Schools2000.shp''' from the SAExplorer directory.  Notice how dense the points are!&lt;br /&gt;
&lt;br /&gt;
* Right-click on the schools layer in the Legend frame.&lt;br /&gt;
* Select '''Properties'''&lt;br /&gt;
* Select the '''General tab'''&lt;br /&gt;
* Check '''Use scale dependent rendering'''&lt;br /&gt;
* Set the maximum field to 1000000&lt;br /&gt;
&lt;br /&gt;
* Zoom out to view the whole country.    '''Notice that the schools no longer appear on the map!''' &lt;br /&gt;
* Now start zooming in, keeping an eye on the scale shown in the '''scale box''' at the bottom of the screen.&lt;br /&gt;
&lt;br /&gt;
 Notice how the schools points reappear when the scale decreases below 1:1000000&lt;br /&gt;
 &lt;br /&gt;
* From the Layer menu, select '''Add Raster Layer'''&lt;br /&gt;
  Layer -&amp;gt; Add Raster Layer&lt;br /&gt;
* A dialog box will appear&lt;br /&gt;
* Navigate to &lt;br /&gt;
  /home/workshop/gisdata/za/gauteng/&lt;br /&gt;
* Add the following layer :&lt;br /&gt;
 SOU-8_satellite.tif&lt;br /&gt;
&lt;br /&gt;
Notice that the image is largely in shades of greyish-brown, but that a dam can be seen towards the bottom of the image. &lt;br /&gt;
&lt;br /&gt;
* Open the Properties for the raster layer, in a similar way to that used for vector layers.&lt;br /&gt;
 Layer -&amp;gt; Properties&lt;br /&gt;
* Select the '''Transparency''' tab.&lt;br /&gt;
* Using the slider, set transparency to 25%&lt;br /&gt;
* Click OK&lt;br /&gt;
Notice how the you can now see the vector layers behind the satellite image.&lt;br /&gt;
 &lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
If you have not already done so, add the vector layers Transport_NationalRoads.shp and Transport_Mainroads.shp from /home/workshop/gisdata/za/brits/SAExplorer.&lt;br /&gt;
Set scale-dependent rendering so that the national roads display at all scales, while the main roads are only shown when you are zoomed in. &lt;br /&gt;
&lt;br /&gt;
Go to the satellite image properties, Symbology tab.  Try the different &amp;quot;Render as&amp;quot; options.  Then when you have found the one that suits you, have a look at the &amp;quot;Contast Enhancement&amp;quot; options.  Compare &amp;quot;No Stretch&amp;quot; and &amp;quot;Stretch to MinMax&amp;quot;.  &lt;br /&gt;
&lt;br /&gt;
Try &amp;quot;Render as Single Band Grey&amp;quot;.  Set the &amp;quot;Custom min/max values&amp;quot; radio button.  Change the Min and Max values.  Go to &amp;quot;Contract Enhancement&amp;quot; again and set it to &amp;quot;Stretch and Clip to MinMax&amp;quot;, and see the effect.&lt;br /&gt;
&lt;br /&gt;
Add raster images of 1: 50 000 map sheets from &amp;quot; /home/workshop/gisdata/za/brits/toposheet images&amp;quot; &lt;br /&gt;
You will need to set the Files of Type box to '''JPEG JFIF''' to see them, before you can select them.&lt;br /&gt;
Set their transparency to a value that allows you to see the vector features behind them.  Zoom in and look at how the vector features and image features match (or not!).&lt;br /&gt;
&lt;br /&gt;
Notice how you can zoom right in to vector data, and a point remains a point and a line remains a line.  When you zoom in to the satellite image it rapidly appears &amp;quot;blocky&amp;quot; compared to the 50 000 map sheets. Zoom in enough and even the map sheet raster blocks can be seen.  This is a basic difference between vector and raster data.&lt;br /&gt;
&lt;br /&gt;
=== What have I learnt? ===&lt;br /&gt;
&lt;br /&gt;
You have learnt to set scale-dependent rendering so that data sets are displayed at appropriate scales, how to add raster data and set raster display options.&lt;br /&gt;
&lt;br /&gt;
== Shapefiles shmapefiles....real (wo)men store their data in PostGIS ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
* '''Create''' a new PostgreSQL database. To do this, open the terminal application (icon to the right of Firefox icon on the top menu bar). Now at the prompt type the following command:&lt;br /&gt;
  createdb workshop&lt;br /&gt;
&lt;br /&gt;
* '''Verify''' your database exists (once again type this into the terminal)&lt;br /&gt;
  psql -l&lt;br /&gt;
* You should see something like this:&lt;br /&gt;
 workshop@heron:~$ psql -l&lt;br /&gt;
        List of databases&lt;br /&gt;
   Name    |  Owner   | Encoding &lt;br /&gt;
 -----------+----------+----------&lt;br /&gt;
 postgres  | postgres | UTF8&lt;br /&gt;
 template0 | postgres | UTF8&lt;br /&gt;
 template1 | postgres | UTF8&lt;br /&gt;
 workshop  | workshop | UTF8&lt;br /&gt;
 (4 rows)&lt;br /&gt;
* away from the terminal for a while - lets look at what a non-spatial, vanilla PostgreSQL database looks like. Open pgAdmin 3  (the icon with a blue elephant face)&lt;br /&gt;
* Double-click on the icon that has a red cross next to some text &amp;quot;gis (localhost:5432)&amp;quot; and press OK if another screen comes up. The database cluster called gis expands and you should see two databases: 'postgres' and 'workshop'. Expand workshop -&amp;gt; Schemas -&amp;gt; public&lt;br /&gt;
Specifically, let us look at Functions and Tables - don't look to deeply, this is just to show the differences after PostGIS is installed on the database (you will see later). Specifically, there is nothing in the db at the moment. So minimise pgAdmin and lets crack on with getting some data in!&lt;br /&gt;
&lt;br /&gt;
* Install the PostGIS spatial data extensions (again from the terminal).&lt;br /&gt;
'''Hint''' copy and paste these from the IRC channel or the wiki page!&lt;br /&gt;
 createlang plpgsql workshop&lt;br /&gt;
 psql workshop &amp;lt; /usr/share/postgresql-8.3-postgis/lwpostgis.sql&lt;br /&gt;
 psql workshop &amp;lt; /usr/share/postgresql-8.3-postgis/spatial_ref_sys.sql&lt;br /&gt;
&lt;br /&gt;
* Yegads! What did I just do? Firstly, you installed the '''plpgsql''' procedural language extensions into your PostgreSQL database. Then you ran two sql scripts which create the '''PostGIS''' spatial extensions to your database. You only need to do this '''once''' when you create a new spatial database, so don't worry about remembering those commands off by heart.&lt;br /&gt;
* Lets upload a shapefile into the database....once more into the black hole (terminal window).&lt;br /&gt;
 cd /home/workshop/gisdata/za/brits/SAExplorer&lt;br /&gt;
 shp2pgsql -I -s 4326 Dams.shp dams | psql -d workshop&lt;br /&gt;
* Erk! What does that all mean? Lets break it down:&lt;br /&gt;
 cd /home/workshop/gisdata/za/brits/SAExplorer - go to our data directory&lt;br /&gt;
 shp2pgsql - an application that loads shapefiles into a PostGIS database&lt;br /&gt;
 -I - an option to shp2pgsql telling it to create a spatial index&lt;br /&gt;
 -s - the coordinate reference system to use, expressed as an EPSG number. 4326 is the same as Lat/Long WGS84&lt;br /&gt;
 Dams.shp - the filename of the shapefile to load&lt;br /&gt;
 dams - the table name that the data should be loaded into&lt;br /&gt;
 | psql workshop - send the results of the shp2pgsql into the psql application, workshop database&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Lets take a peek inside our database now and see what we have - back to pgAdmin, click on the 'workshop' database icon and then refresh it (red/green circular arrows icon).&lt;br /&gt;
Three major things to look at:&lt;br /&gt;
 &lt;br /&gt;
 Hundreds of Functions for working with spatial data: &lt;br /&gt;
 * geometry constructors, &lt;br /&gt;
 * spatial predicates, &lt;br /&gt;
 * geometry editors, &lt;br /&gt;
 * geometry aggregators, &lt;br /&gt;
 * geometry accessors, &lt;br /&gt;
 * measurements, &lt;br /&gt;
 * linear referencing&lt;br /&gt;
 * and outputting  of spatial data. &lt;br /&gt;
 &lt;br /&gt;
 2 important meta-tables: (expand the Tables object)&lt;br /&gt;
 * geometry_columns (for describing the different spatial datasets) - right-click -&amp;gt; &lt;br /&gt;
 * and spatial_ref_sys(a list of projections/coordinate systems and different representations thereof)&lt;br /&gt;
&lt;br /&gt;
 A 'dams' table which, when expanded should show a bunch of Columns, Constraints (e.g. Primary Key), Indexes, Rules and Triggers. &lt;br /&gt;
 * Note the geometry type of column 'the_geom'. &lt;br /&gt;
 * Also note the spatial index present - this allows for optimal retrieval of data based on the spatial properties of the data.&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
'''Load''' the following layers (also from the /home/workshop/gisdata/za/brits/SAExplorer/ directory)&lt;br /&gt;
&lt;br /&gt;
 Hydrology_DWAFRivers.shp -&amp;gt; call the table 'rivers'&lt;br /&gt;
 Transport_Mainroads.shp -&amp;gt; call the table 'roads'&lt;br /&gt;
 ProvincialBoundary.shp -&amp;gt; call the table 'provinces'&lt;br /&gt;
&lt;br /&gt;
And to show that this can scale a bit, let us load in the background a dataset of over 350 000 points (which we will use a bit later)&lt;br /&gt;
 * cd /home/workshop/gisdata/za/fire/modis_af/&lt;br /&gt;
 * shp2pgsql -I -s 4326 modis_af.shp fires | psql -d workshop  &amp;amp;&amp;gt; /dev/null (puts output into background)&lt;br /&gt;
 * shp2pgsql -I -s -D 4326 modis_af.shp fires | psql -d workshop (simpler and faster)&lt;br /&gt;
&lt;br /&gt;
=== Super duper advanced ===&lt;br /&gt;
&lt;br /&gt;
What if I want to load a batch of shapefiles in a directory in 1 go? Try this nifty bash script one liner!&lt;br /&gt;
&lt;br /&gt;
 for FILE in `ls *.shp`; do TABLE=`echo $FILE | sed 's/\.shp//g'`; echo $TABLE;shp2pgsql -I -s 4326 $FILE $TABLE | psql -d workshop; done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This takes a while so lets move on.&lt;br /&gt;
&lt;br /&gt;
=== What have I learnt? ===&lt;br /&gt;
&lt;br /&gt;
* PostgreSQL is an enterprise-ready relational database management system - and it's Free and Open Source Software&lt;br /&gt;
* You can create a new database using the '''createdb''' command.&lt;br /&gt;
* '''PostGIS''' is a add-on to PostgreSQL that lets you store spatial data and carry out spatial analysis within the database.&lt;br /&gt;
* In order to set up PostGIS you need to run a couple of SQL scripts&lt;br /&gt;
* '''shp2pgsql''' is a command line application that lets you load shapefiles into your spatial datastore&lt;br /&gt;
&lt;br /&gt;
== Using PostGIS data from QGIS ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
Once your data is in PostGIS, its easy to share across your organisation. Because it's in a database you get row level locking (instead of file locking in a shapefile), so many users can be editing and viewing data at the same time. There are many clients that let you visualise your PostGIS data..lets take a look at how we do it in QGIS.&lt;br /&gt;
&lt;br /&gt;
* Open QGIS&lt;br /&gt;
* Start a new project&lt;br /&gt;
  File -&amp;gt; New Project&lt;br /&gt;
* Add a PostGIS layer&lt;br /&gt;
  Layer -&amp;gt; Add PostGIS Layer&lt;br /&gt;
* From the connections list, choose '''workshop'''&lt;br /&gt;
  Click connect&lt;br /&gt;
* In the table list, click on '''dams'''&lt;br /&gt;
  Click Add&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
* Add the following layers from your database&lt;br /&gt;
 rivers&lt;br /&gt;
 roads&lt;br /&gt;
 provinces&lt;br /&gt;
&lt;br /&gt;
* set some nice colors for your layers - notice how the process is exactly the same as when setting colours for a shapefile.&lt;br /&gt;
&lt;br /&gt;
* save your project into&lt;br /&gt;
&lt;br /&gt;
 /home/workshop/gisdata/brits_pg.qgs&lt;br /&gt;
&lt;br /&gt;
=== What have I learnt? ===&lt;br /&gt;
&lt;br /&gt;
* You can '''visualise''' PostGIS spatial database tables inside QGIS&lt;br /&gt;
* To add a PostGIS layer, use the '''Layer -&amp;gt; Add PostGIS Layer''' menu option.&lt;br /&gt;
* Once a PostGIS layer, you can treat it just like any other (e.g. shapefile) layer&lt;br /&gt;
* Your presenters are truly amazing....however would I have figured this stuff out for my self :-)&lt;br /&gt;
&lt;br /&gt;
== More on PostGIS Data in QGIS ==&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
* Click on the '''Blue Elephant''' icon in the middle toolbar row to start SPIT loader.&lt;br /&gt;
* Select the PostgreSQL Connection as &amp;quot;workshop&amp;quot;.&lt;br /&gt;
* Click on Connect to verify your connection&lt;br /&gt;
* Now click &amp;quot;Add&amp;quot; - the &amp;quot;Add Shapefile&amp;quot; dialog box comes up. &lt;br /&gt;
&lt;br /&gt;
Navigate to /home/workshop/gisdata/za/brits/SAExplorer.&lt;br /&gt;
&lt;br /&gt;
* Select &amp;quot;Rsatowns.shp&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 Click &amp;quot;Open&amp;quot;.  PostGIS scans the file and lists it in the display frame.&lt;br /&gt;
&lt;br /&gt;
 Click &amp;quot;OK&amp;quot;.  QGIS loads the shapefile data into PostGIS with no need to use the terminal!&lt;br /&gt;
&lt;br /&gt;
* Use Layer -&amp;gt; Add PostGIS Layer to load the layer from PostGIS directly into QGIS.  &lt;br /&gt;
&lt;br /&gt;
* Now add the rivers PostGIS layer to QGIS to see another advantage of using PostGIS layers.&lt;br /&gt;
* Open the Layer properties form.  &lt;br /&gt;
* On the General tab, click &amp;quot;Query Builder&amp;quot; near the bottom right-hand corner. This opens the Query Builder. &lt;br /&gt;
* Click Field &amp;quot;RIVER_CLAS&amp;quot;.&lt;br /&gt;
* Click the &amp;quot;All&amp;quot; button under the &amp;quot;Values&amp;quot; frame.&lt;br /&gt;
* Build the Query &lt;br /&gt;
 &amp;quot;RIVER_CLAS&amp;quot; LIKE 'Perennial' OR &amp;quot;RIVER_CLAS&amp;quot; LIKE 'Perennial river'&lt;br /&gt;
* Click &amp;quot;Test&amp;quot; to check that it will work.&lt;br /&gt;
* Click &amp;quot;OK&amp;quot; twice to apply it.&lt;br /&gt;
&lt;br /&gt;
Now look at the display - the query has not merely highlighted the selected features, it has filtered the non-selected features out so that they are not displayed.  &lt;br /&gt;
&lt;br /&gt;
=== Now you try ===&lt;br /&gt;
&lt;br /&gt;
* Try loading other layers into PostGIS using the Spit loader.&lt;br /&gt;
* Load these into QGIS, and use the &amp;quot;Query Builder&amp;quot; to define the data sets that you want to see.&lt;br /&gt;
* You could define the non-perennial rivers as a separate data set, and use scale-dependent rendering to show them only when you zoom right in.&lt;br /&gt;
&lt;br /&gt;
=== What I have learnt ===&lt;br /&gt;
&lt;br /&gt;
How to rapidly load data into postgis using the spit loader.  How to set up data queries to filter spatial data display from postgis.&lt;br /&gt;
&lt;br /&gt;
== The Zen of PostGIS - not just a pretty place to store data! ==&lt;br /&gt;
&lt;br /&gt;
Okay, we will go a bit deeper into the woods here! We want to show that with some SQL (I won't say simple) you can do some complex - and repeatable - spatial analysis right inside your database, and then visualise the results in various clients.&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
We will use pgAdmin (your great PostgreSQL friend) to get this happening. Click on the Tables object of your workshop db. Then Tools -&amp;gt; Query tool from the menu. This should present a dialog box with 3 panels.&lt;br /&gt;
&lt;br /&gt;
We are going to do a simple intersection to get started.&lt;br /&gt;
In the top left panel paste &lt;br /&gt;
 SELECT roads.gid, roads.code, roads.route_nr, roads.shape_leng, roads.the_geom FROM roads, rivers WHERE (roads.the_geom &amp;amp;&amp;amp; rivers.the_geom AND intersects(roads.the_geom, rivers.the_geom));&lt;br /&gt;
and click Query -&amp;gt; Execute&lt;br /&gt;
This should take a few seconds, then you will see a result returned into the Data Output grid. Something like 3338 rows are returned from the original roads dataset of 11964.&lt;br /&gt;
&lt;br /&gt;
So what is going on here?&lt;br /&gt;
&lt;br /&gt;
You are performing a spatial overlay with a SQL query, asking the database to return records from the roads table that spatially intersect records from the rivers table. &lt;br /&gt;
* the &amp;amp;&amp;amp; operator is a fast bounding box 'overlaps' test that takes advantage of the spatial indexes of the table to narrow the search space for the true intersection test.&lt;br /&gt;
* the intersects part of the query tests the geometries of the subset selected above for spatial intersection and returns a result.&lt;br /&gt;
&lt;br /&gt;
To show some other functionality, paste the following text into the query window and execute:&lt;br /&gt;
 ALTER TABLE roads DROP CONSTRAINT enforce_srid_the_geom;UPDATE geometry_columns SET srid = 4148 WHERE f_table_name = 'roads';COMMIT; UPDATE roads SET the_geom = ST_Transform(the_geom,4148);COMMIT; ALTER TABLE roads ADD CONSTRAINT enforce_srid_the_geom CHECK (srid(the_geom) = 4148);&lt;br /&gt;
We are being good South African GIS types and using our Haartebeesthoek94 Datum. Lets do the same for rivers:&lt;br /&gt;
 ALTER TABLE rivers DROP CONSTRAINT enforce_srid_the_geom;UPDATE geometry_columns SET srid = 4148 WHERE f_table_name = 'rivers';COMMIT; UPDATE rivers SET the_geom = ST_Transform(the_geom,4148);COMMIT; ALTER TABLE rivers ADD CONSTRAINT enforce_srid_the_geom CHECK (srid(the_geom) = 4148);&lt;br /&gt;
&lt;br /&gt;
This looks fairly intense, but the main points are the changing of the data in the geometry_columns meta-table and then updating the geometries in each table to a different CRS (4148, or Haartebeesthoek94). We demonstrate the use of the UPDATE SQL command, used to change data in the database, and the use of the ST_Transform function of PostGIS, which does the work. Now lets try the original query again:&lt;br /&gt;
 SELECT roads.gid, roads.code, roads.route_nr, roads.shape_leng, roads.the_geom FROM roads, rivers WHERE st_intersects(roads.the_geom, rivers.the_geom);&lt;br /&gt;
...which returns the same number of features, but in our own CRS. Note that we have used the ST_Intersects function rather than the Intersects function as previously shown. ST_ type functions are more standards compliant, so should be used in place of the older style functions.&lt;br /&gt;
Ideally we would project the data as appropriate, using the very same technique, but substituting 4148 for the EPSG code for our projection of choice. This is a demo though, folks, so I will get away with murder...&lt;br /&gt;
Lets quickly repeat the process for the other datasets we will use in a minute:&lt;br /&gt;
 ALTER TABLE provinces DROP CONSTRAINT enforce_srid_the_geom;UPDATE geometry_columns SET srid = 4148 WHERE f_table_name = 'provinces';COMMIT; UPDATE provinces SET the_geom = ST_Transform(the_geom,4148);COMMIT; ALTER TABLE provinces ADD CONSTRAINT enforce_srid_the_geom CHECK (srid(the_geom) = 4148);&lt;br /&gt;
 ALTER TABLE fires DROP CONSTRAINT enforce_srid_the_geom;UPDATE geometry_columns SET srid = 4148 WHERE f_table_name = 'fires';COMMIT; UPDATE fires SET the_geom = ST_Transform(the_geom,4148);COMMIT; ALTER TABLE fires ADD CONSTRAINT enforce_srid_the_geom CHECK (srid(the_geom) = 4148);&lt;br /&gt;
&lt;br /&gt;
So, while that goes ahead (it will take a minute or so to transform 350k points), let us think out another analysis. Lets make it a bit tricky. Okay, we want to create a table for serving up data to the outside world (Gavin will do this later) that has all the intense fires in Gauteng or NorthWest Province, that have occurred within 3000 metres of a main road. There are many ways to skin this cat in PostGIS, so I will pick a method and explain why I did so.&lt;br /&gt;
First, a convenience table is created:&lt;br /&gt;
 SELECT roads.gid, ST_Buffer(roads.the_geom,0.027) AS geom INTO roads_buffer FROM roads, (SELECT * FROM provinces WHERE prov_code = 'GT' OR prov_code = 'NW') AS prov WHERE ST_Within(roads.the_geom, prov.the_geom);&lt;br /&gt;
This is a table of polygons representing ~3000 metre road buffers, and note the use of the function to populate the geometry_columns meta-table with our new layer.&lt;br /&gt;
 SELECT DISTINCT fires.gid, fires.frp, fires.acqdatetim, fires.the_geom INTO fires_analysis_3000m FROM fires, (SELECT * FROM provinces WHERE prov_code = 'GT' OR prov_code = 'NW') AS prov, roads_buffer  WHERE fires.frp &amp;gt; 200 AND ST_Within(fires.the_geom, prov.the_geom) AND ST_Within(fires.the_geom, roads_buffer.geom);&lt;br /&gt;
The main feature of this query is the longish WHERE clause, which tests weather the fire is intense, whether it falls within Gauteng or NW Province and whether the fire occurred within appx 3000 metres of one of our main roads.&lt;br /&gt;
&lt;br /&gt;
There are not too many fires that fall out of this analysis, but it shows how we have relatively easily worked with and reduced a large dataset to a few points. These queries can be further tuned to take advantage of spatial and other indexes, but that is perhaps for another time.&lt;br /&gt;
&lt;br /&gt;
The final thing we will do is prepare this layer for use on the web...&lt;br /&gt;
 INSERT INTO geometry_columns(f_table_catalog,f_table_schema,f_table_name,f_geometry_column,coord_dimension,srid,&amp;quot;type&amp;quot;) VALUES('','public','fires_analysis_3000m','the_geom',2,4148,'MULTIPOINT');&lt;br /&gt;
Normal meta-table stuff&lt;br /&gt;
 ALTER TABLE fires_analysis_3000m ADD PRIMARY KEY (gid);&lt;br /&gt;
And if we wanted to we could add a spatial index:&lt;br /&gt;
 CREATE INDEX fires_Analysis_3000m_the_geom_gist ON fires_Analysis_3000m USING gist(the_geom);&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
Well, no you do not - but you can ask questions...&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
Well, hopefully a fair bit. You can, with a bit of practice and reading up on the matter, get PostGIS to do some rather interesting and powerful things. We have just seen a database do GIS... Some of you may be in the know about such matters, but hopefully this shows some possibilities to others.&lt;br /&gt;
&lt;br /&gt;
== uDig ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
uDig ('user-friendly desktop internet GIS') is another excellent desktop GIS. let's check out the basics&lt;br /&gt;
&lt;br /&gt;
* Open uDig&lt;br /&gt;
* start adding layers (note the variety of data that can be used)&lt;br /&gt;
** Add a PostGIS layer&lt;br /&gt;
** add a shapefile&lt;br /&gt;
* theme the layers&lt;br /&gt;
* check out the table view, catalogue and some functionality&lt;br /&gt;
&lt;br /&gt;
There's no need to save projects - you can just close uDig and it will save automatically. Note &lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
* Add the following layers from your database&lt;br /&gt;
 rivers, dams, schools, roads, more if you like&lt;br /&gt;
&lt;br /&gt;
* theme the school layer with nice symbols and labels - we're going to try scale-dependent rendering&lt;br /&gt;
**zoom in closer than 1:50000 and set the max scale to 50000&lt;br /&gt;
**on the theme dialog, click XML&lt;br /&gt;
**select the &amp;lt;rule&amp;gt;&amp;lt;/rule&amp;gt; section and copy it to a text editor.&lt;br /&gt;
**zoom out beyond 50000, go back to 'theme' and simplify your symbols, removing the labels.&lt;br /&gt;
**set the min scale to 50000&lt;br /&gt;
**click 'XML'&lt;br /&gt;
**paste the previous 'rule' into the XML, before or after the one you see.&lt;br /&gt;
**click OK! now zoom in and out past to see the result. &lt;br /&gt;
 &lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
* Viewing and rendering different formats in uDig&lt;br /&gt;
* Theming with SLD (Styled layer descriptor), the OGC standard.&lt;br /&gt;
* scale-dependent rendering&lt;br /&gt;
** with a point - we're going to come back to uDig!&lt;br /&gt;
&lt;br /&gt;
== GeoServer ==&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
 cd&lt;br /&gt;
 export JAVA_HOME=/usr&lt;br /&gt;
 cd Apps/geoserver&lt;br /&gt;
 bin/startup.sh&lt;br /&gt;
&lt;br /&gt;
* Start geoserver (normally set to start automatically and run all the time)&lt;br /&gt;
* All admin is done via the web&lt;br /&gt;
* set up a namespace&lt;br /&gt;
* set up data stores&lt;br /&gt;
* set up feature types&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
* start GeoServer&lt;br /&gt;
* click Config -&amp;gt; Data&lt;br /&gt;
* Set Namespace to any name and any url&lt;br /&gt;
* Set Datastore to your postGIS database&lt;br /&gt;
* define a FeatureType for schools, choose a point style&lt;br /&gt;
'''Styling'''&lt;br /&gt;
*Go to Data -&amp;gt; Style -&amp;gt; new&lt;br /&gt;
**give your style a name and paste in your school SLD from uDig&lt;br /&gt;
**submit&lt;br /&gt;
**Go back to FeatureTypes and Edit your schools Feature, applying your new style&lt;br /&gt;
**Check out the results in the GeoServer demo pages&lt;br /&gt;
&lt;br /&gt;
'''Group layers'''&lt;br /&gt;
* Set up a group in the 'WMS' section&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Back to uDig&lt;br /&gt;
*bring in a WMS layer from http://localhost/geoserver:8080/wms&lt;br /&gt;
*bring in the same layer as WFS&lt;br /&gt;
**theme it&lt;br /&gt;
**save it as a shapefile&lt;br /&gt;
*try this with QGIS too (and with ArcGIS back at the office!)&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
* you can use GeoServer to serve your spatial data from any source as WMS, WFS, KML and more!&lt;br /&gt;
* You can use WMS and WFS layers in a desktop GIS&lt;br /&gt;
* impress your colleagues by sending them kml links from your geoserver so they can view them live in Google Earth!&lt;br /&gt;
&lt;br /&gt;
== More Advanced QGIS Use ==&lt;br /&gt;
Here are some more things you can do with QGIS!  Don't be put off by the heading of this section, we'll take you through step-by-step as before..&lt;br /&gt;
&lt;br /&gt;
=== ''Quick Qml with QGIS'' ===&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
If you have used  ArcView before, you might have used the avl feature which lets you store the symbology settings for a layer. QGIS has a similar feature called 'qml' which lets you create default symbology settings for a layer, that will be applied when ever that layer is loaded. We are also going to take a quick peek at how to create more complex symbology for a layer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Open QGIS if its not already running.&lt;br /&gt;
* Add the dams layer from the Postgresql 'Workshop' database&lt;br /&gt;
* Double click on the layer entry in the legend&lt;br /&gt;
* Activate the symbology tab&lt;br /&gt;
* Now change the legend type to '''Graduated Symbol'''&lt;br /&gt;
* Change the classification field to '''shape_area'''&lt;br /&gt;
* Set the '''number of classes''' to 5&lt;br /&gt;
* Click the '''classify''' button&lt;br /&gt;
* Click the '''Apply''' button&lt;br /&gt;
&lt;br /&gt;
You should see the shapes in the main window have now adopted a range of scintillating colours! However is you add that layer to another QGIS project you would normally have to do all this work again! Qml to the rescue.&lt;br /&gt;
&lt;br /&gt;
* Save your symbology settings by clicking the '''save as default''' button&lt;br /&gt;
&lt;br /&gt;
Ok lets test it out!&lt;br /&gt;
&lt;br /&gt;
* Close QGIS&lt;br /&gt;
* Reopen QGIS&lt;br /&gt;
* Add the Dams layer from the Postgresql 'Workshop' database&lt;br /&gt;
&lt;br /&gt;
If the planets are correctly aligned, your dams will appear all beautifully coloured according to your personal preference.&lt;br /&gt;
&lt;br /&gt;
If you want to you can also save your settings as non-default, and them restore them by selecting a .qml file again later. Refer to the '''Load style''' and '''Save style''' buttons on the vector properties dialog.&lt;br /&gt;
&lt;br /&gt;
=== Now you try! ===&lt;br /&gt;
&lt;br /&gt;
Ok give it a whirl, create default appearances for your other layers stored in your PostGIS database. Also try experimenting with the other legend types such as '''Continuous Colour''' and '''Unique Value'''. &lt;br /&gt;
Once you have set your default appearances, close QGIS and then reopen it. Now add all your PostGIS layers to the blank project and they should all magically appear with your preferred appearance.&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
The '''Layer Properties''' dialog in QGIS will let you specify the '''default appearance''' for a layer.&lt;br /&gt;
&lt;br /&gt;
=== ''Setting Projections'' ===&lt;br /&gt;
Projections are a mathematical way of transforming latitude and longitude coordinates into a form that can be meaningfully used in a map.  Sources to be added.&lt;br /&gt;
Some projections in common use in South Africa are the Albers Equal Area, Lamberts Conformal Conic and Gauss (LO) projections.&lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
* Make sure that you are zoomed in to Gauteng.&lt;br /&gt;
* From the File menu, select Project Properties.&lt;br /&gt;
  File -&amp;gt; Project Properties&lt;br /&gt;
* Activate the Coordinate Reference System tab&lt;br /&gt;
* Check &amp;quot;Enable &amp;quot;on the fly&amp;quot; CRS Transformation&lt;br /&gt;
* Note that the current Coordinate Reference System is WGS84, which is a standard for displaying geographic coordinates.&lt;br /&gt;
* Look at the column EPSG - this a standard for identifying coordinate systems.  When you have selected a coordinate system you can always find it again quickly by noting the EPSG code and entering it into the '''Find box''' at the bottom of the form.&lt;br /&gt;
* Highlight the ''Projected Coordinate Systems&amp;quot; heading, and double-click to open the list.&lt;br /&gt;
* Scroll down and highlight the &amp;quot;Universal Transverse Mercator&amp;quot; heading.&lt;br /&gt;
* Select the '''Name''' radio button.&lt;br /&gt;
* Enter &amp;quot;33S&amp;quot; in the text box, and press find.  Keep pressing find until you get to &amp;quot;WGS 84/UTM Zone 33&amp;quot;.  &lt;br /&gt;
 Or select the EPSG ID radio button, enter 32733 and press the Find button.    Isn't that easier?&lt;br /&gt;
* Notice that the overall shape of the country has changed due to the projection.&lt;br /&gt;
* Zoom into Gauteng again.  Move your cursor and look at the coordinates shown at the bottom of the screen.  Notice how they have changed.  They are now in meters rather than decimal degrees.&lt;br /&gt;
&lt;br /&gt;
=== Now You Try! ===&lt;br /&gt;
QGIS calculates the effect of the projection before displaying the data and doesn't make any changes, so you can try anything you like.  First of all try a related projection such as UTM Zone 34S or UTM 38S, and see what the impact is.  Move your cursor around - how do the coordinates differ from ones shown under UTM 36S?&lt;br /&gt;
Then try one of the Stereographic South projections, such as EPSG=996,  for a very different view of South Africa!&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
=== ''Editing Vector Data'' === &lt;br /&gt;
&lt;br /&gt;
=== First we show you ===&lt;br /&gt;
&lt;br /&gt;
=== Now You Try! ===&lt;br /&gt;
&lt;br /&gt;
=== What have I learned? ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Africa]]&lt;/div&gt;</summary>
		<author><name>Wiki-Brendonwp</name></author>
	</entry>
</feed>