Isochron Map Generator
Featuring an example for the region TΓΌbingen, Germany and a Regressor
An ischron map is an elegant tool to visualize how long one would travel starting from an origin to every sorounding destinations. It is helpfull to grasp how travel time changes by means of transportation but can also be used to see how transportation time changes during different times of day. This project features a full pipline to collect the data, visualize the data points, plot the isochronmap and additionally train a regression model for aquired data. In the following and the source code we use this pipeline on the region TΓΌbingen Germany, but one can use this pipeline on any region.
Contents
In order to understand how the pipeline is structured you can simply look at the following jupyter notebooks, which will comment on how to aquire, save, load and plot the data, generate an isochrone map and train the regressor.
.
βββ 01_RegionMapper.ipynb # Collect samples in a region by querying the Google APIs
β
βββ 02_RegionDisplayer.ipynb # Plot samples collected and generate the correspondin isochrone maps
β
βββ 03_DataAggregation.ipynb # Load the data and store it into a pandas csv format
β
βββ 04_RegressionAnalyisis.ipynb # Regress travel times per mean of transport
β
βββ 05_RegressionPlots.ipynb # Plot regression models
The following directories and files provide the code structure and data for the python notebooks aboth. If you want to dive deeper and modify scripts presented in the notebooks or reuse data we already collected you will find them in these directories.
.
βββ docs # Written report
β βββ Data_Literacy_Project.pdf # Report about project results
β
βββ data # Collected datasets
β βββ bicycling.json # TΓΌbingen Bicycling data sampled from Google Directions API
β βββ driving.json # TΓΌbingen Driving data sampled from Google Directions API
β βββ walking.json # TΓΌbingen Walking data sampled from Google Directions API
β βββ elevation.json # TΓΌbingen Elevation data sampled from Google Elevation API
β βββ combined_data.csv # TΓΌbinger Bicycling/Driving/Walking/Elevation data combined
β βββ combined_data_residuals.csv # Combined data updated with model residuals
β
βββ maps # Interactive maps
β βββ bicycling.html # TΓΌbingen sample map for bicycling
β βββ driving.html # TΓΌbingen sample map for driving
β βββ elevation.html # TΓΌbingen sample map for elevation
β βββ walking.html # TΓΌbingen sample map for walking
β
βββ models # Trained regression models
β βββ fit_combi_abs.pickle # Combined model
β βββ fit_horiz.pickle # Horizontal model
β
βββ doc # Created Plots
β βββ bibliography.bib # Citations
β βββ fig # Created Plots
β βββ main.tex # Report for Data Literacy course
β βββ neurips_2021.sty # Styles
β
βββ misc # Miscelenious Objects
β βββ title.png. # Title image for Github
β
βββ src # Source code for data agregation and visualization
βββ RegionElevatioDisplayer # Plot samples and interpolation for elevation
βββ RegionElevationMapper # Queries the Google Elevation API
βββ RegionTimeDistanceDisplayer # Plot samples and isochrone map for transportation types
βββ RegionTimeDistanceMapper # Queries the Google Direction API
Misc
This project was part of the Data Literacy lecture WS 21/22 held by Prof. Hennig. It includes parts of the lecture in a practical fashion, such as data collection, data processing, data visualisation, data intpretation, data estimation and hypothesis testing. Big thanks to Nicholas KrΓ€mer for creating the Tueplots libary, which helps to find better matplotlib settings. We got inspired to conduct this project by the reddit post [OC] Minimum travel time from Paris by train & bike and comparison to car. Feel free to fork, this is a non commercial students project.