气象观测站点数据下载与处理

一、下载途径

全国400多个气象站气候数据(1942-2022)
王晓磊:中国空气质量/气象历史数据 | 北京市空气质量历史数据
气象数据免费下载网站整理
中国气象站观测的气象数据怎么下载

二、R语言处理

2.1 提取站点文件

ruby 复制代码
library(dplyr)
library(readxl)
library(openxlsx)
library(tidyverse)
require(devtools)
rm(list=ls()) 
setwd("E:\\program1\\03-项目进展-3模型模拟结果验证\\input\\20230628 中国气象观测数据")
Stations=read_excel("../city_pre.xlsx",sheet = 1, col_names = c("province","stations","city","lat","lon"), col_types = NULL, na = "", skip = 0)

####Pre 36cities#####

for (i in 1:dim(Stations)[1]) {
  station=Stations[i,2]
  province=Stations[i,1]
  city=Stations[i,3]
  station_data <- data.frame()
  
  for (year in 2000:2021) {
    infile <- paste0("china_isd_lite_", year, "/", station, "0-99999-", year)
    
    if (file.exists(infile)) {
      temp_data <- read.table(infile) %>% 
        as.tibble() %>% 
        set_names("Year", "Month", "Day", "Hour", "ATemp", "DPTemp", "SLP", "WDir", "WSpeed", "SkyCover", "LPD1", "LPD6") 
      station_data <- bind_rows(station_data,temp_data)
    } else {
      cat("No such file exists:", infile, "\n")
    }
  }
  if (nrow(station_data) > 0) {
    output_folder <- "E:/program1/03-项目进展-3模型模拟结果验证/output/PRE_files/"
    city_Pre <- paste(output_folder,"Pre_",province,"_",city,"_",station,"_data.csv",sep="")
    write.csv(station_data, city_Pre, row.names = T)
  }
}

####判断station是否存在####
#获取有文件的站点
row(Stations)#98 5
dim(Stations)[1]#行数
length(row(Stations))#总数行*列

station_data <- data.frame()
for (i in 1:dim(Stations)[1]) {
  city=Stations[i,2]
  infile <- paste0("china_isd_lite_2020", "/", city, "0-99999-", 2020)
  if (file.exists(infile)) {
    st <- as.data.frame(Stations[i, ]) 
    station_data <- bind_rows(station_data,st)
  }
  else {
    cat("No such file exists:", infile, "\n")
  }
}
output_folder <- "E:\\program1\\04-项目进展-4城市降水量整理\\output\\PRE\\"
city_Pre <- paste(output_folder, "Pre_stations_info.csv", sep = "")
write.csv(station_data, city_Pre, row.names = T)
Sys.setlocale(category = "LC_ALL",locale = "Chinese")
write.csv(station_data, city_Pre, row.names = FALSE,fileEncoding = "UTF-8")
####~~~~~~~~####
#查看结果文件数量
# 指定文件夹路径
folder_path <- "E:\\program1\\04-项目进展-4城市降水量整理\\output\\PRE_Process"
# 列出文件夹中的所有文件
files <- list.files(folder_path)
# 获取文件数量
num_files <- length(files)
# 打印文件数量
print(num_files)
```ruby
library(dplyr)
library(readxl)
library(openxlsx)
library(tidyverse)
require(devtools)
rm(list=ls()) 
setwd("E:\\program1\\04-项目进展-4城市降水量整理\\output\\")

Stations=read_excel("../input/city_pre.xlsx",sheet = 1, col_names = c("province","stations","city","lat","lon"), col_types = NULL, na = "", skip = 0)
head(file)

2.2降水数据处理

ruby 复制代码
####Pre 36cities#####
folder_path <- "./PRE/"  # 替换为实际的文件夹路径
files <- list.files(folder_path, full.names = TRUE)
# 循环处理每个文件
for (file in files) {
  #查看字符串长度eg Pre_安徽_合肥_58321_data.csv
  a=str_length(file)
  #提取字符串从
  name <- str_sub(file, start = 7, end =a)
  Stations = read.csv(file)%>% 
    #将文件读取为一个tibble数据框,并修改表头
    as.tibble() 
  head(Stations)
  #将降水为-99999和-1的无效值赋值为0
  Stations$LPD6[Stations$LPD6 <0] <- 0
  #选取列,不要4-11列
  data=Stations[,-4:-11]
  
  #删除b,d列的处理方式,-which 可以用!代替
  #data[ , -which(colnames(data) %in% c("SLP","WDir"))]
  
 # head(data)
  # 将日期列合并为一个新的列
  data$Date <- as.Date(paste(data$Year, data$Month, data$Day, sep = "-"))
  # 按日期分组,并计算每天的 LPD6 总和
  sum_LPD6 <- aggregate(LPD6 ~ Date, data = data, FUN = sum)
  
 # head(sum_LPD6)
  # 将年、月、日的列与 LPD6 总和列合并以Date为标准
  result <- merge(data, sum_LPD6, by = "Date")
  #head(result)
  result=result[,-5]
  result$LPD6.y=result$LPD6.y/10
  data_unique <- unique(result)
  # 打印结果
 # head(data_unique)
  output_folder <- "./PRE_Process/"
  city_Pre <- paste0(output_folder,"Pro_",name, sep = "")
  write.csv( data_unique, city_Pre, row.names = FALSE)
}

code参考
2000-2020年中国地面气象数据:从NOAA到分省面板
R语言批处理中国地面气候资料日值数据集(V3.0)
使用R语言处理气象站点数据,站点数据批量并行计算合成
R语言处理中国气象数据共享网-中国地面气候资料日值数据集(V3.0)

三、制图

R语言可视化作图

相关推荐
有梦想的Frank博士18 小时前
R语言*号标识显著性差异判断组间差异是否具有统计意义
开发语言·信息可视化·r语言
逆风远航4 天前
R语言贝叶斯:INLA下的贝叶斯回归、生存分析、随机游走、广义可加模型、极端数据的贝叶斯分析
开发语言·r语言·贝叶斯·生态学·结构方程·环境科学·混合效应
Faxxtty4 天前
【R语言】解决package ‘qvalue’ is not available (for R version 3.6.1)
开发语言·r语言
Cachel wood5 天前
Vue前端框架:Vue前端项目文件目录
java·前端·vue.js·python·算法·r语言·前端框架
邢博士谈科教5 天前
OmicsTools软件和R语言分析环境安装配置答疑汇总最新版
r语言
纪伊路上盛名在6 天前
vscode中提升效率的插件扩展——待更新
linux·服务器·ide·vscode·python·r语言·编辑器
拓端研究室TRL6 天前
银行信贷风控专题:Python、R 语言机器学习数据挖掘应用实例合集:xgboost、决策树、随机森林、贝叶斯等...
python·决策树·机器学习·数据挖掘·r语言
在在进步6 天前
R数据结构&向量基础
数据结构·r语言
琼火hu8 天前
R语言笔记(五):Apply函数
开发语言·笔记·r语言·apply
扛着仪器去爬山8 天前
R语言结构方程模型(SEM)
r语言·贝叶斯·生态学·结构方程·混合效应·sem