如何解决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
相关产品推荐
相关产品推荐

