4、原始数据解读:Campbell / NRG 数据格式解析,时间戳、通道、单位
好,咱们直接进入正题。拿到测风数据的第一件事,不是急着算平均风速,而是先看懂原始文件长什么样。说白了,你得先知道数据是怎么“躺”在文件里的,才能把它“扶”起来干活。
我个人习惯,拿到一个陌生站的数据,先打开看一眼文件头。Campbell 和 NRG 是咱们风资源评估里最常见的两种采集器,它们的原始数据格式差别不小。今天我就带你把它俩扒个底朝天。
4.1 Campbell 数据格式:表格式的“老实人”
Campbell 的数据,通常以 .dat 或 .csv 结尾。它的结构非常规整,像个表格。我最早接触 Campbell 是在内蒙古的一个项目上,当时打开文件一看,嗯,很舒服。
典型的 Campbell 文件长这样:
TOA5,CR1000,CR1000,CPP,12345,CR1000_Table1,1,1,1
TIMESTAMP,RECORD,WS_ms_Avg,WD_deg_Avg,Temp_C_Avg
TS,RN,AVG,AVG,AVG
2019-01-01 00:00:00,1,5.23,234.5,-3.2
2019-01-01 00:10:00,2,6.11,245.1,-3.5
2019-01-01 00:20:00,3,4.87,228.9,-3.8
这里有几个关键点,我一个个说。
4.1.1 文件头:数据的身世
第一行是文件头,记录了采集器型号、程序名、表名等信息。你不需要背下来,但要知道它存在。我曾经遇到过一个项目,数据文件头被误删了,结果后面解析程序全报错。嗯,这里要注意:文件头不能丢。
4.1.2 时间戳:Campbell 的“身份证”
Campbell 的时间戳格式非常标准,就是 YYYY-MM-DD HH:MM:SS。它记录的是每个数据记录的开始时间。比如 00:00:00 那行,代表 0:00 到 0:10 这10分钟的平均值。
我个人建议,拿到数据后第一件事,检查时间戳是否连续。跳秒、缺行、重复,都是常见问题。我在新疆的一个项目上,发现时间戳连续跳了3个小时,后来发现是采集器电池没电了。
4.1.3 通道与单位:藏在列名里
Campbell 的通道名就是列名,比如 WS_ms_Avg 代表“风速,米/秒,平均值”。单位通常嵌在列名里,或者单独有一行单位行(第三行)。
常见的通道名对照表:
| 列名 | 含义 | 单位 |
|---|---|---|
| WS_ms_Avg | 平均风速 | m/s |
| WD_deg_Avg | 平均风向 | ° |
| Temp_C_Avg | 平均温度 | ℃ |
| Std_WS_ms | 风速标准差 | m/s |
| Max_WS_ms | 最大风速 | m/s |
_Avg、_Std、_Max,说明采集器已经帮你算好了统计量。但要注意,有些老版本 Campbell 可能不写单位行,这时候你得对照采集程序来确认。
4.2 NRG 数据格式:紧凑型的“实干家”
NRG 的数据格式,跟 Campbell 完全不是一个路子。它更紧凑,更像一个“数据流”。我第一次接触 NRG 文件时,差点没看懂——因为它没有明显的列名。
典型的 NRG 原始文件(.txt 或 .rwd)长这样:
1,01/01/19 00:00,5.23,234.5,-3.2
2,01/01/19 00:10,6.11,245.1,-3.5
3,01/01/19 00:20,4.87,228.9,-3.8
你看,没有列名,没有单位行。这就是 NRG 的风格——一切靠“约定”。
4.2.1 时间戳:NRG 的“美国时间”
NRG 的时间戳格式是 MM/DD/YY HH:MM,注意,是月/日/年,不是日/月/年。这一点特别容易搞混。我曾经在云南的一个项目上,就因为没注意这个,把 3 月 4 日的数据当成了 4 月 3 日,结果整段数据全错了。避坑指南:拿到 NRG 数据,先确认时间格式。
另外,NRG 的时间戳通常不带秒,只有到分钟。而且它记录的是结束时间,不是开始时间。比如 00:10 那行,代表 0:00 到 0:10 这10分钟的平均值。这一点跟 Campbell 正好相反。
4.2.2 通道与单位:靠“位置”说话
NRG 没有列名,所以通道是靠位置来识别的。通常,第一列是记录号,第二列是时间戳,第三列是风速,第四列是风向,第五列是温度,以此类推。
但问题来了——不同项目的通道顺序可能不一样。比如有的项目把温度放在第四列,风向放在第五列。所以,你必须有一份通道映射表,或者叫“配置表”。
我一般会要求业主提供 NRG 的配置表,里面会写明:
- 通道 1:风速(m/s)
- 通道 2:风向(°)
- 通道 3:温度(℃)
- 通道 4:风速标准差(m/s)
4.3 两种格式的核心差异对比
我把 Campbell 和 NRG 的核心差异整理成了一张表,方便你对照:
| 对比项 | Campbell | NRG |
|---|---|---|
| 文件结构 | 有文件头、列名、单位行 | 无列名,纯数据流 |
| 时间戳格式 | YYYY-MM-DD HH:MM:SS | MM/DD/YY HH:MM |
| 时间戳含义 | 开始时间 | 结束时间 |
| 通道识别 | 靠列名 | 靠位置 + 配置表 |
| 单位信息 | 列名或单位行 | 配置表中说明 |
| 常见扩展名 | .dat, .csv | .txt, .rwd |
4.4 数据解读的“三步走”流程
不管哪种格式,我拿到原始数据后,都会走一遍这个流程。你可以把它当成一个标准操作程序:
- 看文件头:确认采集器型号、时间范围、采样间隔。
- 看时间戳:检查格式、连续性、是否有缺失或重复。
- 看通道与单位:确认每个通道对应的物理量和单位。
这三步走完,你才算真正“读懂”了原始数据。否则,后面所有的分析都是空中楼阁。
核心要点:
- Campbell 数据:列名即通道,时间戳是开始时间,格式标准。
- NRG 数据:位置即通道,时间戳是结束时间,格式需确认。
- 无论哪种格式,时间戳和通道映射是数据清洗的第一步。
好了,Campbell 和 NRG 的原始数据格式,咱们就聊到这儿。你想想看,其实没那么复杂,对吧?关键就是搞清楚“时间戳怎么读”和“通道怎么对应”。这两个问题搞定了,后面的数据清洗就顺了。