Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
94 commits
Select commit Hold shift + click to select a range
7ff0532
Adds OEDI export by geography
asparke2 Sep 23, 2025
910aa6d
Rename columns for publication
asparke2 Sep 25, 2025
d6b93b8
Updates metadata processing
asparke2 Sep 29, 2025
98d4284
Unifies base and upgrade schemas
asparke2 Sep 30, 2025
68099af
Restructures metadata processing
asparke2 Oct 1, 2025
ee5acca
Set applicability and don't drop empty energy cols
asparke2 Oct 1, 2025
f11675d
Adds base to upgrade col consistency check
asparke2 Oct 1, 2025
1ee9d79
Modifies emissions col names
asparke2 Oct 2, 2025
1579203
Adds intensity columns
asparke2 Oct 2, 2025
29bdd9e
Sets col dtypes for SightGlass
asparke2 Oct 3, 2025
c892601
Disable some outputs
asparke2 Oct 7, 2025
4dbc10e
Makes output logging more accurate
asparke2 Oct 7, 2025
a229501
update Note column based on ResStock Technical Development Guide
Oct 7, 2025
df67daa
notes
Oct 7, 2025
bf61dc6
set no for some variables in the Publish in Full column
Oct 8, 2025
ca2bd36
data dictionary
Oct 8, 2025
4b4c164
out.component_load.XXX is not published in OEDI
Oct 8, 2025
db8200e
Publish In Full for meta data
Oct 10, 2025
4d3ffc7
add Timeseries Publish In Full
Oct 11, 2025
1612345
add data type column
Oct 12, 2025
df28a53
enumeration dictionary
Oct 12, 2025
e6cb26c
clean up
Oct 12, 2025
6840ede
data dict
Oct 12, 2025
c5982fb
deal with missing columns in testing
Oct 13, 2025
4e0b2aa
revise note
Oct 13, 2025
3a87b77
enumeration dictionary
Oct 14, 2025
fcd5f32
Update data_dictionary.tsv
jbrossman Oct 15, 2025
88d4baa
Update data_dictionary.tsv
jbrossman Oct 15, 2025
582dcb6
Merge pull request #1512 from NREL/jbrossman-data-dictionary-patch
asparke2 Oct 15, 2025
d36f917
add note description
Oct 15, 2025
251e666
update enumeration description
Oct 16, 2025
89405be
Create col in sdr_column_definitions with ResStock 2024.2 equivalents
ekpresent Oct 17, 2025
c6b12d8
Merge branch 'sdr_2025_release_1_postprocessing' of https://github.co…
ekpresent Oct 17, 2025
78705f5
Adds missing HP backup fuel use and modifies exported columns
asparke2 Oct 20, 2025
b3eed88
Fixes metadata postprocessing
asparke2 Oct 21, 2025
9046012
update enumeration dict
Oct 21, 2025
4f34916
Merge remote-tracking branch 'origin/sdr_2025_release_1_postprocessin…
asparke2 Oct 24, 2025
ea13bad
Create column name crosswalk
ekpresent Nov 3, 2025
6ba0dab
Adds missing hp backup load variables
asparke2 Nov 6, 2025
7215d52
Merge remote-tracking branch 'origin/sdr_2025_release_1_postprocessin…
asparke2 Nov 6, 2025
26a49aa
Adds process_metadata and Windows uv install to README
asparke2 Nov 25, 2025
36205e6
component load related changes - adding component loads to definition…
whiphi92 Nov 25, 2025
7287fb6
Merge remote-tracking branch 'origin/sdr_2025_release_1_postprocessin…
asparke2 Dec 1, 2025
e8d7623
Adds GISJOIN lookups for AK and HI
asparke2 Dec 1, 2025
ee378da
Simplify calls to process simulation outputs
asparke2 Dec 1, 2025
c5c2b66
Formatting fixes
asparke2 Dec 1, 2025
96f7741
Code cleanup
asparke2 Dec 3, 2025
6a3a823
Merge remote-tracking branch 'origin/develop' into sdr_2025_release_1…
asparke2 Dec 11, 2025
82686bc
Merge pull request #1509 from NREL/sdr_2025_release_1_postprocessing
asparke2 Dec 12, 2025
cf30c83
Stub new AddSharedSystem measure.
Dec 16, 2025
d931f26
Refactor run_analysis for HPXMLtoOpenStudio removal.
Dec 16, 2025
97869aa
Stub new AddSharedSystem argument in the lookup.
Dec 16, 2025
594383c
Update ApplyUpgrade test file after method refactor.
Dec 16, 2025
287de81
Make AddSharedSystem arguments into ResStockArguments arguments.
Dec 16, 2025
0735873
Update documentation.
Dec 16, 2025
493b7c1
Like ResStockArgumentsPostHPXML, allow same arguments for AddSharedSy…
Dec 16, 2025
1482b6f
Update documentation.
Dec 16, 2025
1a434f9
Update the resstock architecture page in RTD.
Dec 16, 2025
7fc8107
Merge branch 'latest-os-hpxml' into prototype-add-shared-system
Dec 16, 2025
58f065a
Fix geometry_building_num_units lookup for single-family detached.
Dec 16, 2025
6f18efc
Always set whole_sfa_or_mf_building_sim=false for single-family detac…
Dec 16, 2025
f76fbd0
Remove HPXMLtoOpenStudio from expected measure order.
Dec 16, 2025
20cb490
Revert postprocessing changes on develop.
Dec 16, 2025
539321a
Revert added files too.
Dec 16, 2025
f6f29eb
Temporarily comment openstudio-standards require.
Dec 16, 2025
6639a01
Update measures to pass array of unit multipliers since ResStockArgum…
Dec 16, 2025
5ce4c87
Update retain schedules csv argument for multiple files in ServerDire…
Dec 16, 2025
894e733
Make expected warning messages with MyBuilding more generic.
Dec 16, 2025
21828b6
Expose whole_sfa_or_mf_building_sim as an argument so we can try to g…
Dec 16, 2025
9ff5f32
Add expected warning about NumberofUnits greater than 1.
Dec 17, 2025
aa0601d
Add new SimulationOutput meta measure.
Dec 17, 2025
4f68ede
Update run_analysis.rb for new SimulationOutput meta measure.
Dec 17, 2025
7a5cbe4
Update run_analysis test for new SimulationOutput meta measure.
Dec 17, 2025
edb38c1
Update docs architecture for new SimulationOutput meta measure.
Dec 17, 2025
c26fe4e
Simulate whole buildings for testing project.
Dec 18, 2025
dddaf8f
Update expected column names for tests.
Dec 18, 2025
ef9edbb
Temporarily comment out detailed bills in project testing yml file.
Dec 18, 2025
02a861a
Introduce hvac_cooling_shared_system argument.
Dec 18, 2025
d63e2d8
Update documentation.
Dec 18, 2025
faae8b5
Clean up the lookup.
Dec 18, 2025
69b81bd
Update documentation.
Dec 18, 2025
8d935e3
Stub adjustments to results_timeseries.csv.
Dec 19, 2025
29229d3
Merge branch 'latest-os-hpxml' into prototype-add-shared-system
Dec 19, 2025
a5303d5
Merge branch 'latest-os-hpxml' into prototype-add-shared-system
Dec 21, 2025
0cc9490
Avoid output scaling for certain outputs.
Dec 22, 2025
6686560
Add dummy electric load in AddSharedSystem so we can test combining o…
Dec 22, 2025
c477637
Remove unused copied code for the time being.
Dec 22, 2025
4b998d0
Merge branch 'latest-os-hpxml' into prototype-add-shared-system
Dec 23, 2025
8c2899b
Uncomment openstudio-standards require line.
Dec 23, 2025
ac795cd
Check electricity end uses against net fuel use.
Dec 23, 2025
9f8d34e
Clean up meta measure and constants.
Dec 24, 2025
6bcc337
Merge branch 'latest-os-hpxml' into prototype-add-shared-system
Jan 14, 2026
7951451
Check sum of end use outputs match fuel outputs from new meta measure.
Jan 14, 2026
706445e
Use a more reasonable test object to avoid errors.
Jan 15, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -43,17 +43,14 @@ The following depicts the order in which workflow measure steps are applied:
===== ============================= ================== ========= ============= ==========================
1 BuildExistingModel Model No Meta measure ResStock
2 ApplyUpgrade Model Yes [#]_ Meta measure ResStock
3 HPXMLtoOpenStudio Model No OS-HPXML [#]_
4 UpgradeCosts Model No ResStock
5 *Other Model Measures* Model Yes Any [#]_
6 ReportSimulationOutput Reporting No OS-HPXML
7 ReportUtilityBills Reporting No OS-HPXML
8 *Other Reporting Measures* Reporting Yes Any [#]_
9 ServerDirectoryCleanup Reporting No ResStock
3 UpgradeCosts Model No ResStock
4 *Other Model Measures* Model Yes Any [#]_
5 SimulationOutput Reporting No Meta measure ResStock
6 *Other Reporting Measures* Reporting Yes Any [#]_
7 ServerDirectoryCleanup Reporting No ResStock
===== ============================= ================== ========= ============= ==========================

.. [#] Baseline models with no upgrades do not have the ApplyUpgrade measure applied.
.. [#] OS-HPXML refers to the `OpenStudio-HPXML <https://github.com/NREL/OpenStudio-HPXML>`_ repository.
.. [#] *Other Model Measures* do not need to originate from ResStock, but it is up to the user to ensure they work within the ResStock workflow.
.. [#] *Other Reporting Measures* do not need to originate from ResStock, but it is up to the user to ensure they work within the ResStock workflow.

Expand All @@ -63,9 +60,23 @@ The BuildExistingModel and ApplyUpgrade meta measures call the following model m
Index Measure Measure Type Optional Notes Source
===== ============================= ================== ========= ============= ==========================
1 ResStockArguments Model No ResStock
2 BuildResidentialHPXML Model No OS-HPXML
2 BuildResidentialHPXML Model No OS-HPXML [#]_
3 BuildResidentialScheduleFile Model No OS-HPXML
4 ResStockArgumentsPostHPXML Model No ResStock
5 HPXMLtoOpenStudio Model No [#]_ OS-HPXML
6 AddSharedSystem Model No ResStock
===== ============================= ================== ========= ============= ==========================

.. [#] OS-HPXML refers to the `OpenStudio-HPXML <https://github.com/NREL/OpenStudio-HPXML>`_ repository.
.. [#] The HPXMLtoOpenStudio measure is only called once in the workflow; it is called from BuildExistingModel for baseline models or from ApplyUpgrade for upgrade models.

The SimulationOutput meta measure calls the following reporting measures:

===== ============================= ================== ========= ============= ==========================
Index Measure Measure Type Optional Notes Source
===== ============================= ================== ========= ============= ==========================
1 ReportSimulationOutput Reporting No OS-HPXML
2 ReportUtilityBills Reporting No OS-HPXML
===== ============================= ================== ========= ============= ==========================

.. _model-measures:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29759,6 +29759,19 @@ From ``project_national`` the list of options, option stock saturation, and opti
-
-
-
* - ``hvac_cooling_shared_system``
- None
- None
- None
- None
- None
- None
- None
- None
- None
- None
- None
-

Properties
**********
Expand All @@ -29782,6 +29795,9 @@ Properties
* - ``hvac_cooling_system_cooling_compressor_type``
-
- The compressor type of the cooling system. Applies to Central ACs and Mini-Split ACs.
* - ``hvac_cooling_shared_system``
-
- The type of shared cooling system.
.. _hvac_cooling_partial_space_conditioning:

HVAC Cooling Partial Space Conditioning
Expand Down Expand Up @@ -30683,7 +30699,7 @@ Properties
- The rated heating efficiency of the integrated backup.
* - ``hvac_heating_shared_system``
-
- The type of shared system.
- The type of shared heating system.
* - ``hvac_heat_pump_backup_use_existing_system``
-
- Whether the heat pump uses the existing heating system as backup. If true and backup type of the heat pump is 'integrated', heat_pump_backup_xxx arguments are assigned values based on the existing heating system. If true and backup type of the heat pump is 'separate', heating_system_2_xxx arguments are assigned values based on the existing heating system. This argument is only applicable for heat pump upgrades.
Expand Down Expand Up @@ -31305,6 +31321,14 @@ From ``project_national`` the list of options, option stock saturation, and opti
- FanCoil
-
-
* - ``hvac_cooling_shared_system``
-
-
- FanCoil
- FanCoil
- FanCoil
-
-

Properties
**********
Expand Down Expand Up @@ -31354,7 +31378,10 @@ Properties
- The backup type. Use 'integrated' to represent e.g. built-in electric strip heat or dual-fuel integrated furnace. Use 'separate' to represent e.g. electric baseboard or boiler (based on Heating System 2).
* - ``hvac_heating_shared_system``
-
- The type of shared system.
- The type of shared heating system.
* - ``hvac_cooling_shared_system``
-
- The type of shared cooling system.
.. _hvac_system_is_faulted:

HVAC System Is Faulted
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,23 +8,27 @@
\texttt{hvac\_cooling\_system\_cooling\_efficiency\_type} & SEER2 & SEER2 & SEER2 \\ \hline
\texttt{hvac\_cooling\_system\_cooling\_efficiency} & 7.6 & 9.5 & 12.4 \\ \hline
\texttt{hvac\_cooling\_system\_cooling\_compressor\_type} & single stage & single stage & single stage \\ \hline
\texttt{hvac\_cooling\_shared\_system} & None & None & None \\ \hline
\hline
Option name & AC, SEER2 14.3 & Ducted Heat Pump & Non-Ducted Heat Pump \\ \hline
Stock saturation & 12\% & 15\% & 0.97\% \\ \hline
\texttt{hvac\_cooling\_system\_type} & central air conditioner & none & none \\ \hline
\texttt{hvac\_cooling\_system\_cooling\_efficiency\_type} & SEER2 & & \\ \hline
\texttt{hvac\_cooling\_system\_cooling\_efficiency} & 14.3 & & \\ \hline
\texttt{hvac\_cooling\_system\_cooling\_compressor\_type} & single stage & & \\ \hline
\texttt{hvac\_cooling\_shared\_system} & None & None & None \\ \hline
\hline
Option name & None & Room AC, CEER 8.4 & Room AC, CEER 9.7 \\ \hline
Stock saturation & 11\% & 0.43\% & 2.6\% \\ \hline
\texttt{hvac\_cooling\_system\_type} & none & room air conditioner & room air conditioner \\ \hline
\texttt{hvac\_cooling\_system\_cooling\_efficiency\_type} & & CEER & CEER \\ \hline
\texttt{hvac\_cooling\_system\_cooling\_efficiency} & & 8.4 & 9.7 \\ \hline
\texttt{hvac\_cooling\_shared\_system} & None & None & None \\ \hline
\hline
Option name & Room AC, CEER 10.6 & Room AC, CEER 11.9 & Shared Cooling \\ \hline
Stock saturation & 9.6\% & 7.4\% & 3.8\% \\ \hline
\texttt{hvac\_cooling\_system\_type} & room air conditioner & room air conditioner & \\ \hline
\texttt{hvac\_cooling\_system\_cooling\_efficiency\_type} & CEER & CEER & \\ \hline
\texttt{hvac\_cooling\_system\_cooling\_efficiency} & 10.6 & 11.9 & \\
\texttt{hvac\_cooling\_system\_cooling\_efficiency} & 10.6 & 11.9 & \\ \hline
\texttt{hvac\_cooling\_shared\_system} & None & None & \\
\end{customLongTable}
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
\texttt{hvac\_heat\_pump\_cooling\_load\_served\_fraction} & 1.0 & 1.0 & \\ \hline
\texttt{hvac\_heat\_pump\_backup\_type} & none & none & \\ \hline
\texttt{hvac\_heating\_shared\_system} & Baseboard & Baseboard & \\ \hline
\texttt{hvac\_cooling\_shared\_system} & & & FanCoil \\ \hline
\hline
Option name & Fan Coil Heating and Cooling, Electricity & Fan Coil Heating and Cooling, Fuel & None \\ \hline
Stock saturation & 1.3\% & 1.1\% & 89\% \\ \hline
Expand All @@ -32,5 +33,6 @@
\texttt{hvac\_heat\_pump\_heating\_load\_served\_fraction} & 1.0 & 1.0 & \\ \hline
\texttt{hvac\_heat\_pump\_cooling\_load\_served\_fraction} & 1.0 & 1.0 & \\ \hline
\texttt{hvac\_heat\_pump\_backup\_type} & none & none & \\ \hline
\texttt{hvac\_heating\_shared\_system} & FanCoil & FanCoil & \\
\texttt{hvac\_heating\_shared\_system} & FanCoil & FanCoil & \\ \hline
\texttt{hvac\_cooling\_shared\_system} & FanCoil & FanCoil & \\
\end{customLongTable}
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,6 @@
\texttt{hvac\_cooling\_system\_type} & & The type of system. \\ \hline
\texttt{hvac\_cooling\_system\_cooling\_efficiency\_type} & & The cooling efficiency type. Central ACs and Mini-Split ACs use SEER2 or EER2; Room ACs and Packaged Terminal ACs use CEER or EER. \\ \hline
\texttt{hvac\_cooling\_system\_cooling\_efficiency} & & The rated cooling efficiency. \\ \hline
\texttt{hvac\_cooling\_system\_cooling\_compressor\_type} & & The compressor type of the cooling system. Applies to Central ACs and Mini-Split ACs. \\
\texttt{hvac\_cooling\_system\_cooling\_compressor\_type} & & The compressor type of the cooling system. Applies to Central ACs and Mini-Split ACs. \\ \hline
\texttt{hvac\_cooling\_shared\_system} & & The type of shared cooling system. \\
\end{customLongTable}
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
\texttt{hvac\_heat\_pump\_backup\_type} & & The backup type. Use 'integrated' to represent e.g. built-in electric strip heat or dual-fuel integrated furnace. Use 'separate' to represent e.g. electric baseboard or boiler (based on Heating System 2). \\ \hline
\texttt{hvac\_heat\_pump\_backup\_fuel} & & The fuel type of the integrated backup. \\ \hline
\texttt{hvac\_heat\_pump\_backup\_heating\_efficiency} & Frac & The rated heating efficiency of the integrated backup. \\ \hline
\texttt{hvac\_heating\_shared\_system} & & The type of shared system. \\ \hline
\texttt{hvac\_heating\_shared\_system} & & The type of shared heating system. \\ \hline
\texttt{hvac\_heat\_pump\_backup\_use\_existing\_system} & & Whether the heat pump uses the existing heating system as backup. If true and backup type of the heat pump is 'integrated', heat\_pump\_backup\_xxx arguments are assigned values based on the existing heating system. If true and backup type of the heat pump is 'separate', heating\_system\_2\_xxx arguments are assigned values based on the existing heating system. This argument is only applicable for heat pump upgrades. \\ \hline
\texttt{hvac\_heat\_pump\_sizing\_is\_duct\_limited} & & Whether the (ducted) heat pump has an upper limit for autosized heating/cooling capacity and an adjusted blower fan efficiency (W/CFM) value. This argument is only applicable for heat pump upgrades. \\
\end{customLongTable}
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,6 @@
\texttt{hvac\_heat\_pump\_heating\_load\_served\_fraction} & & Fraction of load served by the HVAC system. \\ \hline
\texttt{hvac\_heat\_pump\_cooling\_load\_served\_fraction} & & Fraction of load served by the HVAC system. \\ \hline
\texttt{hvac\_heat\_pump\_backup\_type} & & The backup type. Use 'integrated' to represent e.g. built-in electric strip heat or dual-fuel integrated furnace. Use 'separate' to represent e.g. electric baseboard or boiler (based on Heating System 2). \\ \hline
\texttt{hvac\_heating\_shared\_system} & & The type of shared system. \\
\texttt{hvac\_heating\_shared\_system} & & The type of shared heating system. \\ \hline
\texttt{hvac\_cooling\_shared\_system} & & The type of shared cooling system. \\
\end{customLongTable}
120 changes: 120 additions & 0 deletions measures/AddSharedSystem/measure.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
# frozen_string_literal: true

# see the URL below for information on how to write OpenStudio measures
# http://nrel.github.io/OpenStudio-user-documentation/reference/measure_writing_guide/

require 'openstudio'
require 'openstudio-standards'
require_relative '../../resources/buildstock'

# start the measure
class AddSharedSystem < OpenStudio::Measure::ModelMeasure
# human readable name
def name
return 'Add Shared System'
end

# human readable description
def description
return 'TODO'
end

# human readable description of modeling approach
def modeler_description
return 'TODO'
end

# define the arguments that the user will input
def arguments(model) # rubocop:disable Lint/UnusedMethodArgument
args = OpenStudio::Measure::OSArgumentVector.new

# Allow same arguments as ResStockArguments measure

full_measure_path = File.join(File.dirname(__FILE__), '..', 'ResStockArguments', 'measure.rb')
measure_arguments = get_measure_instance(full_measure_path).arguments(model)
measure_arguments.each do |arg|
arg.setRequired(false)
args << arg
end

arg = OpenStudio::Measure::OSArgument.makeStringArgument('hpxml_path', false)
arg.setDisplayName('HPXML File Path')
arg.setDescription('Absolute/relative path of the HPXML file.')
args << arg

return args
end

# define what happens when the measure is run
def run(model, runner, user_arguments)
super(model, runner, user_arguments)

# use the built-in error checking
if !runner.validateUserArguments(arguments(model), user_arguments)
return false
end

# Assign the user inputs to variables
args = runner.getArgumentValues(arguments(model), user_arguments)
args = convert_args(arguments(model), args)

if args[:hvac_heating_shared_system] == 'None' && args[:hvac_cooling_shared_system] == 'None'
register_value(runner, 'shared_system_type', 'None')
return true
end

systems = { ['Baseboard', 'None'] => 'Boiler Baseboards Heating Only',
['None', 'FanCoil'] => 'Fan Coil Cooling Only',
['FanCoil', 'FanCoil'] => 'Fan Coil Heating and Cooling' }
system = systems[[args[:hvac_heating_shared_system], args[:hvac_cooling_shared_system]]]
if system.nil?
register_value(runner, 'shared_system_type', 'Unsupported')
return true
end

if system == 'Boiler Baseboards Heating Only'
# method_a(model, args[:hvac_heating_system], args[:hvac_heating_system_fuel])

model.getSpaces.each do |space|
next unless space.name.to_s.include? 'conditioned'

ee_def = OpenStudio::Model::ElectricEquipmentDefinition.new(model)
ee = OpenStudio::Model::ElectricEquipment.new(ee_def)
ee.setName("Test Object #{space.name}")
ee.setSpace(space)
ee_def.setName("Test Object #{space.name}")
ee_def.setDesignLevel(100)
ee.setSchedule(model.alwaysOnDiscreteSchedule)
ee.setEndUseSubcategory('AddSharedSystem')
end

elsif system == 'Fan Coil Cooling Only'
# method_b(model, args[:hvac_cooling_system])
elsif system == 'Fan Coil Heating and Cooling'
# method_c(model, args[:hvac_heating_system], args[:hvac_heating_system_fuel], args[:hvac_cooling_system])
end

register_value(runner, 'shared_system_type', system)

return true
end

def convert_args(measure_arguments, args)
measure_arguments.each do |arg|
arg_name = arg.name.to_sym
value = args[arg_name]
next if value.nil?

case arg.type.valueName.downcase
when 'double'
args[arg_name] = Float(value)
when 'integer'
args[arg_name] = Integer(value)
end
end
return args
end
end

# register the measure to be used by the application
AddSharedSystem.new.registerWithApplication
Loading
Loading