You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用R的riem包批量下载多机场气象数据并单独存储为CSV文件

R 批量下载多机场气象数据解决方案

完整修改后可运行代码

# 提前确认已安装riem、readxl包再加载
library(riem)
library(readxl)

# 定义全局共用的起止日期,按需修改即可
start_date <- "2020-01-01"
end_date <- "2020-01-04"

# 读取站点列表(原有逻辑保留)
stations <- read_excel("~/Desktop/R WD/Reference Files/stations.xlsx", 
                       col_names = FALSE)
# 提取第一列的所有站点代码为向量,若站点存在其他列,修改括号内的列序号即可
station_codes <- stations[[1]]

# 循环遍历每个站点执行下载保存
for (x in station_codes) {
  # 下载当前站点的气象数据
  METAR <- riem_measures(station = x, date_start = start_date, date_end = end_date)
  # 生成带.csv后缀的标准文件名
  file_name <- paste0(x, "_METAR.csv")
  # 保存为CSV文件,去掉多余的行号列,缺失值留空更适配日常使用
  write.csv(METAR, file = file_name, row.names = FALSE, na = "")
  # 可选:打印进度,实时查看执行状态
  message("已完成站点:", x, "的下载与保存")
}

关键逻辑说明

  • 你导入的stations是数据框结构,stations[[1]]就是提取第一列的所有四字符站点编码,生成可供循环调用的字符向量
  • for循环会依次把station_codes里的每个站点编码赋值给变量x,重复运行大括号内的下载、保存逻辑,自动为每个站点生成独立文件
  • 优化可选方案:如果担心个别站点不存在/网络异常导致程序中断,可以用try包裹执行逻辑,跳过报错站点继续运行:
    for (x in station_codes) {
      try({
        METAR <- riem_measures(station = x, date_start = start_date, date_end = end_date)
        write.csv(METAR, file = paste0(x, "_METAR.csv"), row.names = FALSE)
        message("已完成站点:", x)
      })
    }
    

内容的提问来源于stack exchange,提问作者Ryan Thomas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 06:54:01