导入CEC模块时出现Keyerror

时间:2020-06-01 15:43:13

标签: python pvlib

我可以使用脚本从Sandia模块数据库中导入模块

sandia_modules = pvlib.pvsystem.retrieve_sam('SandiaMod')
module = sandia_modules['Canadian_Solar_CS6X_300M__2013_']

但是从CEC模块数据库导入模块时遇到问题

cec_modules = pvlib.pvsystem.retrieve_sam('CECMod')
module = cec_modules['Canadian_Solar_Inc__CS6K_300MS']

在执行时,给出 KeyError:“ Canadian_Solar_Inc__CS6K_300MS”

我从https://raw.githubusercontent.com/NREL/SAM/develop/deploy/libraries/CEC%20Modules.csv上获得了模块

我想了解CEC模块的命名约定。

1 个答案:

答案 0 :(得分:1)

缺少模块

我可以使用最新的pvlib来检索该模块。您可以使用pvlib的过时版本吗?

使用0.7.2,我可以确认"Canadian_Solar_Inc__CS6K_300MS"cecmod数据库中。

请注意,截止到今天,pvlib具有its own copy of SAM's CSV files,因此有时相对于SAM而言副本已经过时。

命名约定

命名不是由pvlib决定的。尽管pvlib chose to replace all spaces and "special" characters with _(因此在SAM名称上有所不同),但它只是在SAM的CSV文件中使用原始名称。

那么,SAM应该负责这些名称吗? It seems not。他们只是按照记录的方式处理CEC数据库中的名称。

因此,最后是CEC,它负责收集模块和逆变器效率测量值,以列出符合加州信用额度的产品(负责命名的人)。

不幸的是,似乎还不存在约定,因此将来CEC模块名称可能会更改。