matlab计算aqi的程序,计算AQI

根据6项污染物的日均值算IAQI,再算当日AQI

import numpy as np

import pandas as pd

import bisect

import math

hs13 = pd.read_excel('0406hs_6pol.xlsx','2013')

hs14 = pd.read_excel('0406hs_6pol.xlsx','2014')

grd = pd.read_excel('0406hs_6pol.xlsx','level')

iaq = grd.IAQI.to_list()

def lsd(col,ikind):

col = col.to_list()

ikind = ikind.to_list()

newcol = []

for i in range(len(col)):

if math.isnan(col[i]):

newcol.append(np.nan)

else:

index = bisect.bisect(ikind,col[i])

if index < 8:

#print(index,i,col[i])

iaq_h = iaq[index]

iaq_l = iaq[index-1]

bp_h = ikind[index]

bp_l = ikind[index-1]

newcol.append((iaq_h-iaq_l)/(bp_h-bp_l)*(col[i]-bp_l)+iaq_l)

else:

newcol.append(iaq[-1])

return newcol

vars = [ 'SO2','NO2', 'PM10', 'CO','O3', 'PM2_5' ]

a = [ '{}_newlist'.format(var) for var in vars ]

print(a)

for ivar in range(len(vars)):

varname = vars[ivar]

a[ivar] = lsd(hs14[varname],grd[varname])

data=pd.DataFrame(a,index=[ 'SO2','NO2', 'PM10', 'CO','O3', 'PM2_5']).T

print((data.head().max(axis=1)))

data['max_value']=data.max(axis=1)

data['max_index'] = np.argmax(data.values,axis=1)

data.to_csv('AQI统计.csv', index=True, sep=',')

  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值