{"id":19881400,"url":"https://github.com/giscience/osm-transform","last_synced_at":"2026-04-01T18:51:52.347Z","repository":{"id":345088623,"uuid":"793473074","full_name":"GIScience/osm-transform","owner":"GIScience","description":"Filter, enrich and prepare your OSM data for openrouteservice 🚙","archived":false,"fork":false,"pushed_at":"2026-03-17T15:46:07.000Z","size":11714,"stargazers_count":5,"open_issues_count":10,"forks_count":0,"subscribers_count":4,"default_branch":"main","last_synced_at":"2026-03-18T05:52:04.705Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GIScience.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-04-29T09:36:53.000Z","updated_at":"2025-12-12T14:48:32.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/GIScience/osm-transform","commit_stats":null,"previous_names":["giscience/osm-transform"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/GIScience/osm-transform","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GIScience%2Fosm-transform","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GIScience%2Fosm-transform/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GIScience%2Fosm-transform/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GIScience%2Fosm-transform/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GIScience","download_url":"https://codeload.github.com/GIScience/osm-transform/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GIScience%2Fosm-transform/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31290966,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-01T13:12:26.723Z","status":"ssl_error","status_checked_at":"2026-04-01T13:12:25.102Z","response_time":53,"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":["cleanup","data","elevation","enrichment","filter","graphs","openrouteservice","openstreetmap","pbf","routing"],"created_at":"2024-11-12T17:14:07.679Z","updated_at":"2026-04-01T18:51:52.331Z","avatar_url":"https://github.com/GIScience.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# osm-transform\n\nA command line tool to preprocess OpenStreetMap data for routing purposes. \nThe tool reads an OpenStreetMap pbf file, filters data that is not relevant for routing (e.g. buildings) and produces a much smaller pbf file.\nAt the same time, the tool enriches the data with information about the country the data is in and optionally with elevation data.\n\nThe output pbf file can be used e.g. for openrouteservice graph building.\n\n## Run tests\nRun all tests:\n```shell\ncargo test\n```\n\nIntegration tests:\n```shell\ncargo test --test integration_test\n```\n\n## Run locally\n```shell\ncargo clean\ncargo run -- \u003coptions\u003e\n```\n\nTo get help about the command line options, run:\n```shell\ncargo run -- -h\n```\n\n## Build locally\n```shell\ncargo clean\ncargo build\n```\n\nOr a optimized, faster version (build is slower):\n\n```shell\ncargo clean\ncargo build --release\n```\n\nThe executable binaries created by `cargo build` or `cargo build --release` are located in the `target/debug` or `target/release` directory respectively.\n\nYou can run the executable with the same options as described above for running locally:\n```shell\n./target/debug/osm-transform \u003coptions\u003e\n./target/release/osm-transform \u003coptions\u003e\n```\n\n\n## Docker\n\n### Build docker image\n\nRun docker build and tag the image with e.g. `local/osm-transform:latest`:\n```shell\ndocker rmi local/osm-transform:latest # if you have an old image\ndocker build -t local/osm-transform:latest .\n```\n\nIf you don't want to build a docker image yourself, you can use the prebuilt image from docker hub: ```heigit/osm-transform:latest```.\nIn the other examples in this README, add replace `local/osm-transform:latest` with `heigit/osm-transform:latest`.\n\n### Run docker image\n\nWhen running the docker image, you can add all command line options for the rust application behind the docker image name. \nE.g. you can get help by running the following command:\n\n```shell\ndocker run --rm local/osm-transform:latest -h\n```\n\nIn all other use cases than getting help, you want to process an input file and potentially enrich the data with \ninformation from other files. Therefore you need to mount the directories containing the input files to the docker.\nThe following command mounts the directories `~/data/osm`, `~/data/countries` and `~/data/elevation` to the docker\ndirectories `/app/osm`, `/app/countries` and `/app/elevation` respectively.\nYou can mount whichever directories you want, but you need to adjust the paths in the command according to the \npaths in the container:\n\n```shell\ndocker run --rm \\\n    -v ~/data/osm:/app/osm \\\n    -v ~/data/countries:/app/countries \\\n    -v ~/data/elevation:/app/elevation \\\n    -v .:/app/out \\\n    local/osm-transform:latest \\\n    -i /app/osm/heidelberg.test.pbf \\\n    -o /app/out/heidelberg.ot.pbf \\\n    -c /app/countries/world_borders_idx_0_40 \\\n    -e '/app/elevation/*/*.tif' \\\n    -vvv\n```\n\n## Roadmap\n\n* performance and memory usage improvements\n* enable custom filter options\n* support for more custom enrichment source files, e.g.:\n  * other csv area with other information than countries, e.g. time zones \n  * other geotiff files for raster based enrichment\n* make it possible to only build area indexes without processing a pbf file","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgiscience%2Fosm-transform","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgiscience%2Fosm-transform","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgiscience%2Fosm-transform/lists"}