OpenStreetMap Infrastructure for Mapping at Scale

Projects

Expertise

OpenStreetMap (OSM), the open map repository of the world, runs on a versatile ecosystem of software that empowers anyone to create geospatial data. That includes our Data Team, who use OSM software whether they are creating data destined for OSM, like mapping a new village, or creating training data for a machine learning task.

Not all data belongs in OSM, so for these task-specific, time-specific, or private datasets, we built osm-seed. Osm-seed is a way to easily set up your own OSM ecosystem. It gives you the power of OSM software, which has been tested at scale. Best of all, it’s easy to get running, and doesn’t require you to string together various components.

Osm-seed currently includes the Rails port API, the iD editor, a tile server, and replication.

Tracking the Evolution of Special Economic Zones

We used osm-seed in partnership with the World Bank to monitor the growth and evolution of special economic zones over a period of many years.

The Data Team started with a new osm-seed instance deployed to a private server on AWS. Working with a blank slate allowed the team to focus on single zone at a time.

Using historic high resolution satellite imagery, the team was able to accurately track the growth and urbanization of special economic zones, culminating in a report published in conjunction with the World Bank.

Athi River EPZ
The Data Team mapped the Athi River export-processing zone using osm-seed and historical imagery.

Digitizing Historic Maps

Palestine Open Maps uses osm-seed to digitize Palestine’s map archive and build an immersive storytelling experience. The platform aims to bring together maps that the Survey of Palestine institution has been producing since 1945.

Palestine Open Maps
Palestine Open Maps

Osm-seed allows the Palestine Open Maps team to use georeferenced historic maps as a layer in the iD editor. With this useful context, mappers can identify features and create map data.

While this historical data is not relevant to OSM, it is immensely useful to researchers and archivists, and Palestine Open Maps includes it in a searchable database.

Serving your own OSM map tiles

Osm-seed is more than a blank slate. You can run a version pre-populated with any amount of OpenStreetMap-flavored geospatial data, whether that’s a city or planet level extract.

The project ships with osmium, an export tool that allows you to import OSM data published on planet.openstreetmap.org or Geofabrik.

osm-seed tegola
Extract of Peru served using Tegola.

Once you’ve got your data, osm-seed is ready by default to serve vector tiles. Osm-seed uses Tegola, a Mapbox-format vector tile server that supports PostGIS. Tegola reads directly from a replica of the database inside osm-seed, can be updated minutely, and supports custom styles.

Teaching OpenStreetMap or training a new team

Osm-seed is a great tool to tech up a new team of mappers. OpenStreetMap software is built to be intuitive. That said, the tools have a learning curve. To map complex features, it is important to have a good understanding of advanced tools like JOSM.

Osm-seed is the quickest way to deploy a sandbox, so a workshop attendees can train and learn advanced mapping skills without worrying about making mistakes in the core OSM dataset.

After setting a few environment configurations, docker-compose build && docker-compose up is all you need to run an ecosystem of OpenStreetMap software.

Architecture

At the core, osm-seed is a collection of Dockerfiles, each containerizing a part of the OSM stack. Dockerizing the infrastructure meant thtat we can now deploy the stack at scale on AWS EKS or GCP using Kubernetes.

This architecture not only allows you to modify the stack according to your usecase, but also lets you stand up an empty stack or import data from a planet extract. As of today, osm-seed provides:

  • OpenStreetMap Rails Port - the core of OpenStreetMap.
  • A database to use with the API.
  • iD editor - when you spin up osm-seed, it already sets up iD pointed to the API.
  • Import planet extract - import the whole planet (takes time) or an extract as a starting point.
  • Replication - publish a feed of minutely, hourly or daily replication.
  • Vector Tile server - a Tegola based vector tile server that updates based on replication.
  • Backup - automated, regular backup of the database.

Have a challenging project that could use our help?

Let's connect

We'd love to hear from you.