AS02 Youbike Applications#
請你在ChatGPT、Claude、Colab的AI工具協助下,完成以下任務,並將此ipynb(或py)與任務結果所產製的地圖(html或png)上傳至NTU COOL作業區。
在做這個作業時,有可能無法用Colab完成(實際上可以)。另一種方式是ChatGPT或Claude給了你整個.py的程式碼,而你需要在VS Code中執行,請嘗試安裝VS Code並執行看看,安裝不成務必問人看看,台大有蠻多人會寫Python的,多問人也是一種學習寫程式的好方法。
實際上不知道你跟GAI互動後會產製出什麼樣的成果,但務必要上傳一個主要的程式碼(.py or .ipynb)和一個你產製的地圖檔(.html or .jpg or .png)。如果你無法完成這樣的過程,你可以附上colab link作為給分參考、或跟ChatGPT對話過程(Link)作為參考。就努力過總之會留下痕跡的。
GET Youbike realtime data#
# import requests library to send web query
import requests
# import json library to parse json format
import json
response = requests.get('https://tcgbusfs.blob.core.windows.net/dotapp/youbike/v2/youbike_immediate.json')
print(type(response)) # <class 'requests.models.Response'>
data = response.json()
print(type(data))
for station in data:
print(station['sna'], "\t", station['available_rent_bikes'], "\\", station['total'])
<class 'requests.models.Response'>
<class 'list'>
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
Input In [1], in <cell line: 12>()
10 print(type(data))
12 for station in data:
---> 13 print(station['sna'], "\t", station['available_rent_bikes'], "\\", station['total'])
KeyError: 'total'
Q1. 請將該筆資料下載為.json檔並儲存。#
# Your code here
Q2. 計算出台北市Youbike站點的數量。#
# Your code here
Q3. 滿載率#
請根據每個站台的車格與上面的腳踏車數量,計算出每個站台的腳踏車滿載率,並逐一列印出來。
建議區分為90%以上、10%以下、10%~90%三個區間。
範例輸出:
站台A,車格30,腳踏車數量10,滿載率為 33.33%。 站台B,車格30,腳踏車數量30,滿載率為 100%。 ...
# Your code here
Q4. 總滿載率#
累計出全台北市現有車格數和在位腳踏車數量,並藉此計算一個總滿載率。
範例輸出:
總車格數為 1000,總在位腳踏車數量為 800,總滿載率為 80%。
# CODE HERE
Q5. 滿載地圖繪製#
根據所有站台的經緯度繪製地圖並標記每個站台的滿載率,站台節點顏色為可分黑(90%以上)、紅(10%以下)、綠(其他),並將該地圖儲存為一個html檔。
請將該html檔上傳至NTU COOL作業區。
如果你問GAI後執行的結果為圖檔(如png),請將該圖檔上傳至NTU COOL作業區。
# CODE HERE
#
Q6. Optional. 總滿載率變化#
要如何觀察一天24小時內的總滿載率變化?請在Generative AI的協助下,完成一個總滿載率變化的圖表,橫軸為時間,縱軸為滿載率。並直接將該圖表列印在本ipynb中。
# CODE HERE