earth 0.4.1 → 0.4.2
Sign up to get free protection for your applications and to get access to all the features.
- data/earth.gemspec +1 -1
- data/lib/earth.rb +9 -1
- data/lib/earth/air/aircraft_manufacturer/data_miner.rb +1 -2
- data/lib/earth/automobile/automobile_make/data_miner.rb +4 -4
- data/lib/earth/automobile/automobile_make_model/data_miner.rb +1 -2
- data/lib/earth/automobile/automobile_make_model_year/data_miner.rb +1 -2
- data/lib/earth/automobile/automobile_make_year/data_miner.rb +7 -2
- data/lib/earth/fuel/fuel/data_miner.rb +1 -7
- data/lib/earth/hospitality/lodging_class/data_miner.rb +4 -4
- data/lib/earth/locality/egrid_subregion/data_miner.rb +1 -2
- data/lib/earth/locality/urbanity/data_miner.rb +1 -2
- data/lib/earth/residence/air_conditioner_use/data_miner.rb +1 -2
- data/lib/earth/residence/clothes_machine_use/data_miner.rb +1 -2
- data/lib/earth/residence/dishwasher_use/data_miner.rb +1 -2
- data/lib/earth/residence/residence_class/data_miner.rb +1 -2
- data/lib/earth/version.rb +1 -1
- metadata +16 -28
data/earth.gemspec
CHANGED
data/lib/earth.rb
CHANGED
@@ -5,7 +5,6 @@ require 'earth/conversions_ext'
|
|
5
5
|
require 'earth/inflectors'
|
6
6
|
require 'data_miner'
|
7
7
|
require 'falls_back_on'
|
8
|
-
require 'falls_back_on/active_record_ext'
|
9
8
|
require 'weighted_average'
|
10
9
|
require 'loose_tight_dictionary'
|
11
10
|
require 'slither'
|
@@ -162,3 +161,12 @@ private
|
|
162
161
|
end
|
163
162
|
end
|
164
163
|
end
|
164
|
+
|
165
|
+
def INSERT_IGNORE(cmd)
|
166
|
+
if ActiveRecord::Base.connection.adapter_name.downcase == 'sqlite'
|
167
|
+
prefix = 'INSERT'
|
168
|
+
else
|
169
|
+
prefix = 'INSERT IGNORE'
|
170
|
+
end
|
171
|
+
ActiveRecord::Base.connection.execute "#{prefix} #{cmd}"
|
172
|
+
end
|
@@ -10,8 +10,7 @@ AircraftManufacturer.class_eval do
|
|
10
10
|
|
11
11
|
process "Derive a list of aircraft manufacturers from aircraft" do
|
12
12
|
Aircraft.run_data_miner!
|
13
|
-
|
14
|
-
INSERT IGNORE INTO aircraft_manufacturers(name)
|
13
|
+
INSERT_IGNORE %{INTO aircraft_manufacturers(name)
|
15
14
|
SELECT aircraft.manufacturer_name FROM aircraft WHERE aircraft.manufacturer_name IS NOT NULL
|
16
15
|
}
|
17
16
|
end
|
@@ -12,18 +12,18 @@ AutomobileMake.class_eval do
|
|
12
12
|
|
13
13
|
process "Derive manufacturer names from automobile make model year variants" do
|
14
14
|
AutomobileMakeModelYearVariant.run_data_miner!
|
15
|
-
|
16
|
-
INSERT IGNORE INTO automobile_makes(name)
|
15
|
+
INSERT_IGNORE %{INTO automobile_makes(name)
|
17
16
|
SELECT DISTINCT automobile_make_model_year_variants.make_name
|
18
17
|
FROM automobile_make_model_year_variants
|
18
|
+
WHERE automobile_make_model_year_variants.make_name IS NOT NULL
|
19
|
+
AND LENGTH(automobile_make_model_year_variants.make_name) > 0
|
19
20
|
}
|
20
21
|
end
|
21
22
|
|
22
23
|
# sabshere 1/31/11 add Avanti, DaimlerChrysler, IHC, Tesla, etc.
|
23
24
|
process "Derive extra manufacturer names from CAFE data" do
|
24
25
|
AutomobileMakeFleetYear.run_data_miner!
|
25
|
-
|
26
|
-
INSERT IGNORE INTO automobile_makes(name)
|
26
|
+
INSERT IGNORE %{INTO automobile_makes(name)
|
27
27
|
SELECT DISTINCT automobile_make_fleet_years.make_name
|
28
28
|
FROM automobile_make_fleet_years
|
29
29
|
}
|
@@ -15,8 +15,7 @@ AutomobileMakeModel.class_eval do
|
|
15
15
|
|
16
16
|
process "Derive model names from automobile make model year variants" do
|
17
17
|
AutomobileMakeModelYearVariant.run_data_miner!
|
18
|
-
|
19
|
-
INSERT IGNORE INTO automobile_make_models(name, make_name)
|
18
|
+
INSERT_IGNORE %{INTO automobile_make_models(name, make_name)
|
20
19
|
SELECT automobile_make_model_year_variants.make_model_name, automobile_make_model_year_variants.make_name FROM automobile_make_model_year_variants WHERE LENGTH(automobile_make_model_year_variants.make_model_name) > 0 AND LENGTH(automobile_make_model_year_variants.make_name) > 0
|
21
20
|
}
|
22
21
|
end
|
@@ -18,8 +18,7 @@ AutomobileMakeModelYear.class_eval do
|
|
18
18
|
|
19
19
|
process "Derive model year names from automobile make model year variants" do
|
20
20
|
AutomobileMakeModelYearVariant.run_data_miner!
|
21
|
-
|
22
|
-
INSERT IGNORE INTO automobile_make_model_years(name, make_name, make_model_name, year, make_year_name)
|
21
|
+
INSERT_IGNORE %{INTO automobile_make_model_years(name, make_name, make_model_name, year, make_year_name)
|
23
22
|
SELECT automobile_make_model_year_variants.make_model_year_name, automobile_make_model_year_variants.make_name, automobile_make_model_year_variants.make_model_name, automobile_make_model_year_variants.year, automobile_make_model_year_variants.make_year_name FROM automobile_make_model_year_variants WHERE LENGTH(automobile_make_model_year_variants.make_name) > 0 AND LENGTH(automobile_make_model_year_variants.make_model_name) > 0
|
24
23
|
}
|
25
24
|
end
|
@@ -15,13 +15,18 @@ AutomobileMakeYear.class_eval do
|
|
15
15
|
|
16
16
|
process "Derive manufacturer names and years from automobile make model year variants" do
|
17
17
|
AutomobileMakeModelYearVariant.run_data_miner!
|
18
|
-
|
19
|
-
INSERT IGNORE INTO automobile_make_years(name, make_name, year)
|
18
|
+
INSERT_IGNORE %{INTO automobile_make_years(name, make_name, year)
|
20
19
|
SELECT
|
21
20
|
automobile_make_model_year_variants.make_year_name,
|
22
21
|
automobile_make_model_year_variants.make_name,
|
23
22
|
automobile_make_model_year_variants.year
|
24
23
|
FROM automobile_make_model_year_variants
|
24
|
+
WHERE automobile_make_model_year_variants.make_year_name IS NOT NULL
|
25
|
+
AND LENGTH(automobile_make_model_year_variants.make_year_name) > 0
|
26
|
+
AND automobile_make_model_year_variants.make_name IS NOT NULL
|
27
|
+
AND LENGTH(automobile_make_model_year_variants.make_name) > 0
|
28
|
+
AND automobile_make_model_year_variants.year IS NOT NULL
|
29
|
+
AND LENGTH(automobile_make_model_year_variants.year) > 0
|
25
30
|
}
|
26
31
|
end
|
27
32
|
|
@@ -18,13 +18,7 @@ Fuel.class_eval do
|
|
18
18
|
|
19
19
|
process "Derive fuel names from FuelYear" do
|
20
20
|
FuelYear.run_data_miner!
|
21
|
-
|
22
|
-
ignorance = ''
|
23
|
-
else
|
24
|
-
ignorance = 'IGNORE'
|
25
|
-
end
|
26
|
-
connection.execute %{
|
27
|
-
INSERT #{ignorance} INTO fuels(name)
|
21
|
+
INSERT_IGNORE %{INTO fuels(name)
|
28
22
|
SELECT DISTINCT fuel_years.fuel_name FROM fuel_years
|
29
23
|
}
|
30
24
|
end
|
@@ -19,14 +19,14 @@ LodgingClass.class_eval do
|
|
19
19
|
|
20
20
|
process "Convert fuel oil intensities to metric units" do
|
21
21
|
conversion_factor = 3.78541178 # Google: 3.78541178 l / gal
|
22
|
-
update_all "fuel_oil_intensity = fuel_oil_intensity * #{conversion_factor} WHERE
|
23
|
-
update_all "fuel_oil_intensity_units = 'litres_per_room_night' WHERE
|
22
|
+
update_all "fuel_oil_intensity = fuel_oil_intensity * #{conversion_factor} WHERE fuel_oil_intensity_units = 'gallons_per_room_night'"
|
23
|
+
update_all "fuel_oil_intensity_units = 'litres_per_room_night' WHERE fuel_oil_intensity_units = 'gallons_per_room_night'"
|
24
24
|
end
|
25
25
|
|
26
26
|
process "Convert district heat intensities to metric units" do
|
27
27
|
conversion_factor = 1.05505585 # Google: 1.05505585 MJ / 1000 Btu
|
28
|
-
update_all "district_heat_intensity = district_heat_intensity * #{conversion_factor} WHERE
|
29
|
-
update_all "district_heat_intensity_units = 'megajoules_per_room_night' WHERE
|
28
|
+
update_all "district_heat_intensity = district_heat_intensity * #{conversion_factor} WHERE district_heat_intensity_units = 'thousand_btu_per_room_night'"
|
29
|
+
update_all "district_heat_intensity_units = 'megajoules_per_room_night' WHERE district_heat_intensity_units = 'thousand_btu_per_room_night'"
|
30
30
|
end
|
31
31
|
end
|
32
32
|
end
|
@@ -37,8 +37,7 @@ EgridSubregion.class_eval do
|
|
37
37
|
# end
|
38
38
|
|
39
39
|
import "eGRID subregion data",
|
40
|
-
:url => 'https://spreadsheets.google.com/pub?key=0AoQJbWqPrREqdGRORTJNSWRMQ1puRVprYlAtZHhDaFE&hl=en&single=true&gid=0&output=csv'
|
41
|
-
:select => lambda { |row| row['abbreviation'].length == 4 } do
|
40
|
+
:url => 'https://spreadsheets.google.com/pub?key=0AoQJbWqPrREqdGRORTJNSWRMQ1puRVprYlAtZHhDaFE&hl=en&single=true&gid=0&output=csv' do
|
42
41
|
key 'abbreviation'
|
43
42
|
store 'name'
|
44
43
|
store 'nerc_abbreviation'
|
@@ -6,8 +6,7 @@ Urbanity.class_eval do
|
|
6
6
|
|
7
7
|
process "derive from ResidentialEnergyConsumptionSurveyResponse" do
|
8
8
|
ResidentialEnergyConsumptionSurveyResponse.run_data_miner!
|
9
|
-
|
10
|
-
INSERT IGNORE INTO urbanities(name)
|
9
|
+
INSERT_IGNORE %{INTO urbanities(name)
|
11
10
|
SELECT DISTINCT recs_responses.urbanity_id FROM recs_responses WHERE LENGTH(recs_responses.urbanity_id) > 0
|
12
11
|
}
|
13
12
|
end
|
@@ -8,8 +8,7 @@ AirConditionerUse.class_eval do
|
|
8
8
|
|
9
9
|
process "derive from ResidentialEnergyConsumptionSurveyResponse" do
|
10
10
|
ResidentialEnergyConsumptionSurveyResponse.run_data_miner!
|
11
|
-
|
12
|
-
INSERT IGNORE INTO air_conditioner_uses(name)
|
11
|
+
INSERT_IGNORE %{INTO air_conditioner_uses(name)
|
13
12
|
SELECT DISTINCT recs_responses.central_ac_use FROM recs_responses WHERE LENGTH(recs_responses.central_ac_use) > 0
|
14
13
|
}
|
15
14
|
end
|
@@ -8,8 +8,7 @@ ClothesMachineUse.class_eval do
|
|
8
8
|
|
9
9
|
process "derive from ResidentialEnergyConsumptionSurveyResponse" do
|
10
10
|
ResidentialEnergyConsumptionSurveyResponse.run_data_miner!
|
11
|
-
|
12
|
-
INSERT IGNORE INTO clothes_machine_uses(name)
|
11
|
+
INSERT_IGNORE %{INTO clothes_machine_uses(name)
|
13
12
|
SELECT DISTINCT recs_responses.clothes_washer_use FROM recs_responses WHERE LENGTH(recs_responses.clothes_washer_use) > 0
|
14
13
|
}
|
15
14
|
end
|
@@ -8,8 +8,7 @@ DishwasherUse.class_eval do
|
|
8
8
|
|
9
9
|
process "derive from ResidentialEnergyConsumptionSurveyResponse" do
|
10
10
|
ResidentialEnergyConsumptionSurveyResponse.run_data_miner!
|
11
|
-
|
12
|
-
INSERT IGNORE INTO dishwasher_uses(name)
|
11
|
+
INSERT_IGNORE %{INTO dishwasher_uses(name)
|
13
12
|
SELECT DISTINCT recs_responses.dishwasher_use_id FROM recs_responses WHERE LENGTH(recs_responses.dishwasher_use_id) > 0
|
14
13
|
}
|
15
14
|
end
|
@@ -6,8 +6,7 @@ ResidenceClass.class_eval do
|
|
6
6
|
|
7
7
|
process "derive from ResidentialEnergyConsumptionSurveyResponse" do
|
8
8
|
ResidentialEnergyConsumptionSurveyResponse.run_data_miner!
|
9
|
-
|
10
|
-
INSERT IGNORE INTO residence_classes(name)
|
9
|
+
INSERT_IGNORE %{INTO residence_classes(name)
|
11
10
|
SELECT DISTINCT recs_responses.residence_class_id FROM recs_responses WHERE LENGTH(recs_responses.residence_class_id) > 0
|
12
11
|
}
|
13
12
|
end
|
data/lib/earth/version.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: earth
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash: 13
|
5
4
|
prerelease: false
|
6
5
|
segments:
|
7
6
|
- 0
|
8
7
|
- 4
|
9
|
-
-
|
10
|
-
version: 0.4.
|
8
|
+
- 2
|
9
|
+
version: 0.4.2
|
11
10
|
platform: ruby
|
12
11
|
authors:
|
13
12
|
- Seamus Abshere
|
@@ -17,178 +16,167 @@ autorequire:
|
|
17
16
|
bindir: bin
|
18
17
|
cert_chain: []
|
19
18
|
|
20
|
-
date: 2011-02-21 00:00:00 -
|
19
|
+
date: 2011-02-21 00:00:00 -05:00
|
21
20
|
default_executable:
|
22
21
|
dependencies:
|
23
22
|
- !ruby/object:Gem::Dependency
|
24
23
|
name: activerecord
|
25
|
-
prerelease: false
|
26
24
|
requirement: &id001 !ruby/object:Gem::Requirement
|
27
25
|
none: false
|
28
26
|
requirements:
|
29
27
|
- - ~>
|
30
28
|
- !ruby/object:Gem::Version
|
31
|
-
hash: 5
|
32
29
|
segments:
|
33
30
|
- 3
|
34
31
|
version: "3"
|
35
32
|
type: :runtime
|
33
|
+
prerelease: false
|
36
34
|
version_requirements: *id001
|
37
35
|
- !ruby/object:Gem::Dependency
|
38
36
|
name: data_miner
|
39
|
-
prerelease: false
|
40
37
|
requirement: &id002 !ruby/object:Gem::Requirement
|
41
38
|
none: false
|
42
39
|
requirements:
|
43
40
|
- - ~>
|
44
41
|
- !ruby/object:Gem::Version
|
45
|
-
hash: 17
|
46
42
|
segments:
|
47
43
|
- 1
|
48
44
|
- 1
|
49
45
|
- 1
|
50
46
|
version: 1.1.1
|
51
47
|
type: :runtime
|
48
|
+
prerelease: false
|
52
49
|
version_requirements: *id002
|
53
50
|
- !ruby/object:Gem::Dependency
|
54
51
|
name: errata
|
55
|
-
prerelease: false
|
56
52
|
requirement: &id003 !ruby/object:Gem::Requirement
|
57
53
|
none: false
|
58
54
|
requirements:
|
59
55
|
- - ">="
|
60
56
|
- !ruby/object:Gem::Version
|
61
|
-
hash: 3
|
62
57
|
segments:
|
63
58
|
- 0
|
64
59
|
version: "0"
|
65
60
|
type: :runtime
|
61
|
+
prerelease: false
|
66
62
|
version_requirements: *id003
|
67
63
|
- !ruby/object:Gem::Dependency
|
68
64
|
name: falls_back_on
|
69
|
-
prerelease: false
|
70
65
|
requirement: &id004 !ruby/object:Gem::Requirement
|
71
66
|
none: false
|
72
67
|
requirements:
|
73
68
|
- - ">="
|
74
69
|
- !ruby/object:Gem::Version
|
75
|
-
hash: 25
|
76
70
|
segments:
|
77
71
|
- 0
|
78
72
|
- 0
|
79
73
|
- 3
|
80
74
|
version: 0.0.3
|
81
75
|
type: :runtime
|
76
|
+
prerelease: false
|
82
77
|
version_requirements: *id004
|
83
78
|
- !ruby/object:Gem::Dependency
|
84
79
|
name: geokit
|
85
|
-
prerelease: false
|
86
80
|
requirement: &id005 !ruby/object:Gem::Requirement
|
87
81
|
none: false
|
88
82
|
requirements:
|
89
83
|
- - ">="
|
90
84
|
- !ruby/object:Gem::Version
|
91
|
-
hash: 3
|
92
85
|
segments:
|
93
86
|
- 1
|
94
87
|
- 5
|
95
88
|
- 0
|
96
89
|
version: 1.5.0
|
97
90
|
type: :runtime
|
91
|
+
prerelease: false
|
98
92
|
version_requirements: *id005
|
99
93
|
- !ruby/object:Gem::Dependency
|
100
94
|
name: geokit-rails
|
101
|
-
prerelease: false
|
102
95
|
requirement: &id006 !ruby/object:Gem::Requirement
|
103
96
|
none: false
|
104
97
|
requirements:
|
105
98
|
- - ">="
|
106
99
|
- !ruby/object:Gem::Version
|
107
|
-
hash: 3
|
108
100
|
segments:
|
109
101
|
- 0
|
110
102
|
version: "0"
|
111
103
|
type: :runtime
|
104
|
+
prerelease: false
|
112
105
|
version_requirements: *id006
|
113
106
|
- !ruby/object:Gem::Dependency
|
114
107
|
name: cohort_scope
|
115
|
-
prerelease: false
|
116
108
|
requirement: &id007 !ruby/object:Gem::Requirement
|
117
109
|
none: false
|
118
110
|
requirements:
|
119
111
|
- - ">="
|
120
112
|
- !ruby/object:Gem::Version
|
121
|
-
hash: 17
|
122
113
|
segments:
|
123
114
|
- 0
|
124
115
|
- 0
|
125
116
|
- 7
|
126
117
|
version: 0.0.7
|
127
118
|
type: :runtime
|
119
|
+
prerelease: false
|
128
120
|
version_requirements: *id007
|
129
121
|
- !ruby/object:Gem::Dependency
|
130
122
|
name: conversions
|
131
|
-
prerelease: false
|
132
123
|
requirement: &id008 !ruby/object:Gem::Requirement
|
133
124
|
none: false
|
134
125
|
requirements:
|
135
126
|
- - ">="
|
136
127
|
- !ruby/object:Gem::Version
|
137
|
-
hash: 13
|
138
128
|
segments:
|
139
129
|
- 1
|
140
130
|
- 4
|
141
131
|
- 5
|
142
132
|
version: 1.4.5
|
143
133
|
type: :runtime
|
134
|
+
prerelease: false
|
144
135
|
version_requirements: *id008
|
145
136
|
- !ruby/object:Gem::Dependency
|
146
137
|
name: weighted_average
|
147
|
-
prerelease: false
|
148
138
|
requirement: &id009 !ruby/object:Gem::Requirement
|
149
139
|
none: false
|
150
140
|
requirements:
|
151
141
|
- - ">="
|
152
142
|
- !ruby/object:Gem::Version
|
153
|
-
hash: 23
|
154
143
|
segments:
|
155
144
|
- 0
|
156
145
|
- 0
|
157
146
|
- 4
|
158
147
|
version: 0.0.4
|
159
148
|
type: :runtime
|
149
|
+
prerelease: false
|
160
150
|
version_requirements: *id009
|
161
151
|
- !ruby/object:Gem::Dependency
|
162
152
|
name: loose_tight_dictionary
|
163
|
-
prerelease: false
|
164
153
|
requirement: &id010 !ruby/object:Gem::Requirement
|
165
154
|
none: false
|
166
155
|
requirements:
|
167
156
|
- - ">="
|
168
157
|
- !ruby/object:Gem::Version
|
169
|
-
hash: 15
|
170
158
|
segments:
|
171
159
|
- 0
|
172
160
|
- 0
|
173
161
|
- 8
|
174
162
|
version: 0.0.8
|
175
163
|
type: :runtime
|
164
|
+
prerelease: false
|
176
165
|
version_requirements: *id010
|
177
166
|
- !ruby/object:Gem::Dependency
|
178
167
|
name: sniff
|
179
|
-
prerelease: false
|
180
168
|
requirement: &id011 !ruby/object:Gem::Requirement
|
181
169
|
none: false
|
182
170
|
requirements:
|
183
171
|
- - ~>
|
184
172
|
- !ruby/object:Gem::Version
|
185
|
-
hash: 5
|
186
173
|
segments:
|
187
174
|
- 0
|
188
175
|
- 6
|
189
176
|
- 1
|
190
177
|
version: 0.6.1
|
191
178
|
type: :development
|
179
|
+
prerelease: false
|
192
180
|
version_requirements: *id011
|
193
181
|
description: An earth-simulation environment with ActiveRecord models and data
|
194
182
|
email: andy@rossmeissl.net
|
@@ -544,7 +532,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
544
532
|
requirements:
|
545
533
|
- - ">="
|
546
534
|
- !ruby/object:Gem::Version
|
547
|
-
hash:
|
535
|
+
hash: 3351943495966616780
|
548
536
|
segments:
|
549
537
|
- 0
|
550
538
|
version: "0"
|
@@ -553,7 +541,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
553
541
|
requirements:
|
554
542
|
- - ">="
|
555
543
|
- !ruby/object:Gem::Version
|
556
|
-
hash:
|
544
|
+
hash: 3351943495966616780
|
557
545
|
segments:
|
558
546
|
- 0
|
559
547
|
version: "0"
|