猶他州空氣質量分析:從 EPA 的空氣質量服務站 API 中抓取數據
雷鋒網按:本文為AI研習社編譯的技術博客,原標題 Analyzing Utah』s Air Quality – Connecting to the EPA』s AQS Data API,作者為 Randy Zwitch 。
翻譯 | 京鵬 校對 | 餘杭 整理 | 餘杭
住在山谷里有點像生活在湯碗里,所有重物似乎都集中在碗底。 我想說猶他州的許多山谷被稱為地壘和地塹,雖然我確信一些地質學家可能糾正我的錯誤。無論如何,四面環山意味著空氣污染往往會收集並集中在山谷底。
從伍德蘭丘陵看猶他州
作為一個終身的猶他人,我開始懷疑污染有多嚴重? 新聞記者似乎認為很糟糕。 政界人士卻說這種情況從未如此好過。 有多糟糕呢? 它對房地產價值等因素有何影響? 有多少人受到影響?
這種合作關係將產生一系列博客文章,記錄我們的流程和學習所得。
分析猶他州空氣質量
第一部分:連接到 EPA 的 AQS 數據 API
第二部分:AQS 數據清理和轉化
第三部分:使用 Shapefile 並在 MapD 中分配AQI站點
第四部分:在 MapD 中構建猶他州 AQI 儀錶板
第五部分:最終分析:空氣質量調查結果
讓我們開始吧...
在 EPA.gov 上註冊一個賬號
我們需要從環保局獲取我們的空氣質量數據。數據免費提供,唯一的要求是創建一個賬戶,用於訪問空氣質量數據API。
要創建新帳戶,請訪問https://aqs.epa.gov/signup。您需要提供的唯一信息是電子郵件地址。 在使用您的電子郵件地址提交表單後,您將收到一個密碼。
熟悉 API 參數和數據
收到 API 密碼後,你就可以通過一個基於網頁的查詢表查詢空氣質量數據。
EPA 上基於網頁的空氣質量查詢工具
使用這個基於網頁的查詢工具可以快速熟悉可用的數據類型,用於選擇所需數據的參數以及整體數據輸出格式。
確定分析所需的數據
通過API可以獲得大量的空氣質量數據,當您嘗試使用基於網頁的查詢工具時,您可以開始了解哪種數據集最符合您的興趣。 對於我們的分析,我們使用以下參數:
AQI污染物:該數據集包含用於測量空氣質量指數的所有污染物,您可能更熟悉將其作為污染物指標,例如今天我們的空氣污染是紅色,請拼車出行。
參數代碼:我們沒有提供參數代碼,因為我們想要評估所有與AQI相關的污染物。 但是,如果您只對臭氧感興趣,可以通過傳入「臭氧」參數代碼(44201 - 臭氧)來限制查詢。
州代碼:在這個分析中,我們對猶他州(49 - 猶他州)感興趣。
郡代碼:我們想要檢索猶他州所有郡的空氣質量數據,但是將此參數留空會導致 API 調用失敗,因此我們需要單獨請求每個郡的數據集。 下一步有更多這方面的內容。
從網頁表格遷移到編程 API 調用
一旦您理解了數據並了解了如何構建查詢,就可以從基於網頁的表單轉換為您選擇的編程語言,以便對數據進行檢索,挖掘,清理,傳輸等。 對於此示例,我們將使用Python。
Python 腳本示例
項目路徑結構
讓我們分解這個例子中的操作:
第1步: 導入 Python 庫
pandas:由於數據來自API,我們將使用 Pandas 將數據存儲在 DataFrame 中。 稍後,我們將在操作數據時使用Pandas 的其他功能。
io:我們將使用 io 庫來解碼從API返回的數據。
requests:Requests 庫將用於向 EPA.gov 伺服器發出API請求。
第2步:創建 Pandas Dataframe
我們將創建一個空的 DataFrame 來存儲 API 的響應。
第3步: 導入配置數據
如前所述,我們無法請求整個州的數據,因此我們需要一種有效的方法來按縣逐個請求數據。 為了使代碼更具可伸縮性,我們將使用 county.py 來檢索要處理的郡列表。 雖然我們在這裡只看猶他州,但代碼可以很容易地擴展到處理任何州.
將用於構造 API 調用的基本配置信息包含在名為 config.py 的文件中,此文件作為基本配置文件運行,您要從主項目代碼中抽象出來的任何細節都可以放到裡面。
第4步: 遍歷州的每個郡
現在我們需要遍歷有興趣分析的州的每個郡。
這就是我們定義循環的方式。 使用 county.py 中包含的縣列表,我們將遍歷州的縣列表中的每個縣名(如 config.py 中所定義)。 對我們來說,我們的 config.stateName = utah。
第5步: 構建API調用
......


※2018 AI最佳成長獎頒獎,共同發現人工智慧與機器人領域最具成長性的創新力量
※高精地圖戲台上的眾生相
TAG:雷鋒網 |