pvlib - bifacial.pvfactors_timeseries() ValueError: Buffer has wrong number of dimensions (expected 1, got 2)
pvlib - bifacial.pvfactors_timeseries() ValueError: Buffer has wrong number of dimensions (expected 1, got 2)
我正在使用 pvlib/pvfactors bifacial.pvfactors_timeseries,我在时间戳方面遇到了一些问题。我使用 DatetimeIndex 可以看出:
times = pd.date_range('2021-01-01', '2021-01-02', closed='left', freq='1min',
tz=None)
rear_rad=bifacial.pvfactors_timeseries(
solar_azimuth=235.7,
solar_zenith=75.6,
surface_azimuth=270.0, #cte
surface_tilt=-72.8, #tracker
axis_azimuth=180.0, #cte
timestamps=times,
dni=29.0,
dhi=275.0,
gcr=0.2,
pvrow_height=2.0,
pvrow_width=2.0,
albedo=0.2, #variable mensual
n_pvrows=3,
index_observed_pvrow=1,
rho_front_pvrow=0.03, #reflectividad
rho_back_pvrow=0.05, #refletividad
horizon_band_angle=15.0)
我总是遇到这个错误:
ValueError:缓冲区的维数错误(预期为 1,得到 2)
错误的完整回溯是:
文件“****”,第 18 行,位于
rear_rad=bifacial.pvfactors_timeseries(
文件“C:\Users\tomas.rodriguez\Anaconda3\lib\site-packages\pvlib\bifacial.py”,第 141 行,在 pvfactors_timeseries
报告 = run_timeseries_engine(
文件“C:\Users\tomas.rodriguez\Anaconda3\lib\site-packages\pvfactors\run.py”,第 106 行,在 run_timeseries_engine
eng.fit(时间戳, dni, dhi, solar_zenith, solar_azimuth, surface_tilt,
文件“C:\Users\tomas.rodriguez\Anaconda3\lib\site-packages\pvfactors\engine.py”,第 161 行,适合
self.irradiance.fit(时间戳、DNI、DHI、solar_zenith、solar_azimuth、
文件“C:\Users\tomas.rodriguez\Anaconda3\lib\site-packages\pvfactors\irradiance\models.py”,第 527 行,适合
self._calculate_luminance_poa_components(
文件“C:\Users\tomas.rodriguez\Anaconda3\lib\site-packages\pvfactors\irradiance\models.py”,第 993 行,在 _calculate_luminance_poa_components
df_inputs = perez_diffuse_luminance(
文件“C:\Users\tomas.rodriguez\Anaconda3\lib\site-packages\pvfactors\irradiance\utils.py”,第 63 行,在 perez_diffuse_luminance
dni_et = irradiance.get_extra_radiation(df_inputs.index.dayofyear)
文件“C:\Users\tomas.rodriguez\Anaconda3\lib\site-packages\pandas\core\indexes\extension.py”,第 81 行,在 fget 中
结果 = getattr(self._data, 名称)
文件“C:\Users\tomas.rodriguez\Anaconda3\lib\site-packages\pandas\core\arrays\datetimes.py”,第 139 行,在 f
结果 = fields.get_date_field(值,字段)
文件“pandas_libs\tslibs\fields.pyx”,第 305 行,在 pandas._libs.tslibs.fields.get_date_field
ValueError:缓冲区的维数错误(预期为 1,得到 2)
问题是 pvfactors_timeseries
的一些参数需要是数组、系列等,而不是像您使用的那样的标量。这个可用性问题已经被注意到应该在下一个 pvlib 版本(0.9.1,尚未发布)中修复;见 https://github.com/pvlib/pvlib-python/issues/1332
您的代码修改后的版本运行没有错误:
rear_rad = bifacial.pvfactors_timeseries(
solar_azimuth=pd.Series(235.7, times),
solar_zenith=pd.Series(75.6, times),
surface_azimuth=pd.Series(270.0, times), #cte
surface_tilt=pd.Series(-72.8, times), #tracker
axis_azimuth=180.0, #cte
timestamps=times,
dni=pd.Series(29.0, times),
dhi=pd.Series(275.0, times),
gcr=0.2,
pvrow_height=2.0,
pvrow_width=2.0,
albedo=0.2, #variable mensual
n_pvrows=3,
index_observed_pvrow=1,
rho_front_pvrow=0.03, #reflectividad
rho_back_pvrow=0.05, #refletividad
horizon_band_angle=15.0,
)
另一件事:pvlib 期望 surface_tilt
为 non-negative,我不确定该函数将 return 用于负数 surface_tilt
。请注意,在 pvlib 约定中,跟踪器旋转可以是正的或负的,以指示它是向东还是向西倾斜,但 surface_tilt
始终为正(或零)并且 east/west 方向由 surface_azimuth
.
表示
P.S。这是一个很好的做法,当事情没有像您预期的那样工作时,最好提及您安装的软件包版本(参见 print(pvlib.__version__)
或 pip show pvlib
)。有时版本之间会发生变化,答案取决于您使用的版本。
我正在使用 pvlib/pvfactors bifacial.pvfactors_timeseries,我在时间戳方面遇到了一些问题。我使用 DatetimeIndex 可以看出:
times = pd.date_range('2021-01-01', '2021-01-02', closed='left', freq='1min',
tz=None)
rear_rad=bifacial.pvfactors_timeseries(
solar_azimuth=235.7,
solar_zenith=75.6,
surface_azimuth=270.0, #cte
surface_tilt=-72.8, #tracker
axis_azimuth=180.0, #cte
timestamps=times,
dni=29.0,
dhi=275.0,
gcr=0.2,
pvrow_height=2.0,
pvrow_width=2.0,
albedo=0.2, #variable mensual
n_pvrows=3,
index_observed_pvrow=1,
rho_front_pvrow=0.03, #reflectividad
rho_back_pvrow=0.05, #refletividad
horizon_band_angle=15.0)
我总是遇到这个错误:
ValueError:缓冲区的维数错误(预期为 1,得到 2)
错误的完整回溯是:
文件“****”,第 18 行,位于 rear_rad=bifacial.pvfactors_timeseries(
文件“C:\Users\tomas.rodriguez\Anaconda3\lib\site-packages\pvlib\bifacial.py”,第 141 行,在 pvfactors_timeseries 报告 = run_timeseries_engine(
文件“C:\Users\tomas.rodriguez\Anaconda3\lib\site-packages\pvfactors\run.py”,第 106 行,在 run_timeseries_engine eng.fit(时间戳, dni, dhi, solar_zenith, solar_azimuth, surface_tilt,
文件“C:\Users\tomas.rodriguez\Anaconda3\lib\site-packages\pvfactors\engine.py”,第 161 行,适合 self.irradiance.fit(时间戳、DNI、DHI、solar_zenith、solar_azimuth、
文件“C:\Users\tomas.rodriguez\Anaconda3\lib\site-packages\pvfactors\irradiance\models.py”,第 527 行,适合 self._calculate_luminance_poa_components(
文件“C:\Users\tomas.rodriguez\Anaconda3\lib\site-packages\pvfactors\irradiance\models.py”,第 993 行,在 _calculate_luminance_poa_components df_inputs = perez_diffuse_luminance(
文件“C:\Users\tomas.rodriguez\Anaconda3\lib\site-packages\pvfactors\irradiance\utils.py”,第 63 行,在 perez_diffuse_luminance dni_et = irradiance.get_extra_radiation(df_inputs.index.dayofyear)
文件“C:\Users\tomas.rodriguez\Anaconda3\lib\site-packages\pandas\core\indexes\extension.py”,第 81 行,在 fget 中 结果 = getattr(self._data, 名称)
文件“C:\Users\tomas.rodriguez\Anaconda3\lib\site-packages\pandas\core\arrays\datetimes.py”,第 139 行,在 f 结果 = fields.get_date_field(值,字段)
文件“pandas_libs\tslibs\fields.pyx”,第 305 行,在 pandas._libs.tslibs.fields.get_date_field
ValueError:缓冲区的维数错误(预期为 1,得到 2)
问题是 pvfactors_timeseries
的一些参数需要是数组、系列等,而不是像您使用的那样的标量。这个可用性问题已经被注意到应该在下一个 pvlib 版本(0.9.1,尚未发布)中修复;见 https://github.com/pvlib/pvlib-python/issues/1332
您的代码修改后的版本运行没有错误:
rear_rad = bifacial.pvfactors_timeseries(
solar_azimuth=pd.Series(235.7, times),
solar_zenith=pd.Series(75.6, times),
surface_azimuth=pd.Series(270.0, times), #cte
surface_tilt=pd.Series(-72.8, times), #tracker
axis_azimuth=180.0, #cte
timestamps=times,
dni=pd.Series(29.0, times),
dhi=pd.Series(275.0, times),
gcr=0.2,
pvrow_height=2.0,
pvrow_width=2.0,
albedo=0.2, #variable mensual
n_pvrows=3,
index_observed_pvrow=1,
rho_front_pvrow=0.03, #reflectividad
rho_back_pvrow=0.05, #refletividad
horizon_band_angle=15.0,
)
另一件事:pvlib 期望 surface_tilt
为 non-negative,我不确定该函数将 return 用于负数 surface_tilt
。请注意,在 pvlib 约定中,跟踪器旋转可以是正的或负的,以指示它是向东还是向西倾斜,但 surface_tilt
始终为正(或零)并且 east/west 方向由 surface_azimuth
.
P.S。这是一个很好的做法,当事情没有像您预期的那样工作时,最好提及您安装的软件包版本(参见 print(pvlib.__version__)
或 pip show pvlib
)。有时版本之间会发生变化,答案取决于您使用的版本。