Giter Site home page Giter Site logo

t0nyx1ang / capital-bikeshare-project Goto Github PK

View Code? Open in Web Editor NEW
1.0 2.0 0.0 804 KB

This is a repository for our university training project

License: GNU General Public License v3.0

C++ 35.67% Gnuplot 15.66% Shell 1.38% MATLAB 24.25% Python 23.02%

capital-bikeshare-project's Introduction

Capital-Bikeshare-Project

This is a repository for our university training project.

Here are the main features we offer.

Basics:

create_directory

Create directories needed.

entry-counter

Simply counts data entries in a file. Deprecated soon.

season-fitting

Fitting total entries based on season. You need to have MatLab to use it.

CSV-reader

A simple reader for CSV-format data. In this project, a time praser is implemented to convert common time format(MM/DD/YYYY HH:MM) to computer recognizable format(365 days, 1440 minutes array). Then a summary dataset is created.

The usage is:

  g++ csv-reader.cpp -o csv-reader
  (chmod +x csv-reader)
  ./csv-reader

It will generate all 'Gnuplot' files needed.

Generic Plot

Data visualization module to show the data more friendly. We make it automatically by a bash shell.

  chmod +x plotting.sh
  ./plotting.sh

Weather Crawler

Basic Version:

Pro Version:

  • Well formated data by Wunderground.
  • Richer dataset, boarder classfication.

It will generate PNG files.

Map Parser

Creating a mapping between dock no. and geographical coordinates.

The usage is:

  python3 MapParser.py

Weather Regression Tool

Stepwise regression yearly:

Doing stepwise regression from 2011-2016's weather data. Possible data modifications are:

  • Linear process
  • Quadartic process
  • Cubic process
  • Exponential process
  • Logarithm process
  • Fractional process

Full regression:

Select nesserary data in stepwise process. Combine all the data together and verify the model using 2017's data.

Traffic Flux Visualization

This tool contains two parts with different programming languages(C++ / Matlab).

data_slicer

To seperate exactly ONE day in the dataset. No need to call it.

flux_visualization

Firstly, the code will run system calls to data_slicer:

  g++ ./data_slicer.cpp -o ./data_slicer
  ./data_slicer [year] [month] [day]

Then, it will read the need files and generate a real-time flux graph.

Finally, it will generate a statistics matrix showing the place with more than 10 bikes on ride per minute.

Efficiency

  • About 1.8s to process about 3000000 data entries on a Linux distro.
  • About 13s to process about 20000000 data entries on a Linux distro.

Notices:

  • Linux is needed.(untested on Windows or WSL)
  • Open source data can be fetched on Capital Bikeshare's website.
  • Python requirements: BeautifulSoup, requests, (time, csv, json).
  • C++ requirements: g++ version more than 6.0 is recommended.
  • MatLab requirements: Latest version is recommended. "+" overrided for string concatenation is needed.
  • Gnuplot requirements: version more than 5.0 is needed.

capital-bikeshare-project's People

Contributors

t0nyx1ang avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.