日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
用Python監(jiān)控并分析城市空氣質(zhì)量

同為發(fā)展中國(guó)家,印度也受到空氣質(zhì)量問(wèn)題的困擾,本文就以印度的城市為例進(jìn)行數(shù)據(jù)分析。利用簡(jiǎn)單的Python代碼,分析城市空氣質(zhì)量及其每天在全國(guó)范圍內(nèi)(即印度水平)的排名。

在開(kāi)始之前,先介紹一下整個(gè)分析過(guò)程中使用的一些基本原理。印度政府中央污染控制委員會(huì)(CPCB)是該國(guó)環(huán)境空氣質(zhì)量監(jiān)測(cè)的監(jiān)管機(jī)構(gòu),每天為那些設(shè)有連續(xù)環(huán)境空氣質(zhì)量監(jiān)測(cè)站的印度城市發(fā)布空氣質(zhì)量相關(guān)信息公告。該公告包含有特定城市的空氣質(zhì)量指數(shù)(AQI)、空氣質(zhì)量類(lèi)別、標(biāo)準(zhǔn)污染物以及該城市運(yùn)行的監(jiān)測(cè)站數(shù)量相關(guān)的信息。本文正是通過(guò)分析這個(gè)空氣質(zhì)量指數(shù)(AQI)來(lái)對(duì)城市進(jìn)行排名。

如下所示是對(duì)于公告中一些術(shù)語(yǔ)的解釋?zhuān)?/p>

  • a)空氣質(zhì)量指數(shù)(AQI):空氣質(zhì)量指數(shù)是一個(gè)表示空氣質(zhì)量狀況的無(wú)量綱數(shù)字。
  • b)空氣質(zhì)量類(lèi)別或等級(jí):根據(jù)空氣質(zhì)量指數(shù),空氣質(zhì)量情況被分為6個(gè)類(lèi)別,即“優(yōu)秀”、“良好”、“中等”、“差”、“非常差”和“嚴(yán)重”。隨著空氣質(zhì)量的下降,該類(lèi)別從“優(yōu)秀”到“嚴(yán)重”,表明有可能對(duì)健康產(chǎn)生不利影響。
  • c)標(biāo)準(zhǔn)污染物:尺寸為2.5和10微米的顆粒物、二氧化氮(NO2)、二氧化硫(SO2)、一氧化碳(CO)、臭氧(O3)、氨(NH3)和鉛(Pb)是空氣質(zhì)量指數(shù)計(jì)算中涉及的具有潛在不利健康影響的主要標(biāo)準(zhǔn)污染物。在計(jì)算單個(gè)污染物的空氣質(zhì)量指數(shù)值時(shí),應(yīng)將空氣質(zhì)量指數(shù)最高的污染物宣布為該市的空氣質(zhì)量指數(shù),并將相應(yīng)的污染物宣布為標(biāo)準(zhǔn)污染物。
  • d)監(jiān)測(cè)站:表示該城市在特定日期內(nèi)運(yùn)行的空氣質(zhì)量監(jiān)測(cè)站的總數(shù)。這些監(jiān)測(cè)站監(jiān)測(cè)的污染物濃度(即標(biāo)準(zhǔn)污染物)用于評(píng)估任何城市的空氣質(zhì)量指數(shù)。

進(jìn)行此分析有何好處?

官員們從AQI公告中實(shí)際匯編了感興趣的城市信息。隨著所關(guān)注的城市的增加,這項(xiàng)工作變得更加困難,必須在下午6點(diǎn)前報(bào)告上級(jí),而公告在每天4點(diǎn)后才發(fā)布,這可能會(huì)導(dǎo)致無(wú)意的人為錯(cuò)誤。由于這些原因開(kāi)發(fā)了這套Python代碼。這種分析的好處包括減少人工分析的人力,可靠的結(jié)果減少了人為的錯(cuò)誤,提高了公眾的知識(shí)水平,提高了政策制定者做出明智選擇的能力,包括監(jiān)測(cè)當(dāng)?shù)乜諝赓|(zhì)量管理的結(jié)果等。

現(xiàn)在開(kāi)始編碼:

第1步:導(dǎo)入庫(kù)

導(dǎo)入庫(kù)numpy、requests、pandas、sys和tabula。requests?庫(kù)是為了從出版商的頁(yè)面上采集AQI公告。然后tabula?庫(kù)將PDF格式的公告讀到數(shù)據(jù)框中。pandas和numpy用作數(shù)據(jù)分析和科學(xué)計(jì)算。

## 導(dǎo)入庫(kù)
import pandas as pd
import requests
from tabula import read_pdf
import numpy as np
import sys

第2步:用戶(hù)定義的輸入

a)感興趣的日期(YYYYMMDD格式);

b)下載PDF格式的AQI公告文件的路徑;

c)特定城市/感興趣的城市名單(可選)。

最終分析提供了每日AQI公告中提到的所有城市的排名。然而,在提取特定城市/感興趣的城市的排名的情況下,可以在c)中提供這些城市的名單。確保與c)中提供的城市相關(guān)的信息必須出現(xiàn)于AQI公報(bào)中。

## 用戶(hù)輸入
date = input('a) Enter the date of interest (on or after 29th January 2018) in the format YYYYMMDD: ') ##20180129 onwards
pathway = input('b) Define the Pathway address to download the bulletin: ') ##example C:/Users/USER/Downloads
list_of_cities = input('c) Enter the list of cities separated by commas and no space: ') ##Example Mumbai,Bangalore,Kolkata. Disclaimer: Make sure the cities mentioned are present in the Bulletin list

警告:請(qǐng)確保調(diào)用的意向日期是在2018年1月29日或之后。

## 日期調(diào)用檢查
if date<'20180129':
sys.exit('Call the dates on or after 29th January 2018 and re-run the codes')

檢查完成后繼續(xù)進(jìn)行后續(xù)步驟。

第3步:下載AQI公告

使用request?庫(kù)下載AQI公告。使用tabula庫(kù)以數(shù)據(jù)幀格式讀取下載的pdf文件。如果在用戶(hù)定義的日期內(nèi)無(wú)法獲得AQI公報(bào),運(yùn)行將被終止。

## 下載公告
k = requests.get('https://cpcb.nic.in//upload/Downloads/AQI_Bulletin_'+str(date)+'.pdf')

if k.status_code==404:
sys.exit('No Bulletin exists for the mentioned date. Please try different date')

with open(pathway+'/AQI_Bulletin_'+str(date)+'.pdf','wb') as f:
f.write(k.content)

## 以數(shù)據(jù)幀格式讀取pdf
pathway = pathway+'/AQI_Bulletin_'+str(date)+'.pdf'
file = read_pdf(pathway,pages='all')

第4步:基本數(shù)據(jù)清理

在這里,刪除重復(fù)的和不適用的數(shù)據(jù),重新設(shè)置列名,并按AQI的降序?qū)?shù)據(jù)框進(jìn)行排序。包含AQI值的數(shù)據(jù)框列被命名為“索引”。

## 刪除重復(fù)的內(nèi)容
new_file = pd.DataFrame()
for i in range (0, len(file)):
if i%2==0:
extract_file = file[i]
new_file = pd.concat([new_file,extract_file], axis=0)

## 提取列名
k= new_file.loc[0, ]
k.reset_index(inplace=True)
column_names = k.loc[1, ]
column_names = column_names[1: ]

## 重置列
new_file.columns = column_names

##從`new_file`中刪除`NA`
new_file.dropna(inplace=True)

## 按AQI的降序?qū)?shù)據(jù)幀進(jìn)行排序
final_file = new_file.loc[(new_file['City']!='City'), ]
final_file['Index Value']= final_file['Index Value'].astype(int)
final_file.sort_values(by='Index Value',ascending=False, inplace=True)
final_file.reset_index(inplace=True)
final_file.drop(columns=['S.No', 'index'], inplace=True)

第5步:根據(jù)空氣質(zhì)量指數(shù)對(duì)城市進(jìn)行排名

當(dāng)天擁有最高AQI值的城市獲得最高排名。輸出final_file包括根據(jù)AQI值在AQI公告中指定的城市的排名。2個(gè)或更多具有相同AQI值的城市被提供相同的排名。

## 基于AQI的城市排名
final_file['ranking'] = np.arange(1, len(final_file)+1)

for i in range(0,len(final_file)-1):
if final_file.loc[i,'Index Value']== final_file.loc[(i+1), 'Index Value']:
final_file.loc[(i+1), 'ranking']= final_file.loc[i, 'ranking']
for k in range(i+2,len(final_file)):
final_file.loc[k, 'ranking'] = final_file.loc[k, 'ranking']-1

第6步:對(duì)用戶(hù)定義的城市進(jìn)行排名并生成單獨(dú)的數(shù)據(jù)幀

生成的輸出文件名為city_ranking,包含了用戶(hù)定義的特定城市的所有必要信息。

## 用戶(hù)定義的城市排名
if len(city_list)> 0:
city_list = list_of_cities.split(',')
city_ranking = final_file.loc[final_file['City'].isin(city_list), ]

數(shù)據(jù)分析

首先運(yùn)行代碼。現(xiàn)在輸入每個(gè)用戶(hù)定義的預(yù)設(shè)條件:

  • a) 輸入分析的日期,格式為YYYMMDD:20230401
  • b) 定義下載公告的Pathway地址:由用戶(hù)決定,這里使用C:/Users/USER/Downloads
  • c) 輸入由逗號(hào)和無(wú)空格分隔的城市列表:Mumbai、Delhi、Bangalore、Hyderabad、Ahmedabad、Chennai、Kolkata、Surat、Vadodara、Pune

輸出如下圖所示:

輸出(city_ranking)顯示了用戶(hù)定義的城市的空氣質(zhì)量狀況、指數(shù)、主要污染物、監(jiān)測(cè)空氣污染的監(jiān)測(cè)站數(shù)量和排名。注:在用戶(hù)定義的分析日期,AQI公報(bào)中沒(méi)有與Bangalore和Vadodara有關(guān)的信息,因此沒(méi)有顯示在數(shù)據(jù)框中。

使用這套代碼,可以了解許多有用的內(nèi)容。例如,使用for循環(huán),就可以使用來(lái)自AQI公告庫(kù)的數(shù)據(jù),并查看數(shù)據(jù)是如何隨時(shí)間變化的。


網(wǎng)頁(yè)標(biāo)題:用Python監(jiān)控并分析城市空氣質(zhì)量
網(wǎng)頁(yè)URL:http://www.5511xx.com/article/dpdghdc.html