earth 0.7.0 → 0.11.0
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/certification_changelog.markdown +21 -0
- data/lib/earth/air.rb +0 -2
- data/lib/earth/air/aircraft.rb +77 -27
- data/lib/earth/air/aircraft/data_miner.rb +12 -19
- data/lib/earth/air/aircraft_instance.rb +2 -0
- data/lib/earth/air/aircraft_instance_seat_class.rb +1 -0
- data/lib/earth/air/airport/data_miner.rb +1 -1
- data/lib/earth/air/data_miner.rb +0 -2
- data/lib/earth/air/flight_distance_class.rb +2 -3
- data/lib/earth/air/flight_distance_class/data_miner.rb +0 -13
- data/lib/earth/air/flight_distance_class_seat_class.rb +3 -2
- data/lib/earth/air/flight_seat_class.rb +0 -6
- data/lib/earth/air/flight_seat_class/data_miner.rb +0 -7
- data/lib/earth/air/flight_segment.rb +47 -53
- data/lib/earth/air/flight_segment/data_miner.rb +2 -2
- data/lib/earth/automobile.rb +4 -3
- data/lib/earth/automobile/automobile_fuel.rb +56 -119
- data/lib/earth/automobile/automobile_fuel/data_miner.rb +17 -4
- data/lib/earth/automobile/automobile_make.rb +1 -16
- data/lib/earth/automobile/automobile_make/data_miner.rb +25 -25
- data/lib/earth/automobile/automobile_make_model.rb +0 -26
- data/lib/earth/automobile/automobile_make_model/data_miner.rb +12 -13
- data/lib/earth/automobile/automobile_make_model_year.rb +6 -37
- data/lib/earth/automobile/automobile_make_model_year/data_miner.rb +34 -18
- data/lib/earth/automobile/automobile_make_model_year_variant.rb +27 -49
- data/lib/earth/automobile/automobile_make_model_year_variant/data_miner.rb +111 -140
- data/lib/earth/automobile/automobile_make_year.rb +0 -12
- data/lib/earth/automobile/automobile_make_year/data_miner.rb +22 -23
- data/lib/earth/automobile/automobile_make_year_fleet.rb +11 -0
- data/lib/earth/automobile/{automobile_make_fleet_year → automobile_make_year_fleet}/data_miner.rb +1 -2
- data/lib/earth/automobile/automobile_model.rb +5 -0
- data/lib/earth/automobile/automobile_model/data_miner.rb +19 -0
- data/lib/earth/automobile/automobile_size_class.rb +1 -0
- data/lib/earth/automobile/automobile_size_class/data_miner.rb +30 -4
- data/lib/earth/automobile/automobile_type_fuel_year.rb +1 -1
- data/lib/earth/automobile/automobile_type_fuel_year/data_miner.rb +30 -19
- data/lib/earth/automobile/automobile_type_fuel_year_age.rb +0 -3
- data/lib/earth/automobile/automobile_type_fuel_year_age/data_miner.rb +13 -15
- data/lib/earth/automobile/automobile_type_fuel_year_control.rb +0 -4
- data/lib/earth/automobile/automobile_type_fuel_year_control/data_miner.rb +0 -8
- data/lib/earth/automobile/automobile_type_year.rb +2 -1
- data/lib/earth/automobile/automobile_type_year/data_miner.rb +12 -10
- data/lib/earth/automobile/automobile_year.rb +5 -0
- data/lib/earth/automobile/automobile_year/data_miner.rb +15 -0
- data/lib/earth/automobile/data_miner.rb +5 -3
- data/lib/earth/automobile/dependencies.txt +45 -0
- data/lib/earth/bus/bus_class.rb +1 -87
- data/lib/earth/bus/bus_class/data_miner.rb +0 -1
- data/lib/earth/bus/bus_fuel/data_miner.rb +12 -19
- data/lib/earth/bus/bus_fuel_control/data_miner.rb +8 -12
- data/lib/earth/conversions_ext.rb +1 -0
- data/lib/earth/fuel/fuel/data_miner.rb +28 -38
- data/lib/earth/fuel/fuel_year/data_miner.rb +36 -47
- data/lib/earth/hospitality/lodging_class/data_miner.rb +12 -6
- data/lib/earth/locality.rb +1 -0
- data/lib/earth/locality/country.rb +1 -1
- data/lib/earth/locality/country/data_miner.rb +36 -28
- data/lib/earth/locality/data_miner.rb +1 -0
- data/lib/earth/locality/egrid_subregion/data_miner.rb +19 -14
- data/lib/earth/locality/urbanity/data_miner.rb +1 -3
- data/lib/earth/locality/zip_code/data_miner.rb +1 -1
- data/lib/earth/rail/national_transit_database_record/data_miner.rb +10 -14
- data/lib/earth/rail/rail_fuel.rb +2 -6
- data/lib/earth/residence/air_conditioner_use/data_miner.rb +1 -3
- data/lib/earth/residence/clothes_machine_use/data_miner.rb +1 -3
- data/lib/earth/residence/dishwasher_use/data_miner.rb +1 -3
- data/lib/earth/residence/residence_class/data_miner.rb +1 -3
- data/lib/earth/residence/residential_energy_consumption_survey_response/data_miner.rb +3 -1
- data/lib/earth/utils.rb +15 -5
- data/lib/earth/version.rb +1 -1
- data/spec/earth_spec.rb +4 -4
- metadata +9 -11
- data/features/automobile_type_fuel_age.feature +0 -55
- data/lib/earth/air/aircraft_class.rb +0 -59
- data/lib/earth/air/aircraft_class/data_miner.rb +0 -14
- data/lib/earth/air/aircraft_fuel_use_equation.rb +0 -33
- data/lib/earth/air/aircraft_fuel_use_equation/data_miner.rb +0 -13
- data/lib/earth/automobile/automobile_make_fleet_year.rb +0 -46
- data/lib/earth/automobile/automobile_type_fuel_age.rb +0 -65
- data/lib/earth/automobile/automobile_type_fuel_age/data_miner.rb +0 -149
@@ -0,0 +1,45 @@
|
|
1
|
+
This file shows which additional classes will be data_mined when you run data_miner on an automobile class. To get a complete set of automobile data you only need to data_mine the classes that are not indented.
|
2
|
+
|
3
|
+
Make
|
4
|
+
MakeYearFleet
|
5
|
+
MakeModelYearVariant
|
6
|
+
|
7
|
+
Model
|
8
|
+
MakeYearFleet
|
9
|
+
MakeModelYearVariant
|
10
|
+
|
11
|
+
Year
|
12
|
+
MakeYearFleet
|
13
|
+
MakeModelYearVariant
|
14
|
+
|
15
|
+
MakeModel
|
16
|
+
MakeModelYearVariant
|
17
|
+
|
18
|
+
MakeYear
|
19
|
+
MakeYearFleet
|
20
|
+
MakeModelYearVariant
|
21
|
+
|
22
|
+
MakeModelYear
|
23
|
+
MakeModelYearVariant
|
24
|
+
AutomobileFuel
|
25
|
+
GreenhouseGas
|
26
|
+
Fuel
|
27
|
+
FuelYear
|
28
|
+
TypeYear
|
29
|
+
TypeFuelYear
|
30
|
+
TypeFuelControl
|
31
|
+
TypeFuelYearControl
|
32
|
+
TypeFuelYearAge
|
33
|
+
TypeFuelYear
|
34
|
+
TypeFuelControl
|
35
|
+
TypeFuelYearControl
|
36
|
+
|
37
|
+
SizeClass
|
38
|
+
TypeYear
|
39
|
+
TypeFuelYear
|
40
|
+
TypeFuelControl
|
41
|
+
TypeFuelYearControl
|
42
|
+
TypeFuelYearAge
|
43
|
+
TypeFuelYear
|
44
|
+
TypeFuelControl
|
45
|
+
TypeFuelYearControl
|
data/lib/earth/bus/bus_class.rb
CHANGED
@@ -24,9 +24,7 @@ class BusClass < ActiveRecord::Base
|
|
24
24
|
:electricity_intensity => 0.00001804 / 1.miles.to(:kilometres),
|
25
25
|
:electricity_intensity_units => 'kilowatt_hours_per_kilometre',
|
26
26
|
:air_conditioning_emission_factor => 0.04779 / 1.miles.to(:kilometres),
|
27
|
-
:air_conditioning_emission_factor_units => 'kilograms_co2e_per_kilometre'
|
28
|
-
:alternative_fuels_intensity => 0.04632038.gallons_per_mile.to(:litres_per_kilometre), # deprecated
|
29
|
-
:alternative_fuels_intensity_units => 'litres_per_kilometre' # deprecated
|
27
|
+
:air_conditioning_emission_factor_units => 'kilograms_co2e_per_kilometre'
|
30
28
|
|
31
29
|
col :name
|
32
30
|
col :distance, :type => :float
|
@@ -52,88 +50,4 @@ class BusClass < ActiveRecord::Base
|
|
52
50
|
col :electricity_intensity_units
|
53
51
|
col :air_conditioning_emission_factor, :type => :float
|
54
52
|
col :air_conditioning_emission_factor_units
|
55
|
-
col :alternative_fuels_intensity, :type => :float
|
56
|
-
col :alternative_fuels_intensity_units
|
57
|
-
|
58
|
-
# verify "Some attributes should be greater than zero" do
|
59
|
-
# BusClass.all.each do |bus_class|
|
60
|
-
# %w{ distance passengers speed diesel_intensity air_conditioning_emission_factor }.each do |attribute|
|
61
|
-
# value = bus_class.send(:"#{attribute}")
|
62
|
-
# unless value > 0
|
63
|
-
# raise "Invalid #{attribute.humanize.downcase} for BusClass #{bus_class.name}: #{value} (should be > 0)"
|
64
|
-
# end
|
65
|
-
# end
|
66
|
-
# end
|
67
|
-
# end
|
68
|
-
#
|
69
|
-
# verify "Some attributes should be zero or more" do
|
70
|
-
# BusClass.all.each do |bus_class|
|
71
|
-
# %w{ gasoline_intensity cng_intensity lng_intensity lpg_intensity methanol_intensity biodiesel_intensity electricity_intensity alternative_fuels_intensity }.each do |attribute|
|
72
|
-
# value = bus_class.send(:"#{attribute}")
|
73
|
-
# unless value >= 0
|
74
|
-
# raise "Invalid #{attribute.humanize.downcase} for BusClass #{bus_class.name}: #{value} (should be >= 0)"
|
75
|
-
# end
|
76
|
-
# end
|
77
|
-
# end
|
78
|
-
# end
|
79
|
-
#
|
80
|
-
# verify "Units should be correct" do
|
81
|
-
# BusClass.all.each do |bus_class|
|
82
|
-
# [["distance_units", "kilometres"],
|
83
|
-
# ["speed_units", "kilometres_per_hour"],
|
84
|
-
# ["diesel_intensity_units", "litres_per_kilometre"],
|
85
|
-
# ["gasoline_intensity_units", "litres_per_kilometre"],
|
86
|
-
# ["cng_intensity_units", "litres_per_kilometre"],
|
87
|
-
# ["lng_intensity_units", "litres_per_kilometre"],
|
88
|
-
# ["lpg_intensity_units", "litres_per_kilometre"],
|
89
|
-
# ["methanol_intensity_units", "litres_per_kilometre"],
|
90
|
-
# ["biodiesel_intensity_units", "litres_per_kilometre"],
|
91
|
-
# ["electricity_intensity_units", "kilowatt_hours_per_kilometre"],
|
92
|
-
# ["air_conditioning_emission_factor_units", "kilograms_co2e_per_kilometre"],
|
93
|
-
# ["alternative_fuels_intensity_units", "litres_per_kilometre"]].each do |pair|
|
94
|
-
# attribute = pair[0]
|
95
|
-
# proper_units = pair[1]
|
96
|
-
# units = bus_class.send(:"#{attribute}")
|
97
|
-
# unless units == proper_units
|
98
|
-
# raise "Invalid #{attribute.humanize.downcase} for BusClass #{bus_class.name}: #{units} (should be #{proper_units})"
|
99
|
-
# end
|
100
|
-
# end
|
101
|
-
# end
|
102
|
-
# end
|
103
|
-
#
|
104
|
-
# verify "Fallbacks should satisfy same constraints as data" do
|
105
|
-
# %w{ distance passengers speed diesel_intensity air_conditioning_emission_factor }.each do |attribute|
|
106
|
-
# value = BusClass.fallback.send(:"#{attribute}")
|
107
|
-
# unless value > 0
|
108
|
-
# raise "Invalid #{attribute.humanize.downcase} for fallback BusClass: #{value} (should be > 0)"
|
109
|
-
# end
|
110
|
-
# end
|
111
|
-
#
|
112
|
-
# %w{ gasoline_intensity cng_intensity lng_intensity lpg_intensity methanol_intensity biodiesel_intensity electricity_intensity alternative_fuels_intensity }.each do |attribute|
|
113
|
-
# value = BusClass.fallback.send(:"#{attribute}")
|
114
|
-
# unless value >= 0
|
115
|
-
# raise "Invalid #{attribute.humanize.downcase} for fallback BusClass: #{value} (should be >= 0)"
|
116
|
-
# end
|
117
|
-
# end
|
118
|
-
#
|
119
|
-
# [["distance_units", "kilometres"],
|
120
|
-
# ["speed_units", "kilometres_per_hour"],
|
121
|
-
# ["diesel_intensity_units", "litres_per_kilometre"],
|
122
|
-
# ["gasoline_intensity_units", "litres_per_kilometre"],
|
123
|
-
# ["cng_intensity_units", "litres_per_kilometre"],
|
124
|
-
# ["lng_intensity_units", "litres_per_kilometre"],
|
125
|
-
# ["lpg_intensity_units", "litres_per_kilometre"],
|
126
|
-
# ["methanol_intensity_units", "litres_per_kilometre"],
|
127
|
-
# ["biodiesel_intensity_units", "litres_per_kilometre"],
|
128
|
-
# ["electricity_intensity_units", "kilowatt_hours_per_kilometre"],
|
129
|
-
# ["air_conditioning_emission_factor_units", "kilograms_co2e_per_kilometre"],
|
130
|
-
# ["alternative_fuels_intensity_units", "litres_per_kilometre"]].each do |pair|
|
131
|
-
# attribute = pair[0]
|
132
|
-
# proper_units = pair[1]
|
133
|
-
# units = BusClass.fallback.send(:"#{attribute}")
|
134
|
-
# unless units == proper_units
|
135
|
-
# raise "Invalid #{attribute.humanize.downcase} for fallback BusClass: #{units} (should be #{proper_units})"
|
136
|
-
# end
|
137
|
-
# end
|
138
|
-
# end
|
139
53
|
end
|
@@ -15,7 +15,6 @@ BusClass.class_eval do
|
|
15
15
|
store 'biodiesel_intensity', :units_field_name => 'biodiesel_intensity_units'
|
16
16
|
store 'electricity_intensity', :units_field_name => 'electricity_intensity_units'
|
17
17
|
store 'air_conditioning_emission_factor', :units_field_name => 'air_conditioning_emission_factor_units'
|
18
|
-
store 'alternative_fuels_intensity', :units_field_name => 'alternative_fuels_intensity_units'
|
19
18
|
end
|
20
19
|
end
|
21
20
|
end
|
@@ -29,30 +29,23 @@ BusFuel.class_eval do
|
|
29
29
|
process "Convert emission factors to metric units" do
|
30
30
|
conversion_factor = (1 / 1.609344) * (1.0 / 1_000.0 ) # Google: 1 mile / 1.609344 km * 1 kg / 1000 g
|
31
31
|
gwp_ch4 = GreenhouseGas[:ch4].global_warming_potential
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
WHERE ch4_emission_factor_units = 'grams_per_mile'
|
37
|
-
}
|
38
|
-
|
32
|
+
where(:ch4_emission_factor_units => 'grams_per_mile').update_all(%{
|
33
|
+
ch4_emission_factor = 1.0 * ch4_emission_factor * #{conversion_factor} * #{gwp_ch4},
|
34
|
+
ch4_emission_factor_units = 'kilograms_co2e_per_kilometre'
|
35
|
+
})
|
39
36
|
gwp_n2o = GreenhouseGas[:n2o].global_warming_potential
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
WHERE n2o_emission_factor_units = 'grams_per_mile'
|
45
|
-
}
|
37
|
+
where(:n2o_emission_factor_units => 'grams_per_mile').update_all(%{
|
38
|
+
n2o_emission_factor = 1.0 * n2o_emission_factor * #{conversion_factor} * #{gwp_n2o},
|
39
|
+
n2o_emission_factor_units = 'kilograms_co2e_per_kilometre'
|
40
|
+
})
|
46
41
|
end
|
47
42
|
|
48
43
|
process "Convert energy contents to metric units" do
|
49
44
|
conversion_factor = (1 / 947.81712) * (1 / 3.78541178) # Google: 1 MJ / 947.81712 btu * 1 gallon / 3.78541178 l
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
WHERE energy_content_units = 'btu_per_gallon'
|
55
|
-
}
|
45
|
+
where(:energy_content_units => 'btu_per_gallon').update_all(%{
|
46
|
+
energy_content = 1.0 * energy_content * #{conversion_factor},
|
47
|
+
energy_content_units = 'megajoules_per_litre'
|
48
|
+
})
|
56
49
|
end
|
57
50
|
|
58
51
|
process 'Calculate CO2 and CO2 biogenic emission factors and units' do
|
@@ -11,19 +11,15 @@ BusFuelControl.class_eval do
|
|
11
11
|
|
12
12
|
process "Convert emission factors to metric units" do
|
13
13
|
conversion_factor = (1 / 1.609344) * (1.0 / 1_000.0 ) # Google: 1 mile / 1.609344 km * 1 kg / 1000 g
|
14
|
-
connection.execute %{
|
15
|
-
UPDATE bus_fuel_controls
|
16
|
-
SET ch4_emission_factor = 1.0 * ch4_emission_factor * #{conversion_factor},
|
17
|
-
ch4_emission_factor_units = 'kilograms_per_kilometre'
|
18
|
-
WHERE ch4_emission_factor_units = 'grams_per_mile'
|
19
|
-
}
|
20
14
|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
15
|
+
where(:ch4_emission_factor_units => 'grams_per_mile').update_all(%{
|
16
|
+
ch4_emission_factor = 1.0 * ch4_emission_factor * #{conversion_factor},
|
17
|
+
ch4_emission_factor_units = 'kilograms_per_kilometre'
|
18
|
+
})
|
19
|
+
where(:n2o_emission_factor_units => 'grams_per_mile').update_all(%{
|
20
|
+
n2o_emission_factor = 1.0 * n2o_emission_factor * #{conversion_factor},
|
21
|
+
n2o_emission_factor_units = 'kilograms_per_kilometre'
|
22
|
+
})
|
27
23
|
end
|
28
24
|
|
29
25
|
# FIXME TODO verify this
|
@@ -39,6 +39,7 @@ Conversions.register(:cords, :joules, 2.11011171e10)
|
|
39
39
|
Conversions.register(:gallons_per_mile, :litres_per_kilometre, 2.35214583)
|
40
40
|
Conversions.register(:pounds_per_mile, :kilograms_per_kilometre, 0.281849232)
|
41
41
|
Conversions.register(:dollars, :cents, 100)
|
42
|
+
Conversions.register(:cubic_inches, :litres, 0.016387064)
|
42
43
|
Conversions.register(:cubic_feet, :cubic_metres, 0.0283168466)
|
43
44
|
# 1 (kilocalories per pound) = 9 224.14105 joules per kilogram
|
44
45
|
Conversions.register :kilocalories_per_pound, :joules_per_kilogram, 9_224.14105
|
@@ -8,9 +8,7 @@ Fuel.class_eval do
|
|
8
8
|
::Earth::Utils.insert_ignore(
|
9
9
|
:src => FuelYear,
|
10
10
|
:dest => Fuel,
|
11
|
-
:cols => {
|
12
|
-
:fuel_name => :name
|
13
|
-
}
|
11
|
+
:cols => { :fuel_name => :name }
|
14
12
|
)
|
15
13
|
end
|
16
14
|
|
@@ -30,57 +28,49 @@ Fuel.class_eval do
|
|
30
28
|
end
|
31
29
|
|
32
30
|
process "Convert energy content of liquid fuels to metric units" do
|
33
|
-
conversion_factor = (1_055.05585
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
}
|
31
|
+
conversion_factor = (1_055.05585) * (1.0 / 158.987295) # Google: 1_055.05585 MJ / 1 MMBtu * 1 barrel / 158.987295 l
|
32
|
+
where(:energy_content_units => 'million_btu_per_barrel').update_all(%{
|
33
|
+
energy_content = 1.0 * energy_content * #{conversion_factor},
|
34
|
+
energy_content_units = 'megajoules_per_litre'
|
35
|
+
})
|
39
36
|
end
|
40
37
|
|
41
38
|
process "Convert energy content of gaseous fuels to metric units" do
|
42
|
-
conversion_factor = (1.0 / 947.81712) * (35.3146667
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
}
|
39
|
+
conversion_factor = (1.0 / 947.81712) * (35.3146667) # Google: 1.0 MJ / 947.81712 Btu * 35.3146667 cubic feet / 1 cubic m
|
40
|
+
where(:energy_content_units => 'btu_per_cubic_foot').update_all(%{
|
41
|
+
energy_content = 1.0 * energy_content * #{conversion_factor},
|
42
|
+
energy_content_units = 'megajoules_per_cubic_metre'
|
43
|
+
})
|
48
44
|
end
|
49
45
|
|
50
46
|
process "Convert carbon content to metric units" do
|
51
|
-
conversion_factor = (1_000_000_000_000.0
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
}
|
47
|
+
conversion_factor = (1_000_000_000_000.0) * (1.0 / 1_055_055_852_620.0) # Google: 1e12 g / Tg * 1 QBtu / 1.055e12 MJ
|
48
|
+
where(:carbon_content_units => 'teragrams_per_quadrillion_btu').update_all(%{
|
49
|
+
carbon_content = 1.0 * carbon_content * #{conversion_factor},
|
50
|
+
carbon_content_units = 'grams_per_megajoule'
|
51
|
+
})
|
57
52
|
end
|
58
53
|
|
59
54
|
process "Calculate CO2 and CO2 biogenic emission factors" do
|
60
55
|
conversion_factor = (1.0 / 1_000.0) * (44.0 / 12.0) # Google: 1 kg / 1e3 g * 44 CO2 / 12 C
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
}
|
56
|
+
update_all(%{
|
57
|
+
co2_emission_factor = 1.0 * carbon_content * energy_content * oxidation_factor * (1 - biogenic_fraction) * #{conversion_factor},
|
58
|
+
co2_biogenic_emission_factor = 1.0 * carbon_content * energy_content * oxidation_factor * biogenic_fraction * #{conversion_factor}
|
59
|
+
})
|
66
60
|
end
|
67
61
|
|
68
62
|
process "Update emission factor units for liquid fuels" do
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
WHERE energy_content_units = 'megajoules_per_litre'
|
74
|
-
}
|
63
|
+
where(:energy_content_units => 'megajoules_per_litre').update_all(
|
64
|
+
:co2_emission_factor_units => 'kilograms_per_litre',
|
65
|
+
:co2_biogenic_emission_factor_units => 'kilograms_per_litre'
|
66
|
+
)
|
75
67
|
end
|
76
68
|
|
77
69
|
process "Update emission factor units for gaseous fuels" do
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
WHERE energy_content_units = 'megajoules_per_cubic_metre'
|
83
|
-
}
|
70
|
+
where(:energy_content_units => 'megajoules_per_cubic_metre').update_all(
|
71
|
+
:co2_emission_factor_units => 'kilograms_per_cubic_metre',
|
72
|
+
:co2_biogenic_emission_factor_units => 'kilograms_per_cubic_metre'
|
73
|
+
)
|
84
74
|
end
|
85
75
|
|
86
76
|
# FIXME TODO verify this stuff
|
@@ -12,75 +12,64 @@ FuelYear.class_eval do
|
|
12
12
|
end
|
13
13
|
|
14
14
|
process "Convert energy content of solid fuels to metric units" do
|
15
|
-
conversion_factor = (1_055.05585
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
}
|
15
|
+
conversion_factor = (1_055.05585) * (1.0 / 907.18474) # Google: 1_055.05585 MJ / 1 MMBtu * 1 short ton / 907.18474 kg
|
16
|
+
where(:energy_content_units => 'million_btu_per_short_ton').update_all(%{
|
17
|
+
energy_content = 1.0 * energy_content * #{conversion_factor},
|
18
|
+
energy_content_units = 'megajoules_per_kilogram'
|
19
|
+
})
|
21
20
|
end
|
22
21
|
|
23
22
|
process "Convert energy content of liquid fuels to metric units" do
|
24
|
-
conversion_factor = (1_055.05585
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
}
|
23
|
+
conversion_factor = (1_055.05585) * (1.0 / 158.987295) # Google: 1_055.05585 MJ / 1 MMBtu * 1 barrel / 158.987295 l
|
24
|
+
where(:energy_content_units => 'million_btu_per_barrel').update_all(%{
|
25
|
+
energy_content = 1.0 * energy_content * #{conversion_factor},
|
26
|
+
energy_content_units = 'megajoules_per_litre'
|
27
|
+
})
|
30
28
|
end
|
31
29
|
|
32
30
|
process "Convert energy content of gaseous fuels to metric units" do
|
33
|
-
conversion_factor = (1.0 / 947.81712) * (35.3146667
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
}
|
31
|
+
conversion_factor = (1.0 / 947.81712) * (35.3146667) # Google: 1.0 MJ / 947.81712 Btu * 35.3146667 cubic feet / 1 cubic m
|
32
|
+
where(:energy_content_units => 'btu_per_cubic_foot').update_all(%{
|
33
|
+
energy_content = 1.0 * energy_content * #{conversion_factor},
|
34
|
+
energy_content_units = 'megajoules_per_cubic_metre'
|
35
|
+
})
|
39
36
|
end
|
40
37
|
|
41
38
|
process "Convert carbon content to metric units" do
|
42
|
-
conversion_factor = (1_000_000_000_000.0
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
}
|
39
|
+
conversion_factor = (1_000_000_000_000.0) * (1.0 / 1_055_055_852_620.0) # Google: 1e12 g / Tg * 1 QBtu / 1.055e12 MJ
|
40
|
+
where(:carbon_content_units => 'teragrams_per_quadrillion_btu').update_all(%{
|
41
|
+
carbon_content = 1.0 * carbon_content * #{conversion_factor},
|
42
|
+
carbon_content_units = 'grams_per_megajoule'
|
43
|
+
})
|
48
44
|
end
|
49
45
|
|
50
46
|
process "Calculate CO2 and CO2 biogenic emission factors" do
|
51
47
|
conversion_factor = (1.0 / 1_000.0) * (44.0 / 12.0) # Google: 1 kg / 1e3 g * 44 CO2 / 12 C
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
}
|
48
|
+
update_all(%{
|
49
|
+
co2_emission_factor = 1.0 * carbon_content * energy_content * oxidation_factor * (1 - biogenic_fraction) * #{conversion_factor},
|
50
|
+
co2_biogenic_emission_factor = 1.0 * carbon_content * energy_content * oxidation_factor * biogenic_fraction * #{conversion_factor}
|
51
|
+
})
|
57
52
|
end
|
58
53
|
|
59
54
|
process "Update emission factor units for solid fuels" do
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
WHERE energy_content_units = 'megajoules_per_kilogram'
|
65
|
-
}
|
55
|
+
where(:energy_content_units => 'megajoules_per_kilogram').update_all(
|
56
|
+
:co2_emission_factor_units => 'kilograms_per_kilogram',
|
57
|
+
:co2_biogenic_emission_factor_units => 'kilograms_per_kilogram'
|
58
|
+
)
|
66
59
|
end
|
67
60
|
|
68
61
|
process "Update emission factor units for liquid fuels" do
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
WHERE energy_content_units = 'megajoules_per_litre'
|
74
|
-
}
|
62
|
+
where(:energy_content_units => 'megajoules_per_litre').update_all(
|
63
|
+
:co2_emission_factor_units => 'kilograms_per_litre',
|
64
|
+
:co2_biogenic_emission_factor_units => 'kilograms_per_litre'
|
65
|
+
)
|
75
66
|
end
|
76
67
|
|
77
68
|
process "Update emission factor units for gaseous fuels" do
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
WHERE energy_content_units = 'megajoules_per_cubic_metre'
|
83
|
-
}
|
69
|
+
where(:energy_content_units => 'megajoules_per_cubic_metre').update_all(
|
70
|
+
:co2_emission_factor_units => 'kilograms_per_cubic_metre',
|
71
|
+
:co2_biogenic_emission_factor_units => 'kilograms_per_cubic_metre'
|
72
|
+
)
|
84
73
|
end
|
85
74
|
end
|
86
75
|
end
|
@@ -11,20 +11,26 @@ LodgingClass.class_eval do
|
|
11
11
|
|
12
12
|
process "Convert natural gas intensities to metric units" do
|
13
13
|
conversion_factor = 2.83168466 # Google: 2.83168466 cubic m / 100 cubic ft
|
14
|
-
|
15
|
-
|
14
|
+
where(:natural_gas_intensity_units => 'hundred_cubic_feet_per_room_night').update_all(%{
|
15
|
+
natural_gas_intensity = 1.0 * natural_gas_intensity * #{conversion_factor},
|
16
|
+
natural_gas_intensity_units = 'cubic_metres_per_room_night'
|
17
|
+
})
|
16
18
|
end
|
17
19
|
|
18
20
|
process "Convert fuel oil intensities to metric units" do
|
19
21
|
conversion_factor = 3.78541178 # Google: 3.78541178 l / gal
|
20
|
-
|
21
|
-
|
22
|
+
where(:fuel_oil_intensity_units => 'gallons_per_room_night').update_all(%{
|
23
|
+
fuel_oil_intensity = 1.0 * fuel_oil_intensity * #{conversion_factor},
|
24
|
+
fuel_oil_intensity_units = 'litres_per_room_night'
|
25
|
+
})
|
22
26
|
end
|
23
27
|
|
24
28
|
process "Convert district heat intensities to metric units" do
|
25
29
|
conversion_factor = 1.05505585 # Google: 1.05505585 MJ / 1000 Btu
|
26
|
-
|
27
|
-
|
30
|
+
where(:district_heat_intensity_units => 'thousand_btu_per_room_night').update_all(%{
|
31
|
+
district_heat_intensity = 1.0 * district_heat_intensity * #{conversion_factor},
|
32
|
+
district_heat_intensity_units = 'megajoules_per_room_night'
|
33
|
+
})
|
28
34
|
end
|
29
35
|
end
|
30
36
|
end
|