0
本文作者: AI研習社-譯站 | 2018-08-13 15:34 |
雷鋒網(wǎng)按:本文為AI研習社編譯的技術博客,原標題 Analyzing Utah’s Air Quality – Connecting to the EPA’s AQS Data API,作者為 Randy Zwitch 。
翻譯 | 京鵬 校對 | 余杭 整理 | 余杭
住在山谷里有點像生活在湯碗里,所有重物似乎都集中在碗底。 我想說猶他州的許多山谷被稱為地壘和地塹,雖然我確信一些地質(zhì)學家可能糾正我的錯誤。無論如何,四面環(huán)山意味著空氣污染往往會收集并集中在山谷底。
從伍德蘭丘陵看猶他州
作為一個終身的猶他人,我開始懷疑污染有多嚴重? 新聞記者似乎認為很糟糕。 政界人士卻說這種情況從未如此好過。 有多糟糕呢? 它對房地產(chǎn)價值等因素有何影響? 有多少人受到影響?
為了幫助回答其中一些問題,我們與 MapD 的高級開發(fā)人員倡導者 Randy Zwitch 合作。 通過這種合作,我們希望可以更好地了解猶他州的空氣質(zhì)量及其影響,并且隨著我們的學習,我們將與您分享我們的流程。
這種合作關系將產(chǎn)生一系列博客文章,記錄我們的流程和學習所得。
分析猶他州空氣質(zhì)量
第一部分: 連接到 EPA 的 AQS 數(shù)據(jù) API
第二部分:AQS 數(shù)據(jù)清理和轉(zhuǎn)化
第三部分:使用 Shapefile 并在 MapD 中分配AQI站點
第四部分:在 MapD 中構建猶他州 AQI 儀表板
第五部分:最終分析:空氣質(zhì)量調(diào)查結果
讓我們開始吧...
在 EPA.gov 上注冊一個賬號
我們需要從環(huán)保局獲取我們的空氣質(zhì)量數(shù)據(jù)。數(shù)據(jù)免費提供,唯一的要求是創(chuàng)建一個賬戶,用于訪問空氣質(zhì)量數(shù)據(jù)API。
要創(chuàng)建新帳戶,請訪問 https://aqs.epa.gov/signup 。您需要提供的唯一信息是電子郵件地址。 在使用您的電子郵件地址提交表單后,您將收到一個密碼。
熟悉 API 參數(shù)和數(shù)據(jù)
收到 API 密碼后,你就可以通過一個基于網(wǎng)頁的查詢表查詢空氣質(zhì)量數(shù)據(jù)。
EPA 上基于網(wǎng)頁的空氣質(zhì)量查詢工具
使用這個基于網(wǎng)頁的查詢工具可以快速熟悉可用的數(shù)據(jù)類型,用于選擇所需數(shù)據(jù)的參數(shù)以及整體數(shù)據(jù)輸出格式。
確定分析所需的數(shù)據(jù)
通過API可以獲得大量的空氣質(zhì)量數(shù)據(jù),當您嘗試使用基于網(wǎng)頁的查詢工具時,您可以開始了解哪種數(shù)據(jù)集最符合您的興趣。 對于我們的分析,我們使用以下參數(shù):
AQI污染物:該數(shù)據(jù)集包含用于測量空氣質(zhì)量指數(shù)的所有污染物,您可能更熟悉將其作為污染物指標,例如今天我們的空氣污染是紅色,請拼車出行。
參數(shù)代碼:我們沒有提供參數(shù)代碼,因為我們想要評估所有與AQI相關的污染物。 但是,如果您只對臭氧感興趣,可以通過傳入“臭氧”參數(shù)代碼(44201 - 臭氧)來限制查詢。
州代碼:在這個分析中,我們對猶他州(49 - 猶他州)感興趣。
郡代碼:我們想要檢索猶他州所有郡的空氣質(zhì)量數(shù)據(jù),但是將此參數(shù)留空會導致 API 調(diào)用失敗,因此我們需要單獨請求每個郡的數(shù)據(jù)集。 下一步有更多這方面的內(nèi)容。
從網(wǎng)頁表格遷移到編程 API 調(diào)用
一旦您理解了數(shù)據(jù)并了解了如何構建查詢,就可以從基于網(wǎng)頁的表單轉(zhuǎn)換為您選擇的編程語言,以便對數(shù)據(jù)進行檢索,挖掘,清理,傳輸?shù)取?對于此示例,我們將使用Python。
有關如何與API交互的詳細文檔,請參閱:https://aqs.epa.gov/aqsweb/documents/ramltohtml.html
Python 腳本示例
項目路徑結構
讓我們分解這個例子中的操作:
第1步: 導入 Python 庫
pandas:由于數(shù)據(jù)來自API,我們將使用 Pandas 將數(shù)據(jù)存儲在 DataFrame 中。 稍后,我們將在操作數(shù)據(jù)時使用Pandas 的其他功能。
io:我們將使用 io 庫來解碼從API返回的數(shù)據(jù)。
requests:Requests 庫將用于向 EPA.gov 服務器發(fā)出API請求。
第2步:創(chuàng)建 Pandas Dataframe
我們將創(chuàng)建一個空的 DataFrame 來存儲 API 的響應。
第3步: 導入配置數(shù)據(jù)
如前所述,我們無法請求整個州的數(shù)據(jù),因此我們需要一種有效的方法來按縣逐個請求數(shù)據(jù)。 為了使代碼更具可伸縮性,我們將使用 county.py 來檢索要處理的郡列表。 雖然我們在這里只看猶他州,但代碼可以很容易地擴展到處理任何州.
將用于構造 API 調(diào)用的基本配置信息包含在名為 config.py 的文件中,此文件作為基本配置文件運行,您要從主項目代碼中抽象出來的任何細節(jié)都可以放到里面。
第4步: 遍歷州的每個郡
現(xiàn)在我們需要遍歷有興趣分析的州的每個郡。
這就是我們定義循環(huán)的方式。 使用 county.py 中包含的縣列表,我們將遍歷州的縣列表中的每個縣名(如 config.py 中所定義)。 對我們來說,我們的 config.stateName = utah。
第5步: 構建API調(diào)用
......
想要繼續(xù)閱讀,請移步至我們的AI研習社社區(qū):https://club.leiphone.com/page/TextTranslation/771
更多精彩內(nèi)容盡在 AI 研習社。
不同領域包括計算機視覺,語音語義,區(qū)塊鏈,自動駕駛,數(shù)據(jù)挖掘,智能控制,編程語言等每日更新。
雷鋒網(wǎng)雷鋒網(wǎng)
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。