As a combination of bachelor project / bachelor thesis. A river segment (for example, the Rhine between Breisach and Strasbourg) can be thought of as consisting of many small streams and other rivers (tributaries) that contributed to this river. A nice way to visualize this would be a metro map, where each river is a single metro line and multiple (possibly hundreds) of small parallel lines make up a segment of a larger river. '''Goal:''' Generate a graph of the rivers in OSM and try to deduce which river segment is made up of which smaller streams. Render this graph in a pleasing way, or use our tool LOOM to do so. '''Requirements:''' 1. Generate a geographical graph, as GeoJSON, in which nodes are "river intersections" (where two or more rivers join) and edges are river segments between those intersections. Each edge should have a list of rivers that contributed to it as an attribute. 2. You should write a tool that can be used from the command line. 3. The output format should be the GeoJSON format used by LOOM. '''Optional:''' 1. Write your own code to render this graph. 2. Write a web application to display this graph, where you can click on each river and display some useful information.