Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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: 2 days ago
JSON representation

OSM in memory

Awesome Lists containing this project

README

        

# Atlas

![Continuous Integration](https://github.com/osmlab/atlas/workflows/Continuous%20Integration/badge.svg?branch=main)
[![quality gate](https://sonarcloud.io/api/project_badges/measure?project=org.openstreetmap.atlas%3Aatlas&metric=alert_status)](https://sonarcloud.io/dashboard?id=org.openstreetmap.atlas%3Aatlas)
[![Maven Central](https://img.shields.io/maven-central/v/org.openstreetmap.atlas/atlas.svg?label=Maven%20Central)](https://search.maven.org/search?q=g:%22org.openstreetmap.atlas%22%20AND%20a:%22atlas%22)
[![CircleCI](https://circleci.com/gh/osmlab/atlas/tree/main.svg?style=shield)](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 tags

As 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).