1、 数据介绍
"中国地面气候资料日值数据集(V3.0)”包含了中国各个基准、基本气象站1951年1月以来本站气压、气温、降水量、蒸发量、相对湿度、风向风速、日照时数和0cm地温要素的日值数据。
以V3.0数据集中的2000年1月SSD的数据为例,命名格式为“SURF_CLI_CHN_MUL_DAY-SSD-14032-200001.txt”,数据内容包括站点编号(sid), 纬度(lat), 经度(long), 高程(elev),年(year), 月(month),日(day), 日照时数(dh)。
2、R语言实现代码
日照时数数据可为计算太阳辐射服务。代码仅处理日照时长,处理逻辑同适用于降水、温度等其他数据。
R语言下载:The Comprehensive R Archive Network
RStudio下载:Download the RStudio IDE - RStudio
#作者:丑唐的修炼之旅
#时间:2022/06/10
#功能:将V3.0气象数据的原始数据(日照数据)进行合并并输出表格处理
install.packages("data.table") #安装程序包
library(data.table) #加载程序包
setwd("E:\\Data\\Temp\\SSD1") #输出文件路径
rawpath <- "E:\\Data\\Temp\\SSD1" #输入数据路径,一次处理全国3年的数据为佳
# 将原始日照数据文件进行合并, 排序后保存为csv文件
ssdfiles <- list.files(path = rawpath, full.names = T,
pattern = "^SURF_CLI_CHN_MUL_DAY-SSD-14032-.*.TXT")
ssddata <- rbindlist(lapply(ssdfiles, fread))[, 1:8]
setnames(ssddata, c("sid", "lat", "long", "elev", "year", "month", "day", "dh"))
# 连接数据,排序后存储为csv文件
data <- ssddata
data <- merge(data, ssddata[, .(sid, year, month, day, dh)],
by = c("sid", "year", "month", "day"))
fwrite(setorder(data, sid, year, month, day), file = "SSD_Temp.csv", quote = T)
# 对原始数据进行标准化处理
data <- fread("SSD_Temp.csv")
data[, c("lat", "long", "elev") :=
list(lat %/% 100 + (lat %% 100) / 60, long %/% 100 + (long %% 100) / 60,
ifelse(elev < 100000, elev * 0.1, (elev - 100000) * 0.1))]
data[dh.x == 32766, dh.x := NA] #dh.x为日照时长原始数据单位(0.1h)
data[dh.y == 32766, dh.y := NA]
data[, dh.y := dh.y * 0.1] #dh.y为标准日照时长单位(h)
# 输出csv文件
fwrite(setorder(data, sid, year, month, day), file = "SSD.csv", quote = T)
3、处理结果