Projects

CitiBike Network Analysis

Fall 2021
Intro to Urban Data Informatics
Columbia GSAPP
Prof. Boyeong Hong

Summer ridership is 19x winter - and the network rewires itself with the seasons. Mapping 204K Citi Bike trips across Jersey City and Hoboken using Python, NetworkX, and Plotly.

Scroll

The Question

Method
NetworkX DiGraph
Plotly scatter plots
Seasonal comparison

204K trips sampled
4 months of 2021 data

New York's continental climate receives four distinct seasons. This study observes the relationship between Citi Bike ridership and the frequency of use at different stations to answer the question: is there a significant difference in the ridership of Citi Bikes over the seasons?

Data was sampled from four representative months - February, May, August, and November - corresponding to each season. Rather than comparing absolute volume between months, the analysis focuses on relative activity at docking stations and inter-station connectivity within each month's time frame.

Approach

Building the Network
Network
56–111 active stations
Geographic node layout
Directed edges by trip count

Each month was modeled as a directed graph using NetworkX, where stations are nodes positioned by their real latitude and longitude. Trips between station pairs become directed edges, weighted by trip count. The graph layout mirrors actual geography - you can see the shape of the Hudson waterfront in the network itself.

Using Plotly interactive scatter plots for each month and basic data-munging, we observe which stations gain or lose prominence across seasons. Overlaying connection lines on the scatter plots reveals how inter-station connectivity shifts.

Tools & Libraries

Python, pandas, NumPy, NetworkX, Plotly, Folium, geopandas, shapely, scikit-learn, Matplotlib, Seaborn

Seasonal Networks

Watch the network breathe: dot size is trips touching each station that month
Every station that saw a trip in 2021's four sampled months. February runs 56 stations on the commuter spine; by August the network is 111 stations deep into the neighborhoods. Click a dot for its monthly count.
CitiBike network graph - February (winter)
WINTER
February - 4,881 trips. The network contracts to core commuter corridors.
CitiBike network graph - May (spring)
SPRING
May - spring ramp-up. Peripheral stations reactivate as ridership climbs.
CitiBike network graph - August (summer)
SUMMER · PEAK
August - 93,800 trips across 111 active stations, twice February's footprint.
CitiBike network graph - November (fall)
FALL
November - fall decline. Recreational trips drop first, commuter routes persist.

Findings

Trips in the four sampled months of 2021. August runs 19x February - the seasonal swing the network maps above only hint at.
  • Summer ridership is ~19x winter. 93,800 trips in August vs 4,881 in February. The system effectively hibernates in winter.
  • The active network expands geographically. From 56 active stations in February to 111 in August - the active footprint nearly doubles in the warm months.
  • People take longer rides in summer and fall. Shorter, utilitarian rides in winter and spring give way to longer recreational trips when the weather allows.
  • Hub stations maintain centrality year-round. Newport PATH (5,063 trips in August), 11 St & Washington St, and 14 St Ferry anchor the network regardless of season.
This project began as coursework for Introduction to Urban Informatics at Columbia GSAPP (Fall 2021, Professor Boyeong Hong). The interactive Plotly visualizations and full write-up live in the original article on Medium. Browse the notebooks and data on GitHub.