/*
FILE ARCHIVED ON 7:47:39 Jan 16, 2009 AND RETRIEVED FROM THE
AN OPENWAYBACK INSTANCE ON 13:44:58 Oct 13, 2024.
JAVASCRIPT APPENDED BY OPENWAYBACK, COPYRIGHT INTERNET ARCHIVE.
ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C.
SECTION 108(a)(3)).
*/
display_results = {
'home_energy': function() {
this.est('home_est_emissions', myCalcObj.results.HomeEnergy_Est);
this.totals('home_energy_form', myCalcObj.results.home_energy, LU.average_emissions.home_energy * myCalcObj.results.CalcPeople);
// only display if there is a response for these questions
if (responses.lighting != undefined) this.answer('lighting');
if (responses.appliances != undefined) this.answer('appliances');
if (responses.hot_water != undefined) this.answer('hot_water');
if (responses.heat_cool != undefined) this.answer('heat_cool');
},
'driving_flying': function() {
this.totals('driving_flying_form', myCalcObj.results.travel, LU.average_emissions.travel * myCalcObj.results.CalcPeople);
if (response_text_flags.vehicles) this.answer('vehicles1');
if (response_text_flags.vehicles) this.answer('vehicles2');
if (response_text_flags.vehicles) this.answer('vehicles3');
if (responses.vehicle_air_filter != undefined) this.answer('vehicle_air_filter');
if (responses.tire_pressure != undefined) this.answer('tire_pressure');
if (response_text_flags.air_travel) this.answer('air_travel');
},
'food_diet': function() {
this.est('diet_est_emissions', myCalcObj.results.Diet_Est);
this.totals('food_diet_form', myCalcObj.results.diet, LU.average_emissions.diet * myCalcObj.results.CalcPeople);
if (responses.meat != undefined) this.answer('meat');
if (responses.organic != undefined) this.answer('organic');
},
'buying_waste': function() {
this.est('waste_est_emissions', myCalcObj.results.Waste_Est);
this.totals('buying_waste_form', myCalcObj.results.waste, LU.average_emissions.waste * myCalcObj.results.CalcPeople);
if (responses.recycle != undefined) this.answer('recycle');
if (responses.compost != undefined) this.answer('compost');
},
'results': function() {
$('your_total').update(format_answer(myCalcObj.results.total));
$('avg_total').update(format_answer(LU.average_emissions.total * myCalcObj.results.CalcPeople));
$('world_total').update(format_answer(LU.average_emissions.world * myCalcObj.results.CalcPeople));
document.getElementsByClassName('graph_num_people').each(function(el) {
el.update('('+ myCalcObj.results.CalcPeople +' person household)')
});
$('results_total').update(format_answer(myCalcObj.results.total));
if (myCalcObj.results.total > LU.average_emissions.total * myCalcObj.results.CalcPeople) {
$('results_comparison').update('above');
$('results_below').hide();
}
if (myCalcObj.results.total < LU.average_emissions.total * myCalcObj.results.CalcPeople) {
$('results_comparison').update('below');
$('results_above').hide();
}
var your_behavior = {
'your_behavior': [
[0, parseFloat(format_answer(myCalcObj.results.travel))],
[1, parseFloat(format_answer(myCalcObj.results.waste))],
[2, parseFloat(format_answer(myCalcObj.results.diet))],
[3, parseFloat(format_answer(myCalcObj.results.home_energy))]
]
};
var avg_behavior = {
'avg_behavior': [
[0, parseFloat(format_answer(LU.average_emissions.travel))],
[1, parseFloat(format_answer(LU.average_emissions.waste))],
[2, parseFloat(format_answer(LU.average_emissions.diet))],
[3, parseFloat(format_answer(LU.average_emissions.home_energy))]
]
};
var options = {
strokewidth: 1,
backgroundColor: '#CDD7DF',
colorScheme: ['#616F32', '#635874', '#9D872F', '#7F9963'],
xTicks: [
{v:0, label:'Driving & Flying'},
{v:1, label:'Recycling & Waste'},
{v:2, label:'Food & Diet'},
{v:3, label:'Home Energy'}
]
};
var pie;
$('your_breakdown_plot_outer').update('');
$('avg_breakdown_plot_outer').update('');
if (!Prototype.Browser.WebKit && Plotr.Base.isSupported('your_breakdown_plot')) {
pie = new Plotr.PieChart('your_breakdown_plot',options);
pie.addDataset(your_behavior);
pie.render();
pie = new Plotr.PieChart('avg_breakdown_plot',options);
pie.addDataset(avg_behavior);
pie.render();
} else {
$('pie_charts').hide();
}
// results page bar graphs here
var chart_width = 166;
var avg_width = 8;
var chart_offset = 0.75 * chart_width;
var section_totals = ['home_energy', 'travel', 'diet', 'waste'];
var left = 1;
var total_amount = 0;
var average_emissions = 0;
['home_energy', 'driving_flying', 'food_diet', 'buying_waste'].each(function(section, index) {
if (section_viewed_flags[section]) {
total_amount += myCalcObj.results[section_totals[index]];
average_emissions += LU.average_emissions[section_totals[index]] * myCalcObj.results.CalcPeople;
}
});
// Your Estimated Emissions bar chart
var total_ratio = total_amount / average_emissions;
var total_chart_offset = chart_offset;
var total_chart_offset = chart_offset;
if (total_ratio > 1) {
var scaled_avg = chart_offset / total_ratio;
var scaled_remainder = ( (chart_width - chart_offset) * (1 - 1 / total_ratio) ) / total_ratio;
total_chart_offset = scaled_avg + scaled_remainder;
}
['home_energy', 'driving_flying', 'food_diet', 'buying_waste'].each(function(section, index) {
if (section_viewed_flags[section]) {
var section_total_ratio = myCalcObj.results[section_totals[index]] / total_amount;
var width = Math.round(total_chart_offset * total_ratio * section_total_ratio);
$$('#your_total_chart .bar_chart_'+section)[0].style.left = left + 'px';
$$('#your_total_chart .bar_chart_'+section)[0].style.width = width + 'px';
left += width;
}
});
// US Average bar chart
left = 1;
['home_energy', 'driving_flying', 'food_diet', 'buying_waste'].each(function(section, index) {
if (section_viewed_flags[section]) {
var section_total_ratio = LU.average_emissions[section_totals[index]] * myCalcObj.results.CalcPeople/ average_emissions;
var width = Math.round(total_chart_offset * 1 * section_total_ratio);
$$('#us_avg_total_chart .bar_chart_'+section)[0].style.left = left + 'px';
$$('#us_avg_total_chart .bar_chart_'+section)[0].style.width = width + 'px';
left += width;
}
});
// World Average bar chart
var world_ratio = LU.average_emissions.world * myCalcObj.results.CalcPeople / average_emissions;
$$('#world_total_chart .bar_chart_world')[0].style.width = Math.round(total_chart_offset * world_ratio) + 'px';
},
'est': function(est_name, est_amount) {
$(est_name+'_answer').update(format_answer(est_amount));
},
'totals': function(section_form, section_amount, avg_amount) {
var avg, dir, absavg;
var chart_width = 166;
var avg_width = 8;
var chart_offset = 0.75 * chart_width;
var section_ratio = section_amount / avg_amount;
// Update the text for current section
if (section_amount != 0) {
avg = Math.round(100 * section_ratio);
absavg = Math.abs(100 - avg);
dir = (avg > 100) ? 'above' : 'below';
} else {
absavg = 0;
dir = 'of';
}
$(section_form+'_total').update(format_answer(section_amount));
$(section_form+'_avg').update("Tons of CO2 eq/year. That's " + absavg + "% " + dir + " avg.");
// Build the bar graph for current section
var section_chart_offset = chart_offset;
if (section_ratio > 1) {
var scaled_avg = chart_offset / section_ratio;
var scaled_remainder = ( (chart_width - chart_offset) * (1 - 1 / section_ratio) ) / section_ratio;
section_chart_offset = scaled_avg + scaled_remainder;
}
$$('#'+section_form+'_chart .bar_chart_avg')[0].style.left = Math.round(section_chart_offset - avg_width) + 'px';
$$('#'+section_form+'_chart .bar_chart_block')[0].style.width = Math.round(section_chart_offset * section_ratio) + 'px';
// Totals
var section_totals = ['home_energy', 'travel', 'diet', 'waste'];
var left = 1;
var total_amount = 0;
var average_emissions = 0;
['home_energy', 'driving_flying', 'food_diet', 'buying_waste'].each(function(section, index) {
if (section_viewed_flags[section]) {
total_amount += myCalcObj.results[section_totals[index]];
average_emissions += LU.average_emissions[section_totals[index]] * myCalcObj.results.CalcPeople;
}
});
var total_ratio = total_amount / average_emissions;
// Update the text for the total
if (total_amount != 0) {
avg = Math.round(100 * total_ratio);
absavg = Math.abs(100 - avg);
dir = (avg > 100) ? 'above' : 'below';
} else {
absavg = 0;
dir = 'of';
}
$(section_form+'_total_all').update(format_answer(total_amount));
$(section_form+'_avg_all').update("Tons of CO2 eq/year. That's " + absavg + "% " + dir + " avg.");
// Build the bar graph for calc total
var total_chart_offset = chart_offset;
var total_chart_offset = chart_offset;
if (total_ratio > 1) {
var scaled_avg = chart_offset / total_ratio;
var scaled_remainder = ( (chart_width - chart_offset) * (1 - 1 / total_ratio) ) / total_ratio;
total_chart_offset = scaled_avg + scaled_remainder;
}
$$('#'+section_form+'_chart_all .bar_chart_avg')[0].style.left = Math.round(total_chart_offset - avg_width) + 'px';
['home_energy', 'driving_flying', 'food_diet', 'buying_waste'].each(function(section, index) {
if (section_viewed_flags[section] && total_amount != 0) {
var section_total_ratio = myCalcObj.results[section_totals[index]] / total_amount;
var width = Math.round(total_chart_offset * total_ratio * section_total_ratio);
$$('#'+section_form+'_chart_all .bar_chart_'+section)[0].style.left = left + 'px';
$$('#'+section_form+'_chart_all .bar_chart_'+section)[0].style.width = width + 'px';
left += width;
}
});
},
'answer': function(question_name) {
$(question_name+'_answer').update(format_answer(myCalcObj.results[question_name]));
},
'reset': function() {
$('lighting_answer').update('');
$('appliances_answer').update('');
$('hot_water_answer').update('');
$('heat_cool_answer').update('');
$('vehicles1_answer').update('');
$('vehicles2_answer').update('');
$('vehicles3_answer').update('');
$('vehicle_air_filter_answer').update('');
$('tire_pressure_answer').update('');
$('air_travel_answer').update('');
$('meat_answer').update('');
$('organic_answer').update('');
$('recycle_answer').update('');
$('compost_answer').update('');
//reset flags
section_viewed_flags.home_energy = false;
section_viewed_flags.driving_flying = false;
section_viewed_flags.food_diet = false;
section_viewed_flags.buying_waste = false;
section_viewed_flags.results = false;
}
}
calculate = {
// public function
'all': function(el) {
// slurps form vals
responses = $('calc_form').serialize(true);
// we must have these baselines to calculate != ""
if (responses.people == "" || responses.calc_for == "") return null;
// runs all private calcs, which store results
this.baseline(responses);
this.lighting(responses);
this.appliances(responses);
this.hot_water(responses);
this.heat_cool(responses);
this.home_energy();
this.vehicles(responses);
this.vehicle_air_filter(responses);
this.tire_pressure(responses);
this.air_travel(responses);
this.travel();
this.meat(responses);
this.organic(responses);
this.diet();
this.recycle(responses);
this.compost(responses);
this.waste();
this.total();
},
'baseline': function(responses) {
var people = parseInt(responses.people);
var calc_for_num_people = responses.calc_for == 'me_only' ? 1 : people;
myCalcObj.results.CalcPeople = calc_for_num_people;
// Travel baselines
var Air_Est = LU.average_emissions.air * calc_for_num_people;
var Car_Est = LU.average_emissions.car * (calc_for_num_people > 1 ? calc_for_num_people * LU.household_drivers_ratio : 1);
myCalcObj.results.Travel_Est = Air_Est + Car_Est;
// Food baselines
myCalcObj.results.Diet_Est = LU.average_emissions.diet * calc_for_num_people;
myCalcObj.results.DietEmissions = myCalcObj.results.Diet_Est;
// Waste baselines
myCalcObj.results.Waste_Est = LU.average_emissions.waste * calc_for_num_people;
myCalcObj.results.WasteEmissions = myCalcObj.results.Waste_Est;
// Home energy baselines
if (responses.state == ""
|| responses.home == ""
|| responses.bedrooms == "") return null;
var state = responses.state;
var home = responses.home;
var bedrooms = parseInt(responses.bedrooms);
var Household_Scaling = responses.calc_for == 'me_only' ? 1 / people : 1;
var Electric_Coefficient = LU.states[state].elect_coeff;
var CO2_Heating_Coeff = LU.CO2_coeff.heating.a + Electric_Coefficient * LU.CO2_coeff.heating.b;
var CO2_Water_Coeff = LU.CO2_coeff.hot_water.a + Electric_Coefficient * LU.CO2_coeff.hot_water.b;
var CO2_Appliance_Coeff = LU.CO2_coeff.appliances.a + Electric_Coefficient * LU.CO2_coeff.appliances.b;
var CO2_AirCond_Coeff = LU.CO2_coeff.air_conditioning.a + Electric_Coefficient * LU.CO2_coeff.air_conditioning.b;
var zone = LU.states[state].zone;
var Climate_Scaling = LU.zone_scaling[zone].space_heat;
var Climate_Scaling_Cooling = LU.zone_scaling[zone].air_cond;
var space_heat = LU.hh_types[home][bedrooms].space_heat;
var hot_water = LU.hh_types[home][bedrooms].hot_water;
var appliances_lights = LU.hh_types[home][bedrooms].appliances_lights;
var air_cond = LU.hh_types[home][bedrooms].air_cond;
var Heating_Est = space_heat * CO2_Heating_Coeff * Climate_Scaling * Household_Scaling * (LU.Indirect_coeff + 1);
var HotWater_Est = hot_water * CO2_Water_Coeff * Household_Scaling * (LU.Indirect_coeff + 1);
var Appliances_Est = appliances_lights * CO2_Appliance_Coeff * Household_Scaling * (LU.Indirect_coeff + 1);
var Aircond_Est = air_cond * CO2_AirCond_Coeff * Climate_Scaling_Cooling * Household_Scaling * (LU.Indirect_coeff + 1);
myCalcObj.results.Heating_Est = Heating_Est;
myCalcObj.results.HotWater_Est = HotWater_Est;
myCalcObj.results.Appliances_Est = Appliances_Est;
myCalcObj.results.Aircond_Est = Aircond_Est;
myCalcObj.results.HomeEnergy_Est = Heating_Est + HotWater_Est + Appliances_Est + Aircond_Est;
return null;
},
'lighting': function(responses) {
var the_answer = 0;
if (responses.lighting != undefined) {
var avg_contrib = .164;
var my_contrib = responses.lighting - 0;
the_answer = (my_contrib - avg_contrib) * myCalcObj.results.Appliances_Est;
}
// store this result
myCalcObj.results.lighting = the_answer;
return the_answer;
},
'appliances': function(responses) {
var the_answer = 0;
if (responses.appliances != undefined) {
var avg_contrib = .836;
var my_contrib = responses.appliances - 0;
the_answer = (my_contrib - avg_contrib) * myCalcObj.results.Appliances_Est;
}
// store this result
myCalcObj.results.appliances = the_answer;
return the_answer;
},
'hot_water': function(responses) {
var the_answer = 0;
if (responses.hot_water != undefined) {
var avg_contrib = 1;
var my_contrib = responses.hot_water - 0;
the_answer = (my_contrib - avg_contrib) * myCalcObj.results.HotWater_Est;
}
// store this result
myCalcObj.results.hot_water = the_answer;
return the_answer;
},
'heat_cool': function(responses) {
var the_answer = 0;
if (responses.heat_cool != undefined) {
eval('var form_val = ' + responses.heat_cool);
var avg_contrib_heating = 1;
var my_contrib_heating = form_val.heating;
var the_answer_heating = (my_contrib_heating - avg_contrib_heating) * myCalcObj.results.Heating_Est;
var avg_contrib_cooling = 1;
var my_contrib_cooling = form_val.cooling;
var the_answer_cooling = (my_contrib_cooling - avg_contrib_cooling) * myCalcObj.results.Aircond_Est;
the_answer = the_answer_heating + the_answer_cooling;
}
// store this result
myCalcObj.results.heat_cool = the_answer;
return the_answer;
},
'home_energy': function() {
var result = myCalcObj.results.HomeEnergy_Est;
result += myCalcObj.results.lighting;
result += myCalcObj.results.appliances;
result += myCalcObj.results.hot_water;
result += myCalcObj.results.heat_cool;
myCalcObj.results.home_energy = result;
return null;
},
'vehicles': function(responses) {
var vehicle_emissions = 0;
vehicle_emissions += this.vehicles1();
vehicle_emissions += this.vehicles2();
vehicle_emissions += this.vehicles3();
// subtract the total est vehicle emissions from actual emissions to determine change in contribution
myCalcObj.results.VehicleEmissions = vehicle_emissions;
var the_answer = vehicle_emissions;
return the_answer;
},
'vehicles1': function() {
if (responses.vehicle1_size == ""
|| responses.vehicle1_miles == ""
|| responses.vehicle1_period == "") {
the_answer = 0;
} else {
the_answer = responses.vehicle1_size * responses.vehicle1_miles * responses.vehicle1_period * (LU.Indirect_coeff + 1) * LU.NonCO2_coeff.cars;
}
// store this result
myCalcObj.results.vehicles1 = the_answer;
return the_answer;
},
'vehicles2': function() {
if (responses.vehicle2_size == ""
|| responses.vehicle2_miles == ""
|| responses.vehicle2_period == "") {
the_answer = 0;
} else {
the_answer = responses.vehicle2_size * responses.vehicle2_miles * responses.vehicle2_period * (LU.Indirect_coeff + 1) * LU.NonCO2_coeff.cars;
}
// store this result
myCalcObj.results.vehicles2 = the_answer;
return the_answer;
},
'vehicles3': function() {
if (responses.vehicle3_size == ""
|| responses.vehicle3_miles == ""
|| responses.vehicle3_period == "") {
the_answer = 0;
} else {
the_answer = responses.vehicle3_size * responses.vehicle3_miles * responses.vehicle3_period * (LU.Indirect_coeff + 1) * LU.NonCO2_coeff.cars;
}
// store this result
myCalcObj.results.vehicles3 = the_answer;
return the_answer;
},
'vehicle_air_filter': function(responses) {
var the_answer = 0;
if (responses.vehicle_air_filter != undefined) {
var avg_contrib = myCalcObj.results.VehicleEmissions;
var my_contrib = (1 - responses.vehicle_air_filter) * myCalcObj.results.VehicleEmissions;
// adjust the vehicle emissions down for later calculations
myCalcObj.results.VehicleEmissions = (1 - responses.vehicle_air_filter) * myCalcObj.results.VehicleEmissions;
the_answer = my_contrib - avg_contrib;
}
// store this result
myCalcObj.results.vehicle_air_filter = the_answer;
return the_answer;
},
'tire_pressure': function(responses) {
var the_answer = 0;
if (responses.tire_pressure != undefined) {
var avg_contrib = myCalcObj.results.VehicleEmissions;
var my_contrib = (1 - responses.tire_pressure) * myCalcObj.results.VehicleEmissions;
// adjust the vehicle emissions down for later calculations
myCalcObj.results.VehicleEmissions = (1 - responses.tire_pressure) * myCalcObj.results.VehicleEmissions;
the_answer = my_contrib - avg_contrib;
}
// store this result
myCalcObj.results.tire_pressure = the_answer;
return the_answer;
},
'air_travel': function(responses) {
var air_travel_emissions = 0;
if (responses.long_flights1 != '') {
air_travel_emissions += responses.long_flights1 * LU.flight_emissions_factors['long'] * 2500 * 2 * (LU.Indirect_coeff + 1) * LU.NonCO2_coeff.planes;
}
if (responses.short_flights1 != '') {
air_travel_emissions += responses.short_flights1 * LU.flight_emissions_factors['short'] * 250 * 2 * (LU.Indirect_coeff + 1) * LU.NonCO2_coeff.planes;
}
myCalcObj.results.AirTravelEmissions = air_travel_emissions;
var the_answer = air_travel_emissions;
// store this result
myCalcObj.results.air_travel = the_answer;
return the_answer;
},
'travel': function() {
var result = 0;
result += myCalcObj.results.vehicles1;
result += myCalcObj.results.vehicles2;
result += myCalcObj.results.vehicles3;
result += myCalcObj.results.vehicle_air_filter;
result += myCalcObj.results.tire_pressure;
result += myCalcObj.results.air_travel;
myCalcObj.results.travel = result;
return result;
},
'meat': function(responses) {
var the_answer = 0;
if (responses.meat != undefined) {
var avg_contrib = myCalcObj.results.DietEmissions;
var my_contrib = responses.meat * myCalcObj.results.DietEmissions;
// adjust the diet emissions down for later calculations
myCalcObj.results.DietEmissions = responses.meat * myCalcObj.results.DietEmissions;
the_answer = my_contrib - avg_contrib;
}
// store this result
myCalcObj.results.meat = the_answer;
return the_answer;
},
'organic': function(responses) {
var the_answer = 0;
if (responses.organic != undefined) {
var avg_contrib = myCalcObj.results.DietEmissions;
var my_contrib = (1 - responses.organic) * myCalcObj.results.DietEmissions;
// adjust the diet emissions down for later calculations
myCalcObj.results.DietEmissions = (1 - responses.organic) * myCalcObj.results.DietEmissions;
the_answer = my_contrib - avg_contrib;
}
// store this result
myCalcObj.results.organic = the_answer;
return the_answer;
},
'diet': function() {
var result = myCalcObj.results.Diet_Est;
result += myCalcObj.results.meat;
result += myCalcObj.results.organic;
myCalcObj.results.diet = result;
return result;
},
'recycle': function(responses) {
var the_answer = 0;
if (responses.recycle != undefined) {
var avg_contrib = myCalcObj.results.WasteEmissions;
var my_contrib = (1 - responses.recycle) * myCalcObj.results.WasteEmissions;
// adjust the diet emissions down for later calculations
myCalcObj.results.WasteEmissions = (1 - responses.recycle) * myCalcObj.results.WasteEmissions;
the_answer = my_contrib - avg_contrib;
}
// store this result
myCalcObj.results.recycle = the_answer;
return the_answer;
},
'compost': function(responses) {
var the_answer = 0;
if (responses.compost != undefined) {
var avg_contrib = myCalcObj.results.WasteEmissions;
var my_contrib = (1 - responses.compost) * myCalcObj.results.WasteEmissions;
// adjust the diet emissions down for later calculations
myCalcObj.results.WasteEmissions = (1 - responses.compost) * myCalcObj.results.WasteEmissions;
the_answer = my_contrib - avg_contrib;
}
// store this result
myCalcObj.results.compost = the_answer;
return the_answer;
},
'waste': function() {
var result = myCalcObj.results.Waste_Est;
result += myCalcObj.results.recycle;
result += myCalcObj.results.compost;
myCalcObj.results.waste = result;
return result;
},
'total': function() {
var result = 0;
if (section_viewed_flags.home_energy) result += myCalcObj.results.home_energy;
if (section_viewed_flags.driving_flying) result += myCalcObj.results.travel;
if (section_viewed_flags.food_diet) result += myCalcObj.results.diet;
if (section_viewed_flags.buying_waste) result += myCalcObj.results.waste;
myCalcObj.results.total = result;
return result;
}
}
function format_answer(num) {
num = Math.round(num / 200) / 10;
var answer = '' + num;
if (num > 10) {
// Round it and truncate
var power = 0;
while (num > 10) {
num = Math.round(num);
num = num / 10;
power += 1;
}
answer = '' + Math.round(Math.pow(10, power) * num);
}
return answer;
}
LU = {
'Indirect_coeff': 1.23,
'CO2_coeff': {
'heating': {'a': 86.84, 'b': 87.34},
'hot_water': {'a': 74.56, 'b': 112.50},
'appliances': {'a': 0, 'b': 293.1},
'air_conditioning': {'a': 0, 'b': 293.1}
},
'NonCO2_coeff': {
'cars': 1.02,
'planes': 1
},
// Electric Power Emissions Coefficient in lb CO2 per kWh
'states': {
'AK': {'elect_coeff': 1.38, 'zone': 'Zone 1'},
'AL': {'elect_coeff': 1.31, 'zone': 'Zone 4'},
'AR': {'elect_coeff': 1.29, 'zone': 'Zone 4'},
'AZ': {'elect_coeff': 1.05, 'zone': 'Zone 3'},
'CA': {'elect_coeff': 0.61, 'zone': 'Zone 4'},
'CO': {'elect_coeff': 1.93, 'zone': 'Zone 1'},
'CT': {'elect_coeff': 0.94, 'zone': 'Zone 2'},
'DC': {'elect_coeff': 1.37, 'zone': 'Zone 3'},
'DE': {'elect_coeff': 1.83, 'zone': 'Zone 3'},
'FL': {'elect_coeff': 1.39, 'zone': 'Zone 5'},
'GA': {'elect_coeff': 1.37, 'zone': 'Zone 4'},
'HI': {'elect_coeff': 1.66, 'zone': 'Zone 4'},
'IA': {'elect_coeff': 1.88, 'zone': 'Zone 1'},
'ID': {'elect_coeff': 0.03, 'zone': 'Zone 1'},
'IL': {'elect_coeff': 1.16, 'zone': 'Zone 2'},
'IN': {'elect_coeff': 2.08, 'zone': 'Zone 2'},
'KS': {'elect_coeff': 1.68, 'zone': 'Zone 3'},
'KY': {'elect_coeff': 2.01, 'zone': 'Zone 3'},
'LA': {'elect_coeff': 1.18, 'zone': 'Zone 5'},
'MA': {'elect_coeff': 1.28, 'zone': 'Zone 2'},
'MD': {'elect_coeff': 1.37, 'zone': 'Zone 3'},
'ME': {'elect_coeff': 0.85, 'zone': 'Zone 1'},
'MI': {'elect_coeff': 1.58, 'zone': 'Zone 1'},
'MN': {'elect_coeff': 1.52, 'zone': 'Zone 1'},
'MO': {'elect_coeff': 1.84, 'zone': 'Zone 3'},
'MS': {'elect_coeff': 1.29, 'zone': 'Zone 5'},
'MT': {'elect_coeff': 1.43, 'zone': 'Zone 1'},
'NC': {'elect_coeff': 1.24, 'zone': 'Zone 4'},
'ND': {'elect_coeff': 2.24, 'zone': 'Zone 1'},
'NE': {'elect_coeff': 1.40, 'zone': 'Zone 2'},
'NH': {'elect_coeff': 0.68, 'zone': 'Zone 1'},
'NJ': {'elect_coeff': 0.71, 'zone': 'Zone 3'},
'NM': {'elect_coeff': 2.02, 'zone': 'Zone 2'},
'NV': {'elect_coeff': 1.52, 'zone': 'Zone 2'},
'NY': {'elect_coeff': 0.86, 'zone': 'Zone 1'},
'OH': {'elect_coeff': 1.80, 'zone': 'Zone 2'},
'OK': {'elect_coeff': 1.72, 'zone': 'Zone 4'},
'OR': {'elect_coeff': 0.28, 'zone': 'Zone 2'},
'PA': {'elect_coeff': 1.26, 'zone': 'Zone 2'},
'RI': {'elect_coeff': 1.05, 'zone': 'Zone 2'},
'SC': {'elect_coeff': 0.83, 'zone': 'Zone 4'},
'SD': {'elect_coeff': 0.80, 'zone': 'Zone 1'},
'TN': {'elect_coeff': 1.30, 'zone': 'Zone 3'},
'TX': {'elect_coeff': 1.46, 'zone': 'Zone 5'},
'UT': {'elect_coeff': 1.93, 'zone': 'Zone 2'},
'VA': {'elect_coeff': 1.16, 'zone': 'Zone 3'},
'VT': {'elect_coeff': 0.03, 'zone': 'Zone 1'},
'WA': {'elect_coeff': 0.25, 'zone': 'Zone 2'},
'WI': {'elect_coeff': 1.64, 'zone': 'Zone 1'},
'WV': {'elect_coeff': 1.98, 'zone': 'Zone 3'},
'WY': {'elect_coeff': 2.15, 'zone': 'Zone 1'}
},
// household types average emissions
// space heat, hot water, appliances and lights, and air conditioning in million BTU per household
'hh_types': {
'Mobile home': {
'1': {'space_heat': 32.9, 'hot_water': 11.0, 'appliances_lights': 23.2, 'air_cond': 6.0},
'2': {'space_heat': 32.9, 'hot_water': 11.0, 'appliances_lights': 23.2, 'air_cond': 6.0},
'3': {'space_heat': 29.5, 'hot_water': 13.6, 'appliances_lights': 31.6, 'air_cond': 8.3},
'4': {'space_heat': 29.5, 'hot_water': 13.6, 'appliances_lights': 31.6, 'air_cond': 8.9},
'5': {'space_heat': 29.5, 'hot_water': 13.6, 'appliances_lights': 31.6, 'air_cond': 8.9}
},
'Single family home (detached)': {
'1': {'space_heat': 43.0, 'hot_water': 14.2, 'appliances_lights': 24.3, 'air_cond': 6.0 },
'2': {'space_heat': 43.0, 'hot_water': 14.2, 'appliances_lights': 24.3, 'air_cond': 6.0 },
'3': {'space_heat': 47.7, 'hot_water': 17.1, 'appliances_lights': 30.7, 'air_cond': 8.3 },
'4': {'space_heat': 60.8, 'hot_water': 21.2, 'appliances_lights': 39.4, 'air_cond': 12.6},
'5': {'space_heat': 88.2, 'hot_water': 25.7, 'appliances_lights': 56.3, 'air_cond': 13.3}
},
'Single family home (attached)': {
'1': {'space_heat': 38.8, 'hot_water': 15.7, 'appliances_lights': 20.6, 'air_cond': 4.7},
'2': {'space_heat': 38.8, 'hot_water': 15.7, 'appliances_lights': 20.6, 'air_cond': 4.7},
'3': {'space_heat': 50.8, 'hot_water': 17.4, 'appliances_lights': 28.2, 'air_cond': 6.7},
'4': {'space_heat': 74.9, 'hot_water': 23.6, 'appliances_lights': 33.9, 'air_cond': 8.5},
'5': {'space_heat': 74.9, 'hot_water': 23.6, 'appliances_lights': 33.9, 'air_cond': 8.5}
},
'Apartment building (2 to 4 units)': {
'1': {'space_heat': 33.1, 'hot_water': 9.4, 'appliances_lights': 13.5, 'air_cond': 3.4},
'2': {'space_heat': 40.8, 'hot_water': 11.8, 'appliances_lights': 19.2, 'air_cond': 5.7},
'3': {'space_heat': 69.1, 'hot_water': 18.1, 'appliances_lights': 25.1, 'air_cond': 5.4},
'4': {'space_heat': 69.1, 'hot_water': 18.1, 'appliances_lights': 25.1, 'air_cond': 5.4},
'5': {'space_heat': 69.1, 'hot_water': 18.1, 'appliances_lights': 25.1, 'air_cond': 5.4}
},
'Apartment building (5+ units)': {
'1': {'space_heat': 12.8, 'hot_water': 7.7 , 'appliances_lights': 10.8, 'air_cond': 3.4},
'2': {'space_heat': 16.7, 'hot_water': 12.0, 'appliances_lights': 15.4, 'air_cond': 5.0},
'3': {'space_heat': 17.0, 'hot_water': 14.1, 'appliances_lights': 22.8, 'air_cond': 9.4},
'4': {'space_heat': 17.0, 'hot_water': 14.1, 'appliances_lights': 22.8, 'air_cond': 9.4},
'5': {'space_heat': 17.0, 'hot_water': 14.1, 'appliances_lights': 22.8, 'air_cond': 9.4}
}
},
'zone_scaling': {
'Zone 1': {'space_heat': 1.440, 'air_cond': 0.468},
'Zone 2': {'space_heat': 1.508, 'air_cond': 0.532},
'Zone 3': {'space_heat': 1.107, 'air_cond': 0.740},
'Zone 4': {'space_heat': 0.626, 'air_cond': 1.026},
'Zone 5': {'space_heat': 0.431, 'air_cond': 1.792}
},
'flight_emissions_factors': {
'short': 0.639,
'medium': 0.447,
'long': 0.390,
'extended': 0.390
},
'household_drivers_ratio': 0.678,
'average_emissions': {
'home_energy': 19530,
'air': 2587,
'car': 20517,
'travel': 23105,
'diet': 8117,
'waste': 2360,
'total': 53111,
'world': 11000
}
}