earth 0.4.1 → 0.4.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/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"
|