Hi,
I am using bifacial_radiance and leveraging the gendaylit2manual() function to generate skies based on the Perez All-Weather model. This approach works very well for fixed-tilt systems, since I can fully control the inputs (DNI, DHI, sun elevation, sun azimuth) and loop over timestamps (e.g., from a pandas DataFrame). This allows direct comparison with other simulation tools such as PVsyst on a per-timestep basis.
A simplified version of my workflow for fixed-tilt systems is:
for i, row in df_filt.iterrows():
dni = row['DNI']
dhi = row['DHI']
sunalt = row['ELEV']
sunaz = row['AZIM']
albedo = row['albedo']
mysky = demo.gendaylit2manual(
dni=dni,
dhi=dhi,
sunalt=sunalt,
sunaz=sunaz,
)
demo.setGround(albedo)
octfile = demo.makeOct(demo.getfilelist())
This workflow gives me full control over the sky definition and works as expected.
However, I am struggling to apply the same approach to single-axis (N-S) tracking systems.
From my understanding, the typical bifacial_radiance workflow for tracking relies on built-in functions (e.g., set1axis / gendaylit-based workflows), which internally handle sun position and tracking angles. This seems to conflict with the manual sky generation approach using gendaylit2manual().
My questions are:
- Is it possible to use gendaylit2manual() together with N-S tracking simulations in bifacial_radiance?
- If yes, what is the recommended workflow to:
- define a custom sky per timestamp, and
- correctly update tracker geometry (tilt/rotation) for each timestamp?
- If not, is there an alternative way to achieve full control over irradiance inputs (DNI/DHI) while still simulating tracking systems?
My goal is to run timestep-by-timestep simulations with externally provided meteo data and compare results directly with other tools.
Any guidance or example workflows would be greatly appreciated.
Hi,
I am using bifacial_radiance and leveraging the gendaylit2manual() function to generate skies based on the Perez All-Weather model. This approach works very well for fixed-tilt systems, since I can fully control the inputs (DNI, DHI, sun elevation, sun azimuth) and loop over timestamps (e.g., from a pandas DataFrame). This allows direct comparison with other simulation tools such as PVsyst on a per-timestep basis.
A simplified version of my workflow for fixed-tilt systems is:
for i, row in df_filt.iterrows():
dni = row['DNI']
dhi = row['DHI']
sunalt = row['ELEV']
sunaz = row['AZIM']
albedo = row['albedo']
This workflow gives me full control over the sky definition and works as expected.
However, I am struggling to apply the same approach to single-axis (N-S) tracking systems.
From my understanding, the typical bifacial_radiance workflow for tracking relies on built-in functions (e.g., set1axis / gendaylit-based workflows), which internally handle sun position and tracking angles. This seems to conflict with the manual sky generation approach using gendaylit2manual().
My questions are:
My goal is to run timestep-by-timestep simulations with externally provided meteo data and compare results directly with other tools.
Any guidance or example workflows would be greatly appreciated.