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

使用R语言调用NASAPOWER数据时遇连接超时错误求助

解决nasapower包get_power函数连接超时问题

你遇到的是和NASA POWER服务器连接超时的问题,这种情况大多源于网络速度偏慢、临时网络波动或者服务器响应延迟,下面是几个实用的解决办法:

1. 延长请求超时时间

默认的10秒超时可能不足以应对较慢的网络,你可以通过httr的配置参数把超时时间调长(比如设置为60秒),给服务器足够的响应时间。修改后的代码如下:

library(nasapower)
library(httr)

daily_single_ag <- get_power(
  community = "AG",
  lonlat = c(151.81, -27.48),
  pars = c("RH2M", "T2M", "PRECTOT"),
  dates = c("1985-01-01", "1985-01-31"),
  temporal_average = "DAILY",
  config = timeout(60)  # 设置60秒超时阈值
)
daily_single_ag

2. 添加自动重试机制

有时候只是临时的网络波动,多试几次就能成功。可以用purrr包的retry函数实现自动重试:

library(nasapower)
library(httr)
library(purrr)

# 最多重试3次,每次请求超时设为60秒
daily_single_ag <- retry(
  expr = get_power(
    community = "AG",
    lonlat = c(151.81, -27.48),
    pars = c("RH2M", "T2M", "PRECTOT"),
    dates = c("1985-01-01", "1985-01-31"),
    temporal_average = "DAILY",
    config = timeout(60)
  ),
  times = 3,
  quiet = FALSE
)
daily_single_ag

3. 检查并调整网络环境

  • 先手动尝试访问power.larc.nasa.gov网站,确认你的网络能正常连接到NASA服务器。如果打不开,可能是网络存在防火墙限制、需要代理,或者地区网络访问受限。
  • 如果需要使用代理,你可以在R中配置代理参数:
library(httr)
# 替换为你的代理地址和端口
set_config(use_proxy(url = "你的代理地址", port = 代理端口))
# 配置完成后再运行get_power请求

4. 分批次拆分数据请求

如果单次请求的数据量较大,服务器可能响应缓慢。你可以把时间段拆分成更小的区间,分别获取后再合并:

library(nasapower)
library(dplyr)

# 拆分目标时间段为多个小区间
date_ranges <- list(
  c("1985-01-01", "1985-01-10"),
  c("1985-01-11", "1985-01-20"),
  c("1985-01-21", "1985-01-31")
)

# 循环获取每个区间的数据
data_list <- lapply(date_ranges, function(range) {
  get_power(
    community = "AG",
    lonlat = c(151.81, -27.48),
    pars = c("RH2M", "T2M", "PRECTOT"),
    dates = range,
    temporal_average = "DAILY",
    config = timeout(60)
  )
})

# 合并所有小批次的数据
daily_single_ag <- bind_rows(data_list)
daily_single_ag

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 08:12:57