honeybee-openstudio 2.34.8 → 2.34.9

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: badea0be05124c62097e7732560433b8a1d8941aecc21af3e9ab8f2e7b19b837
4
- data.tar.gz: 53ddac62aaffe8a76f01ac3f8bf02f0b167dca4fc0aa3b509c6b11e3d6181fec
3
+ metadata.gz: c4d3ae6c224643694b834d77b34a79550d059ad0df9104d90509ae931a844337
4
+ data.tar.gz: 1ed909608fb5019d1549d26b3200cf238304edf590f993a59c016941d6c1e6a6
5
5
  SHA512:
6
- metadata.gz: 98558f65b918299e64548cb37ff75d2a9042970ccf64cb9ece29a7b772645e06d59a1e3ba212948ef312873c72d7a721d9066212d0947248905285e9bf5cb34d
7
- data.tar.gz: 901a6c78784757090e5873f282bdfc870de96c4cbe96d061ac8c80831431f51432fb79f3c8f5ae8e258b5c0904b878312e443a0a8d28eb41e2bd290dc09fbf02
6
+ metadata.gz: 4be5fafda6b741381169f7318d713dd34e74ddf22c7bc0c8d49bf4db8f2929e4136d1b861e6fc7eb29474d164e2e11d3157e1b820fc14c2f51e479278475fa71
7
+ data.tar.gz: 5e347d2612b3a8fe6fce4a283ee1144759d09e9e7d355b9f36123c8f79dcf223a63d942b5137dafee1cd1cea872535a40a6878a5be307eb1eb370c0b09975fc5
@@ -15,8 +15,8 @@ jobs:
15
15
  run: |
16
16
  echo $(pwd)
17
17
  echo $(ls)
18
- docker pull nrel/openstudio:3.5.0
19
- docker run --name test --rm -d -t -v $(pwd):/work -w /work nrel/openstudio:3.5.0
18
+ docker pull nrel/openstudio:3.6.1
19
+ docker run --name test --rm -d -t -v $(pwd):/work -w /work nrel/openstudio:3.6.1
20
20
  docker exec -t test pwd
21
21
  docker exec -t test ls
22
22
  docker exec -t test bundle update
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
 
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = 'honeybee-openstudio'
7
- spec.version = '2.34.8'
7
+ spec.version = '2.34.9'
8
8
  spec.authors = ['Tanushree Charan', 'Dan Macumber', 'Chris Mackey', 'Mostapha Sadeghipour Roudsari']
9
9
  spec.email = ['tanushree.charan@nrel.gov', 'chris@ladybug.tools']
10
10
 
@@ -25,14 +25,14 @@ Gem::Specification.new do |spec|
25
25
  spec.required_ruby_version = "~> 2.7.0"
26
26
 
27
27
  spec.add_development_dependency "bundler", "~> 2.1"
28
- spec.add_development_dependency "public_suffix", "~> 3.1.1"
29
- spec.add_development_dependency "json-schema", "~> 2.8.1"
30
- spec.add_development_dependency "rake", "~> 13.0"
28
+ spec.add_development_dependency "public_suffix", "~> 5.0.3"
29
+ spec.add_development_dependency "json-schema", "~> 2.7.0"
30
+ spec.add_development_dependency "rake", "~> 13.0.6"
31
31
  spec.add_development_dependency "rspec", "~> 3.9"
32
32
  spec.add_development_dependency "rubocop", "~> 1.15.0"
33
33
  end
34
34
 
35
35
  spec.add_dependency 'json_pure'
36
36
  spec.add_dependency 'openstudio-extension', '0.6.1'
37
- spec.add_dependency 'openstudio-standards', '~> 0.3.0'
37
+ spec.add_dependency 'openstudio-standards', '~> 0.4.0'
38
38
  end
@@ -11,30 +11,30 @@ gem 'builder', '3.2.4'
11
11
  gem 'docile', '1.4.0'
12
12
  gem 'faraday', '1.0.1'
13
13
  gem 'git', '1.12.0'
14
- gem 'json-schema', '2.8.1'
14
+ gem 'json-schema', '2.7.0'
15
15
  gem 'json_pure', '2.6.3'
16
16
  gem 'macaddr', '1.7.2'
17
17
  gem 'minitar', '0.9'
18
+ gem 'minitest', '5.14.4'
19
+ gem 'minitest-reporters', '1.4.3'
18
20
  gem 'multipart-post', '2.3.0'
19
21
  gem 'octokit', '4.18.0'
20
- gem 'openstudio-calibration', '0.7.0'
21
- gem 'openstudio-common-measures', '0.7.0'
22
- gem 'openstudio-ee', '0.7.0'
23
- gem 'openstudio-extension', '0.6.0'
24
- gem 'openstudio-geb', '0.2.1'
25
- gem 'openstudio-load-flexibility-measures', '0.6.1'
22
+ gem 'openstudio-calibration', '0.8.0'
23
+ gem 'openstudio-common-measures', '0.8.0'
24
+ gem 'openstudio-ee', '0.8.0'
25
+ gem 'openstudio-extension', '0.6.1'
26
+ gem 'openstudio-geb', '0.3.2'
27
+ gem 'openstudio-load-flexibility-measures', '0.7.0'
26
28
  gem 'openstudio_measure_tester', '0.3.2'
27
- gem 'openstudio-model-articulation', '0.7.0'
28
- gem 'openstudio-standards', '0.3.0'
29
+ gem 'openstudio-model-articulation', '0.8.0'
30
+ gem 'openstudio-standards', '0.4.0'
29
31
  gem 'openstudio-workflow', '2.3.1'
30
32
  gem 'parallel', '1.19.2'
31
33
  gem 'parser', '3.2.2.2'
32
- gem 'public_suffix', '5.0.1'
33
- gem 'minitest', '5.14.4'
34
- gem 'minitest-reporters', '1.4.3'
35
- gem 'rchardet', '1.8.0'
36
- gem 'rake', '13.0.6'
34
+ gem 'public_suffix', '5.0.3'
37
35
  gem 'rainbow', '3.1.1'
36
+ gem 'rake', '13.0.6'
37
+ gem 'rchardet', '1.8.0'
38
38
  gem 'regexp_parser', '2.8.1'
39
39
  gem 'rexml', '3.2.5'
40
40
  gem 'rubocop', '1.15.0'
@@ -50,12 +50,12 @@ gem 'simplecov-html', '0.12.3'
50
50
  gem 'spreadsheet', '1.2.9'
51
51
  gem 'systemu', '2.6.5'
52
52
  gem 'unicode-display_width', '2.4.2'
53
- gem 'urbanopt-core', '0.9.0'
54
- gem 'urbanopt-geojson', '0.9.0'
55
- gem 'urbanopt-reporting', '0.7.0'
53
+ gem 'urbanopt-core', '0.10.0'
54
+ gem 'urbanopt-geojson', '0.10.0'
55
+ gem 'urbanopt-reporting', '0.8.0'
56
56
  gem 'uuid', '2.3.9'
57
57
  gem 'yamler', '0.1.0'
58
58
  gem 'zliby', '0.0.5'
59
59
 
60
60
  # include the honeybee-openstudio-gem
61
- gem 'honeybee-openstudio', '2.33.4'
61
+ gem 'honeybee-openstudio', '2.34.9'
@@ -85,6 +85,55 @@ module Honeybee
85
85
  defaults[:placeholder_value][:default]
86
86
  end
87
87
 
88
+ def full_annual_values(openstudio_model)
89
+ # get start and end date times
90
+ yd = openstudio_model.getYearDescription
91
+ date_time = OpenStudio::DateTime.new(yd.makeDate(1, 1), OpenStudio::Time.new(0,0,0))
92
+ start_date_time = OpenStudio::DateTime.new(yd.makeDate(start_month, start_day), OpenStudio::Time.new(0,0,0))
93
+ end_date_time = OpenStudio::DateTime.new(yd.makeDate(12, 31), OpenStudio::Time.new(1,0,0))
94
+
95
+ # get timestep
96
+ interval_length = 60 / timestep
97
+ dt = OpenStudio::Time.new(0, 0, interval_length, 0)
98
+
99
+ # get values and date times
100
+ values = @hash[:values]
101
+ num_values = values.size
102
+ i_values = 0
103
+ padded_values = []
104
+ date_times = []
105
+ pv = placeholder_value
106
+
107
+ while date_time < end_date_time
108
+ date = date_time.date
109
+ time = date_time.time
110
+ date_times << "#{date.dayOfMonth} #{date.monthOfYear.valueName} #{time.hours.to_s.rjust(2,'0')}:#{time.minutes.to_s.rjust(2,'0')}"
111
+
112
+ if date_time < start_date_time
113
+ padded_values << pv
114
+ elsif i_values < num_values
115
+ padded_values << values[i_values]
116
+ i_values += 1
117
+ else
118
+ padded_values << pv
119
+ end
120
+
121
+ date_time += dt
122
+ end
123
+
124
+ # if there are still more values to add, this indicates a reversed period
125
+ if i_values + 1 < num_values
126
+ overwrite_index = 0
127
+ while i_values != num_values
128
+ padded_values[overwrite_index] = values[i_values]
129
+ i_values += 1
130
+ overwrite_index += 1
131
+ end
132
+ end
133
+
134
+ return padded_values, date_times
135
+ end
136
+
88
137
  def to_schedule_fixed_interval(openstudio_model)
89
138
  # create the new schedule
90
139
  os_fi_schedule = OpenStudio::Model::ScheduleFixedInterval.new(openstudio_model)
@@ -92,9 +141,11 @@ module Honeybee
92
141
  unless @hash[:display_name].nil?
93
142
  os_fi_schedule.setDisplayName(@hash[:display_name])
94
143
  end
95
- # assign start date
96
- os_fi_schedule.setStartMonth(start_month)
97
- os_fi_schedule.setStartDay(start_day)
144
+
145
+ # assign start date and the out of range value
146
+ os_fi_schedule.setStartMonth(1)
147
+ os_fi_schedule.setStartDay(1)
148
+ os_fi_schedule.setOutOfRangeValue(placeholder_value)
98
149
 
99
150
  # assign the interpolate value
100
151
  os_fi_schedule.setInterpolatetoTimestep(interpolate)
@@ -115,8 +166,9 @@ module Honeybee
115
166
 
116
167
  # assign the values as a timeseries
117
168
  year_description = openstudio_model.getYearDescription
118
- start_date = year_description.makeDate(start_month, start_day)
119
- timeseries = OpenStudio::TimeSeries.new(start_date, openstudio_interval_length, OpenStudio.createVector(@hash[:values]), '')
169
+ start_date = year_description.makeDate(1, 1)
170
+ all_values, date_times = full_annual_values(openstudio_model)
171
+ timeseries = OpenStudio::TimeSeries.new(start_date, openstudio_interval_length, OpenStudio.createVector(all_values), '')
120
172
  os_fi_schedule.setTimeSeries(timeseries)
121
173
 
122
174
  os_fi_schedule
@@ -127,41 +179,9 @@ module Honeybee
127
179
  # in order to combine schedules in the same csv file they must have the same key
128
180
  schedule_key = "#{@hash[:identifier]}_#{start_month}_#{start_day}_#{timestep}"
129
181
 
130
- # get start and end date times
131
- yd = openstudio_model.getYearDescription
132
- date_time = OpenStudio::DateTime.new(yd.makeDate(1, 1), OpenStudio::Time.new(0,0,0))
133
- start_date_time = OpenStudio::DateTime.new(yd.makeDate(start_month, start_day), OpenStudio::Time.new(0,0,0))
134
- end_date_time = OpenStudio::DateTime.new(yd.makeDate(12, 31), OpenStudio::Time.new(1,0,0))
135
-
136
- # get timestep
182
+ # get the list of values for the whole year
137
183
  interval_length = 60 / timestep
138
- dt = OpenStudio::Time.new(0, 0, interval_length, 0)
139
-
140
- # get values and date times
141
- values = @hash[:values]
142
- num_values = values.size
143
- i_values = 0
144
- padded_values = []
145
- date_times = []
146
- pv = placeholder_value
147
-
148
- while date_time < end_date_time
149
- date = date_time.date
150
- time = date_time.time
151
- date_times << "#{date.dayOfMonth} #{date.monthOfYear.valueName} #{time.hours.to_s.rjust(2,'0')}:#{time.minutes.to_s.rjust(2,'0')}"
152
-
153
- if date_time < start_date_time
154
- padded_values << pv
155
- elsif i_values < num_values
156
- padded_values << values[i_values]
157
- i_values += 1
158
- else
159
- padded_values << pv
160
- end
161
-
162
- date_time += dt
163
- end
164
-
184
+ padded_values, date_times = full_annual_values(openstudio_model)
165
185
 
166
186
  # find or create the schedule csv object which will hold the filename and columns
167
187
  filename = nil
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: honeybee-openstudio
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.34.8
4
+ version: 2.34.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tanushree Charan
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: exe
13
13
  cert_chain: []
14
- date: 2023-07-12 00:00:00.000000000 Z
14
+ date: 2023-08-02 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: json_pure
@@ -47,14 +47,14 @@ dependencies:
47
47
  requirements:
48
48
  - - "~>"
49
49
  - !ruby/object:Gem::Version
50
- version: 0.3.0
50
+ version: 0.4.0
51
51
  type: :runtime
52
52
  prerelease: false
53
53
  version_requirements: !ruby/object:Gem::Requirement
54
54
  requirements:
55
55
  - - "~>"
56
56
  - !ruby/object:Gem::Version
57
- version: 0.3.0
57
+ version: 0.4.0
58
58
  description: Library and measures for translating between Honeybee JSON schema and
59
59
  OpenStudio Model schema (OSM).
60
60
  email: