Class: URBANopt::Scenario::DISCOPostProcessor
- Inherits:
-
Object
- Object
- URBANopt::Scenario::DISCOPostProcessor
- Defined in:
- lib/urbanopt/scenario/scenario_post_processor_disco.rb
Instance Method Summary collapse
-
#initialize(scenario_report, disco_results_dir_name = 'disco') ⇒ DISCOPostProcessor
constructor
DISCOPostProcessor post-processes DISCO results to selected DISCO results and integrate them in scenario and feature reports.
-
#load_data ⇒ Object
load disco data.
-
#load_disco_data ⇒ Object
load disco data (if exists).
-
#run ⇒ Object
run disco post_processor.
-
#save_disco_scenario ⇒ Object
save disco scenario fields.
Constructor Details
#initialize(scenario_report, disco_results_dir_name = 'disco') ⇒ DISCOPostProcessor
DISCOPostProcessor post-processes DISCO results to selected DISCO results and integrate them in scenario and feature reports.
- parameters:
-
scenaro_report- ScenarioBase - An object of Scenario_report class. -
disco_results_dir_name- _directory name of disco results
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/urbanopt/scenario/scenario_post_processor_disco.rb', line 22 def initialize(scenario_report, disco_results_dir_name = 'disco') if !scenario_report.nil? @scenario_report = scenario_report @disco_results_dir = File.join(@scenario_report.directory_name, disco_results_dir_name) else raise 'scenario_report is not valid' end # initialize disco data @disco_data = {} # initialize disco json results @disco_json_results = {} # initialize logger @@logger ||= URBANopt::Reporting::DefaultReports.logger end |
Instance Method Details
#load_data ⇒ Object
load disco data
50 51 52 53 |
# File 'lib/urbanopt/scenario/scenario_post_processor_disco.rb', line 50 def load_data # load selected disco data load_disco_data end |
#load_disco_data ⇒ Object
load disco data (if exists)
41 42 43 44 45 46 47 |
# File 'lib/urbanopt/scenario/scenario_post_processor_disco.rb', line 41 def load_disco_data # load disco upgrade summary disco_json_filename = File.join(@disco_results_dir, 'upgrade_summary.json') if File.exist?(disco_json_filename) @disco_json_results = JSON.parse(File.read(disco_json_filename)) end end |
#run ⇒ Object
run disco post_processor
102 103 104 105 106 107 108 109 110 111 112 |
# File 'lib/urbanopt/scenario/scenario_post_processor_disco.rb', line 102 def run # load data load_data # save additional global disco fields save_disco_scenario # save the updated scenario reports # set save_feature_reports to false since only the scenario reports should be saved # now, set save csv reports to false @scenario_report.save(file_name = 'scenario_report_disco', save_feature_reports = false, save_csv_reports = false) end |
#save_disco_scenario ⇒ Object
save disco scenario fields
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
# File 'lib/urbanopt/scenario/scenario_post_processor_disco.rb', line 58 def save_disco_scenario @scenario_report.scenario_power_distribution_cost = URBANopt::Reporting::DefaultReports::ScenarioPowerDistributionCost.new # RESULTS res = [] # read result from JSON report res = @disco_json_results['results'] @scenario_report.scenario_power_distribution_cost.results = res # OUTPUTS out = {} # read result from JSON report out[:log_file] = @disco_json_results['outputs']['log_file'] out[:jobs] = [] @disco_json_results['outputs']['jobs'].each do |job| out[:jobs] << job end @scenario_report.scenario_power_distribution_cost.outputs = out # VIOLATION SUMMARY vio = [] # read result from JSON report vio = @disco_json_results['violation_summary'] @scenario_report.scenario_power_distribution_cost.violation_summary = vio # COSTS PER EQUIPMENT cos = [] # read result from JSON report cos = @disco_json_results['costs_per_equipment'] @scenario_report.scenario_power_distribution_cost.costs_per_equipment = cos # EQUIPMENT equ = [] # read result from JSON report equ = @disco_json_results['equipment'] @scenario_report.scenario_power_distribution_cost.equipment = equ end |