Class: URBANopt::Reporting::DefaultReports::Wind

Inherits:
Object
  • Object
show all
Defined in:
lib/urbanopt/reporting/default_reports/wind.rb

Overview

Onsite wind system attributes

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(hash = {}) ⇒ Wind

Initialize Wind attributes from a hash. Wind attributes currently are limited to power capacity.

parameters:
  • hash - Hash - A hash containting a :size_kw key/value pair which represents the nameplate capacity in kilowatts (kW)



63
64
65
66
67
68
69
70
71
72
73
74
75
76
# File 'lib/urbanopt/reporting/default_reports/wind.rb', line 63

def initialize(hash = {})
  hash.delete_if { |k, v| v.nil? }

  @size_kw = hash[:size_kw]
  @avg_energy_kwh = hash[:average_yearly_energy_produced_kwh]
  @size_class = hash[:size_class]

  # initialize class variables @@validator and @@schema
  @@validator ||= Validator.new
  @@schema ||= @@validator.schema

  # initialize @@logger
  @@logger ||= URBANopt::Reporting::DefaultReports.logger
end

Instance Attribute Details

#average_yearly_energy_produced_kwhObject

Float - power capacity in kilowatts



54
55
56
# File 'lib/urbanopt/reporting/default_reports/wind.rb', line 54

def average_yearly_energy_produced_kwh
  @average_yearly_energy_produced_kwh
end

#size_classObject

Float - power capacity in kilowatts



54
55
56
# File 'lib/urbanopt/reporting/default_reports/wind.rb', line 54

def size_class
  @size_class
end

#size_kwObject

Float - power capacity in kilowatts



54
55
56
# File 'lib/urbanopt/reporting/default_reports/wind.rb', line 54

def size_kw
  @size_kw
end

Class Method Details

.add_wind(existing_wind, new_wind) ⇒ Object

Merge Wind systems



94
95
96
97
98
99
100
101
102
103
104
105
106
107
# File 'lib/urbanopt/reporting/default_reports/wind.rb', line 94

def self.add_wind(existing_wind, new_wind)
  if existing_wind.size_kw.nil? && new_wind.size_kw.nil?
    existing_wind.size_kw = nil
  else
    existing_wind.size_kw = (existing_wind.size_kw || 0) + (new_wind.size_kw || 0)
  end
  if existing_wind.average_yearly_energy_produced_kwh.nil? && new_wind.average_yearly_energy_produced_kwh.nil?
    existing_wind.average_yearly_energy_produced_kwh = nil
  else
    existing_wind.average_yearly_energy_produced_kwh = (existing_wind.average_yearly_energy_produced_kwh || 0) + (new_wind.average_yearly_energy_produced_kwh || 0)
  end

  return existing_wind
end

Instance Method Details

#to_hashObject

Convert to a Hash equivalent for JSON serialization



81
82
83
84
85
86
87
88
89
# File 'lib/urbanopt/reporting/default_reports/wind.rb', line 81

def to_hash
  result = {}

  result[:size_kw] = @size_kw if @size_kw
  result[:average_yearly_energy_produced_kwh] = @avg_energy_kwh if @avg_energy_kwh
  result[:size_class] = @size_class if @size_class

  return result
end