Revolutionizing Field Mapping (with FMTM): Part 1

Posted by spwoodcock on 9/16/2023

Manual Mapping

Since the inception of the Missing Maps project in 2014, the global community has achieved remarkable progress in digitally mapping communities that were once poorly mapped or entirely unmapped.

Shout-out to the incredible volunteers that contribute to this during regular mapathons🙏

mapathon

AI-assisted Mapping

HOTOSM’s fAIr project is at the verge of making this a reality. With an emphasis on open-source (ethical, responsible) models, region-specific training data, and iterative feedback, the entire globe will be mapped at record speed.

Watch this space.

fair

The Future of Mapping

With remote digitisation covered, there’s still a missing piece in the puzzle: attaching OSM tags to these features.

For that we need field-based verification.

Incorporating tags into the mapping data is crucial for enhancing its usability. Once collected, this data can be used in a wide range of projects, ranging from census data collection to humanitarian response.

Many of these tags would be difficult to extract without in-person verification: amenity type, number of floors, building materials, etc.

tags

Cool, tell me about FMTM then

While we already have field data collection tools, the real game-changer lies in having software for coordinating field mapping efforts.

The Field Mapping Tasking Manager (FMTM) does just that.

Mapping areas can be subdivided appropriately (i.e. not crossing rivers, or busy roads, and of suitable size), then allocated to a team of mappers in the field.

fmtm

The requirements for which tags should be collected during a mapping campaign can be customised using XLSForms (more on that topic in another post).

This was recently made possible by leveraging the newly developed “select from map” functionality of OpenDataKit (ODK), where mappers can select specific buildings to collect their data for.

More Details

Attention should be drawn to the fantastic open-source tools in this ecosystem such as StreetComplete. If you are mapping solo, StreetComplete may be the best tool. The main problem solved by FMTM is coordinating collaborative mapping.

Components

  • Frontend: React and OpenLayers, as a PWA.
  • Backend: FastAPI Python server.
  • Database: all data is stored and georeferenced in PostGIS.
  • Mobile data collection: ODK Collect is used for the actual field tagging.
  • Data server: Collect connects to an instance of ODK Central to aggregate and store data before processing.

Status Update

We have an alpha version of FMTM currently running mapping campaigns in a few different countries.

The workflow needs refinement and codebase is constantly being updated.

Feel free to run it yourself and try it out!

Current features:

  • OSM login for attribution of edits.
  • Task boundary splitting using Postgis.
  • Custom XLSForm usage for the ODKCollect questionnaire.
  • User access control and organisation management.
  • MBTile basemap generation for offline mapping.
  • Extraction of generated data in OSM format.
  • Remote connection to JOSM for advanced editing.
  • Real-time monitoring of task mapping status.

Collaborators

  • The task splitting algorithm was developed from a combination of internal HOT work & a hackathon organised by our partner in Nepal: NAXA.

  • NAXA has been helping to build out large portion of the FMTM codebase.

  • Contributors from all around the world, as an open-source project.

Get Involved

Full disclaimer, I am currently employed by HOT to work on FMTM.

I made it here through my volunteer work for the project during the Turkey and Syria Earthquake’s in February this year.

Contributing to FMTM with code, documentation, or ideas would be very welcomed - we are quite a friendly bunch!

Please also consider contributing to Nafundi’s excellent ODK ecosystem, without which this work would not be possible.

Future Posts

This was a high level overview of FMTM.

I plan to make future posts about developments, technical deep dives, and usage of FMTM’s features.

See you next time.