Uber-Based Citibike Circulating System

This demo was written by the team Winux (Memeber: C. Cheong, L.(Jeremy) Xie, S. Wang) for the McGill University CodeJam:DataDive. Winux participated in the Transportation category of the competition, given enormous amount of datasets of New York, NY covering over four major means of transportation, Winus's main idea was to freely transport the citi bikes by using Uber drivers' off-duty time, as they will be reimbursed later on for helping Citibike reduce the managing costs and increase the revenue. The reason Winus came up with this idea was due to the lacking of available bikes at certain subway station during peak hours. There are two general options for Uber drivers to transport the citi bikes, the first one is they will transport the bikes exclusively for the sake of reimbursements and the other one is they will help transport free bikes from their initial coordinates and will unload these bikes at busy stations since they will be heading there for passengers anyway. Due to the narrow space of time, Winux unfortunately could not fully actualize the program. The intuition of each class was listed below:

Data Analysis

These datasets are analized mainly by 4 tools: WEKA, GoogleMap AzureML and Sklearn. First we used WEKA to visualize the data and GoogleMap to plot the points on the map. Then we applied different methods to preprocess raw data. With the help of AzureML and Sklearn, machine learning methods are also implemented on these data to predict the trend of the future. The idea of this project is came out after we discovered the potential demand of faster circulation of shared CitiBike.

In order to understand the demand of bike transfer, we first show by ploting the most busy subway stations at 12:00 am on 1 April 2014, URL State Diagram

and the most busy bike stations during same time slots,it is clearly showed that their locations overlap a lot which provide the protential chance for bike transfer by using free time of uber taxi. URL State Diagram

Project Organization

### People class: People class was written to imitate passengers' sources' location and destination location by using their coordinates. ### Car class: Car class was created in order to acquire vehicles' most reccent coordinates and their status of duties. Once they are off-duty, system will navigate them to the required destination either picking up bikes or passengers. ### Building class: Building class was written to imitate the amount of passengers' exiting buildings in the given area. ### BikeStation class: BikeStation class was written to imitate the amount of bikes at each station. There are several attributes designed in order to better actualize the class and make it as close to the real life as possible. ### Map class: Map class was written to store a fraction of the city map. ### Block class: Block class is an abstract class which simulates a small regions of the given area. ### MetroStation class: MetroStation class was written to simulate the real-world subway station and help to monitor the amount of incoming and outcoming passengers. ### Navigator class: Navigator class was used to plot a path for the driver from one location to another. ### Rescaler class: Rescalr class was used to minimize the map proportionally.


The relationship between the classes are showed in the URL class diagram. URL State Diagram


Creative Commons License

This project applies the Creative Commons Attribution-NonCommercial-NoCommercial 4.0 International License.
Any kind of commercial usage is prohibited.

Copyright C. Cheong, L. Xie, S. Wang.

Share this project: