include albedo in vertical panel production calcs
This commit is contained in:
parent
bba47e48b7
commit
25b7f5b0d4
@ -151,8 +151,8 @@ def calculate_energy_production_vertical(c):
|
|||||||
axis_azimuth = 90
|
axis_azimuth = 90
|
||||||
|
|
||||||
morning_shaded_fraction = pvlib.shading.shaded_fraction1d(
|
morning_shaded_fraction = pvlib.shading.shaded_fraction1d(
|
||||||
solar_zenith=morning_solar_positions["zenith"],
|
solar_zenith=solar_positions["zenith"],
|
||||||
solar_azimuth=morning_solar_positions["azimuth"],
|
solar_azimuth=solar_positions["azimuth"],
|
||||||
axis_azimuth=axis_azimuth,
|
axis_azimuth=axis_azimuth,
|
||||||
shaded_row_rotation=shaded_row_rotation,
|
shaded_row_rotation=shaded_row_rotation,
|
||||||
shading_row_rotation=shading_row_rotation,
|
shading_row_rotation=shading_row_rotation,
|
||||||
@ -164,8 +164,8 @@ def calculate_energy_production_vertical(c):
|
|||||||
morning_shaded_fraction = morning_shaded_fraction * no_of_shaded_rows / no_of_rows
|
morning_shaded_fraction = morning_shaded_fraction * no_of_shaded_rows / no_of_rows
|
||||||
|
|
||||||
afternoon_shaded_fraction = pvlib.shading.shaded_fraction1d(
|
afternoon_shaded_fraction = pvlib.shading.shaded_fraction1d(
|
||||||
solar_zenith=afternoon_solar_positions["zenith"],
|
solar_zenith=solar_positions["zenith"],
|
||||||
solar_azimuth=afternoon_solar_positions["azimuth"],
|
solar_azimuth=solar_positions["azimuth"],
|
||||||
axis_azimuth=axis_azimuth + 180,
|
axis_azimuth=axis_azimuth + 180,
|
||||||
shaded_row_rotation=shaded_row_rotation,
|
shaded_row_rotation=shaded_row_rotation,
|
||||||
shading_row_rotation=shading_row_rotation,
|
shading_row_rotation=shading_row_rotation,
|
||||||
@ -185,12 +185,12 @@ def calculate_energy_production_vertical(c):
|
|||||||
poa_front = pvlib.irradiance.get_total_irradiance(
|
poa_front = pvlib.irradiance.get_total_irradiance(
|
||||||
surface_tilt=90,
|
surface_tilt=90,
|
||||||
surface_azimuth=axis_azimuth,
|
surface_azimuth=axis_azimuth,
|
||||||
solar_zenith=morning_solar_positions["zenith"],
|
solar_zenith=solar_positions["zenith"],
|
||||||
solar_azimuth=morning_solar_positions["azimuth"],
|
solar_azimuth=solar_positions["azimuth"],
|
||||||
dni=clearsky_data["dni"],
|
dni=clearsky_data["dni"],
|
||||||
ghi=clearsky_data["ghi"],
|
ghi=clearsky_data["ghi"],
|
||||||
dhi=clearsky_data["dhi"],
|
dhi=clearsky_data["dhi"],
|
||||||
albedo=0.5,
|
surface_type="urban",
|
||||||
)
|
)
|
||||||
# drop rows with poa_global NaN values
|
# drop rows with poa_global NaN values
|
||||||
poa_front = poa_front.dropna(subset=["poa_global"])
|
poa_front = poa_front.dropna(subset=["poa_global"])
|
||||||
@ -198,12 +198,12 @@ def calculate_energy_production_vertical(c):
|
|||||||
poa_rear = pvlib.irradiance.get_total_irradiance(
|
poa_rear = pvlib.irradiance.get_total_irradiance(
|
||||||
surface_tilt=180 - 90,
|
surface_tilt=180 - 90,
|
||||||
surface_azimuth=axis_azimuth + 180,
|
surface_azimuth=axis_azimuth + 180,
|
||||||
solar_zenith=afternoon_solar_positions["zenith"],
|
solar_zenith=solar_positions["zenith"],
|
||||||
solar_azimuth=afternoon_solar_positions["azimuth"],
|
solar_azimuth=solar_positions["azimuth"],
|
||||||
dni=clearsky_data["dni"],
|
dni=clearsky_data["dni"],
|
||||||
ghi=clearsky_data["ghi"],
|
ghi=clearsky_data["ghi"],
|
||||||
dhi=clearsky_data["dhi"],
|
dhi=clearsky_data["dhi"],
|
||||||
albedo=0.5,
|
surface_type="urban",
|
||||||
)
|
)
|
||||||
# drop rows with poa_global NaN values
|
# drop rows with poa_global NaN values
|
||||||
poa_rear = poa_rear.dropna(subset=["poa_global"])
|
poa_rear = poa_rear.dropna(subset=["poa_global"])
|
||||||
@ -222,7 +222,7 @@ def calculate_energy_production_vertical(c):
|
|||||||
|
|
||||||
energy_front = effective_front * 15 / 60 / 1e3
|
energy_front = effective_front * 15 / 60 / 1e3
|
||||||
energy_rear = effective_rear * 15 / 60 / 1e3
|
energy_rear = effective_rear * 15 / 60 / 1e3
|
||||||
total_hourly_energy_m2 = energy_front.add(energy_rear, fill_value=0)
|
total_hourly_energy_m2 = energy_front + energy_rear
|
||||||
energy_total = total_hourly_energy_m2.sum()
|
energy_total = total_hourly_energy_m2.sum()
|
||||||
logger.info(f"Energy yield calculated: {energy_total} kWh/m2")
|
logger.info(f"Energy yield calculated: {energy_total} kWh/m2")
|
||||||
|
|
||||||
|
7
main.py
7
main.py
@ -30,13 +30,14 @@ logger.info("Configuration loaded successfully.")
|
|||||||
logger.debug(f"Configuration: {c}")
|
logger.debug(f"Configuration: {c}")
|
||||||
|
|
||||||
# calculate energy production for horizontal and vertical panels
|
# calculate energy production for horizontal and vertical panels
|
||||||
|
vertical_energy = calculate_energy_production_vertical(c)
|
||||||
|
logger.info("Energy production for vertical panels calculated successfully.")
|
||||||
|
logger.debug(f"Vertical Energy Production: {vertical_energy.sum()}")
|
||||||
|
|
||||||
horizontal_energy = calculate_energy_production_horizontal(c)
|
horizontal_energy = calculate_energy_production_horizontal(c)
|
||||||
logger.info("Energy production for horizontal panels calculated successfully.")
|
logger.info("Energy production for horizontal panels calculated successfully.")
|
||||||
logger.debug(f"Horizontal Energy Production: {horizontal_energy.sum()}")
|
logger.debug(f"Horizontal Energy Production: {horizontal_energy.sum()}")
|
||||||
|
|
||||||
vertical_energy = calculate_energy_production_vertical(c)
|
|
||||||
logger.info("Energy production for vertical panels calculated successfully.")
|
|
||||||
logger.debug(f"Vertical Energy Production: {vertical_energy.sum()}")
|
|
||||||
|
|
||||||
NOVA_scaledown = 0.75
|
NOVA_scaledown = 0.75
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user