Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mborne/graph-experiments
[DEV]Graph processing experiments based on boost::graph and GDAL / OGR to load data.
https://github.com/mborne/graph-experiments
boost-graph cxx dijkstra-shortest-path experiment gdal graph-algorithms isochrones multi-indexing
Last synced: 26 days ago
JSON representation
[DEV]Graph processing experiments based on boost::graph and GDAL / OGR to load data.
- Host: GitHub
- URL: https://github.com/mborne/graph-experiments
- Owner: mborne
- License: mit
- Created: 2020-02-13T13:23:18.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2023-11-19T10:52:22.000Z (about 1 year ago)
- Last Synced: 2024-10-19T00:57:21.174Z (3 months ago)
- Topics: boost-graph, cxx, dijkstra-shortest-path, experiment, gdal, graph-algorithms, isochrones, multi-indexing
- Language: C++
- Homepage:
- Size: 1.08 MB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# graph-experiments
## Description
Graph processing experiments based on **boost::graph** and **GDAL / OGR** to load data.
## Motivation
**This project is not maintained.** It has been created in 2019 to prepare work about tour planning at [IGNF](https://github.com/IGNF).
## Key Features
* [src/egraph/routing/PathTree.h](src/egraph/routing/PathTree.h) is using [Boost Multi-Index](https://www.boost.org/doc/libs/1_63_0/libs/multi_index/doc/index.html) to index `(visited,cost)` to optimize **Dijkstra path finding**.
* [src/egraph/FeatureGraph.h](src/egraph/FeatureGraph.h) is providing a [Boost graph](https://www.boost.org/doc/libs/1_75_0/libs/graph/doc/index.html) where vertex and edges are [OGRFeature](https://gdal.org/doxygen/classOGRFeature.html) from [GDAL](https://gdal.org/doxygen/index.html)## Build
* [CMake - Building on debian or ubuntu](docs/build-debian.md)
* [CMake - Building with docker](docs/build-docker.md)
* [CMake - Building on windows with Microsoft Visual Studio (nmake) and miniconda](docs/build-windows.md)## Examples
* [example/demo-boost.cpp](example/demo-boost.cpp) : Getting started with `boost::graph`
* [example/demo-dijkstra.cpp](example/demo-dijkstra.cpp) : Shortest path computation
* [example/demo-ogr.cpp](example/demo-ogr.cpp) : Load `FeatureGraph` using GDAL/OGR and compute some `ShortestPathTree````bash
example/demo-ogr "PG:dbname=gis" "graph.vertex" "graph.edge"
# or
example/demo-ogr "PG:dbname=gis" "graph.vertex" "graph.edge_distance_weighted"
```![Dijkstra shortest path tree](img/path-tree-1.png)
## Performance debug
```bash
valgrind --tool=callgrind example/demo-ogr 'PG:dbname=gis' 'graph.vertex' 'graph.edge_distance_weighted'
kcachegrind $(ls -tr callgrind.out.* | tail -1)
```## License
[MIT](LICENSE)