Я надеюсь, что вы все в порядке.
У меня есть функция (ось Y), которая получает значения в соответствии с массивом datetime pandas (ось X), как показано ниже.
Мне нужно получить все максимальные значения. Эти n максимальных значений зависят от количества дней между началом и концом pd.timestamp. Затем мне также нужно сохранить эти значения в массиве; что-то вроде этого:
max_values = [
(A_value_1, B_value_1),
(A_value_2, B_value_1),
...,
(A_value_n, A_value_n)]
Примечание. B_value_#
— это то же самое, о чем я прошу, но с другой функцией (A_values: освещенность и B_values: температура ячейки, просто контекстуализация для сообщества PVLIB-Python
.
Для тех, кто знаком с PVLIB-Python
, я пытаюсь получить кривую ВАХ с помощью функции pvsystem.calcparams_desoto
(это потому, что я использую модуль CEC, и у него нет параметров, требуемых функцией SAPM
. Часть этого кода вырезано ниже:
IL, I0, Rs, Rsh, nNsVth = pvsystem.calcparams_desoto(
effective_irrad_calc,
pvtemps['temp_cell'],
module['alpha_sc'],
module['a_ref'],
module['I_L_ref'],
module['I_o_ref'],
module['R_sh_ref'],
module['R_s'],
EgRef=1.121,
dEgdT=-0.0002677
)
curve_info = pvsystem.singlediode(
photocurrent=IL,
saturation_current=I0,
resistance_series=Rs,
resistance_shunt=Rsh,
nNsVth=nNsVth,
ivcurve_pnts=100,
method='lambertw'
)
# plot the calculated curves:
plt.figure()
for i, case in conditions.iterrows():
label = (
"$G_{eff}$ " + f"{case['Geff']} $W/m^2$\n"
"$T_{cell}$ " + f"{case['Tcell']} $C$"
)
plt.plot(curve_info['v'][i], curve_info['i'][i], label=label)
v_mp = curve_info['v_mp'][i]
i_mp = curve_info['i_mp'][i]
# mark the MPP
plt.plot([v_mp], [i_mp], ls='', marker='o', c='k')
plt.legend(loc=(1.0, 0))
plt.xlabel('Module voltage [V]')
plt.ylabel('Module current [A]')
plt.title(parameters['Name'])
plt.show()
plt.gcf().set_tight_layout(True)
Примечание. Этот фрагмент кода взят по адресу: https://github.com/pvlib/pvlib-python/blob/master/docs/examples/plot_singlediode.py
Заранее спасибо. :)