Daylight in buildings can be measured in many different ways, out of which daylight autonomy gives the closest approximation of the quantity of daylight in any space. Any daylight simulation program such as DIVA or Honeybee uses simulation engines like Radiance and Daysim and calculate the amount of daylight falling on each sensor point on a grid set by the user. Using the geometry data such as window openings, material colors and finishes and climate data, these programs are able to calculate this quantity and then correlate it with the building occupancy schedule to calculate the percentage of occupied hours when the lighting needs of a space are met by daylight only to output a Daylight Autonomy percentage.
While there is nothing wrong in the concept, it seems counter intuitive that the schedule that the simulations use are the building occupancy schedules. The reason behind this argument is that the building occupancy schedule contains the hours when the sun has actually set and therefore there is no daylight. (Or in rare cases, the hours when the building starts to function but sun is not yet risen) Although this might not be a big deal for an office with a smaller occupancy time such as those that operate from 9 AM to 5 PM, it does matter for any building that operates for a longer duration such as convention centers, transportation terminals etc. The closest approximation to this could be a modest 8 AM to 6 PM occupancy schedule to approximate the hours when sun will be out most of the time. However, in cities at higher latitudes, the difference in sunset times between winters and summers could be more than 6 hours (Seattle)!
In this case, it might make more sense to use the actual sunset and sunrise times for the location where the building is being built. Since this information is available in the climate TMY file, the only issue now is to generate a custom occupancy schedule in the way DIVA reads (we at LMN mostly use DIVA for the daylight analysis). The DIVA occupancy schedules are simple CSV files with “On” and “Off” value for each hour that tells the program whether the building is occupied or not. It looks something like this:
To test out this hypothesis, we created a Grasshopper component with a small and simple python script that can generate a custom schedule that looks like the one above, but just writes the occupancy values based on whether the sun is out at that hour or not. To find that information, we connected the ‘Ladybug_Sunpath’ component and took the sunPositionHOY(Hour of Year) output values to write the schedules.
The difference in the number of hours between the 8 AM to 6 PM occupancy schedule and the custom schedule is 762 hours (3650 compared to 4412 for Seattle). We tested the custom schedule on a shoebox and the difference in the DA percentage is a difference of about 4-5%. This would be more pronounced in cities with higher latitude and larger buildings.
Since the custom sunrise-sunset schedule consider the actual sunrise time and not the actual luminance values, the early hour and the late hour values mostly lead to low levels of illuminance in the spaces. When looking at DA at a target illuminance of 300 lux, this means a loss of quite a few hours and therefore it actually reduces the values compared to the 8AM to 6PM schedules. However, the difference was reversed when it was compared against a longer schedule of 6 AM to 10 AM. Also, the difference is less with locations at higher latitudes again owing to the difference in the hours without sun. If however, we consider a target illuminance of 100 lux (which might never be a case), the custom schedule does show an increase of about 5 % DA.
To address this issue, we created a minor jig in the python script, and correlated the occupancy values with actual building occupancy as well. What this does, is write a value ‘0’ (not-occupied) when either sun is not out or the actual building schedule is “OFF”, and write ‘1’ (occupied) when both sun is out and building is occupied. This makes the custom schedule much more accurate. The number of occupied hours now is 3958 (compared to 3650 with 8-6 schedule and 4412 with sunrise-sunset schedule). The daylight result with this new schedule is pretty close to the 8 to 6 schedule which means that in many cases, using the 8AM to 6PM schedule would give close to accurate results for daylight. However, using the custom schedule, would be more accurate. The difference is very pronounced if a longer occupancy schedule like 6AM to 10PM is used. The comparison results are below:
In summary, occupancy schedule is an important factor in the accuracy of the daylight results (for metrics related to time), and therefore using a correct occupancy schedule is very important. It is clear that using a generic schedule like the 8-6 schedule that comes with DIVA produces daylight autonomy results that are close to actual results. However, if the need is to get a more accurate number (and in certain climates especially in sites at a higher latitude) using a custom schedule can be beneficial.
You can download the GH file and component from here :
To use this component, please copy+paste the first 3 lines in the .csv files from any existing DIVA schedules located in (C:\DIVA\Schedules\) folder into the newly generated file, and copy this new file to C:\DIVA\Schedules\