Skip to content

Commit

Permalink
Update readme
Browse files Browse the repository at this point in the history
  • Loading branch information
Nuckal777 committed Mar 13, 2024
1 parent 079384d commit b7d021b
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 2 deletions.
45 changes: 43 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,45 @@
# Fastreach

Lightweight implementation for isochrone-based reachability of public transportation networks served over an API.
Efficiency is achieved by memory-mapping a custom pre-processed binary representation of the transportation network.
![Build Status](https://img.shields.io/github/actions/workflow/status/Nuckal777/netex-parse/test.yaml?branch=master)

Fastreach is a lightweight implementation of isochrone-based reachability for public transportation networks.
It's designed to provide quick estimations of reachable area, while prioritizing efficiency over pinpoint accuracy.

![Screenshot](docs/screenshot.jpg)

## Motivation
Isochrones are valuable tools for visualizing and understanding transportation networks and travel times.
They are essentially lines on a map that connect points that can be reached within a specific time frame from a given starting point.
Isochrones are particularly useful for assessing the locations that can be reached within a certain duration.
Individuals can determine which places (offices, sights, shopping centers, etc.) are reachable from their home within a particular time frame.
This helps planning daily activities and commuting.

Additionally, combining multiple isochrones can identify strong and weak nodes of a transportation network.
Identifying strong and weak nodes is useful for optimizing transportation networks and improving accessibility.

## Usage
The API can be started by running:
```sh
cargo run --bin fastreach-api --release
```
in the root directory of the project.
The API expects a `graph.bin` file generated with [netex-parse](https://github.com/Nuckal777/netex-parse) binary output in its working directory.
This can be changed by setting the `FASTREACH_GRAPH` environment variable to a desired path.
The maximum allowed isochrone duration is set to 120 minutes and can be overwritten by setting the `FASTREACH_MAX_MINUTES` environment variable.

The UI can be started by running:
```sh
npm install
npm run dev
```
within the fastreach-ui folder.
The `nodes.json` file generated by [netex-parse](https://github.com/Nuckal777/netex-parse) should be placed in the same folder.
Additionally, a `docker-compose.yaml` is available.

## How it works
Fastreach models the transportation network as a graph.
Nodes represent stations, edges vehicles with or without timetables.
Given a duration reachable stations are determined with dijsktra's algorithm.
For each reached station an approximate circle based on the remaining time and walking speed is created.
These are finally merged to retrieve the reachable area.
Efficency is achieved by memory-mapping a custom pre-processed binary representation of the transportation network.
Binary file added docs/screenshot.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit b7d021b

Please sign in to comment.