wiki:dataRepositoryManager

Version 10 (modified by Martin Kolman, 8 years ago) (diff)

--

modRana data repository document

This is a description for a simple program, that should generate a data repository for offline Monav routing data. It should be flexible enough to enable extending it to also handle other data in the future.

Requirements

  • easy repository setup and regeneration

CLI options

Repositories

Repository definition file

This is a JSON file called repository.json that sits at the root of the repository.

Structure

Description of the different sections

= header =
format_version - 1 for now

= repository =
* name - natural language name of the repository
* last_update - epoch of the last update


= data =
Contains sections for the different data sub-repositories.


== monav ==
* name = "Monav offline routing data repository"

=== Example_Package ===
* pack_type = "monav"
* url - pack URL
* last_updated - epoch of the last update
* bytes_size (optional)

==== zsync_file_list - (optional) ===

Monav data repository

Located in the monav driectory in the main repository folder.

The individual packages are stored in a simple folder structure:

continent/[country_name/][city_name/]package_name.tar.gz

NOTE: Square brackets indicate optional path components.

Internal package structure

The package archives contain a named folder and inside this folder is the folder with Monav routin data.

Example - car routing data for Czech Republic:

Czech_Republic/routing_car/

Each package contains data for a single transportation mode.

package.JSON

Inside the routing_* subdirectory is JSON file called package.JSON that makes it possible to map the package folders back to packages existing in the repository.

This is mainly needed to facilitate package updates.

= header =
format_version - 1 for now

= package =
origin - base repository URL (ex.: http://data.modrana.org
path - path to the package in the repository (ex.: monav/europe/czech_republic.tar.gz)

Monav data processing

  • the Monav preprocessor can run in multiple threads
    • the repository generator should detect the number of cores and start supply the corresponding number to the preprocessor command line arguments using the -t option

Benchmarks

2012.10.04
france.osm.pbf
bike speed profile PQ:
1 thread = 295.96 s
4 threads =
48 threads = 25.83 s
96 threads = 28.132 s