""""
auther:Susan
function:AQI Calculation
version:v1.0
data:2019/4/27
"""
def cal_linear(iaqi_lo,iaqi_hi,bp_lo,bp_hi,cp):
"""
Range scaling
"""
iaqi = (iaqi_hi-iaqi_lo)*(cp-bp_lo)/(bp_hi-bp_lo)+iaqi_lo
return iaqi
def cal_pm_iaqi(pm_val):
"""
Calculation:pm2.5_IAQI
"""
if 0 <= pm_val < 35:
iaqi = cal_linear(0, 50, 0, 35, pm_val)
elif 35 <= pm_val <75:
iaqi = cal_linear(50, 100, 35, 75,pm_val)
elif 75 <= pm_val <115:
iaqi = cal_linear(100, 150, 75, 115,pm_val)
elif 115 <= pm_val <150:
iaqi = cal_linear(150, 200, 115, 150,pm_val)
else:
pass
def cal_co_iapi(co_val):
"""
Calculation:CO_IAQI
"""
# global iaqi
if 0 <= co_val < 3:
iaqi = cal_linear(0, 50, 0, 3, co_val)
elif 3 <= co_val <5:
iaqi = cal_linear(50, 100, 2, 4,co_val)
elif 5 <= co_val <15:
iaqi = cal_linear(100, 150,5, 14,co_val)
else:
pass
def cal_api(param_list):
"""
AQI Calculation
"""
pm_val = param_list[0]
co_val = param_list[1]
pm_iaqi = cal_pm_iaqi(pm_val)
co_iaqi = cal_co_iapi(co_val)
iaqi_list = []
iaqi_list.append(pm_iaqi)
iaqi_list.append(co_iaqi)
aqi = max(iaqi_list)
return aqi
def main():
print('Please enter this information,and separate by spaces.')
input_str = input('(1)PM2.5: (2)CO:')
str_list = input_str.split(' ')
pm_val = float(str_list[0])
co_val = float(str_list[1])
param_list = []
param_list.append(pm_val)
param_list.append(co_val)
"""
Transfer function of AQI Calculation
"""
aqi_val = cal_api(param_list)
print('Air quality index value: {} '.format(aqi_val))
if __name__ == '__main__':
main()
# -*- coding:utf-8 -*-
""""
auther:Susan
function:AQI Calculation
version:v2.0
data:2019/4/27
"""
import json
def process_json_file(filepath):
f = open(filepath,mode='r', encoding='utf-8')
city_list = json.load(f)
return city_list
def main():
filepath = input('Please input a json filemane:')
city_list = process_json_file(filepath)
city_list.sort(key=lambda city:city['aqi'])
top5_list = city_list[:5]
f = open('top5_aqi.json',mode='w',encoding='utf-8')
json.dump(top5_list,f, ensure_ascii=False)
f.close()
print (city_list)
if __name__ == '__main__':
main()
# -*- coding:utf-8 -*-
""""
auther:Susan
function:AQI Calculation
version:v3.0
data:2019/4/27
"""
import json
import csv
def process_json_file(filepath):
f = open(filepath,mode='r', encoding='utf-8')
city_list = json.load(f)
return city_list
def main():
filepath = input('Please input a json filemane:')
city_list = process_json_file(filepath)
city_list.sort(key=lambda city:city['aqi'])
top5_list = city_list[:5]
lines = []
#Column name
lines.append(city_list[0].keys())
#
for city in city_list:
lines.append(list(city.values()))
f = open('aqi1.csv','w',encoding='utf-8',newline='')
writer = csv.writer(f)
for line in lines:
writer.writerow(line)
f.close()
if __name__ == '__main__':
main()
newline=''
新行不加入任何字符,不指定则会在新行末尾加入空行