Skip to content

Commit

Permalink
Merge pull request #220 from urbanopt/develop
Browse files Browse the repository at this point in the history
Prep version 0.5.2
  • Loading branch information
kflemin authored Apr 1, 2021
2 parents c06071a + 76bd232 commit 868949f
Show file tree
Hide file tree
Showing 872 changed files with 172,450 additions and 57,256 deletions.
15 changes: 14 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,21 @@
# Changelog

## Version 0.5.2

Date Range 3/9/21 - 3/31/21

- Fixed [#190]( https://github.com/urbanopt/urbanopt-cli/issues/190 ), Graceful rescue from "uo" command
- Fixed [#191]( https://github.com/urbanopt/urbanopt-cli/issues/191 ), add error catching
- Fixed [#197]( https://github.com/urbanopt/urbanopt-cli/issues/197 ), Update copyrights for 2021
- Fixed [#200]( https://github.com/urbanopt/urbanopt-cli/issues/200 ), Scenario Level Assumptions File cannot be Defined by User
- Fixed [#202]( https://github.com/urbanopt/urbanopt-cli/issues/202 ), Use the new Ditto-Reader CLI in the UO CLI - Remove Pycall Dependency
- Fixed [#214]( https://github.com/urbanopt/urbanopt-cli/issues/214 ), reopt-scenario processing should allow selecting assumptions file
- Fixed [#215]( https://github.com/urbanopt/urbanopt-cli/issues/215 ), Support running GMT (DES) directly from the main CLI
- Fixed [#219]( https://github.com/urbanopt/urbanopt-cli/issues/219 ), Avoid saving feature reports twice.

## Version 0.5.1

Date Range 12/17/20 - 3/8/20
Date Range 12/17/20 - 3/8/21

- Fixed [#157]( https://github.com/urbanopt/urbanopt-cli/issues/157 ), Edit maximum value for y axis in visualization graphs
- Fixed [#158]( https://github.com/urbanopt/urbanopt-cli/issues/158 ), Check units for Gas:Facility in visualization graphs
Expand Down
16 changes: 8 additions & 8 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
cmake_minimum_required(VERSION 3.10.2)
cmake_policy(SET CMP0048 NEW)

project(UrbanOptCLI VERSION 0.5.0)
project(UrbanOptCLI VERSION 0.5.1)

include(FindOpenStudioSDK.cmake)

Expand Down Expand Up @@ -89,16 +89,16 @@ option(BUILD_PACKAGE "Build package" OFF)
# need to update the MD5sum for each platform and url below
if(UNIX)
if(APPLE)
set(URBANOPT_CLI_GEMS_ZIP_FILENAME "urbanopt-cli-gems-20201229-darwin.tar.gz")
set(URBANOPT_CLI_GEMS_ZIP_EXPECTED_MD5 "729fc3e28d067507cc468dc44a013c36")
set(URBANOPT_CLI_GEMS_ZIP_FILENAME "urbanopt-cli-gems-20210315-darwin.tar.gz")
set(URBANOPT_CLI_GEMS_ZIP_EXPECTED_MD5 "5df336da22c90534c8940c41e6489b37")
else()
set(URBANOPT_CLI_GEMS_ZIP_FILENAME "urbanopt-cli-gems-20201229-linux.tar.gz")
set(URBANOPT_CLI_GEMS_ZIP_EXPECTED_MD5 "611f8b4ea835279b25003dbbf4f87a8c")
set(URBANOPT_CLI_GEMS_ZIP_FILENAME "urbanopt-cli-gems-20210315-linux.tar.gz")
set(URBANOPT_CLI_GEMS_ZIP_EXPECTED_MD5 "6e92becdac2d67046340daf16faea8b2")
endif()
elseif(WIN32)
if(CMAKE_CL_64)
set(URBANOPT_CLI_GEMS_ZIP_FILENAME "urbanopt-cli-gems-20201230-windows.tar.gz")
set(URBANOPT_CLI_GEMS_ZIP_EXPECTED_MD5 "147b1dce55875b4d39b953de3def4b0c")
set(URBANOPT_CLI_GEMS_ZIP_FILENAME "urbanopt-cli-gems-20210315-windows.tar.gz")
set(URBANOPT_CLI_GEMS_ZIP_EXPECTED_MD5 "be2cde77dde2891d8111454bb280bbdc")
endif()
endif()

Expand Down Expand Up @@ -127,7 +127,7 @@ if(UNIX)
if(APPLE)
set(RUBY_ZIP_FILENAME "ruby-2.5.5-darwin.tar.gz")
set(RUBY_ZIP_EXPECTED_MD5 "27e3e91bd19f4edf1c04d31c7345ce5d")
else()
else()
set(RUBY_ZIP_FILENAME "ruby-2.5.5-linux.tar.gz")
set(RUBY_ZIP_EXPECTED_MD5 "5c9ab1aeb3366e6e579592cbb72ddbef")
endif()
Expand Down
12 changes: 11 additions & 1 deletion LICENSE.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# License

URBANopt™, Copyright (c) 2019-2020, Alliance for Sustainable Energy, LLC, and other
URBANopt™, Copyright (c) 2019-2021, Alliance for Sustainable Energy, LLC, and other
contributors. All rights reserved.

Redistribution and use in source and binary forms, with or without modification,
Expand All @@ -17,6 +17,16 @@ Neither the name of the copyright holder nor the names of its contributors may b
used to endorse or promote products derived from this software without specific
prior written permission.

Redistribution of this software, without modification, must refer to the software
by the same designation. Redistribution of a modified version of this software
(i) may not refer to the modified version by the same designation, or by any
confusingly similar designation, and (ii) must refer to the underlying software
originally provided by Alliance as “URBANopt”. Except to comply with the foregoing,
the term “URBANopt”, or any confusingly similar designation may not be used to
refer to any modified version of this software or any modified version of the
underlying software originally provided by Alliance without the prior written
consent of Alliance.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
Expand Down
22 changes: 16 additions & 6 deletions Rakefile
Original file line number Diff line number Diff line change
@@ -1,21 +1,31 @@
# *********************************************************************************
# URBANopt™, Copyright (c) 2019-2020, Alliance for Sustainable Energy, LLC, and other
# URBANopt™, Copyright (c) 2019-2021, Alliance for Sustainable Energy, LLC, and other
# contributors. All rights reserved.
#

# Redistribution and use in source and binary forms, with or without modification,
# are permitted provided that the following conditions are met:
#

# Redistributions of source code must retain the above copyright notice, this list
# of conditions and the following disclaimer.
#

# Redistributions in binary form must reproduce the above copyright notice, this
# list of conditions and the following disclaimer in the documentation and/or other
# materials provided with the distribution.
#

# Neither the name of the copyright holder nor the names of its contributors may be
# used to endorse or promote products derived from this software without specific
# prior written permission.
#

# Redistribution of this software, without modification, must refer to the software
# by the same designation. Redistribution of a modified version of this software
# (i) may not refer to the modified version by the same designation, or by any
# confusingly similar designation, and (ii) must refer to the underlying software
# originally provided by Alliance as “URBANopt”. Except to comply with the foregoing,
# the term “URBANopt”, or any confusingly similar designation may not be used to
# refer to any modified version of this software or any modified version of the
# underlying software originally provided by Alliance without the prior written
# consent of Alliance.

# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
Expand Down
105 changes: 100 additions & 5 deletions example_files/example_project_combined.json
Original file line number Diff line number Diff line change
Expand Up @@ -620,6 +620,7 @@
"attic_type": "attic - vented",
"system_type": "Residential - furnace and central air conditioner",
"heating_system_fuel_type": "natural gas",
"onsite_parking_fraction": 1,
"template": "Residential IECC 2015 - Customizable Template Sep 2020"
},
"geometry": {
Expand Down Expand Up @@ -660,7 +661,7 @@
"floor_area": 4260,
"footprint_area": 2130,
"number_of_stories_above_ground": 2,
"number_of_stories": 2,
"number_of_stories": 3,
"number_of_bedrooms": 4,
"foundation_type": "basement - unconditioned",
"attic_type": "attic - unvented",
Expand Down Expand Up @@ -700,13 +701,13 @@
"type": "Feature",
"properties": {
"id": "16",
"name": "Residential 3",
"name": "Residenital 3",
"type": "Building",
"building_type": "Single-Family Detached",
"floor_area": 5500,
"footprint_area": 4655,
"number_of_stories_above_ground": 1,
"number_of_stories": 1,
"footprint_area": 1833,
"number_of_stories_above_ground": 2,
"number_of_stories": 3,
"number_of_bedrooms": 5,
"foundation_type": "basement - conditioned",
"attic_type": "attic - conditioned",
Expand Down Expand Up @@ -749,6 +750,100 @@
]
]
}
},
{
"type": "Feature",
"properties": {
"id": "17",
"name": "Residential 4",
"type": "Building",
"building_type": "Single-Family Attached",
"floor_area": 18320,
"footprint_area": 9160,
"number_of_stories_above_ground": 2,
"number_of_stories": 2,
"number_of_bedrooms": 6,
"foundation_type": "slab",
"attic_type": "attic - vented",
"system_type": "Residential - furnace and room air conditioner",
"heating_system_fuel_type": "fuel oil",
"number_of_residential_units": 4,
"template": "Residential IECC 2015 - Customizable Template Sep 2020"
},
"geometry": {
"type": "Polygon",
"coordinates": [
[
[
-78.84911656368786,
42.81252982958267
],
[
-78.84890198696667,
42.81258229954116
],
[
-78.84870886759019,
42.81219926882915
],
[
-78.84893774986267,
42.812152045720157
],
[
-78.84911656368786,
42.81252982958267
]
]
]
}
},
{
"type": "Feature",
"properties": {
"id": "18",
"name": "Residential 5",
"type": "Building",
"building_type": "Multifamily",
"floor_area": 28636,
"footprint_area": 14318,
"number_of_stories_above_ground": 2,
"number_of_stories": 2,
"number_of_bedrooms": 16,
"foundation_type": "slab",
"attic_type": "flat roof",
"system_type": "Residential - furnace and room air conditioner",
"heating_system_fuel_type": "wood",
"number_of_residential_units": 8,
"template": "Residential IECC 2015 - Customizable Template Sep 2020"
},
"geometry": {
"type": "Polygon",
"coordinates": [
[
[
-78.84857296921837,
42.81262558701127
],
[
-78.84849429130556,
42.81245768365727
],
[
-78.84770035743714,
42.8126465749435
],
[
-78.8478219506942,
42.812809230906598
],
[
-78.84857296921837,
42.81262558701127
]
]
]
}
}
],
"mappers": [],
Expand Down
49 changes: 31 additions & 18 deletions example_files/mappers/Baseline.rb
Original file line number Diff line number Diff line change
Expand Up @@ -278,10 +278,7 @@ def commercial_building_types
'Service',
'Uncovered Parking',
'Covered Parking',
'Mixed use',
'Single-Family',
'Multifamily (2 to 4 units)',
'Multifamily (5 or more units)'
'Mixed use'
]
end

Expand Down Expand Up @@ -453,6 +450,7 @@ def create_osw(scenario, features, feature_names)
when 'Multifamily'
args[:geometry_building_num_units] = feature.number_of_residential_units
args[:geometry_unit_type] = "apartment unit"
args[:geometry_corridor_position] = 'Double Exterior' # if we had an interior corridor, we'd have to subtract its area from the footprint area
end

args[:geometry_foundation_type] = "SlabOnGrade"
Expand All @@ -475,12 +473,11 @@ def create_osw(scenario, features, feature_names)
args[:geometry_foundation_height] = 8.0
end

args[:geometry_attic_type] = "ConditionedAttic"
args[:geometry_attic_type] = "VentedAttic"
args[:geometry_roof_type] = "flat"
begin
case feature.attic_type
when 'attic - vented'
args[:geometry_attic_type] = "VentedAttic"
args[:geometry_roof_type] = "gable"
when 'attic - unvented'
args[:geometry_attic_type] = "UnventedAttic"
Expand All @@ -505,17 +502,27 @@ def create_osw(scenario, features, feature_names)
args[:geometry_num_bedrooms] = feature.number_of_bedrooms
args[:geometry_num_bedrooms] /= args[:geometry_building_num_units]

# SCHEDULES

args[:schedules_type] = 'stochastic'
begin
schedules_random_seed = Float(feature_id)
if schedules_random_seed % 1 == 0
args[:schedules_random_seed] = Integer(schedules_random_seed)
num_garage_spaces = 0
if feature.onsite_parking_fraction
num_garage_spaces = 1
if args[:geometry_cfa] > 2500.0
num_garage_spaces = 2
end
end
args[:geometry_garage_width] = 12.0 * num_garage_spaces
args[:geometry_garage_protrusion] = 1.0
rescue
end

args[:neighbor_left_distance] = 0.0
args[:neighbor_right_distance] = 0.0

# SCHEDULES

args[:schedules_type] = 'stochastic'
args[:feature_id] = feature_id.hex

# HVAC

system_type = "Residential - furnace and central air conditioner"
Expand Down Expand Up @@ -566,10 +573,7 @@ def create_osw(scenario, features, feature_names)
args[:cooking_range_oven_fuel_type] = args[:heating_system_fuel]
args[:clothes_dryer_fuel_type] = args[:heating_system_fuel]

# VENTILATION

args[:kitchen_fans_present] = true
args[:bathroom_fans_present] = true
# WATER HEATER

args[:water_heater_fuel_type] = args[:heating_system_fuel]

Expand Down Expand Up @@ -644,13 +648,20 @@ def create_osw(scenario, features, feature_names)
args.update(row) unless row.nil?
end

# VENTILATION
# MECHANICAL VENTILATION

mechvent_filepath = File.join(File.dirname(__FILE__), "residential/mechanical_ventilation.tsv")
mechvent_filepath = File.join(File.dirname(__FILE__), 'residential/mechanical_ventilation.tsv')
mechvent = get_lookup_tsv(args, mechvent_filepath)
row = get_lookup_row(args, mechvent, template_vals)
args.update(row) unless row.nil?

# EXHAUST

exhaust_filepath = File.join(File.dirname(__FILE__), 'residential/exhaust.tsv')
exhaust = get_lookup_tsv(args, exhaust_filepath)
row = get_lookup_row(args, exhaust, template_vals)
args.update(row) unless row.nil?

# WATER HEATER

water_heater_filepath = File.join(File.dirname(__FILE__), 'residential/water_heater.tsv')
Expand Down Expand Up @@ -679,6 +690,8 @@ def create_osw(scenario, features, feature_names)

args.keys.each do |arg_name|
unless default_args.keys.include? arg_name
next if arg_name == 'feature_id'

puts "Argument '#{arg_name}' is unknown."
end
end
Expand Down
Loading

0 comments on commit 868949f

Please sign in to comment.