NOAA全球历史气候网络
此数据集包含过去120年的天气测量。每一行都是某一时刻和某个站点的测量。
更准确地说,根据这些数据的来源:
GHCN-Daily是一个包含全球陆地区域每日观测数据的数据集。它包含来自全球地面站点的基于站点的测量,其中约三分之二的数据仅用于降水测量(Menne et al., 2012)。GHCN-Daily是来自众多来源的气候记录的综合体,这些记录经过合并并接受了一套常见的质量保证审查(Durre et al., 2010)。档案包括以下气象要素:
- 每日最高温度
- 每日最低温度
- 观测时的温度
- 降水量(即雨水、融化雪)
- 降雪量
- 雪深
- 其他可用要素
下面的部分简要概述了将此数据集导入ClickHouse所涉及的步骤。如果您有兴趣详细阅读每个步骤,建议查看我们博客的文章 "探索大规模的现实世界数据集:ClickHouse中的100年气象记录"。
下载数据
预准备数据
更具体地说,已删除未通过Noaa的任何质量保证检查的行。数据的结构也从每行一个测量重构为每个站点ID和日期一行,即:
这样查询更简单,并确保结果表的稀疏程度降低。最后,数据还经过了纬度和经度的丰富。
此数据可在以下S3位置获取。您可以将数据下载到本地文件系统(并使用ClickHouse客户端插入)或直接插入到ClickHouse中(请参见从S3插入)。
要下载:
原始数据
以下详细说明下载和转换原始数据的步骤,以准备加载到ClickHouse中。
下载
要下载原始数据:
数据采样
总结格式文档:
总结格式文档和列的顺序:
- 11个字符的站点识别码。它本身编码了一些有用的信息
- 年/月/日 = 8个字符的日期,格式为YYYYMMDD(例如19860529 = 1986年5月29日)
- ELEMENT = 4个字符表示要素类型的指示符。实际上是测量类型。虽然可用的测量项很多,但我们选择以下内容:
- PRCP - 降水(十分之一毫米)
- SNOW - 降雪(毫米)
- SNWD - 雪深(毫米)
- TMAX - 最高温度(十分之一摄氏度)
- TAVG - 平均温度(十分之一摄氏度)
- TMIN - 最低温度(十分之一摄氏度)
- PSUN - 每日可能阳光的百分比(百分比)
- AWND - 平均每日风速(十分米每秒)
- WSFG - 峰值阵风风速(十分米每秒)
- WT** = 天气类型,其中**定义天气类型。这里是天气类型的完整列表。
- DATA VALUE = 5个字符的数据值,表示ELEMENT的值即测量值。
- M-FLAG = 1个字符的测量标志。这有10个可能的值。这些值中的一些表明数据准确性存疑。我们接受将此设置为"P"的数据-标识为缺失且假设为零,因为这只与PRCP、SNOW和SNWD的测量相关。
- Q-FLAG是测量质量标志,有14个可能值。我们只对空值感兴趣,即没有未通过任何质量保证检查。
- S-FLAG是观测的来源标志。对我们的分析没有用处,因此被忽略。
- OBS-TIME = 4个字符的观测时间,以小时-分钟格式(即0700 = 上午7:00)。在较老的数据中通常不存在。我们在此目的上忽略它。
每一行测量将导致ClickHouse中稀疏的表结构。我们应该转换为每个时间和站点一行,测量作为列。首先,我们限制数据集到那些没有问题的行,即qFlag
等于空字符串的行。
清洗数据
使用ClickHouse local我们可以过滤代表感兴趣测量并符合我们的质量要求的行:
拥有超过26亿行,由于涉及解析所有文件,这不是一个快速的查询。在我们的8核机器上,大约需要160秒。
透视数据
虽然每行测量结构可以与ClickHouse一起使用,但这会不必要地使未来查询复杂。理想情况下,我们需要每个站点ID和日期一行,其中每个测量类型和相关值是列,即:
使用ClickHouse local和一个简单的GROUP BY
,我们可以将数据重构为这种结构。为了限制内存开销,我们一次处理一个文件。
此查询生成一个单一的50GB文件noaa.csv
。
丰富数据
数据除了站点ID外没有地点的指示,站点ID包括前缀国家代码。理想情况下,每个站点都应与其关联的纬度和经度。为此,NOAA提供了每个站点的详细信息作为单独的ghcnd-stations.txt文件。该文件具有多个列,其中五个对我们未来的分析有用:id、纬度、经度、高程和名称。
此查询运行几分钟并生成一个6.4 GB的文件noaa_enriched.parquet
。
创建表
在ClickHouse中创建一个MergeTree表(从ClickHouse客户端)。
插入到ClickHouse
从本地文件插入
可以通过以下方式从本地文件插入数据(来自ClickHouse客户端):
其中<path>
代表磁盘上本地文件的完整路径。
请参见此处以加速此加载。
从S3插入
有关如何加速此操作,请参见我们博客文章调优大数据加载。
示例查询
有史以来最高温度
感谢
我们要感谢全球历史气候网络为准备、清洗和分发这些数据所做的努力。我们对此表示感谢。
Menne, M.J., I. Durre, B. Korzeniewski, S. McNeal, K. Thomas, X. Yin, S. Anthony, R. Ray, R.S. Vose, B.E.Gleason, 和 T.G. Houston, 2012: 全球历史气候网络 - 每日 (GHCN-Daily),版本3。[指示使用的子集, 例如.Version 3.25]。NOAA国家环境信息中心。 http://doi.org/10.7289/V5D21VHZ [2020年8月17日]