Question-and-Answer Resource for the Building Energy Modeling Community
Get started with the Help page
Ask Your Question
5

openstudio 1.9 report SI unit

asked 2015-10-09 09:39:03 -0600

ngkhanh's avatar

updated 2015-10-10 05:34:14 -0600

Hello i installed lastest 1.9 version Openstudio but the Openstudio report did change into IP system although i checked SI setup in OS menu. It's my setup fault or all report in 1.9 likes that. I have not this problem in OS 1.8

edit retag flag offensive close merge delete

3 Answers

Sort by ยป oldest newest most voted
3

answered 2015-10-09 14:01:14 -0600

updated 2015-10-09 14:07:24 -0600

Adding to @David Goldwasser's answer: since the new default report is available in measure form on the BCL, you could edit the os_lib_reporting.rb file (in the resources folder of the measure) to remove all the instances where the measure converts a value from SI to IP with OpenStudio::convert*, and then run your edited measure from the measures tab. See this page for more information on the built-in unit conversion.

*among other changes you might have to make.

edit flag offensive delete link more

Comments

your answer is highly appreciated but would you please explain more, using steps or screenshots on how to do so. i'm quite a beginner with openstudio and i've no programming background. regards

shahin1992's avatar shahin1992  ( 2016-05-16 04:34:53 -0600 )edit
2

answered 2015-10-09 13:46:24 -0600

Since we switched to an HTML based simulation report in 1.4.0 it hasn't responded to the units setting in the application. For SI results you can view the standard energyplus output from within OpenStudio, or write a custom SI measure.

Unit aware measures (reporting or model) would be a good feature request to add to the OpenStudio User Voice page.

In fact it looks like someone else has requested this, but you can add your vote to the request.

edit flag offensive delete link more
1

answered 2015-12-05 11:14:08 -0600

ngkhanh's avatar

updated 2015-12-05 11:17:44 -0600

I get those following codes from os_lib_reporting.rb file. Plesae give me some instruction for change them into SI unit of value and unit shown in result.

First type:

# EUI
    eui =  sqlFile.netSiteEnergy.get / query_results.get
    display = 'EUI'
    source_units = 'GJ/m^2'
    target_units = 'kBtu/ft^2'
    value = OpenStudio.convert(eui, source_units, target_units).get
    value_neat = OpenStudio.toNeatString(value, 2, true)
    general_building_information[:data] << [display, value_neat, target_units]
    runner.registerValue(display, value, target_units)
    return general_building_information
  end

Second type:

# summary of what to show for each type of air loop component
  def self.air_loop_component_summary_logic(component, model)
    if component.to_AirLoopHVACOutdoorAirSystem.is_initialized
      component = component.to_AirLoopHVACOutdoorAirSystem.get
      # get ControllerOutdoorAir
      controller_oa = component.getControllerOutdoorAir

      sizing_source_units = 'm^3/s'
      sizing_target_units = 'cfm'
      if controller_oa.maximumOutdoorAirFlowRate.is_initialized
        sizing_ip = OpenStudio.convert(controller_oa.maximumOutdoorAirFlowRate.get, sizing_source_units, sizing_target_units).get
        sizing_ip_neat = OpenStudio.toNeatString(sizing_ip, 2, true)
      else
        sizing_ip_neat = 'Autosized'
      end
      value_source_units = 'm^3/s'
      value_target_units = 'cfm'
      if controller_oa.minimumOutdoorAirFlowRate.is_initialized
        value_ip = OpenStudio.convert(controller_oa.minimumOutdoorAirFlowRate.get, value_source_units, value_target_units).get
        value_ip_neat = OpenStudio.toNeatString(value_ip, 2, true)
      else
        value_ip_neat = 'Autosized'
      end
      data_array = [component.iddObject.name, sizing_ip_neat, sizing_target_units, 'Minimum Outdoor Air Flow Rate', value_ip_neat, value_target_units, '']

    elsif component.to_CoilCoolingDXSingleSpeed.is_initialized
      component = component.to_CoilCoolingDXSingleSpeed.get
      sizing_source_units = 'W'
      sizing_target_units = 'Btu/h'
      if component.ratedTotalCoolingCapacity.is_initialized
        sizing_ip = OpenStudio.convert(component.ratedTotalCoolingCapacity.get, sizing_source_units, sizing_target_units).get
        sizing_ip_neat = OpenStudio.toNeatString(sizing_ip, 2, true)
      else
        sizing_ip_neat = 'Autosized'
      end
edit flag offensive delete link more

Comments

it's no problem for me with Openstudio.convert - Removing all Openstudio.Convert syntax is easy , i . what should i replace for Openstudio.convert and how to change the related demonstrating code for showing the value and units like : sizing_ip = OpenStudio.convert(component.ratedTotalCoolingCapacity.get, sizing_source_units, sizing_target_units).get general_building_information[:data] << [display, value_neat, target_units] runner.registerValue(display, value, target_units)

I have no experiences with ruby/python programing style before so it's a little hard for me. Thanks

ngkhanh's avatar ngkhanh  ( 2015-12-05 13:32:06 -0600 )edit

I'd recommend getting some grounding in Ruby in general - this is a good place to start. Basically, you can get the value you want with value = component.ratedTotalCoolingCapacity.get. Default units are SI, so the value is in Watts, so you don't need the convert method. Passing value to the method toNeatString makes the value look nice (instead of some long decimal point float), so I would keep that. Then you pass that neat string value to the data array, which becomes the entry for that component row in the table.

ericringold's avatar ericringold  ( 2015-12-06 10:21:58 -0600 )edit
2

If you want to change as little code as possible you can just set target units to the same string as source units. Just need to make sure that the resulting value is only for display purposes. If any calculations are done on it, it may be expecting IP, which would create issues. I think I generally only converted to IP when I was getting ready to display results.

      value_source_units = 'm^3/s'
      value_target_units = 'm^3/s'
David Goldwasser's avatar David Goldwasser  ( 2015-12-07 09:46:46 -0600 )edit

I'm modifying Openstudio standard report to SI. I dont want to need to rerun the whole simulation each times for checking my result. How to run report measure only ?

ngkhanh's avatar ngkhanh  ( 2016-01-02 11:54:33 -0600 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Training Workshops

Careers

Question Tools

3 followers

Stats

Asked: 2015-10-09 09:39:03 -0600

Seen: 1,573 times

Last updated: Dec 05 '15