velibdataset/README.md

73 lines
2.4 KiB
Markdown
Raw Permalink Normal View History

2015-09-26 00:04:41 +02:00
VelibDataSet
============
2017-08-28 18:03:36 +02:00
This code can be used to dump periodically all the available data from the
2018-01-15 14:02:39 +01:00
Velib API, the bike sharing system in Paris.
It is basically a wrapper around [pybikes](https://github.com/eskerda/pybikes)
to dump values periodically in a SQLite database.
2015-09-26 00:04:41 +02:00
## Usage
* Clone this repo.
2018-01-15 14:02:39 +01:00
* Install [pybikes](https://github.com/eskerda/pybikes).
* Run `python2 velib.py`.
_Note:_ For now, `pybikes` is only Python2 compatible.
2015-09-26 00:04:41 +02:00
2017-08-31 15:03:19 +02:00
## Dumped data
2018-01-15 14:02:39 +01:00
**Important:** For the latest information about the dump available at
https://pub.phyks.me/datasets/velib/, please refer to
https://pub.phyks.me/datasets/velib/README.txt.
2017-08-31 15:03:19 +02:00
This script is used to dump the returned data from the Velib API every few
minutes. Dumps are available at https://pub.phyks.me/datasets/velib/.
The script writes in a new SQLite file every week, put in a different folder
by year, and labelled with the week number.
Each SQLite file has three tables:
* A `stations` table, containing "permanent" information about each station
(latitude, longitude, number of stands etc).
* A `stationsstats` table which contains the available number of bikes and
stands at each time, for each station. Not that these data are directly
dumped from the API, hence `updated` field is coming from the API and is a
timestamp in milliseconds.
* A `stationsevents` table keeps tracks of modifications of fields in the
`stations` table. For instance when a mobile station changes position,
`latitude` and `longitude` are updated, or when a station gains new
`stands`, this table keeps track of the changes.
You should have a look at the `init_db` function (or run `.schema` in the
resulting SQLite database) to have more details about the structure of these
tables, it should be rather self-explicit.
_Note_: There are currently no ways to explicitly list stations addition /
removal. As the API response always contains the data for all the available
stations, you can find when a station was created (removed) by looking at the
first (last) time a line was added in `stationsstats` table for this station.
## Visualization
The visualization script generates sequences of PNG images from your database
dump. You can then concatenate them in a `x264` movie using `ffmpeg` (or
`avconv`, should be the same command):
```
cat *.png | ffmpeg -f image2pipe -framerate 10 -i - output.mp4
```
2015-09-26 00:04:41 +02:00
## Links
2018-01-15 14:02:39 +01:00
* Velib website: http://velib-metropole.fr/
2017-08-28 18:03:36 +02:00
## License
Code is released under MIT license.