Topics:

Geocoding Data

Data container for Pelias

edit architecture image

Service Architecture

This service is essentially an ElasticSearch instance containing Geocoding data that can be used with Pelias Geocoder.

General Pelias information

Start by reading (Note that it might not be up-to-date):

https://mapzen.com/blog/pelias-setup-tutorial

How data is built?

On build time the data is fetched from multiple sources and processed and loaded into ElasticSearch using Pelias tools. At high level this is what happens:

  1. Download and extract Finland related shapefiles of administrational areas and regions from WhosOnFirst (or use embedded data of pelias-data-container source)

  2. Download Open Street Map Finland data

  3. Download VRK data (building locations with street addresses)

  4. Download NLS places (an extensive list of venues and place names from the National Lands Survey)

  5. Download national GTFS data, including GTFS stops

  6. Start ElasticSearch

  7. Create pelias schema

  8. Run GTFS stop import

  9. Run NLS places import

  10. Run OpenStreetMap import

  11. Run VRK data import

  12. Run bike station import from an OpenTripPlanner service endpoint

Exploring data

For exploring ElasticSearch data, you can install the extension "elasticsearch-head" to Chrome browser and use it as follows:

  1. Wait until cluster health changes to "green".

  2. Click on "Browser"-tab

  3. Write queries to "name.default" field.

  4. Browse results

For Gis data exploration you can use e.g. QGis

http://www.qgis.org/en/site/

Datasources

VRK

Open addresses is a open data collaborative to produce global address data around the world. We use addresses from Open addresses as primary data.

OpenStreetMap

OpenStreetMap import reads all items which are tagged with a name and one or more tags/tag pairs from the following list:

  • addr:housenumber AND addr:street
  • amenity
  • building
  • shop
  • office
  • public_transport
  • cuisine
  • railway
  • sport
  • natural
  • tourism
  • leisure
  • historic
  • man_made
  • landuse
  • waterway
  • aerialway
  • aeroway
  • craft
  • military

You can improve digitransit geocoding by contributing new or corrected data to OpenStreetMap. Please always include a Swedish name version, if available, to your data contributions. Below is a simple example node with proper names:

{
    "id":26430225,
    "type":"node",
    "lat":60.2070123, "lon":24.7022998,
    "tags":{
        "name":"Koivuhovi",
        "name:sv":"Björkgård",
        "railway:station"
    }
}

For more information, check out:

http://wiki.openstreetmap.org/wiki/Beginners%27_guide

Our goal is to use as much data from OSM as possible. Unfortunately, at the moment it doesn't contain everything that we need so we have to use other sources also.

NLS Paikat

National Land survey Nimistö ("places") contains place names in Finland. It provides places like "Takalammi".

Key service delivery activities

  1. Keep up with our development on GitHub
    https://github.com/HSLdevcom/pelias-data-container

  2. Keep up with Pelias importer projects
    https://github.com/HSLdevcom/pelias-schema
    https://github.com/HSLdevcom/pelias-gtfs
    https://github.com/HSLdevcom/pelias-vrk
    https://github.com/HSLdevcom/pelias-nlsfi-places-importer
    https://github.com/HSLdevcom/openstreetmap
    https://github.com/HSLdevcom/bikes-pelias

  3. Keep up with Who's on First development
    https://github.com/whosonfirst/whosonfirst-data/

  4. Keep up with Geospatial Data Abstraction Library development
    http://www.gdal.org/

  5. Keep up with ElasticSearch docker image and it's changes
    https://hub.docker.com/_/elasticsearch/

Key technologies and specifications

Docker image

The resulting Docker image is called hsldevcom/pelias-data-container and it is available at DockerHub. The image can be built using this build script.

To run Docker container, run:

docker run -p 9200:9200 hsldevcom/pelias-data-container

To access Docker container:

http://localhost:9200/

For More information about how to use Docker see docker info.