Efficiently Constraining Analysis Periods When Simulating for Thermal Comfort

I’m working to advise my colleagues on when it’s appropriate to use a full year analysis period and when one might want to use a particular subset of a year, both for more accurate results and to reduce computational burden.

The generic goal is to analyze radiation to inform a shading solution to provide thermal comfort for the building’s inhabitants.

In the past I’ve charted dry bulb temperature and isolated those hours throughout the year where the temperature is above approx. 70-75deg F / 21-23deg C.

I get the same exact result (mid-March through mid-October for NYC) if I use the Ladybug Psychometric chart used with only basic inputs (dry bulb, humidity, pressure) and isolate the HOY which fall into the comfort/passive polygon. I think this is due to the consistently high humidity and pressure in the NYC area, meaning their effect on the analysis period is negligible.

At any rate I just wanted to make sure that my thinking is correct on this and that I’m isolating this period in the most efficient manner possible, as I would like to present this workflow to my colleagues. I’ve attached my file below and would appreciate anyone taking the time to review it.

ComfortAnalysisPeriod 002.gh (105 KB)

Hi Brian,

These seems like a good enough method for determining a period of natural ventilation if that is what you are going for (when you said that the results are for the “comfort of the occupants”, I assumed that there is no cooling system). I think that you will also find agreement with the ASHRAE Adaptive Comfort Standard, which states that you can have a free-running a building with natural ventilation in any month where the average monthly temperature is above 10C. I remember that, in NYC, this is from March to October.

If you want to be hard core about your shading study for comfort, I can recommend a workflow with the “comfort shade benefit evaluator” component that I have not gotten the chance to make a tutorial video for yet. The attached file outlines how to do it in your case. You have to run an energy simulation of unconditioned zones (free-running) for that analysis period that you just selected and you can use the resulting indoor temperature from the simulation to do a comfort shade benefit run. This will ensure that you are blocking the sun that makes the inside of the building too hot but still letting in the sun when you want it in this period. Of course, if you want to look at the effect of direct sun falling on occupants inside the building, that is a different ball game and one where you should use the “Solar Adjusted Temperature” component.

Let me know if you have any questions of if this is helpful.


011_Comfort Shade Benefit Evaluation for Bldg.gh (248 KB)

Ha yes I do want to be hard core. Thanks for the explanation and the file - will take a look.

Hey Chris - getting the following error from the Honeybee Masses2Zones component:

No value connected for zoneProgram_. Office::OpenOffice has been assigned by default.
An IsConditioned value of False has been applied to all 15 connected zones.
No value connected for zoneNames_. All zones will be assigned a default name based on their order in the list.
Runtime error (KeyNotFoundException): honeybee_OpenStudioStandardsFile
line 4215, in assignScheduleBasedOnProgram, “<string>”
line 4199, in init, “<string>”
line 138, in main, “<string>”
line 156, in script

Screenshot below. Do you know what’s going on? Thanks.


Ah yes. You can get that error if the OpenStudio libraries do not automatically download correctly. This is an issue that a few other people experienced when working on computers with firewalls. You can find the solution here:


You just have to manually download three files and place them in different parts of your C:\ladybug\ and C:\Users\yourUserName\AppData\Roaming\Ladybug\ folder.

Let me know if you run into any issues or if you have any questions with this.


Andrew pointed out this breaks for southern hemisphere which I should’ve caught since half of my work is in Melbourne…

See attached file for how I dealt with this. It works but could likely be more efficient. Also let me know if this functionality already exists elsewhere - would hate to duplicate efforts.

ComfortAnalysisPeriod 003.gh (352 KB)

Thanks Chris that worked beautifully. See my updated readme I’m providing to IT for standard deployment - let me know if I’m missing anything!

readme.txt (409 Bytes)

Hi Brian,

Everything looks good in your text file. I can’t think of anything else that should be added to it right now. There’s a chance that there might be a few more OpenStudio things that would need to be installed to run the OpenStudio component in the future but I would not worry about it for now (https://github.com/mostaphaRoudsari/Honeybee/issues/214#issuecommen…).

Ah. You are right about the southern hemisphere thing. I know that the solution seems a lot less elegant now and the most elegant one that I can think of would be to write it all into a python component. I am currently working with a nat vent expert who is helping me define natural ventilation schedules for E+ and I will be sure to include the nat vent period as an output from this so that you can make this definition more elegant in the future. I will let you know when I have to component together.

Also, all Ladybug components and the EnergyPlus simulation should still be able to deal with that reversed analysis period and let me know if you find otherwise for some reason.


Hi Chris and Brian, My understanding is that the issue with southern hemisphere is already solved with the help of Chris. Let me know if you still need me to take a look. -Mostapha

The southern hemisphere is solved for the time being and I’m working to make something more elegant. Also, Brian, regarding your text file of programs/files to be installed manually, Mostapha just recently put a lot of these in one place and it may be helpful to include this in the text:


Thanks Chris - if you have a minute please review the latest readme attached to verify that I have all files and file paths included and correct.

readme.txt (409 Bytes)

The readme looks good!