做数据可视化或者预测模型,空气质量是个很合适的题目:数据量适中、字段清楚、还能和地理位置结合。但真正动手时,第一个问题往往不是建模,而是从哪儿拿数据、拿到的是什么口径。
几类常见数据源
- 城市国控站数据:按小时或按日发布 AQI、PM2.5、PM10、SO2、NO2、CO、O3 六项污染物浓度,覆盖全国地级市,适合做城市级趋势分析。
- 全球再分析数据:卫星反演结合模式模拟,提供网格化的 PM2.5 浓度,分辨率和时间跨度都比站点数据大,适合做空间分布图。
- 开放数据平台:不少城市的数据开放门户提供历史 CSV 下载,字段命名不统一,要先做清洗。
- 自建监测设备:传感器便宜,但数据漂移大,需要和国控站做校准。
字段怎么理解
AQI 是综合指数,取值 0 到 500,分六级;PM2.5 的单位是微克每立方米。注意有的数据集标的是 μg/m³,有的是 mg/m³,量级差一千倍,混着用会得出荒谬的结论。还有的表格里用 -1 或者空字符串表示缺失,直接求平均会被污染。
清洗时最常见的四个问题
- 时间口径:小时数据要标清是整点值还是小时均值,跨时区处理容易错一小时。
- 缺失值:设备故障导致整段缺失,别用前值填充太久,否则趋势图会显得异常平滑。
- 站点变更:站点会搬迁、改名、停运,用站点 ID 做主键比用名称可靠。
- 异常值:沙尘天气下 PM10 会飙到上千,这是真实值,不是错误,清洗前先看气象记录。
做可视化时的建议
时间序列用折线图看趋势,城市对比用热力图或者分面小图,空间分布用地图。AQI 分级配色要按官方色阶来,别自己配一套红黄绿,读者对不上标准就没法判断严重程度。
数据量大的时候,先按月聚合再画图,前端渲染几千个点会卡。真要展示逐小时数据,用降采样或者服务端聚合。
合规提醒
用别人的数据要看清许可协议,有的只允许非商业用途,有的要求署名。公开发布图表时注明数据来源和采集时间,这是基本要求。商业项目里用气象和环保数据,最好确认一下是否需要授权。
最后一句:数据集的字段说明比数据本身更重要,先花十分钟读文档,能省掉后面几小时的返工。