{"id":20515530,"url":"https://github.com/ignf/route-graph-generator","last_synced_at":"2026-02-26T16:54:11.131Z","repository":{"id":62502138,"uuid":"438689482","full_name":"IGNF/route-graph-generator","owner":"IGNF","description":"Script collection used to generate routing data for Road2 (https://github.com/IGNF/road2)","archived":false,"fork":false,"pushed_at":"2025-07-31T07:08:23.000Z","size":869,"stargazers_count":8,"open_issues_count":13,"forks_count":3,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-08-28T05:53:54.255Z","etag":null,"topics":["generation-algorithms","isochrone","osrm","pgrouting","road2","routing","valhalla"],"latest_commit_sha":null,"homepage":"https://ignf.github.io/route-graph-generator/","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/IGNF.png","metadata":{"files":{"readme":"README.md","changelog":"changelog.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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}},"created_at":"2021-12-15T16:01:19.000Z","updated_at":"2025-07-31T07:07:35.000Z","dependencies_parsed_at":"2024-02-01T18:41:32.237Z","dependency_job_id":"1d27c194-0692-480f-92ac-c6a68afec068","html_url":"https://github.com/IGNF/route-graph-generator","commit_stats":{"total_commits":356,"total_committers":13,"mean_commits":"27.384615384615383","dds":0.4044943820224719,"last_synced_commit":"610c430c1f11e3090a082a77c464bf6e129f4e8e"},"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"purl":"pkg:github/IGNF/route-graph-generator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IGNF%2Froute-graph-generator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IGNF%2Froute-graph-generator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IGNF%2Froute-graph-generator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IGNF%2Froute-graph-generator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/IGNF","download_url":"https://codeload.github.com/IGNF/route-graph-generator/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IGNF%2Froute-graph-generator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272658876,"owners_count":24971604,"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","status":"online","status_checked_at":"2025-08-29T02:00:10.610Z","response_time":87,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["generation-algorithms","isochrone","osrm","pgrouting","road2","routing","valhalla"],"created_at":"2024-11-15T21:22:34.758Z","updated_at":"2025-10-26T05:33:14.249Z","avatar_url":"https://github.com/IGNF.png","language":"Python","readme":"# Route Graph Generator\n\n## Présentation \n\nRoute Graph Generator (r2gg) est un script Python qui permet la génération de graphes pour des moteurs de calcul d'itinéraire. Il a été développé pour générer les données directement utilisable par [Road2](https://github.com/IGNF/road2). \n\nActuellement, il y a trois formats de sortie : OSRM, pgRouting et Valhalla. \n\nLa conversion se fait via les fonctions de la bibliothèque r2gg développée dans ce but. Une documentation plus détaillée de r2gg est consultable [ici](https://ignf.github.io/route-graph-generator/).\n\n## Prérequis\n\nLes prérequis au fonctionnement des scripts de génération sont décrits dans le [readme](https://ignf.github.io/route-graph-generator/docker/readme.html) de l'image docker.\n\nLes extensions SQL `postgres_fdw` et `PostGIS` doivent être installées sur la base de données `pivot` :\n\n```sql\npivot=# CREATE EXTENSION postgres_fdw;\npivot=# CREATE EXTENSION PostGIS;\n```\n\nDans le cas d'une convertion vers une base de données pgRouting, les extensions SQL `postgres_fdw`, `PostGIS` et `pgRouting` doivent être installées sur la base de données de destination, `pgrouting` par exemple :\n\n```sql\npgrouting=# CREATE EXTENSION postgres_fdw;\npgrouting=# CREATE EXTENSION PostGIS;\npgrouting=# CREATE EXTENSION pgRouting;\n```\n\nLes procédures du projet [pgrouting-procedures](https://github.com/IGNF/pgrouting-procedures) doivent également être installées sur la base de données de destination, sur le bon schema\n\n\n## Installation\n\nPour installer les commandes de génération de données, lancer la commande suivante à la racine du projet :\n\n```\npip3 install --user -e .\n```\n\n## Utilisation\n\n### Fichier de configuration\n\nPour pouvoir lancer les scripts de génération, il faut définir une configuration (au format JSON) par ressource à générer. Ce fichier de configuration fait références à d'autres fichiers de configuration : pour la gestion des logs, la gestion des connexions aux bases de données, et pour le calcul des coûts.\nDes exemples de tous ces fichiers sont présents dans le dépôt dans le dossier `io`.\nLa documentation de ces fichiers de configuration est consultable [ici](https://github.com/IGNF/route-graph-generator/tree/master/io). \n\nUn exemple de ces fichiers est disponible dans la partie [docker](https://github.com/IGNF/route-graph-generator/tree/master/docker/config). \n\n### Exécution\n\nLes scripts de génération sont divisés en trois processus distincts : l'extraction des données d'une base de données vers une base de données dite \"pivot\", et, en fonction de la ressource, la conversion depuis la base \"pivot\" vers une base pgRouting, ou vers des fichiers `.osrm`, ou encore vers des fichiers `valhalla`.\n\nCes trois processus se lancent à l'aide de commandes différentes, prenant toutes le même fichier de configuration.\n\nPour extraire les données vers la base pivot\n\n```\nr2gg-sql2pivot config.json\n```\n\nPour convertir les données au fromat pgRouting (le type de ressource dans config.json doit être `pgr`)\n\n```\nr2gg-pivot2pgrouting config.json\n```\n\nPour convertir les données au format osrm (le type de ressource dans config.json doit être `osrm`)\n\n```\nr2gg-pivot2osm config.json\nr2gg-osm2osrm config.json\n```\n\nPour convertir les données au format valhalla (le type de ressource dans config.json doit être `valhalla`)\n\n```\nr2gg-pivot2osm config.json\nr2gg-osm2valhalla config.json\n```\n\nEnfin, si on souhaite générer la configuration pour Road2, il y a une dernière commande\n\n```\nr2gg-road2config config.json\n```\n\n## Version\n\nElle est indiquée dans le `__about__.py`.\n\n## Licence\n\nRoute-graph-generator est diffusé sous la licence GPL v3.\n\n## Participer aux développements \n\nLes participations à ce projet sont encouragées (votre notre [charte](./CODE_OF_CONDUCT.md) à ce sujet). Nous avons mis en place un [guide](./CONTRIBUTING.md) des contributions pour vous accompagner dans cette démarche. \n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fignf%2Froute-graph-generator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fignf%2Froute-graph-generator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fignf%2Froute-graph-generator/lists"}