# Route Graph Generator
## Présentation
Route 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).
Actuellement, il y a trois formats de sortie : OSRM, pgRouting et Valhalla.
La 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/).
## Prérequis
Les 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.
Les extensions SQL `postgres_fdw` et `PostGIS` doivent être installées sur la base de données `pivot` :
```sql
pivot=# CREATE EXTENSION postgres_fdw;
pivot=# CREATE EXTENSION PostGIS;
```
Dans 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 :
```sql
pgrouting=# CREATE EXTENSION postgres_fdw;
pgrouting=# CREATE EXTENSION PostGIS;
pgrouting=# CREATE EXTENSION pgRouting;
```
Les 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
## Installation
Pour installer les commandes de génération de données, lancer la commande suivante à la racine du projet :
```
pip3 install --user -e .
```
## Utilisation
### Fichier de configuration
Pour 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.
Des exemples de tous ces fichiers sont présents dans le dépôt dans le dossier `io`.
La documentation de ces fichiers de configuration est consultable [ici](https://github.com/IGNF/route-graph-generator/tree/master/io).
Un exemple de ces fichiers est disponible dans la partie [docker](https://github.com/IGNF/route-graph-generator/tree/master/docker/config).
### Exécution
Les 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`.
Ces trois processus se lancent à l'aide de commandes différentes, prenant toutes le même fichier de configuration.
Pour extraire les données vers la base pivot
```
r2gg-sql2pivot config.json
```
Pour convertir les données au fromat pgRouting (le type de ressource dans config.json doit être `pgr`)
```
r2gg-pivot2pgrouting config.json
```
Pour convertir les données au format osrm (le type de ressource dans config.json doit être `osrm`)
```
r2gg-pivot2osm config.json
r2gg-osm2osrm config.json
```
Pour convertir les données au format valhalla (le type de ressource dans config.json doit être `valhalla`)
```
r2gg-pivot2osm config.json
r2gg-osm2valhalla config.json
```
Enfin, si on souhaite générer la configuration pour Road2, il y a une dernière commande
```
r2gg-road2config config.json
```
## Version
Elle est indiquée dans le `__about__.py`.
## Licence
Route-graph-generator est diffusé sous la licence GPL v3.
## Participer aux développements
Les 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.
Raw data
{
"_id": null,
"home_page": "https://github.com/IGNF/route-graph-generator/",
"name": "r2gg",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": "cli, IGN, osrm, routing, pgrouting, valhalla, generation-algorithms, isochrone, road2",
"author": "IGNF",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/3d/79/05ff44d35d63fb7c4504914741a6df46e9b56b11322a2700c9ee08fa37f4/r2gg-2.2.5.tar.gz",
"platform": null,
"description": "# Route Graph Generator\n\n## Pr\u00e9sentation \n\nRoute Graph Generator (r2gg) est un script Python qui permet la g\u00e9n\u00e9ration de graphes pour des moteurs de calcul d'itin\u00e9raire. Il a \u00e9t\u00e9 d\u00e9velopp\u00e9 pour g\u00e9n\u00e9rer les donn\u00e9es 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\u00e8que r2gg d\u00e9velopp\u00e9e dans ce but. Une documentation plus d\u00e9taill\u00e9e de r2gg est consultable [ici](https://ignf.github.io/route-graph-generator/).\n\n## Pr\u00e9requis\n\nLes pr\u00e9requis au fonctionnement des scripts de g\u00e9n\u00e9ration sont d\u00e9crits 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 \u00eatre install\u00e9es sur la base de donn\u00e9es `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\u00e9es pgRouting, les extensions SQL `postgres_fdw`, `PostGIS` et `pgRouting` doivent \u00eatre install\u00e9es sur la base de donn\u00e9es 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\u00e9dures du projet [pgrouting-procedures](https://github.com/IGNF/pgrouting-procedures) doivent \u00e9galement \u00eatre install\u00e9es sur la base de donn\u00e9es de destination, sur le bon schema\n\n\n## Installation\n\nPour installer les commandes de g\u00e9n\u00e9ration de donn\u00e9es, lancer la commande suivante \u00e0 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\u00e9n\u00e9ration, il faut d\u00e9finir une configuration (au format JSON) par ressource \u00e0 g\u00e9n\u00e9rer. Ce fichier de configuration fait r\u00e9f\u00e9rences \u00e0 d'autres fichiers de configuration : pour la gestion des logs, la gestion des connexions aux bases de donn\u00e9es, et pour le calcul des co\u00fbts.\nDes exemples de tous ces fichiers sont pr\u00e9sents dans le d\u00e9p\u00f4t 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\u00e9cution\n\nLes scripts de g\u00e9n\u00e9ration sont divis\u00e9s en trois processus distincts : l'extraction des donn\u00e9es d'une base de donn\u00e9es vers une base de donn\u00e9es 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 \u00e0 l'aide de commandes diff\u00e9rentes, prenant toutes le m\u00eame fichier de configuration.\n\nPour extraire les donn\u00e9es vers la base pivot\n\n```\nr2gg-sql2pivot config.json\n```\n\nPour convertir les donn\u00e9es au fromat pgRouting (le type de ressource dans config.json doit \u00eatre `pgr`)\n\n```\nr2gg-pivot2pgrouting config.json\n```\n\nPour convertir les donn\u00e9es au format osrm (le type de ressource dans config.json doit \u00eatre `osrm`)\n\n```\nr2gg-pivot2osm config.json\nr2gg-osm2osrm config.json\n```\n\nPour convertir les donn\u00e9es au format valhalla (le type de ressource dans config.json doit \u00eatre `valhalla`)\n\n```\nr2gg-pivot2osm config.json\nr2gg-osm2valhalla config.json\n```\n\nEnfin, si on souhaite g\u00e9n\u00e9rer la configuration pour Road2, il y a une derni\u00e8re commande\n\n```\nr2gg-road2config config.json\n```\n\n## Version\n\nElle est indiqu\u00e9e dans le `__about__.py`.\n\n## Licence\n\nRoute-graph-generator est diffus\u00e9 sous la licence GPL v3.\n\n## Participer aux d\u00e9veloppements \n\nLes participations \u00e0 ce projet sont encourag\u00e9es (votre notre [charte](./CODE_OF_CONDUCT.md) \u00e0 ce sujet). Nous avons mis en place un [guide](./CONTRIBUTING.md) des contributions pour vous accompagner dans cette d\u00e9marche. \n",
"bugtrack_url": null,
"license": null,
"summary": "Route Graph Generator (r2gg) est un script Python qui permet la g\u00e9n\u00e9ration de graphes pour des moteurs de calcul d'itin\u00e9raire",
"version": "2.2.5",
"project_urls": {
"Homepage": "https://github.com/IGNF/route-graph-generator/"
},
"split_keywords": [
"cli",
" ign",
" osrm",
" routing",
" pgrouting",
" valhalla",
" generation-algorithms",
" isochrone",
" road2"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "a854a14acee34af99374012909dff15c2cc9d3c56d82225be666dee35ee76235",
"md5": "98f3c1ad96bfe9da80506c6c829006fe",
"sha256": "1b9e6d46e65bf53200ad6fe8e42ade3f53c45a8b2eb5f118115273264f68dfaf"
},
"downloads": -1,
"filename": "r2gg-2.2.5-py3-none-any.whl",
"has_sig": false,
"md5_digest": "98f3c1ad96bfe9da80506c6c829006fe",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 41474,
"upload_time": "2024-03-22T08:07:45",
"upload_time_iso_8601": "2024-03-22T08:07:45.773328Z",
"url": "https://files.pythonhosted.org/packages/a8/54/a14acee34af99374012909dff15c2cc9d3c56d82225be666dee35ee76235/r2gg-2.2.5-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "3d7905ff44d35d63fb7c4504914741a6df46e9b56b11322a2700c9ee08fa37f4",
"md5": "ccc75593ffce762657f5c7bae93ff806",
"sha256": "99c08246e694819c22b55f45573d0bb4c6191ae88f21d9726dac2ef2da0cb99e"
},
"downloads": -1,
"filename": "r2gg-2.2.5.tar.gz",
"has_sig": false,
"md5_digest": "ccc75593ffce762657f5c7bae93ff806",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 39896,
"upload_time": "2024-03-22T08:07:46",
"upload_time_iso_8601": "2024-03-22T08:07:46.842890Z",
"url": "https://files.pythonhosted.org/packages/3d/79/05ff44d35d63fb7c4504914741a6df46e9b56b11322a2700c9ee08fa37f4/r2gg-2.2.5.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-03-22 08:07:46",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "IGNF",
"github_project": "route-graph-generator",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [],
"lcname": "r2gg"
}