https://github.com/osmlab/atlas-generator
Distributed generation of Atlas shards
https://github.com/osmlab/atlas-generator
Last synced: 11 months ago
JSON representation
Distributed generation of Atlas shards
- Host: GitHub
- URL: https://github.com/osmlab/atlas-generator
- Owner: osmlab
- License: bsd-3-clause
- Created: 2017-08-08T21:18:10.000Z (almost 9 years ago)
- Default Branch: dev
- Last Pushed: 2023-03-23T22:56:21.000Z (over 3 years ago)
- Last Synced: 2025-06-30T11:50:11.468Z (about 1 year ago)
- Language: Java
- Size: 7.9 MB
- Stars: 20
- Watchers: 27
- Forks: 28
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Atlas At Scale

[](https://sonarcloud.io/dashboard?id=org.openstreetmap.atlas%3Aatlas-generator)
[](https://search.maven.org/search?q=g:%22org.openstreetmap.atlas%22%20AND%20a:%22atlas-generator%22)
[](https://circleci.com/gh/osmlab/atlas-generator/tree/main)
# AtlasMutator
[AtlasMutator](src/main/java/org/openstreetmap/atlas/mutator/Readme.md) is a Spark job that applies automatic changes (mutations) to [Atlas](https://github.com/osmlab/atlas) shards at scale.
# AtlasGenerator
AtlasGenerator is a Spark Job that generates [Atlas](https://github.com/osmlab/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](https://apple.box.com/s/3k3wcc0lq1fhqgozxr4mdi0llf95byo3).
* 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](https://github.com/osmlab/atlas/tree/dev/src/main/java/org/openstreetmap/atlas/geography/atlas#using-atlas).
#### How it looks like
This is one shard visualized using the josm-atlas plugin:


## Contributing
Please see the [contributing guidelines](https://github.com/osmlab/atlas/blob/dev/CONTRIBUTING.md)!