pszufe / OpenStreetMapX.jl

OpenStreetMap (*.osm) support for Julia 1.0 and up
MIT License
118 stars 24 forks source link

OpenStreetMapX.jl

The goal of this package is to provide a backbone for multi-agent modelling and simulation of cities.

The package can parse *.osm and *.pbf (contributed by @blegat) files and generate a Graphs.jl representation along the metadata.

Documentation Build Status

Build Status Coverage Status
Linux and macOS

Documentation

Agents travelling within a city

Installation

The current version uses at least Julia 1.6.

using Pkg; Pkg.add("OpenStreetMapX")

In order to plot the maps we recommend two tools:

In order to install all plotting backends please run the commands below:

using Pkg
Pkg.add(["Plots", "OpenStreetMapXPlot", "CondaPkg"])
using CondaPkg
CondaPkg.add_channel("conda-forge")
CondaPkg.add("folium")

Usage

using OpenStreetMapX
filename = OpenStreetMapX.sample_map_path()
map_data = get_map_data(filename);

println("The map contains $(length(map_data.nodes)) nodes")

Sample plot

The picture above has been generated with folium - for source code see the samples directory for a more complete example and have a look at OpenStreetMapXPlot.jl for a route plotting.

Obtaining map data

The simplest way to get the map data is to go to the Open Street Map project web page.

In order to obtain the *.osm file follow the steps below:

  1. Got to the area of your interest at https://www.openstreetmap.org/
  2. Click the "Export" button at the top of the page
  3. Click "Manually select a different area" to select the area of your interest
  4. Press the "Export" button on the left. Note that sometimes the Export link does not work - in this case click one of the links below the Export button (for example the Overpass API link)

Acknowledgments

This code is a major re-write of project - available at https://github.com/tedsteiner/OpenStreetMap.jl .

Compared to the original package major changes include among many others:

The creation of some parts of this source code was partially financed by research project supported by the Ontario Centres of Excellence ("OCE") under Voucher for Innovation and Productivity (VIP) program, OCE Project Number: 30293, project name: "Agent-based simulation modelling of out-of-home advertising viewing opportunity conducted in cooperation with Environics Analytics of Toronto, Canada.