Skip to content

matthieun/atlas-generator

 
 

Repository files navigation

Atlas At Scale

Continuous Integration quality gate Maven Central CircleCI

AtlasMutator

AtlasMutator is a Spark job that applies automatic changes (mutations) to Atlas shards at scale.

AtlasGenerator

AtlasGenerator is a Spark Job that generates Atlas shards from OSM pbf shards (built from an OSM database with osmosis).

Getting started

This project has been implemented and tested with OpenJDK 11

Build

The following command will compile, run checks, and build the library:

./gradlew clean build

Setup example: BLZ (Belize)

The BLZ example can be run with this one-liner:

./gradlew clean run

What this does

  • Downloads the country boundaries and the sharding tree files from the respective sub-folders available here.
  • Downloads a belize snapshot osm.pbf file from Geofabrik
  • It tricks the program into thinking that the 3 shards Belize intersects with in this sharding tree each have a corresponding .osm.pbf file, which will each just be the same copy of the file that was downloaded from geofabrik:
./build/example/data/pbfSource/belize.osm.pbf -> ./build/example/data/pbfs/7-32-57.pbf
./build/example/data/pbfSource/belize.osm.pbf -> ./build/example/data/pbfs/8-64-116.pbf
./build/example/data/pbfSource/belize.osm.pbf -> ./build/example/data/pbfs/8-65-116.pbf
  • Runs the AtlasGenerator Spark job.

The result

  • Three atlas shards in ./build/example/output/atlas/BLZ/
$ ls -alF ./build/example/output/atlas/BLZ/
-rw-r--r--  7097365 BLZ_7-32-57.atlas
-rw-r--r--  658860 BLZ_8-64-116.atlas
-rw-r--r--  590425 BLZ_8-65-116.atlas

Those 3 files can be loaded together at once, in the JOSM Atlas plugin for example, or programmatically loaded with a MultiAtlas using the AtlasResourceLoader from the atlas project.

How it looks like

This is one shard visualized using the josm-atlas plugin:

josm-atlas1 josm-atlas2

Contributing

Please see the contributing guidelines!

About

Distributed generation of Atlas shards

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 90.0%
  • Python 9.2%
  • Shell 0.8%