earth 1.1.1 → 1.1.2
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.
- data/CHANGELOG +12 -0
- data/data/residence/recs_response_groupings.csv +52 -0
- data/earth.gemspec +1 -1
- data/lib/earth/automobile/automobile_make_model_year_variant/data_miner.rb +1 -1
- data/lib/earth/industry/mecs_energy.rb +26 -16
- data/lib/earth/{insolation_scopes.rb → irradiance_scopes.rb} +1 -1
- data/lib/earth/loader.rb +5 -4
- data/lib/earth/locality/{direct_normal_insolation.rb → direct_normal_irradiance.rb} +4 -4
- data/lib/earth/locality/{direct_normal_insolation → direct_normal_irradiance}/data_miner.rb +4 -4
- data/lib/earth/locality/electricity_mix/data_miner.rb +8 -8
- data/lib/earth/locality/{global_horizontal_insolation.rb → global_horizontal_irradiance.rb} +4 -4
- data/lib/earth/locality/{global_horizontal_insolation → global_horizontal_irradiance}/data_miner.rb +4 -4
- data/lib/earth/locality/{photovoltaic_insolation.rb → photovoltaic_irradiance.rb} +4 -4
- data/lib/earth/locality/{photovoltaic_insolation → photovoltaic_irradiance}/data_miner.rb +4 -4
- data/lib/earth/locality/state.rb +3 -1
- data/lib/earth/locality/state/data_miner.rb +15 -8
- data/lib/earth/locality/zip_code/data_miner.rb +1 -1
- data/lib/earth/residence/recs_2009_response.rb +655 -0
- data/lib/earth/residence/recs_2009_response/data_miner.rb +402 -0
- data/lib/earth/residence/recs_2009_response/parser.rb +879 -0
- data/lib/earth/version.rb +1 -1
- data/spec/earth/locality/direct_normal_irradiance_spec.rb +8 -0
- data/spec/earth/locality/global_horizontal_irradiance_spec.rb +8 -0
- data/spec/earth/locality/photovoltaic_irradiance_spec.rb +8 -0
- data/spec/earth/locality/state_spec.rb +7 -0
- data/spec/earth/residence/recs_2009_response_spec.rb +388 -0
- data/spec/earth_spec.rb +1 -1
- metadata +386 -246
- data/ar17.html +0 -2093
- data/spec/earth/locality/direct_normal_insolation_spec.rb +0 -8
- data/spec/earth/locality/global_horizontal_insolation_spec.rb +0 -8
- data/spec/earth/locality/photovoltaic_insolation_spec.rb +0 -8
data/CHANGELOG
CHANGED
@@ -0,0 +1,52 @@
|
|
1
|
+
state_postal_abbreviation,recs_grouping_id
|
2
|
+
AK,27
|
3
|
+
AL,18
|
4
|
+
AR,20
|
5
|
+
AZ,24
|
6
|
+
CA,26
|
7
|
+
CO,22
|
8
|
+
CT,1
|
9
|
+
DC,14
|
10
|
+
DE,14
|
11
|
+
FL,17
|
12
|
+
GA,15
|
13
|
+
HI,27
|
14
|
+
IA,10
|
15
|
+
ID,23
|
16
|
+
IL,6
|
17
|
+
IN,7
|
18
|
+
KS,11
|
19
|
+
KY,18
|
20
|
+
LA,20
|
21
|
+
MA,2
|
22
|
+
MD,14
|
23
|
+
ME,1
|
24
|
+
MI,8
|
25
|
+
MN,10
|
26
|
+
MO,12
|
27
|
+
MS,18
|
28
|
+
MT,23
|
29
|
+
NC,16
|
30
|
+
ND,10
|
31
|
+
NE,11
|
32
|
+
NH,1
|
33
|
+
NJ,4
|
34
|
+
NM,25
|
35
|
+
NV,25
|
36
|
+
NY,3
|
37
|
+
OH,7
|
38
|
+
OK,20
|
39
|
+
OR,27
|
40
|
+
PA,5
|
41
|
+
RI,1
|
42
|
+
SC,16
|
43
|
+
SD,10
|
44
|
+
TN,19
|
45
|
+
TX,21
|
46
|
+
UT,23
|
47
|
+
VA,13
|
48
|
+
VT,1
|
49
|
+
WA,27
|
50
|
+
WI,9
|
51
|
+
WV,14
|
52
|
+
WY,23
|
data/earth.gemspec
CHANGED
@@ -4,7 +4,7 @@ require File.expand_path("../lib/earth/version", __FILE__)
|
|
4
4
|
Gem::Specification.new do |s|
|
5
5
|
s.name = "earth"
|
6
6
|
s.version = Earth::VERSION
|
7
|
-
s.authors = ["Seamus Abshere", "Derek Kastner", "Andy Rossmeissl"]
|
7
|
+
s.authors = ["Seamus Abshere", "Derek Kastner", "Andy Rossmeissl", "Ian Hough"]
|
8
8
|
s.email = ['seamus@abshere.net', 'dkastner@gmail.com', 'andy@rossmeissl.net', 'ijhough@gmail.com']
|
9
9
|
s.homepage = "https://github.com/brighterplanet/earth"
|
10
10
|
s.summary = %Q{Land, sky, and sea}
|
@@ -110,7 +110,7 @@ AutomobileMakeModelYearVariant.class_eval do
|
|
110
110
|
2009 => { :url => 'http://www.fueleconomy.gov/FEG/epadata/09data.zip', :filename => '2009_FE_guide for DOE_ALL-rel dates-no-sales-8-28-08download.csv' },
|
111
111
|
2010 => { :url => 'http://www.fueleconomy.gov/FEG/epadata/10data.zip', :filename => '2010FEGuide for DOE-all rel dates-no-sales-02-22-2011public.xlsx' },
|
112
112
|
2011 => { :url => 'http://www.fueleconomy.gov/FEG/epadata/11data.zip', :filename => '2011FEGuide-for DOE rel-dates before 1-23-2011-no-sales-01-10-2011_All_public.xlsx' },
|
113
|
-
2012 => { :url => 'http://www.fueleconomy.gov/feg/epadata/12data.zip', :filename => '2012 FEGuide
|
113
|
+
2012 => { :url => 'http://www.fueleconomy.gov/feg/epadata/12data.zip', :filename => '2012 FEGuide-for DOE-OK to release-no-sales-11-13-2012public.xlsx' }
|
114
114
|
})
|
115
115
|
|
116
116
|
fuel_economy_guides.each do |year, options|
|
@@ -70,31 +70,41 @@ EOS
|
|
70
70
|
def fuel_ratios
|
71
71
|
# Don't return a ratio if reported total energy was withheld
|
72
72
|
if energy.to_f > 0
|
73
|
+
|
73
74
|
# Calculate the sum of all fuels and note if any were withheld
|
74
|
-
withheld =
|
75
|
+
withheld = false
|
75
76
|
fuels_sum = MecsEnergy::FUELS.inject(0) do |sum, fuel|
|
76
|
-
(
|
77
|
+
if (v = send(fuel)).nil?
|
78
|
+
withheld = true
|
79
|
+
else
|
80
|
+
sum += v
|
81
|
+
end
|
77
82
|
sum
|
78
83
|
end
|
79
84
|
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
ratios = MecsEnergy::FUELS.inject({}) do |
|
84
|
-
|
85
|
-
|
86
|
-
|
85
|
+
if energy > fuels_sum and withheld
|
86
|
+
# If energy > sum of all fuels and some fuels were withheld, calculate fuel ratios as fraction of energy
|
87
|
+
# and attribute the disparity between energy and sum of all fuels to the dirtiest fuel that was withheld
|
88
|
+
ratios = MecsEnergy::FUELS.inject({}) do |memo, fuel|
|
89
|
+
memo[fuel] = if (v = send(fuel)).present?
|
90
|
+
v / energy
|
91
|
+
else
|
92
|
+
nil
|
93
|
+
end
|
94
|
+
memo
|
87
95
|
end
|
88
|
-
|
89
96
|
dirtiest_withheld = ([:coal, :other_fuel, :coke_and_breeze, :residual_fuel_oil, :distillate_fuel_oil, :lpg_and_ngl, :natural_gas] & ratios.select{|k,v| v.nil?}.keys).first
|
90
97
|
ratios[dirtiest_withheld] = (energy - fuels_sum) / energy
|
91
|
-
ratios.delete_if
|
92
|
-
|
98
|
+
ratios.delete_if do |fuel, ratio|
|
99
|
+
ratio.to_f == 0.0
|
100
|
+
end
|
93
101
|
else
|
94
|
-
ratios
|
95
|
-
|
96
|
-
|
97
|
-
|
102
|
+
# Otherwise calculate ratios as fraction of sum of all fuels, skipping any fuels that were withheld
|
103
|
+
ratios = MecsEnergy::FUELS.inject({}) do |memo, fuel|
|
104
|
+
if (v = send(fuel).to_f) > 0
|
105
|
+
memo[fuel] = v / fuels_sum
|
106
|
+
end
|
107
|
+
memo
|
98
108
|
end
|
99
109
|
ratios.keys.any? ? ratios : nil
|
100
110
|
end
|
data/lib/earth/loader.rb
CHANGED
@@ -22,16 +22,17 @@ module Earth
|
|
22
22
|
args = [glob, options]
|
23
23
|
return if @require_glob.include?(args)
|
24
24
|
@require_glob << args
|
25
|
-
|
25
|
+
require_later = []
|
26
26
|
::Dir[glob].each do |path|
|
27
|
-
|
28
|
-
|
27
|
+
# ugh
|
28
|
+
if path.include?('data_miner') or path.include?('parser')
|
29
|
+
require_later << path
|
29
30
|
else
|
30
31
|
require path
|
31
32
|
end
|
32
33
|
end
|
33
34
|
# load data_miner blocks second to make sure they override
|
34
|
-
|
35
|
+
require_later.each do |path|
|
35
36
|
require path
|
36
37
|
end if options[:load_data_miner] || options[:mine_original_sources]
|
37
38
|
nil
|
@@ -1,12 +1,12 @@
|
|
1
1
|
require 'earth/model'
|
2
|
-
require 'earth/
|
2
|
+
require 'earth/irradiance_scopes'
|
3
3
|
|
4
|
-
class
|
4
|
+
class DirectNormalIrradiance < ActiveRecord::Base
|
5
5
|
extend Earth::Model
|
6
|
-
include Earth::
|
6
|
+
include Earth::IrradianceScopes
|
7
7
|
|
8
8
|
TABLE_STRUCTURE = <<-EOS
|
9
|
-
CREATE TABLE
|
9
|
+
CREATE TABLE direct_normal_irradiances
|
10
10
|
(
|
11
11
|
row_hash CHARACTER VARYING(255) NOT NULL PRIMARY KEY,
|
12
12
|
nw_lat FLOAT,
|
@@ -1,20 +1,20 @@
|
|
1
1
|
begin
|
2
2
|
require 'geo_ruby'
|
3
3
|
rescue LoadError
|
4
|
-
puts '[Earth] You need to install the geo_ruby gem to mine
|
4
|
+
puts '[Earth] You need to install the geo_ruby gem to mine DirectNormalIrradiance from scratch'
|
5
5
|
exit
|
6
6
|
end
|
7
7
|
begin
|
8
8
|
require 'dbf'
|
9
9
|
rescue LoadError
|
10
|
-
puts '[Earth] You need to install the dbf gem to mine
|
10
|
+
puts '[Earth] You need to install the dbf gem to mine DirectNormalIrradiance from scratch'
|
11
11
|
exit
|
12
12
|
end
|
13
13
|
require 'unix_utils'
|
14
14
|
|
15
|
-
|
15
|
+
DirectNormalIrradiance.class_eval do
|
16
16
|
data_miner do
|
17
|
-
import 'Direct Normal
|
17
|
+
import 'Direct Normal Irradiance shapefile from NREL at http://www.nrel.gov/gis/data_solar.html',
|
18
18
|
:url => 'http://www.nrel.gov/gis/cfm/data/GIS_Data_Technology_Specific/United_States/Solar/High_Resolution/Lower_48_DNI_High_Resolution.zip',
|
19
19
|
:format => :shp do
|
20
20
|
key :row_hash
|
@@ -64,10 +64,10 @@ ElectricityMix.class_eval do
|
|
64
64
|
sub_pops = state.zip_codes.known_subregion.sum(:population, :group => :egrid_subregion)
|
65
65
|
|
66
66
|
%w{ co2 ch4 n2o }.each do |gas|
|
67
|
-
ef = sub_pops.
|
68
|
-
|
69
|
-
|
70
|
-
|
67
|
+
ef = sub_pops.sum do |subregion, population|
|
68
|
+
subregion.send("#{gas}_emission_factor") * population
|
69
|
+
end
|
70
|
+
ef /= sub_pops.values.sum
|
71
71
|
|
72
72
|
mix.update_attributes!(
|
73
73
|
"#{gas}_emission_factor" => ef,
|
@@ -75,10 +75,10 @@ ElectricityMix.class_eval do
|
|
75
75
|
)
|
76
76
|
end
|
77
77
|
|
78
|
-
lf = sub_pops.
|
79
|
-
|
80
|
-
|
81
|
-
|
78
|
+
lf = sub_pops.sum do |subregion, population|
|
79
|
+
subregion.egrid_region.loss_factor * population
|
80
|
+
end
|
81
|
+
lf /= sub_pops.values.sum
|
82
82
|
|
83
83
|
mix.update_attributes! :loss_factor => lf
|
84
84
|
end
|
@@ -1,12 +1,12 @@
|
|
1
1
|
require 'earth/model'
|
2
|
-
require 'earth/
|
2
|
+
require 'earth/irradiance_scopes'
|
3
3
|
|
4
|
-
class
|
4
|
+
class GlobalHorizontalIrradiance < ActiveRecord::Base
|
5
5
|
extend Earth::Model
|
6
|
-
include Earth::
|
6
|
+
include Earth::IrradianceScopes
|
7
7
|
|
8
8
|
TABLE_STRUCTURE = <<-EOS
|
9
|
-
CREATE TABLE
|
9
|
+
CREATE TABLE global_horizontal_irradiances
|
10
10
|
(
|
11
11
|
row_hash CHARACTER VARYING(255) NOT NULL PRIMARY KEY,
|
12
12
|
nw_lat FLOAT,
|
data/lib/earth/locality/{global_horizontal_insolation → global_horizontal_irradiance}/data_miner.rb
RENAMED
@@ -1,20 +1,20 @@
|
|
1
1
|
begin
|
2
2
|
require 'geo_ruby'
|
3
3
|
rescue LoadError
|
4
|
-
puts '[Earth] You need to install the geo_ruby gem to mine
|
4
|
+
puts '[Earth] You need to install the geo_ruby gem to mine GlobalHorizontalIrradiance from scratch'
|
5
5
|
exit
|
6
6
|
end
|
7
7
|
begin
|
8
8
|
require 'dbf'
|
9
9
|
rescue LoadError
|
10
|
-
puts '[Earth] You need to install the dbf gem to mine
|
10
|
+
puts '[Earth] You need to install the dbf gem to mine GlobalHorizontalIrradiance from scratch'
|
11
11
|
exit
|
12
12
|
end
|
13
13
|
require 'unix_utils'
|
14
14
|
|
15
|
-
|
15
|
+
GlobalHorizontalIrradiance.class_eval do
|
16
16
|
data_miner do
|
17
|
-
import 'Global Horizontal
|
17
|
+
import 'Global Horizontal Irradiance shapefile from NREL at http://www.nrel.gov/gis/data_solar.html',
|
18
18
|
:url => 'http://www.nrel.gov/gis/cfm/data/GIS_Data_Technology_Specific/United_States/Solar/High_Resolution/Lower_48_GHI_High_Resolution.zip',
|
19
19
|
:format => :shp do
|
20
20
|
key :row_hash
|
@@ -1,12 +1,12 @@
|
|
1
1
|
require 'earth/model'
|
2
|
-
require 'earth/
|
2
|
+
require 'earth/irradiance_scopes'
|
3
3
|
|
4
|
-
class
|
4
|
+
class PhotovoltaicIrradiance < ActiveRecord::Base
|
5
5
|
extend Earth::Model
|
6
|
-
include Earth::
|
6
|
+
include Earth::IrradianceScopes
|
7
7
|
|
8
8
|
TABLE_STRUCTURE = <<-EOS
|
9
|
-
CREATE TABLE
|
9
|
+
CREATE TABLE photovoltaic_irradiances
|
10
10
|
(
|
11
11
|
row_hash CHARACTER VARYING(255) NOT NULL PRIMARY KEY,
|
12
12
|
nw_lat FLOAT,
|
@@ -1,20 +1,20 @@
|
|
1
1
|
begin
|
2
2
|
require 'geo_ruby'
|
3
3
|
rescue LoadError
|
4
|
-
puts '[Earth] You need to install the geo_ruby gem to mine
|
4
|
+
puts '[Earth] You need to install the geo_ruby gem to mine PhotovoltaicIrradiance from scratch'
|
5
5
|
exit
|
6
6
|
end
|
7
7
|
begin
|
8
8
|
require 'dbf'
|
9
9
|
rescue LoadError
|
10
|
-
puts '[Earth] You need to install the dbf gem to mine
|
10
|
+
puts '[Earth] You need to install the dbf gem to mine PhotovoltaicIrradiance from scratch'
|
11
11
|
exit
|
12
12
|
end
|
13
13
|
require 'unix_utils'
|
14
14
|
|
15
|
-
|
15
|
+
PhotovoltaicIrradiance.class_eval do
|
16
16
|
data_miner do
|
17
|
-
import 'Photovoltaic
|
17
|
+
import 'Photovoltaic Irradiance (tilt = latitude) shapefile from NREL at http://www.nrel.gov/gis/data_solar.html',
|
18
18
|
:url => 'http://www.nrel.gov/gis/cfm/data/GIS_Data_Technology_Specific/United_States/Solar/High_Resolution/Lower_48_LATTILT_High_Resolution.zip',
|
19
19
|
:format => :shp do
|
20
20
|
key :row_hash
|
data/lib/earth/locality/state.rb
CHANGED
@@ -30,7 +30,8 @@ CREATE TABLE states
|
|
30
30
|
population INTEGER,
|
31
31
|
electricity_emission_factor FLOAT,
|
32
32
|
electricity_emission_factor_units CHARACTER VARYING(255),
|
33
|
-
electricity_loss_factor FLOAT
|
33
|
+
electricity_loss_factor FLOAT,
|
34
|
+
recs_grouping_id INTEGER
|
34
35
|
);
|
35
36
|
|
36
37
|
EOS
|
@@ -39,6 +40,7 @@ EOS
|
|
39
40
|
|
40
41
|
has_many :zip_codes, :foreign_key => 'state_postal_abbreviation'
|
41
42
|
has_many :climate_divisions, :foreign_key => 'state_postal_abbreviation'
|
43
|
+
has_many :recs_2009_responses, :foreign_key => 'recs_grouping_id', :primary_key => 'recs_grouping_id'
|
42
44
|
belongs_to :census_division, :foreign_key => 'census_division_number'
|
43
45
|
has_one :census_region, :through => :census_division
|
44
46
|
has_one :electricity_mix, :foreign_key => 'state_postal_abbreviation'
|
@@ -27,6 +27,13 @@ State.class_eval do
|
|
27
27
|
store 'petroleum_administration_for_defense_district_code', :field_name => 'Code'
|
28
28
|
end
|
29
29
|
|
30
|
+
# RECS 2009 grouping
|
31
|
+
import 'RECS 2009 response grouping ids',
|
32
|
+
:url => "file:///#{Earth::DATA_DIR}/residence/recs_response_groupings.csv" do
|
33
|
+
key 'postal_abbreviation', :field_name => 'state_postal_abbreviation'
|
34
|
+
store 'recs_grouping_id'
|
35
|
+
end
|
36
|
+
|
30
37
|
process 'ensure ZipCode and EgridSubregion are populated' do
|
31
38
|
ZipCode.run_data_miner!
|
32
39
|
EgridSubregion.run_data_miner!
|
@@ -37,20 +44,20 @@ State.class_eval do
|
|
37
44
|
safe_find_each do |state|
|
38
45
|
sub_pops = state.zip_codes.known_subregion.sum(:population, :group => :egrid_subregion)
|
39
46
|
|
40
|
-
ef = sub_pops.
|
41
|
-
|
42
|
-
|
43
|
-
|
47
|
+
ef = sub_pops.sum do |subregion, population|
|
48
|
+
subregion.electricity_emission_factor * population
|
49
|
+
end
|
50
|
+
ef /= sub_pops.values.sum
|
44
51
|
|
45
52
|
state.update_attributes!(
|
46
53
|
:electricity_emission_factor => ef,
|
47
54
|
:electricity_emission_factor_units => 'kilograms_co2e_per_kilowatt_hour'
|
48
55
|
)
|
49
56
|
|
50
|
-
loss_factor = sub_pops.
|
51
|
-
|
52
|
-
|
53
|
-
|
57
|
+
loss_factor = sub_pops.sum do |subregion, population|
|
58
|
+
subregion.egrid_region.loss_factor * population
|
59
|
+
end
|
60
|
+
loss_factor /= sub_pops.values.sum
|
54
61
|
|
55
62
|
state.update_attributes! :electricity_loss_factor => loss_factor
|
56
63
|
end
|
@@ -26,7 +26,7 @@ ZipCode.class_eval do
|
|
26
26
|
|
27
27
|
# NOTE: ZCTAs are not zip codes but are based on the most common zip code in the area they cover - see http://www.census.gov/geo/ZCTA/zcta.html
|
28
28
|
import 'US Census 2010 zip code tabulation area populations',
|
29
|
-
:url => 'http://www.census.gov/geo/
|
29
|
+
:url => 'http://www.census.gov/geo/maps-data/data/docs/rel/zcta_county_rel_10.txt' do
|
30
30
|
key 'name', :field_name => 'ZCTA5', :sprintf => '%05d'
|
31
31
|
store 'population', :field_name => 'ZPOP'
|
32
32
|
end
|
@@ -0,0 +1,655 @@
|
|
1
|
+
require 'earth/model'
|
2
|
+
|
3
|
+
class Recs2009Response < ActiveRecord::Base
|
4
|
+
extend Earth::Model
|
5
|
+
|
6
|
+
TABLE_STRUCTURE = <<-EOS
|
7
|
+
CREATE TABLE recs_2009_responses
|
8
|
+
(
|
9
|
+
id INTEGER NOT NULL PRIMARY KEY,
|
10
|
+
weighting FLOAT,
|
11
|
+
census_region_number INTEGER,
|
12
|
+
census_division_number INTEGER,
|
13
|
+
recs_grouping_id INTEGER,
|
14
|
+
urban_rural CHARACTER VARYING(10),
|
15
|
+
metro_micro CHARACTER VARYING(10),
|
16
|
+
climate_region_id INTEGER,
|
17
|
+
climate_zone_id INTEGER,
|
18
|
+
hdd_2009 FLOAT,
|
19
|
+
hdd_2009_units CHARACTER VARYING(25),
|
20
|
+
hdd_avg FLOAT,
|
21
|
+
hdd_avg_units CHARACTER VARYING(25),
|
22
|
+
cdd_2009 FLOAT,
|
23
|
+
cdd_2009_units CHARACTER VARYING(25),
|
24
|
+
cdd_avg FLOAT,
|
25
|
+
cdd_avg_units CHARACTER VARYING(25),
|
26
|
+
building_type CHARACTER VARYING(25),
|
27
|
+
converted_house BOOLEAN,
|
28
|
+
condo_coop CHARACTER VARYING(10),
|
29
|
+
apartments INTEGER,
|
30
|
+
year_built INTEGER,
|
31
|
+
year_occupied INTEGER,
|
32
|
+
building_floors INTEGER,
|
33
|
+
levels INTEGER,
|
34
|
+
area FLOAT,
|
35
|
+
area_units CHARACTER VARYING(25),
|
36
|
+
rooms INTEGER,
|
37
|
+
bedrooms INTEGER,
|
38
|
+
bathrooms INTEGER,
|
39
|
+
half_baths INTEGER,
|
40
|
+
other_rooms INTEGER,
|
41
|
+
attic_rooms INTEGER,
|
42
|
+
basement_rooms INTEGER,
|
43
|
+
garage_type CHARACTER VARYING(10),
|
44
|
+
garage_size CHARACTER VARYING(10),
|
45
|
+
pool BOOLEAN,
|
46
|
+
shaded BOOLEAN,
|
47
|
+
slab BOOLEAN,
|
48
|
+
crawlspace BOOLEAN,
|
49
|
+
basement_type CHARACTER VARYING(10),
|
50
|
+
attic_type CHARACTER VARYING(10),
|
51
|
+
wall_material CHARACTER VARYING(35),
|
52
|
+
roof_material CHARACTER VARYING(25),
|
53
|
+
windows INTEGER,
|
54
|
+
window_panes INTEGER,
|
55
|
+
sliding_doors INTEGER,
|
56
|
+
insulation CHARACTER VARYING(10),
|
57
|
+
drafty CHARACTER VARYING(20),
|
58
|
+
high_ceiling BOOLEAN,
|
59
|
+
heating BOOLEAN,
|
60
|
+
heater CHARACTER VARYING(30),
|
61
|
+
heater_age INTEGER,
|
62
|
+
heater_fuel CHARACTER VARYING(15),
|
63
|
+
heater_shared BOOLEAN,
|
64
|
+
heater_thermostats INTEGER,
|
65
|
+
heater_portion FLOAT,
|
66
|
+
heater_2 CHARACTER VARYING(30),
|
67
|
+
heater_2_fuel CHARACTER VARYING(15),
|
68
|
+
heater_3 CHARACTER VARYING(30),
|
69
|
+
heater_3_fuel CHARACTER VARYING(15),
|
70
|
+
heater_4 CHARACTER VARYING(30),
|
71
|
+
heater_4_fuel CHARACTER VARYING(15),
|
72
|
+
heater_5 CHARACTER VARYING(30),
|
73
|
+
heater_5_fuel CHARACTER VARYING(15),
|
74
|
+
heater_6 CHARACTER VARYING(30),
|
75
|
+
heater_6_fuel CHARACTER VARYING(15),
|
76
|
+
cooling BOOLEAN,
|
77
|
+
cooler_central_age INTEGER,
|
78
|
+
cooler_central_shared BOOLEAN,
|
79
|
+
cooler_ac_units INTEGER,
|
80
|
+
cooler_ac_age INTEGER,
|
81
|
+
cooler_ac_energy_star BOOLEAN,
|
82
|
+
fans INTEGER,
|
83
|
+
water_heaters_storage INTEGER,
|
84
|
+
water_heaters_tankless INTEGER,
|
85
|
+
water_heater CHARACTER VARYING(15),
|
86
|
+
water_heater_fuel CHARACTER VARYING(15),
|
87
|
+
water_heater_age INTEGER,
|
88
|
+
water_heater_size CHARACTER VARYING(30),
|
89
|
+
water_heater_shared BOOLEAN,
|
90
|
+
water_heater_2 CHARACTER VARYING(15),
|
91
|
+
water_heater_2_fuel CHARACTER VARYING(15),
|
92
|
+
water_heater_2_age INTEGER,
|
93
|
+
water_heater_2_size CHARACTER VARYING(30),
|
94
|
+
pool_fuel CHARACTER VARYING(15),
|
95
|
+
hot_tub_fuel CHARACTER VARYING(15),
|
96
|
+
lights_high_use INTEGER,
|
97
|
+
lights_high_use_efficient INTEGER,
|
98
|
+
lights_med_use INTEGER,
|
99
|
+
lights_med_use_efficient INTEGER,
|
100
|
+
lights_low_use INTEGER,
|
101
|
+
lights_low_use_efficient INTEGER,
|
102
|
+
lights_outdoor INTEGER,
|
103
|
+
lights_outdoor_efficient INTEGER,
|
104
|
+
cooking_fuel CHARACTER VARYING(15),
|
105
|
+
stoves INTEGER,
|
106
|
+
stove_fuel CHARACTER VARYING(15),
|
107
|
+
cooktops INTEGER,
|
108
|
+
cooktop_fuel CHARACTER VARYING(15),
|
109
|
+
ovens INTEGER,
|
110
|
+
oven_fuel CHARACTER VARYING(15),
|
111
|
+
oven_type CHARACTER VARYING(25),
|
112
|
+
outdoor_grill_fuel CHARACTER VARYING(15),
|
113
|
+
indoor_grill_fuel CHARACTER VARYING(15),
|
114
|
+
toaster BOOLEAN,
|
115
|
+
coffee BOOLEAN,
|
116
|
+
fridges INTEGER,
|
117
|
+
fridge_type CHARACTER VARYING(35),
|
118
|
+
fridge_size CHARACTER VARYING(35),
|
119
|
+
fridge_defrost CHARACTER VARYING(10),
|
120
|
+
fridge_door_ice BOOLEAN,
|
121
|
+
fridge_age INTEGER,
|
122
|
+
fridge_energy_star BOOLEAN,
|
123
|
+
fridge_2_type CHARACTER VARYING(35),
|
124
|
+
fridge_2_size CHARACTER VARYING(35),
|
125
|
+
fridge_2_defrost CHARACTER VARYING(10),
|
126
|
+
fridge_2_age INTEGER,
|
127
|
+
fridge_2_energy_star BOOLEAN,
|
128
|
+
fridge_3_type CHARACTER VARYING(35),
|
129
|
+
fridge_3_size CHARACTER VARYING(35),
|
130
|
+
fridge_3_defrost CHARACTER VARYING(10),
|
131
|
+
fridge_3_age INTEGER,
|
132
|
+
fridge_3_energy_star BOOLEAN,
|
133
|
+
freezers INTEGER,
|
134
|
+
freezer_type CHARACTER VARYING(10),
|
135
|
+
freezer_size CHARACTER VARYING(35),
|
136
|
+
freezer_defrost CHARACTER VARYING(10),
|
137
|
+
freezer_age INTEGER,
|
138
|
+
freezer_2_type CHARACTER VARYING(10),
|
139
|
+
freezer_2_size CHARACTER VARYING(35),
|
140
|
+
freezer_2_defrost CHARACTER VARYING(10),
|
141
|
+
freezer_2_age INTEGER,
|
142
|
+
dishwasher_age INTEGER,
|
143
|
+
dishwasher_energy_star BOOLEAN,
|
144
|
+
washer_type CHARACTER VARYING(15),
|
145
|
+
washer_age INTEGER,
|
146
|
+
washer_energy_star BOOLEAN,
|
147
|
+
dryer_fuel CHARACTER VARYING(15),
|
148
|
+
dryer_age INTEGER,
|
149
|
+
tvs INTEGER,
|
150
|
+
tv_size CHARACTER VARYING(20),
|
151
|
+
tv_type CHARACTER VARYING(10),
|
152
|
+
tv_theater BOOLEAN,
|
153
|
+
tv_2_size CHARACTER VARYING(20),
|
154
|
+
tv_2_type CHARACTER VARYING(10),
|
155
|
+
tv_2_theater BOOLEAN,
|
156
|
+
tv_3_size CHARACTER VARYING(20),
|
157
|
+
tv_3_type CHARACTER VARYING(10),
|
158
|
+
tv_3_theater BOOLEAN,
|
159
|
+
computers INTEGER,
|
160
|
+
computer_type CHARACTER VARYING(10),
|
161
|
+
computer_monitor CHARACTER VARYING(10),
|
162
|
+
computer_2_type CHARACTER VARYING(10),
|
163
|
+
computer_2_monitor CHARACTER VARYING(10),
|
164
|
+
computer_3_type CHARACTER VARYING(10),
|
165
|
+
computer_3_monitor CHARACTER VARYING(10),
|
166
|
+
internet BOOLEAN,
|
167
|
+
printers INTEGER,
|
168
|
+
fax BOOLEAN,
|
169
|
+
copier BOOLEAN,
|
170
|
+
well_pump BOOLEAN,
|
171
|
+
engine_block_heater BOOLEAN,
|
172
|
+
aquarium BOOLEAN,
|
173
|
+
stereo BOOLEAN,
|
174
|
+
cordless_phone BOOLEAN,
|
175
|
+
answering_machine BOOLEAN,
|
176
|
+
tools INTEGER,
|
177
|
+
electronics INTEGER,
|
178
|
+
home_business BOOLEAN,
|
179
|
+
home_during_week BOOLEAN,
|
180
|
+
telecommuting INTEGER,
|
181
|
+
telecommuting_units CHARACTER VARYING(15),
|
182
|
+
unusual_activities BOOLEAN,
|
183
|
+
heat_area FLOAT,
|
184
|
+
heat_area_units CHARACTER VARYING(15),
|
185
|
+
heat_rooms INTEGER,
|
186
|
+
heat_attic_portion FLOAT,
|
187
|
+
heat_basement_portion FLOAT,
|
188
|
+
heat_garage BOOLEAN,
|
189
|
+
heat_temp_day FLOAT,
|
190
|
+
heat_temp_day_units CHARACTER VARYING(20),
|
191
|
+
heat_temp_night FLOAT,
|
192
|
+
heat_temp_night_units CHARACTER VARYING(20),
|
193
|
+
heat_temp_away FLOAT,
|
194
|
+
heat_temp_away_units CHARACTER VARYING(20),
|
195
|
+
heat_auto_adjust_day BOOLEAN,
|
196
|
+
heat_auto_adjust_night BOOLEAN,
|
197
|
+
cool_area FLOAT,
|
198
|
+
cool_area_units CHARACTER VARYING(15),
|
199
|
+
cool_rooms INTEGER,
|
200
|
+
cool_attic_portion FLOAT,
|
201
|
+
cool_basement_portion FLOAT,
|
202
|
+
cool_garage BOOLEAN,
|
203
|
+
cool_temp_day FLOAT,
|
204
|
+
cool_temp_day_units CHARACTER VARYING(20),
|
205
|
+
cool_temp_night FLOAT,
|
206
|
+
cool_temp_night_units CHARACTER VARYING(20),
|
207
|
+
cool_temp_away FLOAT,
|
208
|
+
cool_temp_away_units CHARACTER VARYING(20),
|
209
|
+
cool_auto_adjust_day BOOLEAN,
|
210
|
+
cool_auto_adjust_night BOOLEAN,
|
211
|
+
cooler_central_use CHARACTER VARYING(35),
|
212
|
+
cooler_ac_use CHARACTER VARYING(35),
|
213
|
+
fan_use CHARACTER VARYING(35),
|
214
|
+
humidifier_use INTEGER,
|
215
|
+
humidifier_use_units CHARACTER VARYING(10),
|
216
|
+
dehumidifier_use INTEGER,
|
217
|
+
dehumidifier_use_units CHARACTER VARYING(10),
|
218
|
+
oven_use INTEGER,
|
219
|
+
oven_use_units CHARACTER VARYING(15),
|
220
|
+
microwave_use CHARACTER VARYING(30),
|
221
|
+
microwave_defrost BOOLEAN,
|
222
|
+
cooking_frequency INTEGER,
|
223
|
+
cooking_frequency_units CHARACTER VARYING(15),
|
224
|
+
fridge_2_use INTEGER,
|
225
|
+
fridge_2_use_units CHARACTER VARYING(10),
|
226
|
+
fridge_3_use INTEGER,
|
227
|
+
fridge_3_use_units CHARACTER VARYING(10),
|
228
|
+
dishwasher_use INTEGER,
|
229
|
+
dishwasher_use_units CHARACTER VARYING(15),
|
230
|
+
washer_use INTEGER,
|
231
|
+
washer_use_units CHARACTER VARYING(15),
|
232
|
+
washer_temp_wash CHARACTER VARYING(10),
|
233
|
+
washer_temp_rinse CHARACTER VARYING(10),
|
234
|
+
dryer_use CHARACTER VARYING(25),
|
235
|
+
tv_weekday_use INTEGER,
|
236
|
+
tv_weekday_use_units CHARACTER VARYING(15),
|
237
|
+
tv_weekend_use INTEGER,
|
238
|
+
tv_weekend_use_units CHARACTER VARYING(15),
|
239
|
+
tv_2_weekday_use INTEGER,
|
240
|
+
tv_2_weekday_use_units CHARACTER VARYING(15),
|
241
|
+
tv_2_weekend_use INTEGER,
|
242
|
+
tv_2_weekend_use_units CHARACTER VARYING(15),
|
243
|
+
tv_3_weekday_use INTEGER,
|
244
|
+
tv_3_weekday_use_units CHARACTER VARYING(15),
|
245
|
+
tv_3_weekend_use INTEGER,
|
246
|
+
tv_3_weekend_use_units CHARACTER VARYING(15),
|
247
|
+
computer_use INTEGER,
|
248
|
+
computer_use_units CHARACTER VARYING(15),
|
249
|
+
computer_idle CHARACTER VARYING(15),
|
250
|
+
computer_2_use INTEGER,
|
251
|
+
computer_2_use_units CHARACTER VARYING(15),
|
252
|
+
computer_2_idle CHARACTER VARYING(15),
|
253
|
+
computer_3_use INTEGER,
|
254
|
+
computer_3_use_units CHARACTER VARYING(15),
|
255
|
+
computer_3_idle CHARACTER VARYING(15),
|
256
|
+
tool_charging CHARACTER VARYING(20),
|
257
|
+
tool_vampires CHARACTER VARYING(25),
|
258
|
+
electronic_charging CHARACTER VARYING(20),
|
259
|
+
electronic_vampires CHARACTER VARYING(25),
|
260
|
+
energy_audit BOOLEAN,
|
261
|
+
energy_audit_year INTEGER,
|
262
|
+
energy_audit_incent CHARACTER VARYING(35),
|
263
|
+
energy_audit_incent_year INTEGER,
|
264
|
+
insulation_added BOOLEAN,
|
265
|
+
insulation_added_year INTEGER,
|
266
|
+
insulation_incent CHARACTER VARYING(35),
|
267
|
+
insulation_incent_year INTEGER,
|
268
|
+
windows_replaced CHARACTER VARYING(10),
|
269
|
+
windows_incent CHARACTER VARYING(35),
|
270
|
+
windows_incent_year INTEGER,
|
271
|
+
caulking_added BOOLEAN,
|
272
|
+
caulking_added_year INTEGER,
|
273
|
+
caulking_incent CHARACTER VARYING(35),
|
274
|
+
caulking_incent_year INTEGER,
|
275
|
+
heater_maintained BOOLEAN,
|
276
|
+
heater_replaced BOOLEAN,
|
277
|
+
heater_incent CHARACTER VARYING(35),
|
278
|
+
heater_incent_year INTEGER,
|
279
|
+
cooler_central_maintained BOOLEAN,
|
280
|
+
cooler_central_replaced BOOLEAN,
|
281
|
+
cooler_central_incent CHARACTER VARYING(35),
|
282
|
+
cooler_central_incent_year INTEGER,
|
283
|
+
cooler_ac_replaced BOOLEAN,
|
284
|
+
cooler_ac_incent CHARACTER VARYING(35),
|
285
|
+
cooler_ac_incent_year INTEGER,
|
286
|
+
water_heater_blanket BOOLEAN,
|
287
|
+
water_heater_incent CHARACTER VARYING(35),
|
288
|
+
water_heater_incent_year INTEGER,
|
289
|
+
lights_replaced BOOLEAN,
|
290
|
+
lights_incent CHARACTER VARYING(35),
|
291
|
+
lights_incent_year INTEGER,
|
292
|
+
dishwasher_replaced BOOLEAN,
|
293
|
+
dishwasher_incent CHARACTER VARYING(35),
|
294
|
+
dishwasher_incent_year INTEGER,
|
295
|
+
fridge_replaced BOOLEAN,
|
296
|
+
fridge_incent CHARACTER VARYING(35),
|
297
|
+
fridge_incent_year INTEGER,
|
298
|
+
freezer_replaced BOOLEAN,
|
299
|
+
freezer_incent CHARACTER VARYING(35),
|
300
|
+
freezer_incent_year INTEGER,
|
301
|
+
washer_replaced BOOLEAN,
|
302
|
+
washer_incent CHARACTER VARYING(35),
|
303
|
+
washer_incent_year INTEGER,
|
304
|
+
renewable_energy CHARACTER VARYING(15),
|
305
|
+
own_rent CHARACTER VARYING(10),
|
306
|
+
sex CHARACTER VARYING(10),
|
307
|
+
employment CHARACTER VARYING(25),
|
308
|
+
live_with_spouse BOOLEAN,
|
309
|
+
race CHARACTER VARYING(35),
|
310
|
+
latino BOOLEAN,
|
311
|
+
education CHARACTER VARYING(30),
|
312
|
+
household_size INTEGER,
|
313
|
+
member_1_age INTEGER,
|
314
|
+
member_2_age INTEGER,
|
315
|
+
member_3_age INTEGER,
|
316
|
+
member_4_age INTEGER,
|
317
|
+
member_5_age INTEGER,
|
318
|
+
member_6_age INTEGER,
|
319
|
+
member_7_age INTEGER,
|
320
|
+
member_8_age INTEGER,
|
321
|
+
member_9_age INTEGER,
|
322
|
+
member_10_age INTEGER,
|
323
|
+
member_11_age INTEGER,
|
324
|
+
member_12_age INTEGER,
|
325
|
+
member_13_age INTEGER,
|
326
|
+
member_14_age INTEGER,
|
327
|
+
income INTEGER,
|
328
|
+
income_employment BOOLEAN,
|
329
|
+
income_retirement BOOLEAN,
|
330
|
+
income_ssi BOOLEAN,
|
331
|
+
income_welfare BOOLEAN,
|
332
|
+
income_investment BOOLEAN,
|
333
|
+
income_other BOOLEAN,
|
334
|
+
poverty_100 BOOLEAN,
|
335
|
+
poverty_150 BOOLEAN,
|
336
|
+
public_housing_authority BOOLEAN,
|
337
|
+
food_stamps BOOLEAN,
|
338
|
+
low_rent BOOLEAN,
|
339
|
+
pays_electricity_heat CHARACTER VARYING(30),
|
340
|
+
pays_electricity_water CHARACTER VARYING(30),
|
341
|
+
pays_electricity_cooking CHARACTER VARYING(30),
|
342
|
+
pays_electricity_cool CHARACTER VARYING(30),
|
343
|
+
pays_electricity_lighting CHARACTER VARYING(30),
|
344
|
+
pays_natural_gas_heat CHARACTER VARYING(30),
|
345
|
+
pays_natural_gas_water CHARACTER VARYING(30),
|
346
|
+
pays_natural_gas_cooking CHARACTER VARYING(30),
|
347
|
+
pays_natural_gas_other CHARACTER VARYING(30),
|
348
|
+
pays_fuel_oil CHARACTER VARYING(30),
|
349
|
+
pays_propane CHARACTER VARYING(30),
|
350
|
+
electricity_heat BOOLEAN,
|
351
|
+
electricity_heat_2 BOOLEAN,
|
352
|
+
electricity_cool BOOLEAN,
|
353
|
+
electricity_water BOOLEAN,
|
354
|
+
electricity_cooking BOOLEAN,
|
355
|
+
electricity_other BOOLEAN,
|
356
|
+
natural_gas_heat BOOLEAN,
|
357
|
+
natural_gas_heat_2 BOOLEAN,
|
358
|
+
natural_gas_water BOOLEAN,
|
359
|
+
natural_gas_cooking BOOLEAN,
|
360
|
+
natural_gas_other BOOLEAN,
|
361
|
+
propane_heat BOOLEAN,
|
362
|
+
propane_heat_2 BOOLEAN,
|
363
|
+
propane_water BOOLEAN,
|
364
|
+
propane_cooking BOOLEAN,
|
365
|
+
propane_other BOOLEAN,
|
366
|
+
fuel_oil_heat BOOLEAN,
|
367
|
+
fuel_oil_heat_2 BOOLEAN,
|
368
|
+
fuel_oil_water BOOLEAN,
|
369
|
+
fuel_oil_other BOOLEAN,
|
370
|
+
kerosene_heat BOOLEAN,
|
371
|
+
kerosene_heat_2 BOOLEAN,
|
372
|
+
kerosene_water BOOLEAN,
|
373
|
+
kerosene_other BOOLEAN,
|
374
|
+
wood_heat BOOLEAN,
|
375
|
+
wood_heat_2 BOOLEAN,
|
376
|
+
wood_water BOOLEAN,
|
377
|
+
wood_other BOOLEAN,
|
378
|
+
solar_heat BOOLEAN,
|
379
|
+
solar_heat_2 BOOLEAN,
|
380
|
+
solar_water BOOLEAN,
|
381
|
+
solar_other BOOLEAN,
|
382
|
+
other_heat BOOLEAN,
|
383
|
+
other_heat_2 BOOLEAN,
|
384
|
+
other_water BOOLEAN,
|
385
|
+
other_cooking BOOLEAN,
|
386
|
+
energy FLOAT,
|
387
|
+
energy_units CHARACTER VARYING(10),
|
388
|
+
energy_cost INTEGER,
|
389
|
+
energy_cost_units CHARACTER VARYING(10),
|
390
|
+
electricity FLOAT,
|
391
|
+
electricity_units CHARACTER VARYING(10),
|
392
|
+
electricity_cost INTEGER,
|
393
|
+
electricity_cost_units CHARACTER VARYING(10),
|
394
|
+
natural_gas FLOAT,
|
395
|
+
natural_gas_units CHARACTER VARYING(10),
|
396
|
+
natural_gas_cost INTEGER,
|
397
|
+
natural_gas_cost_units CHARACTER VARYING(10),
|
398
|
+
propane FLOAT,
|
399
|
+
propane_units CHARACTER VARYING(10),
|
400
|
+
propane_cost INTEGER,
|
401
|
+
propane_cost_units CHARACTER VARYING(10),
|
402
|
+
fuel_oil FLOAT,
|
403
|
+
fuel_oil_units CHARACTER VARYING(10),
|
404
|
+
fuel_oil_cost INTEGER,
|
405
|
+
fuel_oil_cost_units CHARACTER VARYING(10),
|
406
|
+
kerosene FLOAT,
|
407
|
+
kerosene_units CHARACTER VARYING(10),
|
408
|
+
kerosene_cost INTEGER,
|
409
|
+
kerosene_cost_units CHARACTER VARYING(10),
|
410
|
+
wood FLOAT,
|
411
|
+
wood_units CHARACTER VARYING(10)
|
412
|
+
);
|
413
|
+
EOS
|
414
|
+
|
415
|
+
self.table_name = "recs_2009_responses"
|
416
|
+
self.primary_key = "id"
|
417
|
+
|
418
|
+
has_many :states, :foreign_key => :recs_grouping_id, :primary_key => :recs_grouping_id
|
419
|
+
|
420
|
+
warn_if_nulls_except(
|
421
|
+
:metro_micro,
|
422
|
+
:converted_house,
|
423
|
+
:condo_coop,
|
424
|
+
:apartments,
|
425
|
+
:building_floors,
|
426
|
+
:garage_type,
|
427
|
+
:garage_size,
|
428
|
+
:basement_type,
|
429
|
+
:attic_type,
|
430
|
+
:roof_material,
|
431
|
+
:heater,
|
432
|
+
:heater_age,
|
433
|
+
:heater_fuel,
|
434
|
+
:heater_shared,
|
435
|
+
:heater_portion,
|
436
|
+
:heater_2,
|
437
|
+
:heater_2_fuel,
|
438
|
+
:heater_3,
|
439
|
+
:heater_3_fuel,
|
440
|
+
:heater_4,
|
441
|
+
:heater_4_fuel,
|
442
|
+
:heater_5,
|
443
|
+
:heater_5_fuel,
|
444
|
+
:heater_6,
|
445
|
+
:heater_6_fuel,
|
446
|
+
:cooler_central_age,
|
447
|
+
:cooler_central_shared,
|
448
|
+
:cooler_ac_age,
|
449
|
+
:cooler_ac_energy_star,
|
450
|
+
:water_heater,
|
451
|
+
:water_heater_fuel,
|
452
|
+
:water_heater_age,
|
453
|
+
:water_heater_size,
|
454
|
+
:water_heater_shared,
|
455
|
+
:water_heater_2,
|
456
|
+
:water_heater_2_fuel,
|
457
|
+
:water_heater_2_age,
|
458
|
+
:water_heater_2_size,
|
459
|
+
:pool_fuel,
|
460
|
+
:hot_tub_fuel,
|
461
|
+
:cooking_fuel,
|
462
|
+
:stove_fuel,
|
463
|
+
:cooktop_fuel,
|
464
|
+
:oven_fuel,
|
465
|
+
:oven_type,
|
466
|
+
:outdoor_grill_fuel,
|
467
|
+
:indoor_grill_fuel,
|
468
|
+
:fridge_type,
|
469
|
+
:fridge_size,
|
470
|
+
:fridge_defrost,
|
471
|
+
:fridge_door_ice,
|
472
|
+
:fridge_age,
|
473
|
+
:fridge_energy_star,
|
474
|
+
:fridge_2_type,
|
475
|
+
:fridge_2_size,
|
476
|
+
:fridge_2_defrost,
|
477
|
+
:fridge_2_age,
|
478
|
+
:fridge_2_energy_star,
|
479
|
+
:fridge_3_type,
|
480
|
+
:fridge_3_size,
|
481
|
+
:fridge_3_defrost,
|
482
|
+
:fridge_3_age,
|
483
|
+
:fridge_3_energy_star,
|
484
|
+
:freezer_type,
|
485
|
+
:freezer_size,
|
486
|
+
:freezer_defrost,
|
487
|
+
:freezer_age,
|
488
|
+
:freezer_2_type,
|
489
|
+
:freezer_2_size,
|
490
|
+
:freezer_2_defrost,
|
491
|
+
:freezer_2_age,
|
492
|
+
:dishwasher_age,
|
493
|
+
:dishwasher_energy_star,
|
494
|
+
:washer_type,
|
495
|
+
:washer_age,
|
496
|
+
:washer_energy_star,
|
497
|
+
:dryer_fuel,
|
498
|
+
:dryer_age,
|
499
|
+
:tv_size,
|
500
|
+
:tv_type,
|
501
|
+
:tv_theater,
|
502
|
+
:tv_2_size,
|
503
|
+
:tv_2_type,
|
504
|
+
:tv_2_theater,
|
505
|
+
:tv_3_size,
|
506
|
+
:tv_3_type,
|
507
|
+
:tv_3_theater,
|
508
|
+
:computer_type,
|
509
|
+
:computer_monitor,
|
510
|
+
:computer_2_type,
|
511
|
+
:computer_2_monitor,
|
512
|
+
:computer_3_type,
|
513
|
+
:computer_3_monitor,
|
514
|
+
:well_pump,
|
515
|
+
:engine_block_heater,
|
516
|
+
:heat_attic_portion,
|
517
|
+
:heat_basement_portion,
|
518
|
+
:heat_garage,
|
519
|
+
:heat_temp_day,
|
520
|
+
:heat_temp_day_units,
|
521
|
+
:heat_temp_night,
|
522
|
+
:heat_temp_night_units,
|
523
|
+
:heat_temp_away,
|
524
|
+
:heat_temp_away_units,
|
525
|
+
:heat_auto_adjust_day,
|
526
|
+
:heat_auto_adjust_night,
|
527
|
+
:cool_attic_portion,
|
528
|
+
:cool_basement_portion,
|
529
|
+
:cool_garage,
|
530
|
+
:cool_temp_day,
|
531
|
+
:cool_temp_day_units,
|
532
|
+
:cool_temp_night,
|
533
|
+
:cool_temp_night_units,
|
534
|
+
:cool_temp_away,
|
535
|
+
:cool_temp_away_units,
|
536
|
+
:cool_auto_adjust_day,
|
537
|
+
:cool_auto_adjust_night,
|
538
|
+
:cooler_central_use,
|
539
|
+
:cooler_ac_use,
|
540
|
+
:fan_use,
|
541
|
+
:humidifier_use,
|
542
|
+
:humidifier_use_units,
|
543
|
+
:dehumidifier_use,
|
544
|
+
:dehumidifier_use_units,
|
545
|
+
:oven_use,
|
546
|
+
:oven_use_units,
|
547
|
+
:microwave_use,
|
548
|
+
:microwave_defrost,
|
549
|
+
:fridge_2_use,
|
550
|
+
:fridge_2_use_units,
|
551
|
+
:fridge_3_use,
|
552
|
+
:fridge_3_use_units,
|
553
|
+
:dishwasher_use,
|
554
|
+
:dishwasher_use_units,
|
555
|
+
:washer_use,
|
556
|
+
:washer_use_units,
|
557
|
+
:washer_temp_wash,
|
558
|
+
:washer_temp_rinse,
|
559
|
+
:dryer_use,
|
560
|
+
:tv_weekday_use,
|
561
|
+
:tv_weekday_use_units,
|
562
|
+
:tv_weekend_use,
|
563
|
+
:tv_weekend_use_units,
|
564
|
+
:tv_2_weekday_use,
|
565
|
+
:tv_2_weekday_use_units,
|
566
|
+
:tv_2_weekend_use,
|
567
|
+
:tv_2_weekend_use_units,
|
568
|
+
:tv_3_weekday_use,
|
569
|
+
:tv_3_weekday_use_units,
|
570
|
+
:tv_3_weekend_use,
|
571
|
+
:tv_3_weekend_use_units,
|
572
|
+
:computer_use,
|
573
|
+
:computer_use_units,
|
574
|
+
:computer_idle,
|
575
|
+
:computer_2_use,
|
576
|
+
:computer_2_use_units,
|
577
|
+
:computer_2_idle,
|
578
|
+
:computer_3_use,
|
579
|
+
:computer_3_use_units,
|
580
|
+
:computer_3_idle,
|
581
|
+
:tool_charging,
|
582
|
+
:tool_vampires,
|
583
|
+
:electronic_charging,
|
584
|
+
:electronic_vampires,
|
585
|
+
:energy_audit_year,
|
586
|
+
:energy_audit_incent,
|
587
|
+
:energy_audit_incent_year,
|
588
|
+
:insulation_added_year,
|
589
|
+
:insulation_incent,
|
590
|
+
:insulation_incent_year,
|
591
|
+
:caulking_added_year,
|
592
|
+
:caulking_incent,
|
593
|
+
:caulking_incent_year,
|
594
|
+
:windows_replaced,
|
595
|
+
:windows_incent,
|
596
|
+
:windows_incent_year,
|
597
|
+
:heater_maintained,
|
598
|
+
:heater_replaced,
|
599
|
+
:heater_incent,
|
600
|
+
:heater_incent_year,
|
601
|
+
:cooler_central_maintained,
|
602
|
+
:cooler_central_replaced,
|
603
|
+
:cooler_central_incent,
|
604
|
+
:cooler_central_incent_year,
|
605
|
+
:cooler_ac_replaced,
|
606
|
+
:cooler_ac_incent,
|
607
|
+
:cooler_ac_incent_year,
|
608
|
+
:water_heater_blanket,
|
609
|
+
:water_heater_incent,
|
610
|
+
:water_heater_incent_year,
|
611
|
+
:lights_replaced,
|
612
|
+
:lights_incent,
|
613
|
+
:lights_incent_year,
|
614
|
+
:dishwasher_replaced,
|
615
|
+
:dishwasher_incent,
|
616
|
+
:dishwasher_incent_year,
|
617
|
+
:fridge_replaced,
|
618
|
+
:fridge_incent,
|
619
|
+
:fridge_incent_year,
|
620
|
+
:freezer_replaced,
|
621
|
+
:freezer_incent,
|
622
|
+
:freezer_incent_year,
|
623
|
+
:washer_replaced,
|
624
|
+
:washer_incent,
|
625
|
+
:washer_incent_year,
|
626
|
+
:renewable_energy,
|
627
|
+
:own_rent,
|
628
|
+
:member_2_age,
|
629
|
+
:member_3_age,
|
630
|
+
:member_4_age,
|
631
|
+
:member_5_age,
|
632
|
+
:member_6_age,
|
633
|
+
:member_7_age,
|
634
|
+
:member_8_age,
|
635
|
+
:member_9_age,
|
636
|
+
:member_10_age,
|
637
|
+
:member_11_age,
|
638
|
+
:member_12_age,
|
639
|
+
:member_13_age,
|
640
|
+
:member_14_age,
|
641
|
+
:public_housing_authority,
|
642
|
+
:low_rent,
|
643
|
+
:pays_electricity_heat,
|
644
|
+
:pays_electricity_water,
|
645
|
+
:pays_electricity_cooking,
|
646
|
+
:pays_electricity_cool,
|
647
|
+
:pays_electricity_lighting,
|
648
|
+
:pays_natural_gas_heat,
|
649
|
+
:pays_natural_gas_water,
|
650
|
+
:pays_natural_gas_cooking,
|
651
|
+
:pays_natural_gas_other,
|
652
|
+
:pays_fuel_oil,
|
653
|
+
:pays_propane
|
654
|
+
)
|
655
|
+
end
|