QGIS TutorialPrepared By:Niloy GhoshNitin Kumar RathoreStudents of 2nd Year MBA at Vinod Gupta School of Management(VGSOM), IIT Kharagpur
Objective of the Tutorial• To make a choropleth interactive map, as given in the picture, using open source QGIS mapping software.
What it doesA Choropleth map is a thematic map,having different colours or shades forrepresenting different values ingeographic region. It can be population,per capita income. This map makes iteasy to visualize how measurementvaries from a region to region.
Pre-Requirements• Shapefile: of any country that you want to choropleth interactive map of. In our case its India.• Data: Data of population, in table format, of the country.• GIS Software: Should be installed beforehand.
Shapefile• A Shapefile describe geometries, its a collection of points, lines, polylines and polygons.• It can have data about the geometries it describes for example population, mortality rate, terrain.• Extension of a shapefile is .shp• A shape file is provided by many websites for free. Our shape for India can be found at this link: http://www.gadm.org/country
Data• The data you want to be represented in the map can be taken from a mysql database, excel spreadsheet, access database, CSV file or any table.• Our data for India was taken from this link – data for excel: http://en.wikipedia.org/wiki/Demographics_of_In dia
About QGIS Software•Quantum Geographical Information System (QGIS) isan open source software for representinggeographical information. It’s available for Mac, OSXLinux and Windows platforms at http://www.qgis.org/•QGIS will be used to join the geographicalinformation stored in shapefile and data we want torepresent on the map.•After that we will create web version of map usingthe image of map and html code.
Let’s Start• We are going to build a map to show population data for each state of the country. The shapefile is to be download from http://www.gadm.org/country
• Unzip the Zip file downloaded and you will find the following contents.
Preparing data for shapefile:• Copy the population data from wiki link into the excel file
Preparing data for shapefile (contd.)• Copy the data of two columns, states and population, in excel file and save the spreadsheet with CSV format(comma delimited) (*.csv). And format column types as general.
Load the shapefile in QGIS• Click on Layer• Choose add vector layer
Load the shapefile in QGIS (contd.)• Select the IND_adm1.shp file from the unzipped folder you have downloaded, it contains the shape and data for indian states.
Open attribute table• Click on menu “Layer”• Choose “Open Attribute Table”
Attribute Table• The attribute table will contain data for states (column “NAME_1”). This field is used as a join to CSV file data. So one must be cautious that the data of the column should match otherwise make the necessary changes in CSV file.• We therefore advise you to download both files (shape and data) from the same websites if available.
To set the internet settings for downloading plugins, if you are workin under proxy server.• Click on menu “Settings”• Select “Options”
To set the internet settings for downloading plugins (contd.)• Select “Network” Tab• Enter your Host, Port and Proxy type of your proxy server
To download required plugins (mmqgis and HTML Image map plugin)• There are 2 plugins we need to complete this lab exercise. If you can’t see them in plugins menu, please follow theseesteps to download• Click on menu “Plugins”• Choose “Fetch Python plugins”
To download required plugins (contd.)• Click “Add 3rd party repositories”
To download required plugins (contd.)• Click on “Plugins” Tab• Type “mmqgis” in textbox for search• Click on “MMQGIS” plugin• Click on Command “Install plugin”
To download required plugins (contd.)• Follow same steps for Html Image map plugin
Import the data file in csv format• Click on menu “plugins”• Click option “mmqgis” and then option “Attributes joins from csv file”
Import the data file in csv format• Click on browse to select the data file(CSV) we dcreated earlier in excel• In data file select field “State or Union territory” and in Join layer attribute select option “NAME_1”. These are the fields to be joined• Save the output shapefile in your working directory and do same for the notfound csv output list.• Add joined layer must be checked and clik ok.
Import the data file in csv format (Contd.)• A new layer will be added to your project as indicated below
Attribute table with data• Open the attribute table again• Click “ Layer”, then click “Open attribute table”• New data has been joined with data of shapefile as shown below
• The problem mmqgis plugin is the it did not recognize number fields as numbers but as strings. So to use data properly it is to be converted into integers or reals.• For that click on pencill icon on ,as indicated in picture,to enter editing mode. Then click on calculator icon to launch field calculator
Format Strings to numbers• Enter name(say pop_int)of new column that will hold no. value for all strings in populatio field• select whole noumberinteger) for output field type• Click “to real” in opertators section, to begin expression in the field calculator expression box. Enter field name Ppop_int” and close the paranthesis. Click ok
Format string to numbers(contd.)• Now we will create a column that will hold a string value as a tooltip. When a mouse Is moved over a area in the map this is the message a person will see.• In output field name, enter pop_str, choose text(string) and make the output filed width 50.• Enter this formula in field calculator expression section: NAME_1+’:’+to string(populatio)• This will concatenatese the name field with population of that sate.. Now click ok
Format string to numbers• Now you can see different columns for population in numbers and in string form.• To save these changes you must click the pencil icon.
Colouring the map• Now we will color the map based on data file• Click on layers and select properties
Coloring the map (cont.)• In the layer properties dialog box , choose style tab(default). Choose legend type as ‘Graduated’. For column field select ‘pop_int’. For mode choose “equal interval”• For classes choose 6, then click on classify and then click apply.
Colouring the map(cont.)• Now the colours applied to map would be visible. And the colours of the map and legend of colours and values can be seen in layers window• We can change the default colour palette selected by QGIS.• To change colors go to style option by clicking layers menu then properties and then style tab.
Colouring the map(contd.)• To change color, click on the color of the respective row. This will open symbol selector. click change.• To change range, click on the range next to the first colour and a dialog box will appear to allow you to change the range upper and lower values
Colouring the map(contd.)• By clicking on change (for colour). IT will open a window Select Color.• Select bright red to differentiate it from blue.• Follow similar steps to change the colors of other ranges
Colouring the map(contd.)• To change range after clicking on the range values, as shown in previous slide , a dialog box will appear named “enter class bounds” as shown below. You can enter upper and lower limit to define range.• Click ok• Apply the same procedure to change ranges of the other rows
Colouring the map (contd.)• Now change the row values and colors as given in the figure below (range values in the multiples of 3 crore).• Also edit the labels next to range. You can edit labels just by double clicking on it.• After all editing click ok
Colouring th e map (contd.)• We can see different colour codes for the different range of population in the map.
Making an interactive web map• Whatever you see in the map window will be in your final Html map. If you want to get rid of the default icons on maps: the copy right notice, a measurement bar and a north marker. We have circled the icons, which can remove them.
Making an interactive web map(contd.)• You can resize the QGIS window to resize the map, according to your requirement of size on webpage.• Click the magnifying class as indicated to fill up any extra space.
Making an interactive web map(contd.)• Now we can export our map and html code to create an interactive web map.• Click on menu ‘Plugins’ and select Html Image Map Plugin. Then select image map.
Making an interactive web map(contd.)• The defauld dimension of image size is the size of QGIS map window. If you want to change these dimensions, you can change the size of map window and try again• Set the path for file to be saved by ‘browse’. Choose a filename for the html map.• Uncheck all the boxes except onMouseOver attr. Infront of that property select field value pop_str, the field that holds the tooltip/mouseover message. Click ok
Final Map• Open the web page file in your browser. You can see a similar picture given below. Move your mouse over individual states to see the population of that state on the top left corner.
To use the map in already existing template• A sample template can be found at http://tbarmann.webfactional.com/nicar• Html plugin will create 3 files: an html page, a png file and a PNGw file. Open the Html file with a text editor and copy all code between the start tag (<map name =“mapmap”>)and the end tag.
To use the map in already existing template (contd.)• Open the web page template you want to embed map on. Paste the map code into this template file.• Change the src attribute to the name of the png file created by the html image map plugin. and save the png file In the new html page directory. Now save the web page.
To use the map in already existing template (contd.)• This template file will show the same string but below the mouse as a tooltip rather than a message at top left. Like when we move mouse to West Bengal, this tooltip appears.
Thank YouPlease visit our bloghttp://gettingstartedwithqgis.blogspot.in/ for more suchtutorials