openstudio-analysis 0.1.7 → 0.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/openstudio/analysis/server_api.rb +5 -2
- data/lib/openstudio/analysis/translator/excel.rb +32 -9
- data/lib/openstudio/analysis/version.rb +1 -1
- data/lib/openstudio/templates/analysis.json.erb +0 -8
- data/lib/openstudio-analysis.rb +2 -0
- data/spec/files/export/analysis/medium_office.json +648 -0
- data/spec/files/export/analysis/medium_office.zip +0 -0
- data/spec/files/export/analysis/small_seed.json +123 -127
- data/spec/files/export/analysis/small_seed.zip +0 -0
- data/spec/files/no_variables.xlsx +0 -0
- data/spec/files/setup_version_2.xlsx +0 -0
- data/spec/files/small_list.xlsx +0 -0
- data/spec/files/small_list_incomplete.xlsx +0 -0
- data/spec/files/small_list_repeat_vars.xlsx +0 -0
- data/spec/files/small_list_validation_errors.xlsx +0 -0
- data/spec/openstudio/analysis/translator/excel_spec.rb +16 -8
- metadata +19 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 331135d293b11122531a3b462900a2f4f3728da2
|
4
|
+
data.tar.gz: 3d168b780e1b66e0818cf2919f7220b7b5015de9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 528fcf1894bc7d1615a46ffa9c7e97eb03f7302558b58b962a31a95b16cb752382c1dd4e8ff86453bfec91790cbf12de58ab7a9e51db50a9173f9c5e69f19f64
|
7
|
+
data.tar.gz: 50b95802b1e19035ba1f1e1ff874851f4ae1b34496a53b1e7761c0c6edc11e91d539c8df2c491605ce1e9b25e7ea82cb5ca935846674a9558958730b78053498
|
@@ -8,6 +8,7 @@ module OpenStudio
|
|
8
8
|
def initialize(options = {})
|
9
9
|
defaults = {:hostname => "http://localhost:8080"}
|
10
10
|
options = defaults.merge(options)
|
11
|
+
@logger = Logger.new("faraday.log")
|
11
12
|
|
12
13
|
@hostname = options[:hostname]
|
13
14
|
|
@@ -16,7 +17,8 @@ module OpenStudio
|
|
16
17
|
# create connection with basic capabilities
|
17
18
|
@conn = Faraday.new(:url => @hostname) do |faraday|
|
18
19
|
faraday.request :url_encoded # form-encode POST params
|
19
|
-
faraday.
|
20
|
+
faraday.use Faraday::Response::Logger, @logger
|
21
|
+
#faraday.response @logger # log requests to STDOUT
|
20
22
|
faraday.adapter Faraday.default_adapter # make requests with Net::HTTP
|
21
23
|
end
|
22
24
|
|
@@ -24,7 +26,8 @@ module OpenStudio
|
|
24
26
|
@conn_multipart = Faraday.new(:url => @hostname) do |faraday|
|
25
27
|
faraday.request :multipart
|
26
28
|
faraday.request :url_encoded # form-encode POST params
|
27
|
-
faraday.
|
29
|
+
faraday.use Faraday::Response::Logger, @logger
|
30
|
+
#faraday.response :logger # log requests to STDOUT
|
28
31
|
faraday.adapter Faraday.default_adapter # make requests with Net::HTTP
|
29
32
|
end
|
30
33
|
end
|
@@ -33,7 +33,7 @@ module OpenStudio
|
|
33
33
|
end
|
34
34
|
|
35
35
|
# Initialize some other instance variables
|
36
|
-
@version =
|
36
|
+
@version = '0.0.1'
|
37
37
|
@name = nil
|
38
38
|
@machine_name = nil
|
39
39
|
@settings = {}
|
@@ -63,6 +63,9 @@ module OpenStudio
|
|
63
63
|
end
|
64
64
|
|
65
65
|
def validate_analysis
|
66
|
+
version_test = Semantic::Version.new @version
|
67
|
+
raise "Spreadsheet version #{@version} is no longer supported. Please upgrade your spreadsheet to at least 0.1.9" if version_test < '0.1.9'
|
68
|
+
|
66
69
|
# Setup the paths and do some error checking
|
67
70
|
raise "Measures directory '#{@measure_path}' does not exist" unless Dir.exists?(@measure_path)
|
68
71
|
|
@@ -135,11 +138,17 @@ module OpenStudio
|
|
135
138
|
true
|
136
139
|
end
|
137
140
|
|
138
|
-
def
|
141
|
+
def create_analysis_hash
|
139
142
|
# save the format in the OpenStudio analysis json format template without
|
140
143
|
# the correct weather files or models
|
141
144
|
@template_json = translate_to_analysis_json_template()
|
142
|
-
|
145
|
+
|
146
|
+
@template_json
|
147
|
+
end
|
148
|
+
|
149
|
+
def save_analysis
|
150
|
+
@template_json = create_analysis_hash
|
151
|
+
|
143
152
|
#validate_template_json
|
144
153
|
|
145
154
|
# iterate over each model and save the zip and json
|
@@ -164,6 +173,11 @@ module OpenStudio
|
|
164
173
|
# Templated analysis json file (this is what is returned)
|
165
174
|
puts "Analysis name is #{@name}"
|
166
175
|
openstudio_analysis_json = JSON.parse(analysis_template.result(get_binding))
|
176
|
+
|
177
|
+
openstudio_analysis_json['analysis']['problem'].merge!(@problem)
|
178
|
+
openstudio_analysis_json['analysis']['problem']['algorithm'].merge!(@algorithm)
|
179
|
+
|
180
|
+
|
167
181
|
|
168
182
|
@measure_index = -1
|
169
183
|
@variables['data'].each do |measure|
|
@@ -254,21 +268,21 @@ module OpenStudio
|
|
254
268
|
|
255
269
|
Zip::File.open(zipfile_name, Zip::File::CREATE) do |zipfile|
|
256
270
|
@weather_files.each do |filename|
|
257
|
-
puts " Adding #{filename}"
|
271
|
+
#puts " Adding #{filename}"
|
258
272
|
zipfile.add("./weather/#{File.basename(filename)}", filename)
|
259
273
|
end
|
260
274
|
|
261
275
|
Dir.glob("#{@measure_path}/**/*.rb").each do |measure|
|
262
276
|
next if measure.include?("spec") # don't include the spec folders nor files
|
263
277
|
measure_name = measure.split(File::SEPARATOR).last(2).first
|
264
|
-
puts " Adding ./measures/#{measure_name}/#{File.basename(measure)}"
|
278
|
+
#puts " Adding ./measures/#{measure_name}/#{File.basename(measure)}"
|
265
279
|
zipfile.add("./measures/#{measure_name}/#{File.basename(measure)}", measure)
|
266
280
|
end
|
267
281
|
|
268
|
-
puts "Adding #{model[:path]}"
|
282
|
+
#puts "Adding #{model[:path]}"
|
269
283
|
zipfile.add("./seed/#{File.basename(model[:path])}", model[:path])
|
270
284
|
|
271
|
-
puts "Adding in other files #{@other_files.inspect}"
|
285
|
+
#puts "Adding in other files #{@other_files.inspect}"
|
272
286
|
@other_files.each do |others|
|
273
287
|
Dir[File.join(others[:path], '**', '**')].each do |file|
|
274
288
|
zipfile.add(file.sub(others[:path], "./lib/#{others[:lib_zip_name]}/"), file)
|
@@ -385,9 +399,18 @@ module OpenStudio
|
|
385
399
|
@export_path = File.expand_path(File.join(@root_path, row[1])) if row[0] == "Export Directory"
|
386
400
|
@measure_path = File.expand_path(File.join(@root_path, row[1])) if row[0] == "Measure Directory"
|
387
401
|
elsif b_problem_setup
|
388
|
-
|
402
|
+
if row[0]
|
403
|
+
v = row[1]
|
404
|
+
v.to_i if v % 1 == 0
|
405
|
+
@problem["#{row[0].snake_case}"] = v
|
406
|
+
end
|
407
|
+
|
389
408
|
elsif b_algorithm_setup
|
390
|
-
|
409
|
+
if row[0]
|
410
|
+
v = row[1]
|
411
|
+
v = v.to_i if v % 1 == 0
|
412
|
+
@algorithm["#{row[0].snake_case}"] = v
|
413
|
+
end
|
391
414
|
elsif b_weather_files
|
392
415
|
if row[0] == "Weather File"
|
393
416
|
@weather_files += Dir.glob(File.expand_path(File.join(@root_path, row[1])))
|
@@ -2,17 +2,9 @@
|
|
2
2
|
"analysis": {
|
3
3
|
"display_name": "<%= @name %>",
|
4
4
|
"name": "<%= @name.downcase.gsub(" ", "_") %>",
|
5
|
-
"algorithm": {
|
6
|
-
"sample_method": "lhs",
|
7
|
-
"number_of_samples": <%= @problem['number_of_samples'].to_i %>
|
8
|
-
},
|
9
5
|
"parameter_space": [],
|
10
6
|
"problem": {
|
11
|
-
"number_of_samples_KEEP_HERE_UNTIL_ALGO_IS_IMPLEMENTED": <%= @problem['number_of_samples'].to_i %>,
|
12
|
-
"number_of_samples": <%= @problem['number_of_samples'].to_i %>,
|
13
7
|
"algorithm": {
|
14
|
-
"number_of_samples": <%= @problem['number_of_samples'].to_i %>,
|
15
|
-
"sample_method": <%= @problem['sensitivity_method'].to_i %>
|
16
8
|
},
|
17
9
|
"name": "Problem",
|
18
10
|
"workflow": []
|