--- title: "Ford Go Bike API" output: html_notebook: default pdf_document: default word_document: default --- [General Bikeshare Feed Specification (GBFS)](https://github.com/NABSA/gbfs/blob/master/gbfs.md) R Package that connects to the GBFS API [R gbfs](https://github.com/ds-civic-data/gbfs) North American Bike Share Association [NBSA](https://github.com/NABSA) [system.csv](https://github.com/NABSA/gbfs/blob/master/systems.csv) ```{r, eval=FALSE} library(devtools) install_github("ds-civic-data/gbfs") ``` ```{r message=FALSE} library(gbfs) library(tidyverse) library(ggmap) library(kableExtra) ``` ```{r} withr::with_dir(tempdir(), get_gbfs(city = "https://gbfs.fordgobike.com/gbfs/gbfs.json", feeds = "all", directory = "pdx_gbfs")) withr::with_dir(tempdir(), list.files("pdx_gbfs")) ``` ```{r} station_information <- withr::with_dir(tempdir(), readRDS("pdx_gbfs/station_information.rds")) head(station_information) station_information %>% ggplot(aes(x=lon, y=lat, color=region_id)) + geom_point() bayarea <- get_map(location = "hayward") ggmap(bayarea) + geom_point(data = station_information, aes(x = lon, y = lat, color = region_id, alpha = 0.1), size = 2, shape = 19) # 21 ``` ```{r} system_regions <- withr::with_dir(tempdir(), readRDS("pdx_gbfs/system_regions.rds")) system_regions %>% head() %>% kable(format = "rst") ``` East Bay ```{r} station_information <- withr::with_dir(tempdir(), readRDS("pdx_gbfs/station_information.rds")) head(station_information) eastbay.stations <- station_information %>% filter( region_id == "12" | region_id == "13" | region_id == "14") head(eastbay.stations) eastbay.stations %>% ggplot(aes(x=lon, y=lat, color=region_id)) + geom_point() + scale_colour_gradient(low = "orange", high = "blue") bayarea <- get_map(location = c(lon=-122.2711, lat=37.8044), zoom = 12, maptype = "roadmap") ggmap(bayarea) ggmap(bayarea) + geom_point(data = eastbay.stations, aes(x = lon, y = lat, color = region_id, alpha = 0.1), size = 2, shape = 19) + scale_colour_gradient(low = "orange", high = "blue") ``` Oakland ```{r} head(station_information) glimpse(station_information) oakland.stations <- station_information %>% filter( region_id == "12") head(oakland.stations) oakland.stations %>% ggplot(aes(x=lon, y=lat, color=region_id)) + geom_point() + scale_colour_gradient(low = "orange", high = "blue") bayarea <- get_map(location = c(lon=-122.2711, lat=37.8044), zoom = 12, maptype = "roadmap") ggmap(bayarea) ggmap(bayarea) + geom_point(data = oakland.stations, aes(x = lon, y = lat, color = region_id, alpha = 0.1), size = 2, shape = 19) + theme(axis.title.x=element_blank(), axis.text.x=element_blank(), axis.ticks.x=element_blank(), axis.title.y=element_blank(), axis.text.y=element_blank(), axis.ticks.y=element_blank(), legend.position="none") ``` Near real time data ```{r} station_status <- withr::with_dir(tempdir(), readRDS("pdx_gbfs/station_status.rds")) head(station_status) #tail(station_status) #dim(station_status) #head(oakland.stations) #dim(oakland.stations) station_status %>% count(station_id) oakland.status <- oakland.stations %>% left_join(station_status, by = "station_id" ) #head(oakland.status) #tail(oakland.status) #dim(oakland.status) oakland.status %>% summarise(n=n(),mean=mean(num_bikes_available),min=min(num_bikes_available),max=max(num_bikes_available)) %>% kable(format = "rst") oakland.status %>% group_by(name) %>% summarise(n=n(),mean=mean(num_bikes_available),min=min(num_bikes_available),max=max(num_bikes_available)) %>% kable(format = "rst") ``` ```{r} system_alerts <- withr::with_dir(tempdir(), readRDS("pdx_gbfs/system_alerts.rds")) system_alerts %>% unlist() %>% head() ``` ```{r} system_information <- withr::with_dir(tempdir(), readRDS("pdx_gbfs/system_information.rds")) system_information %>% head() ``` ```{r} system_regions <- withr::with_dir(tempdir(), readRDS("pdx_gbfs/system_regions.rds")) system_regions %>% head() %>% kable(format = "rst") ```