Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/osmlab/atlas
OSM in memory
https://github.com/osmlab/atlas
atlas geospatial geospatial-data geospatial-processing maps openstreetmap osm shard spatial-analysis street-networks
Last synced: about 8 hours ago
JSON representation
OSM in memory
- Host: GitHub
- URL: https://github.com/osmlab/atlas
- Owner: osmlab
- License: bsd-3-clause
- Created: 2017-08-08T17:14:27.000Z (over 7 years ago)
- Default Branch: dev
- Last Pushed: 2024-05-02T19:08:06.000Z (10 months ago)
- Last Synced: 2025-02-12T20:09:57.038Z (7 days ago)
- Topics: atlas, geospatial, geospatial-data, geospatial-processing, maps, openstreetmap, osm, shard, spatial-analysis, street-networks
- Language: Java
- Size: 63.2 MB
- Stars: 235
- Watchers: 51
- Forks: 80
- Open Issues: 18
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
- awesome-starred - osmlab/atlas - OSM in memory (others)
README
# Atlas

[](https://sonarcloud.io/dashboard?id=org.openstreetmap.atlas%3Aatlas)
[](https://search.maven.org/search?q=g:%22org.openstreetmap.atlas%22%20AND%20a:%22atlas%22)
[](https://circleci.com/gh/osmlab/atlas/tree/main)---
[`Atlas`](src/main/java/org/openstreetmap/atlas/geography/atlas/Atlas.java) is a way to efficiently represent [OpenStreetMap](http://www.openstreetmap.org/) data in memory. A subset of the data is in a "navigable network" form, meaning anything that is assumed to be navigable will be in a form of `Node`s and `Edge`s in a way a routing algorithm could traverse it. It also provides easy to use APIs to access geographical data. On top of it all, it is easy to shard and re-stitch, making it perfect for distributed processing!
Projects using Atlas:
* [atlas-generator](https://github.com/osmlab/atlas-generator): A Spark job to distribute Atlas shards generation
* [atlas-checks](https://github.com/osmlab/atlas-checks): A suite of tools to check OSM data integrity using Atlas, and Spark.
* [josm-atlas](https://github.com/osmlab/josm-atlas): A JOSM plugin to visualize Atlas data.# Getting started
For build instructions and to contribute, please see the [contributing guidelines](CONTRIBUTING.md).
Start playing with Atlas directly with [this sample project](/sample)!
# APIs
Language|Level
---|---
[Java](/src/main/java/org/openstreetmap/atlas/geography/atlas#using-atlas)|Full feature
[Python](/pyatlas#pyatlas)|Basic# What's in it?
* A uni-directional navigable network ([`Edge`](src/main/java/org/openstreetmap/atlas/geography/atlas/items/Edge.java), [`Node`](src/main/java/org/openstreetmap/atlas/geography/atlas/items/Node.java))
* Non-navigable features ([`Area`](src/main/java/org/openstreetmap/atlas/geography/atlas/items/Area.java), [`Line`](src/main/java/org/openstreetmap/atlas/geography/atlas/items/Line.java), [`Point`](src/main/java/org/openstreetmap/atlas/geography/atlas/items/Point.java), [`Relation`](src/main/java/org/openstreetmap/atlas/geography/atlas/items/Relation.java))
* All tagsAs well as other handy tools:
* [Create it from `.osm.pbf`](/src/main/java/org/openstreetmap/atlas/geography/atlas#building-an-atlas-from-an-osmpbf-file)
* [Sharding](/src/main/java/org/openstreetmap/atlas/geography/sharding#sharding)
* [Shard Stitching](/src/main/java/org/openstreetmap/atlas/geography/atlas/multi#multiatlas)
* [Shard Exploration](/src/main/java/org/openstreetmap/atlas/geography/atlas/dynamic#dynamicatlas)
* [Tag Filtering](/src/main/java/org/openstreetmap/atlas/tags/filters#tag-filtering)
* [Atlas Filtering](/src/main/java/org/openstreetmap/atlas/geography/atlas#filtering-an-atlas)
* [PBF Ingest](/src/main/java/org/openstreetmap/atlas/geography/atlas/raw/creation)
* [Country Slicing](/src/main/java/org/openstreetmap/atlas/geography/atlas/raw/slicing)
* [Way Sectioning](/src/main/java/org/openstreetmap/atlas/geography/atlas/raw/sectioning)
* [Cutting](/src/main/java/org/openstreetmap/atlas/geography/atlas#country-slicing)
* [Routing](/src/main/java/org/openstreetmap/atlas/geography/atlas/routing#routing)
* [Higher-level entities](/src/main/java/org/openstreetmap/atlas/geography/atlas/items/complex#complex-entities)
* [Saving](/src/main/java/org/openstreetmap/atlas/geography/atlas#saving-an-atlas) / [Loading](/src/main/java/org/openstreetmap/atlas/geography/atlas#using-atlas)
* [GeoJSON Parser](/src/main/java/org/openstreetmap/atlas/geography/geojson/parser)
* [Command Line Tools](atlas-shell-tools)
* [Atlas Query Language i.e. AQL](/src/main/groovy/org/openstreetmap/atlas/geography/atlas/dsl)# Community
For more information, please contact our community projects lead [Andrew Wiseman](https://github.com/awisemanapple).