• Stars
    star
    123
  • Rank 290,145 (Top 6 %)
  • Language
    Julia
  • License
    MIT License
  • Created about 6 years ago
  • Updated 9 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

OpenStreetMap (*.osm) support for Julia 1.0 and up

OpenStreetMapX.jl

  • Package for spatial analysis, simulation and visualization of Open Street Map data
  • The plotting functionality is provided via a separate package OpenStreetMapXPlot.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.5. However older versions will work with Julia 1.0.

using Pkg; Pkg.add("OpenStreetMapX")

In order to plot the maps we recommend two tools:

  • rendering the maps yourself with PyPlot or Plots.jl with backend - use the OpenStreetMapXPlot.jl package
  • rendering the maps with Leaflet.jl - use the Python folium package (examples can be found in the tutorial and the manual)

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

using Pkg
pkg"add Plots"
pkg"add PyPlot"
pkg"add OpenStreetMapXPlot"
pkg"add Conda"
using Conda
Conda.runconda(`install folium -c conda-forge`)

Usage

using OpenStreetMapX
map_data = get_map_data("/home/ubuntu/mymap.osm");

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

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:

  • New Graphs.jl is used for map data storage
  • Several changes with routing algorithm (currently finding a route in a 1 million people city takes around 150ms)
  • Added support for using Google Maps API for routing
  • Data structure adjustment to make the library more suitable to run simulations of cities.
  • Plots.jl with GR is used as backend for map vizualization (via a separate package OpenStreetMapXPlot.jl)

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.

More Repositories

1

MIT_18.S097_Introduction-to-Julia-for-Data-Science

MIT_18.S097
Jupyter Notebook
123
star
2

SimpleHypergraphs.jl

A simple hypergraphs package for the Julia programming language
HTML
74
star
3

KissCluster

The simplest cluster computing solution for the cloud, supports Python, R, Julia, Java, NetLogo, bash and everything else
Shell
40
star
4

OpenStreetMapXPlot.jl

Plotting functionality for the OpenStreetMapX.jl (Supports Plots.jl with GR or PythonPlot backend)
Julia
35
star
5

2024_MIT_18.S097_Introduction-to-Julia-for-Data-Science

Jupyter Notebook
33
star
6

OSMToolset.jl

Tools for Open Steet Map: Point-of-Interest extraction and tiling of map data
Julia
14
star
7

HIF_validators

Hypergraph Exchange Format (HIF) definition and validator libraries
Jupyter Notebook
9
star
8

ComplexNetworks2019

ComplexNetworks2019
Jupyter Notebook
8
star
9

Berkeley_2023_Optimization_and_parallel_computing

Jupyter Notebook
5
star
10

2024_Julia_NicolausCopernicusAstronomicalCenter

2024 Julia Training for the Nicolaus Copernicus Astronomical Center
Jupyter Notebook
5
star
11

chondro

Chondro - a library for stability analysis of decision trees
Python
4
star
12

SignalBroadcastingSim.jl

Multiagent simulation of message broadcasting in network models of transporation systems
Julia
4
star
13

Building_Julia_On_Cray_and_Clusters

Sample scripts to build Julia on Cray and other supercomputing architectures
4
star
14

LTMSim.jl

Simulating Determinants of optimality of Information diffusion on hypergraphs
Julia
4
star
15

2024_Julia_EC_EconomicDep

Jupyter Notebook
3
star
16

pkg

Asynchronous and Parallel Policies for Ranking and Selection Problems
Java
3
star
17

JuliaCon2023_Working_with_geographical_data_using_DataFrames

JuliaCon2023 Working with geographical data using DataFrames.jl presented during JuliaCon2023 Minisimposium "Tools and techniques of working with tabular data "
Jupyter Notebook
3
star
18

OpenStreetMapX_Tutorial

OpenStreetMapX.jl tutorial - vehicle routing simulation and vizualisation with folium via PyCall.jl
HTML
2
star
19

OpenStreetMapXDES.jl

Discrete event simulation for spatial data
Julia
2
star
20

CfnClusterIAMPermissions

Automated generation of IAM Permission for AWS CfnCluster via a CloudFormation script
2
star
21

2024_Julia_Aberdeen

Jupyter Notebook
2
star
22

2024_Julia_EC_EconomicDepShort

Jupyter Notebook
1
star
23

OpenStreetMapXSim.jl

Julia
1
star
24

TBBSim.jl

TBB Simulation
Julia
1
star
25

2024_Julia_Krakow

An introduction to programming ABM simulations with the Julia language, Social Simulation Conference 2024
Jupyter Notebook
1
star
26

OSMgetPOI.jl

Julia
1
star
27

TransportationMetaheuristics.jl

Work-in-progress - experimenting with metaheuristics for transportation optimization
Julia
1
star
28

2024_Julia_EC_Distributed_GPU

Jupyter Notebook
1
star