2013年,全国开始实施新空气质量标准(GB 3095-2012),PM2.5正式纳入国控监测站监测项目。到2024年底,全国国控环境空气质量监测站数量超过1800个,加上省控、市控站点,总数远超这个数字。水质国控监测断面2000多个,噪声自动监测站也在逐步铺开。
十多年积累下来,这些站点的数据量不小。一个空气质量监测站监测6项基本污染物(SO2、NO2、PM10、PM2.5、CO、O3)加气象五参数,数据频率分钟级。存10年,一个站约5.8亿条。1800个站?超过1万亿条。
数据是有的。但能不能用好?这件事的说头就多了。
环境监测数据的几副面孔
环境监测数据在不同管理层级的呈现完全不同。
国家级层面,中国环境监测总站掌握国控站原始数据,但公开渠道(全国城市空气质量实时发布平台)展示的是实时值和小时统计值。公众看到的是AQI指数——一个从0到500的标量数字,背后是6项污染物的分指数计算。原始分钟级数据?不公开,但总站内部有。
省级层面,各省生态环境监测中心既接收国控站数据,也管理省控站数据。国控站和省控站的建设标准不同——国控站是总站直管,数据直接传总站;省控站是省中心管理。两套数据在省级层面需要合并分析。
市级层面更复杂。一座地级市除了国控站和省控站,自己还建了市控站——有些城市甚至建了几十个区县级监测站。这些市控站的仪器品牌型号参差不齐,数据格式各有各的标准。
监测要素 | 标准依据 | 主要参数 | 采样频率 | 单站测点数 |
空气质量 | GB 3095-2012 | SO2/NO2/PM10/PM2.5/CO/O3 + 气象 | 1-5分钟 | 12-20 |
地表水水质 | GB 3838-2002 | 五参数(水温/pH/DO/电导率/浊度)+氨氮/总磷/总氮/COD | 1-10分钟 | 8-15 |
声环境 | GB 3096-2008 | Leq/Lmax/Lmin/L10/L50/L90 | 1秒-1分钟 | 1-3 |
土壤环境 | GB 15618-2018 | 重金属/有机物/pH | 月-季度 | 按项目 |
辐射环境 | GB 11215-89 | γ剂量率/αβ表面污染 | 1分钟-1小时 | 2-5 |
传统监测数据管理的几个坑
数据格式不统一。 空气质量自动监测站通常使用厂商配套的数据采集软件,主流仪器厂商(赛默飞、API、聚光科技、雪迪龙、宇星科技)各有自己的数据上传格式。虽然国家生态环境部发布了《环境空气质量自动监测数据传输技术规定》(HJ 212),但不同厂商的HJ 212实现版本和扩展字段不一致。水质监测的情况更分散——五参数仪和在线分析仪通常来自不同厂商,数据格式互不兼容。
各监测要素分离管理。 空气站的数据走空气质量管理平台,水质站走水质监测平台,噪声走噪声监测系统。三套系统各自独立,数据不通。但在实际环境管理中,经常需要多要素关联分析——"某区域空气质量与气象条件的关系""某河段水质指标与上游工业排放的时间序列对应"。数据不通就做不了这种关联。
历史数据短。 有些省控站和市控站的数据存储周期只有1-2年。国控站因为总站直管,数据保存规范,历史数据长。但省控和市控站的数据管理参差不齐。一座城市的PM2.5历史数据只有两年,怎么分析年际变化趋势?
存储架构老旧。 有些环境监测平台的底层数据库还是MySQL或PostgreSQL。一座城市的监测站数量虽然不算多(几十到上百个),但分钟级数据累积到5年以上,查询性能开始下降。按时间范围+站点ID做多站点聚合查询,MySQL可能要跑几秒甚至十几秒。对于实时性要求不高的报表场景够用,但对于交互式数据分析平台——用户拖动时间轴做对比分析——响应延迟高就影响体验。
时序数据库解决了什么
多要素统一存储。 空气、水质、噪声、气象——各类数据写入同一套TDengine实例,各建超级表。虽然数据类型不同,但共享统一的时间轴和查询接口。"查询某区域2024年PM2.5日均浓度与同期风速/温度的关系"——TDengine两张超级表分别查询,应用层按时间关联。比在MySQL里做跨表JOIN快得多。
标签模型适配多站点。 监测站点的层级:区域(省/市/区县)→站点→参数。TDengine超级表标签包括区域编码、站点ID、站点类型(国控/省控/市控)、监测要素类型、仪器型号。查"某省所有国控空气质量站近30天PM2.5月均值"——标签过滤站点类型=国控+要素=PM2.5,按月聚合,一条SQL。
大规模站点支撑。 全国1800个国控空气质量站,加上省控和市控站,总站点数可能上万。每个站分钟级数据,每秒写入量在万级。TDengine集群模式下多vnode并行写入和查询,处理这个量级没有压力。存储方面——1万站×20测点×1分钟频率×5年,约525亿条,TDengine压缩后约50-100GB。
降采样查询。 环境监测数据的常用查询模式是时间聚合——小时均值、日均值、月均值。TDengine的降采样查询原生支持任意时间粒度聚合。"某站2024年全年PM2.5日均值趋势"——把分钟级数据按天做均值降采样,365条结果秒级返回。
污染溯源的数据需求
污染溯源是环境监测数据的高价值应用方向。一起说一下。
PM2.5某日突增,原因是区域传输还是本地源?判断依据是:PM2.5组分分析(硫酸盐、硝酸盐、铵盐、碳组分、地壳元素)+气象条件(风向风速、逆温层高度)+周边站点同时间段数据对比。组分分析数据通常来自离线分析(手工采样后实验室分析),频率是周级或月级。但在线监测的PM2.5质量浓度和气象数据是分钟级。
污染溯源分析需要把组分数据(低频)与在线监测数据(高频)关联——同一时间段内,PM2.5浓度变化与风向变化的关系,判断污染是上风向区域传输还是本地积累。这种跨频率数据关联需要数据库支持灵活的时间范围查询。
TDengine的时间范围查询可以精准定位时间段。"2024年3月15日14:00-18:00 XX站点PM2.5浓度和气象参数序列"——按时间范围检索,返回分钟级数据,应用层做趋势叠加和关联分析。
水质污染溯源类似。某河段氨氮突增,需要看上游各监测断面的氨氮时间序列,判断污染源在哪个河段。这种分析是"沿河流上下游的时间序列对比"——各站点氨氮数据按时间轴排列,看峰值传播的时间差,推算污染源的排放位置和排放时间。
TDengine的标签模型对水质断面建模很合适——超级表标签包括流域编号、河流名称、断面编号、上下游关系。查"XX河流域所有断面氨氮浓度近7天日均值趋势"——按流域标签过滤+日聚合,一条SQL。上游断面氨氮峰值到达下游断面的时间差一目了然。
长期趋势分析的环境意义
环境监测数据的长期趋势分析有明确的政策意义。GB 3095-2012要求空气质量评价采用年均值和年评价值,评估周期按自然年。但城市的空气质量改善评估不是看某一天的值,而是看年度指标的多年变化——2020年到2024年PM2.5年均浓度下降了多少?O3年评价值是升是降?
这种多年趋势分析需要5年以上的连续历史数据。传统平台存2年数据就做不了这种分析。TDengine的存储能力使得10年甚至更长的历史数据长期保存变得经济可行。查询"XX市2015-2024年PM2.5年均浓度变化"——10年数据降采样到年均值,一条SQL返回10条结果。
存储成本算一下。一座城市的100个监测站、20个测点×1分钟频率×10年,原始约10.5亿条。TDengine压缩后约1-2GB。一座城市10年全量监测数据不到2GB——这比很多照片都小。
TDengine在环境监测场景的部署
环境监测数据的部署架构跟其他行业略有不同,因为监测站点地理分散但数据量相对不大。
省级监测中心部署TDengine集群(3节点,16核32G配置),汇集全省国控、省控、市控站的数据。各站点数据通过HJ 212协议或自定义采集服务上传。站点标签自动管理——新增站点配置站点信息后,采集服务自动建子表开始写入数据。
国家监测总站层面可以部署更大规模的TDengine集群(5-9节点),汇聚全国国控站数据。省级中心到国家级中心的数据同步通过TDengine数据复制功能实现。
噪声监测数据量比空气和水质都小——一个噪声站1秒数据,一天8.6万条。但它有自己的特点:Leq(等效连续声级)的计算需要1秒原始数据做时间窗口平均。TDengine的连续查询可以在数据写入时实时做窗口聚合——每5分钟算一次Leq,结果存入新的超级表,原始1秒数据定期清理。
数据质量控制
环境监测数据的精度和可靠性受到多方面因素影响——仪器零点和量程漂移、校准误差、环境干扰(如扬尘对PM2.5光散射法的干扰)。数据质量控制不是时序数据库的职责,但数据库可以辅助。
TDengine的流计算引擎可以做简单的数据质控——对明显异常值做标记和过滤。比如PM2.5值突然跳到9999mg/m3(超出物理范围),自动标记为异常。温度值连续24小时不变(传感器可能故障),自动告警。这些预处理在数据写入时完成,避免异常数据进入后续分析。
更复杂的质控——如动态基线修正、多站点交叉验证——需要在应用层用Python或R实现。但数据底座选对后,上层分析开发效率高很多。
公众服务的数据出口
环境监测数据最终服务于公众——空气质量预报、实时AQI查询、水质周报。这些应用的数据出口都需要快速查询。
"查询某市当前所有监测站PM2.5实时浓度"——TDengine按站点标签过滤+取最新值,毫秒级返回。"查询某站过去24小时PM2.5和O3小时均值"——1分钟数据降采样到小时均值,一条SQL。
如果空气质量预报模型需要历史气象和污染数据做训练,TDengine的数据可以通过Python连接器(taospy)批量导出为DataFrame格式,直接喂给sklearn或XGBoost训练。TDengine的JDBC连接器也支持Java生态的机器学习框架直接对接。
结语
环境监测领域的数据积累已经有十年以上了,但数据管理方式相对滞后。1800个国控站的分钟级数据,本应成为环境治理决策的核心依据——空气质量达标规划、污染源管控、区域联防联控——但在不少地方,数据还是散落在各个系统里,像一堆被锁在柜子里的档案。时序数据库不是什么革命性的技术,它只是那把钥匙——让十年积累的监测数据真正能被查询、被分析、被用起来。

























