Building drive time areas: cities and hinterlands accessibility in Mozambique
The objective of this article is to build a cartographic representation of drive time for freight transport companies from the 13th most important cities in Mozambique.
This model is based on an open source dataset of transport networks (OpenStreetMap, 2016) in Mozambique and the bordering countries. It is simulating, at a fine-grained level, the behaviours of truck drivers by taking in account both, barriers (one-way roads, pedestrian or cycling paths, tracks for agricultural purpose…), and common situations for drivers (border crossing time, turns and U-turns, junctions, local road crossing a regional road…). The model define six classes of roads (from local roads to highways) for more than one million kilometres of roads, with specific average traffic speed empirically deduced from a sample of transit times of a Mozambican freight transport company. This complex network of more than 1 million of road sections is analysed with ArcGIS, in order to build drive time areas (2, 4 and 6 hours), from the city centres of the major urban areas (more than 100 000 inhabitants, GeoNames, 2016). The map illustrates the interconnections of these urban areas and the problems of accessibility of their hinterlands in term of land transportation.
! This article is only a short abstract of the original one, in french!
1 / Building the roads network
Open Street Map (www.openstreetmap.org):
- Botswana (BW) : 78 502 roads sections
- Congo Democratic Republic (CD) : 197 038 roads sections
- Lesotho (LS) : 79 763 roads sections
- Malawi (MW) : 85 159 roads sections
- Mozambique : 157 368 roads sections
- South-africa (ZA) : 502 417 roads sections
- Swaziland (SZ) : 22 274 roads sections
- Tanzania (TZ) : 166 555 roads sections
- Zambia (ZM) : 53 923 roads sections
- Zimbabwe (ZW) : 82 394roads sections
Geofabrik (http://download.geofabrik.de/africa.html)
2 / Building the model
Fig 1 : Modèles dans la géographie des transports
Geography of transport systems, Jean-Paul Rodrigue et al., 3rd édition, 2013 :
Each [level is built] upon the other, implying for instance that the estimation of accessibility cannot be assessed without information about distance and that spatial interactions are derived from accessibility assessments:
- Distance. The most fundamental element of geography in general and transport geography in particular. Distance can be represented in different manners, from a simple Euclidean distance calculation to a complex estimation of a logistical distance that considers all the tasks necessary for the realization of a movement.
- Accessibility. Defined as the measure of the capacity of a location to be reached by, or to reach different locations. Therefore, the capacity and the arrangement of transport infrastructure are key elements in the determination of accessibility. It is thus based upon the concept of location and distance.
- Spatial Interaction. A realized movement of people, freight or information between an origin and a destination. It is a transport demand / supply relationship expressed over a geographical space. Routing is a specific category of spatial interaction that considers a given set of origins and destination for which specific (often optimal) routes are found.
- Transportation / Land Use Models. A complex framework trying to assess the numerous relations and feedback effects between transportation and the spatial structure.
2.1 / Classes of roads networks
Tab 1 : roads type
2.2 / Defining roads speed
Tab 2 : type of roads and speed
2.3 / Turns, jounctions and one way
Fig 2.1 : turns and penalties (ArcGis)
Fig 2.2 : turns and angles
Fig 3.1 : one way
Fig 3.2 : example in Maputo (B in gris, F in red and T in blue)
3 / Core cities
22 061 451 inhabitants, GeoNames, 2016
Tab 3 : 13th core cities (GeoNames, 2016)
Fig 4 : Example bewteen Maputo and Beira-Chimoio (illustration)
4 / Validation and main results
see final map (annex 4) or the pdf file.
5 / Discussion
Annex 1 / Geofabrik OSM Standard, OpenStreetMap Data in Layered GIS Format (Version 0.6.7)
Annex 2 / Map of roads for « highway » and « secondary » classes
Annex 4 / Map of roads for « local » classe
Annex 4 / Download the final map (v15)
Annex 5 / Resources and scripts used with ArcGis 10.2 (Network Analysis)
1 2 3 4 5 6 7 8 9 |
' pre logic VBScript roadstype (text): building roads types If [fclass] = "motorway" OR [fclass] = "motorway_link" OR (Left([ref],1) = "N" AND Len([ref]) <= 4) OR (Len([ref]) <= 4 AND ((Left([ref],1) = "T" AND ([ctry_code] = "TZ" OR [ctry_code] = "ZM")) OR (Left([ref],1) = "M" AND [ctry_code] <> "ZA"))) OR (Len([ref]) <= 3 AND Left([ref],1) = "A") OR [maxspeed] >= 100 Then typ = "highway" ElseIf [fclass] = "trunk" OR [fclass] = "trunk_link" OR [fclass] = "primary" OR [fclass] = "primary_link" OR [fclass] = "secondary" OR [fclass] = "secondary_link" Then typ = "secondary" ElseIf [fclass] = "bridleway" OR [fclass] = "cycleway" OR [fclass] = "footway" OR [fclass] = "path" OR [fclass] = "steps" OR [fclass] = "pedestrian" OR [fclass] = "track_grade4" OR [fclass] = "track_grade5" Then typ = "non_for_car" Else typ = "local" End If |
1 2 3 4 5 6 7 8 9 |
'pre logic VBScript roadsclass (entier court): building roads classes If [fclass] = "motorway" OR [fclass] = "motorway_link" OR (Left([ref],1) = "N" AND Len([ref]) <= 4) OR (Len([ref]) <= 4 AND ((Left([ref],1) = "T" AND ([ctry_code] = "TZ" OR [ctry_code] = "ZM")) OR (Left([ref],1) = "M" AND [ctry_code] <> "ZA"))) OR (Len([ref]) <= 3 AND Left([ref],1) = "A") OR [maxspeed] >= 100 Then typ = 1 ElseIf [fclass] = "trunk" OR [fclass] = "trunk_link" OR [fclass] = "primary" OR [fclass] = "primary_link" OR [fclass] = "secondary" OR [fclass] = "secondary_link" Then typ = 2 ElseIf [fclass] = "bridleway" OR [fclass] = "cycleway" OR [fclass] = "footway" OR [fclass] = "path" OR [fclass] = "steps" OR [fclass] = "pedestrian" OR [fclass] = "track_grade4" OR [fclass] = "track_grade5" Then typ = 4 Else typ = 3 End If |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
'pre logic VBScript moyspeed (entier court):defining roads speed If [maxspeed] >= 30 AND [maxspeed] < 50 Then typ = [maxspeed] - 20 ElseIf [maxspeed] >= 50 AND [maxspeed] < 80 Then typ = [maxspeed] - 30 ElseIf [maxspeed] >= 80 Then typ = [maxspeed] - 40 ElseIf [fclass] = "motorway" OR [fclass] = "motorway_link" OR (Left([ref],1) = "N" AND Len([ref]) <= 4) OR (Len([ref]) <= 4 AND ((Left([ref],1) = "T" AND ([ctry_code] = "TZ" OR [ctry_code] = "ZM")) OR (Left([ref],1) = "M" AND [ctry_code] <> "ZA"))) OR (Len([ref]) <= 3 AND Left([ref],1) = "A") Then typ = 70 ElseIf [fclass] = "trunk" OR [fclass] = "trunk_link" OR [fclass] = "primary" OR [fclass] = "primary_link" Then typ = 40 ElseIf [fclass] = "secondary" OR [fclass] = "secondary_link" Then typ = 30 ElseIf [fclass] = "tertiary" OR [fclass] = "tertiary_link" Then typ = 20 ElseIf [fclass] = "bridleway" OR [fclass] = "cycleway" OR [fclass] = "footway" OR [fclass] = "path" OR [fclass] = "steps" OR [fclass] = "pedestrian" OR [fclass] = "track_grade3" OR [fclass] = "track_grade4" OR [fclass] = "track_grade5" Then typ = 5 Else typ = 10 End If |
1 2 3 4 5 6 7 8 9 |
# Ditance for each road section in Km (python) (reel double) dist_km = !Shape.length! * 100 # Time (hour) needed for each road section (python) (reel double) time_h = ( !Shape.length! * 100 ) / !moyspeed! # Time (second) needed for each road section (pyhton) (reel double) time_s = !time_h! * 60 * 60 |