class URBANopt::Scenario::DISCOPostProcessor
Public Class Methods
new(scenario_report, disco_results_dir_name = 'disco')
click to toggle source
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
# 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
Public Instance Methods
load_data()
click to toggle source
load disco data
# File lib/urbanopt/scenario/scenario_post_processor_disco.rb, line 52 def load_data # load selected disco data load_disco_data end
load_disco_data()
click to toggle source
load disco data (if exists)
# 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()
click to toggle source
run disco post_processor
# File lib/urbanopt/scenario/scenario_post_processor_disco.rb, line 108 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()
click to toggle source
save disco scenario fields
# File lib/urbanopt/scenario/scenario_post_processor_disco.rb, line 61 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