如何计算经纬度 1 m^2 平面正方形的太阳辐照度?
How do I calculate solar irradiance of 1 m^2 flat square at a latitude and longitude?
是否可以使用 Python 库,如 pysolar、pvlib 或类似的库来计算
- 一年中每天的辐照度(佩雷斯模型)
- 1 m^2 的正方形
- 位于某纬度经度
如果您还没有辐照度数据,我建议您使用来自 PVGIS or NREL's NSRDB PSM3(美洲)的数据。
无论哪种情况,我都建议您先通过 Web 应用程序熟悉该服务。这应该可以让您很好地了解地理覆盖范围以及可用的参数和设置。
然后,您可以使用相应的 pvlib 函数以编程方式检索数据。检索 PVGIS 每小时数据的函数是:pvlib.iotools.get_pvgis_hourly().
下面显示了一个如何从 PVGIS 检索辐照度数据的简短示例:
import pvlib
import pandas as pd
data, inputs, meta = pvlib.iotools.get_pvgis_hourly(
latitude=55.7905, # North is positive
longitude=12.5250, # East is positive
start=pd.Timestamp('2020-01-01'), # First available year is 2005
end=pd.Timestamp('2020-12-31'), # Last available year is 2020 (depends on database)
raddatabase='PVGIS-SARAH2',
surface_tilt=5, # surface tilt angle
surface_azimuth=0, # 0 degrees corresponds to south
components=True, # Whether you want the individual components or just the total
url='https://re.jrc.ec.europa.eu/api/v5_2/', # URL for version 5.2
)
data[['poa_direct','poa_sky_diffuse','poa_ground_diffuse']].plot(
figsize=(6,4), subplots=True, sharex=True)
是否可以使用 Python 库,如 pysolar、pvlib 或类似的库来计算
- 一年中每天的辐照度(佩雷斯模型)
- 1 m^2 的正方形
- 位于某纬度经度
如果您还没有辐照度数据,我建议您使用来自 PVGIS or NREL's NSRDB PSM3(美洲)的数据。
无论哪种情况,我都建议您先通过 Web 应用程序熟悉该服务。这应该可以让您很好地了解地理覆盖范围以及可用的参数和设置。
然后,您可以使用相应的 pvlib 函数以编程方式检索数据。检索 PVGIS 每小时数据的函数是:pvlib.iotools.get_pvgis_hourly().
下面显示了一个如何从 PVGIS 检索辐照度数据的简短示例:
import pvlib
import pandas as pd
data, inputs, meta = pvlib.iotools.get_pvgis_hourly(
latitude=55.7905, # North is positive
longitude=12.5250, # East is positive
start=pd.Timestamp('2020-01-01'), # First available year is 2005
end=pd.Timestamp('2020-12-31'), # Last available year is 2020 (depends on database)
raddatabase='PVGIS-SARAH2',
surface_tilt=5, # surface tilt angle
surface_azimuth=0, # 0 degrees corresponds to south
components=True, # Whether you want the individual components or just the total
url='https://re.jrc.ec.europa.eu/api/v5_2/', # URL for version 5.2
)
data[['poa_direct','poa_sky_diffuse','poa_ground_diffuse']].plot(
figsize=(6,4), subplots=True, sharex=True)