HOT Mapping Visualisation Tool

Application deadline: 
Friday, December 15, 2017
Place of work: 
Remote

 Updated on November 17

1. Overall Goal

With this tech challenge the Humanitarian OpenStreetMap Team (HOT) is seeking an experienced developer and UX designer to create a Mapping Visualisation Tool, that can be easily used to automate the creation of downloadable and embeddable animations, showing the progress of mapping in OpenStreetMap (OSM) for an area of interest (AOI) over a given time period.

2. Background

Previously, visualising changes in OSM mapping over time has been accomplished by capturing individual snapshots of the AOI, at periodically, even spaced time intervals, which are then ‘stitched’ together into a timelapse animation. This process, however, is labour intensive and time consuming, with previous mapping visualisation projects taking several months to complete. Data visualisation efforts have been outsourced in the past, costing several thousands of dollars. Some of the best examples of these include the ‘10th Anniversary of OSM’ and ‘Indonesia Mapping 2013’ videos:

 

Figure 1. OSM 2013 Indonesia Edits

  

There are, however, several existing open source tools that can produce similar visualisations, such as the OSM History Renderer and OSM History Animation. The recent browser-based work carried out by Mapbox on the ‘Malaria Elimination Mapping Initiative’ is a great example of the envisioned outcome of this software development project. A browser-based ‘Mapping Visualisation Tool’ that can create videos of the mapping progress in an AOI, over a time period at user selected time intervals, that can easily be downloaded as a shareable file, or embedded into presentations and websites:

 

Figure 2. Mapping Visualisation Tool Example

  3. Scope of Work

The Mapping Visualisation Tool is envisioned as a web application, that allows the easy visualisation of map changes over time, based on a user specified time period and an AOI. This mapping progress animation should be downloadable into a file format that allows for easy sharing, as well as the ability to embed into websites and presentations. Several features are expected to be included in the tool:

  1. AOI input options:

    • search by place name or longitude and latitude coordinates

    • select through an interactive map using a bounding box, free drawing, current view or uploading a GeoJSON polygon file

  2. Time input options:

    • specify time period by start date (year, month and day) and by end date (year, month and day)

    • set frequency interval for capturing mapping snapshots (yearly, monthly, weekly, daily and hourly)

    • Please note that restrictions should be set so that intervals such as hourly and daily, cannot be selected for large AOIs spanning over long time periods (etc. 8 years)

  3. Cartography input options:

    • categories of OSM map features to display

    • background layers and map style (based on publicly available styles from Mapbox, Stamen, etc)

  4. Captions input options:

    • custom overlays such as the title of the animation, or captions for individual frames

    • date labels that indicate mapping snapshots being displayed over timelapse animation

  5. Output options:

    • view directly through web interface

    • download  animation in MP4 or GIF file formats

    • notified by email once the mapping visualisation is created

Development will employ agile methods such as scrum, with iterative and incremental working product releases. The selected candidates will interact with the OSM community, integrating contributions by volunteer coders and participating in monthly code sprints. The project manager will seek feedback from users, organize and prioritize issues for developers to work on during each sprint.

Key requirements to be considered in developing the tool are:

  • Application should follow the 12-factor app methodology

  • Application should be ‘API-first’ and separate the server-side processes with the front-end presentation through an API

  • Follow the general style and branding of existing HOT tools

  • Maximum effort to reuse code and integrate with existing open source projects

  • Self-contained, portable, with simple installation steps (e.g. through deployment with software containers or by virtualization) for compatibility with multiple operating systems and enable continuous deployment

  • Developed using interoperable and modern programming languages

  • Scalable, to support increased workload of peak request periods (e.g. during a disaster emergency) and able to quickly replicate across multiple instances.

  • Developed with low-bandwidth environments in mind. File formats and methods for how data is served to the client must be factored. Preference of webm or MP4 over GIF.

4. System Requirements

The tool is expected to incorporate and make use of existing open source OSM services such as the Overpass API, the HOT Export Tool and OSM Analytics. The Export Tool provides a great framework and code that can be reused for selecting the AOI, as well as providing a general wizard style interface for users to go through the various steps of creating a mapping progress visualisation. The Export Tool also makes use of its own Overpass API, which can be extended to support this development.

OSM Analytics supports access to OSM history, at monthly and daily time intervals. In order optimise storage space and the hosting of full daily OSM planet files, the data should be organised by sequential ‘diffs’, that only include newly created data for each time instance. OSMA will be able to return yearly and monthly snapshots in real-time by directly querying cached instances, but instead will work asynchronously for animation requests at daily temporal resolution.

On the server-side, the tool will receive data in vector tile format, style it and compose it according to the user specified parameters. The animation creation will also be an asynchronous process, and the user will be notified by email when the results are ready to be embedded into other sites or downloaded as a file. In order to optimise bandwidth transfer and computing resources, the vector data should be pre-generated at each zoom level and rendered on the client side.

5. Deliverables

Code and documentation will be created and hosted in GitHub in a HOT organization repository. There will be three release phases expected during the contract (alpha, beta and live), to test the following deliverables:

  • Design online tool to create animations of mapping progress in OSM for an AOI over a given time period using wireframe or UI mockups

  • Functionality to select AOI, by searching place, entering coordinates, bounding box, free draw, current view or uploading a polygon

  • Functionality to specify time period with a start and end date, as well as the interval frequency for data snapshots

  • Functionality to filter key map feature categories for the animation, as well as set the background layer and map style

  • Functionality to customise the title of the animation, as well as captions for individual frames and date labels for corresponding data snapshots

  • Functionality to view the animation directly through the tool interface, embed in webpage or download in a shareable file format

  • Users will be notified by email once the mapping visualisation has been created

  • Dockerised developer installation

  • Code that is clean and clearly documented

  • Online learn documentation on using the tool

6. Timeline

Table 1. Mapping Visualisation Tool Development Timeline

7. Contract Terms

The goal of this tech challenge is to hire a UX designer and a software developer to complete the work within 5 months. The first four months will be focused on designing and developing the application. The remaining month will be a support and maintaince period. Payments will be issued based on deliverables. Ideally the designer and developer will be a team, having worked together in the past, however, we are also happy to consider pairing individual candidates together. All code will be released with an approved open source license to be defined at the beginning of the contract.

8. Skills and Technology Requirements

The selected candidate or team must have experience in open source software development and working with a community of volunteering contributors. Knowledge and proficiency with the following technologies are preferred:

  • JavaScript: NodeJS, jQuery, LeafLet, OpenLayers, GeoJSON

  • Python: Django, Celery(RabbitMQ)  

  • SQL databases: SQLite, PostgreSQL

  • Web: HTML5, CSS, User Interface design

  • File Formats: WebM, MP4 and GIF

  • OGC and ISO geospatial standards

  • OSM database structure

  • Vector Tiles

  • Git and GitHub

  • Transifex

9. How to Submit your Proposal

Your proposal submission should include the following:

  • Description of your proposed tech challenge approach (max 1 page) and how you will approach the UX design (max 1 page). For the design please provide a quick mockup based on some of the other HOT tools such as the Export Tool and OpenAerialMap;

  • Resume with links to your GitHub account or other open source projects you publicly contributed to (max 2 pages);

  • Cover letter describing, if any, your involvement with HOT, OSM or other humanitarian and open source projects, as well as your proposed budget (max 1 page).

Submit your application in PDF format to apply@hotosm.org with “HOT Mapping Visualisation Tool | Tech Challenge Application” in the subject of your email.

Applications must be received by December 15th, 2017. HOT will consider individual applications, as well as joint applications by a team of two developers or a developer and a designer.

10. Project Sustainability

One important objective of this tech challenge is to create a product that is well documented and coded according to best practices standards. We prefer technology and software that have large developer pools in the open source community. We invite candidates to review current HOT projects on GitHub and get familiar with technology already used, in order to maximize support by the community and make it easier for other volunteers to contribute. It is important that once this tech challenge contract ends, the HOT community is able to continue supporting and developing the project.

For more information about the mentioned open source tools above, please visit the Mapbox Malaria Mapping [1], the HOT OSM Export Tool [2] and the HOT OSM Analytics [3] repositories on GitHub:

[1] https://github.com/mapbox/malaria-mapping

[2] https://github.com/hotosm/osm-export-tool

[3] https://github.com/hotosm/osm-analytics