{"id":16104193,"url":"https://github.com/dpriskorn/geojson2osmnotes","last_synced_at":"2026-02-16T13:02:23.478Z","repository":{"id":196772408,"uuid":"697096078","full_name":"dpriskorn/geojson2osmnotes","owner":"dpriskorn","description":"Script to upload notes based on a source geojson to OSM. This is an alternative to directly import the data in the database.","archived":false,"fork":false,"pushed_at":"2024-08-13T12:10:33.000Z","size":723,"stargazers_count":0,"open_issues_count":8,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-07T10:58:31.250Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dpriskorn.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2023-09-27T03:38:49.000Z","updated_at":"2024-08-13T12:10:37.000Z","dependencies_parsed_at":"2024-08-13T13:54:18.277Z","dependency_job_id":null,"html_url":"https://github.com/dpriskorn/geojson2osmnotes","commit_stats":null,"previous_names":["dpriskorn/geojson2osmnotes"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dpriskorn/geojson2osmnotes","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dpriskorn%2Fgeojson2osmnotes","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dpriskorn%2Fgeojson2osmnotes/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dpriskorn%2Fgeojson2osmnotes/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dpriskorn%2Fgeojson2osmnotes/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dpriskorn","download_url":"https://codeload.github.com/dpriskorn/geojson2osmnotes/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dpriskorn%2Fgeojson2osmnotes/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29508737,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-16T09:05:14.864Z","status":"ssl_error","status_checked_at":"2026-02-16T08:55:59.364Z","response_time":115,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":[],"created_at":"2024-10-09T18:59:50.585Z","updated_at":"2026-02-16T13:02:23.455Z","avatar_url":"https://github.com/dpriskorn.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# geojson2osmnotes\n**Warning: automatic note creation is not endorsed by the community. MapRoulette or a regular import should be used instead, see https://wiki.openstreetmap.org/wiki/Notes**\n\nThe purpose of this script is to import geojson features as osm notes.\n\nThe purpose is to help curate OSM based on messy data from some source.\n\nIn the example below we have unreliable data for bathing sites from a Swedish government agency.\nThey don't have names for the site, nor a stable identifier. \n\nStill the points are useful for OSM editors to know about and check out on the ground.\n\n# Features\nCompares a dataset with OSM and creates notes \nif the source has more information than OSM\n\n# Limitations\n* None known\n\n# Installation\nClone the repository.\n\nRun\n\n`$ pip install poetry \u0026\u0026 poetry install`\n\nCopy config.\n`$cp sample_config.py config.py`\n\nEdit the config and add your credentials.\n\n# Use\n## CLI\n`python main.py --source-geojson source.geojson --osm-geojson osm.geojson --notes-file notes.csv  --bounding-box 12.0541,59.8233,16.9100,62.3042`\n\nThe bounding box is on the same format as the Openstreetmap API, \nsee https://wiki.openstreetmap.org/wiki/Bounding_Box\n\n# Examples\n## Bathing sites\nFirst we get the geojson from the source.\nIn this case we got the data  \nfrom the Swedish Lantmäteriet and extracted the geojson\nvia https://github.com/dpriskorn/LantmaterietHikingPaths/blob/main/extract_bathing_site_pois.py\n\nThe OSM data was fetched via overpass-api using this query:\n```\n/*\nThis has been generated by the overpass-turbo wizard.\nThe original search was:\n“amenity=public_bath or leisure=bathing_place in Sweden”\n*/\n[out:json][timeout:25];\n// fetch area “Sweden” to search in\n{{geocodeArea:Sweden}}-\u003e.searchArea;\n// gather results\n(\n  // query part for: “amenity=public_bath”\n  node[\"amenity\"=\"public_bath\"](area.searchArea);\n  way[\"amenity\"=\"public_bath\"](area.searchArea);\n  relation[\"amenity\"=\"public_bath\"](area.searchArea);\n  // query part for: “leisure=bathing_place”\n  node[\"leisure\"=\"bathing_place\"](area.searchArea);\n  way[\"leisure\"=\"bathing_place\"](area.searchArea);\n  relation[\"leisure\"=\"bathing_place\"](area.searchArea);\n);\n// print results\nout body;\n\u003e;\nout skel qt;\n```\n\nBoth files were fed to the script like this\n\n`$ python main.py --source-geojson badplatser_sverige.geojson --osm-geojson export.geojson --notes-file notes.csv  --bounding-box 12.0541,59.8233,16.9100,62.3042`\n\n# License\nGPLv3+\n\n# Thanks\nTo the Magnus Sälgö and the Swedish OSM community for feedback.\n\n# What I learned\n* Chatgpt is not good at handling shapely.geometry.point.Point \nwithout explicitly telling it to.\n* Geopandas and geopy are super nice and fast.\n* Lambda + apply is a pain in the ass. Fortunately chatgpt provided a working workaround.\n* Oauth2 for a command line script is easy once you have a good example to follow :)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdpriskorn%2Fgeojson2osmnotes","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdpriskorn%2Fgeojson2osmnotes","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdpriskorn%2Fgeojson2osmnotes/lists"}