Ошибка при построении графика с помощью pvlib

Я делаю школьный проект с библиотекой pvlib для реальной фотоэлектрической установки, но когда я попытался построить цепочку моделей для генерации переменного тока, я получил ошибку, как показано ниже в коде. Я надеюсь, что кто-то может помочь мне с этим. Большое спасибо.

import pvlib
from pvlib import clearsky, atmosphere, solarposition
from pvlib.modelchain import ModelChain
from pvlib.location import Location
from pvlib.pvsystem import PVSystem, Array, SingleAxisTrackerMount, AbstractMount, FixedMount
from pvlib.temperature import TEMPERATURE_MODEL_PARAMETERS

location = Location(latitude = 40.30117520975112, longitude = -3.6973221576701967, tz = "Europe/Madrid", altitude = 660, name = 'Ormazabal Getafe')
modules = pvlib.pvsystem.retrieve_sam('CECMod')
inverters = pvlib.pvsystem.retrieve_sam('CECInverter')
module = modules['JA_Solar_JAP72S01_330_SC'] 
inverter = inverters['SMA_America__STP_33_US_41__480V_'] 
temp_par = TEMPERATURE_MODEL_PARAMETERS['sapm']['open_rack_glass_glass']
system = PVSystem(surface_tilt = 19, surface_azimuth = 170, module_parameters = module, inverter_parameters = inverter,
                  temperature_model_parameters = temp_par, modules_per_string = 17, strings_per_inverter = 6) 
modelchain = ModelChain(system, location, aoi_model = 'physical')

times = pd.date_range(start = '2023-06-01', end = '2023-12-15', freq = 'h', tz = location.tz)
solar_position = location.get_solarposition(times)
clearsky = location.get_clearsky(times)
clearsky.plot(figsize = (20, 8))
plt.ylabel('Irradiance $W/m^2$')
plt.title('Irradiance in the location')
plt.show()

modelchain.run_model(clearsky)
modelchain.results.ac.plot(figsize = (20, 8))
plt.show()

----> 26 modelchain.run_model(clearsky)
KeyError: 'precipitable_water'

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
0
52
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это происходит потому, что «spectral_model» не задан явно. Чтобы обойти ошибку, используйте либо Spectrum_model='no_loss', Spectrum_model='sapm' (но вам нужно откуда-то получить коэффициенты), либо Spectrum_model='first_solar' (но вам нужно добавить 'precipitable_water' к вашим данным о погоде).

Такое поведение является непреднамеренным и должно быть устранено в pvlib. См. https://github.com/pvlib/pvlib-python/issues/2017#issue-2263654247

Спасибо, я использовал «spectral_model = no loss», и все получилось. Надеемся, что pvlib вскоре устранит эту непреднамеренную ошибку.

Luis Enrique Orozco Villanueva 29.04.2024 08:16

Другие вопросы по теме