earth 0.5.0 → 0.5.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.
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
@@ -2,8 +2,14 @@ class AutomobileTypeYear < ActiveRecord::Base
2
2
  set_primary_key :name
3
3
 
4
4
  has_many :type_fuel_years, :class_name => 'AutomobileTypeFuelYear', :foreign_key => 'type_year_name'
5
-
6
- data_miner do
7
- tap "Brighter Planet's sanitized automobile type year data", Earth.taps_server
5
+
6
+ create_table do
7
+ string 'name'
8
+ string 'type_name'
9
+ integer 'year'
10
+ float 'hfc_emissions'
11
+ string 'hfc_emissions_units'
12
+ float 'hfc_emission_factor'
13
+ string 'hfc_emission_factor_units'
8
14
  end
9
15
  end
@@ -1,34 +1,5 @@
1
1
  BusClass.class_eval do
2
2
  data_miner do
3
- schema Earth.database_options do
4
- string 'name'
5
- float 'distance'
6
- string 'distance_units'
7
- float 'passengers'
8
- float 'speed'
9
- string 'speed_units'
10
- float 'gasoline_intensity'
11
- string 'gasoline_intensity_units'
12
- float 'diesel_intensity'
13
- string 'diesel_intensity_units'
14
- float 'cng_intensity'
15
- string 'cng_intensity_units'
16
- float 'lng_intensity'
17
- string 'lng_intensity_units'
18
- float 'lpg_intensity'
19
- string 'lpg_intensity_units'
20
- float 'methanol_intensity'
21
- string 'methanol_intensity_units'
22
- float 'biodiesel_intensity'
23
- string 'biodiesel_intensity_units'
24
- float 'electricity_intensity'
25
- string 'electricity_intensity_units'
26
- float 'air_conditioning_emission_factor'
27
- string 'air_conditioning_emission_factor_units'
28
- float 'alternative_fuels_intensity'
29
- string 'alternative_fuels_intensity_units'
30
- end
31
-
32
3
  import "a list of bus classes and pre-calculated trip and fuel use characteristics",
33
4
  :url => 'https://spreadsheets.google.com/pub?hl=en&hl=en&key=0AoQJbWqPrREqdGRsSnJoS1hraGJvR012cDROWXFPbVE&gid=0&output=csv' do
34
5
  key 'name'
@@ -28,7 +28,32 @@ class BusClass < ActiveRecord::Base
28
28
  :alternative_fuels_intensity => 0.04632038.gallons_per_mile.to(:litres_per_kilometre), # deprecated
29
29
  :alternative_fuels_intensity_units => 'litres_per_kilometre' # deprecated
30
30
 
31
- data_miner do
32
- tap "Brighter Planet's sanitized bus class data", Earth.taps_server
31
+ create_table do
32
+ string 'name'
33
+ float 'distance'
34
+ string 'distance_units'
35
+ float 'passengers'
36
+ float 'speed'
37
+ string 'speed_units'
38
+ float 'gasoline_intensity'
39
+ string 'gasoline_intensity_units'
40
+ float 'diesel_intensity'
41
+ string 'diesel_intensity_units'
42
+ float 'cng_intensity'
43
+ string 'cng_intensity_units'
44
+ float 'lng_intensity'
45
+ string 'lng_intensity_units'
46
+ float 'lpg_intensity'
47
+ string 'lpg_intensity_units'
48
+ float 'methanol_intensity'
49
+ string 'methanol_intensity_units'
50
+ float 'biodiesel_intensity'
51
+ string 'biodiesel_intensity_units'
52
+ float 'electricity_intensity'
53
+ string 'electricity_intensity_units'
54
+ float 'air_conditioning_emission_factor'
55
+ string 'air_conditioning_emission_factor_units'
56
+ float 'alternative_fuels_intensity'
57
+ string 'alternative_fuels_intensity_units'
33
58
  end
34
59
  end
@@ -1,21 +1,6 @@
1
1
  BusFuel.class_eval do
2
2
  data_miner do
3
- schema Earth.database_options do
4
- string 'name'
5
- string 'fuel_name'
6
- float 'energy_content'
7
- string 'energy_content_units'
8
- float 'co2_emission_factor'
9
- string 'co2_emission_factor_units'
10
- float 'co2_biogenic_emission_factor'
11
- string 'co2_biogenic_emission_factor_units'
12
- float 'ch4_emission_factor'
13
- string 'ch4_emission_factor_units'
14
- float 'n2o_emission_factor'
15
- string 'n2o_emission_factor_units'
16
- end
17
-
18
- process "Ensure necessary datasets are imported" do
3
+ process "Ensure Fuel, GreenhouseGas, and BusFuelYearControl are populated" do
19
4
  Fuel.run_data_miner!
20
5
  GreenhouseGas.run_data_miner!
21
6
  BusFuelYearControl.run_data_miner!
@@ -3,16 +3,23 @@ class BusFuel < ActiveRecord::Base
3
3
 
4
4
  belongs_to :fuel, :foreign_key => 'fuel_name'
5
5
  has_many :fuel_year_controls, :class_name => 'BusFuelYearControl', :foreign_key => 'bus_fuel_name'
6
-
7
- data_miner do
8
- tap "Brighter Planet's sanitized bus fuel data", Earth.taps_server
9
6
 
10
- process "Pull dependencies" do
11
- run_data_miner_on_belongs_to_associations
12
- end
13
- end
14
-
15
7
  def latest_fuel_year_controls
16
8
  fuel_year_controls.where(:year => fuel_year_controls.maximum('year'))
17
9
  end
10
+
11
+ create_table do
12
+ string 'name'
13
+ string 'fuel_name'
14
+ float 'energy_content'
15
+ string 'energy_content_units'
16
+ float 'co2_emission_factor'
17
+ string 'co2_emission_factor_units'
18
+ float 'co2_biogenic_emission_factor'
19
+ string 'co2_biogenic_emission_factor_units'
20
+ float 'ch4_emission_factor'
21
+ string 'ch4_emission_factor_units'
22
+ float 'n2o_emission_factor'
23
+ string 'n2o_emission_factor_units'
24
+ end
18
25
  end
@@ -1,15 +1,5 @@
1
1
  BusFuelControl.class_eval do
2
2
  data_miner do
3
- schema Earth.database_options do
4
- string 'name'
5
- string 'bus_fuel_name'
6
- string 'control'
7
- float 'ch4_emission_factor'
8
- string 'ch4_emission_factor_units'
9
- float 'n2o_emission_factor'
10
- string 'n2o_emission_factor_units'
11
- end
12
-
13
3
  import "a list of bus fuel controls",
14
4
  :url => 'https://spreadsheets.google.com/pub?key=0AoQJbWqPrREqdEw1QW80VVJhaXRkUURQSFhHczNyVWc&gid=0&output=csv' do
15
5
  key 'name'
@@ -1,7 +1,12 @@
1
1
  class BusFuelControl < ActiveRecord::Base
2
2
  set_primary_key :name
3
-
4
- data_miner do
5
- tap "Brighter Planet's sanitized bus fuel data", Earth.taps_server
3
+ create_table do
4
+ string 'name'
5
+ string 'bus_fuel_name'
6
+ string 'control'
7
+ float 'ch4_emission_factor'
8
+ string 'ch4_emission_factor_units'
9
+ float 'n2o_emission_factor'
10
+ string 'n2o_emission_factor_units'
6
11
  end
7
12
  end
@@ -1,15 +1,6 @@
1
1
  BusFuelYearControl.class_eval do
2
2
  data_miner do
3
- schema Earth.database_options do
4
- string 'name'
5
- string 'bus_fuel_name'
6
- integer 'year'
7
- string 'control'
8
- string 'bus_fuel_control_name'
9
- float 'total_travel_percent'
10
- end
11
-
12
- process "Ensure all BusFuelControls are imported" do
3
+ process "Ensure BusFuelControl is populated" do
13
4
  BusFuelControl.run_data_miner!
14
5
  end
15
6
 
@@ -2,12 +2,13 @@ class BusFuelYearControl < ActiveRecord::Base
2
2
  set_primary_key :name
3
3
 
4
4
  belongs_to :fuel_control, :class_name => 'BusFuelControl', :foreign_key => 'bus_fuel_control_name'
5
-
6
- data_miner do
7
- tap "Brighter Planet's sanitized bus fuel data", Earth.taps_server
8
-
9
- process "Pull dependencies" do
10
- run_data_miner_on_belongs_to_associations
11
- end
5
+
6
+ create_table do
7
+ string 'name'
8
+ string 'bus_fuel_name'
9
+ integer 'year'
10
+ string 'control'
11
+ string 'bus_fuel_control_name'
12
+ float 'total_travel_percent'
12
13
  end
13
14
  end
@@ -2,3 +2,5 @@ require 'earth/bus/bus_class/data_miner'
2
2
  require 'earth/bus/bus_fuel/data_miner'
3
3
  require 'earth/bus/bus_fuel_control/data_miner'
4
4
  require 'earth/bus/bus_fuel_year_control/data_miner'
5
+
6
+ require 'earth/fuel/data_miner'
data/lib/earth/bus.rb CHANGED
@@ -2,3 +2,5 @@ require 'earth/bus/bus_class'
2
2
  require 'earth/bus/bus_fuel'
3
3
  require 'earth/bus/bus_fuel_control'
4
4
  require 'earth/bus/bus_fuel_year_control'
5
+
6
+ require 'earth/fuel'
@@ -1,10 +1,5 @@
1
1
  ComputationCarrier.class_eval do
2
2
  data_miner do
3
- schema Earth.database_options do
4
- string 'name'
5
- float 'power_usage_effectiveness'
6
- end
7
-
8
3
  import "a list of computation carriers and their power usage effectiveness",
9
4
  :url => 'https://spreadsheets.google.com/pub?key=0AoQJbWqPrREqdFlxZVZLai01WWJOOTFiaUd1blF6VkE&gid=0&output=csv' do
10
5
  key 'name'
@@ -4,7 +4,8 @@ class ComputationCarrier < ActiveRecord::Base
4
4
  falls_back_on :name => 'fallback',
5
5
  :power_usage_effectiveness => lambda { ComputationCarrier.maximum('power_usage_effectiveness') }
6
6
 
7
- data_miner do
8
- tap "Brighter Planet's computation carrier data", Earth.taps_server
7
+ create_table do
8
+ string 'name'
9
+ float 'power_usage_effectiveness'
9
10
  end
10
11
  end
@@ -1,13 +1,5 @@
1
1
  ComputationCarrierInstanceClass.class_eval do
2
2
  data_miner do
3
- schema Earth.database_options do
4
- string 'name'
5
- string 'computation_carrier_name'
6
- string 'instance_class'
7
- float 'electricity_intensity'
8
- string 'electricity_intensity_units'
9
- end
10
-
11
3
  import "a list of computation carrier instance classes and their characteristics",
12
4
  :url => 'https://spreadsheets.google.com/pub?key=0AkCJNpm9Ks6JdGExaW1ic2c0d2s1ZmpzeUdOa2kyRlE&gid=0&output=csv' do
13
5
  key 'name'
@@ -7,11 +7,11 @@ class ComputationCarrierInstanceClass < ActiveRecord::Base
7
7
  :electricity_intensity => lambda { ComputationCarrierInstanceClass.find_by_name('Amazon m1.small').electricity_intensity },
8
8
  :electricity_intensity_units => lambda { ComputationCarrierInstanceClass.find_by_name('Amazon m1.small').electricity_intensity_units }
9
9
 
10
- data_miner do
11
- tap "Brighter Planet's computation carrier instance class 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 'name'
12
+ string 'computation_carrier_name'
13
+ string 'instance_class'
14
+ float 'electricity_intensity'
15
+ string 'electricity_intensity_units'
16
16
  end
17
17
  end
@@ -1,12 +1,5 @@
1
1
  ComputationCarrierRegion.class_eval do
2
2
  data_miner do
3
- schema Earth.database_options do
4
- string 'name'
5
- string 'computation_carrier_name'
6
- string 'region'
7
- string 'egrid_subregion_abbreviation'
8
- end
9
-
10
3
  import "a list of computation carrier regions",
11
4
  :url => 'https://spreadsheets.google.com/pub?key=0AkCJNpm9Ks6JdGFEU1gtVzFPeS0tV1VnR05WZ2ZFUVE&gid=0&output=csv' do
12
5
  key 'name'
@@ -2,12 +2,11 @@ class ComputationCarrierRegion < ActiveRecord::Base
2
2
  set_primary_key :name
3
3
 
4
4
  belongs_to :egrid_subregion, :foreign_key => 'egrid_subregion_abbreviation'
5
-
6
- data_miner do
7
- tap "Brighter Planet's computation carrier region data", Earth.taps_server
8
-
9
- process "Pull dependencies" do
10
- run_data_miner_on_belongs_to_associations
11
- end
5
+
6
+ create_table do
7
+ string 'name'
8
+ string 'computation_carrier_name'
9
+ string 'region'
10
+ string 'egrid_subregion_abbreviation'
12
11
  end
13
12
  end
@@ -1,3 +1,5 @@
1
1
  require 'earth/computation/computation_carrier/data_miner'
2
2
  require 'earth/computation/computation_carrier_region/data_miner'
3
3
  require 'earth/computation/computation_carrier_instance_class/data_miner'
4
+
5
+ require 'earth/locality/data_miner'
@@ -1,3 +1,5 @@
1
1
  require 'earth/computation/computation_carrier'
2
2
  require 'earth/computation/computation_carrier_region'
3
3
  require 'earth/computation/computation_carrier_instance_class'
4
+
5
+ require 'earth/locality'
@@ -1,21 +1,5 @@
1
1
  DietClass.class_eval do
2
2
  data_miner do
3
- schema Earth.database_options do
4
- string 'name'
5
- float 'intensity'
6
- string 'intensity_units'
7
- float 'red_meat_share'
8
- float 'poultry_share'
9
- float 'fish_share'
10
- float 'eggs_share'
11
- float 'nuts_share'
12
- float 'dairy_share'
13
- float 'cereals_and_grains_share'
14
- float 'fruit_share'
15
- float 'vegetables_share'
16
- float 'oils_and_sugars_share'
17
- end
18
-
19
3
  import "a Brighter Planet-defined list of diet classes and food group caloric distributions",
20
4
  :url => 'http://static.brighterplanet.com/science/data/consumables/diets/diet_classes.csv' do
21
5
  key 'name'
@@ -1,13 +1,25 @@
1
1
  class DietClass < ActiveRecord::Base
2
2
  set_primary_key :name
3
3
 
4
- data_miner do
5
- tap "Brighter Planet's diet class data", Earth.taps_server
6
- end
7
-
8
4
  class << self
9
5
  def fallback
10
6
  find_by_name 'standard'
11
7
  end
12
8
  end
9
+
10
+ create_table do
11
+ string 'name'
12
+ float 'intensity'
13
+ string 'intensity_units'
14
+ float 'red_meat_share'
15
+ float 'poultry_share'
16
+ float 'fish_share'
17
+ float 'eggs_share'
18
+ float 'nuts_share'
19
+ float 'dairy_share'
20
+ float 'cereals_and_grains_share'
21
+ float 'fruit_share'
22
+ float 'vegetables_share'
23
+ float 'oils_and_sugars_share'
24
+ end
13
25
  end
@@ -1,14 +1,5 @@
1
1
  FoodGroup.class_eval do
2
2
  data_miner do
3
- schema Earth.database_options do
4
- string 'name'
5
- float 'intensity'
6
- string 'intensity_units'
7
- float 'energy'
8
- string 'energy_units'
9
- string 'suggested_imperial_measurement' # ?
10
- end
11
-
12
3
  import "a list of food groups and their emissions intensities",
13
4
  :url => 'http://static.brighterplanet.com/science/data/consumables/diets/food_groups.csv' do
14
5
  key 'name'
@@ -11,7 +11,12 @@ class FoodGroup < ActiveRecord::Base
11
11
  end
12
12
  end
13
13
 
14
- data_miner do
15
- tap "Brighter Planet's food group data", Earth.taps_server
14
+ create_table do
15
+ string 'name'
16
+ float 'intensity'
17
+ string 'intensity_units'
18
+ float 'energy'
19
+ string 'energy_units'
20
+ string 'suggested_imperial_measurement' # ?
16
21
  end
17
22
  end
@@ -1,21 +1,5 @@
1
1
  Fuel.class_eval do
2
2
  data_miner do
3
- schema Earth.database_options do
4
- string 'name'
5
- float 'density'
6
- string 'density_units'
7
- float 'energy_content'
8
- string 'energy_content_units'
9
- float 'carbon_content'
10
- string 'carbon_content_units'
11
- float 'oxidation_factor'
12
- float 'biogenic_fraction'
13
- float 'co2_emission_factor'
14
- string 'co2_emission_factor_units'
15
- float 'co2_biogenic_emission_factor'
16
- string 'co2_biogenic_emission_factor_units'
17
- end
18
-
19
3
  process "Ensure FuelYear is populated" do
20
4
  FuelYear.run_data_miner!
21
5
  end
@@ -3,8 +3,20 @@ class Fuel < ActiveRecord::Base
3
3
 
4
4
  has_many :fuel_years, :foreign_key => 'fuel_name'
5
5
 
6
- data_miner do
7
- tap "Brighter Planet's fuels data", Earth.taps_server
6
+ create_table do
7
+ string 'name'
8
+ float 'density'
9
+ string 'density_units'
10
+ float 'energy_content'
11
+ string 'energy_content_units'
12
+ float 'carbon_content'
13
+ string 'carbon_content_units'
14
+ float 'oxidation_factor'
15
+ float 'biogenic_fraction'
16
+ float 'co2_emission_factor'
17
+ string 'co2_emission_factor_units'
18
+ float 'co2_biogenic_emission_factor'
19
+ string 'co2_biogenic_emission_factor_units'
8
20
  end
9
21
 
10
22
  def latest_year
@@ -4,12 +4,6 @@ FuelPrice.class_eval do
4
4
  # month/year
5
5
 
6
6
  data_miner do
7
- schema Earth.database_options do
8
- string 'name'
9
- float 'price'
10
- string 'price_units'
11
- end
12
-
13
7
  import 'fuel prices derived from the EIA',
14
8
  :url => 'http://spreadsheets.google.com/pub?key=0AoQJbWqPrREqdHlSdXJoOFB5aEpHenJQbTVJdS1pMVE&gid=0&output=csv',
15
9
  :select => lambda { |row| row['fuel_type_name'].present? } do
@@ -3,11 +3,9 @@ class FuelPrice < ActiveRecord::Base
3
3
 
4
4
  belongs_to :fuel_type, :foreign_key => 'name' # weird
5
5
 
6
- data_miner do
7
- tap "Brighter Planet's fuel price data", Earth.taps_server
8
-
9
- process "pull dependencies" do
10
- run_data_miner_on_belongs_to_associations
11
- end
6
+ create_table do
7
+ string 'name'
8
+ float 'price'
9
+ string 'price_units'
12
10
  end
13
11
  end
@@ -5,20 +5,6 @@ FuelType.class_eval do
5
5
  # gas-specific emissions factors
6
6
 
7
7
  data_miner do
8
- schema Earth.database_options do
9
- string 'name'
10
- float 'emission_factor'
11
- string 'emission_factor_units'
12
- float 'density'
13
- string 'density_units'
14
- float 'average_purchase_volume'
15
- string 'average_purchase_volume_units'
16
- # float 'energy_content'
17
- # string 'energy_content_units'
18
- # float 'carbon_content'
19
- # string 'carbon_content_units'
20
- end
21
-
22
8
  # process "Define some necessary conversions" do
23
9
  # Conversions.register :teragrams_per_quadrillion_british_thermal_units, :kilograms_per_joule, 0.000000000947817123
24
10
  # Conversions.register :million_british_thermal_units_per_short_ton, :joules_per_kilogram, 1.16300000
@@ -8,11 +8,21 @@ class FuelType < ActiveRecord::Base
8
8
  :average_purchase_volume => 100, #FIXME TODO put a real value here - also do we want to do volumes in kJ?
9
9
  :average_purchase_volume_units => 'FIXME'
10
10
 
11
- data_miner do
12
- tap "Brighter Planet's fuel types data", Earth.taps_server
13
- end
14
-
15
11
  def price
16
12
  prices.average :price
17
13
  end
14
+
15
+ create_table do
16
+ string 'name'
17
+ float 'emission_factor'
18
+ string 'emission_factor_units'
19
+ float 'density'
20
+ string 'density_units'
21
+ float 'average_purchase_volume'
22
+ string 'average_purchase_volume_units'
23
+ # float 'energy_content'
24
+ # string 'energy_content_units'
25
+ # float 'carbon_content'
26
+ # string 'carbon_content_units'
27
+ end
18
28
  end
@@ -1,21 +1,5 @@
1
1
  FuelYear.class_eval do
2
2
  data_miner do
3
- schema Earth.database_options do
4
- string 'name'
5
- string 'fuel_name'
6
- integer 'year'
7
- float 'energy_content'
8
- string 'energy_content_units'
9
- float 'carbon_content'
10
- string 'carbon_content_units'
11
- float 'oxidation_factor'
12
- float 'biogenic_fraction'
13
- float 'co2_emission_factor'
14
- string 'co2_emission_factor_units'
15
- float 'co2_biogenic_emission_factor'
16
- string 'co2_biogenic_emission_factor_units'
17
- end
18
-
19
3
  import "fuels with annually variable characteristics, derived from the 2010 EPA GHG Inventory",
20
4
  :url => 'https://spreadsheets.google.com/pub?hl=en&hl=en&key=0AoQJbWqPrREqdFZVSlZ3SUZsTzZLVTB5bVk5THdBN2c&gid=0&output=csv' do
21
5
  key 'name'
@@ -1,7 +1,19 @@
1
1
  class FuelYear < ActiveRecord::Base
2
2
  set_primary_key :name
3
3
 
4
- data_miner do
5
- tap "Brighter Planet's fuel year data", Earth.taps_server
4
+ create_table do
5
+ string 'name'
6
+ string 'fuel_name'
7
+ integer 'year'
8
+ float 'energy_content'
9
+ string 'energy_content_units'
10
+ float 'carbon_content'
11
+ string 'carbon_content_units'
12
+ float 'oxidation_factor'
13
+ float 'biogenic_fraction'
14
+ float 'co2_emission_factor'
15
+ string 'co2_emission_factor_units'
16
+ float 'co2_biogenic_emission_factor'
17
+ string 'co2_biogenic_emission_factor_units'
6
18
  end
7
19
  end
@@ -1,14 +1,5 @@
1
1
  GreenhouseGas.class_eval do
2
2
  data_miner do
3
- schema Earth.database_options do
4
- string 'name'
5
- string 'abbreviation'
6
- string 'ipcc_report'
7
- integer 'time_horizon'
8
- string 'time_horizon_units'
9
- integer 'global_warming_potential'
10
- end
11
-
12
3
  import "greenhouse gas global warming potentials taken from the IPCC AR4",
13
4
  :url => 'https://spreadsheets.google.com/pub?key=0AoQJbWqPrREqdE1tUjBwS1ZHZnBUUG1XcVpkOTVHOVE&gid=0&output=csv' do
14
5
  key 'name'
@@ -1,13 +1,18 @@
1
1
  class GreenhouseGas < ActiveRecord::Base
2
2
  set_primary_key :name
3
-
4
- data_miner do
5
- tap "Brighter Planet's greenhouse gas data", Earth.taps_server
6
- end
7
-
3
+
8
4
  class << self
9
5
  def [](abbreviation)
10
6
  find_by_abbreviation abbreviation.to_s
11
7
  end
12
8
  end
9
+
10
+ create_table do
11
+ string 'name'
12
+ string 'abbreviation'
13
+ string 'ipcc_report'
14
+ integer 'time_horizon'
15
+ string 'time_horizon_units'
16
+ integer 'global_warming_potential'
17
+ end
13
18
  end
@@ -1,17 +1,5 @@
1
1
  LodgingClass.class_eval do
2
2
  data_miner do
3
- schema Earth.database_options do
4
- string 'name'
5
- float 'electricity_intensity'
6
- string 'electricity_intensity'
7
- float 'natural_gas_intensity'
8
- string 'natural_gas_intensity'
9
- float 'fuel_oil_intensity'
10
- string 'fuel_oil_intensity'
11
- float 'district_heat_intensity'
12
- string 'district_heat_intensity'
13
- end
14
-
15
3
  import "a list of lodging classes and pre-calculated emission factors",
16
4
  :url => 'https://spreadsheets.google.com/pub?key=0AoQJbWqPrREqdGZZWmZtWEJlYzhRNXlPdWpBTldlcUE&hl=en&gid=0&output=csv' do
17
5
  key 'name'