python空气质量指数计算_Python入门案例(八):空气质量指数(AQI)计算

这个系列教程详细介绍了如何使用Python计算空气质量指数(AQI)。从基础的线性缩放计算到逐步增加的复杂功能,如处理JSON和CSV文件、网络爬虫获取实时数据、数据处理和可视化。通过多个版本的升级,最终实现数据清洗和可视化展示。
摘要由CSDN通过智能技术生成

一、空气质量指数计算V1.0

主要知识点:分支结构、函数、异常处理# -*- coding:utf-8 -*-

"""

@author:Angel

@file:AQI_V1.0.py

@time:2018/11/28 14:29

@1.0功能:AQI计算

"""

def cal_linear(iaqi_lo, iaqi_hi, bp_lo, bp_hi, cp):

# 线性缩放

iaqi = (iaqi_hi - iaqi_lo) * (cp - bp_lo) / (bp_hi - bp_lo) +iaqi_lo

return iaqi

def cal_pm_iaqi(pm_val):

# 计算PM2.5的IAQI

if 0 <= pm_val < 36:

iaqi = cal_linear(0, 50, 0, 35, pm_val)

elif 36 <= pm_val < 76:

iaqi = cal_linear(50, 100, 35, 75, pm_val)

elif 76 <= pm_val < 116:

iaqi = cal_linear(100, 150, 75, 115, pm_val)

elif 116 <= pm_val < 151:

iaqi = cal_linear(150, 200, 115, 150, pm_val)

elif 151 <= pm_val < 251:

iaqi = cal_linear(200, 300, 150, 250, pm_val)

elif 251 <= pm_val < 351:

iaqi = cal_linear(300, 400, 250, 350, pm_val)

elif 351 <= pm_val < 501:

iaqi = cal_linear(400, 500, 350, 500, pm_val)

else:

pass

return iaqi

def cal_co_iaqi(co_val):

# 计算co的IAQI

if 0 <= co_val < 3:

iaqi = cal_linear(0, 50, 0, 2, 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, 4, 14, co_val)

elif 15 <= co_val < 25:

iaqi = cal_linear(150, 200, 14, 24, co_val)

elif 25 <= co_val < 37:

iaqi = cal_linear(200, 300, 24, 36, co_val)

elif 37 <= co_val < 49:

iaqi = cal_linear(300, 400, 36, 48, co_val)

elif 49 <= co_val < 61:

iaqi = cal_linear(400, 500, 48, 60, co_val)

else:

pass

return iaqi

def cal_aqi(param_list):

# AQI计算

pm_val = param_list[0]

co_val = param_list[1]

pm_iaqi = cal_pm_iaqi(pm_val)

co_iaqi = cal_co_iaqi(co_val)

iaqi_list = []

iaqi_list.append(pm_iaqi)

iaqi_list.append(co_iaqi)

AQI = max(iaqi_list)

return AQI

def main():

print('请输入以下信息,用空格分隔:')

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)

# 调用AQI计算函数

aqi_val = cal_aqi(param_list)

print('空气质量指数(AQI):{}'.format(aqi_val))

if __name__ == '__main__':

main()

二、空气质量指数计算V2.0

主要知识点:JSON文件格式及操作:JSON是一种轻量级数据交换格式,可以对复杂数据进行表达和存储,易于阅读和理解。数据保存在键值对中,键值对之间由逗号分隔,花括号用于保存键值对数据组成的对象,方括号用户保存键值对数据组成的数组;采用对象、数组方式组织起来的键值对可以表示任何结构的数据JSON库是处理JSON数据格式的Python标准库,两个过程:编码(encoding),将Python数据类型转换成JSON格式的过程;解码(decoding),从JSON格式中解析数据对应到Python数据类型的过程# -*- coding:utf-8 -*-

"""

@author:Angel

@file:AQI_V2.0.py

@time:2018/11/28 14:29

@1.0功能:AQI计算

@2.0功能:读取已经获取的JSON数据文件,并将AQI前5的数据输出到文件

"""

import json

def process_json_file(filepath):

# 解码JSON文件

f = open(filepath, mode='r', encoding='utf-8')

city_list = json.load(f)

return city_list

def main():

filepath = input('请输入JSON文件名称:')

city_list = process_json_file(filepath)

city_list.sort(key=lambda city: city['aqi'])

top5_list = city_list[:5]</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值