Skip to content

Time steps

Solving occurs at discrete times which are defined in the weather file. Each timestamp loaded represents a specific period, the definition of which is one of the following:

  • “End of period”, includes all the time in the period before, starting from the previous timestamp,

  • “Start of period”, the time after and up to the next timestamp,

  • “Middle of period”, the period extends forwards and backwards by equal amounts, accounting for half the time step in each direction, centred on the timestamp,

  • “Instantaneous”, a special case in which the period is zero and all items in the weather file are treated as being true at the timestamp.1

The length of the period (i.e., the amount of time between adjacent time stamps) can be any integer number of minutes. The time steps throughout the entire simulation period must be uniform. It is optional to include the night steps within the weather.2

The time series output files provided by SunSolve Yield are created using the same definition of the timestamp as the input weather file.

The solar position is determined at a single representative time within each observation period. This representative time corresponds to the average position of the sun during that period and is obtained by applying an offset to the recorded timestamp. The offset depends on how the timestamp is defined (e.g., start, middle, or end of period) and whether the period falls near sunrise, during the day, or at sunset.

For timestamps defined as the end of the period, the solar position is shifted backward by approximately half the period duration. At sunrise and sunset, additional offsets account for the partial illumination of those intervals. For timestamps defined as the start of the period, the offset is forward-shifted, reflecting the time before sunrise or until sunset as appropriate. When timestamps are defined as the middle of the period, smaller corrections are applied depending on whether sunrise or sunset occurs before or after the midpoint of the interval.


Time offsets used for solar position calculation
Observation periodFirst period of sunlight (mins)During the day (mins)Last period of sunlight (mins)
End of periodMinutesAfterSunrise2-\frac{\text{MinutesAfterSunrise}}{2}timestep2-\frac{\text{timestep}}{2}(timestep+MinsAfterSunset)2-\frac{(\text{timestep} + \text{MinsAfterSunset})}{2}
Start of period(timestep+MinsBeforeSunrise)2\frac{(\text{timestep} + \text{MinsBeforeSunrise})}{2}timestep2\frac{\text{timestep}}{2}MinsUntilSunset2\frac{\text{MinsUntilSunset}}{2}
Middle of periodSee next table0See next table
Instantaneous000

Additional offsets when using middle of period
EventOccurs in first half of period (mins)Occurs in second half of period (mins)
SunriseMinsAfterSunrise+(timestep2×MinsAfterSunrise)4\text{MinsAfterSunrise} + \frac{(\text{timestep} - 2 \times \text{MinsAfterSunrise})}{4}(timestep2×MinsBeforeSunrise)4\frac{(\text{timestep} - 2 \times \text{MinsBeforeSunrise})}{4}
Sunset0(timestep2×MinsAfterSunset)40 - \frac{(\text{timestep} - 2 \times \text{MinsAfterSunset})}{4}0MinsBeforeSunset(timestep2×MinsBeforeSunset)40 - \text{MinsBeforeSunset} - \frac{(\text{timestep} - 2 \times \text{MinsBeforeSunset})}{4}

Note that the solar position is intentionally shifted during sunrise and sunset to ensure that the modeled sun remains above the horizon. In standard weather files, irradiance values for these hours are already scaled to account for reduced sunlight duration within each period. The offsets described here simply align SunSolve’s solar geometry calculations with that same physical interpretation.

Conversion between solar time and universal time

Section titled “Conversion between solar time and universal time”

SunSolve performs the ray tracing in local solar time (LST) when the sun is at its zenith at midday. If the weather data is loaded in universal time (UTC) or legal time (e.g., UTC + 3h), then SunSolve must convert from UTC to LST.

LST is calculated from UTC by

LST=UTC+60×(4×Longitude+EoT),LST = UTC + 60 \times (4 \times \text{Longitude} + EoT),

where EoT is the ‘Equation of Time’ which accounts for the eccentricity of the earth’s orbit and axial tilt. SunSolve’s default is to implement the equations from [Reno2012]:

EoT=9.87×sin(2×A)7.53×cos(A)1.5×sin(A)EoT = 9.87 \times \sin(2 \times A) - 7.53 \times \cos(A) - 1.5 \times \sin(A)A=2π×(DayOfYear81)365A = 2\pi \times \frac{(\text{DayOfYear} - 81)}{365}

It is also possible to select the equations for EoT used by PVSyst and those published in Blanco–Muriel [Blanco2001], which are both calcuated by the day and therefore have steps at UTC midnight (which can occur during the day at LST).


  1. This last case is not typically used for yield solving, but is rather applied in certain cases where experimental data comparison requires it.

  2. If included then the module temperature is calculated at these times, this is important if the transient temperature model is applied as the modules tend to start the day at a temperature lower than the ambient.