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

使用rpy调用nasapower的get_power接口时lonlat参数报错求解

解决rpy2调用nasapower::get_power时lonlat参数无效的问题

错误根源在于:R的get_power函数要求lonlat参数是R原生向量类型,但你直接传入了Python列表,rpy2不会自动将Python列表转为R向量,导致函数无法识别参数格式。

修复步骤

  1. 用rpy2提供的robjects.FloatVector()将Python的数值列表转为R的数值向量,作为lonlat参数传入;
  2. 同理,pars参数建议转为R字符向量(部分场景下自动转换可能失效,手动转换更稳妥)。

修改后的完整代码

!pip3 install rpy2==3.5.1
import rpy2.robjects as robjects
from rpy2.robjects.packages import importr

utils = importr('utils')
utils.chooseCRANmirror(ind=1)
utils.install_packages('nasapower')
nasapower = importr('nasapower')

# 将Python列表转为R向量
lonlat_r = robjects.FloatVector([151.81, -27.48])
pars_r = robjects.StrVector(["RH2M", "T2M", "PRECTOTCORR"])

# 调用get_power函数
daily_ag = nasapower.get_power(
    "ag",
    lonlat=lonlat_r,
    pars=pars_r,
    dates="1985-01-01",
    temporal_api="daily"
)

补充说明

如果需要将返回的R数据框转为Python对象,可以用pandas2ri(需先安装pandas):

from rpy2.robjects import pandas2ri
pandas2ri.activate()
df = pandas2ri.rpy2py(daily_ag)

内容的提问来源于stack exchange,提问作者Владимир Кузовкин

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 08:01:02