Student projects

From OpenStreetMap

Jump to: navigation, search

OpenStreetMap has several open problems and items that need researching. Some of these "longer-term" issues could be worked on by students for their projects. List items here with a summary and description, maybe with an indication of whether they are mainly research or development. It would be a good idea to "claim" a project by marking it with student name and institution so that work is not duplicated unnecessarily. Many in the community have good ideas on these projects, so any students should be encouraged to join the OpenStreetMap talk and dev mailing lists and learn what is really required.

There is also some similar ideas on the Google Summer of Code page. This is a scheme in which google facilitates an open source development project over the summer, and pays the student 4500 USD.

Contents

Projects

Map routing

Create software and methods for producing driving directions from OpenStreetMap data

The OpenStreetMap project is collecting map data around the world. However, there currently exists very little in using this data for producing driving directions. The data is a graph on which standard shortest-path algorithms should work. Areas to consider would be a choice of fastest or shortest route, going via a location, off-line processing on a local .osm XML file, on-line web-based application, producing routes for PDAs and more. Driving directions as well as route maps should be considered outcomes of this project.

Database software investigation

Compare the performance of MySQL with PostgreSQL and other free databases

The OpenStreetMap project currently uses MySQL as its storage database. There are frequent complaints about the speed of access to the data. A need has arisen for an investigation to be made into whether PostgreSQL could outperform MySQL. The databases should be tuned for optimum performance and research should be done to find out the best places for indexes on the data, for example. Database replication could be considered as a side-project.

Database geospatial investigation

Investigate geospatial extensions for databases

The current OpenStreetMap database does not use any special extensions designed to make geospatial data easy and quick to use. Investigation should be made into database support of geospatial objects, how this would integrate with the OSM data, and what performance gains could be achieved. Can the OSM database be restructured to improve access speeds?

Map rendering schedule

Work out the best way to render maps so users can quickly see their work

One of the problems with OpenStreetMap is that the users want to see what their new maps look like. This can be complicated to set up on a home machine for a new user, so web-based systems are generally used. The world is rendered in small sections called "tiles"; these are stored as images on a server and are sent back to the browser to show the map. Generating tiles is a CPU intensive task involving grabbing data from the database, rendering it at several zoom levels, and pushing the tiles back to the tile store. This project should work out the best way of keeping the rendered map up-to-date whilst also allowing users to see their uploaded changes quickly. There are possibly several ways of doing this; they need to be compared to find the most effective solution.

Wiki-like control

Make OpenStreetMap more wiki-like

The OpenStreetMap project is styled as a "wiki for maps". However it is currently quite difficult to spot changes, undo them and to go "back in time" for particular roads/nodes/areas in the map. If, for example, a malicious user damages the map in some way, a clean way of undoing the damage without breaking other mapped objects in the same area is required. This project should investigate how to bring more features of text-based "wikis" into the geospatial environment, and how they can be used by the community to patrol and keep the data clean.

Off-line editing

Make OpenStreetMap easier to use when not on the Internet

Mapping with OpenStreetMap currently requires frequent access to the Internet. This project should investigate ways of off-line mapping. For example one may go away for six months and map the local area - this mapped data should then be able to be merged into the OSM database (which may already contain some of the newly mapped data) when the person returns. Do you trust the newer uploaded data if the older existing data looks more accurate (maybe according to uploaded GPS traces or the number of nodes)?

OpenStreetMap Everywhere

Design new novel mapping applications that can use free map data

OpenStreetMap is opening up mapping data to hackers everywhere. This data can be put to all sorts of novel uses. Investigate how to efficiently and usefully use OSM data/maps in PDAs, digital cameras, mobile 'phones, and other devices as well as through the browser. Maybe even new methods for maps on paper?

comment: see also http://wiki.openstreetmap.org/index.php/Talk:Google_Summer_of_Code, section iPhone / iPod Touch

Mapping methods

Investigate new methods to make mapping easier

OpenStreetMap data is currently generated by manually tracing GPS traces or aerial imagery. There is not much in the way of automating this process. Software could be developed to automatically trace new GPS track data and merge the new tracks with existing data. Maybe roads or water areas could be automatically traced from aerial images. Integrating these type of automated methods into software such as JOSM would be an additional bonus.

comment: by fitting/perturbing existing traces to multiple incoming GPS track points, assuming the random walk model (or, expressed simpler, so that the GPS points form a gaussian point cloud centered around the fitted track) may improve resolution significantly. If resolution of incoming GPS sources is known (from ~30m for normal receivers, down to less than ~1m for DGPS receivers with online compensation), then the GPS data points may get weighted in different gaussian parameter classes for improved fitting.

Distributed tile servers

Develop a distributed scalable and resilient tile-serving service

OpenStreetMap maps that are viewed in the browser are currently stored on a single machine as tiles. Each tile contains a small square rendered area of map. These tiles are requested by the browser and assembled with JavaScript to produce the draggable map. There is a very heavy IO load and storage requirements on the one tile server, and there is no resilience if it goes down. This project should investigate ways of storing tiles on multiple machines, still allowing them to be displayed in a user's browser if one or more of the tile storage machines is unavailable. The project will look at code in render farms, tile servers and browsers.

One idea Ojw 12:43, 1 August 2007 (BST)

See Talk:Tiles@home/The_blank_tile_problem User:jth

Results of Student Projects

The results of some student ptojects performed at Universities can be found at the page Results of Student Projects.

Personal tools
recent changes