Difference between revisions of "Network Analysis: Finding shortest path in QGIS"

From CUOSGwiki
Jump to navigationJump to search
Line 9: Line 9:
 
== Acquired QGIS (version 2.6) ==
 
== Acquired QGIS (version 2.6) ==
 
[[File:QgisLOGO.PNG]] You need to install Quantum GIS version 2.6 in order to get activate the road graph plugin.
 
[[File:QgisLOGO.PNG]] You need to install Quantum GIS version 2.6 in order to get activate the road graph plugin.
  +
   
 
== Set up the Environment==
 
== Set up the Environment==
Line 15: Line 16:
 
===Add vector data===
 
===Add vector data===
 
In Layer menu, select Add layer and choose Add Vector Layer. Another option is click the Add Vector Layer button of the toolbar.
 
In Layer menu, select Add layer and choose Add Vector Layer. Another option is click the Add Vector Layer button of the toolbar.
  +
[[File:Vector.PNG|200px|thumb|right]]
  +
   
   
Line 47: Line 50:
   
 
[[File:AOI2.PNG|200px|thumb|left]]
 
[[File:AOI2.PNG|200px|thumb|left]]
  +
  +
  +
  +
  +
   
   
Line 88: Line 96:
   
   
[[File:Clipfunction.PNG|200px|thumb|left]]
+
[[File:Clip function.PNG|200px|thumb|left]]
   
   

Revision as of 01:42, 17 December 2014

Introduction

Calculating the shortest distance between two points is a commonly cited use for GIS. QGIS (Quantum GIS), an open source software ships with this tool, but it’s not visible by default. In this tutorial we will show you what you need to get started.

Data

The data are provided by City of Ottawa Open Data Catalog. It was used a polyline shapefile of Ottawa roads and a point shapefile of museums. This project is focused mostly in downtown Ottawa area. The shapefiles should be located in the same folder, in which we are going to work on.

Acquired QGIS (version 2.6)

QgisLOGO.PNG You need to install Quantum GIS version 2.6 in order to get activate the road graph plugin.


Set up the Environment

The type of the data that we are going to work are vector data. The first step is importing the shapefiles in the QGIS environment.

Add vector data

In Layer menu, select Add layer and choose Add Vector Layer. Another option is click the Add Vector Layer button of the toolbar.

Vector.PNG



Projection

All the layers were projected under EPSG:2951 - NAD83(CSRS) / MTM zone 9 projection. Right click on the laye, select Project Properties, from which we choose CRS. Then we select the appropriate projection for our case.

Projection.PNG











Area of Ineterest (AOI)

The project is focused on determining the shortest path between Museum of Nature and Museum of War in downtown Ottawa area. That's why it is important to get rid of abundant data. In this case we had to create an AOI.

  • In Layer menu, choose Create Layer, then New Shapefile layer and the New Vector Layer window will show up. The AOI should be a polygon
AOI2.PNG












  • Clip tool
Clip.PNG











Clip function.PNG



Symbology

Road Graph Plugin

Activate the Tool

Plugin.PNG













To activate the Road Graph plugin: Start the Plugin Manager by clicking on the QGIS main window’s menu item Plugins ‣ Manage Plugins. A dialog appears. Click OK on the Plugin Manager dialog.



This panel will appear in your interface

Panel.PNG












If the plugin doesn't show automatically in your interface, go to View ‣ Panels and ensure that Shortest path has a check mark next to it.


Configure the Tool

Config.PNG













Time Unit and Distance Unit we leave as default in hour and kilometer. Topology tolerance: In case if there is a gap between two lines to treat them as continuous, the topology tolerance may be applied, for example 10m. In our case we left as default 0. On the Transportation Layer, we choose the layer of the roads. In this case the clipped roads. For the direction field we leave as default. In other cases, while in the attribute table we might have a direction field, we might use the value of this field for direction. For this project we don't have any data for the direction. We keep the speed limit as default. And we choose the speed limit value under the Default Settings tab. For this example the speed was chosen 60 km/h as shown in Figure below.

Setting.PNG













Use the Tool

Suppose we want to calculate the distance in length from Canadian Museum of Nature to Canadian War Museum. In the plugin panel, click on the Capture Point button next to the Start field:

St.PNG






Click point that represent Canadian Museum of Nature as start point. Use the Capture Point button next to the Stop field and capture the point of Canadian War Museum.


Start.PNG











Click on the Calculate button to see the solution:

Length.PNG











The result for the shortest path is shown below. This is a simple case, where the speed mode is the same for all the streets, 60 km/h.

Res1.PNG













Using Criteria

What happens when different streets in the network road have different speed limits?

The idea is to set different speed limits for some of the selected streets by us. In this case we had to add a new field in the roads layer and call it Speed. Right click on the roads layer.

Open attribute table and select the Toggler button to set on the edit mode .

Toggle1.PNG




After that click the New Column icon.

NewC.PNG




Call this new column SPEED, and give it the type Whole number (integer) with a width of 3.

Now we had to run some selection attribute query over the road layer, in order to specify the speed limit 50 km/h for the private roads,60 for public roads with the name BRONSON, 45 km/h for the public roads with name GLOUCSTER and 30 km/h for the rest of the roads.

On the bottom left corner of the Attribute Table, there is a Show All Features button. Click on the arrow and select Column Filter: Then choose for example TYPE, because we want to select the private roads. As you write rt_private automatically will appear the Advanced Filter expression.

  • Select private roads and assign the speed limit 50 by using Advanced Filter expression
Query1.PNG









  • Select public roads with name BRONSON and assign the speed limit 60 by using Advanced Filter expression
Bronson.PNG










  • Select public roads with name GLOUCESTER and assign the speed limit 45 by using Advanced Filter expression
Gloucester.PNG









  • Select the rest of the public roads and assign the speed limit 30 by using Advanced Filter expression
Not.PNG








After assigning the speed limits for each selection we save the edits by clicking the save button and then click the toggle button again to turn off the edit mode.

Save.PNG




  • Check the Vector ‣ Road graph ‣ Road graph settings to ensure that it’s set up as explained previously in this tutorial, but with the Speed value set to the SPEED field you just created.
  • In the Shortest path panel, click the Start point button.
  • Set the starting point to where the point of Museum of Nature is located.
  • Set the end point to the Museum of War location.


  • In the Criterion drop-down list in the Shortest path panel, select Length.
  • Click Calculate. The route will be calculated for the shortest distance:
SpeedL.PNG











Notice the values of Length and Time in the Shortest Path panel.



And this is the result graphically of the shortest path in distance

SpeedLRes.PNG













  • Set the Criterion to Time.
  • Click Calculate again. The route will be calculated for the shortest time:


Time.PNG












You can switch back and forth between these criteria, recalculating each time, and note the changes in the Length and Time taken.


The Shortest Time path result as shown below

TimeRes.PNG











Conclusion

Define shortest and the fastest way to get from Canadian Museum of Nature to Canadian Museum of War.

References