{"id":15058866,"url":"https://github.com/simgo123/mountain-isolation","last_synced_at":"2026-02-11T10:01:27.868Z","repository":{"id":248102640,"uuid":"826674514","full_name":"SimGo123/mountain-isolation","owner":"SimGo123","description":"Extraction of the isolation of mountains (=distance to next highest) from Wikipedia and visualization of it","archived":false,"fork":false,"pushed_at":"2024-07-12T12:45:30.000Z","size":1532,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-14T10:14:44.892Z","etag":null,"topics":["cgi-bin","openstreetmap","python3","wikipedia"],"latest_commit_sha":null,"homepage":"https://simgo123.github.io/mountain-isolation/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SimGo123.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-10T06:53:35.000Z","updated_at":"2024-07-12T12:45:47.000Z","dependencies_parsed_at":"2024-09-24T22:32:03.585Z","dependency_job_id":"1700e9da-81e6-4237-bc49-df0fb1a7fc24","html_url":"https://github.com/SimGo123/mountain-isolation","commit_stats":null,"previous_names":["simgo123/mountain-isolation"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SimGo123%2Fmountain-isolation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SimGo123%2Fmountain-isolation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SimGo123%2Fmountain-isolation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SimGo123%2Fmountain-isolation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SimGo123","download_url":"https://codeload.github.com/SimGo123/mountain-isolation/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243558477,"owners_count":20310574,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cgi-bin","openstreetmap","python3","wikipedia"],"created_at":"2024-09-24T22:31:50.708Z","updated_at":"2026-02-11T10:01:27.788Z","avatar_url":"https://github.com/SimGo123.png","language":"JavaScript","readme":"# mountain-isolation\nExtraction of the isolation of mountains (=distance to next highest) from Wikipedia and visualization of it\n\n\u003cimg src=\"iso_circles_example.png\" alt=\"Isolation circles on the map\" title=\"Isolation circles on the map\" width=\"700px\"\u003e\n\u003cimg src=\"everest_path_example.png\" alt=\"Path to Mount Everest\" title=\"Path to Mount Everest\" width=\"700px\"\u003e\n\n## table of contents\n1. [background](#background)\n2. [goals](#goals)\n3. [implementation and design](#implementation-and-design)\n4. [usage](#usage)\n5. [installation considerations](#installation-considerations)\n6. [glossary](#glossary)\n\n## background\nGrowing up in Bavaria, I went hiking in the Bavarian Alps from an early age.\nAnd every time I reached the top of a mountain, I could see at least one that was higher.\nHowever, within a certain radius around the peak, there is no higher mountain.\nThe maximum radius is called the **isolation** of the mountain.\n\nMost articles about mountains in the German Wikipedia contain a reference to the next highest mountain and the isolation in their infobox.\nSince Wikipedia has an API, I thought about working with the isolation of mountains.\n\n## goals\nThe main goal is to use the Wikipedia API to visualize and work with the isolation of mountains.\nCurrently, the main concern of this project are the following tasks:\n- `select-mountain`: Given a mountain, follow the link to the next highest peak until you reach Mount Everest. Visualize all isolations and the path to Mount Everest on a map.\\\n*Status: Mostly implemented*\n- For as many mountains as possible (i.e., a Wikipedia list of mountains in the Alps), draw their path to Mount Everest.\\\n*Status: Not implemented yet*\n\n## implementation and design\nThis project is implemented as a website with a JS frontend and a Python backend.\n\nA search box for articles is implemented.\nAs the user enters a search term, a Python script sends this data to the Wikipedia OpenSearch API to get articles matching the search term.\nThis is done through Python to avoid CORS policy issues.\nThe German Wikipedia is used for now, as the next highest mountain is almost always referred to in the same place.\nSupport for the English Wikipedia might come later.\n\nTo retrieve data from the infobox of a given article, the [wikipedia](https://pypi.org/project/wikipedia/) library is used to first get the HTML of the article. The library [beautifulsoup4](https://pypi.org/project/beautifulsoup4/) is then used to locate and parse the infobox. The library [wptools](https://pypi.org/project/wptools/) is not used here, as its dependencies could not be installed on my limited web server.\n\nEvery time a new mountain on the path to Mount Everest is discovered, the path so far is transmitted to the client-side JS using SSE (Server-sent events).\n\nThe data is mapped on OpenStreetMap using [leaflet](https://leafletjs.com/).\\\nFurthermore, a diagram depicting the height of the visited mountains is created using [Highcharts](https://www.highcharts.com/).\n\n## usage\n1. Enter a search term in the search box\n2. Once the desired article about a mountain appears, click on it. Note that search results may take a few seconds to load. Also, article names might be ambiguous. In such cases, the German Wikipedia pages might have the word \"Berg\" or the corresponding mountain range in brackets in the title\n3. The isolation and the path to Mount Everest are now shown on the map, mountain by mountain. The path may not get to Mount Everest. In that case, an error message is shown. It is most likely due to a missing Wiki article\n4. Click on the markers to see additional facts from the infoboxes about the mountains. Also, check out the height chart below\n5. Hide and show markers and isolation circles by (un)checking the corresponding checkboxes\n\nFor a no-backend demo, see the project's GitHub Page: [https://simgo123.github.io/mountain-isolation/](https://simgo123.github.io/mountain-isolation/)\n\n## installation considerations\n- Note that your web server has to support the Common Gateway Interface (CGI)\n- Each Python file must start with a shebang (`#!`) followed by the path to the Python interpreter (here, it is assumed to be `/usr/bin/python3`)\n- The Python files have to be executable. To achieve the correct permissions, run `chmod +x /path/to/file.py` on Linux\n\n## glossary\n- *Isolation* of a mountain: The minimum distance to a higher mountain\n- *Isolation circle*: A circle around a mountain with the radius of its isolation\n- *Infobox* of a Wiki article: The box with facts shown on the right-hand side of many articles\n- *CORS (Cross-origin resource sharing) policy*: Can restrict accessing other websites from the current page\n- *SSE (Server-sent events)*: A way for the server to communicate with the client through events. Here, it is used for updates while the server is running a (possibly) long task\n- *CGI (Common Gateway Interface)*: Interface that allows that a backend script in a language like Python can be called from the website\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimgo123%2Fmountain-isolation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsimgo123%2Fmountain-isolation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimgo123%2Fmountain-isolation/lists"}