Google Summer of Code/2022/Project ideas

From OpenStreetMap Wiki
Jump to navigation Jump to search

This page lists a number of ideas for potential Google Summer of Code 2022 projects. This page's primary purpose is to help to give potential applicants ideas that they can build on to turn into applications for the program. Members of the OSM developer community are encouraged to identify ideas for projects here, and whether they would be willing to act as a mentor for a GSoC contributor attempting the project.

GSoC contributors can base their application on one of these ideas. We also encourage potential GSOC contributors to come up with their own ideas for projects around OpenStreetMap software. Please get in touch with the organizers (at gsoc-orga@openstreetmap.org) as soon as possible if you want to work on something not listed here, so that we can make sure you get the best support possible.

Searching

Nominatim - Importance by OSM map views
Suggested By
Summary
A single search for a place often gives many results. To give the user the answer they most likely searched for, Nominatim assigns places an 'importance' value. At the moment, it does this by looking at the popularity of a related wikipedia article. This only works for places which are important enough to have their own entry in Wikipedia. OSM publishes aggregated map access numbers, which are also a good indicator how popular a region is. The goal of this project is to integrate the map access numbers into Nominatim to compute an importance value for all places that don't have their own wikipedia article.
Mandatory skills
basic knowledge of SQL
Useful skills
SQL(Postgresql, Postgis)
Required experience
beginner
Length
175 hours
Difficulty
medium
Possible Mentors
Notes
OSM tile logs can be found at https://planet.openstreetmap.org/tile_logs/. The QRank project has a builder that creates GeoTIFFs from the access logs. They can be downloaded at https://qrank.wmcloud.org/download/osmviews.tiff.
Comments
Please also see the general hints for contributing to Nominatim for GSOC at User:Lonvia/GSoC_2021_Nominatim_Projects.
Clean up Nominatim's Wikipedia importance computation scripts
Suggested By
Summary
Nominatim has scripts to process dumps from wikipedia and wikidata. These scripts do a simple link frequency analysis to determine for each wikipage how important it is. We use this importance than to weigh the importance of search results. The scripts work but are very resource hungry. Processing all the data requires more than 1TB disk space and takes more than a day. There is room for optimisation here. Our main goal is to have a process that can be run regularly on a medium sized machine.
Mandatory skills
shell scripting
Useful skills
bash, basic SQL, maybe Python
Required experience
beginner
Length
175 hours
Difficulty
medium
Possible Mentors
Notes
Resources:
Comments
Please also see the general hints for contributing to Nominatim for GSOC at User:Lonvia/GSoC_2021_Nominatim_Projects.

Core / API

Routing

Valhalla GTFS integration
Suggested By
Nilsnolde
Summary
We aim to add support for ingestion of raw GTFS data into Valhalla to build public transit graphs for multi-modal routing. See here for more details: https://github.com/valhalla/valhalla/issues/3539.
Mandatory skills
C++
Useful skills
basics of routing & graph theory, GTFS familiarity
Length
350 hrs
Difficulty
intermediate(with an "experienced beginner"'s C++ skill set and some basics around routing & graph theory, the main challenge will be to dive into Valhalla's graph model and code base.)
Possible Mentors
kevinkreiser, Nilsnolde
Notes
There has been a recent attempt to integrate GTFS support, however the PR was dropped at some point due to the issuer losing interest: https://github.com/valhalla/valhalla/pull/2835. Some of the challenges were already addressed, e.g. porting the maps.me GTFS parser to C++14.
Comments
Currently Valhalla does support public transit but is locked in with transit.land, which is a sort of open-source GTFS management platform and only accessible to the public via freemium API keys.

General

Improve mapsplit offline OSM data updating support
Suggested By
Summary
https://vespucci.io uses https://github.com/simonpoole/mapsplit for offline data. Currently there is no support for updating the data in place this would allow directly updating the data from edits and potential for keeping a mapsplit file up to date with OSM edits in general.
Mandatory skills
Java
Useful skills
Experience with OSM mapping workflows and data model
Length
175 hours
Difficulty
Medium
Possible Mentors
SimonPoole
Notes
The likely best way to implement this is to consume Overpass Augmented or a simpler format context diffs (the later however would require developing a mechanism to generate them) format. Updating should be both possible on desktop/Server and on mobile. Support for directly updating from edits in Vespucci (post upload) should be supported too.
Comments
Language: Java, potentially Kotlin for any standalone components on mobile.

iD editor

Geo-referenced image viewer
Suggested By
Summary
Add the capability to view images from the local device or other sources per drag and drop to the editor and then by clicking on an appropriate marker for the image position. github issue
Mandatory skills
JavaScript
Useful skills
Experience with iD and OSM mapping workflows
Length
175 hours
Difficulty
easy
Possible Mentors
Notes
This is a long time open issue for iD. In particular the lack of this capability makes it difficult to utilize iD in mapping party and similar environments. To avoid confusion this is not about providing image storage or other potentially related topics, it should work similar to the current drag and drop facility for GPX files.
Comments
Interactive opening hours and access restrictions widget
Suggested By
Summary
Mandatory skills
JavaScript
Useful skills
Experience with iD and OSM tagging and mapping workflows
Length
350 hours
Difficulty
easy-medium
Possible Mentors
Notes
Mapping certain attributes such as opening hours or access restrictions can be quite difficult in iD. Currently, in order to add the opening hours of a POI, mappers needs to know the respective tagging syntax of the opening hours=* tag or have to use external tools. This can be solved by implementing a UI widget which allows to interactively enter or modify basic opening hours. Similarly, the mapping of access restrictions on roads, barriers and similar map features can by enhanced: The user interface should provide a visual interpretation of the mapped access restrictions (for example in the form of icons similar to road signs for various situations) and allow to easily add or modify of access restrictions.
Comments
This project could potentially also be reduced to a small (175 hours) project, by only covering the opening hours or access restrictions part of the proposal. But since there exist some synergies between the two parts of the project idea, an application for the full project idea would be preferred.

JOSM editor core

High Resolution Image Viewer for 360 Images
Suggested By
Summary
The Geo-tagged image viewer for 360 images produces low resolution images at the moment. An alternate image viewer which is slow but produces high resolution images is also required for viewing important details. Also some GUI will be needed to switch between these two modes.
Skills
Java
Required experience
beginner
Length
175 hours
Difficulty
medium
Possible Mentors
Notes
Inspirational Image viewer for 360 images - https://docs.gimp.org/en/gimp-filter-panorama-projection.html
Comments
JOSM ticket #16472 and #21432
Support Vespucci preset extensions in JOSM
Suggested By
Summary
https://vespucci.io utilizes the JOSM preset format, however has extended the configuration to work better outside of the narrow realm of JOSM see . The work should add support to JOSM for these extensions (that includes utilizing them in the UI).
Mandatory skills
Java
Useful skills
Experience with OSM mapping workflows and specifically with JOSM
Length
175 hours
Difficulty
Easy
Possible Mentors
SimonPoole
Notes
See http://vespucci.io/tutorials/presets/#translation At least translation with GNU text, the deprecated attribute to indicate deprecated preset items, regions and exclude_regions for localisation, the value_type attribute to indicate the type of the value and the alternative attribute should be supported.
Comments

JOSM editor plugins

JOSM route visualisation
Suggested By
Summary
I have started to write a Plugin to Visualize JOSM routes. The plugin is mostly a technical demonstration: It works, the integration in JOSM is done and the difficult algorithms are done. But the UI to interface with them is not that great at the moment and could use some improvement. What it misses are some UI improvements, implementing the functionality for all transport types (e.g. currently only bus routing is supported), giving inline help to users, improvements in visualization (MapCSS), CI/CD and listing it as JOSM plugin. Feel free to add your own ideas.
Skills
Java
Required experience
beginner
Length
175 hours (could be extended)
Difficulty
medium
Possible Mentors
michael2402 (Michael Zangl)
Notes
Comments