Light Exposure - Lux Hours

I could not find any discussions on this topic. Harmful light exposure to museum objects is often measured in lux hours (visible light is used also as a proxy for UV). I do not think this is something that can be generated out of the box with Honeybee. I created the attached solution, which works ok when there are a small number of surfaces to be analyzed, but it would be tedious to analyze a larger number of surfaces because I do not know how to visualize them all at once.

I would appreciate any suggestions regarding my solution, comments on lux hours and sensitive museum objects, and - I obviously think this would be a great added tool in Honeybee.

Thank you in advance!

(Obviously, I need to learn Python.) (480 KB)

Hi Ernst,

Since you’re using the visible light as a proxy for UV, can you use the sunlight hours analysis in Ladybug to evaluate surfaces of interest to you?

If this for an actual project and not just a thought experiment, I think your solution might be overly simplistic. Both CIE 157:2004 and LG8:2015 (which appears to defer to CIE 157:2004) mention limiting illuminance and limiting exposure (lux hours). Hours with direct solar irradiance are likely to exceed the limiting illuminance thresholds, which range from (200 to 50 lux as per Table 3.4 in CIE 157:2004). It makes sense to consider direct illuminance (an ab=0 simulation in Honeybee) separately from a normal illuminance calculation.

Assuming that the museum exhibits have low to high responsivity to light, an ideal solution would minimize direct sunlight. For daylight from the sky and reflected light, it might be enough to keep the illuminance levels below the recommended thresholds and then sum up lux-hours.

Daysim, the annual daylighting engine used by Honeybee and DIVA, is not very accurate for direct-sun calculations. You will get more accurate results if you run your analysis with Radiance directly.

Instead of considering the horizontal illuminance grids, one can create grids that correspond to the dimensions of the exhibit and then average those values. I think single points, as shown in your gh file might not suffice. Calculating lux-hours is by far the simplest part of such a simulation. It will only require averaging these points, extracting them into an array and then summing up that array.

Sunlight hours won’t give me annual lux hours. It is a step towards evaluating direct exposure though (noted by Sarith below).


Thank you for the detailed response, Sarith!

Could you elaborate on why Daysim is not accurate for direct illuminance analysis? Is there any way to run “pure” radiance analysis with Rhino/Grasshopper?

Just to be clear: what you are saying is that one should:

-Minimize (or eliminate) direct solar exposure

-Limit lux-hours

Or are there some additional considerations one might take into account? For example: ere you aware of a way to estimate UV more directly?

Could you also elaborate on:

“It will only require averaging these points, extracting them into an array and then summing up that array.”

I do not understand your logic here.

On a slightly separate note:

I believe the GH file I posted produces annual lux-hour values and it allows you to visualize results with colored grids. My actual file is more complex and I think visualizing results in this manner will help understand what kinds of design choices would limit lux-hours in the most exposed areas. The issue I have is that I can’t visualize all the results at once, but rather I have to cycle through the analyzed surfaces (only two surfaces in the example).

Can anyone point me towards a solution that would allow me to visualize any number of analysis surfaces at once?

Hi Ernst,

Daysim isn’t very accurate for direct illuminance analysis because the position of the sun is approximated to one of 65 locations for the entire year. The DDS version of Daysim is more accurate but that is not implemented in Honeybee. Pure Radiance calcs for the entire year will probably take over 10 days to run for the entire year (which is why use Daysim in the first place!).

With regards to your questions about solar exposure, and lux-hours, Yes, that is what I meant. Within the context of Daylighting simulations, it is almost useless to consider UV modeling. Radiance is a three channel ray-tracing engine, where each channel corresponds to a certain cone sensitivity. Daysim is a simplification of Radiance, which only considers the photopic curve. I am not sure if it would be possible to get the spectral reflectance distributions and spectral transmittance distributions of all the involved surfaces to get a proper idea of UV incident on a particular surface

I recommend referring CIE 157:2004 for more info on this (IES has an RP document on this topic, but since I haven’t referred it before, I can’t vouch for it).

About the array stuff, I was referring to the data structures in the python scheme of things. Assuming that you have a rectangular frame that you’d like to count lux hours for, it makes sense to average the illuminance on it at any given time. The sum of average illuminances for every hour will result in lux hours. The CIE document uses a similar logic for calculating threshold lux hours. For example, a threshold illuminance of 50 lux for 3000 hours will result in lux-hours of 150000, which will result in noticeable fading in high responsivity materials.