class URBANopt::Reporting::DefaultReports::ScenarioPowerDistribution
scenario_power_distribution include eletrical power distribution systems information.
Attributes
capacitors[RW]
distribution_lines[RW]
substations[RW]
Public Class Methods
new(hash = {})
click to toggle source
ScenarioPowerDistribution
class initialize all scenario_power_distribution attributes: :substations
, :distribution_lines
- parameters:
-
hash
- Hash - A hash which may contain a deserialized power_distribution.
# File lib/urbanopt/reporting/default_reports/scenario_power_distribution.rb, line 27 def initialize(hash = {}) hash.delete_if { |k, v| v.nil? } hash = defaults.merge(hash) @substations = hash[:substations] @distribution_lines = hash[:distribution_lines] @capacitors = hash[:capacitors] # initialize class variables @@validator and @@schema @@validator ||= Validator.new @@schema ||= @@validator.schema end
Public Instance Methods
add_capacitor(hash = {})
click to toggle source
Add a capacitor
# File lib/urbanopt/reporting/default_reports/scenario_power_distribution.rb, line 102 def add_capacitor(hash = {}) hash.delete_if { |k, v| v.nil? } hash = defaults.merge(hash) # fields: nominal_capacity cap = {} cap['nominal_capacity'] = hash[:nominal_capacity] cap end
add_line(hash = {})
click to toggle source
Add a line
# File lib/urbanopt/reporting/default_reports/scenario_power_distribution.rb, line 87 def add_line(hash = {}) hash.delete_if { |k, v| v.nil? } hash = defaults.merge(hash) # fields: length, ampacity, commercial_line_type line = {} line['length'] = hash[:length] line['ampacity'] = hash[:ampacity] line['commercial_line_type'] = hash[:commercial_line_type] @distribution_lines << line end
add_substation(hash = {})
click to toggle source
Add a substation
# File lib/urbanopt/reporting/default_reports/scenario_power_distribution.rb, line 75 def add_substation(hash = {}) hash.delete_if { |k, v| v.nil? } hash = defaults.merge(hash) # field: nominal_voltage substation = {} substation['nominal_voltage'] = hash[:nominal_voltage] @substations << substation end
defaults()
click to toggle source
Assigns default values if attribute values do not exist.
# File lib/urbanopt/reporting/default_reports/scenario_power_distribution.rb, line 43 def defaults hash = {} hash[:substations] = [] hash[:distribution_lines] = [] hash[:capacitors] = [] return hash end
to_hash()
click to toggle source
Converts to a Hash equivalent for JSON serialization.
-
Exclude attributes with nil values.
-
Validate power_distribution hash properties against schema.
# File lib/urbanopt/reporting/default_reports/scenario_power_distribution.rb, line 58 def to_hash result = {} result[:substations] = @substations if @substations result[:distribution_lines] = @distribution_lines if @distribution_lines result[:capacitors] = @capacitors if @capacitors # validate power_distribution properties against schema if @@validator.validate(@@schema[:definitions][:ScenarioPowerDistribution][:properties], result).any? raise "scenario_power_distribution properties does not match schema: #{@@validator.validate(@@schema[:definitions][:ScenarioPowerDistribution][:properties], result)}" end return result end