Difference between revisions of "Hospital Site Suitability Selection using QGIS"

From CUOSGwiki
Jump to navigationJump to search
 
(75 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 
== Purpose ==
 
== Purpose ==
The purpose of this tutorial is to give users an understanding of what free and open source software (FOSS) is and demonstrate how to use Google Earth and Quantum GIS (QGIS) by manipulating spatial data. This tutorial will demonstrate how to use QGIS for site suitability analysis of a hospital in Vancouver, BC.
+
The purpose of this tutorial is to show users how to perform a site suitability analysis for hospital placement, using QGIS. This tutorial will focus on Vancouver, BC to provide an example of how to complete this task. In the process users will gain a better understanding of free and open source software (FOSS), learn how to extract spatial data from Google Earth for use in other GIS software, as well as how to set up and manipulate data in QGIS.
   
 
== Introduction ==
 
== Introduction ==
When it comes to building a new hospital, there are criteria that should be followed in order to find the most appropriate location. Using a geographic information system to determine suitable areas for development allow the user to not only visualize where it is a suitable for a hospital to be located based on a set of rules, but also where it makes the most sense visually. Based on two papers (GIS-Based Multi-Criteria Analysis for Hospital Site Selection in Haidian District of Beijing (2012) and Hospital Site Selection Using Two-Stage Fuzzy Multi-Criteria Decision Making Process (2011)) the criteria for hospital site suitability can be summarized as follows:
+
When building a new hospital, there are criteria that should be followed in order to find the most appropriate location. These criteria consist of required proximities or distances from certain features, such as roads and public washrooms. Using GIS software, a map can be created of all areas in a city that meet these criteria, which can be used to select a hospital location. In this tutorial, a map of suitable areas for hospital construction in Vancouver will be created. The criteria used in this tutorial will be based on two papers (GIS-Based Multi-Criteria Analysis for Hospital Site Selection in Haidian District of Beijing (Zhou and Wu, 2012) & Hospital Site Selection Using Two-Stage Fuzzy Multi-Criteria Decision Making Process (Soltani and Morandi, 2011)) and are summarized in the following image:
   
  +
[[File:HospitalCriteria.PNG|450px|thumb|none|Criteria for hospital site selection]]
 
  +
[[File:HospitalCriteria.PNG|600px|thumb|none|Criteria for hospital site selection]]
   
 
== Software ==
 
== Software ==
  +
The two software packages required for this tutorial are QGIS and Google Earth. If you do not already have these on your computer, you can use the following instructions to get them.
The two software packages required for this tutorial are QGIS and Google Earth. To download QGIS, click on this [https://www.qgis.org/en/site/forusers/download.html link] and choose which version you would like. I would suggest downloading the Long Term Release Repository (most stable) as it is less likely to have any bugs then the latest version. To download Google Earth, click this [https://www.google.com/earth/download/gep/agree.html link] and select Agree and Download to agree to Google Maps/Google Earth Additional Terms of Service and download the software package. Once you have downloaded and installed both software, you are ready to download the required data for this tutorial.
 
   
  +
[[File:Main_DL.jpg]]
== Data ==
 
  +
To download QGIS, click on this [https://www.qgis.org/en/site/forusers/download.html link] and choose which version you would like. Version 3.8 under the "Latest Release" section will be used for this tutorial. Other version will be able to do everything in this tutorial, though the names and locations of certain tools and options may be different. The alternative is the "Long term release repository" version, which is an older release so it's more stable, but also has less features.
Create a working folder wherever you would like your files to be saved on your computer and within it place another folder titled Data. This is where you will store all of the needed you need to complete this tutorial. For this project, all of the data required is available at http://data.vancouver.ca/datacatalogue/, except for one KML file which you need to create in Google Earth. From the Vancouver data catalogue, you will need to download the shapefile packages for fire halls, local area boundary, railways, city streets, rapid transit, zoning districts and the KML file for public washrooms. To download a data file, scroll through the catalogue and click on the file name you want to download.
 
   
  +
[[File:Choices.jpg]]
[[File:FileList.png|450px|thumb|none|For example, we want to download the Fire halls file, so we click on the Fire halls hyperlink]]
 
   
  +
[[File:Latest_Release3.jpg]]
Then, scroll to the bottom of the newly loaded page and select the file type you want to download (for this tutorial we want shapefiles (SHP), if available or keyhole markup language files (KML) if not.
 
   
[[File:FireHallSHP.PNG|450px|thumb|none|Select the SHP file hyperlink]]
 
   
Save the file into the folder that you’ve created to store all of your data, and then unzip it by right clicking the zipped folder and selecting Extract All… and then choose to extract it into the folder storing all of the other data files you have downloaded.
 
   
  +
[[File:Google_Earth4.jpg]]
[[File:Extract.png|450px|thumb|none|Right click the zipped folder and select Extract All]]
 
   
  +
To download Google Earth, click this [https://www.google.com/earth/download/gep/agree.html link] and select '''Agree and Download'''. Once you have downloaded and installed both software packages, you are ready to download the required data for this tutorial.
Here is what the folder looks like once all of the data has been downloaded and extracted:
 
   
  +
== Data ==
[[File:FilesinFolder.PNG|450px|thumb|none|Folder with all downloaded files]]
 
  +
Create a working folder wherever you would like your project file to be saved, and within it make another folder titled "Data". This is where all of the data needed to complete this tutorial will be stored. For this project, all the required data is available at http://data.vancouver.ca/datacatalogue/, except for the file for hospital locations which will be extracted from Google Earth. From the Vancouver data catalogue, you will need to download the following files:
  +
-[ftp://webftp.vancouver.ca/OpenData/shape/fire_halls_shp.zip Fire halls]
  +
-[ftp://webftp.vancouver.ca/OpenData/shape/local_area_boundary_shp.zip Local area boundary]
  +
-[ftp://webftp.vancouver.ca/opendata/shape/railways_shp.zip Railway]
  +
-[ftp://webftp.vancouver.ca/OpenData/shape/rapid_transit_line_shp.zip Rapid transit lines]
  +
-[ftp://webftp.vancouver.ca/OpenData/shape/shape_city_streets.zip City streets package]
  +
-[ftp://webftp.vancouver.ca/OpenData/shape/zoning_districts_shp.zip Zoning districts and labels]
  +
-[http://data.vancouver.ca/download/kml/public_washrooms.kmz Public washrooms]
   
  +
To download the files, simply click the links above. The files are all in SHP format, except for Public washrooms which does not have an SHP version available, so it is a KML file. Next extract the contents of the files you downloaded into the "Data" folder you created earlier.
The file that is missing from the data catalogue but vital to this tutorial is a file containing the location of all of the existing hospitals in Vancouver. One way to create this KMZ file is to save all of the locations in Google Earth and export them as a KMZ. To do this you have to open Google Earth, search for hospitals in Vancouver, BC.
 
  +
  +
[[File:Extract_All.jpg]]
  +
  +
Once you have downloaded the files, you will need to extract the zipped files in your DATA folder.
  +
  +
Now only one more file is needed, which will contain the location of all of the existing hospitals in Vancouver. Because there is not file for this in the Vancouver Data Catalogue, we will use Google Earth to find all hospital locations in Vancouver, then export them as a KMZ file. To do this, open Google Earth and search for "hospitals in Vancouver, BC".
   
 
[[File:Hospitals.PNG|450px|thumb|none|Results for the search hospitals in Vancouver, BC]]
 
[[File:Hospitals.PNG|450px|thumb|none|Results for the search hospitals in Vancouver, BC]]
  +
  +
[[File:Copy_Results5.jpg]]
   
 
Next, click the folder icon below the search results that says “Copy the current search results to My Places” when you hover over it.
 
Next, click the folder icon below the search results that says “Copy the current search results to My Places” when you hover over it.
Line 35: Line 50:
 
[[File:Copytomyplaces.png|450px|thumb|none|Click the highlighted folder icon to move the search results into your My Places folder]]
 
[[File:Copytomyplaces.png|450px|thumb|none|Click the highlighted folder icon to move the search results into your My Places folder]]
   
  +
[[File:MyPlaces6.jpg]]
Now right click on the folder containing your search results and select Save Place As...
 
  +
  +
Now right click on the folder containing your search results and select '''Save Place As... '''
   
 
[[File:Saveplaceas.png|450px|thumb|none|Right click the folder and select Save Place As]]
 
[[File:Saveplaceas.png|450px|thumb|none|Right click the folder and select Save Place As]]
   
Name the file what you would like, make sure the Save as type is Kmz and save it in the folder with your other data.
+
Give the file a name and make sure the ''Save as type:'' is Kmz, then save it into your "Data" folder. Now that you have all the required files, you are ready to start the tutorial.
   
  +
== Tutorial ==
[[File:SavingAfile.PNG|450px|thumb|none|Save your newly created file]]
 
   
  +
[[File:NewProject.jpg]]
Once you have exported the KMZ file and saved it in your folder with all of the data you previously downloaded, you are ready to start the tutorial.
 
   
  +
Now that you have downloaded the software and collected the required data, it is time to begin. Open QGIS, click the '''New Project''' button (white piece of paper) in the top left to start a new project. Save the project file into your working folder under whatever name you choose (try not to use spaces or funny characters in your file name).
== Tutorial ==
 
Now that you have downloaded the software and collected the required data, it is time to begin. Open QGIS, select the '''new''' icon (white piece of paper) to start a new project, and save it in your working folder under whatever name you choose (try not to use spaces or funny characters in your file name).
 
 
=== Setting Up the Environment ===
 
=== Setting Up the Environment ===
Vancouver’s data files are projected in UTM Zone 10, NAD83 (CSRS) so that is what you should project your files as. To do this, go to the '''Project''' menu, select '''Project Properties'''. The Project Properties windows will open. Select '''CRS''' from the left hand menu and then toggle on ''Enable ‘on the fly’ CRS transformation''. The CRS that should be selected is NAD83(CSRS) / UTM zone 10N for the Vancouver region. Click Apply and OK.
+
Vancouver’s data files are projected in UTM Zone 10, NAD83 (CSRS) so that is what you should project your files as. To do this, go to the '''Project''' menu, select '''Properties'''. The Project Properties windows will open. Go to the '''CRS''' tab, then in the search box search for "NAD83(CSRS) / UTM zone 10N" and select it from the list. This will automatically project all files in your data frame according to this coordinate reference system. Click '''Apply''' to apply the change. From this window, under the '''General''' tab, you can set the project's home directory, which should be your "Data" folder. Once this is done, click '''Apply''' then '''OK'''.
  +
   
[[File:UTMzone.PNG|450px|thumb|none|Setting Projection to NAD83(CSRS) / UTM zone 10N]]
+
[[File:Projection.jpg]]
   
 
=== Importing Data ===
 
=== Importing Data ===
  +
To import the required data into QGIS, you will use the Browser panel on the left of the screen. Expand the "Project Home" section and you will see all the files you downloaded. Click the files you wish to import to select them (you can select multiple by holding the "Ctrl" key), then drag them into the center of the screen. All your files will now be added to the data frame. If you do not see anything, right click on one of the layers in the "Layers" panel, and select '''Zoom to Layer'''. You should have all the same layers as those seen in the screenshot below.
Once QGIS is launched, go to the '''Layer''' menu -> '''Add Layer''' -> '''Add Vector Layer'''. In the pop-up window, set your source type as '''File''' and click the '''Browse''' button under the '''Source''' header. Browse to where your shapefile is and double-click it or highlight it and select '''Open'''. Insert each of the shapefiles you would like to analyze. When inserting the ''city streets'' shapefile, make sure to select the non_city_streets, one_way_streets, lanes and public_streets shapefiles from the folder. From the rapid transit folder, you only need to import the rapid_transit_line shapefile. Modify each shapefile to look the way you would like it to by double-clicking the layer from the '''Layers Panel''' on the left hand side, then selecting '''Style''' from the left hand side of the popup window. Here you can change the symbol type (such as gradient, single symbol, categorized etc), the colour, the size and more. You’ll notice that some of the points in the hospital KMZ you created don’t lie within the Vancouver ''local area boundary''; this is not a problem as later on in this tutorial the non-valid points will be clipped.
 
   
  +
[[File:BeforeReorder.jpg|caption]] Before reordering
[[File:Importedlayers.PNG|450px|thumb|none|Display of all of the imported layers]]
 
  +
  +
[[File:Reorder.jpg|caption]] After reordering
  +
  +
Now, reorder the layers by dragging them in the "Layers" panel so that as many as possible are visible. You can also change the color and symbols for the layers by clicking them and changing the setting in the "Layer Styling" panel on the right (if this is not visible for you, right click the top toolbar and click '''Layer Styling Panel''').You’ll notice that some of the points in the hospital file you created don’t lie within Vancouver's boundaries; this is not a problem as later on in this tutorial the non-valid points will be dissolved. Once you have all the required data imported and looking acceptable, you can move on to the next step.
  +
  +
[[File:Capture2.PNG|500px|thumb|none|upright=2.0|Display of all of the imported layers]]
   
 
=== Converting KMZ to Shapefile ===
 
=== Converting KMZ to Shapefile ===
In order to be able to perform operations such as buffer and clip for fire halls, public washrooms and hospitals which are currently KMZ files, we need to convert them to shapefiles. To do this, right click the file from the ''Layers Panel'', then select '''Save as'''. In the pop-up window, make sure the Format is ESRI Shapefile, choose where you want to save it and what you want it to be called by selecting the '''Browse''' button and make sure the CRS is Project CRS (EPSG:26910 -NAD83 / UTM zone 10 N) and click '''OK'''. Once the shapefiles have been added, remove the original data files from the project.
+
In order to be able to perform operations such as buffer and clip on the public washroom and hospital files, they will need to be converted from KMZ format to SHP. To do this, right click the file from the "Layers" panel, then select '''Export > Save Features As'''. In the pop-up window, make sure the Format is ''ESRI Shapefile'', then choose the output name and location (your "Data" folder) by selecting the '''Browse''' button. Make sure the CRS is ''Project CRS (EPSG:26910 -NAD83 / UTM zone 10 N)'' then click '''OK'''. Do this for the public washroom file and the hospital file. Once both shapefiles have been added, you can remove their original layers from the project.
   
[[File:SaveAsShapefile.PNG|450px|thumb|none|Converting KMZ to shapefile]]
+
[[File:SaveAsShapefile.PNG|300px|thumb|none|Converting KMZ to shapefile]]
   
  +
=== Extracting Residential Areas from the Zoning Districts ===
=== Editing Attribute Tables: Selecting by Expression ===
 
Because one of our criteria for hospital site selection is that it should be within a certain distance of residential areas, we need to extract residential areas from the zoning districts shapefile. To do this, you must right-click on the zoning_districts layer and select '''Open Attribute Table'''. An attribute table of the zoning districts layer will appear and it will have categories of zoning types as well as zone names. Once you have the attribute table open, select '''Select Features Using an Expression''' (the icon showing small yellow square with an E). A '''Select By Expression''' window will appear, and in the function list, expand the '''Fields and Values''' and select '''Category'''. Select the '''all unique''' button in the bottom right corner beside Load values and a list should appear of the unique values from this attribute. The field values will have the list of different zoning categories that were seen in the attribute table.
 
In the expression box of the select by expression window, when you double click on the '''CATEGORY''' from the ''Fields and Values'' list, "CATEGORY" will appear. Once that appears, select the equal (=) sign where the available operators are listed. The next step is to select a field value. Because we want residential areas, we need to select multiple zoning categories. The expression should be "CATEGORY" LIKE '%Dwelling%'. This selects all zones where “Dwelling” is in the name. Click the '''Select''' button in the bottom right hand corner and then click '''Close'''.
 
   
  +
[[File:Select_Features.jpg]]
[[File:Expression.PNG|400px|thumb|none|Selection Expression]]
 
   
  +
One of our criteria for hospital site selection is that the location must be within a certain distance of residential areas, so we need to extract all the residential areas from the zoning districts shapefile. To do this, right-click on the zoning_districts layer and select '''Open Attribute Table'''. The attribute table for the zoning districts will open, and the zoning category for each feature will be shown in the "CATEGORY" column. We want to select all features with categories that contain the word "Dwelling", as this denotes that it is residential. To do this, select '''Select Features Using an Expression''' from the top toolbar. A '''Select By Expression''' window will appear, and for the expression type:
=== Saving Selected Points (Shapefile) ===
 
  +
"CATEGORY" LIKE '%Dwelling%'
The selected zones that are now highlight can be saved as their own shapefile. To do this, right click on the zoning_districts layer and select '''Save As''' and a window will appear. In this window, the format that the shapefile should be saved under is "ESRI Shapefile". Click the '''Browse''' button to choose where the file will go and give it a name. Toggle on '''Save only selected features''' and '''Add saved file to map''' and then click '''OK'''.
 
   
  +
Now click the '''Select features''' button in the bottom right hand corner and all the desired features will be selected, then click '''Close'''.
[[File:SavingASelection.JPG|200px|thumb|none|Residential zones shapefile after it has been added to map]]
 
  +
  +
[[File:Expression.PNG|500px|thumb|none|upright=2.0|Selection Expression]]
  +
  +
The selected zones that are now highlighted and can be saved as their own shapefile. To do this, right click on the zoning_districts layer and select '''Export > Save Selected Features As'''. Save it into your "Data" folder with ''ESRI Shapefile'' as the format. Make sure ''Save only selected features'' and ''Add saved file to map'' are toggled on, leave the CRS as is, then click '''OK'''.
  +
  +
[[File:SavingASelection.JPG|500px|thumb|none|upright=2.0|Residential zones shapefile after it has been added to map]]
   
 
=== Merging Shapefiles ===
 
=== Merging Shapefiles ===
Because we want to perform operations on all of the street shapefiles and all of the railway shapefiles, we need to merge them. To do this, select the '''Vector''' menu -> '''Data Management Tools''' -> ''''Merge Shapefiles to One'''. Check the '''Select by layer in the folder''' box (because both railways and streets are lines). Under ''Input files'' click '''Browse''' and select all of the street files you want to merge (all of the ones you have imported into the project previously). Make sure the '''Add result to map canvas box''' is checked and click '''OK''' and then '''Close''' when the operation is finished processing. Repeat this to merge the rapid transit and railways shapefiles and then remove all of the street and railways files you had imported earlier in the tutorial.
 
   
[[File:MergedFIles.PNG|380px|thumb|none|The merged street types and railways types]]
+
[[File:Merge_Streets.jpg|caption]] Merging street files
  +
  +
[[File:Merge_rail.jpg|caption]] Merging rail files
  +
  +
Because we want to perform operations on ''all'' of the street shapefiles and ''all'' of the railway shapefiles, we need to merge them. To do this, click '''Vector > Data Management Tools > Merge Vector Layers'''. For ''Input files'' select all of the files to be merged. Under the ''Merged'' field select ''Save to file'' and save it into your "Data" folder. Uncheck the box for '''Open output file after running algorithm''' then click '''Run in Background'''. Once the operation is completed use the "Browser" panel to add your new file to the data frame (if you don't see it hit the refresh button at the top). Follow these steps to merge all the road shapefiles (lanes, non_city_streets, one_way_streets and public_streets), then all the railway shapefiles (railways and rapid_transit).
  +
  +
[[File:MergedFIles.PNG|500px|thumb|none|upright=2.0|The merged street types and railways types]]
   
 
=== Buffering Files ===
 
=== Buffering Files ===
Now we need to buffer each of the shapefiles in order to make them meet the criteria for hospital site selection. To do this go to the '''Vector''' menu, select '''Geoprocessing Tools''' and then select '''Buffer'''. For buffering railway, choose the newly created merged railway shapefile from the ''Input vector layer'' dropdown menu. Select the number of segments you want to approximate (the number of side the buffer portions have is 4*the segments you choose; the more, the rounder the buffer result). Set the buffer distance to 200 (from the criteria above). Check the '''Dissolve buffer results''' and '''Add result to canvas''' boxes and choose where you want the file saved and what you want it called. Click '''OK''' and then '''Close''' once the process is finished.
+
Now we need to buffer each of the shapefiles in order to make them meet the criteria for hospital site selection. To do this go to '''Vector > Geoprocessing Tools > Buffer'''. Start by buffering your newly merged street shapefile. Select that file as the input, the set the distance to 100 meters, as that is the value given in the site suitability criteria. The "Segments" field controls how many line segments make up each quarter-circle in the buffer results, a higher value will give a rounder result, but it will be more complex as well. 25 is a good number of segments, so use that value for this buffer. Check the box saying "Dissolve result", deselect the option to add the output after running, then choose to save the file into your "Data" folder. Leave the rest of the settings untouched and hit '''Run in Background'''. Once it is finished running, close the window then add your new file to the data frame through the "Browser" panel.
   
[[File:Railway.PNG|300px|thumb|none|Buffer of railway results]]
+
[[File:Capture3.PNG|400px|thumb|none|Buffer of railway results]]
   
Repeat this with each of the remaining shapefiles using the criteria presented above. The finished result should look something like this:
+
Repeat this with each of the remaining shapefiles, setting the distance based on the criteria shown in the picture below.
   
[[File:AllBuffers.PNG|300px|thumb|none|Buffered layers]]
+
[[File:HospitalCriteria.PNG|600px|thumb|none|Criteria for hospital site selection]]
  +
  +
Once you have buffered all the required filed, the finished result should look something like this:
  +
  +
[[File:AllBuffers.PNG|400px|thumb|none|Buffered layers]]
   
 
=== Merging Shapefiles (again) ===
 
=== Merging Shapefiles (again) ===
   
Now that all of the original shapefiles have been buffered and clipped to only show the portions that are applicable for hospital site selection, we need to merge all of the shapefiles where we want to be within a certain distance (residential, streets, railways, and fire halls) together to get one easy to analyze and inclusive shapefile. To do this repeat the process outline for merging earlier, but this time choose the files listed above.
+
Now that all of the original shapefiles have been buffered and clipped to only show the portions that are applicable for hospital site selection, we need to merge all of the shapefiles with criteria to be within a certain distance (residential, streets, railways, and fire halls). To do this repeat the process outlined for merging earlier, but this time choose the files mentioned here.
   
 
=== Difference ===
 
=== Difference ===
Because we don’t want to include the land that is within a certain distance of public toilets and existing hospitals, we must clip the buffer we made of these files from the original shapefile of all suitable areas that we just created in order to get the final acceptable areas. To do this go to the '''Vector''' menu, select '''Geoprocessing Tools''' and then select '''Difference'''. The ''Input vector layer'' should be the merged shapefile you just created from buffers that we wanted to be within a certain distance of. The ''Difference layer'' should be the hospital buffer (we will repeat for public washrooms as well). Click '''Browse''' and choose where to save the file and what you want to name it and then click '''OK'''. Repeat for the washrooms, but this time the ''Input vector layer'' should be the file you just of acceptable areas without the hospital buffer and the ''Difference layer'' should be the washroom buffer.
+
Because we want to exclude the land that is within a certain distance of public toilets and existing hospitals, we must remove these areas from the shapefile we created in the previous step. To do this go to '''Vector > Geoprocessing Tools > Difference'''. The ''Input layer'' should be the merged shapefile from the previous step. The ''Difference layer'' should be the hospital buffer (we will repeat it after for public washrooms). Choose to save the file into your "Data" folder, and deselect the option to open the output file after running. Click '''Run in Background''' then once its finished close the window and add the new file to the data frame.
  +
  +
[[File:Capture4.PNG|500px|thumb|none|Difference tool]]
  +
  +
Repeat for the washrooms, but this time the ''Input layer'' should be the difference file you just created, and the ''Difference layer'' should be the washroom buffer.
   
 
=== Dissolve ===
 
=== Dissolve ===
Because we performed multiple operations on the final file, we should dissolve everything to make one clean and inclusive shapefile. To do this, go to the '''Vector''' menu, select '''Geoprocessing Tools''' and then select '''Dissolve'''. The ''Input vector layer'' should be the shapefile you just creating when dissolving the public washroom buffer from the acceptable areas merge. For the ''Dissolve field'', choose ''dissolve all''. Browse to where you want to save your final shapefile and what you want it to be called and click '''OK''' and '''Close'''.
+
Because we performed multiple operations on the final file, it will contain many overlapping polygons. To eliminate any overlap we should dissolve everything, making it into one clean and inclusive shapefile. To do this, go to the '''Vector > Geoprocessing Tools > Dissolve'''. The ''Input vector layer'' should be the shapefile you just creating when removing the public washroom buffer from the acceptable areas merge. Have the file be saved into your "Data" folder and deselect the option to open the file after running. Click '''Run in Background''' then once it finishes close the window and add your new file to the data frame.
   
[[File:Dissolvewindow.PNG|300px|thumb|none|Dissolve parameters]]
+
[[File:Capture5.PNG|400px|thumb|none|Dissolve parameters]]
   
The final result of all of the processes we have performed should look something like this:
+
The final result of all of the processes we have performed should look something like the picture below. This polygon represents all areas of Vancouver that are suitable for hospital construction, according to our criteria.
   
[[File:FinalArea.PNG|300px|thumb|none|Final acceptable areas shapefile]]
+
[[File:FinalArea.PNG|400px|thumb|none|Final acceptable areas shapefile]]
   
 
=== Making a Map ===
 
=== Making a Map ===
  +
Now that we have produced the data that we want to showcase, we can use QGIS to make it into a map. First, in the "Layers" panel make sure all the layers you want visible in the final map are checked, and that the ones you don't are unchecked. In our map we will display streets, hospitals, railways, and of course the suitable hospital area we created.
Once we have produced the data that we want to showcase, we can use QGIS to make an aesthetically pleasing map. First, turn on all of the layers that you would like to be showcased and turn off all others by selecting and unselecting the checkbox next to each layer name. For example, I have chosen to showcase the location of existing hospitals, roads, railways and the land that is suitable for the placement of the next hospital to be built. Select '''Project''' -> '''New Printer Composer''' and then type a name for your map in the text box and select '''OK''' (it does not have to be the same as the title you place on your final map). In the pop-up window, select '''Layout''' -> '''Add Map''' and then draw a rectangle on your canvas where you would like your map. To re-position your map display, select '''Layout''' -> '''Move Content'''. Now you can drag your map into place and zoom in and out. Under the '''Item Properties''' tab on the right hand side, you can also change the scale to get the perfect sizing.
 
  +
  +
To make your map layout, go to '''Project > New Print Layout''' then type in a name for your map and select '''OK''' (it does not have to be the same as the title you place on your final map). A new window will then open which lets you design your layout. To add the map to your layout, select '''Add Item > Add Map''' at the top of the screen, then drag out a rectangle on the canvas where you would like it to be. To re-position your map display, use the '''Move item content''' tool which can be activated on the left of the window. To move the map or any other features around the page, use the '''Select/Move item''' tool. You can resize the map by changing the scale, which is under the '''Item Properties''' tab on the right hand side.
  +
  +
[[File:Scale.PNG|300px|thumb|none|Changing the scale of the map]]
  +
  +
Once you are happy with the placement and size of your map, you can add the other required components which include a title, legend, scale bar and north-arrow. To add a title, select '''Add Item > Add Label''' and draw a box for your title. In the "Item Properties" panel, under '''Label''' you can type your title in the textbox and change the font type, size, colour etc.
   
To add a title, select '''Layout'''-> '''Add Label''' and draw a box for your title. Under '''Item Properties''' -> '''Label''' you can type your title in the textbox and change the font type, size, colour etc.
+
To add a north arrow, select '''Add Item > Add Picture''' and draw a box on your canvas. In the "Item Properties" panel, under '''Search directories''' you can view different North Arrows and choose which one you would like to use.
   
  +
[[File:Northarrow.PNG|300px|thumb|none|Choosing a north arrow]]
To add a north arrow, select '''Layout''' -> '''Add Image''' and draw a box on your canvas. Under '''Item Properties''' -> '''Search directories''' you can view different North Arrows and choose which one you would like to use.
 
   
Similarly, you can add a scale bar by selecting '''Layout''' -> '''Add Scalebar'''.
+
Similarly, you can add a scale bar by selecting '''Add Item > Add Scalebar'''.
   
To add a legend select '''Layout''' -> '''Add Legend'''. To show only the legend items that are present on your current map, select the icon that resembles a filter cone under the '''Item Properties''' -> '''Legend items''' menu. To rename legend items, double click a legend item and enter the text you want displayed. You can also rearrange legend items by dragging them up and down.
+
To add a legend select '''Add Item > Add Legend'''. To show only the legend items that are present on your current map, select the icon that resembles a filter cone under the '''Item Properties > Legend items''' menu. To rename legend items, double click a legend item and enter the text you want displayed. You can also rearrange legend items by dragging them up and down.
   
Once you are happy with your map, you can export it as an image, SVG or PDF by selecting Composer from the top left hand menu and choosing either '''Export as Image, Export as SVG''' or '''Export as PDF'''.
+
Once you have found a good placement for all the items, and have tuned their properties to your liking, you can export the layout as an image, SVG or PDF by selecting '''Layout''' in the top left and choosing either '''Export as Image''', '''Export as SVG''' or '''Export as PDF'''.
   
[[File:FinalMap2.JPG|300px|thumb|none|Final Map]]
+
[[File:FinalMap2.JPG|600px|thumb|center|upright=2.0|Final Map]]
   
 
== Conclusion ==
 
== Conclusion ==
  +
In this tutorial, you have learned how to produce a map in QGIS, showing suitable areas for hospital placement in Vancouver, BC, based on a specified set of criteria. However, the applicability of the techniques learned here is not limited just to this location, these criteria, or this exact purpose. By using different data and altering the buffer distances, these steps could be used to determine suitable placement areas for almost anything, and according to any set of criteria. More broadly, the skills acquired here, relating to setting up a QGIS project, manipulating data, and creating a map layout, can be used for countless other purposes. QGIS is a well-crafted and easy to use software, and this tutorial is just an example of the many ways that data can be manipulated within it to perform geographic analysis and produce informative maps. It also shows that the barrier to entry for GIS analysis is much lower than many people realize, as QGIS is free as long as you have a computer to run it.
QGIS is a well crafted and easy to use software that in this instance has allowed the production of a map that showcases suitable areas for the future placement of a hospital in Vancouver City, BC. This is just an example of the many ways that a few shapefiles can be manipulated to produce an informative map showcasing site-suitability of a specific building. It also shows that even people with no money for a software license can identify suitable areas for the placement of a multitude of things.
 
   
 
== References ==
 
== References ==

Latest revision as of 21:40, 3 October 2019

Purpose

The purpose of this tutorial is to show users how to perform a site suitability analysis for hospital placement, using QGIS. This tutorial will focus on Vancouver, BC to provide an example of how to complete this task. In the process users will gain a better understanding of free and open source software (FOSS), learn how to extract spatial data from Google Earth for use in other GIS software, as well as how to set up and manipulate data in QGIS.

Introduction

When building a new hospital, there are criteria that should be followed in order to find the most appropriate location. These criteria consist of required proximities or distances from certain features, such as roads and public washrooms. Using GIS software, a map can be created of all areas in a city that meet these criteria, which can be used to select a hospital location. In this tutorial, a map of suitable areas for hospital construction in Vancouver will be created. The criteria used in this tutorial will be based on two papers (GIS-Based Multi-Criteria Analysis for Hospital Site Selection in Haidian District of Beijing (Zhou and Wu, 2012) & Hospital Site Selection Using Two-Stage Fuzzy Multi-Criteria Decision Making Process (Soltani and Morandi, 2011)) and are summarized in the following image:


Criteria for hospital site selection

Software

The two software packages required for this tutorial are QGIS and Google Earth. If you do not already have these on your computer, you can use the following instructions to get them.

Main DL.jpg To download QGIS, click on this link and choose which version you would like. Version 3.8 under the "Latest Release" section will be used for this tutorial. Other version will be able to do everything in this tutorial, though the names and locations of certain tools and options may be different. The alternative is the "Long term release repository" version, which is an older release so it's more stable, but also has less features.

Choices.jpg

Latest Release3.jpg


Google Earth4.jpg

To download Google Earth, click this link and select Agree and Download. Once you have downloaded and installed both software packages, you are ready to download the required data for this tutorial.

Data

Create a working folder wherever you would like your project file to be saved, and within it make another folder titled "Data". This is where all of the data needed to complete this tutorial will be stored. For this project, all the required data is available at http://data.vancouver.ca/datacatalogue/, except for the file for hospital locations which will be extracted from Google Earth. From the Vancouver data catalogue, you will need to download the following files:

-Fire halls
-Local area boundary
-Railway
-Rapid transit lines
-City streets package
-Zoning districts and labels
-Public washrooms

To download the files, simply click the links above. The files are all in SHP format, except for Public washrooms which does not have an SHP version available, so it is a KML file. Next extract the contents of the files you downloaded into the "Data" folder you created earlier.

Extract All.jpg

Once you have downloaded the files, you will need to extract the zipped files in your DATA folder.

Now only one more file is needed, which will contain the location of all of the existing hospitals in Vancouver. Because there is not file for this in the Vancouver Data Catalogue, we will use Google Earth to find all hospital locations in Vancouver, then export them as a KMZ file. To do this, open Google Earth and search for "hospitals in Vancouver, BC".

Results for the search hospitals in Vancouver, BC

Copy Results5.jpg

Next, click the folder icon below the search results that says “Copy the current search results to My Places” when you hover over it.

Click the highlighted folder icon to move the search results into your My Places folder

MyPlaces6.jpg

Now right click on the folder containing your search results and select Save Place As...

Right click the folder and select Save Place As

Give the file a name and make sure the Save as type: is Kmz, then save it into your "Data" folder. Now that you have all the required files, you are ready to start the tutorial.

Tutorial

NewProject.jpg

Now that you have downloaded the software and collected the required data, it is time to begin. Open QGIS, click the New Project button (white piece of paper) in the top left to start a new project. Save the project file into your working folder under whatever name you choose (try not to use spaces or funny characters in your file name).

Setting Up the Environment

Vancouver’s data files are projected in UTM Zone 10, NAD83 (CSRS) so that is what you should project your files as. To do this, go to the Project menu, select Properties. The Project Properties windows will open. Go to the CRS tab, then in the search box search for "NAD83(CSRS) / UTM zone 10N" and select it from the list. This will automatically project all files in your data frame according to this coordinate reference system. Click Apply to apply the change. From this window, under the General tab, you can set the project's home directory, which should be your "Data" folder. Once this is done, click Apply then OK.


Projection.jpg

Importing Data

To import the required data into QGIS, you will use the Browser panel on the left of the screen. Expand the "Project Home" section and you will see all the files you downloaded. Click the files you wish to import to select them (you can select multiple by holding the "Ctrl" key), then drag them into the center of the screen. All your files will now be added to the data frame. If you do not see anything, right click on one of the layers in the "Layers" panel, and select Zoom to Layer. You should have all the same layers as those seen in the screenshot below.

caption Before reordering

caption After reordering

Now, reorder the layers by dragging them in the "Layers" panel so that as many as possible are visible. You can also change the color and symbols for the layers by clicking them and changing the setting in the "Layer Styling" panel on the right (if this is not visible for you, right click the top toolbar and click Layer Styling Panel).You’ll notice that some of the points in the hospital file you created don’t lie within Vancouver's boundaries; this is not a problem as later on in this tutorial the non-valid points will be dissolved. Once you have all the required data imported and looking acceptable, you can move on to the next step.

Display of all of the imported layers

Converting KMZ to Shapefile

In order to be able to perform operations such as buffer and clip on the public washroom and hospital files, they will need to be converted from KMZ format to SHP. To do this, right click the file from the "Layers" panel, then select Export > Save Features As. In the pop-up window, make sure the Format is ESRI Shapefile, then choose the output name and location (your "Data" folder) by selecting the Browse button. Make sure the CRS is Project CRS (EPSG:26910 -NAD83 / UTM zone 10 N) then click OK. Do this for the public washroom file and the hospital file. Once both shapefiles have been added, you can remove their original layers from the project.

Converting KMZ to shapefile

Extracting Residential Areas from the Zoning Districts

Select Features.jpg

One of our criteria for hospital site selection is that the location must be within a certain distance of residential areas, so we need to extract all the residential areas from the zoning districts shapefile. To do this, right-click on the zoning_districts layer and select Open Attribute Table. The attribute table for the zoning districts will open, and the zoning category for each feature will be shown in the "CATEGORY" column. We want to select all features with categories that contain the word "Dwelling", as this denotes that it is residential. To do this, select Select Features Using an Expression from the top toolbar. A Select By Expression window will appear, and for the expression type:

"CATEGORY" LIKE '%Dwelling%'

Now click the Select features button in the bottom right hand corner and all the desired features will be selected, then click Close.

Selection Expression

The selected zones that are now highlighted and can be saved as their own shapefile. To do this, right click on the zoning_districts layer and select Export > Save Selected Features As. Save it into your "Data" folder with ESRI Shapefile as the format. Make sure Save only selected features and Add saved file to map are toggled on, leave the CRS as is, then click OK.

Residential zones shapefile after it has been added to map

Merging Shapefiles

caption Merging street files

caption Merging rail files

Because we want to perform operations on all of the street shapefiles and all of the railway shapefiles, we need to merge them. To do this, click Vector > Data Management Tools > Merge Vector Layers. For Input files select all of the files to be merged. Under the Merged field select Save to file and save it into your "Data" folder. Uncheck the box for Open output file after running algorithm then click Run in Background. Once the operation is completed use the "Browser" panel to add your new file to the data frame (if you don't see it hit the refresh button at the top). Follow these steps to merge all the road shapefiles (lanes, non_city_streets, one_way_streets and public_streets), then all the railway shapefiles (railways and rapid_transit).

The merged street types and railways types

Buffering Files

Now we need to buffer each of the shapefiles in order to make them meet the criteria for hospital site selection. To do this go to Vector > Geoprocessing Tools > Buffer. Start by buffering your newly merged street shapefile. Select that file as the input, the set the distance to 100 meters, as that is the value given in the site suitability criteria. The "Segments" field controls how many line segments make up each quarter-circle in the buffer results, a higher value will give a rounder result, but it will be more complex as well. 25 is a good number of segments, so use that value for this buffer. Check the box saying "Dissolve result", deselect the option to add the output after running, then choose to save the file into your "Data" folder. Leave the rest of the settings untouched and hit Run in Background. Once it is finished running, close the window then add your new file to the data frame through the "Browser" panel.

Buffer of railway results

Repeat this with each of the remaining shapefiles, setting the distance based on the criteria shown in the picture below.

Criteria for hospital site selection

Once you have buffered all the required filed, the finished result should look something like this:

Buffered layers

Merging Shapefiles (again)

Now that all of the original shapefiles have been buffered and clipped to only show the portions that are applicable for hospital site selection, we need to merge all of the shapefiles with criteria to be within a certain distance (residential, streets, railways, and fire halls). To do this repeat the process outlined for merging earlier, but this time choose the files mentioned here.

Difference

Because we want to exclude the land that is within a certain distance of public toilets and existing hospitals, we must remove these areas from the shapefile we created in the previous step. To do this go to Vector > Geoprocessing Tools > Difference. The Input layer should be the merged shapefile from the previous step. The Difference layer should be the hospital buffer (we will repeat it after for public washrooms). Choose to save the file into your "Data" folder, and deselect the option to open the output file after running. Click Run in Background then once its finished close the window and add the new file to the data frame.

Difference tool

Repeat for the washrooms, but this time the Input layer should be the difference file you just created, and the Difference layer should be the washroom buffer.

Dissolve

Because we performed multiple operations on the final file, it will contain many overlapping polygons. To eliminate any overlap we should dissolve everything, making it into one clean and inclusive shapefile. To do this, go to the Vector > Geoprocessing Tools > Dissolve. The Input vector layer should be the shapefile you just creating when removing the public washroom buffer from the acceptable areas merge. Have the file be saved into your "Data" folder and deselect the option to open the file after running. Click Run in Background then once it finishes close the window and add your new file to the data frame.

Dissolve parameters

The final result of all of the processes we have performed should look something like the picture below. This polygon represents all areas of Vancouver that are suitable for hospital construction, according to our criteria.

Final acceptable areas shapefile

Making a Map

Now that we have produced the data that we want to showcase, we can use QGIS to make it into a map. First, in the "Layers" panel make sure all the layers you want visible in the final map are checked, and that the ones you don't are unchecked. In our map we will display streets, hospitals, railways, and of course the suitable hospital area we created.

To make your map layout, go to Project > New Print Layout then type in a name for your map and select OK (it does not have to be the same as the title you place on your final map). A new window will then open which lets you design your layout. To add the map to your layout, select Add Item > Add Map at the top of the screen, then drag out a rectangle on the canvas where you would like it to be. To re-position your map display, use the Move item content tool which can be activated on the left of the window. To move the map or any other features around the page, use the Select/Move item tool. You can resize the map by changing the scale, which is under the Item Properties tab on the right hand side.

Changing the scale of the map

Once you are happy with the placement and size of your map, you can add the other required components which include a title, legend, scale bar and north-arrow. To add a title, select Add Item > Add Label and draw a box for your title. In the "Item Properties" panel, under Label you can type your title in the textbox and change the font type, size, colour etc.

To add a north arrow, select Add Item > Add Picture and draw a box on your canvas. In the "Item Properties" panel, under Search directories you can view different North Arrows and choose which one you would like to use.

Choosing a north arrow

Similarly, you can add a scale bar by selecting Add Item > Add Scalebar.

To add a legend select Add Item > Add Legend. To show only the legend items that are present on your current map, select the icon that resembles a filter cone under the Item Properties > Legend items menu. To rename legend items, double click a legend item and enter the text you want displayed. You can also rearrange legend items by dragging them up and down.

Once you have found a good placement for all the items, and have tuned their properties to your liking, you can export the layout as an image, SVG or PDF by selecting Layout in the top left and choosing either Export as Image, Export as SVG or Export as PDF.

Final Map

Conclusion

In this tutorial, you have learned how to produce a map in QGIS, showing suitable areas for hospital placement in Vancouver, BC, based on a specified set of criteria. However, the applicability of the techniques learned here is not limited just to this location, these criteria, or this exact purpose. By using different data and altering the buffer distances, these steps could be used to determine suitable placement areas for almost anything, and according to any set of criteria. More broadly, the skills acquired here, relating to setting up a QGIS project, manipulating data, and creating a map layout, can be used for countless other purposes. QGIS is a well-crafted and easy to use software, and this tutorial is just an example of the many ways that data can be manipulated within it to perform geographic analysis and produce informative maps. It also shows that the barrier to entry for GIS analysis is much lower than many people realize, as QGIS is free as long as you have a computer to run it.

References