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 } }