OpenStreetMap, Nominatim, and OSRM
I’ve been on a fairly big GIS kick recently. Part of it is me feeling like there’s a lack of market tools for things like studying things like resource deserts, but, the other half is me wondering, “How many oil change places are within a 15 minute drive,” looking for things like resource saturation within a specific industry and possible geopolitical research (for example: OpenStreetMap + Census Data + Political data could be a tool to allow campaigns to better target their advertising dollars to allow for a more focused spend).
Admittedly, anyone who knows me knows that I can sometimes be the king of unfinished projects, but, after setting up an OpenDroneMapping cluster at home powered by nVidia Jetson’s that I picked up for work on a project that got cancelled, I wanted to lean a little bit further away from the DevOps space to increase my visbility into different verticals so that I can identify weaknesses and potentials for better tooling.
My OSM setup is a set of a few different things:
- A Tile Server for serving the tiles to various clients. I’m using OpenLayers as a client-side javascript library so that I can support my main two web browsers, Chrome and Firefox.
- Nominatim for geolocation. Geolocation is the art of taking an address (like ‘151 SE 15th Rd, Miami FL’) and converting it into a series of coordinates (Latitude and Longitude – remember those from school?) that your computer can understand (25.75788,-80.191974).
- The Open Source Routing Machine (OSRM) for providing routing.
Currently, it’s running on an eight core Intel Atom processor running at 2.6Ghz with 64GB of ram on an SSD….and it’s slow. It took me about 8 hours to import the OpenStreetMap data into my tile server and took about 48 hours to import just the US Maps into my database. For optimization, I’m looking at spinning up a larger EC2 instance on my personal AWS account to provide the processing, then just dump the database into an S3 bucket so I can import it that way.
I’m sure there’s going to be more about this as I work on it moving forward, but, I’m heading to Hacker Summer Camp next week (BSides Las Vegas, Black Hat, and DEFCON); I’ll see everyone there: come find me at Ham Radio or the Retail village spaces at DEFCON!