earth 0.5.0 → 0.5.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (173) hide show
  1. data/Gemfile +4 -5
  2. data/README.markdown +0 -8
  3. data/Rakefile +14 -10
  4. data/bin/earth_tester.rb +12 -12
  5. data/earth.gemspec +2 -1
  6. data/features/automobile_make_fleet_year.feature +9 -19
  7. data/features/automobile_make_model_year.feature +4 -4
  8. data/features/support/env.rb +11 -7
  9. data/features/support/imports/automobile_make_fleet_year_bad.csv +1 -1
  10. data/features/support/imports/automobile_make_fleet_year_good.csv +1 -1
  11. data/features/support/imports/automobile_make_model_year_bad.csv +1 -1
  12. data/features/support/imports/automobile_make_model_year_good.csv +1 -1
  13. data/lib/earth/air/aircraft/data_miner.rb +63 -15
  14. data/lib/earth/air/aircraft.rb +0 -11
  15. data/lib/earth/air/aircraft_class/data_miner.rb +0 -13
  16. data/lib/earth/air/aircraft_class.rb +12 -3
  17. data/lib/earth/air/aircraft_fuel_use_equation/data_miner.rb +0 -13
  18. data/lib/earth/air/aircraft_fuel_use_equation.rb +12 -3
  19. data/lib/earth/air/airline/data_miner.rb +0 -7
  20. data/lib/earth/air/airline.rb +6 -3
  21. data/lib/earth/air/airport/data_miner.rb +5 -14
  22. data/lib/earth/air/airport.rb +9 -7
  23. data/lib/earth/air/bts_aircraft/data_miner.rb +0 -5
  24. data/lib/earth/air/bts_aircraft.rb +3 -3
  25. data/lib/earth/air/data_miner.rb +2 -3
  26. data/lib/earth/air/flight_distance_class/data_miner.rb +0 -6
  27. data/lib/earth/air/flight_distance_class.rb +4 -3
  28. data/lib/earth/air/flight_seat_class/data_miner.rb +0 -7
  29. data/lib/earth/air/flight_seat_class.rb +6 -3
  30. data/lib/earth/air/flight_segment/data_miner.rb +30 -112
  31. data/lib/earth/air/flight_segment.rb +47 -13
  32. data/lib/earth/air.rb +2 -1
  33. data/lib/earth/automobile/automobile_fuel/data_miner.rb +1 -25
  34. data/lib/earth/automobile/automobile_fuel.rb +24 -8
  35. data/lib/earth/automobile/automobile_make/data_miner.rb +3 -16
  36. data/lib/earth/automobile/automobile_make.rb +5 -3
  37. data/lib/earth/automobile/automobile_make_fleet_year/data_miner.rb +16 -30
  38. data/lib/earth/automobile/automobile_make_fleet_year.rb +10 -7
  39. data/lib/earth/automobile/automobile_make_model/data_miner.rb +1 -11
  40. data/lib/earth/automobile/automobile_make_model.rb +9 -7
  41. data/lib/earth/automobile/automobile_make_model_year/data_miner.rb +4 -17
  42. data/lib/earth/automobile/automobile_make_model_year.rb +11 -6
  43. data/lib/earth/automobile/automobile_make_model_year_variant/data_miner.rb +37 -65
  44. data/lib/earth/automobile/automobile_make_model_year_variant.rb +36 -6
  45. data/lib/earth/automobile/automobile_make_year/data_miner.rb +3 -15
  46. data/lib/earth/automobile/automobile_make_year.rb +8 -7
  47. data/lib/earth/automobile/automobile_size_class/data_miner.rb +0 -15
  48. data/lib/earth/automobile/automobile_size_class.rb +13 -2
  49. data/lib/earth/automobile/automobile_size_class_year/data_miner.rb +0 -11
  50. data/lib/earth/automobile/automobile_size_class_year.rb +10 -3
  51. data/lib/earth/automobile/automobile_type_fuel_age/data_miner.rb +0 -12
  52. data/lib/earth/automobile/automobile_type_fuel_age.rb +10 -2
  53. data/lib/earth/automobile/automobile_type_fuel_control/data_miner.rb +0 -11
  54. data/lib/earth/automobile/automobile_type_fuel_control.rb +9 -3
  55. data/lib/earth/automobile/automobile_type_fuel_year/data_miner.rb +1 -17
  56. data/lib/earth/automobile/automobile_type_fuel_year.rb +14 -6
  57. data/lib/earth/automobile/automobile_type_fuel_year_age/data_miner.rb +0 -13
  58. data/lib/earth/automobile/automobile_type_fuel_year_age.rb +12 -7
  59. data/lib/earth/automobile/automobile_type_fuel_year_control/data_miner.rb +0 -11
  60. data/lib/earth/automobile/automobile_type_fuel_year_control.rb +9 -6
  61. data/lib/earth/automobile/automobile_type_year/data_miner.rb +0 -10
  62. data/lib/earth/automobile/automobile_type_year.rb +9 -3
  63. data/lib/earth/bus/bus_class/data_miner.rb +0 -29
  64. data/lib/earth/bus/bus_class.rb +27 -2
  65. data/lib/earth/bus/bus_fuel/data_miner.rb +1 -16
  66. data/lib/earth/bus/bus_fuel.rb +15 -8
  67. data/lib/earth/bus/bus_fuel_control/data_miner.rb +0 -10
  68. data/lib/earth/bus/bus_fuel_control.rb +8 -3
  69. data/lib/earth/bus/bus_fuel_year_control/data_miner.rb +1 -10
  70. data/lib/earth/bus/bus_fuel_year_control.rb +8 -7
  71. data/lib/earth/bus/data_miner.rb +2 -0
  72. data/lib/earth/bus.rb +2 -0
  73. data/lib/earth/computation/computation_carrier/data_miner.rb +0 -5
  74. data/lib/earth/computation/computation_carrier.rb +3 -2
  75. data/lib/earth/computation/computation_carrier_instance_class/data_miner.rb +0 -8
  76. data/lib/earth/computation/computation_carrier_instance_class.rb +6 -6
  77. data/lib/earth/computation/computation_carrier_region/data_miner.rb +0 -7
  78. data/lib/earth/computation/computation_carrier_region.rb +6 -7
  79. data/lib/earth/computation/data_miner.rb +2 -0
  80. data/lib/earth/computation.rb +2 -0
  81. data/lib/earth/diet/diet_class/data_miner.rb +0 -16
  82. data/lib/earth/diet/diet_class.rb +16 -4
  83. data/lib/earth/diet/food_group/data_miner.rb +0 -9
  84. data/lib/earth/diet/food_group.rb +7 -2
  85. data/lib/earth/fuel/fuel/data_miner.rb +0 -16
  86. data/lib/earth/fuel/fuel.rb +14 -2
  87. data/lib/earth/fuel/fuel_price/data_miner.rb +0 -6
  88. data/lib/earth/fuel/fuel_price.rb +4 -6
  89. data/lib/earth/fuel/fuel_type/data_miner.rb +0 -14
  90. data/lib/earth/fuel/fuel_type.rb +14 -4
  91. data/lib/earth/fuel/fuel_year/data_miner.rb +0 -16
  92. data/lib/earth/fuel/fuel_year.rb +14 -2
  93. data/lib/earth/fuel/greenhouse_gas/data_miner.rb +0 -9
  94. data/lib/earth/fuel/greenhouse_gas.rb +10 -5
  95. data/lib/earth/hospitality/lodging_class/data_miner.rb +0 -12
  96. data/lib/earth/hospitality/lodging_class.rb +10 -2
  97. data/lib/earth/industry/data_miner.rb +0 -0
  98. data/lib/earth/industry/industry.rb +3 -10
  99. data/lib/earth/industry/industry_product.rb +6 -13
  100. data/lib/earth/industry/industry_product_line.rb +5 -12
  101. data/lib/earth/industry/industry_sector.rb +5 -12
  102. data/lib/earth/industry/merchant.rb +4 -11
  103. data/lib/earth/industry/merchant_category.rb +3 -10
  104. data/lib/earth/industry/merchant_category_industry.rb +5 -12
  105. data/lib/earth/industry/product_line.rb +5 -12
  106. data/lib/earth/industry/product_line_industry_product.rb +5 -12
  107. data/lib/earth/industry/sector.rb +5 -12
  108. data/lib/earth/locality/census_division/data_miner.rb +0 -23
  109. data/lib/earth/locality/census_division.rb +21 -6
  110. data/lib/earth/locality/census_region/data_miner.rb +0 -5
  111. data/lib/earth/locality/census_region.rb +3 -2
  112. data/lib/earth/locality/climate_division/data_miner.rb +0 -7
  113. data/lib/earth/locality/climate_division.rb +5 -7
  114. data/lib/earth/locality/country/data_miner.rb +16 -29
  115. data/lib/earth/locality/country.rb +15 -4
  116. data/lib/earth/locality/data_miner.rb +3 -0
  117. data/lib/earth/locality/egrid_region/data_miner.rb +0 -5
  118. data/lib/earth/locality/egrid_region.rb +5 -8
  119. data/lib/earth/locality/egrid_subregion/data_miner.rb +1 -20
  120. data/lib/earth/locality/egrid_subregion.rb +17 -6
  121. data/lib/earth/locality/petroleum_administration_for_defense_district/data_miner.rb +4 -13
  122. data/lib/earth/locality/petroleum_administration_for_defense_district.rb +8 -4
  123. data/lib/earth/locality/state/data_miner.rb +0 -8
  124. data/lib/earth/locality/state.rb +6 -7
  125. data/lib/earth/locality/urbanity/data_miner.rb +0 -4
  126. data/lib/earth/locality/urbanity.rb +2 -2
  127. data/lib/earth/locality/zip_code/data_miner.rb +0 -10
  128. data/lib/earth/locality/zip_code.rb +8 -6
  129. data/lib/earth/locality.rb +3 -0
  130. data/lib/earth/pet/breed/data_miner.rb +0 -7
  131. data/lib/earth/pet/breed.rb +5 -6
  132. data/lib/earth/pet/breed_gender/data_miner.rb +0 -8
  133. data/lib/earth/pet/breed_gender.rb +6 -6
  134. data/lib/earth/pet/gender/data_miner.rb +0 -3
  135. data/lib/earth/pet/gender.rb +2 -2
  136. data/lib/earth/pet/species/data_miner.rb +0 -17
  137. data/lib/earth/pet/species.rb +17 -4
  138. data/lib/earth/rail/rail_class/data_miner.rb +0 -14
  139. data/lib/earth/rail/rail_class.rb +12 -3
  140. data/lib/earth/residence/air_conditioner_use/data_miner.rb +0 -6
  141. data/lib/earth/residence/air_conditioner_use.rb +5 -3
  142. data/lib/earth/residence/clothes_machine_use/data_miner.rb +0 -6
  143. data/lib/earth/residence/clothes_machine_use.rb +4 -2
  144. data/lib/earth/residence/data_miner.rb +2 -0
  145. data/lib/earth/residence/dishwasher_use/data_miner.rb +0 -6
  146. data/lib/earth/residence/dishwasher_use.rb +5 -3
  147. data/lib/earth/residence/residence_appliance/data_miner.rb +0 -6
  148. data/lib/earth/residence/residence_appliance.rb +4 -2
  149. data/lib/earth/residence/residence_class/data_miner.rb +0 -4
  150. data/lib/earth/residence/residence_class.rb +2 -2
  151. data/lib/earth/residence/residence_fuel_price/data_miner.rb +0 -14
  152. data/lib/earth/residence/residence_fuel_price.rb +12 -7
  153. data/lib/earth/residence/residence_fuel_type/data_miner.rb +0 -8
  154. data/lib/earth/residence/residence_fuel_type.rb +6 -2
  155. data/lib/earth/residence/residential_energy_consumption_survey_response/data_miner.rb +0 -94
  156. data/lib/earth/residence/residential_energy_consumption_survey_response.rb +92 -6
  157. data/lib/earth/residence.rb +2 -0
  158. data/lib/earth/shipping/carrier/data_miner.rb +0 -10
  159. data/lib/earth/shipping/carrier.rb +8 -2
  160. data/lib/earth/shipping/carrier_mode/data_miner.rb +0 -10
  161. data/lib/earth/shipping/carrier_mode.rb +9 -3
  162. data/lib/earth/shipping/shipment_mode/data_miner.rb +0 -7
  163. data/lib/earth/shipping/shipment_mode.rb +5 -2
  164. data/lib/earth/version.rb +1 -1
  165. data/lib/earth.rb +92 -84
  166. data/spec/earth/air/aircraft_spec.rb +1 -1
  167. data/spec/earth_spec.rb +15 -15
  168. data/spec/spec_helper.rb +12 -9
  169. metadata +175 -171
  170. data/lib/earth/active_record_ext.rb +0 -9
  171. data/lib/earth/air/aircraft_manufacturer/data_miner.rb +0 -21
  172. data/lib/earth/air/aircraft_manufacturer.rb +0 -7
  173. data/lib/earth/base.rb +0 -7
@@ -1,13 +1,5 @@
1
1
  State.class_eval do
2
2
  data_miner do
3
- schema Earth.database_options do
4
- string 'postal_abbreviation'
5
- integer 'fips_code'
6
- string 'name'
7
- string 'census_division_number'
8
- string 'petroleum_administration_for_defense_district_code'
9
- end
10
-
11
3
  # state names, ansi codes, and postal abbreviations
12
4
  import 'the U.S. Census State ANSI Code file',
13
5
  :url => 'http://www.census.gov/geo/www/ansi/state.txt',
@@ -11,12 +11,11 @@ class State < ActiveRecord::Base
11
11
  Country.united_states
12
12
  end
13
13
 
14
- data_miner do
15
- tap "Brighter Planet's sanitized states", Earth.taps_server
16
-
17
- process "pull dependencies" do
18
- run_data_miner_on_belongs_to_associations
19
- end
14
+ create_table do
15
+ string 'postal_abbreviation'
16
+ integer 'fips_code'
17
+ string 'name'
18
+ string 'census_division_number'
19
+ string 'petroleum_administration_for_defense_district_code'
20
20
  end
21
-
22
21
  end
@@ -1,9 +1,5 @@
1
1
  Urbanity.class_eval do
2
2
  data_miner do
3
- schema do
4
- string 'name'
5
- end
6
-
7
3
  process "Ensure ResidentialEnergyConsumptionSurveyResponse is populated" do
8
4
  ResidentialEnergyConsumptionSurveyResponse.run_data_miner!
9
5
  end
@@ -3,7 +3,7 @@ class Urbanity < ActiveRecord::Base
3
3
 
4
4
  has_many :residential_energy_consumption_survey_responses
5
5
 
6
- data_miner do
7
- tap "Brighter Planet's sanitized urbanity data", Earth.taps_server
6
+ create_table do
7
+ string 'name'
8
8
  end
9
9
  end
@@ -7,16 +7,6 @@ ZipCode.class_eval do
7
7
  # end
8
8
 
9
9
  data_miner do
10
- schema Earth.database_options do
11
- string 'name'
12
- string 'state_postal_abbreviation'
13
- string 'description'
14
- string 'latitude'
15
- string 'longitude'
16
- string 'egrid_subregion_abbreviation'
17
- string 'climate_division_name'
18
- end
19
-
20
10
  import 'the Mapping Hacks zipcode database',
21
11
  :url => 'http://mappinghacks.com/data/zipcode.zip',
22
12
  :filename => 'zipcode.csv' do
@@ -11,11 +11,13 @@ class ZipCode < ActiveRecord::Base
11
11
  :lat_column_name => :latitude,
12
12
  :lng_column_name => :longitude
13
13
 
14
- data_miner do
15
- tap "Brighter Planet's sanitized zip codes", Earth.taps_server
16
-
17
- process "pull dependencies" do
18
- run_data_miner_on_belongs_to_associations
19
- end
14
+ create_table do
15
+ string 'name'
16
+ string 'state_postal_abbreviation'
17
+ string 'description'
18
+ string 'latitude'
19
+ string 'longitude'
20
+ string 'egrid_subregion_abbreviation'
21
+ string 'climate_division_name'
20
22
  end
21
23
  end
@@ -8,3 +8,6 @@ require 'earth/locality/petroleum_administration_for_defense_district'
8
8
  require 'earth/locality/state'
9
9
  require 'earth/locality/urbanity'
10
10
  require 'earth/locality/zip_code'
11
+
12
+ require 'earth/automobile'
13
+ require 'earth/residence'
@@ -1,12 +1,5 @@
1
1
  Breed.class_eval do
2
2
  data_miner do
3
- schema Earth.database_options do
4
- string 'name'
5
- string 'species_name'
6
- float 'weight'
7
- string 'weight_units'
8
- end
9
-
10
3
  import "Brighter Planet's list of cat and dog breeds",
11
4
  :url => 'http://static.brighterplanet.com/science/data/consumables/pets/breed_genders.csv',
12
5
  :encoding => 'ISO-8859-1',
@@ -4,11 +4,10 @@ class Breed < ActiveRecord::Base
4
4
  has_many :breed_genders, :foreign_key => 'breed_name'
5
5
  belongs_to :species, :foreign_key => 'species_name'
6
6
 
7
- data_miner do
8
- tap "Brighter Planet's breed data", Earth.taps_server
9
-
10
- process "pull dependencies" do
11
- run_data_miner_on_belongs_to_associations
12
- end
7
+ create_table do
8
+ string 'name'
9
+ string 'species_name'
10
+ float 'weight'
11
+ string 'weight_units'
13
12
  end
14
13
  end
@@ -1,13 +1,5 @@
1
1
  BreedGender.class_eval do
2
2
  data_miner do
3
- schema Earth.database_options do
4
- string 'name'
5
- string 'breed_name'
6
- string 'gender_name'
7
- float 'weight'
8
- string 'weight_units'
9
- end
10
-
11
3
  import "Brighter Planet's list of cat and dog breeds, genders, and weights",
12
4
  :url => 'http://static.brighterplanet.com/science/data/consumables/pets/breed_genders.csv',
13
5
  :encoding => 'ISO-8859-1',
@@ -4,11 +4,11 @@ class BreedGender < ActiveRecord::Base
4
4
  belongs_to :breed, :foreign_key => 'breed_name'
5
5
  belongs_to :gender, :foreign_key => 'gender_name'
6
6
 
7
- data_miner do
8
- tap "Brighter Planet's breed gender data", Earth.taps_server
9
-
10
- process "pull dependencies" do
11
- run_data_miner_on_belongs_to_associations
12
- end
7
+ create_table do
8
+ string 'name'
9
+ string 'breed_name'
10
+ string 'gender_name'
11
+ float 'weight'
12
+ string 'weight_units'
13
13
  end
14
14
  end
@@ -1,8 +1,5 @@
1
1
  Gender.class_eval do
2
2
  data_miner do
3
- schema Earth.database_options do
4
- string 'name'
5
- end
6
3
  import "a list of genders derived from pet breed genders",
7
4
  :url => 'http://static.brighterplanet.com/science/data/consumables/pets/breed_genders.csv',
8
5
  :select => lambda { |row| row['gender'].present? } do
@@ -3,7 +3,7 @@ class Gender < ActiveRecord::Base
3
3
 
4
4
  has_many :breed_genders, :foreign_key => 'gender_name'
5
5
 
6
- data_miner do
7
- tap "Brighter Planet's gender info", Earth.taps_server
6
+ create_table do
7
+ string 'name'
8
8
  end
9
9
  end
@@ -1,22 +1,5 @@
1
1
  Species.class_eval do
2
2
  data_miner do
3
- schema Earth.database_options do
4
- string 'name'
5
- integer 'population'
6
- float 'diet_emission_intensity'
7
- string 'diet_emission_intensity_units'
8
- float 'weight'
9
- string 'weight_units'
10
- float 'marginal_dietary_requirement'
11
- string 'marginal_dietary_requirement_units'
12
- float 'fixed_dietary_requirement'
13
- string 'fixed_dietary_requirement_units'
14
- float 'minimum_weight'
15
- string 'minimum_weight_units'
16
- float 'maximum_weight'
17
- string 'maximum_weight_units'
18
- end
19
-
20
3
  process "Define some unit conversions" do
21
4
  # 1 (kilocalories per pound) = 9 224.14105 joules per kilogram
22
5
  Conversions.register :kilocalories_per_pound, :joules_per_kilogram, 9_224.14105
@@ -1,6 +1,23 @@
1
1
  class Species < ActiveRecord::Base
2
2
  set_primary_key :name
3
3
 
4
+ create_table do
5
+ string 'name'
6
+ integer 'population'
7
+ float 'diet_emission_intensity'
8
+ string 'diet_emission_intensity_units'
9
+ float 'weight'
10
+ string 'weight_units'
11
+ float 'marginal_dietary_requirement'
12
+ string 'marginal_dietary_requirement_units'
13
+ float 'fixed_dietary_requirement'
14
+ string 'fixed_dietary_requirement_units'
15
+ float 'minimum_weight'
16
+ string 'minimum_weight_units'
17
+ float 'maximum_weight'
18
+ string 'maximum_weight_units'
19
+ end
20
+
4
21
  scope :thoroughly_researched, :conditions => 'marginal_dietary_requirement IS NOT NULL'
5
22
 
6
23
  falls_back_on :diet_emission_intensity => lambda { weighted_average :diet_emission_intensity, :weighted_by => :population }, # kg CO2 / joule
@@ -8,10 +25,6 @@ class Species < ActiveRecord::Base
8
25
  :fixed_dietary_requirement => 0, # force a zero intercept to be respectful of our tiny tiny animal friends
9
26
  :weight => lambda { weighted_average :weight, :weighted_by => :population } # kg
10
27
 
11
- data_miner do
12
- tap "Brighter Planet's species data", Earth.taps_server
13
- end
14
-
15
28
  class << self
16
29
  def [](name)
17
30
  find_by_name name.to_s
@@ -1,19 +1,5 @@
1
1
  RailClass.class_eval do
2
2
  data_miner do
3
- schema Earth.database_options do
4
- string 'name'
5
- string 'description'
6
- float 'passengers'
7
- float 'distance'
8
- string 'distance_units'
9
- float 'speed'
10
- string 'speed_units'
11
- float 'electricity_intensity'
12
- string 'electricity_intensity_units'
13
- float 'diesel_intensity'
14
- string 'diesel_intensity_units'
15
- end
16
-
17
3
  process "Define some unit conversions" do
18
4
  Conversions.register :gallons_per_mile, :litres_per_kilometre, 2.35214583
19
5
  end
@@ -1,7 +1,16 @@
1
1
  class RailClass < ActiveRecord::Base
2
2
  set_primary_key :name
3
-
4
- data_miner do
5
- tap "Brighter Planet's rail class data", Earth.taps_server
3
+ create_table do
4
+ string 'name'
5
+ string 'description'
6
+ float 'passengers'
7
+ float 'distance'
8
+ string 'distance_units'
9
+ float 'speed'
10
+ string 'speed_units'
11
+ float 'electricity_intensity'
12
+ string 'electricity_intensity_units'
13
+ float 'diesel_intensity'
14
+ string 'diesel_intensity_units'
6
15
  end
7
16
  end
@@ -1,11 +1,5 @@
1
1
  AirConditionerUse.class_eval do
2
2
  data_miner do
3
- schema do
4
- string 'name'
5
- float 'fugitive_emission'
6
- string 'fugitive_emission_units'
7
- end
8
-
9
3
  process "Ensure ResidentialEnergyConsumptionSurveyResponse is populated" do
10
4
  ResidentialEnergyConsumptionSurveyResponse.run_data_miner!
11
5
  end
@@ -5,8 +5,10 @@ class AirConditionerUse < ActiveRecord::Base
5
5
 
6
6
  falls_back_on :fugitive_emission => 0.102295.pounds_per_square_foot.to(:kilograms_per_square_metre), # https://brighterplanet.sifterapp.com/projects/30/issues/430
7
7
  :fugitive_emission_units => 'kilograms_per_square_metre'
8
-
9
- data_miner do
10
- tap "Brighter Planet's air conditioner use data", Earth.taps_server
8
+
9
+ create_table do
10
+ string 'name'
11
+ float 'fugitive_emission'
12
+ string 'fugitive_emission_units'
11
13
  end
12
14
  end
@@ -1,11 +1,5 @@
1
1
  ClothesMachineUse.class_eval do
2
2
  data_miner do
3
- schema do
4
- string 'name'
5
- float 'annual_energy_from_electricity_for_clothes_driers'
6
- string 'annual_energy_from_electricity_for_clothes_driers_units'
7
- end
8
-
9
3
  process "Ensure ResidentialEnergyConsumptionSurveyResponse is populated" do
10
4
  ResidentialEnergyConsumptionSurveyResponse.run_data_miner!
11
5
  end
@@ -3,7 +3,9 @@ class ClothesMachineUse < ActiveRecord::Base
3
3
 
4
4
  has_many :residential_energy_consumption_survey_responses
5
5
 
6
- data_miner do
7
- tap "Brighter Planet's sanitized clothes machine use data", Earth.taps_server
6
+ create_table do
7
+ string 'name'
8
+ float 'annual_energy_from_electricity_for_clothes_driers'
9
+ string 'annual_energy_from_electricity_for_clothes_driers_units'
8
10
  end
9
11
  end
@@ -6,3 +6,5 @@ require 'earth/residence/residence_class/data_miner'
6
6
  require 'earth/residence/residence_fuel_price/data_miner'
7
7
  require 'earth/residence/residence_fuel_type/data_miner'
8
8
  require 'earth/residence/residential_energy_consumption_survey_response/data_miner'
9
+
10
+ require 'earth/locality/data_miner'
@@ -1,11 +1,5 @@
1
1
  DishwasherUse.class_eval do
2
2
  data_miner do
3
- schema do
4
- string 'name'
5
- float 'annual_energy_from_electricity_for_dishwashers'
6
- string 'annual_energy_from_electricity_for_dishwashers_units'
7
- end
8
-
9
3
  process "Ensure ResidentialEnergyConsumptionSurveyResponse is populated" do
10
4
  ResidentialEnergyConsumptionSurveyResponse.run_data_miner!
11
5
  end
@@ -2,8 +2,10 @@ class DishwasherUse < ActiveRecord::Base
2
2
  set_primary_key :name
3
3
 
4
4
  has_many :residential_energy_consumption_survey_responses
5
-
6
- data_miner do
7
- tap "Brighter Planet's sanitized dishwasher use data", Earth.taps_server
5
+
6
+ create_table do
7
+ string 'name'
8
+ float 'annual_energy_from_electricity_for_dishwashers'
9
+ string 'annual_energy_from_electricity_for_dishwashers_units'
8
10
  end
9
11
  end
@@ -1,11 +1,5 @@
1
1
  ResidenceAppliance.class_eval do
2
2
  data_miner do
3
- schema Earth.database_options do
4
- string 'name'
5
- float 'annual_energy_from_electricity'
6
- string 'annual_energy_from_electricity_units'
7
- end
8
-
9
3
  process "Ensure ResidentialEnergyConsumptionSurveyResponse is populated" do
10
4
  ResidentialEnergyConsumptionSurveyResponse.run_data_miner!
11
5
  end
@@ -10,7 +10,9 @@ class ResidenceAppliance < ActiveRecord::Base
10
10
  end
11
11
  end
12
12
 
13
- data_miner do
14
- tap "Brighter Planet's residence appliance energy information", Earth.taps_server
13
+ create_table do
14
+ string 'name'
15
+ float 'annual_energy_from_electricity'
16
+ string 'annual_energy_from_electricity_units'
15
17
  end
16
18
  end
@@ -1,9 +1,5 @@
1
1
  ResidenceClass.class_eval do
2
2
  data_miner do
3
- schema do
4
- string :name
5
- end
6
-
7
3
  process "Ensure ResidentialEnergyConsumptionSurveyResponse is populated" do
8
4
  ResidentialEnergyConsumptionSurveyResponse.run_data_miner!
9
5
  end
@@ -9,7 +9,7 @@ class ResidenceClass < ActiveRecord::Base
9
9
  CLASSIFICATIONS.detect { |c| name.downcase.include? c }
10
10
  end
11
11
 
12
- data_miner do
13
- tap "Brighter Planet's sanitized residence class data", Earth.taps_server
12
+ create_table do
13
+ string :name
14
14
  end
15
15
  end
@@ -102,20 +102,6 @@ ResidenceFuelPrice.class_eval do
102
102
  end
103
103
 
104
104
  data_miner do
105
- schema Earth.database_options do
106
- string 'row_hash'
107
- string 'residence_fuel_type_name'
108
- integer 'year'
109
- integer 'month'
110
- float 'price'
111
- string 'price_units'
112
- string 'price_description'
113
- string 'locatable_id'
114
- string 'locatable_type'
115
- index ['price', 'residence_fuel_type_name', 'month', 'year', 'locatable_type', 'locatable_id']
116
- index ['price', 'residence_fuel_type_name']
117
- end
118
-
119
105
  process "Define some unit conversions" do
120
106
  Conversions.register :dollars, :cents, 100
121
107
  Conversions.register :cubic_feet, :cubic_metres, 0.0283168466 # TODO conversions gem has 'cubic_metres'
@@ -7,12 +7,17 @@ class ResidenceFuelPrice < ActiveRecord::Base
7
7
  belongs_to :fuel, :class_name => 'ResidenceFuelType', :foreign_key => 'residence_fuel_type_name'
8
8
  belongs_to :locatable, :polymorphic => true
9
9
 
10
- data_miner do
11
- tap "Brighter Planet's residence fuel price data", Earth.taps_server
12
-
13
- process "pull dependencies" do
14
- run_data_miner_on_belongs_to_associations
15
- end
10
+ create_table do
11
+ string 'row_hash'
12
+ string 'residence_fuel_type_name'
13
+ integer 'year'
14
+ integer 'month'
15
+ float 'price'
16
+ string 'price_units'
17
+ string 'price_description'
18
+ string 'locatable_id'
19
+ string 'locatable_type'
20
+ index ['price', 'residence_fuel_type_name', 'month', 'year', 'locatable_type', 'locatable_id']
21
+ index ['price', 'residence_fuel_type_name']
16
22
  end
17
-
18
23
  end
@@ -1,13 +1,5 @@
1
1
  ResidenceFuelType.class_eval do
2
2
  data_miner do
3
- schema Earth.database_options do
4
- string 'name'
5
- float 'emission_factor'
6
- string 'emission_factor_units'
7
- # float 'energy_content'
8
- # string 'energy_content_units'
9
- end
10
-
11
3
  import "a list of residential fuels and their emissions factors",
12
4
  :url => 'http://spreadsheets.google.com/pub?key=rukxnmuhhsOsrztTrUaFCXQ&gid=0&output=csv' do
13
5
  key 'name'
@@ -3,8 +3,12 @@ class ResidenceFuelType < ActiveRecord::Base
3
3
 
4
4
  has_many :prices, :class_name => 'ResidenceFuelPrice', :foreign_key => 'residence_fuel_type_name'
5
5
 
6
- data_miner do
7
- tap "Brighter Planet's residence fuel types data", Earth.taps_server
6
+ create_table do
7
+ string 'name'
8
+ float 'emission_factor'
9
+ string 'emission_factor_units'
10
+ # float 'energy_content'
11
+ # string 'energy_content_units'
8
12
  end
9
13
 
10
14
  def price_per_unit(relaxations = [])
@@ -1,99 +1,5 @@
1
1
  ResidentialEnergyConsumptionSurveyResponse.class_eval do
2
2
  data_miner do
3
- # sabshere 9/20/10 sorted with sort -d -t "'" -k 2 ~/Desktop/parts.txt
4
- schema Earth.database_options do
5
- integer 'id'
6
- string 'air_conditioner_use_id'
7
- float 'annual_energy_from_electricity_for_air_conditioners'
8
- string 'annual_energy_from_electricity_for_air_conditioners_units'
9
- float 'annual_energy_from_electricity_for_clothes_driers'
10
- string 'annual_energy_from_electricity_for_clothes_driers_units'
11
- float 'annual_energy_from_electricity_for_dishwashers'
12
- string 'annual_energy_from_electricity_for_dishwashers_units'
13
- float 'annual_energy_from_electricity_for_freezers'
14
- string 'annual_energy_from_electricity_for_freezers_units'
15
- float 'annual_energy_from_electricity_for_heating_space'
16
- string 'annual_energy_from_electricity_for_heating_space_units'
17
- float 'annual_energy_from_electricity_for_heating_water'
18
- string 'annual_energy_from_electricity_for_heating_water_units'
19
- float 'annual_energy_from_electricity_for_other_appliances'
20
- string 'annual_energy_from_electricity_for_other_appliances_units'
21
- float 'annual_energy_from_electricity_for_refrigerators'
22
- string 'annual_energy_from_electricity_for_refrigerators_units'
23
- float 'annual_energy_from_fuel_oil_for_appliances'
24
- string 'annual_energy_from_fuel_oil_for_appliances_units'
25
- float 'annual_energy_from_fuel_oil_for_heating_space'
26
- string 'annual_energy_from_fuel_oil_for_heating_space_units'
27
- float 'annual_energy_from_fuel_oil_for_heating_water'
28
- string 'annual_energy_from_fuel_oil_for_heating_water_units'
29
- float 'annual_energy_from_kerosene'
30
- string 'annual_energy_from_kerosene_units'
31
- float 'annual_energy_from_natural_gas_for_appliances'
32
- string 'annual_energy_from_natural_gas_for_appliances_units'
33
- float 'annual_energy_from_natural_gas_for_heating_space'
34
- string 'annual_energy_from_natural_gas_for_heating_space_units'
35
- float 'annual_energy_from_natural_gas_for_heating_water'
36
- string 'annual_energy_from_natural_gas_for_heating_water_units'
37
- float 'annual_energy_from_propane_for_appliances'
38
- string 'annual_energy_from_propane_for_appliances_units'
39
- float 'annual_energy_from_propane_for_heating_space'
40
- string 'annual_energy_from_propane_for_heating_space_units'
41
- float 'annual_energy_from_propane_for_heating_water'
42
- string 'annual_energy_from_propane_for_heating_water_units'
43
- float 'annual_energy_from_wood'
44
- string 'annual_energy_from_wood_units'
45
- boolean 'attached_1car_garage'
46
- boolean 'attached_2car_garage'
47
- boolean 'attached_3car_garage'
48
- float 'bathrooms'
49
- integer 'bedrooms'
50
- string 'census_division_name'
51
- integer 'census_division_number'
52
- string 'census_region_name'
53
- integer 'census_region_number'
54
- string 'central_ac_use'
55
- string 'clothes_dryer_use'
56
- string 'clothes_machine_use_id'
57
- string 'clothes_washer_use'
58
- string 'construction_period'
59
- date 'construction_year'
60
- integer 'cooling_degree_days'
61
- string 'cooling_degree_days_units'
62
- boolean 'detached_1car_garage'
63
- boolean 'detached_2car_garage'
64
- boolean 'detached_3car_garage'
65
- string 'dishwasher_use_id'
66
- integer 'efficient_lights_on_1_to_4_hours'
67
- integer 'efficient_lights_on_4_to_12_hours'
68
- integer 'efficient_lights_on_over_12_hours'
69
- float 'floorspace'
70
- string 'floorspace_units'
71
- integer 'freezer_count'
72
- integer 'full_bathrooms'
73
- integer 'half_bathrooms'
74
- boolean 'heated_garage'
75
- integer 'heating_degree_days'
76
- string 'heating_degree_days_units'
77
- float 'lighting_efficiency'
78
- float 'lighting_use'
79
- string 'lighting_use_units'
80
- integer 'lights_on_1_to_4_hours'
81
- integer 'lights_on_4_to_12_hours'
82
- integer 'lights_on_over_12_hours'
83
- integer 'outdoor_all_night_gas_lights'
84
- integer 'outdoor_all_night_lights'
85
- boolean 'ownership'
86
- integer 'refrigerator_count'
87
- string 'residence_class_id'
88
- integer 'residents'
89
- float 'rooms'
90
- boolean 'thermostat_programmability'
91
- integer 'total_rooms'
92
- string 'urbanity_id'
93
- float 'weighting'
94
- string 'window_ac_use'
95
- end
96
-
97
3
  process "Define some unit conversions" do
98
4
  Conversions.register :kbtus, :joules, 1_000.0 * 1_055.05585
99
5
  Conversions.register :square_feet, :square_metres, 0.09290304