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

如何解决PVlib调用get_pvgis_tmy时的map_variables参数报错

问题原因

该报错是因为你当前使用的pvlib版本低于0.9.0,map_variables是pvlib 0.9.0版本才为pvlib.iotools.get_pvgis_tmy()接口新增的参数,作用是自动将PVGIS返回的原生字段名映射为pvlib通用的标准字段名,旧版本接口不识别该参数。
你移除参数后后续代码报错,是因为返回的气象数据字段名变回了PVGIS原生命名,和后续代码预期的标准字段名不匹配导致的。

解决方案

你可以任选以下任一方式解决:

  • 方案1:升级pvlib到最新稳定版本(推荐)
    直接执行升级命令即可,升级完成后原有代码无需修改即可正常运行:
    pip install --upgrade pvlib
    
  • 方案2:旧版本手动做字段映射
    如果你不想升级现有pvlib版本,可以删除map_variables=True参数后,手动将PVGIS原生字段名映射为标准字段名,示例代码如下:
    coordinates = [
        (32.2, -111.0,'Tuscon',700,'Etc/GMT+7'),
        (35.1, -106.6, 'Albuquerque', 1500, 'Etc/GMT+7'),
        (37.8, -122.4, 'San Francisco', 10, 'Etc/GMT+8'),
        (52.5, 13.4, 'Berlin', 34, 'Etc/GMT-1')
    ]
    
    tyms = []
    
    for location in coordinates:
        latitude, longitude, name, altitude, timezone = location
        # 移除map_variables参数
        weather = pvlib.iotools.get_pvgis_tmy(latitude, longitude)[0]
        # 手动添加字段映射,和map_variables=True效果一致
        weather = weather.rename(columns={
            'G(h)': 'ghi',
            'Gb(n)': 'dni',
            'Gd(h)': 'dhi',
            'T2m': 'temp_air',
            'WS10m': 'wind_speed',
            'RH': 'relative_humidity'
            # 若后续代码用到其他字段,可在此处补充对应映射规则
        })
        weather.index.name = "utc_time"
        tyms.append(weather)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 12:15:03