[[PageOutline]] = 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 }}}