From 6ac81605fb6a7d174dc37d88c2dc161822c6356b Mon Sep 17 00:00:00 2001 From: Sunishchal Date: Sun, 6 Sep 2020 04:24:50 -0700 Subject: [PATCH 01/28] Initial script for issue #23 health & education electricity cluster --- solution/healthandeducation/__init__.py | 447 ++++++++++++++++++++++++ 1 file changed, 447 insertions(+) create mode 100644 solution/healthandeducation/__init__.py diff --git a/solution/healthandeducation/__init__.py b/solution/healthandeducation/__init__.py new file mode 100644 index 000000000..b71d9ca70 --- /dev/null +++ b/solution/healthandeducation/__init__.py @@ -0,0 +1,447 @@ +"""Health & Education solution model for Electricity Cluster + Excel filename: CORE_PopulationChange_29Jan2020 (version 1.4).xlsx + Excel sheet name: Electricity_cluster +""" + +import pathlib + +import numpy as np +import pandas as pd + +DATADIR = pathlib.Path(__file__).parents[2].joinpath('data') +THISDIR = pathlib.Path(__file__).parents[0] + +name = 'Health and Education - Electricity Cluster' +# solution_category = ac.SOLUTION_CATEGORY.REDUCTION #TODO: Confirm this is a reduction solution + +# Assumptions: +# % impact of educational attainment on uptake of Family Planning: +fixed_weighting_factor = None +pct_impact = 0.50 +use_fixed_weight = 'N' + +# Regions included as LLDC+HighNRR: +lldc_high_nrr_config = { + 'OECD90': 'N', + 'Eastern Europe': 'N', + 'Asia (Sans Japan)': 'Y', + 'Middle East and Africa': 'Y', + 'Latin America': 'N' +} +lldc_high_nrr_regions_y = dict(filter(lambda x: x[1] == 'Y', lldc_high_nrr_config.items())).keys() +lldc_high_nrr_regions_n = dict(filter(lambda x: x[1] == 'N', lldc_high_nrr_config.items())).keys() + + +class Scenario: + name = name + # solution_category = solution_category + + def __init__(self, scenario=None): + + # Population scenarios + # Population_Tables!C2:L49 + self.ref1_population = pd.DataFrame(ref1_population_list[1:], + columns=ref1_population_list[0], + index=list(range(2014, 2061)), dtype=np.float64) + + # Population_Tables!O2:X49 + self.ref2_population = pd.DataFrame(ref2_population_list[1:], + columns=ref2_population_list[0], + index=list(range(2014, 2061)), dtype=np.float64) + + # Population_Tables!C61:L108 + self.ref1_low_edu = pd.DataFrame(ref1_low_edu_list[1:], + columns=ref1_low_edu_list[0], + index=list(range(2014, 2061)), dtype=np.float64) + + # Population_Tables!O61:X108 + self.ref2_low_edu = pd.DataFrame(ref2_low_edu_list[1:], + columns=ref2_low_edu_list[0], + index=list(range(2014, 2061)), dtype=np.float64) + + # TABLE 1: Current TAM Mix + current_tam_mix = pd.DataFrame(current_tam_mix_list, + columns=['2018', 'Include in SOL?', 'Include in CONV?'], + index=['Coal', + 'Natural gas', + 'Nuclear', + 'Oil', + 'Hydroelectric', + 'Solar Photovoltaic', + 'Wave and Tidal', + 'Wind Onshore', + 'Wind Offshore', + 'Biomass and Waste', + 'Concentrated Solar Power', + 'Geothermal']) + + # Table 2: REF2, Electricity Generation TAM (TWh) + # Electricity_cluster!B26:K73 + self.ref2_tam = pd.DataFrame(ref2_tam_list[1:], + columns=ref2_tam_list[0], + index=list(range(2014, 2061)), dtype=np.float64) + + # Table 3: REF1 ,Electricity Generation TAM (TWh) + # (a) FOR POPULATIONS IN REGIONS WITH LOW EDUCATIONAL ATTAINMENT ONLY! + ref1_tam_low_edu = (self.ref2_tam / self.ref2_population) * self.ref1_low_edu + ref1_tam_low_edu.loc[:, 'Asia (Sans Japan)'] = ((self.ref2_tam.loc[:, 'Asia (Sans Japan)'] - self.ref2_tam.loc[:, 'China']) / self.ref2_population.loc[:, 'Asia (Sans Japan)']) * self.ref1_low_edu.loc[:, 'Asia (Sans Japan)'] + ref1_tam_low_edu.loc[:, 'World'] = ref1_tam_low_edu.loc[:, ref1_tam_low_edu.columns[1:6]].sum(axis=1) + + # Electricity_cluster!M26:W73 + self.ref1_tam_low_edu = ref1_tam_low_edu + + # Table 3: REF1 ,Electricity Generation TAM (TWh) + # (b) FOR REGIONS WITH HIGHER EDUCATIONAL ATTAINMENT + ref1_tam_high_edu = ((self.ref2_tam / self.ref2_population) * self.ref1_population) - ref1_tam_low_edu + + # Electricity_cluster!@26:AI73 + self.ref1_tam_high_edu = ref1_tam_high_edu + + # Table 3: REF1 ,Electricity Generation TAM (TWh) + # (c) FOR ALL REGIONS + ref1_tam_all_regions = ref1_tam_low_edu + ref1_tam_high_edu + + # Electricity_cluster!AL26:AU73 + self.ref1_tam_all_regions = ref1_tam_all_regions + + # Table 4: Total REF2 Electricity Generation by Economic Development Status (TWh) + ref2_elec_gen = pd.DataFrame(None, + columns=['LLDC+HighNRR', 'China', 'MDC + LAC + EE', 'Total Electricity Demand in Countries with Higher Educational Attainment (TWh)', 'Total Electricity Demand in Countries with Higher Educational Attainment (TWh) % LLDC'], + index=list(range(2014, 2061)), dtype=np.float64) + + ref2_elec_gen.loc[:, 'LLDC+HighNRR'] = self.ref2_tam.loc[:, lldc_high_nrr_regions_y].sum(axis=1) - self.ref2_tam.loc[:, 'China'] + ref2_elec_gen.loc[:, 'China'] = self.ref2_tam.loc[:, 'China'] + ref2_elec_gen.loc[:, 'MDC + LAC + EE'] = self.ref2_tam.loc[:, lldc_high_nrr_regions_n].sum(axis=1) + if lldc_high_nrr_config['Asia (Sans Japan)'] == 'N': + ref2_elec_gen.loc[:, 'MDC + LAC + EE'] = ref2_elec_gen.loc[:, 'MDC + LAC + EE'] - self.ref2_tam.loc[:, 'China'] + ref2_elec_gen.loc[:, 'Total Electricity Demand in Countries with Higher Educational Attainment (TWh)'] = ref2_elec_gen.loc[:, ['LLDC+HighNRR', 'China', 'MDC + LAC + EE']].sum(axis=1) + ref2_elec_gen.loc[:, 'Total Electricity Demand in Countries with Higher Educational Attainment (TWh) % LLDC'] = ref2_elec_gen.loc[:, 'LLDC+HighNRR'] / ref2_elec_gen.loc[:, 'Total Electricity Demand in Countries with Higher Educational Attainment (TWh)'] + + # Electricity_cluster!B77:F124 + self.ref2_elec_gen = ref2_elec_gen + + # Table 5: Total REF1 Electricity Generation by Economic Development Status (TWh) + ref1_elec_gen = pd.DataFrame(None, + columns=['LLDC with low educational attainment, excluding China', 'MDC + EE + LAC with low educational attainment, excluding China', 'China', 'LLDC with higher educational attainment, excluding China', 'MDC + EE + LAC with higher educational attainment', 'Total Electricity Demand in Countries with Low Educational Attainment (TWh), exluding China', 'Total Electricity Demand in Countries with Low Educational Attainment (TWh), exluding China % LLDC', 'Total Electricity Demand in Countries with Higher Educational Attainment (TWh)', 'Total Electricity Demand in Countries with Higher Educational Attainment (TWh) % LLDC', 'Total Electricity Demand (TWh)', 'Total Electricity Demand (TWh) % LLDC'], + index=list(range(2014, 2061)), dtype=np.float64) + + ref1_elec_gen.loc[:, 'LLDC with low educational attainment, excluding China'] = ref1_tam_low_edu.loc[:, lldc_high_nrr_regions_y].sum(axis=1) - ref1_tam_low_edu.loc[:, 'China'] + ref1_elec_gen.loc[:, 'MDC + EE + LAC with low educational attainment, excluding China'] = ref1_tam_low_edu.loc[:, lldc_high_nrr_regions_n].sum(axis=1) + if lldc_high_nrr_config['Asia (Sans Japan)'] == 'N': + ref1_elec_gen.loc[:, 'MDC + LAC + EE'] = ref1_elec_gen.loc[:, 'MDC + LAC + EE'] - self.ref1_tam_low_edu.loc[:, 'China'] + ref1_elec_gen.loc[:, 'China'] = ref1_tam_high_edu.loc[:, 'China'] + + ref1_elec_gen.loc[:, 'LLDC with higher educational attainment, excluding China'] = ref1_tam_high_edu.loc[:, lldc_high_nrr_regions_y].sum(axis=1) - ref1_tam_high_edu.loc[:, 'China'] + ref1_elec_gen.loc[:, 'MDC + EE + LAC with higher educational attainment'] = ref1_tam_high_edu.loc[:, lldc_high_nrr_regions_n].sum(axis=1) + if lldc_high_nrr_config['Asia (Sans Japan)'] == 'N': + ref1_elec_gen.loc[:, 'MDC + EE + LAC with higher educational attainment'] = ref1_elec_gen.loc[:, 'MDC + EE + LAC with higher educational attainment'] - self.ref1_tam_high_edu.loc[:, 'China'] + + ref1_elec_gen.loc[:, 'Total Electricity Demand in Countries with Low Educational Attainment (TWh), exluding China'] = ref1_elec_gen.loc[:, 'LLDC with low educational attainment, excluding China'] + ref1_elec_gen.loc[:, 'MDC + EE + LAC with low educational attainment, excluding China'] + ref1_elec_gen.loc[:, 'Total Electricity Demand in Countries with Low Educational Attainment (TWh), exluding China % LLDC'] = ref1_elec_gen.loc[:, 'LLDC with low educational attainment, excluding China'] / ref1_elec_gen.loc[:, 'Total Electricity Demand in Countries with Low Educational Attainment (TWh), exluding China'] + + ref1_elec_gen.loc[:, 'Total Electricity Demand in Countries with Higher Educational Attainment (TWh)'] = ref1_elec_gen.loc[:, 'China'] + ref1_elec_gen.loc[:, 'LLDC with higher educational attainment, excluding China'] + ref1_elec_gen.loc[:, 'MDC + EE + LAC with higher educational attainment'] + ref1_elec_gen.loc[:, 'Total Electricity Demand in Countries with Higher Educational Attainment (TWh) % LLDC'] = ref1_elec_gen.loc[:, 'LLDC with higher educational attainment, excluding China'] / ref1_elec_gen.loc[:, 'Total Electricity Demand in Countries with Higher Educational Attainment (TWh)'] + + ref1_elec_gen.loc[:, 'Total Electricity Demand (TWh)'] = ref1_elec_gen.loc[:, 'Total Electricity Demand in Countries with Low Educational Attainment (TWh), exluding China'] + ref1_elec_gen.loc[:, 'Total Electricity Demand in Countries with Higher Educational Attainment (TWh)'] + ref1_elec_gen.loc[:, 'Total Electricity Demand (TWh) % LLDC'] = ref1_elec_gen.loc[:, 'Total Electricity Demand in Countries with Low Educational Attainment (TWh), exluding China'] / ref1_elec_gen.loc[:, 'Total Electricity Demand (TWh)'] + + # Electricity_cluster!H77:T124 + self.ref1_elec_gen = ref1_elec_gen + + # Table 6: Change in Electricity Generation by MDC vs. LLDC Regions, REF1-REF2 (TWh) + change_elec_gen = pd.DataFrame(None, + columns=['LLDC', 'China', 'MDC + EE +LAC', 'Total change in REF1-REF2', '% LLDC with higher educational attainment', '% LLDC with Low Educational Attainment', '% LLDC', '% MDC + LAC + EE + China'], + index=list(range(2014, 2061)), dtype=np.float64) + + change_elec_gen.loc[:, 'LLDC'] = (ref1_elec_gen.loc[:, 'LLDC with low educational attainment, excluding China'] + ref1_elec_gen.loc[:, 'LLDC with higher educational attainment, excluding China']) - ref2_elec_gen.loc[:, 'LLDC+HighNRR'] + change_elec_gen.loc[:, 'China'] = ref1_elec_gen.loc[:, 'China'] - ref2_elec_gen.loc[:, 'China'] + change_elec_gen.loc[:, 'MDC + EE +LAC'] = (ref1_elec_gen.loc[:, 'MDC + EE + LAC with higher educational attainment'] + ref1_elec_gen.loc[:, 'MDC + EE + LAC with low educational attainment, excluding China']) - ref2_elec_gen.loc[:, 'MDC + LAC + EE'] + change_elec_gen.loc[[2014, 2015], 'MDC + EE +LAC'] = 0 + + change_elec_gen.loc[:, 'Total change in REF1-REF2'] = change_elec_gen.loc[:, 'LLDC'] + change_elec_gen.loc[:, 'China'] + change_elec_gen.loc[:, 'MDC + EE +LAC'] + + change_elec_gen.loc[:, '% LLDC with higher educational attainment'] = (change_elec_gen.loc[:, 'LLDC'] * (ref1_elec_gen.loc[:, 'LLDC with higher educational attainment, excluding China'] / (ref1_elec_gen.loc[:, 'LLDC with low educational attainment, excluding China'] + ref1_elec_gen.loc[:, 'LLDC with higher educational attainment, excluding China']))) / change_elec_gen.loc[:, 'Total change in REF1-REF2'] + + change_elec_gen.loc[:, '% LLDC with Low Educational Attainment'] = (change_elec_gen.loc[:, 'LLDC'] / change_elec_gen.loc[:, 'Total change in REF1-REF2']) * (ref1_elec_gen.loc[:, 'LLDC with low educational attainment, excluding China'] / (ref1_elec_gen.loc[:, 'LLDC with higher educational attainment, excluding China'] + ref1_elec_gen.loc[:, 'LLDC with low educational attainment, excluding China'])) + change_elec_gen.loc[:, '% LLDC'] = (change_elec_gen.loc[:, 'LLDC'] / change_elec_gen.loc[:, 'Total change in REF1-REF2']) + change_elec_gen.loc[:, '% MDC + LAC + EE + China'] = (change_elec_gen.loc[:, 'China'] + change_elec_gen.loc[:, 'MDC + EE +LAC']) / change_elec_gen.loc[:, 'Total change in REF1-REF2'] + + # Electricity_cluster!W77:AD124 + self.change_elec_gen = change_elec_gen + + +# TABLE 1: Current TAM Mix +current_tam_mix_list = [ + [39.28, 'N', 'Y'], + [22.72, 'N', 'Y'], + [10.45, 'N', 'N'], + [3.41, 'N', 'Y'], + [15.52, 'N', 'Y'], + [1.73, 'N', 'N'], + [0.00, 'N', 'N'], + [4.36, 'N', 'N'], + [0.24, 'N', 'N'], + [1.90, 'N', 'N'], + [0.05, 'N', 'N'], + [0.34, 'N', 'N']] + +# REF1 Population +# Population_Tables!C2:L49 +ref1_population_list = [ + ['World', 'OECD90', 'Eastern Europe', 'Asia (Sans Japan)', 'Middle East and Africa', 'Latin America', 'China', 'India', 'EU', 'USA'], + [7349.47210, 929.27447, 407.26543, 3957.23614, 1421.29910, 634.39696, 1376.04894, 1311.05053, 738.44207, 321.77363], + [7349.47210, 929.27447, 407.26543, 3957.23614, 1421.29910, 634.39696, 1376.04894, 1311.05053, 738.44207, 321.77363], + [7436.87553, 932.98356, 407.76256, 3997.60036, 1456.99548, 641.53357, 1382.03581, 1328.33174, 738.66684, 324.11007], + [7525.57132, 936.64552, 408.13764, 4038.22818, 1493.77952, 648.78045, 1387.53123, 1346.24485, 738.76532, 326.45235], + [7615.15654, 940.23746, 408.38598, 4078.85703, 1531.57068, 656.10539, 1392.45791, 1364.65105, 738.72382, 328.79433], + [7705.05663, 943.71630, 408.51214, 4119.13221, 1570.23805, 663.45793, 1396.73688, 1383.32427, 738.52370, 331.12408], + [7794.83701, 947.05113, 408.52045, 4158.78543, 1609.68202, 670.79798, 1400.31454, 1402.09080, 738.15343, 333.43229], + [7884.32713, 950.24158, 408.40410, 4197.69154, 1649.87687, 678.11303, 1403.15315, 1420.90183, 737.61047, 335.71825], + [7973.57998, 953.30379, 408.15896, 4235.87072, 1690.84245, 685.40406, 1405.26334, 1439.78526, 736.90490, 337.98396], + [8062.65101, 956.24165, 407.79768, 4273.37667, 1732.57583, 692.65919, 1406.70593, 1458.72913, 736.05378, 340.22541], + [8151.67722, 959.06165, 407.33887, 4310.32492, 1775.08386, 699.86792, 1407.57480, 1477.73702, 735.08089, 342.43789], + [8240.73751, 961.76867, 406.79832, 4346.78656, 1818.36488, 707.01908, 1407.94727, 1496.79674, 734.00590, 344.61727], + [8329.83301, 964.36400, 406.18208, 4382.76325, 1862.41853, 714.10516, 1407.84261, 1515.89426, 732.83581, 346.76170], + [8418.84153, 966.84648, 405.49364, 4418.17013, 1907.21781, 721.11347, 1407.26714, 1534.97087, 731.57399, 348.86935], + [8507.57937, 969.21588, 404.74371, 4452.89309, 1952.70440, 728.02229, 1406.27190, 1553.91809, 730.23226, 350.93621], + [8595.80845, 971.47142, 403.94397, 4486.78247, 1998.80421, 734.80639, 1404.91436, 1572.60094, 728.82308, 352.95787], + [8683.36509, 973.61287, 403.10469, 4519.73310, 2045.46704, 741.44740, 1403.24039, 1590.92081, 727.35638, 354.93113], + [8770.18454, 975.64161, 402.23198, 4551.70732, 2092.66837, 747.93527, 1401.27287, 1608.83977, 725.83887, 356.85430], + [8856.33181, 977.55957, 401.33138, 4582.74008, 2140.42916, 754.27163, 1399.02158, 1626.37360, 724.27351, 358.72765], + [8941.93799, 979.36778, 400.41150, 4612.89128, 2188.80223, 760.46519, 1396.50051, 1643.54794, 722.66122, 360.55277], + [9027.20128, 981.06739, 399.48118, 4642.25569, 2237.86573, 766.53130, 1393.71812, 1660.41336, 721.00069, 362.33245], + [9112.27970, 982.65999, 398.54706, 4670.91108, 2287.67930, 772.48227, 1390.67752, 1677.01608, 719.29074, 364.06913], + [9197.21086, 984.14744, 397.61388, 4698.87248, 2338.25724, 778.31983, 1387.38911, 1693.35827, 717.53314, 365.76405], + [9281.99269, 985.53249, 396.68256, 4726.14354, 2389.59096, 784.04315, 1383.84809, 1709.45156, 715.72891, 367.41790], + [9366.69854, 986.81887, 395.75072, 4752.77934, 2441.68994, 789.65968, 1380.02124, 1725.36678, 713.87455, 369.03215], + [9451.40531, 988.01093, 394.81348, 4778.84350, 2494.55933, 795.17807, 1375.86196, 1741.19345, 711.96499, 370.60839], + [9536.17204, 989.11278, 393.86679, 4804.38497, 2548.20211, 800.60539, 1371.33365, 1757.00124, 709.99618, 372.14854], + [9621.03717, 990.12662, 392.91082, 4829.43304, 2602.62125, 805.94543, 1366.42996, 1772.81742, 707.96744, 373.65385], + [9706.01075, 991.05521, 391.94586, 4853.99271, 2657.81694, 811.20003, 1361.15238, 1788.64470, 705.87876, 375.12681], + [9791.08359, 991.90379, 390.96795, 4878.05675, 2713.78353, 816.37157, 1355.48244, 1804.49598, 703.72771, 376.57210], + [9876.22866, 992.67835, 389.97202, 4901.60485, 2770.51176, 821.46169, 1349.40047, 1820.37611, 701.51150, 377.99539], + [9961.42218, 993.38360, 388.95422, 4924.62206, 2827.99069, 826.47161, 1342.89522, 1836.28576, 699.22835, 379.40119], + [10046.66459, 994.02413, 387.91326, 4947.11302, 2886.21171, 831.40249, 1335.96496, 1852.23013, 696.87863, 380.79271], + [10131.95498, 994.60116, 386.84928, 4969.08724, 2945.16235, 836.25496, 1328.62106, 1868.20578, 694.46344, 382.17095], + [10217.26309, 995.11199, 385.76178, 4990.53891, 3004.82166, 841.02875, 1320.88389, 1884.19046, 691.98308, 383.53550], + [10302.54974, 995.55182, 384.65072, 5011.45973, 3065.16449, 845.72297, 1312.78215, 1900.15253, 689.43810, 384.88481], + [10387.78138, 995.91818, 383.51642, 5031.84353, 3126.16688, 850.33637, 1304.34353, 1916.06242, 686.83010, 386.21835], + [10472.95119, 996.21243, 382.35903, 5051.69741, 3187.81348, 854.86884, 1295.58380, 1931.91201, 684.16110, 387.53661], + [10558.04989, 996.43982, 381.17931, 5071.02454, 3250.08738, 859.31883, 1286.52095, 1947.68674, 681.43502, 388.84231], + [10643.03968, 996.60677, 379.97926, 5089.81136, 3312.96072, 863.68157, 1277.18933, 1963.34207, 678.65802, 390.13969], + [10727.87591, 996.72148, 378.76146, 5108.03962, 3376.40241, 867.95094, 1267.62865, 1978.82401, 675.83769, 391.43405], + [10812.52912, 996.79117, 377.52840, 5125.70173, 3440.38571, 872.12211, 1257.87463, 1994.09152, 672.98112, 392.72940], + [10896.99478, 996.81983, 376.28187, 5142.80541, 3504.89390, 876.19378, 1247.94803, 2009.13046, 670.09318, 394.02695], + [10981.28851, 996.81060, 375.02359, 5159.37406, 3569.91453, 880.16573, 1237.86870, 2023.94178, 667.17847, 395.32627], + [11065.42944, 996.76891, 373.75611, 5175.43721, 3635.43145, 884.03576, 1227.66979, 2038.52034, 664.24372, 396.62742], + [11149.44702, 996.70044, 372.48220, 5191.03300, 3701.42970, 887.80168, 1217.38672, 2052.86665, 661.29618, 397.92981], + [11233.37324, 996.61026, 371.20461, 5206.19887, 3767.89712, 891.46238, 1207.04805, 2066.98603, 658.34259, 399.23256]] + +# REF 2 Population Table +# Population_Tables!O2:X49 +ref2_population_list = [ + ['World', 'OECD90', 'Eastern Europe', 'Asia (Sans Japan)', 'Middle East and Africa', 'Latin America', 'China', 'India', 'EU', 'USA'], + [7349.47210, 929.27447, 407.26543, 3957.23614, 1421.29910, 634.39696, 1376.04894, 1311.05053, 738.44207, 321.77363], + [7349.47210, 929.27447, 407.26543, 3957.23614, 1421.29910, 634.39696, 1376.04894, 1311.05053, 738.44207, 321.77363], + [7429.04690, 932.21212, 407.45046, 3993.32073, 1455.38354, 640.68005, 1380.80990, 1326.80158, 738.13933, 323.80581], + [7506.49450, 934.76760, 407.37911, 4027.81010, 1489.83721, 646.70047, 1384.55993, 1342.51271, 737.48253, 325.71103], + [7581.94776, 936.97487, 407.07621, 4060.75475, 1524.66317, 652.47877, 1387.34872, 1358.13772, 736.50331, 327.50498], + [7655.70393, 938.88198, 406.59180, 4092.30245, 1559.87564, 658.05206, 1389.28982, 1373.60507, 735.25383, 329.21096], + [7727.98938, 940.52724, 405.96404, 4122.56705, 1595.48335, 663.44770, 1390.47496, 1388.85892, 733.77575, 330.84620], + [7798.80624, 941.93026, 405.19582, 4151.52645, 1631.48388, 668.66984, 1390.90742, 1403.88269, 732.08221, 332.41769], + [7868.06903, 943.09410, 404.27486, 4179.12802, 1667.86400, 673.70806, 1390.57096, 1418.68092, 730.17184, 333.92166], + [7935.83328, 944.02159, 403.20904, 4205.43332, 1704.61036, 678.55897, 1389.52427, 1433.24267, 728.05662, 335.35190], + [8002.16539, 944.71002, 402.00670, 4230.52591, 1741.70657, 683.21621, 1387.84076, 1447.56046, 725.74731, 336.69791], + [8067.13745, 945.16269, 400.67737, 4254.47802, 1779.14258, 687.67680, 1385.58675, 1461.62523, 723.25708, 337.95337], + [8130.77370, 945.38522, 399.22810, 4277.30957, 1816.91113, 691.93967, 1382.79074, 1475.42460, 720.59558, 339.11737], + [8193.14307, 945.39902, 397.67033, 4299.04193, 1855.01963, 696.01217, 1379.48547, 1488.94304, 717.78146, 340.19725], + [8254.41645, 945.24169, 396.02342, 4319.75040, 1893.49113, 699.90981, 1375.74637, 1502.16520, 714.84753, 341.20478], + [8314.80408, 944.96007, 394.31020, 4339.52280, 1932.35800, 703.65301, 1371.65981, 1515.07492, 711.83288, 342.15572], + [8374.46188, 944.58933, 392.54952, 4358.42275, 1971.64391, 707.25638, 1367.29190, 1527.65799, 708.76781, 343.06193], + [8433.46137, 944.14678, 390.75183, 4376.48790, 2011.34884, 710.72602, 1362.68155, 1539.90705, 705.66891, 343.92786], + [8491.78908, 943.63083, 388.92263, 4393.71195, 2051.46540, 714.05827, 1357.83484, 1551.81449, 702.53891, 344.75221], + [8549.40555, 943.03358, 387.06925, 4410.05739, 2091.99969, 717.24564, 1352.74140, 1563.36648, 699.37626, 345.53383], + [8606.23002, 942.33805, 385.19729, 4425.46137, 2132.95742, 720.27590, 1347.37308, 1574.54824, 696.17264, 346.26933], + [8662.19575, 941.53143, 383.31137, 4439.87582, 2174.33746, 723.13968, 1341.70792, 1585.34985, 692.92200, 346.95606], + [8717.29157, 940.61393, 381.41603, 4453.29188, 2216.13458, 725.83516, 1335.75157, 1595.76373, 689.62606, 347.59488], + [8771.51987, 939.59072, 379.51468, 4465.71963, 2258.33081, 728.36403, 1329.51323, 1605.79250, 686.28973, 348.18691], + [8824.83704, 938.45902, 377.60858, 4477.15076, 2300.89440, 730.72429, 1322.97653, 1615.44985, 682.91268, 348.72970], + [8877.19081, 937.21549, 375.69756, 4487.57885, 2343.78464, 732.91426, 1316.11947, 1624.75632, 679.49396, 349.21999], + [8928.53173, 935.85684, 373.78066, 4496.99717, 2386.96465, 734.93242, 1308.92527, 1633.72767, 676.03149, 349.65532], + [8978.83217, 934.38097, 371.85874, 4505.40248, 2430.41227, 736.77771, 1301.38902, 1642.36934, 672.52447, 350.03486], + [9028.05926, 932.78524, 369.93007, 4512.78696, 2474.10809, 738.44890, 1293.51221, 1650.67962, 668.96892, 350.35901], + [9076.15169, 931.06514, 367.98721, 4519.13481, 2518.02014, 739.94438, 1285.29260, 1658.65883, 665.35528, 350.62807], + [9123.03978, 929.21549, 366.02024, 4524.42735, 2562.11423, 741.26247, 1276.72972, 1666.30529, 661.67138, 350.84278], + [9168.66694, 927.23193, 364.02109, 4528.65275, 2606.35895, 742.40221, 1267.82422, 1673.61877, 657.90737, 351.00378], + [9213.00344, 925.11500, 361.98722, 4531.80876, 2650.72927, 743.36319, 1258.57761, 1680.59958, 654.06081, 351.11249], + [9256.03432, 922.86374, 359.91768, 4533.90353, 2695.20322, 744.14616, 1248.99236, 1687.25222, 650.13048, 351.16917], + [9297.73877, 920.47113, 357.80801, 4534.94992, 2739.75668, 744.75304, 1239.07241, 1693.58529, 646.10954, 351.17223], + [9338.10174, 917.92853, 355.65362, 4534.96658, 2784.36647, 745.18655, 1228.82293, 1699.60963, 641.99059, 351.11934], + [9377.11399, 915.23136, 353.45131, 4533.97137, 2829.01083, 745.44912, 1218.25063, 1705.33254, 637.76923, 351.00981], + [9414.77452, 912.37976, 351.19962, 4531.98379, 2873.66898, 745.54238, 1207.36871, 1710.75814, 633.44478, 350.84386], + [9451.08630, 909.38082, 348.89906, 4529.01687, 2918.32212, 745.46743, 1196.18811, 1715.88335, 629.02114, 350.62519], + [9486.05373, 906.24636, 346.55133, 4525.07653, 2962.95366, 745.22584, 1184.71221, 1720.69922, 624.50499, 350.36097], + [9519.68550, 902.99235, 344.15935, 4520.16601, 3007.54865, 744.81914, 1172.94273, 1725.19268, 619.90583, 350.06054], + [9551.99895, 899.63305, 341.72617, 4514.29804, 3052.09257, 744.24913, 1160.88878, 1729.35406, 615.23296, 349.73145], + [9583.00809, 896.17543, 339.25362, 4507.49170, 3096.56941, 743.51792, 1148.56052, 1733.18387, 610.49187, 349.37648], + [9612.74763, 892.62584, 336.74406, 4499.78531, 3140.96437, 742.62805, 1135.98562, 1736.68515, 605.68893, 348.99659], + [9641.28447, 888.99776, 334.20199, 4491.23616, 3185.26616, 741.58240, 1123.21312, 1739.85419, 600.83602, 348.59511], + [9668.70217, 885.30621, 331.63285, 4481.91392, 3229.46502, 740.38418, 1110.30397, 1742.68690, 595.94692, 348.17518], + [9695.07315, 881.56408, 329.04180, 4471.88005, 3273.55069, 739.03653, 1097.30865, 1745.18241, 591.03419, 347.73901]] + +# Population in Countries with <0.96 gender partiy in completing upper secondary education, by IPCC Region, REF1_population_scenario (millions) +# Population_Tables!C61:L108 +ref1_low_edu_list = [ + ['World', 'OECD90', 'Eastern Europe', 'Asia (Sans Japan)', 'Middle East and Africa', 'Latin America', 'China', 'India', 'EU', 'USA'], + [0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000], + [3104.47059, 0.00000, 8.48186, 2065.81780, 852.00259, 178.16835, 0.00000, 0.00000, 0.00000, 0.00000], + [3161.44344, 0.00000, 8.68020, 2095.03147, 876.99695, 180.73482, 0.00000, 0.00000, 0.00000, 0.00000], + [3220.03211, 0.00000, 8.88431, 2124.97121, 902.80900, 183.36760, 0.00000, 0.00000, 0.00000, 0.00000], + [3280.01976, 0.00000, 9.09242, 2155.47220, 929.40282, 186.05232, 0.00000, 0.00000, 0.00000, 0.00000], + [3341.07264, 0.00000, 9.30224, 2186.28270, 956.72112, 188.76657, 0.00000, 0.00000, 0.00000, 0.00000], + [3402.93540, 0.00000, 9.51196, 2217.20758, 984.72307, 191.49280, 0.00000, 0.00000, 0.00000, 0.00000], + [3465.51278, 0.00000, 9.72091, 2248.17352, 1013.39323, 194.22513, 0.00000, 0.00000, 0.00000, 0.00000], + [3528.83717, 0.00000, 9.92908, 2279.19598, 1042.74746, 196.96466, 0.00000, 0.00000, 0.00000, 0.00000], + [3592.92607, 0.00000, 10.13609, 2310.26903, 1072.81245, 199.70851, 0.00000, 0.00000, 0.00000, 0.00000], + [3657.83624, 0.00000, 10.34174, 2341.41128, 1103.62806, 202.45516, 0.00000, 0.00000, 0.00000, 0.00000], + [3723.58350, 0.00000, 10.54590, 2372.61663, 1135.21914, 205.20184, 0.00000, 0.00000, 0.00000, 0.00000], + [3790.16283, 0.00000, 10.74844, 2403.87092, 1167.59705, 207.94643, 0.00000, 0.00000, 0.00000, 0.00000], + [3857.46641, 0.00000, 10.94930, 2435.09384, 1200.74062, 210.68266, 0.00000, 0.00000, 0.00000, 0.00000], + [3925.28660, 0.00000, 11.14859, 2466.13620, 1234.60293, 213.39888, 0.00000, 0.00000, 0.00000, 0.00000], + [3993.35721, 0.00000, 11.34656, 2496.81047, 1269.11927, 216.08091, 0.00000, 0.00000, 0.00000, 0.00000], + [4061.48558, 0.00000, 11.54352, 2526.98012, 1304.24345, 218.71849, 0.00000, 0.00000, 0.00000, 0.00000], + [4129.59718, 0.00000, 11.73953, 2556.59160, 1339.95944, 221.30662, 0.00000, 0.00000, 0.00000, 0.00000], + [4197.73264, 0.00000, 11.93500, 2585.66899, 1376.28164, 223.84701, 0.00000, 0.00000, 0.00000, 0.00000], + [4265.96225, 0.00000, 12.13112, 2614.25436, 1413.23206, 226.34472, 0.00000, 0.00000, 0.00000, 0.00000], + [4334.41009, 0.00000, 12.32938, 2642.42615, 1450.84617, 228.80839, 0.00000, 0.00000, 0.00000, 0.00000], + [4403.18004, 0.00000, 12.53094, 2670.25277, 1489.15146, 231.24487, 0.00000, 0.00000, 0.00000, 0.00000], + [4472.28136, 0.00000, 12.73618, 2697.73783, 1528.15208, 233.65528, 0.00000, 0.00000, 0.00000, 0.00000], + [4541.71837, 0.00000, 12.94510, 2724.89050, 1567.84374, 236.03903, 0.00000, 0.00000, 0.00000, 0.00000], + [4611.58966, 0.00000, 13.15806, 2751.79605, 1608.23606, 238.39949, 0.00000, 0.00000, 0.00000, 0.00000], + [4682.01590, 0.00000, 13.37532, 2778.56113, 1649.33899, 240.74046, 0.00000, 0.00000, 0.00000, 0.00000], + [4753.08948, 0.00000, 13.59698, 2805.26766, 1691.15979, 243.06505, 0.00000, 0.00000, 0.00000, 0.00000], + [4824.84801, 0.00000, 13.82315, 2831.94860, 1733.70139, 245.37486, 0.00000, 0.00000, 0.00000, 0.00000], + [4897.29233, 0.00000, 14.05360, 2858.60440, 1776.96353, 247.67080, 0.00000, 0.00000, 0.00000, 0.00000], + [4970.42889, 0.00000, 14.28755, 2885.24173, 1820.94535, 249.95426, 0.00000, 0.00000, 0.00000, 0.00000], + [5044.24933, 0.00000, 14.52396, 2911.85491, 1865.64411, 252.22635, 0.00000, 0.00000, 0.00000, 0.00000], + [5118.74120, 0.00000, 14.76191, 2938.43567, 1911.05584, 254.48779, 0.00000, 0.00000, 0.00000, 0.00000], + [5193.90327, 0.00000, 15.00109, 2964.98689, 1957.17632, 256.73897, 0.00000, 0.00000, 0.00000, 0.00000], + [5269.72440, 0.00000, 15.24128, 2991.50390, 2003.99958, 258.97965, 0.00000, 0.00000, 0.00000, 0.00000], + [5346.16451, 0.00000, 15.48174, 3017.95737, 2051.51664, 261.20876, 0.00000, 0.00000, 0.00000, 0.00000], + [5423.17037, 0.00000, 15.72168, 3044.30739, 2099.71659, 263.42471, 0.00000, 0.00000, 0.00000, 0.00000], + [5500.69146, 0.00000, 15.96048, 3070.51724, 2148.58788, 265.62586, 0.00000, 0.00000, 0.00000, 0.00000], + [5578.70692, 0.00000, 16.19784, 3096.57572, 2198.12176, 267.81160, 0.00000, 0.00000, 0.00000, 0.00000], + [5657.18672, 0.00000, 16.43364, 3122.46534, 2248.30692, 269.98082, 0.00000, 0.00000, 0.00000, 0.00000], + [5736.05888, 0.00000, 16.66779, 3148.13496, 2299.12556, 272.13057, 0.00000, 0.00000, 0.00000, 0.00000], + [5815.23808, 0.00000, 16.90025, 3173.52337, 2350.55718, 274.25728, 0.00000, 0.00000, 0.00000, 0.00000], + [5894.65704, 0.00000, 17.13109, 3198.58449, 2402.58342, 276.35803, 0.00000, 0.00000, 0.00000, 0.00000], + [5974.28702, 0.00000, 17.36026, 3223.30280, 2455.19229, 278.43168, 0.00000, 0.00000, 0.00000, 0.00000], + [6054.11935, 0.00000, 17.58787, 3247.68046, 2508.37334, 280.47767, 0.00000, 0.00000, 0.00000, 0.00000], + [6134.13467, 0.00000, 17.81440, 3271.71389, 2562.11186, 282.49452, 0.00000, 0.00000, 0.00000, 0.00000], + [6214.32057, 0.00000, 18.04046, 3295.40651, 2616.39280, 284.48080, 0.00000, 0.00000, 0.00000, 0.00000], + [6294.67271, 0.00000, 18.26660, 3318.76742, 2671.20309, 286.43561, 0.00000, 0.00000, 0.00000, 0.00000]] + +# Population in Countries with <0.96 gender partiy in completing upper secondary education, by IPCC Region, REF2_population_scenario (millions) +# Population_Tables!O61:X108 +ref2_low_edu_list = [ + ['World', 'OECD90', 'Eastern Europe', 'Asia (Sans Japan)', 'Middle East and Africa', 'Latin America', 'China', 'India', 'EU', 'USA'], + [0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000], + [3104.47059, 0.00000, 8.48186, 2065.81780, 852.00259, 178.16835, 0.00000, 0.00000, 0.00000, 0.00000], + [3157.87084, 0.00000, 8.66946, 2092.57300, 876.10862, 180.51975, 0.00000, 0.00000, 0.00000, 0.00000], + [3211.30766, 0.00000, 8.85812, 2118.97437, 900.63206, 182.84313, 0.00000, 0.00000, 0.00000, 0.00000], + [3264.76518, 0.00000, 9.04672, 2145.00457, 925.57677, 185.13711, 0.00000, 0.00000, 0.00000, 0.00000], + [3318.25114, 0.00000, 9.23406, 2170.65849, 950.95757, 187.40103, 0.00000, 0.00000, 0.00000, 0.00000], + [3371.76847, 0.00000, 9.41913, 2195.92908, 976.78637, 189.63390, 0.00000, 0.00000, 0.00000, 0.00000], + [3425.28557, 0.00000, 9.60148, 2220.79237, 1003.05767, 191.83405, 0.00000, 0.00000, 0.00000, 0.00000], + [3478.77262, 0.00000, 9.78092, 2245.22595, 1029.76640, 193.99934, 0.00000, 0.00000, 0.00000, 0.00000], + [3532.24074, 0.00000, 9.95717, 2269.22863, 1056.92708, 196.12787, 0.00000, 0.00000, 0.00000, 0.00000], + [3585.71316, 0.00000, 10.13005, 2292.80580, 1084.55961, 198.21770, 0.00000, 0.00000, 0.00000, 0.00000], + [3639.20392, 0.00000, 10.29952, 2315.95853, 1112.67872, 200.26714, 0.00000, 0.00000, 0.00000, 0.00000], + [3692.70437, 0.00000, 10.46547, 2338.67720, 1141.28675, 202.27495, 0.00000, 0.00000, 0.00000, 0.00000], + [3746.19506, 0.00000, 10.62803, 2360.94646, 1170.38044, 204.24013, 0.00000, 0.00000, 0.00000, 0.00000], + [3799.66619, 0.00000, 10.78779, 2382.75504, 1199.96176, 206.16160, 0.00000, 0.00000, 0.00000, 0.00000], + [3853.10608, 0.00000, 10.94556, 2404.09065, 1230.03146, 208.03841, 0.00000, 0.00000, 0.00000, 0.00000], + [3906.50103, 0.00000, 11.10204, 2424.94118, 1260.58802, 209.86979, 0.00000, 0.00000, 0.00000, 0.00000], + [3959.84065, 0.00000, 11.25742, 2445.30062, 1291.62773, 211.65488, 0.00000, 0.00000, 0.00000, 0.00000], + [4013.10831, 0.00000, 11.41193, 2465.15923, 1323.14393, 213.39321, 0.00000, 0.00000, 0.00000, 0.00000], + [4066.27568, 0.00000, 11.56632, 2484.49702, 1355.12731, 215.08503, 0.00000, 0.00000, 0.00000, 0.00000], + [4119.30900, 0.00000, 11.72150, 2503.29046, 1387.56614, 216.73090, 0.00000, 0.00000, 0.00000, 0.00000], + [4172.17921, 0.00000, 11.87814, 2521.52214, 1420.44772, 218.33121, 0.00000, 0.00000, 0.00000, 0.00000], + [4224.86340, 0.00000, 12.03645, 2539.17960, 1453.76163, 219.88573, 0.00000, 0.00000, 0.00000, 0.00000], + [4277.34792, 0.00000, 12.19636, 2556.26285, 1487.49472, 221.39399, 0.00000, 0.00000, 0.00000, 0.00000], + [4329.62380, 0.00000, 12.35787, 2572.78277, 1521.62736, 222.85580, 0.00000, 0.00000, 0.00000, 0.00000], + [4381.68639, 0.00000, 12.52081, 2588.75763, 1556.13703, 224.27092, 0.00000, 0.00000, 0.00000, 0.00000], + [4433.52631, 0.00000, 12.68498, 2604.19966, 1591.00258, 225.63910, 0.00000, 0.00000, 0.00000, 0.00000], + [4485.13066, 0.00000, 12.85032, 2619.11179, 1626.20838, 226.96017, 0.00000, 0.00000, 0.00000, 0.00000], + [4536.47563, 0.00000, 13.01656, 2633.48566, 1661.73955, 228.23386, 0.00000, 0.00000, 0.00000, 0.00000], + [4587.52794, 0.00000, 13.18285, 2647.30893, 1697.57640, 229.45976, 0.00000, 0.00000, 0.00000, 0.00000], + [4638.24828, 0.00000, 13.34810, 2660.56442, 1733.69837, 230.63739, 0.00000, 0.00000, 0.00000, 0.00000], + [4688.60419, 0.00000, 13.51141, 2673.24003, 1770.08642, 231.76633, 0.00000, 0.00000, 0.00000, 0.00000], + [4738.57322, 0.00000, 13.67245, 2685.33108, 1806.72343, 232.84627, 0.00000, 0.00000, 0.00000, 0.00000], + [4788.14492, 0.00000, 13.83102, 2696.84193, 1843.59496, 233.87701, 0.00000, 0.00000, 0.00000, 0.00000], + [4837.31373, 0.00000, 13.98669, 2707.78058, 1880.68803, 234.85843, 0.00000, 0.00000, 0.00000, 0.00000], + [4886.07986, 0.00000, 14.13900, 2718.15927, 1917.99112, 235.79048, 0.00000, 0.00000, 0.00000, 0.00000], + [4934.43967, 0.00000, 14.28761, 2727.98702, 1955.49202, 236.67302, 0.00000, 0.00000, 0.00000, 0.00000], + [4982.38243, 0.00000, 14.43231, 2737.26795, 1993.17616, 237.50601, 0.00000, 0.00000, 0.00000, 0.00000], + [5029.89046, 0.00000, 14.57306, 2745.99994, 2031.02828, 238.28918, 0.00000, 0.00000, 0.00000, 0.00000], + [5076.94541, 0.00000, 14.70994, 2754.17866, 2069.03481, 239.02200, 0.00000, 0.00000, 0.00000, 0.00000], + [5123.52646, 0.00000, 14.84321, 2761.79715, 2107.18230, 239.70380, 0.00000, 0.00000, 0.00000, 0.00000], + [5169.61579, 0.00000, 14.97308, 2768.85153, 2145.45707, 240.33411, 0.00000, 0.00000, 0.00000, 0.00000], + [5215.20349, 0.00000, 15.09957, 2775.34612, 2183.84488, 240.91292, 0.00000, 0.00000, 0.00000, 0.00000], + [5260.28197, 0.00000, 15.22279, 2781.28761, 2222.33114, 241.44043, 0.00000, 0.00000, 0.00000, 0.00000], + [5304.83924, 0.00000, 15.34313, 2786.67810, 2260.90125, 241.91676, 0.00000, 0.00000, 0.00000, 0.00000], + [5348.86356, 0.00000, 15.46109, 2791.51990, 2299.54044, 242.34214, 0.00000, 0.00000, 0.00000, 0.00000], + [5392.34612, 0.00000, 15.57707, 2795.81825, 2338.23390, 242.71689, 0.00000, 0.00000, 0.00000, 0.00000]] + +# Table 2: REF2, Electricity Generation TAM (TWh) +# Electricity_cluster!B26:K73 +ref2_tam_list = [ + ['World', 'OECD90', 'Eastern Europe', 'Asia (Sans Japan)', 'Middle East and Africa', 'Latin America', 'China', 'India', 'EU', 'USA'], + [22548.00000, 9630.94132, 2021.81456, 8068.09850, 1750.27240, 1681.57391, 5262.77320, 1324.87968, 3379.55071, 4226.08258], + [23915.29474, 9686.06712, 2046.08149, 8518.24480, 1813.43945, 1729.37357, 5577.46645, 1407.75811, 3402.87973, 4238.15940], + [24739.34640, 9726.59905, 2070.42874, 8971.48190, 1887.43392, 1782.38592, 5868.27237, 1508.56127, 3423.02929, 4238.12779], + [25546.28067, 9770.88424, 2095.77922, 9418.25671, 1964.77842, 1837.98642, 6148.15200, 1613.15158, 3443.15125, 4240.90633], + [26336.89072, 9818.79572, 2122.08509, 9858.95275, 2045.58829, 1896.13291, 6417.38657, 1721.48637, 3463.30080, 4246.39976], + [27111.96969, 9870.20653, 2149.29851, 10293.95356, 2129.97886, 1956.78323, 6676.25733, 1833.52292, 3483.53313, 4254.51283], + [27872.31074, 9924.98972, 2177.37163, 10723.64264, 2218.06547, 2019.89524, 6925.04552, 1949.21857, 3503.90343, 4265.15027], + [28618.70702, 9983.01832, 2206.25661, 11148.40352, 2309.96345, 2085.42679, 7164.03237, 2068.53061, 3524.46690, 4278.21684], + [29351.95169, 10044.16537, 2235.90560, 11568.61971, 2405.78813, 2153.33573, 7393.49912, 2191.41636, 3545.27873, 4293.61727], + [30072.83791, 10108.30392, 2266.27077, 11984.67474, 2505.65485, 2223.57990, 7613.72702, 2317.83312, 3566.39411, 4311.25631], + [30782.15882, 10175.30699, 2297.30426, 12396.95213, 2609.67894, 2296.11715, 7824.99730, 2447.73821, 3587.86825, 4331.03871], + [31480.70758, 10245.04764, 2328.95824, 12805.83539, 2717.97573, 2370.90533, 8027.59121, 2581.08893, 3609.75633, 4352.86921], + [32169.27735, 10317.39891, 2361.18485, 13211.70805, 2830.66056, 2447.90230, 8221.78998, 2717.84260, 3632.11354, 4376.65255], + [32848.66128, 10392.23382, 2393.93626, 13614.95362, 2947.84876, 2527.06589, 8407.87486, 2857.95652, 3654.99508, 4402.29347], + [33519.65253, 10469.42543, 2427.16462, 14015.95562, 3069.65567, 2608.35396, 8586.12709, 3001.38800, 3678.45614, 4429.69673], + [34183.04424, 10548.84677, 2460.82209, 14415.09758, 3196.19661, 2691.72436, 8756.82789, 3148.09436, 3702.55192, 4458.76706], + [34839.62958, 10630.37088, 2494.86082, 14812.76302, 3327.58693, 2777.13494, 8920.25852, 3298.03290, 3727.33762, 4489.40921], + [35490.20169, 10713.87080, 2529.23298, 15209.33545, 3463.94195, 2864.54354, 9076.70022, 3451.16094, 3752.86841, 4521.52793], + [36135.55373, 10799.21958, 2563.89071, 15605.19839, 3605.37701, 2953.90802, 9226.43422, 3607.43578, 3779.19950, 4555.02795], + [36776.47886, 10886.29024, 2598.78617, 16000.73536, 3752.00744, 3045.18622, 9369.74177, 3766.81473, 3806.38608, 4589.81402], + [37413.77023, 10974.95584, 2633.87152, 16396.32989, 3903.94858, 3138.33599, 9506.90409, 3929.25510, 3834.48334, 4625.79089], + [38048.22099, 11065.08941, 2669.09891, 16792.36549, 4061.31575, 3233.31518, 9638.20245, 4094.71421, 3863.54649, 4662.86330], + [38680.62430, 11156.56399, 2704.42051, 17189.22569, 4224.22430, 3330.08164, 9763.91807, 4263.14936, 3893.63070, 4700.93599], + [39311.77332, 11249.25262, 2739.78846, 17587.29399, 4392.78956, 3428.59321, 9884.33219, 4434.51785, 3924.79118, 4739.91371], + [39942.46119, 11343.02835, 2775.15493, 17986.95393, 4567.12685, 3528.80776, 9999.72605, 4608.77701, 3957.08311, 4779.70121], + [40573.48107, 11437.76420, 2810.47206, 18388.58902, 4747.35152, 3630.68312, 10110.38090, 4785.88414, 3990.56170, 4820.20321], + [41205.62612, 11533.33323, 2845.69203, 18792.58278, 4933.57890, 3734.17715, 10216.57798, 4965.79655, 4025.28213, 4861.32448], + [41839.68949, 11629.60846, 2880.76697, 19199.31873, 5125.92432, 3839.24769, 10318.59852, 5148.47155, 4061.29960, 4902.96975], + [42476.46433, 11726.46295, 2915.64905, 19609.18039, 5324.50311, 3945.85259, 10416.72376, 5333.86645, 4098.66931, 4945.04377], + [43116.74380, 11823.76973, 2950.29042, 20022.55128, 5529.43060, 4053.94970, 10511.23495, 5521.93856, 4137.44643, 4987.45129], + [43761.32106, 11921.40184, 2984.64325, 20439.81493, 5740.82214, 4163.49688, 10602.41332, 5712.64519, 4177.68618, 5030.09703], + [44410.98925, 12019.23231, 3018.65968, 20861.35484, 5958.79306, 4274.45196, 10690.54011, 5905.94365, 4219.44374, 5072.88576], + [45066.54153, 12117.13420, 3052.29187, 21287.55454, 6183.45868, 4386.77280, 10775.89657, 6101.79125, 4262.77431, 5115.72222], + [45728.77106, 12214.98054, 3085.49198, 21718.79755, 6414.93434, 4500.41725, 10858.76393, 6300.14529, 4307.73308, 5158.51114], + [46398.47098, 12312.64437, 3118.21217, 22155.46740, 6653.33538, 4615.34315, 10939.42343, 6500.96309, 4354.37524, 5201.15727], + [47076.43447, 12409.99873, 3150.40458, 22597.94759, 6898.77713, 4731.50836, 11018.15632, 6704.20196, 4402.75599, 5243.56536], + [47763.45466, 12506.91666, 3182.02139, 23046.62165, 7151.37491, 4848.87072, 11095.24383, 6909.81921, 4452.93051, 5285.64015], + [48460.32471, 12603.27120, 3213.01473, 23501.87309, 7411.24408, 4967.38809, 11170.96721, 7117.77215, 4504.95402, 5327.28639], + [49167.83778, 12698.93539, 3243.33678, 23964.08545, 7678.49995, 5087.01830, 11245.60769, 7328.01808, 4558.88169, 5368.40881], + [49886.78702, 12793.78227, 3272.93968, 24433.64223, 7953.25787, 5207.71922, 11319.44651, 7540.51431, 4614.76872, 5408.91217], + [50617.96559, 12887.68488, 3301.77559, 24910.92696, 8235.63316, 5329.44868, 11392.76492, 7755.21817, 4672.67030, 5448.70121], + [51362.16663, 12980.51625, 3329.79667, 25396.32316, 8525.74117, 5452.16454, 11465.84415, 7972.08695, 4732.64164, 5487.68066], + [52120.18332, 13072.14944, 3356.95508, 25890.21435, 8823.69721, 5575.82465, 11538.96544, 8191.07796, 4794.73791, 5525.75528], + [52892.80878, 13162.45748, 3383.20296, 26392.98404, 9129.61663, 5700.38686, 11612.41004, 8412.14852, 4859.01432, 5562.82981], + [53680.83620, 13251.31340, 3408.49248, 26905.01576, 9443.61477, 5825.80901, 11686.45918, 8635.25594, 4925.52606, 5598.80900], + [54485.05871, 13338.59025, 3432.77580, 27426.69302, 9765.80695, 5952.04895, 11761.39410, 8860.35752, 4994.32832, 5633.59758], + [55306.26947, 13424.16108, 3456.00506, 27958.39935, 10096.30850, 6079.06453, 11837.49604, 9087.41057, 5065.47630, 5667.10030]] + From 30cabdfa1fbe23be0c8e66b9dadbf1d4908aa203 Mon Sep 17 00:00:00 2001 From: Sunishchal Date: Sun, 6 Sep 2020 05:50:33 -0700 Subject: [PATCH 02/28] Testing TAM output from solarpvutil, commenting due to discrepancy --- solution/healthandeducation/__init__.py | 13 +++++++++++++ solution/healthandeducation/test_electricity.py | 10 ++++++++++ 2 files changed, 23 insertions(+) create mode 100644 solution/healthandeducation/test_electricity.py diff --git a/solution/healthandeducation/__init__.py b/solution/healthandeducation/__init__.py index b71d9ca70..1746d2d81 100644 --- a/solution/healthandeducation/__init__.py +++ b/solution/healthandeducation/__init__.py @@ -8,6 +8,11 @@ import numpy as np import pandas as pd +# import sys +# sys.path.append('c:\\Users\\sunishchal.dev\\Documents\\solutions') + +# import solarpvutil + DATADIR = pathlib.Path(__file__).parents[2].joinpath('data') THISDIR = pathlib.Path(__file__).parents[0] @@ -77,6 +82,8 @@ def __init__(self, scenario=None): # Table 2: REF2, Electricity Generation TAM (TWh) # Electricity_cluster!B26:K73 + # obj = solarpvutil.Scenario() # Not using electricity TAM output due to slight discrepancy in Asia values + # self.ref2_tam = obj.tm.ref_tam_per_region() self.ref2_tam = pd.DataFrame(ref2_tam_list[1:], columns=ref2_tam_list[0], index=list(range(2014, 2061)), dtype=np.float64) @@ -169,6 +176,12 @@ def __init__(self, scenario=None): # Electricity_cluster!W77:AD124 self.change_elec_gen = change_elec_gen + # Table 7: Difference in FUNCTIONAL & IMPLEMENTATION UNITS between REF1 and REF2 populations in LLDC+HighNRR+HighED + # CONVENTIONAL + addl_func_units_highed = pd.DataFrame(None, + columns=['Additional Functional Units in REF2 vs REF2 (TWh)', 'Annual Functional Units Increase (TWh)', 'Change in TAM (%)', 'Annual Implementation Units Increase + Replacement (TW)'], + index=list(range(2014, 2061)), dtype=np.float64) + # TABLE 1: Current TAM Mix current_tam_mix_list = [ diff --git a/solution/healthandeducation/test_electricity.py b/solution/healthandeducation/test_electricity.py new file mode 100644 index 000000000..3bba2c7f9 --- /dev/null +++ b/solution/healthandeducation/test_electricity.py @@ -0,0 +1,10 @@ +import sys +sys.path.append('c:\\Users\\sunishchal.dev\\Documents\\solutions\\solution') + +import healthandeducation as he + +h = he.Scenario() + +print(h.ref2_tam.tail()) +print(h.ref1_tam_all_regions.tail()) +print(h.change_elec_gen.tail()) \ No newline at end of file From 81fbfd4c9b16279ebe3a3d0b444c68619271d77f Mon Sep 17 00:00:00 2001 From: Sunishchal Date: Sat, 12 Sep 2020 01:11:57 -0700 Subject: [PATCH 03/28] Modified folder structure and added CSV data files --- solution/health_and_education/__init__.py | 23 + .../data/ref1_low_edu_gender_parity.csv | 48 ++ .../data/ref1_population.csv | 48 ++ .../data/ref2_low_edu_gender_parity.csv | 48 ++ .../data/ref2_population.csv | 48 ++ .../electricity_cluster.py | 259 ++++++++++ solution/healthandeducation/__init__.py | 460 ------------------ .../healthandeducation/test_electricity.py | 10 - 8 files changed, 474 insertions(+), 470 deletions(-) create mode 100644 solution/health_and_education/__init__.py create mode 100644 solution/health_and_education/data/ref1_low_edu_gender_parity.csv create mode 100644 solution/health_and_education/data/ref1_population.csv create mode 100644 solution/health_and_education/data/ref2_low_edu_gender_parity.csv create mode 100644 solution/health_and_education/data/ref2_population.csv create mode 100644 solution/health_and_education/electricity_cluster.py delete mode 100644 solution/healthandeducation/__init__.py delete mode 100644 solution/healthandeducation/test_electricity.py diff --git a/solution/health_and_education/__init__.py b/solution/health_and_education/__init__.py new file mode 100644 index 000000000..9e4468e70 --- /dev/null +++ b/solution/health_and_education/__init__.py @@ -0,0 +1,23 @@ +"""Health & Education solution model + Excel filename: CORE_PopulationChange_29Jan2020 (version 1.4).xlsx +""" +import pathlib + +import numpy as np +import pandas as pd + +# import solarpvutil +import electricity_cluster + +DATADIR = pathlib.Path(__file__).parents[0].joinpath('data') +THISDIR = pathlib.Path(__file__).parents[0] + + +class Scenario: + name = name + # solution_category = solution_category + + def __init__(self, scenario=None): + + self.elec = electricity_cluster.Scenario() + diff --git a/solution/health_and_education/data/ref1_low_edu_gender_parity.csv b/solution/health_and_education/data/ref1_low_edu_gender_parity.csv new file mode 100644 index 000000000..493b174bf --- /dev/null +++ b/solution/health_and_education/data/ref1_low_edu_gender_parity.csv @@ -0,0 +1,48 @@ +Year,World,OECD90,Eastern Europe,Asia (Sans Japan),Middle East and Africa,Latin America,China,India,EU,USA +2014,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +2015,3104.47059,0.0,8.48186,2065.8178,852.00259,178.16835,0.0,0.0,0.0,0.0 +2016,3161.44344,0.0,8.6802,2095.03147,876.99695,180.73482,0.0,0.0,0.0,0.0 +2017,3220.03211,0.0,8.88431,2124.97121,902.809,183.3676,0.0,0.0,0.0,0.0 +2018,3280.01976,0.0,9.09242,2155.4722,929.40282,186.05232,0.0,0.0,0.0,0.0 +2019,3341.07264,0.0,9.30224,2186.2827,956.72112,188.76657,0.0,0.0,0.0,0.0 +2020,3402.9354,0.0,9.51196,2217.20758,984.72307,191.4928,0.0,0.0,0.0,0.0 +2021,3465.51278,0.0,9.72091,2248.17352,1013.39323,194.22513,0.0,0.0,0.0,0.0 +2022,3528.83717,0.0,9.92908,2279.19598,1042.74746,196.96466,0.0,0.0,0.0,0.0 +2023,3592.92607,0.0,10.13609,2310.26903,1072.81245,199.70851,0.0,0.0,0.0,0.0 +2024,3657.83624,0.0,10.34174,2341.41128,1103.62806,202.45516,0.0,0.0,0.0,0.0 +2025,3723.5835,0.0,10.5459,2372.61663,1135.21914,205.20184,0.0,0.0,0.0,0.0 +2026,3790.16283,0.0,10.74844,2403.87092,1167.59705,207.94643,0.0,0.0,0.0,0.0 +2027,3857.46641,0.0,10.9493,2435.09384,1200.74062,210.68266,0.0,0.0,0.0,0.0 +2028,3925.2866,0.0,11.14859,2466.1362,1234.60293,213.39888,0.0,0.0,0.0,0.0 +2029,3993.35721,0.0,11.34656,2496.81047,1269.11927,216.08091,0.0,0.0,0.0,0.0 +2030,4061.48558,0.0,11.54352,2526.98012,1304.24345,218.71849,0.0,0.0,0.0,0.0 +2031,4129.59718,0.0,11.73953,2556.5916,1339.95944,221.30662,0.0,0.0,0.0,0.0 +2032,4197.73264,0.0,11.935,2585.66899,1376.28164,223.84701,0.0,0.0,0.0,0.0 +2033,4265.96225,0.0,12.13112,2614.25436,1413.23206,226.34472,0.0,0.0,0.0,0.0 +2034,4334.41009,0.0,12.32938,2642.42615,1450.84617,228.80839,0.0,0.0,0.0,0.0 +2035,4403.18004,0.0,12.53094,2670.25277,1489.15146,231.24487,0.0,0.0,0.0,0.0 +2036,4472.28136,0.0,12.73618,2697.73783,1528.15208,233.65528,0.0,0.0,0.0,0.0 +2037,4541.71837,0.0,12.9451,2724.8905,1567.84374,236.03903,0.0,0.0,0.0,0.0 +2038,4611.58966,0.0,13.15806,2751.79605,1608.23606,238.39949,0.0,0.0,0.0,0.0 +2039,4682.0159,0.0,13.37532,2778.56113,1649.33899,240.74046,0.0,0.0,0.0,0.0 +2040,4753.08948,0.0,13.59698,2805.26766,1691.15979,243.06505,0.0,0.0,0.0,0.0 +2041,4824.84801,0.0,13.82315,2831.9486,1733.70139,245.37486,0.0,0.0,0.0,0.0 +2042,4897.29233,0.0,14.0536,2858.6044,1776.96353,247.6708,0.0,0.0,0.0,0.0 +2043,4970.42889,0.0,14.28755,2885.24173,1820.94535,249.95426,0.0,0.0,0.0,0.0 +2044,5044.24933,0.0,14.52396,2911.85491,1865.64411,252.22635,0.0,0.0,0.0,0.0 +2045,5118.7412,0.0,14.76191,2938.43567,1911.05584,254.48779,0.0,0.0,0.0,0.0 +2046,5193.90327,0.0,15.00109,2964.98689,1957.17632,256.73897,0.0,0.0,0.0,0.0 +2047,5269.7244,0.0,15.24128,2991.5039,2003.99958,258.97965,0.0,0.0,0.0,0.0 +2048,5346.16451,0.0,15.48174,3017.95737,2051.51664,261.20876,0.0,0.0,0.0,0.0 +2049,5423.17037,0.0,15.72168,3044.30739,2099.71659,263.42471,0.0,0.0,0.0,0.0 +2050,5500.69146,0.0,15.96048,3070.51724,2148.58788,265.62586,0.0,0.0,0.0,0.0 +2051,5578.70692,0.0,16.19784,3096.57572,2198.12176,267.8116,0.0,0.0,0.0,0.0 +2052,5657.18672,0.0,16.43364,3122.46534,2248.30692,269.98082,0.0,0.0,0.0,0.0 +2053,5736.05888,0.0,16.66779,3148.13496,2299.12556,272.13057,0.0,0.0,0.0,0.0 +2054,5815.23808,0.0,16.90025,3173.52337,2350.55718,274.25728,0.0,0.0,0.0,0.0 +2055,5894.65704,0.0,17.13109,3198.58449,2402.58342,276.35803,0.0,0.0,0.0,0.0 +2056,5974.28702,0.0,17.36026,3223.3028,2455.19229,278.43168,0.0,0.0,0.0,0.0 +2057,6054.11935,0.0,17.58787,3247.68046,2508.37334,280.47767,0.0,0.0,0.0,0.0 +2058,6134.13467,0.0,17.8144,3271.71389,2562.11186,282.49452,0.0,0.0,0.0,0.0 +2059,6214.32057,0.0,18.04046,3295.40651,2616.3928,284.4808,0.0,0.0,0.0,0.0 +2060,6294.67271,0.0,18.2666,3318.76742,2671.20309,286.43561,0.0,0.0,0.0,0.0 diff --git a/solution/health_and_education/data/ref1_population.csv b/solution/health_and_education/data/ref1_population.csv new file mode 100644 index 000000000..0c4f92d36 --- /dev/null +++ b/solution/health_and_education/data/ref1_population.csv @@ -0,0 +1,48 @@ +Year,World,OECD90,Eastern Europe,Asia (Sans Japan),Middle East and Africa,Latin America,China,India,EU,USA +2014,7349.4721,929.27447,407.26543,3957.23614,1421.2991,634.39696,1376.04894,1311.05053,738.44207,321.77363 +2015,7349.4721,929.27447,407.26543,3957.23614,1421.2991,634.39696,1376.04894,1311.05053,738.44207,321.77363 +2016,7436.87553,932.98356,407.76256,3997.60036,1456.99548,641.53357,1382.03581,1328.33174,738.66684,324.11007 +2017,7525.57132,936.64552,408.13764,4038.22818,1493.77952,648.78045,1387.53123,1346.24485,738.76532,326.45235 +2018,7615.15654,940.23746,408.38598,4078.85703,1531.57068,656.10539,1392.45791,1364.65105,738.72382,328.79433 +2019,7705.05663,943.7163,408.51214,4119.13221,1570.23805,663.45793,1396.73688,1383.32427,738.5237,331.12408 +2020,7794.83701,947.05113,408.52045,4158.78543,1609.68202,670.79798,1400.31454,1402.0908,738.15343,333.43229 +2021,7884.32713,950.24158,408.4041,4197.69154,1649.87687,678.11303,1403.15315,1420.90183,737.61047,335.71825 +2022,7973.57998,953.30379,408.15896,4235.87072,1690.84245,685.40406,1405.26334,1439.78526,736.9049,337.98396 +2023,8062.65101,956.24165,407.79768,4273.37667,1732.57583,692.65919,1406.70593,1458.72913,736.05378,340.22541 +2024,8151.67722,959.06165,407.33887,4310.32492,1775.08386,699.86792,1407.5748,1477.73702,735.08089,342.43789 +2025,8240.73751,961.76867,406.79832,4346.78656,1818.36488,707.01908,1407.94727,1496.79674,734.0059,344.61727 +2026,8329.83301,964.364,406.18208,4382.76325,1862.41853,714.10516,1407.84261,1515.89426,732.83581,346.7617 +2027,8418.84153,966.84648,405.49364,4418.17013,1907.21781,721.11347,1407.26714,1534.97087,731.57399,348.86935 +2028,8507.57937,969.21588,404.74371,4452.89309,1952.7044,728.02229,1406.2719,1553.91809,730.23226,350.93621 +2029,8595.80845,971.47142,403.94397,4486.78247,1998.80421,734.80639,1404.91436,1572.60094,728.82308,352.95787 +2030,8683.36509,973.61287,403.10469,4519.7331,2045.46704,741.4474,1403.24039,1590.92081,727.35638,354.93113 +2031,8770.18454,975.64161,402.23198,4551.70732,2092.66837,747.93527,1401.27287,1608.83977,725.83887,356.8543 +2032,8856.33181,977.55957,401.33138,4582.74008,2140.42916,754.27163,1399.02158,1626.3736,724.27351,358.72765 +2033,8941.93799,979.36778,400.4115,4612.89128,2188.80223,760.46519,1396.50051,1643.54794,722.66122,360.55277 +2034,9027.20128,981.06739,399.48118,4642.25569,2237.86573,766.5313,1393.71812,1660.41336,721.00069,362.33245 +2035,9112.2797,982.65999,398.54706,4670.91108,2287.6793,772.48227,1390.67752,1677.01608,719.29074,364.06913 +2036,9197.21086,984.14744,397.61388,4698.87248,2338.25724,778.31983,1387.38911,1693.35827,717.53314,365.76405 +2037,9281.99269,985.53249,396.68256,4726.14354,2389.59096,784.04315,1383.84809,1709.45156,715.72891,367.4179 +2038,9366.69854,986.81887,395.75072,4752.77934,2441.68994,789.65968,1380.02124,1725.36678,713.87455,369.03215 +2039,9451.40531,988.01093,394.81348,4778.8435,2494.55933,795.17807,1375.86196,1741.19345,711.96499,370.60839 +2040,9536.17204,989.11278,393.86679,4804.38497,2548.20211,800.60539,1371.33365,1757.00124,709.99618,372.14854 +2041,9621.03717,990.12662,392.91082,4829.43304,2602.62125,805.94543,1366.42996,1772.81742,707.96744,373.65385 +2042,9706.01075,991.05521,391.94586,4853.99271,2657.81694,811.20003,1361.15238,1788.6447,705.87876,375.12681 +2043,9791.08359,991.90379,390.96795,4878.05675,2713.78353,816.37157,1355.48244,1804.49598,703.72771,376.5721 +2044,9876.22866,992.67835,389.97202,4901.60485,2770.51176,821.46169,1349.40047,1820.37611,701.5115,377.99539 +2045,9961.42218,993.3836,388.95422,4924.62206,2827.99069,826.47161,1342.89522,1836.28576,699.22835,379.40119 +2046,10046.66459,994.02413,387.91326,4947.11302,2886.21171,831.40249,1335.96496,1852.23013,696.87863,380.79271 +2047,10131.95498,994.60116,386.84928,4969.08724,2945.16235,836.25496,1328.62106,1868.20578,694.46344,382.17095 +2048,10217.26309,995.11199,385.76178,4990.53891,3004.82166,841.02875,1320.88389,1884.19046,691.98308,383.5355 +2049,10302.54974,995.55182,384.65072,5011.45973,3065.16449,845.72297,1312.78215,1900.15253,689.4381,384.88481 +2050,10387.78138,995.91818,383.51642,5031.84353,3126.16688,850.33637,1304.34353,1916.06242,686.8301,386.21835 +2051,10472.95119,996.21243,382.35903,5051.69741,3187.81348,854.86884,1295.5838,1931.91201,684.1611,387.53661 +2052,10558.04989,996.43982,381.17931,5071.02454,3250.08738,859.31883,1286.52095,1947.68674,681.43502,388.84231 +2053,10643.03968,996.60677,379.97926,5089.81136,3312.96072,863.68157,1277.18933,1963.34207,678.65802,390.13969 +2054,10727.87591,996.72148,378.76146,5108.03962,3376.40241,867.95094,1267.62865,1978.82401,675.83769,391.43405 +2055,10812.52912,996.79117,377.5284,5125.70173,3440.38571,872.12211,1257.87463,1994.09152,672.98112,392.7294 +2056,10896.99478,996.81983,376.28187,5142.80541,3504.8939,876.19378,1247.94803,2009.13046,670.09318,394.02695 +2057,10981.28851,996.8106,375.02359,5159.37406,3569.91453,880.16573,1237.8687,2023.94178,667.17847,395.32627 +2058,11065.42944,996.76891,373.75611,5175.43721,3635.43145,884.03576,1227.66979,2038.52034,664.24372,396.62742 +2059,11149.44702,996.70044,372.4822,5191.033,3701.4297,887.80168,1217.38672,2052.86665,661.29618,397.92981 +2060,11233.37324,996.61026,371.20461,5206.19887,3767.89712,891.46238,1207.04805,2066.98603,658.34259,399.23256 diff --git a/solution/health_and_education/data/ref2_low_edu_gender_parity.csv b/solution/health_and_education/data/ref2_low_edu_gender_parity.csv new file mode 100644 index 000000000..c76653964 --- /dev/null +++ b/solution/health_and_education/data/ref2_low_edu_gender_parity.csv @@ -0,0 +1,48 @@ +Year,World,OECD90,Eastern Europe,Asia (Sans Japan),Middle East and Africa,Latin America,China,India,EU,USA +2014,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +2015,3104.47059,0.0,8.48186,2065.8178,852.00259,178.16835,0.0,0.0,0.0,0.0 +2016,3157.87084,0.0,8.66946,2092.573,876.10862,180.51975,0.0,0.0,0.0,0.0 +2017,3211.30766,0.0,8.85812,2118.97437,900.63206,182.84313,0.0,0.0,0.0,0.0 +2018,3264.76518,0.0,9.04672,2145.00457,925.57677,185.13711,0.0,0.0,0.0,0.0 +2019,3318.25114,0.0,9.23406,2170.65849,950.95757,187.40103,0.0,0.0,0.0,0.0 +2020,3371.76847,0.0,9.41913,2195.92908,976.78637,189.6339,0.0,0.0,0.0,0.0 +2021,3425.28557,0.0,9.60148,2220.79237,1003.05767,191.83405,0.0,0.0,0.0,0.0 +2022,3478.77262,0.0,9.78092,2245.22595,1029.7664,193.99934,0.0,0.0,0.0,0.0 +2023,3532.24074,0.0,9.95717,2269.22863,1056.92708,196.12787,0.0,0.0,0.0,0.0 +2024,3585.71316,0.0,10.13005,2292.8058,1084.55961,198.2177,0.0,0.0,0.0,0.0 +2025,3639.20392,0.0,10.29952,2315.95853,1112.67872,200.26714,0.0,0.0,0.0,0.0 +2026,3692.70437,0.0,10.46547,2338.6772,1141.28675,202.27495,0.0,0.0,0.0,0.0 +2027,3746.19506,0.0,10.62803,2360.94646,1170.38044,204.24013,0.0,0.0,0.0,0.0 +2028,3799.66619,0.0,10.78779,2382.75504,1199.96176,206.1616,0.0,0.0,0.0,0.0 +2029,3853.10608,0.0,10.94556,2404.09065,1230.03146,208.03841,0.0,0.0,0.0,0.0 +2030,3906.50103,0.0,11.10204,2424.94118,1260.58802,209.86979,0.0,0.0,0.0,0.0 +2031,3959.84065,0.0,11.25742,2445.30062,1291.62773,211.65488,0.0,0.0,0.0,0.0 +2032,4013.10831,0.0,11.41193,2465.15923,1323.14393,213.39321,0.0,0.0,0.0,0.0 +2033,4066.27568,0.0,11.56632,2484.49702,1355.12731,215.08503,0.0,0.0,0.0,0.0 +2034,4119.309,0.0,11.7215,2503.29046,1387.56614,216.7309,0.0,0.0,0.0,0.0 +2035,4172.17921,0.0,11.87814,2521.52214,1420.44772,218.33121,0.0,0.0,0.0,0.0 +2036,4224.8634,0.0,12.03645,2539.1796,1453.76163,219.88573,0.0,0.0,0.0,0.0 +2037,4277.34792,0.0,12.19636,2556.26285,1487.49472,221.39399,0.0,0.0,0.0,0.0 +2038,4329.6238,0.0,12.35787,2572.78277,1521.62736,222.8558,0.0,0.0,0.0,0.0 +2039,4381.68639,0.0,12.52081,2588.75763,1556.13703,224.27092,0.0,0.0,0.0,0.0 +2040,4433.52631,0.0,12.68498,2604.19966,1591.00258,225.6391,0.0,0.0,0.0,0.0 +2041,4485.13066,0.0,12.85032,2619.11179,1626.20838,226.96017,0.0,0.0,0.0,0.0 +2042,4536.47563,0.0,13.01656,2633.48566,1661.73955,228.23386,0.0,0.0,0.0,0.0 +2043,4587.52794,0.0,13.18285,2647.30893,1697.5764,229.45976,0.0,0.0,0.0,0.0 +2044,4638.24828,0.0,13.3481,2660.56442,1733.69837,230.63739,0.0,0.0,0.0,0.0 +2045,4688.60419,0.0,13.51141,2673.24003,1770.08642,231.76633,0.0,0.0,0.0,0.0 +2046,4738.57322,0.0,13.67245,2685.33108,1806.72343,232.84627,0.0,0.0,0.0,0.0 +2047,4788.14492,0.0,13.83102,2696.84193,1843.59496,233.87701,0.0,0.0,0.0,0.0 +2048,4837.31373,0.0,13.98669,2707.78058,1880.68803,234.85843,0.0,0.0,0.0,0.0 +2049,4886.07986,0.0,14.139,2718.15927,1917.99112,235.79048,0.0,0.0,0.0,0.0 +2050,4934.43967,0.0,14.28761,2727.98702,1955.49202,236.67302,0.0,0.0,0.0,0.0 +2051,4982.38243,0.0,14.43231,2737.26795,1993.17616,237.50601,0.0,0.0,0.0,0.0 +2052,5029.89046,0.0,14.57306,2745.99994,2031.02828,238.28918,0.0,0.0,0.0,0.0 +2053,5076.94541,0.0,14.70994,2754.17866,2069.03481,239.022,0.0,0.0,0.0,0.0 +2054,5123.52646,0.0,14.84321,2761.79715,2107.1823,239.7038,0.0,0.0,0.0,0.0 +2055,5169.61579,0.0,14.97308,2768.85153,2145.45707,240.33411,0.0,0.0,0.0,0.0 +2056,5215.20349,0.0,15.09957,2775.34612,2183.84488,240.91292,0.0,0.0,0.0,0.0 +2057,5260.28197,0.0,15.22279,2781.28761,2222.33114,241.44043,0.0,0.0,0.0,0.0 +2058,5304.83924,0.0,15.34313,2786.6781,2260.90125,241.91676,0.0,0.0,0.0,0.0 +2059,5348.86356,0.0,15.46109,2791.5199,2299.54044,242.34214,0.0,0.0,0.0,0.0 +2060,5392.34612,0.0,15.57707,2795.81825,2338.2339,242.71689,0.0,0.0,0.0,0.0 diff --git a/solution/health_and_education/data/ref2_population.csv b/solution/health_and_education/data/ref2_population.csv new file mode 100644 index 000000000..ce4088f19 --- /dev/null +++ b/solution/health_and_education/data/ref2_population.csv @@ -0,0 +1,48 @@ +Year,World,OECD90,Eastern Europe,Asia (Sans Japan),Middle East and Africa,Latin America,China,India,EU,USA +2014,7349.4721,929.27447,407.26543,3957.23614,1421.2991,634.39696,1376.04894,1311.05053,738.44207,321.77363 +2015,7349.4721,929.27447,407.26543,3957.23614,1421.2991,634.39696,1376.04894,1311.05053,738.44207,321.77363 +2016,7429.0469,932.21212,407.45046,3993.32073,1455.38354,640.68005,1380.8099,1326.80158,738.13933,323.80581 +2017,7506.4945,934.7676,407.37911,4027.8101,1489.83721,646.70047,1384.55993,1342.51271,737.48253,325.71103 +2018,7581.94776,936.97487,407.07621,4060.75475,1524.66317,652.47877,1387.34872,1358.13772,736.50331,327.50498 +2019,7655.70393,938.88198,406.5918,4092.30245,1559.87564,658.05206,1389.28982,1373.60507,735.25383,329.21096 +2020,7727.98938,940.52724,405.96404,4122.56705,1595.48335,663.4477,1390.47496,1388.85892,733.77575,330.8462 +2021,7798.80624,941.93026,405.19582,4151.52645,1631.48388,668.66984,1390.90742,1403.88269,732.08221,332.41769 +2022,7868.06903,943.0941,404.27486,4179.12802,1667.864,673.70806,1390.57096,1418.68092,730.17184,333.92166 +2023,7935.83328,944.02159,403.20904,4205.43332,1704.61036,678.55897,1389.52427,1433.24267,728.05662,335.3519 +2024,8002.16539,944.71002,402.0067,4230.52591,1741.70657,683.21621,1387.84076,1447.56046,725.74731,336.69791 +2025,8067.13745,945.16269,400.67737,4254.47802,1779.14258,687.6768,1385.58675,1461.62523,723.25708,337.95337 +2026,8130.7737,945.38522,399.2281,4277.30957,1816.91113,691.93967,1382.79074,1475.4246,720.59558,339.11737 +2027,8193.14307,945.39902,397.67033,4299.04193,1855.01963,696.01217,1379.48547,1488.94304,717.78146,340.19725 +2028,8254.41645,945.24169,396.02342,4319.7504,1893.49113,699.90981,1375.74637,1502.1652,714.84753,341.20478 +2029,8314.80408,944.96007,394.3102,4339.5228,1932.358,703.65301,1371.65981,1515.07492,711.83288,342.15572 +2030,8374.46188,944.58933,392.54952,4358.42275,1971.64391,707.25638,1367.2919,1527.65799,708.76781,343.06193 +2031,8433.46137,944.14678,390.75183,4376.4879,2011.34884,710.72602,1362.68155,1539.90705,705.66891,343.92786 +2032,8491.78908,943.63083,388.92263,4393.71195,2051.4654,714.05827,1357.83484,1551.81449,702.53891,344.75221 +2033,8549.40555,943.03358,387.06925,4410.05739,2091.99969,717.24564,1352.7414,1563.36648,699.37626,345.53383 +2034,8606.23002,942.33805,385.19729,4425.46137,2132.95742,720.2759,1347.37308,1574.54824,696.17264,346.26933 +2035,8662.19575,941.53143,383.31137,4439.87582,2174.33746,723.13968,1341.70792,1585.34985,692.922,346.95606 +2036,8717.29157,940.61393,381.41603,4453.29188,2216.13458,725.83516,1335.75157,1595.76373,689.62606,347.59488 +2037,8771.51987,939.59072,379.51468,4465.71963,2258.33081,728.36403,1329.51323,1605.7925,686.28973,348.18691 +2038,8824.83704,938.45902,377.60858,4477.15076,2300.8944,730.72429,1322.97653,1615.44985,682.91268,348.7297 +2039,8877.19081,937.21549,375.69756,4487.57885,2343.78464,732.91426,1316.11947,1624.75632,679.49396,349.21999 +2040,8928.53173,935.85684,373.78066,4496.99717,2386.96465,734.93242,1308.92527,1633.72767,676.03149,349.65532 +2041,8978.83217,934.38097,371.85874,4505.40248,2430.41227,736.77771,1301.38902,1642.36934,672.52447,350.03486 +2042,9028.05926,932.78524,369.93007,4512.78696,2474.10809,738.4489,1293.51221,1650.67962,668.96892,350.35901 +2043,9076.15169,931.06514,367.98721,4519.13481,2518.02014,739.94438,1285.2926,1658.65883,665.35528,350.62807 +2044,9123.03978,929.21549,366.02024,4524.42735,2562.11423,741.26247,1276.72972,1666.30529,661.67138,350.84278 +2045,9168.66694,927.23193,364.02109,4528.65275,2606.35895,742.40221,1267.82422,1673.61877,657.90737,351.00378 +2046,9213.00344,925.115,361.98722,4531.80876,2650.72927,743.36319,1258.57761,1680.59958,654.06081,351.11249 +2047,9256.03432,922.86374,359.91768,4533.90353,2695.20322,744.14616,1248.99236,1687.25222,650.13048,351.16917 +2048,9297.73877,920.47113,357.80801,4534.94992,2739.75668,744.75304,1239.07241,1693.58529,646.10954,351.17223 +2049,9338.10174,917.92853,355.65362,4534.96658,2784.36647,745.18655,1228.82293,1699.60963,641.99059,351.11934 +2050,9377.11399,915.23136,353.45131,4533.97137,2829.01083,745.44912,1218.25063,1705.33254,637.76923,351.00981 +2051,9414.77452,912.37976,351.19962,4531.98379,2873.66898,745.54238,1207.36871,1710.75814,633.44478,350.84386 +2052,9451.0863,909.38082,348.89906,4529.01687,2918.32212,745.46743,1196.18811,1715.88335,629.02114,350.62519 +2053,9486.05373,906.24636,346.55133,4525.07653,2962.95366,745.22584,1184.71221,1720.69922,624.50499,350.36097 +2054,9519.6855,902.99235,344.15935,4520.16601,3007.54865,744.81914,1172.94273,1725.19268,619.90583,350.06054 +2055,9551.99895,899.63305,341.72617,4514.29804,3052.09257,744.24913,1160.88878,1729.35406,615.23296,349.73145 +2056,9583.00809,896.17543,339.25362,4507.4917,3096.56941,743.51792,1148.56052,1733.18387,610.49187,349.37648 +2057,9612.74763,892.62584,336.74406,4499.78531,3140.96437,742.62805,1135.98562,1736.68515,605.68893,348.99659 +2058,9641.28447,888.99776,334.20199,4491.23616,3185.26616,741.5824,1123.21312,1739.85419,600.83602,348.59511 +2059,9668.70217,885.30621,331.63285,4481.91392,3229.46502,740.38418,1110.30397,1742.6869,595.94692,348.17518 +2060,9695.07315,881.56408,329.0418,4471.88005,3273.55069,739.03653,1097.30865,1745.18241,591.03419,347.73901 diff --git a/solution/health_and_education/electricity_cluster.py b/solution/health_and_education/electricity_cluster.py new file mode 100644 index 000000000..0a90566ed --- /dev/null +++ b/solution/health_and_education/electricity_cluster.py @@ -0,0 +1,259 @@ +"""Health & Education solution model for Electricity Cluster + Excel filename: CORE_PopulationChange_29Jan2020 (version 1.4).xlsx + Excel sheet name: Electricity_cluster +""" +import pathlib + +import numpy as np +import pandas as pd + +# import sys +# sys.path.append('c:\\Users\\sunishchal.dev\\Documents\\solutions') + +# import solarpvutil + +DATADIR = pathlib.Path(__file__).parents[0].joinpath('data') +THISDIR = pathlib.Path(__file__).parents[0] + +name = 'Health and Education - Electricity Cluster' +# solution_category = ac.SOLUTION_CATEGORY.REDUCTION #TODO: Confirm this is a reduction solution + +# Assumptions: +# % impact of educational attainment on uptake of Family Planning: +fixed_weighting_factor = None +pct_impact = 0.50 +use_fixed_weight = 'N' +## TODO: Move above block to advanced_controls.py after we figure out if it varies by scenario + +# Regions included as LLDC+HighNRR: +lldc_high_nrr_config = { + 'OECD90': 'N', + 'Eastern Europe': 'N', + 'Asia (Sans Japan)': 'Y', + 'Middle East and Africa': 'Y', + 'Latin America': 'N' +} +lldc_high_nrr_regions_y = dict(filter(lambda x: x[1] == 'Y', lldc_high_nrr_config.items())).keys() +lldc_high_nrr_regions_n = dict(filter(lambda x: x[1] == 'N', lldc_high_nrr_config.items())).keys() + + +class Scenario: + name = name + # solution_category = solution_category + + def __init__(self, scenario=None): + + # Population scenarios + + # REF1 Population + # Population_Tables!C2:L49 + self.ref1_population = pd.read_csv(DATADIR.joinpath('ref1_population.csv'), + index_col='Year', dtype=np.float64) + self.ref1_population.index = self.ref1_population.index.astype(int) + + # REF 2 Population Table + # Population_Tables!O2:X49 + self.ref2_population = pd.read_csv(DATADIR.joinpath('ref2_population.csv'), + index_col='Year', dtype=np.float64) + self.ref2_population.index = self.ref2_population.index.astype(int) + + # Population in Countries with <0.96 gender partiy in completing upper secondary education, by IPCC Region, REF1_population_scenario (millions) + # Population_Tables!C61:L108 + self.ref1_low_edu = pd.read_csv(DATADIR.joinpath('ref1_low_edu_gender_parity.csv'), + index_col='Year', dtype=np.float64) + self.ref1_low_edu.index = self.ref1_low_edu.index.astype(int) + + # Population in Countries with <0.96 gender partiy in completing upper secondary education, by IPCC Region, REF2_population_scenario (millions) + # Population_Tables!O61:X108 + self.ref2_low_edu = pd.read_csv(DATADIR.joinpath('ref2_low_edu_gender_parity.csv'), + index_col='Year', dtype=np.float64) + self.ref2_low_edu.index = self.ref2_low_edu.index.astype(int) + + # TABLE 1: Current TAM Mix + self.current_tam_mix = pd.DataFrame(current_tam_mix_list, + columns=['2018', 'Include in SOL?', 'Include in CONV?'], + index=['Coal', + 'Natural gas', + 'Nuclear', + 'Oil', + 'Hydroelectric', + 'Solar Photovoltaic', + 'Wave and Tidal', + 'Wind Onshore', + 'Wind Offshore', + 'Biomass and Waste', + 'Concentrated Solar Power', + 'Geothermal']) + + # Table 2: REF2, Electricity Generation TAM (TWh) + # Electricity_cluster!B26:K73 + # obj = solarpvutil.Scenario() # Not using electricity TAM output due to slight discrepancy in Asia values + # self.ref2_tam = obj.tm.ref_tam_per_region() + self.ref2_tam = pd.DataFrame(ref2_tam_list[1:], + columns=ref2_tam_list[0], + index=list(range(2014, 2061)), dtype=np.float64) + + # Table 3: REF1 ,Electricity Generation TAM (TWh) + # (a) FOR POPULATIONS IN REGIONS WITH LOW EDUCATIONAL ATTAINMENT ONLY! + ref1_tam_low_edu = (self.ref2_tam / self.ref2_population) * self.ref1_low_edu + ref1_tam_low_edu.loc[:, 'Asia (Sans Japan)'] = ((self.ref2_tam.loc[:, 'Asia (Sans Japan)'] - self.ref2_tam.loc[:, 'China']) / self.ref2_population.loc[:, 'Asia (Sans Japan)']) * self.ref1_low_edu.loc[:, 'Asia (Sans Japan)'] + ref1_tam_low_edu.loc[:, 'World'] = ref1_tam_low_edu.loc[:, ref1_tam_low_edu.columns[1:6]].sum(axis=1) + + # Electricity_cluster!M26:W73 + self.ref1_tam_low_edu = ref1_tam_low_edu + + # Table 3: REF1 ,Electricity Generation TAM (TWh) + # (b) FOR REGIONS WITH HIGHER EDUCATIONAL ATTAINMENT + ref1_tam_high_edu = ((self.ref2_tam / self.ref2_population) * self.ref1_population) - ref1_tam_low_edu + + # Electricity_cluster!@26:AI73 + self.ref1_tam_high_edu = ref1_tam_high_edu + + # Table 3: REF1 ,Electricity Generation TAM (TWh) + # (c) FOR ALL REGIONS + ref1_tam_all_regions = ref1_tam_low_edu + ref1_tam_high_edu + + # Electricity_cluster!AL26:AU73 + self.ref1_tam_all_regions = ref1_tam_all_regions + + # Table 4: Total REF2 Electricity Generation by Economic Development Status (TWh) + ref2_elec_gen = pd.DataFrame(None, + columns=['LLDC+HighNRR', 'China', 'MDC + LAC + EE', 'Total Electricity Demand in Countries with Higher Educational Attainment (TWh)', 'Total Electricity Demand in Countries with Higher Educational Attainment (TWh) % LLDC'], + index=list(range(2014, 2061)), dtype=np.float64) + + ref2_elec_gen.loc[:, 'LLDC+HighNRR'] = self.ref2_tam.loc[:, lldc_high_nrr_regions_y].sum(axis=1) - self.ref2_tam.loc[:, 'China'] + ref2_elec_gen.loc[:, 'China'] = self.ref2_tam.loc[:, 'China'] + ref2_elec_gen.loc[:, 'MDC + LAC + EE'] = self.ref2_tam.loc[:, lldc_high_nrr_regions_n].sum(axis=1) + if lldc_high_nrr_config['Asia (Sans Japan)'] == 'N': + ref2_elec_gen.loc[:, 'MDC + LAC + EE'] = ref2_elec_gen.loc[:, 'MDC + LAC + EE'] - self.ref2_tam.loc[:, 'China'] + ref2_elec_gen.loc[:, 'Total Electricity Demand in Countries with Higher Educational Attainment (TWh)'] = ref2_elec_gen.loc[:, ['LLDC+HighNRR', 'China', 'MDC + LAC + EE']].sum(axis=1) + ref2_elec_gen.loc[:, 'Total Electricity Demand in Countries with Higher Educational Attainment (TWh) % LLDC'] = ref2_elec_gen.loc[:, 'LLDC+HighNRR'] / ref2_elec_gen.loc[:, 'Total Electricity Demand in Countries with Higher Educational Attainment (TWh)'] + + # Electricity_cluster!B77:F124 + self.ref2_elec_gen = ref2_elec_gen + + # Table 5: Total REF1 Electricity Generation by Economic Development Status (TWh) + ref1_elec_gen = pd.DataFrame(None, + columns=['LLDC with low educational attainment, excluding China', 'MDC + EE + LAC with low educational attainment, excluding China', 'China', 'LLDC with higher educational attainment, excluding China', 'MDC + EE + LAC with higher educational attainment', 'Total Electricity Demand in Countries with Low Educational Attainment (TWh), exluding China', 'Total Electricity Demand in Countries with Low Educational Attainment (TWh), exluding China % LLDC', 'Total Electricity Demand in Countries with Higher Educational Attainment (TWh)', 'Total Electricity Demand in Countries with Higher Educational Attainment (TWh) % LLDC', 'Total Electricity Demand (TWh)', 'Total Electricity Demand (TWh) % LLDC'], + index=list(range(2014, 2061)), dtype=np.float64) + + ref1_elec_gen.loc[:, 'LLDC with low educational attainment, excluding China'] = ref1_tam_low_edu.loc[:, lldc_high_nrr_regions_y].sum(axis=1) - ref1_tam_low_edu.loc[:, 'China'] + ref1_elec_gen.loc[:, 'MDC + EE + LAC with low educational attainment, excluding China'] = ref1_tam_low_edu.loc[:, lldc_high_nrr_regions_n].sum(axis=1) + if lldc_high_nrr_config['Asia (Sans Japan)'] == 'N': + ref1_elec_gen.loc[:, 'MDC + LAC + EE'] = ref1_elec_gen.loc[:, 'MDC + LAC + EE'] - self.ref1_tam_low_edu.loc[:, 'China'] + ref1_elec_gen.loc[:, 'China'] = ref1_tam_high_edu.loc[:, 'China'] + + ref1_elec_gen.loc[:, 'LLDC with higher educational attainment, excluding China'] = ref1_tam_high_edu.loc[:, lldc_high_nrr_regions_y].sum(axis=1) - ref1_tam_high_edu.loc[:, 'China'] + ref1_elec_gen.loc[:, 'MDC + EE + LAC with higher educational attainment'] = ref1_tam_high_edu.loc[:, lldc_high_nrr_regions_n].sum(axis=1) + if lldc_high_nrr_config['Asia (Sans Japan)'] == 'N': + ref1_elec_gen.loc[:, 'MDC + EE + LAC with higher educational attainment'] = ref1_elec_gen.loc[:, 'MDC + EE + LAC with higher educational attainment'] - self.ref1_tam_high_edu.loc[:, 'China'] + + ref1_elec_gen.loc[:, 'Total Electricity Demand in Countries with Low Educational Attainment (TWh), exluding China'] = ref1_elec_gen.loc[:, 'LLDC with low educational attainment, excluding China'] + ref1_elec_gen.loc[:, 'MDC + EE + LAC with low educational attainment, excluding China'] + ref1_elec_gen.loc[:, 'Total Electricity Demand in Countries with Low Educational Attainment (TWh), exluding China % LLDC'] = ref1_elec_gen.loc[:, 'LLDC with low educational attainment, excluding China'] / ref1_elec_gen.loc[:, 'Total Electricity Demand in Countries with Low Educational Attainment (TWh), exluding China'] + + ref1_elec_gen.loc[:, 'Total Electricity Demand in Countries with Higher Educational Attainment (TWh)'] = ref1_elec_gen.loc[:, 'China'] + ref1_elec_gen.loc[:, 'LLDC with higher educational attainment, excluding China'] + ref1_elec_gen.loc[:, 'MDC + EE + LAC with higher educational attainment'] + ref1_elec_gen.loc[:, 'Total Electricity Demand in Countries with Higher Educational Attainment (TWh) % LLDC'] = ref1_elec_gen.loc[:, 'LLDC with higher educational attainment, excluding China'] / ref1_elec_gen.loc[:, 'Total Electricity Demand in Countries with Higher Educational Attainment (TWh)'] + + ref1_elec_gen.loc[:, 'Total Electricity Demand (TWh)'] = ref1_elec_gen.loc[:, 'Total Electricity Demand in Countries with Low Educational Attainment (TWh), exluding China'] + ref1_elec_gen.loc[:, 'Total Electricity Demand in Countries with Higher Educational Attainment (TWh)'] + ref1_elec_gen.loc[:, 'Total Electricity Demand (TWh) % LLDC'] = ref1_elec_gen.loc[:, 'Total Electricity Demand in Countries with Low Educational Attainment (TWh), exluding China'] / ref1_elec_gen.loc[:, 'Total Electricity Demand (TWh)'] + + # Electricity_cluster!H77:T124 + self.ref1_elec_gen = ref1_elec_gen + + # Table 6: Change in Electricity Generation by MDC vs. LLDC Regions, REF1-REF2 (TWh) + change_elec_gen = pd.DataFrame(None, + columns=['LLDC', 'China', 'MDC + EE +LAC', 'Total change in REF1-REF2', '% LLDC with higher educational attainment', '% LLDC with Low Educational Attainment', '% LLDC', '% MDC + LAC + EE + China'], + index=list(range(2014, 2061)), dtype=np.float64) + + change_elec_gen.loc[:, 'LLDC'] = (ref1_elec_gen.loc[:, 'LLDC with low educational attainment, excluding China'] + ref1_elec_gen.loc[:, 'LLDC with higher educational attainment, excluding China']) - ref2_elec_gen.loc[:, 'LLDC+HighNRR'] + change_elec_gen.loc[:, 'China'] = ref1_elec_gen.loc[:, 'China'] - ref2_elec_gen.loc[:, 'China'] + change_elec_gen.loc[:, 'MDC + EE +LAC'] = (ref1_elec_gen.loc[:, 'MDC + EE + LAC with higher educational attainment'] + ref1_elec_gen.loc[:, 'MDC + EE + LAC with low educational attainment, excluding China']) - ref2_elec_gen.loc[:, 'MDC + LAC + EE'] + change_elec_gen.loc[[2014, 2015], 'MDC + EE +LAC'] = 0 + + change_elec_gen.loc[:, 'Total change in REF1-REF2'] = change_elec_gen.loc[:, 'LLDC'] + change_elec_gen.loc[:, 'China'] + change_elec_gen.loc[:, 'MDC + EE +LAC'] + + change_elec_gen.loc[:, '% LLDC with higher educational attainment'] = (change_elec_gen.loc[:, 'LLDC'] * (ref1_elec_gen.loc[:, 'LLDC with higher educational attainment, excluding China'] / (ref1_elec_gen.loc[:, 'LLDC with low educational attainment, excluding China'] + ref1_elec_gen.loc[:, 'LLDC with higher educational attainment, excluding China']))) / change_elec_gen.loc[:, 'Total change in REF1-REF2'] + + change_elec_gen.loc[:, '% LLDC with Low Educational Attainment'] = (change_elec_gen.loc[:, 'LLDC'] / change_elec_gen.loc[:, 'Total change in REF1-REF2']) * (ref1_elec_gen.loc[:, 'LLDC with low educational attainment, excluding China'] / (ref1_elec_gen.loc[:, 'LLDC with higher educational attainment, excluding China'] + ref1_elec_gen.loc[:, 'LLDC with low educational attainment, excluding China'])) + change_elec_gen.loc[:, '% LLDC'] = (change_elec_gen.loc[:, 'LLDC'] / change_elec_gen.loc[:, 'Total change in REF1-REF2']) + change_elec_gen.loc[:, '% MDC + LAC + EE + China'] = (change_elec_gen.loc[:, 'China'] + change_elec_gen.loc[:, 'MDC + EE +LAC']) / change_elec_gen.loc[:, 'Total change in REF1-REF2'] + + # Electricity_cluster!W77:AD124 + self.change_elec_gen = change_elec_gen + + # Table 7: Difference in FUNCTIONAL & IMPLEMENTATION UNITS between REF1 and REF2 populations in LLDC+HighNRR+HighED + # CONVENTIONAL + addl_func_units_highed = pd.DataFrame(None, + columns=['Additional Functional Units in REF2 vs REF2 (TWh)', 'Annual Functional Units Increase (TWh)', 'Change in TAM (%)', 'Annual Implementation Units Increase + Replacement (TW)'], + index=list(range(2014, 2061)), dtype=np.float64) + + +# TABLE 1: Current TAM Mix +current_tam_mix_list = [ + [39.28, 'N', 'Y'], + [22.72, 'N', 'Y'], + [10.45, 'N', 'N'], + [3.41, 'N', 'Y'], + [15.52, 'N', 'Y'], + [1.73, 'N', 'N'], + [0.00, 'N', 'N'], + [4.36, 'N', 'N'], + [0.24, 'N', 'N'], + [1.90, 'N', 'N'], + [0.05, 'N', 'N'], + [0.34, 'N', 'N']] + + +# Table 2: REF2, Electricity Generation TAM (TWh) +# Electricity_cluster!B26:K73 +ref2_tam_list = [ + ['World', 'OECD90', 'Eastern Europe', 'Asia (Sans Japan)', 'Middle East and Africa', 'Latin America', 'China', 'India', 'EU', 'USA'], + [22548.00000, 9630.94132, 2021.81456, 8068.09850, 1750.27240, 1681.57391, 5262.77320, 1324.87968, 3379.55071, 4226.08258], + [23915.29474, 9686.06712, 2046.08149, 8518.24480, 1813.43945, 1729.37357, 5577.46645, 1407.75811, 3402.87973, 4238.15940], + [24739.34640, 9726.59905, 2070.42874, 8971.48190, 1887.43392, 1782.38592, 5868.27237, 1508.56127, 3423.02929, 4238.12779], + [25546.28067, 9770.88424, 2095.77922, 9418.25671, 1964.77842, 1837.98642, 6148.15200, 1613.15158, 3443.15125, 4240.90633], + [26336.89072, 9818.79572, 2122.08509, 9858.95275, 2045.58829, 1896.13291, 6417.38657, 1721.48637, 3463.30080, 4246.39976], + [27111.96969, 9870.20653, 2149.29851, 10293.95356, 2129.97886, 1956.78323, 6676.25733, 1833.52292, 3483.53313, 4254.51283], + [27872.31074, 9924.98972, 2177.37163, 10723.64264, 2218.06547, 2019.89524, 6925.04552, 1949.21857, 3503.90343, 4265.15027], + [28618.70702, 9983.01832, 2206.25661, 11148.40352, 2309.96345, 2085.42679, 7164.03237, 2068.53061, 3524.46690, 4278.21684], + [29351.95169, 10044.16537, 2235.90560, 11568.61971, 2405.78813, 2153.33573, 7393.49912, 2191.41636, 3545.27873, 4293.61727], + [30072.83791, 10108.30392, 2266.27077, 11984.67474, 2505.65485, 2223.57990, 7613.72702, 2317.83312, 3566.39411, 4311.25631], + [30782.15882, 10175.30699, 2297.30426, 12396.95213, 2609.67894, 2296.11715, 7824.99730, 2447.73821, 3587.86825, 4331.03871], + [31480.70758, 10245.04764, 2328.95824, 12805.83539, 2717.97573, 2370.90533, 8027.59121, 2581.08893, 3609.75633, 4352.86921], + [32169.27735, 10317.39891, 2361.18485, 13211.70805, 2830.66056, 2447.90230, 8221.78998, 2717.84260, 3632.11354, 4376.65255], + [32848.66128, 10392.23382, 2393.93626, 13614.95362, 2947.84876, 2527.06589, 8407.87486, 2857.95652, 3654.99508, 4402.29347], + [33519.65253, 10469.42543, 2427.16462, 14015.95562, 3069.65567, 2608.35396, 8586.12709, 3001.38800, 3678.45614, 4429.69673], + [34183.04424, 10548.84677, 2460.82209, 14415.09758, 3196.19661, 2691.72436, 8756.82789, 3148.09436, 3702.55192, 4458.76706], + [34839.62958, 10630.37088, 2494.86082, 14812.76302, 3327.58693, 2777.13494, 8920.25852, 3298.03290, 3727.33762, 4489.40921], + [35490.20169, 10713.87080, 2529.23298, 15209.33545, 3463.94195, 2864.54354, 9076.70022, 3451.16094, 3752.86841, 4521.52793], + [36135.55373, 10799.21958, 2563.89071, 15605.19839, 3605.37701, 2953.90802, 9226.43422, 3607.43578, 3779.19950, 4555.02795], + [36776.47886, 10886.29024, 2598.78617, 16000.73536, 3752.00744, 3045.18622, 9369.74177, 3766.81473, 3806.38608, 4589.81402], + [37413.77023, 10974.95584, 2633.87152, 16396.32989, 3903.94858, 3138.33599, 9506.90409, 3929.25510, 3834.48334, 4625.79089], + [38048.22099, 11065.08941, 2669.09891, 16792.36549, 4061.31575, 3233.31518, 9638.20245, 4094.71421, 3863.54649, 4662.86330], + [38680.62430, 11156.56399, 2704.42051, 17189.22569, 4224.22430, 3330.08164, 9763.91807, 4263.14936, 3893.63070, 4700.93599], + [39311.77332, 11249.25262, 2739.78846, 17587.29399, 4392.78956, 3428.59321, 9884.33219, 4434.51785, 3924.79118, 4739.91371], + [39942.46119, 11343.02835, 2775.15493, 17986.95393, 4567.12685, 3528.80776, 9999.72605, 4608.77701, 3957.08311, 4779.70121], + [40573.48107, 11437.76420, 2810.47206, 18388.58902, 4747.35152, 3630.68312, 10110.38090, 4785.88414, 3990.56170, 4820.20321], + [41205.62612, 11533.33323, 2845.69203, 18792.58278, 4933.57890, 3734.17715, 10216.57798, 4965.79655, 4025.28213, 4861.32448], + [41839.68949, 11629.60846, 2880.76697, 19199.31873, 5125.92432, 3839.24769, 10318.59852, 5148.47155, 4061.29960, 4902.96975], + [42476.46433, 11726.46295, 2915.64905, 19609.18039, 5324.50311, 3945.85259, 10416.72376, 5333.86645, 4098.66931, 4945.04377], + [43116.74380, 11823.76973, 2950.29042, 20022.55128, 5529.43060, 4053.94970, 10511.23495, 5521.93856, 4137.44643, 4987.45129], + [43761.32106, 11921.40184, 2984.64325, 20439.81493, 5740.82214, 4163.49688, 10602.41332, 5712.64519, 4177.68618, 5030.09703], + [44410.98925, 12019.23231, 3018.65968, 20861.35484, 5958.79306, 4274.45196, 10690.54011, 5905.94365, 4219.44374, 5072.88576], + [45066.54153, 12117.13420, 3052.29187, 21287.55454, 6183.45868, 4386.77280, 10775.89657, 6101.79125, 4262.77431, 5115.72222], + [45728.77106, 12214.98054, 3085.49198, 21718.79755, 6414.93434, 4500.41725, 10858.76393, 6300.14529, 4307.73308, 5158.51114], + [46398.47098, 12312.64437, 3118.21217, 22155.46740, 6653.33538, 4615.34315, 10939.42343, 6500.96309, 4354.37524, 5201.15727], + [47076.43447, 12409.99873, 3150.40458, 22597.94759, 6898.77713, 4731.50836, 11018.15632, 6704.20196, 4402.75599, 5243.56536], + [47763.45466, 12506.91666, 3182.02139, 23046.62165, 7151.37491, 4848.87072, 11095.24383, 6909.81921, 4452.93051, 5285.64015], + [48460.32471, 12603.27120, 3213.01473, 23501.87309, 7411.24408, 4967.38809, 11170.96721, 7117.77215, 4504.95402, 5327.28639], + [49167.83778, 12698.93539, 3243.33678, 23964.08545, 7678.49995, 5087.01830, 11245.60769, 7328.01808, 4558.88169, 5368.40881], + [49886.78702, 12793.78227, 3272.93968, 24433.64223, 7953.25787, 5207.71922, 11319.44651, 7540.51431, 4614.76872, 5408.91217], + [50617.96559, 12887.68488, 3301.77559, 24910.92696, 8235.63316, 5329.44868, 11392.76492, 7755.21817, 4672.67030, 5448.70121], + [51362.16663, 12980.51625, 3329.79667, 25396.32316, 8525.74117, 5452.16454, 11465.84415, 7972.08695, 4732.64164, 5487.68066], + [52120.18332, 13072.14944, 3356.95508, 25890.21435, 8823.69721, 5575.82465, 11538.96544, 8191.07796, 4794.73791, 5525.75528], + [52892.80878, 13162.45748, 3383.20296, 26392.98404, 9129.61663, 5700.38686, 11612.41004, 8412.14852, 4859.01432, 5562.82981], + [53680.83620, 13251.31340, 3408.49248, 26905.01576, 9443.61477, 5825.80901, 11686.45918, 8635.25594, 4925.52606, 5598.80900], + [54485.05871, 13338.59025, 3432.77580, 27426.69302, 9765.80695, 5952.04895, 11761.39410, 8860.35752, 4994.32832, 5633.59758], + [55306.26947, 13424.16108, 3456.00506, 27958.39935, 10096.30850, 6079.06453, 11837.49604, 9087.41057, 5065.47630, 5667.10030]] + + diff --git a/solution/healthandeducation/__init__.py b/solution/healthandeducation/__init__.py deleted file mode 100644 index 1746d2d81..000000000 --- a/solution/healthandeducation/__init__.py +++ /dev/null @@ -1,460 +0,0 @@ -"""Health & Education solution model for Electricity Cluster - Excel filename: CORE_PopulationChange_29Jan2020 (version 1.4).xlsx - Excel sheet name: Electricity_cluster -""" - -import pathlib - -import numpy as np -import pandas as pd - -# import sys -# sys.path.append('c:\\Users\\sunishchal.dev\\Documents\\solutions') - -# import solarpvutil - -DATADIR = pathlib.Path(__file__).parents[2].joinpath('data') -THISDIR = pathlib.Path(__file__).parents[0] - -name = 'Health and Education - Electricity Cluster' -# solution_category = ac.SOLUTION_CATEGORY.REDUCTION #TODO: Confirm this is a reduction solution - -# Assumptions: -# % impact of educational attainment on uptake of Family Planning: -fixed_weighting_factor = None -pct_impact = 0.50 -use_fixed_weight = 'N' - -# Regions included as LLDC+HighNRR: -lldc_high_nrr_config = { - 'OECD90': 'N', - 'Eastern Europe': 'N', - 'Asia (Sans Japan)': 'Y', - 'Middle East and Africa': 'Y', - 'Latin America': 'N' -} -lldc_high_nrr_regions_y = dict(filter(lambda x: x[1] == 'Y', lldc_high_nrr_config.items())).keys() -lldc_high_nrr_regions_n = dict(filter(lambda x: x[1] == 'N', lldc_high_nrr_config.items())).keys() - - -class Scenario: - name = name - # solution_category = solution_category - - def __init__(self, scenario=None): - - # Population scenarios - # Population_Tables!C2:L49 - self.ref1_population = pd.DataFrame(ref1_population_list[1:], - columns=ref1_population_list[0], - index=list(range(2014, 2061)), dtype=np.float64) - - # Population_Tables!O2:X49 - self.ref2_population = pd.DataFrame(ref2_population_list[1:], - columns=ref2_population_list[0], - index=list(range(2014, 2061)), dtype=np.float64) - - # Population_Tables!C61:L108 - self.ref1_low_edu = pd.DataFrame(ref1_low_edu_list[1:], - columns=ref1_low_edu_list[0], - index=list(range(2014, 2061)), dtype=np.float64) - - # Population_Tables!O61:X108 - self.ref2_low_edu = pd.DataFrame(ref2_low_edu_list[1:], - columns=ref2_low_edu_list[0], - index=list(range(2014, 2061)), dtype=np.float64) - - # TABLE 1: Current TAM Mix - current_tam_mix = pd.DataFrame(current_tam_mix_list, - columns=['2018', 'Include in SOL?', 'Include in CONV?'], - index=['Coal', - 'Natural gas', - 'Nuclear', - 'Oil', - 'Hydroelectric', - 'Solar Photovoltaic', - 'Wave and Tidal', - 'Wind Onshore', - 'Wind Offshore', - 'Biomass and Waste', - 'Concentrated Solar Power', - 'Geothermal']) - - # Table 2: REF2, Electricity Generation TAM (TWh) - # Electricity_cluster!B26:K73 - # obj = solarpvutil.Scenario() # Not using electricity TAM output due to slight discrepancy in Asia values - # self.ref2_tam = obj.tm.ref_tam_per_region() - self.ref2_tam = pd.DataFrame(ref2_tam_list[1:], - columns=ref2_tam_list[0], - index=list(range(2014, 2061)), dtype=np.float64) - - # Table 3: REF1 ,Electricity Generation TAM (TWh) - # (a) FOR POPULATIONS IN REGIONS WITH LOW EDUCATIONAL ATTAINMENT ONLY! - ref1_tam_low_edu = (self.ref2_tam / self.ref2_population) * self.ref1_low_edu - ref1_tam_low_edu.loc[:, 'Asia (Sans Japan)'] = ((self.ref2_tam.loc[:, 'Asia (Sans Japan)'] - self.ref2_tam.loc[:, 'China']) / self.ref2_population.loc[:, 'Asia (Sans Japan)']) * self.ref1_low_edu.loc[:, 'Asia (Sans Japan)'] - ref1_tam_low_edu.loc[:, 'World'] = ref1_tam_low_edu.loc[:, ref1_tam_low_edu.columns[1:6]].sum(axis=1) - - # Electricity_cluster!M26:W73 - self.ref1_tam_low_edu = ref1_tam_low_edu - - # Table 3: REF1 ,Electricity Generation TAM (TWh) - # (b) FOR REGIONS WITH HIGHER EDUCATIONAL ATTAINMENT - ref1_tam_high_edu = ((self.ref2_tam / self.ref2_population) * self.ref1_population) - ref1_tam_low_edu - - # Electricity_cluster!@26:AI73 - self.ref1_tam_high_edu = ref1_tam_high_edu - - # Table 3: REF1 ,Electricity Generation TAM (TWh) - # (c) FOR ALL REGIONS - ref1_tam_all_regions = ref1_tam_low_edu + ref1_tam_high_edu - - # Electricity_cluster!AL26:AU73 - self.ref1_tam_all_regions = ref1_tam_all_regions - - # Table 4: Total REF2 Electricity Generation by Economic Development Status (TWh) - ref2_elec_gen = pd.DataFrame(None, - columns=['LLDC+HighNRR', 'China', 'MDC + LAC + EE', 'Total Electricity Demand in Countries with Higher Educational Attainment (TWh)', 'Total Electricity Demand in Countries with Higher Educational Attainment (TWh) % LLDC'], - index=list(range(2014, 2061)), dtype=np.float64) - - ref2_elec_gen.loc[:, 'LLDC+HighNRR'] = self.ref2_tam.loc[:, lldc_high_nrr_regions_y].sum(axis=1) - self.ref2_tam.loc[:, 'China'] - ref2_elec_gen.loc[:, 'China'] = self.ref2_tam.loc[:, 'China'] - ref2_elec_gen.loc[:, 'MDC + LAC + EE'] = self.ref2_tam.loc[:, lldc_high_nrr_regions_n].sum(axis=1) - if lldc_high_nrr_config['Asia (Sans Japan)'] == 'N': - ref2_elec_gen.loc[:, 'MDC + LAC + EE'] = ref2_elec_gen.loc[:, 'MDC + LAC + EE'] - self.ref2_tam.loc[:, 'China'] - ref2_elec_gen.loc[:, 'Total Electricity Demand in Countries with Higher Educational Attainment (TWh)'] = ref2_elec_gen.loc[:, ['LLDC+HighNRR', 'China', 'MDC + LAC + EE']].sum(axis=1) - ref2_elec_gen.loc[:, 'Total Electricity Demand in Countries with Higher Educational Attainment (TWh) % LLDC'] = ref2_elec_gen.loc[:, 'LLDC+HighNRR'] / ref2_elec_gen.loc[:, 'Total Electricity Demand in Countries with Higher Educational Attainment (TWh)'] - - # Electricity_cluster!B77:F124 - self.ref2_elec_gen = ref2_elec_gen - - # Table 5: Total REF1 Electricity Generation by Economic Development Status (TWh) - ref1_elec_gen = pd.DataFrame(None, - columns=['LLDC with low educational attainment, excluding China', 'MDC + EE + LAC with low educational attainment, excluding China', 'China', 'LLDC with higher educational attainment, excluding China', 'MDC + EE + LAC with higher educational attainment', 'Total Electricity Demand in Countries with Low Educational Attainment (TWh), exluding China', 'Total Electricity Demand in Countries with Low Educational Attainment (TWh), exluding China % LLDC', 'Total Electricity Demand in Countries with Higher Educational Attainment (TWh)', 'Total Electricity Demand in Countries with Higher Educational Attainment (TWh) % LLDC', 'Total Electricity Demand (TWh)', 'Total Electricity Demand (TWh) % LLDC'], - index=list(range(2014, 2061)), dtype=np.float64) - - ref1_elec_gen.loc[:, 'LLDC with low educational attainment, excluding China'] = ref1_tam_low_edu.loc[:, lldc_high_nrr_regions_y].sum(axis=1) - ref1_tam_low_edu.loc[:, 'China'] - ref1_elec_gen.loc[:, 'MDC + EE + LAC with low educational attainment, excluding China'] = ref1_tam_low_edu.loc[:, lldc_high_nrr_regions_n].sum(axis=1) - if lldc_high_nrr_config['Asia (Sans Japan)'] == 'N': - ref1_elec_gen.loc[:, 'MDC + LAC + EE'] = ref1_elec_gen.loc[:, 'MDC + LAC + EE'] - self.ref1_tam_low_edu.loc[:, 'China'] - ref1_elec_gen.loc[:, 'China'] = ref1_tam_high_edu.loc[:, 'China'] - - ref1_elec_gen.loc[:, 'LLDC with higher educational attainment, excluding China'] = ref1_tam_high_edu.loc[:, lldc_high_nrr_regions_y].sum(axis=1) - ref1_tam_high_edu.loc[:, 'China'] - ref1_elec_gen.loc[:, 'MDC + EE + LAC with higher educational attainment'] = ref1_tam_high_edu.loc[:, lldc_high_nrr_regions_n].sum(axis=1) - if lldc_high_nrr_config['Asia (Sans Japan)'] == 'N': - ref1_elec_gen.loc[:, 'MDC + EE + LAC with higher educational attainment'] = ref1_elec_gen.loc[:, 'MDC + EE + LAC with higher educational attainment'] - self.ref1_tam_high_edu.loc[:, 'China'] - - ref1_elec_gen.loc[:, 'Total Electricity Demand in Countries with Low Educational Attainment (TWh), exluding China'] = ref1_elec_gen.loc[:, 'LLDC with low educational attainment, excluding China'] + ref1_elec_gen.loc[:, 'MDC + EE + LAC with low educational attainment, excluding China'] - ref1_elec_gen.loc[:, 'Total Electricity Demand in Countries with Low Educational Attainment (TWh), exluding China % LLDC'] = ref1_elec_gen.loc[:, 'LLDC with low educational attainment, excluding China'] / ref1_elec_gen.loc[:, 'Total Electricity Demand in Countries with Low Educational Attainment (TWh), exluding China'] - - ref1_elec_gen.loc[:, 'Total Electricity Demand in Countries with Higher Educational Attainment (TWh)'] = ref1_elec_gen.loc[:, 'China'] + ref1_elec_gen.loc[:, 'LLDC with higher educational attainment, excluding China'] + ref1_elec_gen.loc[:, 'MDC + EE + LAC with higher educational attainment'] - ref1_elec_gen.loc[:, 'Total Electricity Demand in Countries with Higher Educational Attainment (TWh) % LLDC'] = ref1_elec_gen.loc[:, 'LLDC with higher educational attainment, excluding China'] / ref1_elec_gen.loc[:, 'Total Electricity Demand in Countries with Higher Educational Attainment (TWh)'] - - ref1_elec_gen.loc[:, 'Total Electricity Demand (TWh)'] = ref1_elec_gen.loc[:, 'Total Electricity Demand in Countries with Low Educational Attainment (TWh), exluding China'] + ref1_elec_gen.loc[:, 'Total Electricity Demand in Countries with Higher Educational Attainment (TWh)'] - ref1_elec_gen.loc[:, 'Total Electricity Demand (TWh) % LLDC'] = ref1_elec_gen.loc[:, 'Total Electricity Demand in Countries with Low Educational Attainment (TWh), exluding China'] / ref1_elec_gen.loc[:, 'Total Electricity Demand (TWh)'] - - # Electricity_cluster!H77:T124 - self.ref1_elec_gen = ref1_elec_gen - - # Table 6: Change in Electricity Generation by MDC vs. LLDC Regions, REF1-REF2 (TWh) - change_elec_gen = pd.DataFrame(None, - columns=['LLDC', 'China', 'MDC + EE +LAC', 'Total change in REF1-REF2', '% LLDC with higher educational attainment', '% LLDC with Low Educational Attainment', '% LLDC', '% MDC + LAC + EE + China'], - index=list(range(2014, 2061)), dtype=np.float64) - - change_elec_gen.loc[:, 'LLDC'] = (ref1_elec_gen.loc[:, 'LLDC with low educational attainment, excluding China'] + ref1_elec_gen.loc[:, 'LLDC with higher educational attainment, excluding China']) - ref2_elec_gen.loc[:, 'LLDC+HighNRR'] - change_elec_gen.loc[:, 'China'] = ref1_elec_gen.loc[:, 'China'] - ref2_elec_gen.loc[:, 'China'] - change_elec_gen.loc[:, 'MDC + EE +LAC'] = (ref1_elec_gen.loc[:, 'MDC + EE + LAC with higher educational attainment'] + ref1_elec_gen.loc[:, 'MDC + EE + LAC with low educational attainment, excluding China']) - ref2_elec_gen.loc[:, 'MDC + LAC + EE'] - change_elec_gen.loc[[2014, 2015], 'MDC + EE +LAC'] = 0 - - change_elec_gen.loc[:, 'Total change in REF1-REF2'] = change_elec_gen.loc[:, 'LLDC'] + change_elec_gen.loc[:, 'China'] + change_elec_gen.loc[:, 'MDC + EE +LAC'] - - change_elec_gen.loc[:, '% LLDC with higher educational attainment'] = (change_elec_gen.loc[:, 'LLDC'] * (ref1_elec_gen.loc[:, 'LLDC with higher educational attainment, excluding China'] / (ref1_elec_gen.loc[:, 'LLDC with low educational attainment, excluding China'] + ref1_elec_gen.loc[:, 'LLDC with higher educational attainment, excluding China']))) / change_elec_gen.loc[:, 'Total change in REF1-REF2'] - - change_elec_gen.loc[:, '% LLDC with Low Educational Attainment'] = (change_elec_gen.loc[:, 'LLDC'] / change_elec_gen.loc[:, 'Total change in REF1-REF2']) * (ref1_elec_gen.loc[:, 'LLDC with low educational attainment, excluding China'] / (ref1_elec_gen.loc[:, 'LLDC with higher educational attainment, excluding China'] + ref1_elec_gen.loc[:, 'LLDC with low educational attainment, excluding China'])) - change_elec_gen.loc[:, '% LLDC'] = (change_elec_gen.loc[:, 'LLDC'] / change_elec_gen.loc[:, 'Total change in REF1-REF2']) - change_elec_gen.loc[:, '% MDC + LAC + EE + China'] = (change_elec_gen.loc[:, 'China'] + change_elec_gen.loc[:, 'MDC + EE +LAC']) / change_elec_gen.loc[:, 'Total change in REF1-REF2'] - - # Electricity_cluster!W77:AD124 - self.change_elec_gen = change_elec_gen - - # Table 7: Difference in FUNCTIONAL & IMPLEMENTATION UNITS between REF1 and REF2 populations in LLDC+HighNRR+HighED - # CONVENTIONAL - addl_func_units_highed = pd.DataFrame(None, - columns=['Additional Functional Units in REF2 vs REF2 (TWh)', 'Annual Functional Units Increase (TWh)', 'Change in TAM (%)', 'Annual Implementation Units Increase + Replacement (TW)'], - index=list(range(2014, 2061)), dtype=np.float64) - - -# TABLE 1: Current TAM Mix -current_tam_mix_list = [ - [39.28, 'N', 'Y'], - [22.72, 'N', 'Y'], - [10.45, 'N', 'N'], - [3.41, 'N', 'Y'], - [15.52, 'N', 'Y'], - [1.73, 'N', 'N'], - [0.00, 'N', 'N'], - [4.36, 'N', 'N'], - [0.24, 'N', 'N'], - [1.90, 'N', 'N'], - [0.05, 'N', 'N'], - [0.34, 'N', 'N']] - -# REF1 Population -# Population_Tables!C2:L49 -ref1_population_list = [ - ['World', 'OECD90', 'Eastern Europe', 'Asia (Sans Japan)', 'Middle East and Africa', 'Latin America', 'China', 'India', 'EU', 'USA'], - [7349.47210, 929.27447, 407.26543, 3957.23614, 1421.29910, 634.39696, 1376.04894, 1311.05053, 738.44207, 321.77363], - [7349.47210, 929.27447, 407.26543, 3957.23614, 1421.29910, 634.39696, 1376.04894, 1311.05053, 738.44207, 321.77363], - [7436.87553, 932.98356, 407.76256, 3997.60036, 1456.99548, 641.53357, 1382.03581, 1328.33174, 738.66684, 324.11007], - [7525.57132, 936.64552, 408.13764, 4038.22818, 1493.77952, 648.78045, 1387.53123, 1346.24485, 738.76532, 326.45235], - [7615.15654, 940.23746, 408.38598, 4078.85703, 1531.57068, 656.10539, 1392.45791, 1364.65105, 738.72382, 328.79433], - [7705.05663, 943.71630, 408.51214, 4119.13221, 1570.23805, 663.45793, 1396.73688, 1383.32427, 738.52370, 331.12408], - [7794.83701, 947.05113, 408.52045, 4158.78543, 1609.68202, 670.79798, 1400.31454, 1402.09080, 738.15343, 333.43229], - [7884.32713, 950.24158, 408.40410, 4197.69154, 1649.87687, 678.11303, 1403.15315, 1420.90183, 737.61047, 335.71825], - [7973.57998, 953.30379, 408.15896, 4235.87072, 1690.84245, 685.40406, 1405.26334, 1439.78526, 736.90490, 337.98396], - [8062.65101, 956.24165, 407.79768, 4273.37667, 1732.57583, 692.65919, 1406.70593, 1458.72913, 736.05378, 340.22541], - [8151.67722, 959.06165, 407.33887, 4310.32492, 1775.08386, 699.86792, 1407.57480, 1477.73702, 735.08089, 342.43789], - [8240.73751, 961.76867, 406.79832, 4346.78656, 1818.36488, 707.01908, 1407.94727, 1496.79674, 734.00590, 344.61727], - [8329.83301, 964.36400, 406.18208, 4382.76325, 1862.41853, 714.10516, 1407.84261, 1515.89426, 732.83581, 346.76170], - [8418.84153, 966.84648, 405.49364, 4418.17013, 1907.21781, 721.11347, 1407.26714, 1534.97087, 731.57399, 348.86935], - [8507.57937, 969.21588, 404.74371, 4452.89309, 1952.70440, 728.02229, 1406.27190, 1553.91809, 730.23226, 350.93621], - [8595.80845, 971.47142, 403.94397, 4486.78247, 1998.80421, 734.80639, 1404.91436, 1572.60094, 728.82308, 352.95787], - [8683.36509, 973.61287, 403.10469, 4519.73310, 2045.46704, 741.44740, 1403.24039, 1590.92081, 727.35638, 354.93113], - [8770.18454, 975.64161, 402.23198, 4551.70732, 2092.66837, 747.93527, 1401.27287, 1608.83977, 725.83887, 356.85430], - [8856.33181, 977.55957, 401.33138, 4582.74008, 2140.42916, 754.27163, 1399.02158, 1626.37360, 724.27351, 358.72765], - [8941.93799, 979.36778, 400.41150, 4612.89128, 2188.80223, 760.46519, 1396.50051, 1643.54794, 722.66122, 360.55277], - [9027.20128, 981.06739, 399.48118, 4642.25569, 2237.86573, 766.53130, 1393.71812, 1660.41336, 721.00069, 362.33245], - [9112.27970, 982.65999, 398.54706, 4670.91108, 2287.67930, 772.48227, 1390.67752, 1677.01608, 719.29074, 364.06913], - [9197.21086, 984.14744, 397.61388, 4698.87248, 2338.25724, 778.31983, 1387.38911, 1693.35827, 717.53314, 365.76405], - [9281.99269, 985.53249, 396.68256, 4726.14354, 2389.59096, 784.04315, 1383.84809, 1709.45156, 715.72891, 367.41790], - [9366.69854, 986.81887, 395.75072, 4752.77934, 2441.68994, 789.65968, 1380.02124, 1725.36678, 713.87455, 369.03215], - [9451.40531, 988.01093, 394.81348, 4778.84350, 2494.55933, 795.17807, 1375.86196, 1741.19345, 711.96499, 370.60839], - [9536.17204, 989.11278, 393.86679, 4804.38497, 2548.20211, 800.60539, 1371.33365, 1757.00124, 709.99618, 372.14854], - [9621.03717, 990.12662, 392.91082, 4829.43304, 2602.62125, 805.94543, 1366.42996, 1772.81742, 707.96744, 373.65385], - [9706.01075, 991.05521, 391.94586, 4853.99271, 2657.81694, 811.20003, 1361.15238, 1788.64470, 705.87876, 375.12681], - [9791.08359, 991.90379, 390.96795, 4878.05675, 2713.78353, 816.37157, 1355.48244, 1804.49598, 703.72771, 376.57210], - [9876.22866, 992.67835, 389.97202, 4901.60485, 2770.51176, 821.46169, 1349.40047, 1820.37611, 701.51150, 377.99539], - [9961.42218, 993.38360, 388.95422, 4924.62206, 2827.99069, 826.47161, 1342.89522, 1836.28576, 699.22835, 379.40119], - [10046.66459, 994.02413, 387.91326, 4947.11302, 2886.21171, 831.40249, 1335.96496, 1852.23013, 696.87863, 380.79271], - [10131.95498, 994.60116, 386.84928, 4969.08724, 2945.16235, 836.25496, 1328.62106, 1868.20578, 694.46344, 382.17095], - [10217.26309, 995.11199, 385.76178, 4990.53891, 3004.82166, 841.02875, 1320.88389, 1884.19046, 691.98308, 383.53550], - [10302.54974, 995.55182, 384.65072, 5011.45973, 3065.16449, 845.72297, 1312.78215, 1900.15253, 689.43810, 384.88481], - [10387.78138, 995.91818, 383.51642, 5031.84353, 3126.16688, 850.33637, 1304.34353, 1916.06242, 686.83010, 386.21835], - [10472.95119, 996.21243, 382.35903, 5051.69741, 3187.81348, 854.86884, 1295.58380, 1931.91201, 684.16110, 387.53661], - [10558.04989, 996.43982, 381.17931, 5071.02454, 3250.08738, 859.31883, 1286.52095, 1947.68674, 681.43502, 388.84231], - [10643.03968, 996.60677, 379.97926, 5089.81136, 3312.96072, 863.68157, 1277.18933, 1963.34207, 678.65802, 390.13969], - [10727.87591, 996.72148, 378.76146, 5108.03962, 3376.40241, 867.95094, 1267.62865, 1978.82401, 675.83769, 391.43405], - [10812.52912, 996.79117, 377.52840, 5125.70173, 3440.38571, 872.12211, 1257.87463, 1994.09152, 672.98112, 392.72940], - [10896.99478, 996.81983, 376.28187, 5142.80541, 3504.89390, 876.19378, 1247.94803, 2009.13046, 670.09318, 394.02695], - [10981.28851, 996.81060, 375.02359, 5159.37406, 3569.91453, 880.16573, 1237.86870, 2023.94178, 667.17847, 395.32627], - [11065.42944, 996.76891, 373.75611, 5175.43721, 3635.43145, 884.03576, 1227.66979, 2038.52034, 664.24372, 396.62742], - [11149.44702, 996.70044, 372.48220, 5191.03300, 3701.42970, 887.80168, 1217.38672, 2052.86665, 661.29618, 397.92981], - [11233.37324, 996.61026, 371.20461, 5206.19887, 3767.89712, 891.46238, 1207.04805, 2066.98603, 658.34259, 399.23256]] - -# REF 2 Population Table -# Population_Tables!O2:X49 -ref2_population_list = [ - ['World', 'OECD90', 'Eastern Europe', 'Asia (Sans Japan)', 'Middle East and Africa', 'Latin America', 'China', 'India', 'EU', 'USA'], - [7349.47210, 929.27447, 407.26543, 3957.23614, 1421.29910, 634.39696, 1376.04894, 1311.05053, 738.44207, 321.77363], - [7349.47210, 929.27447, 407.26543, 3957.23614, 1421.29910, 634.39696, 1376.04894, 1311.05053, 738.44207, 321.77363], - [7429.04690, 932.21212, 407.45046, 3993.32073, 1455.38354, 640.68005, 1380.80990, 1326.80158, 738.13933, 323.80581], - [7506.49450, 934.76760, 407.37911, 4027.81010, 1489.83721, 646.70047, 1384.55993, 1342.51271, 737.48253, 325.71103], - [7581.94776, 936.97487, 407.07621, 4060.75475, 1524.66317, 652.47877, 1387.34872, 1358.13772, 736.50331, 327.50498], - [7655.70393, 938.88198, 406.59180, 4092.30245, 1559.87564, 658.05206, 1389.28982, 1373.60507, 735.25383, 329.21096], - [7727.98938, 940.52724, 405.96404, 4122.56705, 1595.48335, 663.44770, 1390.47496, 1388.85892, 733.77575, 330.84620], - [7798.80624, 941.93026, 405.19582, 4151.52645, 1631.48388, 668.66984, 1390.90742, 1403.88269, 732.08221, 332.41769], - [7868.06903, 943.09410, 404.27486, 4179.12802, 1667.86400, 673.70806, 1390.57096, 1418.68092, 730.17184, 333.92166], - [7935.83328, 944.02159, 403.20904, 4205.43332, 1704.61036, 678.55897, 1389.52427, 1433.24267, 728.05662, 335.35190], - [8002.16539, 944.71002, 402.00670, 4230.52591, 1741.70657, 683.21621, 1387.84076, 1447.56046, 725.74731, 336.69791], - [8067.13745, 945.16269, 400.67737, 4254.47802, 1779.14258, 687.67680, 1385.58675, 1461.62523, 723.25708, 337.95337], - [8130.77370, 945.38522, 399.22810, 4277.30957, 1816.91113, 691.93967, 1382.79074, 1475.42460, 720.59558, 339.11737], - [8193.14307, 945.39902, 397.67033, 4299.04193, 1855.01963, 696.01217, 1379.48547, 1488.94304, 717.78146, 340.19725], - [8254.41645, 945.24169, 396.02342, 4319.75040, 1893.49113, 699.90981, 1375.74637, 1502.16520, 714.84753, 341.20478], - [8314.80408, 944.96007, 394.31020, 4339.52280, 1932.35800, 703.65301, 1371.65981, 1515.07492, 711.83288, 342.15572], - [8374.46188, 944.58933, 392.54952, 4358.42275, 1971.64391, 707.25638, 1367.29190, 1527.65799, 708.76781, 343.06193], - [8433.46137, 944.14678, 390.75183, 4376.48790, 2011.34884, 710.72602, 1362.68155, 1539.90705, 705.66891, 343.92786], - [8491.78908, 943.63083, 388.92263, 4393.71195, 2051.46540, 714.05827, 1357.83484, 1551.81449, 702.53891, 344.75221], - [8549.40555, 943.03358, 387.06925, 4410.05739, 2091.99969, 717.24564, 1352.74140, 1563.36648, 699.37626, 345.53383], - [8606.23002, 942.33805, 385.19729, 4425.46137, 2132.95742, 720.27590, 1347.37308, 1574.54824, 696.17264, 346.26933], - [8662.19575, 941.53143, 383.31137, 4439.87582, 2174.33746, 723.13968, 1341.70792, 1585.34985, 692.92200, 346.95606], - [8717.29157, 940.61393, 381.41603, 4453.29188, 2216.13458, 725.83516, 1335.75157, 1595.76373, 689.62606, 347.59488], - [8771.51987, 939.59072, 379.51468, 4465.71963, 2258.33081, 728.36403, 1329.51323, 1605.79250, 686.28973, 348.18691], - [8824.83704, 938.45902, 377.60858, 4477.15076, 2300.89440, 730.72429, 1322.97653, 1615.44985, 682.91268, 348.72970], - [8877.19081, 937.21549, 375.69756, 4487.57885, 2343.78464, 732.91426, 1316.11947, 1624.75632, 679.49396, 349.21999], - [8928.53173, 935.85684, 373.78066, 4496.99717, 2386.96465, 734.93242, 1308.92527, 1633.72767, 676.03149, 349.65532], - [8978.83217, 934.38097, 371.85874, 4505.40248, 2430.41227, 736.77771, 1301.38902, 1642.36934, 672.52447, 350.03486], - [9028.05926, 932.78524, 369.93007, 4512.78696, 2474.10809, 738.44890, 1293.51221, 1650.67962, 668.96892, 350.35901], - [9076.15169, 931.06514, 367.98721, 4519.13481, 2518.02014, 739.94438, 1285.29260, 1658.65883, 665.35528, 350.62807], - [9123.03978, 929.21549, 366.02024, 4524.42735, 2562.11423, 741.26247, 1276.72972, 1666.30529, 661.67138, 350.84278], - [9168.66694, 927.23193, 364.02109, 4528.65275, 2606.35895, 742.40221, 1267.82422, 1673.61877, 657.90737, 351.00378], - [9213.00344, 925.11500, 361.98722, 4531.80876, 2650.72927, 743.36319, 1258.57761, 1680.59958, 654.06081, 351.11249], - [9256.03432, 922.86374, 359.91768, 4533.90353, 2695.20322, 744.14616, 1248.99236, 1687.25222, 650.13048, 351.16917], - [9297.73877, 920.47113, 357.80801, 4534.94992, 2739.75668, 744.75304, 1239.07241, 1693.58529, 646.10954, 351.17223], - [9338.10174, 917.92853, 355.65362, 4534.96658, 2784.36647, 745.18655, 1228.82293, 1699.60963, 641.99059, 351.11934], - [9377.11399, 915.23136, 353.45131, 4533.97137, 2829.01083, 745.44912, 1218.25063, 1705.33254, 637.76923, 351.00981], - [9414.77452, 912.37976, 351.19962, 4531.98379, 2873.66898, 745.54238, 1207.36871, 1710.75814, 633.44478, 350.84386], - [9451.08630, 909.38082, 348.89906, 4529.01687, 2918.32212, 745.46743, 1196.18811, 1715.88335, 629.02114, 350.62519], - [9486.05373, 906.24636, 346.55133, 4525.07653, 2962.95366, 745.22584, 1184.71221, 1720.69922, 624.50499, 350.36097], - [9519.68550, 902.99235, 344.15935, 4520.16601, 3007.54865, 744.81914, 1172.94273, 1725.19268, 619.90583, 350.06054], - [9551.99895, 899.63305, 341.72617, 4514.29804, 3052.09257, 744.24913, 1160.88878, 1729.35406, 615.23296, 349.73145], - [9583.00809, 896.17543, 339.25362, 4507.49170, 3096.56941, 743.51792, 1148.56052, 1733.18387, 610.49187, 349.37648], - [9612.74763, 892.62584, 336.74406, 4499.78531, 3140.96437, 742.62805, 1135.98562, 1736.68515, 605.68893, 348.99659], - [9641.28447, 888.99776, 334.20199, 4491.23616, 3185.26616, 741.58240, 1123.21312, 1739.85419, 600.83602, 348.59511], - [9668.70217, 885.30621, 331.63285, 4481.91392, 3229.46502, 740.38418, 1110.30397, 1742.68690, 595.94692, 348.17518], - [9695.07315, 881.56408, 329.04180, 4471.88005, 3273.55069, 739.03653, 1097.30865, 1745.18241, 591.03419, 347.73901]] - -# Population in Countries with <0.96 gender partiy in completing upper secondary education, by IPCC Region, REF1_population_scenario (millions) -# Population_Tables!C61:L108 -ref1_low_edu_list = [ - ['World', 'OECD90', 'Eastern Europe', 'Asia (Sans Japan)', 'Middle East and Africa', 'Latin America', 'China', 'India', 'EU', 'USA'], - [0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000], - [3104.47059, 0.00000, 8.48186, 2065.81780, 852.00259, 178.16835, 0.00000, 0.00000, 0.00000, 0.00000], - [3161.44344, 0.00000, 8.68020, 2095.03147, 876.99695, 180.73482, 0.00000, 0.00000, 0.00000, 0.00000], - [3220.03211, 0.00000, 8.88431, 2124.97121, 902.80900, 183.36760, 0.00000, 0.00000, 0.00000, 0.00000], - [3280.01976, 0.00000, 9.09242, 2155.47220, 929.40282, 186.05232, 0.00000, 0.00000, 0.00000, 0.00000], - [3341.07264, 0.00000, 9.30224, 2186.28270, 956.72112, 188.76657, 0.00000, 0.00000, 0.00000, 0.00000], - [3402.93540, 0.00000, 9.51196, 2217.20758, 984.72307, 191.49280, 0.00000, 0.00000, 0.00000, 0.00000], - [3465.51278, 0.00000, 9.72091, 2248.17352, 1013.39323, 194.22513, 0.00000, 0.00000, 0.00000, 0.00000], - [3528.83717, 0.00000, 9.92908, 2279.19598, 1042.74746, 196.96466, 0.00000, 0.00000, 0.00000, 0.00000], - [3592.92607, 0.00000, 10.13609, 2310.26903, 1072.81245, 199.70851, 0.00000, 0.00000, 0.00000, 0.00000], - [3657.83624, 0.00000, 10.34174, 2341.41128, 1103.62806, 202.45516, 0.00000, 0.00000, 0.00000, 0.00000], - [3723.58350, 0.00000, 10.54590, 2372.61663, 1135.21914, 205.20184, 0.00000, 0.00000, 0.00000, 0.00000], - [3790.16283, 0.00000, 10.74844, 2403.87092, 1167.59705, 207.94643, 0.00000, 0.00000, 0.00000, 0.00000], - [3857.46641, 0.00000, 10.94930, 2435.09384, 1200.74062, 210.68266, 0.00000, 0.00000, 0.00000, 0.00000], - [3925.28660, 0.00000, 11.14859, 2466.13620, 1234.60293, 213.39888, 0.00000, 0.00000, 0.00000, 0.00000], - [3993.35721, 0.00000, 11.34656, 2496.81047, 1269.11927, 216.08091, 0.00000, 0.00000, 0.00000, 0.00000], - [4061.48558, 0.00000, 11.54352, 2526.98012, 1304.24345, 218.71849, 0.00000, 0.00000, 0.00000, 0.00000], - [4129.59718, 0.00000, 11.73953, 2556.59160, 1339.95944, 221.30662, 0.00000, 0.00000, 0.00000, 0.00000], - [4197.73264, 0.00000, 11.93500, 2585.66899, 1376.28164, 223.84701, 0.00000, 0.00000, 0.00000, 0.00000], - [4265.96225, 0.00000, 12.13112, 2614.25436, 1413.23206, 226.34472, 0.00000, 0.00000, 0.00000, 0.00000], - [4334.41009, 0.00000, 12.32938, 2642.42615, 1450.84617, 228.80839, 0.00000, 0.00000, 0.00000, 0.00000], - [4403.18004, 0.00000, 12.53094, 2670.25277, 1489.15146, 231.24487, 0.00000, 0.00000, 0.00000, 0.00000], - [4472.28136, 0.00000, 12.73618, 2697.73783, 1528.15208, 233.65528, 0.00000, 0.00000, 0.00000, 0.00000], - [4541.71837, 0.00000, 12.94510, 2724.89050, 1567.84374, 236.03903, 0.00000, 0.00000, 0.00000, 0.00000], - [4611.58966, 0.00000, 13.15806, 2751.79605, 1608.23606, 238.39949, 0.00000, 0.00000, 0.00000, 0.00000], - [4682.01590, 0.00000, 13.37532, 2778.56113, 1649.33899, 240.74046, 0.00000, 0.00000, 0.00000, 0.00000], - [4753.08948, 0.00000, 13.59698, 2805.26766, 1691.15979, 243.06505, 0.00000, 0.00000, 0.00000, 0.00000], - [4824.84801, 0.00000, 13.82315, 2831.94860, 1733.70139, 245.37486, 0.00000, 0.00000, 0.00000, 0.00000], - [4897.29233, 0.00000, 14.05360, 2858.60440, 1776.96353, 247.67080, 0.00000, 0.00000, 0.00000, 0.00000], - [4970.42889, 0.00000, 14.28755, 2885.24173, 1820.94535, 249.95426, 0.00000, 0.00000, 0.00000, 0.00000], - [5044.24933, 0.00000, 14.52396, 2911.85491, 1865.64411, 252.22635, 0.00000, 0.00000, 0.00000, 0.00000], - [5118.74120, 0.00000, 14.76191, 2938.43567, 1911.05584, 254.48779, 0.00000, 0.00000, 0.00000, 0.00000], - [5193.90327, 0.00000, 15.00109, 2964.98689, 1957.17632, 256.73897, 0.00000, 0.00000, 0.00000, 0.00000], - [5269.72440, 0.00000, 15.24128, 2991.50390, 2003.99958, 258.97965, 0.00000, 0.00000, 0.00000, 0.00000], - [5346.16451, 0.00000, 15.48174, 3017.95737, 2051.51664, 261.20876, 0.00000, 0.00000, 0.00000, 0.00000], - [5423.17037, 0.00000, 15.72168, 3044.30739, 2099.71659, 263.42471, 0.00000, 0.00000, 0.00000, 0.00000], - [5500.69146, 0.00000, 15.96048, 3070.51724, 2148.58788, 265.62586, 0.00000, 0.00000, 0.00000, 0.00000], - [5578.70692, 0.00000, 16.19784, 3096.57572, 2198.12176, 267.81160, 0.00000, 0.00000, 0.00000, 0.00000], - [5657.18672, 0.00000, 16.43364, 3122.46534, 2248.30692, 269.98082, 0.00000, 0.00000, 0.00000, 0.00000], - [5736.05888, 0.00000, 16.66779, 3148.13496, 2299.12556, 272.13057, 0.00000, 0.00000, 0.00000, 0.00000], - [5815.23808, 0.00000, 16.90025, 3173.52337, 2350.55718, 274.25728, 0.00000, 0.00000, 0.00000, 0.00000], - [5894.65704, 0.00000, 17.13109, 3198.58449, 2402.58342, 276.35803, 0.00000, 0.00000, 0.00000, 0.00000], - [5974.28702, 0.00000, 17.36026, 3223.30280, 2455.19229, 278.43168, 0.00000, 0.00000, 0.00000, 0.00000], - [6054.11935, 0.00000, 17.58787, 3247.68046, 2508.37334, 280.47767, 0.00000, 0.00000, 0.00000, 0.00000], - [6134.13467, 0.00000, 17.81440, 3271.71389, 2562.11186, 282.49452, 0.00000, 0.00000, 0.00000, 0.00000], - [6214.32057, 0.00000, 18.04046, 3295.40651, 2616.39280, 284.48080, 0.00000, 0.00000, 0.00000, 0.00000], - [6294.67271, 0.00000, 18.26660, 3318.76742, 2671.20309, 286.43561, 0.00000, 0.00000, 0.00000, 0.00000]] - -# Population in Countries with <0.96 gender partiy in completing upper secondary education, by IPCC Region, REF2_population_scenario (millions) -# Population_Tables!O61:X108 -ref2_low_edu_list = [ - ['World', 'OECD90', 'Eastern Europe', 'Asia (Sans Japan)', 'Middle East and Africa', 'Latin America', 'China', 'India', 'EU', 'USA'], - [0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000], - [3104.47059, 0.00000, 8.48186, 2065.81780, 852.00259, 178.16835, 0.00000, 0.00000, 0.00000, 0.00000], - [3157.87084, 0.00000, 8.66946, 2092.57300, 876.10862, 180.51975, 0.00000, 0.00000, 0.00000, 0.00000], - [3211.30766, 0.00000, 8.85812, 2118.97437, 900.63206, 182.84313, 0.00000, 0.00000, 0.00000, 0.00000], - [3264.76518, 0.00000, 9.04672, 2145.00457, 925.57677, 185.13711, 0.00000, 0.00000, 0.00000, 0.00000], - [3318.25114, 0.00000, 9.23406, 2170.65849, 950.95757, 187.40103, 0.00000, 0.00000, 0.00000, 0.00000], - [3371.76847, 0.00000, 9.41913, 2195.92908, 976.78637, 189.63390, 0.00000, 0.00000, 0.00000, 0.00000], - [3425.28557, 0.00000, 9.60148, 2220.79237, 1003.05767, 191.83405, 0.00000, 0.00000, 0.00000, 0.00000], - [3478.77262, 0.00000, 9.78092, 2245.22595, 1029.76640, 193.99934, 0.00000, 0.00000, 0.00000, 0.00000], - [3532.24074, 0.00000, 9.95717, 2269.22863, 1056.92708, 196.12787, 0.00000, 0.00000, 0.00000, 0.00000], - [3585.71316, 0.00000, 10.13005, 2292.80580, 1084.55961, 198.21770, 0.00000, 0.00000, 0.00000, 0.00000], - [3639.20392, 0.00000, 10.29952, 2315.95853, 1112.67872, 200.26714, 0.00000, 0.00000, 0.00000, 0.00000], - [3692.70437, 0.00000, 10.46547, 2338.67720, 1141.28675, 202.27495, 0.00000, 0.00000, 0.00000, 0.00000], - [3746.19506, 0.00000, 10.62803, 2360.94646, 1170.38044, 204.24013, 0.00000, 0.00000, 0.00000, 0.00000], - [3799.66619, 0.00000, 10.78779, 2382.75504, 1199.96176, 206.16160, 0.00000, 0.00000, 0.00000, 0.00000], - [3853.10608, 0.00000, 10.94556, 2404.09065, 1230.03146, 208.03841, 0.00000, 0.00000, 0.00000, 0.00000], - [3906.50103, 0.00000, 11.10204, 2424.94118, 1260.58802, 209.86979, 0.00000, 0.00000, 0.00000, 0.00000], - [3959.84065, 0.00000, 11.25742, 2445.30062, 1291.62773, 211.65488, 0.00000, 0.00000, 0.00000, 0.00000], - [4013.10831, 0.00000, 11.41193, 2465.15923, 1323.14393, 213.39321, 0.00000, 0.00000, 0.00000, 0.00000], - [4066.27568, 0.00000, 11.56632, 2484.49702, 1355.12731, 215.08503, 0.00000, 0.00000, 0.00000, 0.00000], - [4119.30900, 0.00000, 11.72150, 2503.29046, 1387.56614, 216.73090, 0.00000, 0.00000, 0.00000, 0.00000], - [4172.17921, 0.00000, 11.87814, 2521.52214, 1420.44772, 218.33121, 0.00000, 0.00000, 0.00000, 0.00000], - [4224.86340, 0.00000, 12.03645, 2539.17960, 1453.76163, 219.88573, 0.00000, 0.00000, 0.00000, 0.00000], - [4277.34792, 0.00000, 12.19636, 2556.26285, 1487.49472, 221.39399, 0.00000, 0.00000, 0.00000, 0.00000], - [4329.62380, 0.00000, 12.35787, 2572.78277, 1521.62736, 222.85580, 0.00000, 0.00000, 0.00000, 0.00000], - [4381.68639, 0.00000, 12.52081, 2588.75763, 1556.13703, 224.27092, 0.00000, 0.00000, 0.00000, 0.00000], - [4433.52631, 0.00000, 12.68498, 2604.19966, 1591.00258, 225.63910, 0.00000, 0.00000, 0.00000, 0.00000], - [4485.13066, 0.00000, 12.85032, 2619.11179, 1626.20838, 226.96017, 0.00000, 0.00000, 0.00000, 0.00000], - [4536.47563, 0.00000, 13.01656, 2633.48566, 1661.73955, 228.23386, 0.00000, 0.00000, 0.00000, 0.00000], - [4587.52794, 0.00000, 13.18285, 2647.30893, 1697.57640, 229.45976, 0.00000, 0.00000, 0.00000, 0.00000], - [4638.24828, 0.00000, 13.34810, 2660.56442, 1733.69837, 230.63739, 0.00000, 0.00000, 0.00000, 0.00000], - [4688.60419, 0.00000, 13.51141, 2673.24003, 1770.08642, 231.76633, 0.00000, 0.00000, 0.00000, 0.00000], - [4738.57322, 0.00000, 13.67245, 2685.33108, 1806.72343, 232.84627, 0.00000, 0.00000, 0.00000, 0.00000], - [4788.14492, 0.00000, 13.83102, 2696.84193, 1843.59496, 233.87701, 0.00000, 0.00000, 0.00000, 0.00000], - [4837.31373, 0.00000, 13.98669, 2707.78058, 1880.68803, 234.85843, 0.00000, 0.00000, 0.00000, 0.00000], - [4886.07986, 0.00000, 14.13900, 2718.15927, 1917.99112, 235.79048, 0.00000, 0.00000, 0.00000, 0.00000], - [4934.43967, 0.00000, 14.28761, 2727.98702, 1955.49202, 236.67302, 0.00000, 0.00000, 0.00000, 0.00000], - [4982.38243, 0.00000, 14.43231, 2737.26795, 1993.17616, 237.50601, 0.00000, 0.00000, 0.00000, 0.00000], - [5029.89046, 0.00000, 14.57306, 2745.99994, 2031.02828, 238.28918, 0.00000, 0.00000, 0.00000, 0.00000], - [5076.94541, 0.00000, 14.70994, 2754.17866, 2069.03481, 239.02200, 0.00000, 0.00000, 0.00000, 0.00000], - [5123.52646, 0.00000, 14.84321, 2761.79715, 2107.18230, 239.70380, 0.00000, 0.00000, 0.00000, 0.00000], - [5169.61579, 0.00000, 14.97308, 2768.85153, 2145.45707, 240.33411, 0.00000, 0.00000, 0.00000, 0.00000], - [5215.20349, 0.00000, 15.09957, 2775.34612, 2183.84488, 240.91292, 0.00000, 0.00000, 0.00000, 0.00000], - [5260.28197, 0.00000, 15.22279, 2781.28761, 2222.33114, 241.44043, 0.00000, 0.00000, 0.00000, 0.00000], - [5304.83924, 0.00000, 15.34313, 2786.67810, 2260.90125, 241.91676, 0.00000, 0.00000, 0.00000, 0.00000], - [5348.86356, 0.00000, 15.46109, 2791.51990, 2299.54044, 242.34214, 0.00000, 0.00000, 0.00000, 0.00000], - [5392.34612, 0.00000, 15.57707, 2795.81825, 2338.23390, 242.71689, 0.00000, 0.00000, 0.00000, 0.00000]] - -# Table 2: REF2, Electricity Generation TAM (TWh) -# Electricity_cluster!B26:K73 -ref2_tam_list = [ - ['World', 'OECD90', 'Eastern Europe', 'Asia (Sans Japan)', 'Middle East and Africa', 'Latin America', 'China', 'India', 'EU', 'USA'], - [22548.00000, 9630.94132, 2021.81456, 8068.09850, 1750.27240, 1681.57391, 5262.77320, 1324.87968, 3379.55071, 4226.08258], - [23915.29474, 9686.06712, 2046.08149, 8518.24480, 1813.43945, 1729.37357, 5577.46645, 1407.75811, 3402.87973, 4238.15940], - [24739.34640, 9726.59905, 2070.42874, 8971.48190, 1887.43392, 1782.38592, 5868.27237, 1508.56127, 3423.02929, 4238.12779], - [25546.28067, 9770.88424, 2095.77922, 9418.25671, 1964.77842, 1837.98642, 6148.15200, 1613.15158, 3443.15125, 4240.90633], - [26336.89072, 9818.79572, 2122.08509, 9858.95275, 2045.58829, 1896.13291, 6417.38657, 1721.48637, 3463.30080, 4246.39976], - [27111.96969, 9870.20653, 2149.29851, 10293.95356, 2129.97886, 1956.78323, 6676.25733, 1833.52292, 3483.53313, 4254.51283], - [27872.31074, 9924.98972, 2177.37163, 10723.64264, 2218.06547, 2019.89524, 6925.04552, 1949.21857, 3503.90343, 4265.15027], - [28618.70702, 9983.01832, 2206.25661, 11148.40352, 2309.96345, 2085.42679, 7164.03237, 2068.53061, 3524.46690, 4278.21684], - [29351.95169, 10044.16537, 2235.90560, 11568.61971, 2405.78813, 2153.33573, 7393.49912, 2191.41636, 3545.27873, 4293.61727], - [30072.83791, 10108.30392, 2266.27077, 11984.67474, 2505.65485, 2223.57990, 7613.72702, 2317.83312, 3566.39411, 4311.25631], - [30782.15882, 10175.30699, 2297.30426, 12396.95213, 2609.67894, 2296.11715, 7824.99730, 2447.73821, 3587.86825, 4331.03871], - [31480.70758, 10245.04764, 2328.95824, 12805.83539, 2717.97573, 2370.90533, 8027.59121, 2581.08893, 3609.75633, 4352.86921], - [32169.27735, 10317.39891, 2361.18485, 13211.70805, 2830.66056, 2447.90230, 8221.78998, 2717.84260, 3632.11354, 4376.65255], - [32848.66128, 10392.23382, 2393.93626, 13614.95362, 2947.84876, 2527.06589, 8407.87486, 2857.95652, 3654.99508, 4402.29347], - [33519.65253, 10469.42543, 2427.16462, 14015.95562, 3069.65567, 2608.35396, 8586.12709, 3001.38800, 3678.45614, 4429.69673], - [34183.04424, 10548.84677, 2460.82209, 14415.09758, 3196.19661, 2691.72436, 8756.82789, 3148.09436, 3702.55192, 4458.76706], - [34839.62958, 10630.37088, 2494.86082, 14812.76302, 3327.58693, 2777.13494, 8920.25852, 3298.03290, 3727.33762, 4489.40921], - [35490.20169, 10713.87080, 2529.23298, 15209.33545, 3463.94195, 2864.54354, 9076.70022, 3451.16094, 3752.86841, 4521.52793], - [36135.55373, 10799.21958, 2563.89071, 15605.19839, 3605.37701, 2953.90802, 9226.43422, 3607.43578, 3779.19950, 4555.02795], - [36776.47886, 10886.29024, 2598.78617, 16000.73536, 3752.00744, 3045.18622, 9369.74177, 3766.81473, 3806.38608, 4589.81402], - [37413.77023, 10974.95584, 2633.87152, 16396.32989, 3903.94858, 3138.33599, 9506.90409, 3929.25510, 3834.48334, 4625.79089], - [38048.22099, 11065.08941, 2669.09891, 16792.36549, 4061.31575, 3233.31518, 9638.20245, 4094.71421, 3863.54649, 4662.86330], - [38680.62430, 11156.56399, 2704.42051, 17189.22569, 4224.22430, 3330.08164, 9763.91807, 4263.14936, 3893.63070, 4700.93599], - [39311.77332, 11249.25262, 2739.78846, 17587.29399, 4392.78956, 3428.59321, 9884.33219, 4434.51785, 3924.79118, 4739.91371], - [39942.46119, 11343.02835, 2775.15493, 17986.95393, 4567.12685, 3528.80776, 9999.72605, 4608.77701, 3957.08311, 4779.70121], - [40573.48107, 11437.76420, 2810.47206, 18388.58902, 4747.35152, 3630.68312, 10110.38090, 4785.88414, 3990.56170, 4820.20321], - [41205.62612, 11533.33323, 2845.69203, 18792.58278, 4933.57890, 3734.17715, 10216.57798, 4965.79655, 4025.28213, 4861.32448], - [41839.68949, 11629.60846, 2880.76697, 19199.31873, 5125.92432, 3839.24769, 10318.59852, 5148.47155, 4061.29960, 4902.96975], - [42476.46433, 11726.46295, 2915.64905, 19609.18039, 5324.50311, 3945.85259, 10416.72376, 5333.86645, 4098.66931, 4945.04377], - [43116.74380, 11823.76973, 2950.29042, 20022.55128, 5529.43060, 4053.94970, 10511.23495, 5521.93856, 4137.44643, 4987.45129], - [43761.32106, 11921.40184, 2984.64325, 20439.81493, 5740.82214, 4163.49688, 10602.41332, 5712.64519, 4177.68618, 5030.09703], - [44410.98925, 12019.23231, 3018.65968, 20861.35484, 5958.79306, 4274.45196, 10690.54011, 5905.94365, 4219.44374, 5072.88576], - [45066.54153, 12117.13420, 3052.29187, 21287.55454, 6183.45868, 4386.77280, 10775.89657, 6101.79125, 4262.77431, 5115.72222], - [45728.77106, 12214.98054, 3085.49198, 21718.79755, 6414.93434, 4500.41725, 10858.76393, 6300.14529, 4307.73308, 5158.51114], - [46398.47098, 12312.64437, 3118.21217, 22155.46740, 6653.33538, 4615.34315, 10939.42343, 6500.96309, 4354.37524, 5201.15727], - [47076.43447, 12409.99873, 3150.40458, 22597.94759, 6898.77713, 4731.50836, 11018.15632, 6704.20196, 4402.75599, 5243.56536], - [47763.45466, 12506.91666, 3182.02139, 23046.62165, 7151.37491, 4848.87072, 11095.24383, 6909.81921, 4452.93051, 5285.64015], - [48460.32471, 12603.27120, 3213.01473, 23501.87309, 7411.24408, 4967.38809, 11170.96721, 7117.77215, 4504.95402, 5327.28639], - [49167.83778, 12698.93539, 3243.33678, 23964.08545, 7678.49995, 5087.01830, 11245.60769, 7328.01808, 4558.88169, 5368.40881], - [49886.78702, 12793.78227, 3272.93968, 24433.64223, 7953.25787, 5207.71922, 11319.44651, 7540.51431, 4614.76872, 5408.91217], - [50617.96559, 12887.68488, 3301.77559, 24910.92696, 8235.63316, 5329.44868, 11392.76492, 7755.21817, 4672.67030, 5448.70121], - [51362.16663, 12980.51625, 3329.79667, 25396.32316, 8525.74117, 5452.16454, 11465.84415, 7972.08695, 4732.64164, 5487.68066], - [52120.18332, 13072.14944, 3356.95508, 25890.21435, 8823.69721, 5575.82465, 11538.96544, 8191.07796, 4794.73791, 5525.75528], - [52892.80878, 13162.45748, 3383.20296, 26392.98404, 9129.61663, 5700.38686, 11612.41004, 8412.14852, 4859.01432, 5562.82981], - [53680.83620, 13251.31340, 3408.49248, 26905.01576, 9443.61477, 5825.80901, 11686.45918, 8635.25594, 4925.52606, 5598.80900], - [54485.05871, 13338.59025, 3432.77580, 27426.69302, 9765.80695, 5952.04895, 11761.39410, 8860.35752, 4994.32832, 5633.59758], - [55306.26947, 13424.16108, 3456.00506, 27958.39935, 10096.30850, 6079.06453, 11837.49604, 9087.41057, 5065.47630, 5667.10030]] - diff --git a/solution/healthandeducation/test_electricity.py b/solution/healthandeducation/test_electricity.py deleted file mode 100644 index 3bba2c7f9..000000000 --- a/solution/healthandeducation/test_electricity.py +++ /dev/null @@ -1,10 +0,0 @@ -import sys -sys.path.append('c:\\Users\\sunishchal.dev\\Documents\\solutions\\solution') - -import healthandeducation as he - -h = he.Scenario() - -print(h.ref2_tam.tail()) -print(h.ref1_tam_all_regions.tail()) -print(h.change_elec_gen.tail()) \ No newline at end of file From 0dce4ebb1fddacd6166823546ffb42a79062ee8e Mon Sep 17 00:00:00 2001 From: Sunishchal Date: Mon, 14 Sep 2020 03:18:14 -0700 Subject: [PATCH 04/28] Added unit testing for electricity cluster --- solution/health_and_education/__init__.py | 2 +- .../electricity_cluster.py | 46 +++++++------------ .../health_and_education/tests/__init__.py | 0 .../tests/test_electricity.py | 17 +++++++ 4 files changed, 35 insertions(+), 30 deletions(-) create mode 100644 solution/health_and_education/tests/__init__.py create mode 100644 solution/health_and_education/tests/test_electricity.py diff --git a/solution/health_and_education/__init__.py b/solution/health_and_education/__init__.py index 9e4468e70..0a0be0998 100644 --- a/solution/health_and_education/__init__.py +++ b/solution/health_and_education/__init__.py @@ -14,7 +14,7 @@ class Scenario: - name = name + # name = name # solution_category = solution_category def __init__(self, scenario=None): diff --git a/solution/health_and_education/electricity_cluster.py b/solution/health_and_education/electricity_cluster.py index 0a90566ed..6f556f522 100644 --- a/solution/health_and_education/electricity_cluster.py +++ b/solution/health_and_education/electricity_cluster.py @@ -36,6 +36,21 @@ lldc_high_nrr_regions_y = dict(filter(lambda x: x[1] == 'Y', lldc_high_nrr_config.items())).keys() lldc_high_nrr_regions_n = dict(filter(lambda x: x[1] == 'N', lldc_high_nrr_config.items())).keys() +# TABLE 1: Current TAM Mix +current_tam_mix_list = [ + ['Energy Source', '2018', 'Include in SOL?', 'Include in CONV?'], + ['Coal', 39.28, 'N', 'Y'], + ['Natural gas', 22.72, 'N', 'Y'], + ['Nuclear', 10.45, 'N', 'N'], + ['Oil', 3.41, 'N', 'Y'], + ['Hydroelectric', 15.52, 'N', 'Y'], + ['Solar Photovoltaic', 1.73, 'N', 'N'], + ['Wave and Tidal', 0.00, 'N', 'N'], + ['Wind Onshore', 4.36, 'N', 'N'], + ['Wind Offshore', 0.24, 'N', 'N'], + ['Biomass and Waste', 1.90, 'N', 'N'], + ['Concentrated Solar Power', 0.05, 'N', 'N'], + ['Geothermal', 0.34, 'N', 'N']] class Scenario: name = name @@ -43,7 +58,7 @@ class Scenario: def __init__(self, scenario=None): - # Population scenarios + # Load in population scenarios # REF1 Population # Population_Tables!C2:L49 @@ -70,20 +85,7 @@ def __init__(self, scenario=None): self.ref2_low_edu.index = self.ref2_low_edu.index.astype(int) # TABLE 1: Current TAM Mix - self.current_tam_mix = pd.DataFrame(current_tam_mix_list, - columns=['2018', 'Include in SOL?', 'Include in CONV?'], - index=['Coal', - 'Natural gas', - 'Nuclear', - 'Oil', - 'Hydroelectric', - 'Solar Photovoltaic', - 'Wave and Tidal', - 'Wind Onshore', - 'Wind Offshore', - 'Biomass and Waste', - 'Concentrated Solar Power', - 'Geothermal']) + self.current_tam_mix = pd.DataFrame(current_tam_mix_list[1:], columns=current_tam_mix_list[1]) # Table 2: REF2, Electricity Generation TAM (TWh) # Electricity_cluster!B26:K73 @@ -188,20 +190,6 @@ def __init__(self, scenario=None): index=list(range(2014, 2061)), dtype=np.float64) -# TABLE 1: Current TAM Mix -current_tam_mix_list = [ - [39.28, 'N', 'Y'], - [22.72, 'N', 'Y'], - [10.45, 'N', 'N'], - [3.41, 'N', 'Y'], - [15.52, 'N', 'Y'], - [1.73, 'N', 'N'], - [0.00, 'N', 'N'], - [4.36, 'N', 'N'], - [0.24, 'N', 'N'], - [1.90, 'N', 'N'], - [0.05, 'N', 'N'], - [0.34, 'N', 'N']] # Table 2: REF2, Electricity Generation TAM (TWh) diff --git a/solution/health_and_education/tests/__init__.py b/solution/health_and_education/tests/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/solution/health_and_education/tests/test_electricity.py b/solution/health_and_education/tests/test_electricity.py new file mode 100644 index 000000000..68fa2e6e9 --- /dev/null +++ b/solution/health_and_education/tests/test_electricity.py @@ -0,0 +1,17 @@ +import sys +sys.path.append('c:\\Users\\sunishchal.dev\\Documents\\solutions\\solution\\health_and_education') + +import pandas as pd + +import electricity_cluster + +test_elec = electricity_cluster.Scenario() +exp_elec = pd.read_csv('expected_elec_cluster.csv', header=None) + +def test_electricity_cluster(): + exp_ref2_tam = exp_elec.iloc[26:73, 1:11].astype(float) + exp_ref2_tam.columns = exp_elec.iloc[25, 1:11].values + exp_ref2_tam.index = exp_elec.iloc[26:73, 0].astype(int).values + pd.testing.assert_frame_equal(test_elec.ref2_tam, exp_ref2_tam, check_exact=False) + +test_electricity_cluster() \ No newline at end of file From e818bdb642dac95e4d8e867f259c1c7473544678 Mon Sep 17 00:00:00 2001 From: Sunishchal Date: Sat, 19 Sep 2020 02:34:30 -0700 Subject: [PATCH 05/28] Made formatting adjustments to validation data to ensure unit tests run successfully --- .../tests/expected_elec_cluster.csv | 238 ++++++++++++++++++ 1 file changed, 238 insertions(+) create mode 100644 solution/health_and_education/tests/expected_elec_cluster.csv diff --git a/solution/health_and_education/tests/expected_elec_cluster.csv b/solution/health_and_education/tests/expected_elec_cluster.csv new file mode 100644 index 000000000..8f59a336c --- /dev/null +++ b/solution/health_and_education/tests/expected_elec_cluster.csv @@ -0,0 +1,238 @@ +#VALUE!,,Electricity Generation,(TWh),,,,,Sheet Estimates the Emissions Reduction from this Solution due to Health & Education,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,Period Start:,2020,,Total Emissions Avoided due to Health & Education (Gt CO2-eq),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,COPY VALUES FROM SOLUTION MODEL,,,,Period End:,2050,,,,2020-2050,2015-2060,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,TABLE 1: Current TAM Mix,2018,Include in SOL?,Include in CONV?,,,,LLDC,SOLUTION, - , - ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,Coal,39.28%,N,Y,,,,,CONVENTIONAL,12.2,26.15,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,Natural gas,22.72%,N,Y,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +Keywords:,,,,Nuclear,10.45%,N,N,,,,MDC,SOLUTION, - , - ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +LLDC,Least and Less Developed Countries,,,Oil,3.41%,N,Y,,,,,CONVENTIONAL,17.18,31.34,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +MDC,More Developed Countries,,,Hydroelectric,15.52%,N,Y,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +LLDC+HighNRR+HigherEd,Least and Less Developed Countries with High Net Reproductive Rates & Higher Educational Attainment.,"NOTE: China, LAC, and EE are considered as LLDC Regions with Low NRR and are accounted for under the _mdc sheet.",,Solar Photovoltaic,1.73%,N,N,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +LLDC+HighNRR+LowEd,"Least and Less Developed Countries with High Net Reproductive Rates & Lower Educational Attainment. This excludes China, LAC, and EE.","NOTE: China, LAC, and EE are considered as LLDC Regions with Low NRR and are accounted for under the _mdc sheet.",,Wave and Tidal,0.00%,N,N,,,,TOTAL,SOLUTION, - , - ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +REF1,Reference Scenario 1 with Higher Population,,,Wind Onshore,4.36%,N,N,,,,,CONVENTIONAL,29.38,57.49,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +REF2,Reference Scenario 2 with Lower Population,,,Wind Offshore,0.24%,N,N,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +TAM,Total Addressable Market,,,Biomass and Waste,1.90%,N,N,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +LAC,Latin American Countries,,,Concentrated Solar Power,0.05%,N,N,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +EE,Eastern Europe,,,Geothermal,0.34%,N,N,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +TWh,Terrawatt-Hours,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +NRR,Net Reproductive Rate,,,Assumptions:,,Use fixed weight?,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,Fixed weighting factor:,,N,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,% impact of educational attainment on uptake of Family Planning:,50%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +"Table 2: REF2, Electricity Generation TAM (TWh)",,,,,,,,,,,,"Table 3: REF1 ,Electricity Generation TAM (TWh)",,,,,,,,,,,,Table 3: REF1 Electricity Generation TAM (TWh),,,,,,,,,,,,Table 3: REF1 Electricity Generation TAM (TWh),,,,,,,,,,,,,,,,,,,,, +COPY TABLES BELOW FROM LATEST ELECTRICITY SOLUTION MODELS,,,,,,,,,,,,(a) FOR POPULATIONS IN REGIONS WITH LOW EDUCATIONAL ATTAINMENT ONLY!,,,,,,,,,,,,(b) FOR REGIONS WITH HIGHER EDUCATIONAL ATTAINMENT,,,,,,,,,,,,(c) FOR ALL REGIONS,,,,,,,,,,,,,,,,,,,,, +,Regions included as LLDC+HighNRR:,N,N,Y,Y,N,,,,,,,Regions included as LLDC+HighNRR:,N,N,Y,Y,N,,,,,,,Regions included as LLDC+HighNRR:,N,N,Y,Y,N,,,,,,,,,,,,,,,,,,CHECK,,,,,,,,, +,World,OECD90,Eastern Europe,Asia (Sans Japan),Middle East and Africa,Latin America,China,India,EU,USA,,,World,OECD90,Eastern Europe,Asia (Sans Japan),Middle East and Africa,Latin America,China,India,EU,USA,,,World,OECD90,Eastern Europe,Asia (Sans Japan),Middle East and Africa,Latin America,China,India,EU,USA,,,World,OECD90,Eastern Europe,Asia (Sans Japan),Middle East and Africa,Latin America,China,India,EU,USA,,WORLD,,REGIONAL TOTAL,,% error,OECD90,Eastern Europe,Asia (Sans Japan),Middle East and Africa,Latin America +2014,22548,9630.94132,2021.81456,8068.0985,1750.2724,1681.57391,5262.7732,1324.87968,3379.55071,4226.08258,,2014,0,0,0,0,0,0,0,0,0,0,,2014,22548,9630.94132,2021.81456,8068.0985,1750.2724,1681.57391,5262.7732,1324.87968,3379.55071,4226.08258,,2014,22548,9630.94132,2021.81456,8068.0985,1750.2724,1681.57391,5262.7732,1324.87968,3379.55071,4226.08258,,"22,548",OK,"23,152.70",OK,,"9,631","2,022","8,068","1,750","1,682" +2015,23915.29474,9686.06712,2046.08149,8518.2448,1813.43945,1729.37357,5577.46645,1407.75811,3402.87973,4238.1594,,2015,3150.56463,0,42.61242,1535.19074,1087.07246,485.689,0,0,0,0,,2015,20764.73011,9686.06712,2003.46907,6983.05406,726.36699,1243.68456,5577.46645,1407.75811,3402.87973,4238.1594,,2015,23915.29474,9686.06712,2046.08149,8518.2448,1813.43945,1729.37357,5577.46645,1407.75811,3402.87973,4238.1594,,"23,915",OK,"23,793.21",OK,,"9,686","2,046","8,518","1,813","1,729" +2016,24739.3464,9726.59905,2070.42874,8971.4819,1887.43392,1782.38592,5868.27237,1508.56127,3423.02929,4238.12779,,2016,3312.31037,0,44.1078,1628.04895,1137.3454,502.80821,0,0,0,0,,2016,21453.10601,9734.64819,2027.90684,7353.04765,752.17898,1281.95222,5873.48232,1510.30106,3425.47559,4242.1101,,2016,24765.41638,9734.64819,2072.01463,8981.09661,1889.52438,1784.76043,5873.48232,1510.30106,3425.47559,4242.1101,,"24,765",OK,"24,462.04",OK,,"9,735","2,072","8,981","1,890","1,785" +2017,25546.28067,9770.88424,2095.77922,9418.25671,1964.77842,1837.98642,6148.152,1613.15158,3443.15125,4240.90633,,2017,3482.69244,0,45.70569,1725.22492,1190.61306,521.14877,0,0,0,0,,2017,22128.51092,9790.5136,2053.97582,7717.39246,779.36443,1322.74917,6161.3461,1617.6361,3449.14037,4250.55866,,2017,25611.20336,9790.5136,2099.68151,9442.61738,1969.97749,1843.89794,6161.3461,1617.6361,3449.14037,4250.55866,,"25,611",OK,"25,146.69",OK,,"9,791","2,100","9,443","1,970","1,844" +2018,26336.89072,9818.79572,2122.08509,9858.95275,2045.58829,1896.13291,6417.38657,1721.48637,3463.3008,4246.39976,,2018,3661.82642,0,47.39873,1826.80331,1246.94788,540.67649,0,0,0,0,,2018,22790.41934,9852.98521,2081.51417,8076.09928,807.90798,1365.99555,6441.0199,1729.74224,3473.74245,4263.11733,,2018,26452.24575,9852.98521,2128.9129,9902.9026,2054.85586,1906.67204,6441.0199,1729.74224,3473.74245,4263.11733,,"26,452",OK,"25,846.33",OK,,"9,853","2,129","9,903","2,055","1,907" +2019,27111.96969,9870.20653,2149.29851,10293.95356,2129.97886,1956.78323,6676.25733,1833.52292,3483.53313,4254.51283,,2019,3849.60034,0,49.1729,1932.72779,1306.38347,561.31618,0,0,0,0,,2019,23437.1474,9921.02838,2110.27681,8428.71452,837.74505,1411.54193,6712.04432,1846.49636,3499.02531,4279.23679,,2019,27286.74775,9921.02838,2159.44972,10361.44231,2144.12852,1972.85811,6712.04432,1846.49636,3499.02531,4279.23679,,"27,287",OK,"26,558.91",OK,,"9,921","2,159","10,361","2,144","1,973" +2020,27872.31074,9924.98972,2177.37163,10723.64264,2218.06547,2019.89524,6925.04552,1949.21857,3503.90343,4265.15027,,2020,4045.97165,0,51.01699,2042.9694,1368.97715,583.00811,0,0,0,0,,2020,24067.43647,9993.83353,2140.06585,8774.88468,868.82754,1459.26539,6974.05001,1967.78909,3524.80757,4298.48924,,2020,28113.40811,9993.83353,2191.08284,10817.85408,2237.80468,2042.2735,6974.05001,1967.78909,3524.80757,4298.48924,,"28,113",OK,"27,282.85",OK,,"9,994","2,191","10,818","2,238","2,042" +2021,28618.70702,9983.01832,2206.25661,11148.40352,2309.96345,2085.42679,7164.03237,2068.53061,3524.4669,4278.21684,,2021,4251.15641,0,52.92951,2157.65401,1434.82957,605.74331,0,0,0,0,,2021,24681.38032,10071.10555,2170.7959,9114.72008,901.1759,1509.13464,7227.10542,2093.60722,3551.08164,4320.69502,,2021,28932.53673,10071.10555,2223.72542,11272.37409,2336.00547,2114.87795,7227.10542,2093.60722,3551.08164,4320.69502,,"28,933",OK,"28,018.09",OK,,"10,071","2,224","11,272","2,336","2,115" +2022,29351.95169,10044.16537,2235.9056,11568.61971,2405.78813,2153.33573,7393.49912,2191.41636,3545.27873,4293.61727,,2022,4465.56908,0,54.91431,2277.01042,1504.09713,629.54721,0,0,0,0,,2022,25279.99282,10152.90092,2202.47294,9448.68386,934.83596,1561.17178,7471.6167,2224.01593,3577.97044,4345.85101,,2022,29745.5619,10152.90092,2257.38725,11725.69428,2438.93309,2190.719,7471.6167,2224.01593,3577.97044,4345.85101,,"29,746",OK,"28,765.63",OK,,"10,153","2,257","11,726","2,439","2,191" +2023,30072.83791,10108.30392,2266.27077,11984.67474,2505.65485,2223.5799,7613.72702,2317.83312,3566.39411,4311.25631,,2023,4689.55071,0,56.97074,2401.19492,1576.95728,654.42778,0,0,0,0,,2023,25863.86294,10239.15266,2235.09085,9777.10526,969.8048,1615.35734,7707.87179,2359.04969,3605.5683,4373.90969,,2023,30553.41365,10239.15266,2292.06158,12178.30019,2546.76208,2269.78512,7707.87179,2359.04969,3605.5683,4373.90969,,"30,553",OK,"29,526.06",OK,,"10,239","2,292","12,178","2,547","2,270" +2024,30782.15882,10175.30699,2297.30426,12396.95213,2609.67894,2296.11715,7824.9973,2447.73821,3587.86825,4331.03871,,2024,4923.49337,0,59.09881,2530.37727,1653.61661,680.40068,0,0,0,0,,2024,26433.79687,10329.88592,2268.67662,10100.41449,1006.07306,1671.67867,7936.26284,2498.76495,3634.01056,4404.87362,,2024,31357.29024,10329.88592,2327.77543,12630.79176,2659.68967,2352.07935,7936.26284,2498.76495,3634.01056,4404.87362,,"31,357",OK,"30,300.22",FALSE,,"10,330","2,328","12,631","2,660","2,352" +2025,31480.70758,10245.04764,2328.95824,12805.83539,2717.97573,2370.90533,8027.59121,2581.08893,3609.75633,4352.86921,,2025,5167.74283,0,61.29858,2664.70799,1734.26127,707.47499,0,0,0,0,,2025,26990.41109,10425.04747,2303.238,10418.97298,1043.63392,1730.11679,8157.13999,2643.19841,3663.40336,4438.70083,,2025,32158.15393,10425.04747,2364.53658,13083.68097,2777.8952,2437.59178,8157.13999,2643.19841,3663.40336,4438.70083,,"32,158",OK,"31,088.75",OK,,"10,425","2,365","13,084","2,778","2,438" +2026,32169.27735,10317.39891,2361.18485,13211.70805,2830.66056,2447.9023,8221.78998,2717.8426,3632.11354,4376.65255,,2026,5422.65158,0,63.57028,2804.36071,1819.0603,735.66029,0,0,0,0,,2026,27534.20076,10524.52251,2338.74298,10733.07153,1082.4986,1790.65772,8370.74328,2792.39074,3693.8096,4475.31038,,2026,32956.85235,10524.52251,2402.31326,13537.43224,2901.5589,2526.31801,8370.74328,2792.39074,3693.8096,4475.31038,,"32,957",OK,"31,892.14",OK,,"10,525","2,402","13,537","2,902","2,526" +2027,32848.66128,10392.23382,2393.93626,13614.95362,2947.84876,2527.06589,8407.87486,2857.95652,3654.99508,4402.29347,,2027,5688.40711,0,65.91368,2949.4305,1908.12091,764.94202,0,0,0,0,,2027,28065.14404,10627.9936,2375.11811,11042.79902,1122.67702,1853.26113,8577.20237,2946.30478,3725.22763,4514.51404,,2027,33753.55115,10627.9936,2441.03179,13992.22952,3030.79794,2618.20315,8577.20237,2946.30478,3725.22763,4514.51404,,"33,754",OK,"32,710.26",OK,,"10,628","2,441","13,992","3,031","2,618" +2028,33519.65253,10469.42543,2427.16462,14015.95562,3069.65567,2608.35396,8586.12709,3001.388,3678.45614,4429.69673,,2028,5964.97023,0,68.32795,3099.87741,2001.49122,795.27364,0,0,0,0,,2028,28582.72992,10734.96182,2412.28196,11348.07585,1164.15874,1917.8471,8776.63901,3104.79239,3757.62278,4556.03518,,2028,34547.70014,10734.96182,2480.60991,14447.95326,3165.64996,2713.12074,8776.63901,3104.79239,3757.62278,4556.03518,,"34,548",OK,"33,542.30",OK,,"10,735","2,481","14,448","3,166","2,713" +2029,34183.04424,10548.84677,2460.82209,14415.09758,3196.19661,2691.72436,8756.82789,3148.09436,3702.55192,4458.76706,,2029,6252.14374,0,70.81192,3255.57157,2099.1735,826.58676,0,0,0,0,,2029,29086.13938,10844.80017,2450.13284,11648.6956,1206.92778,1984.31042,8969.1286,3267.62464,3790.92531,4599.53408,,2029,35338.28312,10844.80017,2520.94476,14904.26716,3306.10127,2810.89718,8969.1286,3267.62464,3790.92531,4599.53408,,"35,338",OK,"34,387.01",OK,,"10,845","2,521","14,904","3,306","2,811" +2030,34839.62958,10630.37088,2494.86082,14812.76302,3327.58693,2777.13494,8920.25852,3298.0329,3727.33762,4489.40921,,2030,6549.82146,0,73.3652,3416.42897,2201.20044,858.82685,0,0,0,0,,2030,29574.9144,10957.00064,2488.57935,11944.57181,1250.97941,2052.56364,9154.78771,3434.60985,3825.09301,4644.73316,,2030,36124.73586,10957.00064,2561.94455,15361.00078,3452.17986,2911.39049,9154.78771,3434.60985,3825.09301,4644.73316,,"36,125",OK,"35,243.52",OK,,"10,957","2,562","15,361","3,452","2,911" +2031,35490.20169,10713.8708,2529.23298,15209.33545,3463.94195,2864.54354,9076.70022,3451.16094,3752.86841,4521.52793,,2031,6858.09919,0,75.98683,3582.47162,2307.67613,891.96461,0,0,0,0,,2031,30049.12131,11071.26393,2527.55412,12235.79293,1296.3142,2122.54881,9333.75351,3605.64942,3860.13572,4691.46832,,2031,36907.22049,11071.26393,2603.54095,15818.26455,3603.99033,3014.51342,9333.75351,3605.64942,3860.13572,4691.46832,,"36,907",OK,"36,111.57",FALSE,,"11,071","2,604","15,818","3,604","3,015" +2032,36135.55373,10799.21958,2563.89071,15605.19839,3605.37701,2953.90802,9226.43422,3607.43578,3779.1995,4555.02795,,2032,7177.31086,0,78.67898,3753.85845,2418.76572,926.0077,0,0,0,0,,2032,30509.50061,11187.51113,2567.01382,12522.71337,1342.96191,2194.25444,9506.29652,3780.76012,3896.11742,4739.67794,,2032,37686.81146,11187.51113,2645.6928,16276.57182,3761.72763,3120.26214,9506.29652,3780.76012,3896.11742,4739.67794,,"37,687",OK,"36,991.77",FALSE,,"11,188","2,646","16,277","3,762","3,120" +2033,36776.47886,10886.29024,2598.78617,16000.73536,3752.00744,3045.18622,9369.74177,3766.81473,3806.38608,4589.81402,,2033,7507.87992,0,81.44843,3930.81141,2534.63574,960.98434,0,0,0,0,,2033,30957.13279,11305.72884,2606.91768,12805.85346,1390.98733,2267.69773,9672.83849,3960.00596,3933.11549,4789.31445,,2033,38465.01272,11305.72884,2688.36612,16736.66487,3925.62307,3228.68207,9672.83849,3960.00596,3933.11549,4789.31445,,"38,465",OK,"37,885.06",OK,,"11,306","2,688","16,737","3,926","3,229" +2034,37413.77023,10974.95584,2633.87152,16396.32989,3903.94858,3138.33599,9506.90409,3929.2551,3834.48334,4625.79089,,2034,7850.38419,0,84.30484,4113.64995,2655.48144,996.94797,0,0,0,0,,2034,31393.46979,11426.01775,2647.23593,13085.90269,1440.48065,2342.92879,9833.90922,4143.52988,3971.235,4840.37712,,2034,39243.85399,11426.01775,2731.54077,17199.55264,4095.96209,3339.87676,9833.90922,4143.52988,3971.235,4840.37712,,"39,244",OK,"38,792.95",OK,,"11,426","2,732","17,200","4,096","3,340" +2035,38048.22099,11065.08941,2669.09891,16792.36549,4061.31575,3233.31518,9638.20245,4094.71421,3863.54649,4662.8633,,2035,8205.39328,0,87.25627,4302.69325,2781.49753,1033.94623,0,0,0,0,,2035,31819.79681,11548.44145,2687.93279,13363.48691,1491.52272,2419.99044,9989.97711,4331.47394,4010.57148,4892.85182,,2035,40025.19009,11548.44145,2775.18906,17666.18015,4273.02025,3453.93666,9989.97711,4331.47394,4010.57148,4892.85182,,"40,025",OK,"39,716.77",OK,,"11,548","2,775","17,666","4,273","3,454" +2036,38680.6243,11156.56399,2704.42051,17189.22569,4224.2243,3330.08164,9763.91807,4263.14936,3893.6307,4700.93599,,2036,8573.28578,0,90.30554,4498.14065,2912.84527,1071.99431,0,0,0,0,,2036,32236.85061,11672.91234,2728.96541,13638.99962,1544.15978,2498.88338,10141.37203,4523.87724,4051.19417,4946.65913,,2036,40810.13638,11672.91234,2819.27095,18137.14027,4457.00506,3570.8777,10141.37203,4523.87724,4051.19417,4946.65913,,"40,810",OK,"40,657.21",OK,,"11,673","2,819","18,137","4,457","3,571" +2037,39311.77332,11249.25262,2739.78846,17587.29399,4392.78956,3428.59321,9884.33219,4434.51785,3924.79118,4739.91371,,2037,8954.42711,0,93.45316,4700.18926,3049.68944,1111.09525,0,0,0,0,,2037,32645.15862,11799.29056,2770.27345,13912.7293,1598.42065,2579.59366,10288.28744,4720.78024,4093.14959,5001.70776,,2037,41599.58572,11799.29056,2863.72661,18612.91857,4648.11009,3690.68891,10288.28744,4720.78024,4093.14959,5001.70776,,"41,600",OK,"41,614.73",OK,,"11,799","2,864","18,613","4,648","3,691" +2038,39942.46119,11343.02835,2775.15493,17986.95393,4567.12685,3528.80776,9999.72605,4608.77701,3957.08311,4779.70121,,2038,9349.42264,0,96.70243,4909.19858,3192.24476,1151.27688,0,0,0,0,,2038,33045.58039,11927.54739,2811.78433,14185.09322,1654.35215,2662.1412,10430.89885,4922.36312,4136.48919,5057.96728,,2038,42395.00303,11927.54739,2908.48676,19094.2918,4846.59691,3813.41808,10430.89885,4922.36312,4136.48919,5057.96728,,"42,395",OK,"42,590.34",OK,,"11,928","2,908","19,094","4,847","3,813" +2039,40573.48107,11437.7642,2810.47206,18388.58902,4747.35152,3630.68312,10110.3809,4785.88414,3990.5617,4820.20321,,2039,9758.96873,0,100.05648,5125.59401,3340.74718,1192.57106,0,0,0,0,,2039,33438.97789,12057.67092,2853.41558,14456.49961,1711.99949,2746.5522,10569.32047,5128.86149,4181.25896,5115.42247,,2039,43197.94662,12057.67092,2953.47205,19582.09363,5052.74667,3939.12326,10569.32047,5128.86149,4181.25896,5115.42247,,"43,198",OK,"43,585.11",OK,,"12,058","2,953","19,582","5,053","3,939" +2040,41205.62612,11533.33323,2845.69203,18792.58278,4933.5789,3734.17715,10216.57798,4965.79655,4025.28213,4861.32448,,2040,10183.74683,0,103.51744,5349.78965,3495.43101,1235.00873,0,0,0,0,,2040,33826.17008,12189.6499,2895.0957,14727.34159,1771.407,2832.8515,10703.69526,5340.49269,4227.51748,5174.05207,,2040,44009.91692,12189.6499,2998.61314,20077.13123,5266.83801,4067.86024,10703.69526,5340.49269,4227.51748,5174.05207,,"44,010",OK,"44,600.09",OK,,"12,190","2,999","20,077","5,267","4,068" +2041,41839.68949,11629.60846,2880.76697,19199.31873,5125.92432,3839.24769,10318.59852,5148.47155,4061.2996,4902.96975,,2041,10624.34016,0,107.08711,5582.13019,3656.50809,1278.61477,0,0,0,0,,2041,34207.90529,12323.437,2936.76898,14998.01211,1832.61807,2921.05647,10834.30233,5557.39798,4275.3357,5233.80304,,2041,44832.24545,12323.437,3043.8561,20580.1423,5489.12616,4199.67124,10834.30233,5557.39798,4275.3357,5233.80304,,"44,832",OK,"45,636.23",OK,,"12,323","3,044","20,580","5,489","4,200" +2042,42476.46433,11726.46295,2915.64905,19609.18039,5324.50311,3945.85259,10416.72376,5333.86645,4098.66931,4945.04377,,2042,11081.28282,0,110.76516,5822.9199,3824.18532,1323.41245,0,0,0,0,,2042,34584.90163,12459.00086,2978.40406,15268.88425,1895.67576,3011.18096,10961.4337,5779.67512,4324.8102,5294.62184,,2042,45666.18445,12459.00086,3089.16922,21091.80414,5719.86108,4334.59341,10961.4337,5779.67512,4324.8102,5294.62184,,"45,666",OK,"46,694.43",OK,,"12,459","3,089","21,092","5,720","4,335" +2043,43116.7438,11823.76973,2950.29042,20022.55128,5529.4306,4053.9497,10511.23495,5521.93856,4137.44643,4987.45129,,2043,11555.17228,0,114.54863,6072.50015,3998.69356,1369.42994,0,0,0,0,,2043,34957.89372,12596.37103,3019.98692,15540.29644,1960.62242,3103.24312,11085.25359,6007.45358,4376.06159,5356.48792,,2043,46513.066,12596.37103,3134.53555,21612.79659,5959.31598,4472.67306,11085.25359,6007.45358,4376.06159,5356.48792,,"46,513",OK,"47,775.69",OK,,"12,596","3,135","21,613","5,959","4,473" +2044,43761.32106,11921.40184,2984.64325,20439.81493,5740.82214,4163.49688,10602.41332,5712.64519,4177.68618,5030.09703,,2044,12046.60665,0,118.43288,6331.207,4180.27069,1416.69607,0,0,0,0,,2044,35327.60453,12735.60078,3061.52066,15812.56682,2027.49907,3197.26091,11205.89686,6240.85088,4429.23023,5419.38895,,2044,47374.21117,12735.60078,3179.95354,22143.77383,6207.76975,4613.95699,11205.89686,6240.85088,4429.23023,5419.38895,,"47,374",OK,"48,881.05",OK,,"12,736","3,180","22,144","6,208","4,614" +2045,44410.98925,12019.23231,3018.65968,20861.35484,5958.79306,4274.45196,10690.54011,5905.94365,4219.44374,5072.88576,,2045,12556.18313,0,122.41374,6599.37655,4369.155,1465.23784,0,0,0,0,,2045,35694.7367,12876.72252,3103.0049,16086.02106,2096.34403,3293.25174,11323.5533,6479.9705,4484.45302,5483.29958,,2045,48250.91983,12876.72252,3225.41864,22685.39761,6465.49903,4758.48958,11323.5533,6479.9705,4484.45302,5483.29958,,"48,251",OK,"50,011.53",OK,,"12,877","3,225","22,685","6,465","4,758" +2046,45066.54153,12117.1342,3052.29187,21287.55454,6183.45868,4386.7728,10775.89657,6101.79125,4262.77431,5115.72222,,2046,13084.52243,0,126.48987,6877.37056,4565.58088,1515.08112,0,0,0,0,,2046,36059.97537,13019.70439,3144.41143,16361.01918,2167.19678,3391.23369,11438.48426,6724.93422,4541.83504,5548.16419,,2046,49144.4978,13019.70439,3270.90131,23238.38974,6732.77765,4906.31481,11438.48426,6724.93422,4541.83504,5548.16419,,"49,144",OK,"51,168.09",OK,,"13,020","3,271","23,238","6,733","4,906" +2047,45728.77106,12214.98054,3085.49198,21718.79755,6414.93434,4500.41725,10858.76393,6300.14529,4307.73308,5158.51114,,2047,13632.21891,0,130.65998,7165.53248,4769.77975,1566.24671,0,0,0,0,,2047,36423.97511,13164.49354,3185.71048,16637.92941,2240.08985,3491.22244,11551.05733,6975.82005,4601.48116,5613.91272,,2047,50056.19402,13164.49354,3316.37046,23803.46189,7009.8696,5057.46916,11551.05733,6975.82005,4601.48116,5613.91272,,"50,056",OK,"52,351.66",OK,,"13,164","3,316","23,803","7,010","5,057" +2048,46398.47098,12312.64437,3118.21217,22155.4674,6653.33538,4615.34315,10939.42343,6500.96309,4354.37524,5201.15727,,2048,14199.80318,0,134.91969,7464.14914,4981.98556,1618.74879,0,0,0,0,,2048,36787.36656,13311.07476,3226.90303,16917.09524,2315.04427,3593.22899,11661.71412,7232.61634,4663.53428,5680.48465,,2048,50987.16974,13311.07476,3361.82271,24381.24438,7297.02983,5211.97778,11661.71412,7232.61634,4663.53428,5680.48465,,"50,987",OK,"53,563.15",OK,,"13,311","3,362","24,381","7,297","5,212" +2049,47076.43447,12409.99873,3150.40458,22597.94759,6898.77713,4731.50836,11018.15632,6704.20196,4402.75599,5243.56536,,2049,14787.76567,0,139.26376,7773.47385,5202.43182,1672.59624,0,0,0,0,,2049,37150.76754,13459.43224,3267.99924,17198.86106,2392.07374,3697.26093,11770.97082,7495.25425,4728.14992,5747.81406,,2049,51938.53321,13459.43224,3407.263,24972.33491,7594.50557,5369.85716,11770.97082,7495.25425,4728.14992,5747.81406,,"51,939",OK,"54,803.39",OK,,"13,459","3,407","24,972","7,595","5,370" +2050,47763.45466,12506.91666,3182.02139,23046.62165,7151.37491,4848.87072,11095.24383,6909.81921,4452.93051,5285.64015,,2050,15396.60679,0,143.68769,8093.76782,5431.35337,1727.79791,0,0,0,0,,2050,37514.80345,13609.52672,3309.00136,17483.58691,2471.19376,3803.32555,11879.33673,7763.67339,4795.47551,5815.82381,,2050,52911.41023,13609.52672,3452.68905,25577.35473,7902.54713,5531.12346,11879.33673,7763.67339,4795.47551,5815.82381,,"52,911",OK,"56,073.24",OK,,"13,610","3,453","25,577","7,903","5,531" +2051,48460.32471,12603.2712,3213.01473,23501.87309,7411.24408,4967.38809,11170.96721,7117.77215,4504.95402,5327.28639,,2051,16026.91305,0,148.18892,8425.35753,5668.99563,1784.37097,0,0,0,0,,2051,37880.12572,13761.30418,3349.89346,17771.63628,2552.43278,3911.4358,11987.16181,8037.90385,4865.64006,5884.43675,,2051,53907.03878,13761.30418,3498.08239,26196.99381,8221.42841,5695.80678,11987.16181,8037.90385,4865.64006,5884.43675,,"53,907",OK,"57,373.62",OK,,"13,761","3,498","26,197","8,221","5,696" +2052,49167.83778,12698.93539,3243.33678,23964.08545,7678.49995,5087.0183,11245.60769,7328.01808,4558.88169,5368.40881,,2052,16679.26667,0,152.76578,8768.57099,5915.5994,1842.33049,0,0,0,0,,2052,38247.3807,13914.66006,3390.64553,18063.40359,2635.8198,4021.60189,12094.84505,8317.98015,4938.75551,5953.54975,,2052,54926.64737,13914.66006,3543.41132,26831.97458,8551.4192,5863.93238,12094.84505,8317.98015,4938.75551,5953.54975,,"54,927",OK,"58,705.40",OK,,"13,915","3,543","26,832","8,551","5,864" +2053,49886.78702,12793.78227,3272.93968,24433.64223,7953.25787,5207.71922,11319.44651,7540.51431,4614.76872,5408.91217,,2053,17354.14209,0,157.41582,9123.65961,6171.38862,1901.67804,0,0,0,0,,2053,38617.189,14069.43031,3431.22771,18359.32964,2721.36976,4133.82268,12203.02802,8603.83313,5014.93155,6023.02056,,2053,55971.33109,14069.43031,3588.64353,27482.98925,8892.75838,6035.50073,12203.02802,8603.83313,5014.93155,6023.02056,,"55,971",OK,"60,069.32",OK,,"14,069","3,589","27,483","8,893","6,036" +2054,50617.96559,12887.68488,3301.77559,24910.92696,8235.63316,5329.44868,11392.76492,7755.21817,4672.6703,5448.70121,,2054,18051.97263,0,162.13665,9490.8468,6436.57972,1962.40946,0,0,0,0,,2054,38990.16953,14225.40556,3471.60252,18659.88964,2809.09336,4248.09156,12312.44701,8895.36111,5094.26836,6092.68095,,2054,57042.14216,14225.40556,3633.73918,28150.73644,9245.67308,6210.50102,12312.44701,8895.36111,5094.26836,6092.68095,,"57,042",OK,"61,466.06",OK,,"14,225","3,634","28,151","9,246","6,211" +2055,51362.16663,12980.51625,3329.79667,25396.32316,8525.74117,5452.16454,11465.84415,7972.08695,4732.64164,5487.68066,,2055,18773.22095,0,166.92622,9870.37492,6711.39683,2024.52298,0,0,0,0,,2055,39366.95735,14382.37948,3511.72918,18965.55407,2899.00568,4364.40386,12423.7522,9192.4906,5176.8658,6162.36685,,2055,58140.1783,14382.37948,3678.65539,28835.92898,9610.40251,6388.92684,12423.7522,9192.4906,5176.8658,6162.36685,,"58,140",OK,"62,896.29",OK,,"14,382","3,679","28,836","9,610","6,389" +2056,52120.18332,13072.14944,3356.95508,25890.21435,8823.69721,5575.82465,11538.96544,8191.07796,4794.73791,5525.75528,,2056,19518.46191,0,171.78182,10262.5637,6996.08839,2088.02799,0,0,0,0,,2056,39748.24856,14540.20865,3551.5722,19276.77729,2991.13242,4482.76572,12537.45793,9495.20967,5262.84023,6231.94921,,2056,59266.71046,14540.20865,3723.35402,29539.34099,9987.22082,6570.79371,12537.45793,9495.20967,5262.84023,6231.94921,,"59,267",OK,"64,360.92",OK,,"14,540","3,723","29,539","9,987","6,571" +2057,52892.80878,13162.45748,3383.20296,26392.98404,9129.61663,5700.38686,11612.41004,8412.14852,4859.01432,5562.82981,,2057,20288.29751,0,176.70199,10667.74925,7290.90951,2152.93676,0,0,0,0,,2057,40134.71741,14698.74225,3591.08815,19593.97829,3085.5059,4603.18451,12653.89167,9803.56099,5352.30146,6301.30169,,2057,60423.01492,14698.74225,3767.79014,30261.72753,10376.4154,6756.12127,12653.89167,9803.56099,5352.30146,6301.30169,,"60,423",OK,"65,860.80",OK,,"14,699","3,768","30,262","10,376","6,756" +2058,53680.8362,13251.3134,3408.49248,26905.01576,9443.61477,5825.80901,11686.45918,8635.25594,4925.52606,5598.809,,2058,21083.24416,0,181.68726,11086.20462,7596.09909,2219.25319,0,0,0,0,,2058,40526.96011,14857.73948,3630.21375,19917.55804,3182.15693,4725.65743,12773.2775,10117.5978,5445.32891,6370.25904,,2058,61610.20427,14857.73948,3811.90102,31003.76266,10778.25602,6944.91062,12773.2775,10117.5978,5445.32891,6370.25904,,"61,610",FALSE,"67,396.57",OK,,"14,858","3,812","31,004","10,778","6,945" +2059,54485.05871,13338.59025,3432.7758,27426.69302,9765.80695,5952.04895,11761.3941,8860.35752,4994.32832,5633.59758,,2059,21903.80185,0,186.73924,11518.18821,7911.89463,2286.97977,0,0,0,0,,2059,40925.5484,15016.92702,3668.87368,20247.89904,3281.11957,4850.17849,12895.7163,10437.40701,5541.98726,6438.64497,,2059,62829.35025,15016.92702,3855.61292,31766.08725,11193.0142,7137.15826,12895.7163,10437.40701,5541.98726,6438.64497,,"62,829",OK,"68,968.80",OK,,"15,017","3,856","31,766","11,193","7,137" +2060,55306.26947,13424.16108,3456.00506,27958.39935,10096.3085,6079.06453,11837.49604,9087.41057,5065.4763,5667.1003,,2060,22750.5147,0,191.85845,11963.99011,8238.5437,2356.12244,0,0,0,0,,2060,41331.10259,15176.04555,3706.99267,20585.40423,3382.4316,4976.74559,13021.33768,10763.08734,5642.34503,6506.29035,,2060,64081.61729,15176.04555,3898.85112,32549.39434,11620.9753,7332.86803,13021.33768,10763.08734,5642.34503,6506.29035,,"64,082",OK,"70,578.13",OK,,"15,176","3,899","32,549","11,621","7,333" +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +Table 4: Total REF2 Electricity Generation by Economic Development Status (TWh),,,,,,,Table 5: Total REF1 Electricity Generation by Economic Development Status (TWh),,,,,,,,,,,,,,,"Table 6: Change in Electricity Generation by MDC vs. LLDC Regions, REF1-REF2 (TWh)",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,LLDC+HighNRR,China,MDC + LAC + EE,Total Electricity Demand in Countries with Higher Educational Attainment (TWh),Total Electricity Demand in Countries with Higher Educational Attainment (TWh) % LLDC,,,"LLDC with low educational attainment, excluding China","MDC + EE + LAC with low educational attainment, excluding China",China,"LLDC with higher educational attainment, excluding China",MDC + EE + LAC with higher educational attainment,"Total Electricity Demand in Countries with Low Educational Attainment (TWh), exluding China","Total Electricity Demand in Countries with Low Educational Attainment (TWh), exluding China % LLDC",Total Electricity Demand in Countries with Higher Educational Attainment (TWh),Total Electricity Demand in Countries with Higher Educational Attainment (TWh) % LLDC,Total Electricity Demand (TWh),Total Electricity Demand (TWh) % LLDC,,,,LLDC,China,MDC + EE +LAC,Total change in REF1-REF2,% LLDC with higher educational attainment,% LLDC with Low Educational Attainment,% LLDC,% MDC + LAC + EE + China,,"% LLDC with low educational attainment, TWh)","% LLDC with higher educational attainment, TWh)",,,,,,,,,,,,,,,,,,,,,,,,, +2014,4555.598,5262.773,13334.330,23152.701,0.19676,,2014,0.000,0.000,5262.773,4555.598,13334.330,0.000,,23152.701,0.19676,23152.701,0.00000,,,,0.000,0.000,0.000,0.000,,,,,,0%,100%,,,,,,,,,,,,,,,,,,,,,,,,, +2015,4754.218,5577.466,13461.522,23793.206,0.19981,,2015,2622.263,528.301,5577.466,2131.955,12933.221,3150.565,0.83232,20642.642,0.10328,23793.206,0.13241,,,,0.000,0.000,0.000,0.000,,,,,,55%,45%,,,,,,,,,,,,,,,,,,,,,,,,, +2016,4990.643,5868.272,13579.414,24438.330,0.20421,,2016,2765.394,546.916,5873.482,2231.744,13044.507,3312.310,0.83488,21149.734,0.10552,24462.044,0.13541,,,,6.495,5.210,12.010,23.715,0.12232,0.15157,0.27389,0.72611,,55%,45%,,,,,,,,,,,,,,,,,,,,,,,,, +2017,5234.883,6148.152,13704.650,25087.685,0.20866,,2017,2915.838,566.854,6161.346,2335.411,13167.239,3482.692,0.83724,21663.995,0.10780,25146.688,0.13850,,,,16.366,13.194,29.443,59.003,0.12336,0.15401,0.27737,0.72263,,56%,44%,,,,,,,,,,,,,,,,,,,,,,,,, +2018,5487.154,6417.387,13837.014,25741.555,0.21316,,2018,3073.751,588.075,6441.020,2442.987,13300.495,3661.826,0.83940,22184.502,0.11012,25846.329,0.14168,,,,29.584,23.633,51.556,104.774,0.12504,0.15732,0.28236,0.71764,,56%,44%,,,,,,,,,,,,,,,,,,,,,,,,, +2019,5747.675,6676.257,13976.288,26400.221,0.21771,,2019,3239.111,610.489,6712.044,2554.415,13442.847,3849.600,0.84141,22709.307,0.11248,26558.907,0.14495,,,,45.851,35.787,77.048,158.686,0.12740,0.16155,0.28894,0.71106,,56%,44%,,,,,,,,,,,,,,,,,,,,,,,,, +2020,6016.663,6925.046,14122.257,27063.965,0.22231,,2020,3411.947,634.025,6974.050,2669.662,13593.165,4045.972,0.84329,23236.877,0.11489,27282.849,0.14830,,,,64.946,49.004,104.933,218.884,0.13025,0.16647,0.29672,0.70328,,56%,44%,,,,,,,,,,,,,,,,,,,,,,,,, +2021,6294.335,7164.032,14274.702,27733.069,0.22696,,2021,3592.484,658.673,7227.105,2788.791,13751.036,4251.156,0.84506,23766.932,0.11734,28018.088,0.15173,,,,86.940,63.073,135.007,285.020,0.13331,0.17172,0.30503,0.69497,,56%,44%,,,,,,,,,,,,,,,,,,,,,,,,, +2022,6580.909,7393.499,14433.407,28407.815,0.23166,,2022,3781.108,684.462,7471.617,2911.903,13916.546,4465.569,0.84672,24300.065,0.11983,28765.635,0.15524,,,,112.102,78.118,167.600,357.820,0.13630,0.17699,0.31329,0.68671,,56%,44%,,,,,,,,,,,,,,,,,,,,,,,,, +2023,6876.603,7613.727,14598.155,29088.484,0.23640,,2023,3978.152,711.399,7707.872,3039.038,14089.601,4689.551,0.84830,24836.511,0.12236,29526.062,0.15883,,,,140.588,94.145,202.845,437.577,0.13914,0.18214,0.32129,0.67871,,57%,43%,,,,,,,,,,,,,,,,,,,,,,,,, +2024,7181.634,7824.997,14768.728,29775.359,0.24119,,2024,4183.994,739.499,7936.263,3170.225,14270.241,4923.493,0.84980,25376.729,0.12493,30300.222,0.16249,,,,172.585,111.266,241.012,524.863,0.14175,0.18707,0.32882,0.67118,,57%,43%,,,,,,,,,,,,,,,,,,,,,,,,, +2025,7496.220,8027.591,14944.911,30468.722,0.24603,,2025,4398.969,768.774,8157.140,3305.467,14458.402,5167.743,0.85124,25921.009,0.12752,31088.752,0.16623,,,,208.216,129.549,282.265,620.030,0.14408,0.19174,0.33582,0.66418,,57%,43%,,,,,,,,,,,,,,,,,,,,,,,,, +2026,7820.579,8221.790,15126.486,31168.855,0.25091,,2026,4623.421,799.231,8370.743,3444.827,14653.923,5422.652,0.85261,26469.493,0.13014,31892.145,0.17003,,,,247.669,148.953,326.668,723.290,0.14620,0.19622,0.34242,0.65758,,57%,43%,,,,,,,,,,,,,,,,,,,,,,,,, +2027,8154.928,8407.875,15313.236,31876.038,0.25583,,2027,4857.551,830.856,8577.202,3588.274,14856.373,5688.407,0.85394,27021.849,0.13279,32710.256,0.17390,,,,290.898,169.328,373.993,834.218,0.14815,0.20056,0.34871,0.65129,,58%,42%,,,,,,,,,,,,,,,,,,,,,,,,, +2028,8499.484,8586.127,15504.944,32590.555,0.26080,,2028,5101.369,863.602,8776.639,3735.596,15065.091,5964.970,0.85522,27577.325,0.13546,33542.296,0.17783,,,,337.480,190.512,423.748,951.740,0.14989,0.20470,0.35459,0.64541,,58%,42%,,,,,,,,,,,,,,,,,,,,,,,,, +2029,8854.466,8756.828,15701.393,33312.687,0.26580,,2029,5354.745,897.399,8969.129,3886.495,15279.243,6252.144,0.85647,28134.867,0.13814,34387.011,0.18182,,,,386.774,212.301,475.249,1074.323,0.15141,0.20861,0.36002,0.63998,,58%,42%,,,,,,,,,,,,,,,,,,,,,,,,, +2030,9220.091,8920.259,15902.367,34042.717,0.27084,,2030,5617.629,932.192,9154.788,4040.764,15498.144,6549.821,0.85768,28693.695,0.14082,35243.516,0.18584,,,,438.302,234.529,527.969,1200.800,0.15271,0.21230,0.36501,0.63499,,58%,42%,,,,,,,,,,,,,,,,,,,,,,,,, +2031,9596.577,9076.700,16107.647,34780.925,0.27591,,2031,5890.148,967.951,9333.754,4198.354,15721.367,6858.099,0.85886,29253.474,0.14352,36111.573,0.18991,,,,491.924,257.053,581.671,1330.648,0.15385,0.21584,0.36969,0.63031,,58%,42%,,,,,,,,,,,,,,,,,,,,,,,,, +2032,9984.141,9226.434,16317.018,35527.594,0.28102,,2032,6172.624,1004.687,9506.297,4359.379,15948.779,7177.311,0.86002,29814.455,0.14622,36991.766,0.19402,,,,547.862,279.862,636.448,1464.172,0.15488,0.21930,0.37418,0.62582,,59%,41%,,,,,,,,,,,,,,,,,,,,,,,,, +2033,10383.001,9369.742,16530.263,36283.005,0.28617,,2033,6465.447,1042.433,9672.838,4524.002,16180.344,7507.880,0.86115,30377.185,0.14893,37885.065,0.19818,,,,606.448,303.097,692.514,1602.060,0.15583,0.22271,0.37854,0.62146,,59%,41%,,,,,,,,,,,,,,,,,,,,,,,,, +2034,10793.374,9506.904,16747.163,37047.442,0.29134,,2034,6769.131,1081.253,9833.909,4692.474,16416.182,7850.384,0.86227,30942.566,0.15165,38792.950,0.20237,,,,668.231,327.005,750.272,1745.508,0.15673,0.22610,0.38283,0.61717,,59%,41%,,,,,,,,,,,,,,,,,,,,,,,,, +2035,11215.479,9638.202,16967.503,37821.185,0.29654,,2035,7084.191,1121.202,9989.977,4865.033,16656.365,8205.393,0.86336,31511.374,0.15439,39716.768,0.20660,,,,733.744,351.775,810.064,1895.583,0.15760,0.22948,0.38708,0.61292,,59%,41%,,,,,,,,,,,,,,,,,,,,,,,,, +2036,11649.532,9763.918,17191.066,38604.516,0.30177,,2036,7410.986,1162.300,10141.372,5041.787,16900.761,8573.286,0.86443,32083.921,0.15714,40657.206,0.21087,,,,803.241,377.454,871.995,2052.690,0.15843,0.23288,0.39131,0.60869,,60%,40%,,,,,,,,,,,,,,,,,,,,,,,,, +2037,12095.751,9884.332,17417.634,39397.718,0.30702,,2037,7749.879,1204.548,10288.287,5222.863,17149.158,8954.427,0.86548,32660.308,0.15991,41614.735,0.21517,,,,876.990,403.955,936.072,2217.017,0.15926,0.23631,0.39557,0.60443,,60%,40%,,,,,,,,,,,,,,,,,,,,,,,,, +2038,12554.355,9999.726,17646.991,40201.072,0.31229,,2038,8101.443,1247.979,10430.899,5408.547,17401.473,9349.423,0.86652,33240.918,0.16271,42590.341,0.21952,,,,955.635,431.173,1002.461,2389.269,0.16012,0.23985,0.39997,0.60003,,60%,40%,,,,,,,,,,,,,,,,,,,,,,,,, +2039,13025.560,10110.381,17878.919,41014.860,0.31758,,2039,8466.341,1292.628,10569.320,5599.179,17657.639,9758.969,0.86754,33826.138,0.16553,43585.107,0.22391,,,,1039.960,458.940,1071.347,2570.247,0.16107,0.24355,0.40461,0.59539,,60%,40%,,,,,,,,,,,,,,,,,,,,,,,,, +2040,13509.584,10216.578,18113.202,41839.364,0.32289,,2040,8845.221,1338.526,10703.695,5795.053,17917.597,10183.747,0.86856,34416.346,0.16838,44600.093,0.22833,,,,1130.690,487.117,1142.921,2760.728,0.16212,0.24745,0.40956,0.59044,,60%,40%,,,,,,,,,,,,,,,,,,,,,,,,, +2041,14006.645,10318.599,18349.623,42674.866,0.32822,,2041,9238.638,1385.702,10834.302,5996.328,18181.262,10624.340,0.86957,35011.893,0.17127,45636.233,0.23280,,,,1228.322,515.704,1217.341,2961.367,0.16325,0.25153,0.41478,0.58522,,61%,39%,,,,,,,,,,,,,,,,,,,,,,,,, +2042,14516.960,10416.724,18587.965,43521.648,0.33356,,2042,9647.105,1434.178,10961.434,6203.126,18448.586,11081.283,0.87058,35613.146,0.17418,46694.429,0.23731,,,,1333.272,544.710,1294.799,3172.781,0.16446,0.25576,0.42022,0.57978,,61%,39%,,,,,,,,,,,,,,,,,,,,,,,,, +2043,15040.747,10511.235,18828.010,44379.992,0.33891,,2043,10071.194,1483.979,11085.254,6415.665,18719.601,11555.172,0.87157,36220.520,0.17713,47775.692,0.24186,,,,1446.112,574.019,1375.570,3395.700,0.16572,0.26015,0.42587,0.57413,,61%,39%,,,,,,,,,,,,,,,,,,,,,,,,, +2044,15578.224,10602.413,19069.542,45250.179,0.34427,,2044,10511.478,1535.129,11205.897,6634.169,18994.382,12046.607,0.87257,36834.448,0.18011,48881.055,0.24645,,,,1567.423,603.484,1459.969,3630.876,0.16703,0.26466,0.43169,0.56831,,61%,39%,,,,,,,,,,,,,,,,,,,,,,,,, +2045,16129.608,10690.540,19312.344,46132.492,0.34964,,2045,10968.532,1587.652,11323.553,6858.812,19272.979,12556.183,0.87356,37455.344,0.18312,50011.527,0.25107,,,,1697.736,633.013,1548.287,3879.036,0.16839,0.26928,0.43767,0.56233,,62%,38%,,,,,,,,,,,,,,,,,,,,,,,,, +2046,16695.117,10775.897,19556.199,47027.212,0.35501,,2046,11442.951,1641.571,11438.484,7089.732,19555.350,13084.522,0.87454,38083.565,0.18616,51168.088,0.25572,,,,1837.566,662.588,1640.722,4140.876,0.16976,0.27400,0.44376,0.55624,,62%,38%,,,,,,,,,,,,,,,,,,,,,,,,, +2047,17274.968,10858.764,19800.890,47934.622,0.36039,,2047,11935.312,1696.907,11551.057,7326.962,19841.426,13632.219,0.87552,38719.446,0.18923,52351.665,0.26040,,,,1987.306,692.293,1737.443,4417.043,0.17114,0.27878,0.44992,0.55008,,62%,38%,,,,,,,,,,,,,,,,,,,,,,,,, +2048,17869.379,10939.423,20046.200,48855.002,0.36576,,2048,12446.135,1753.668,11661.714,7570.425,20131.207,14199.803,0.87650,39363.346,0.19232,53563.149,0.26510,,,,2147.181,722.291,1838.676,4708.147,0.17248,0.28357,0.45606,0.54394,,62%,38%,,,,,,,,,,,,,,,,,,,,,,,,, +2049,18478.568,11018.156,20291.912,49788.636,0.37114,,2049,12975.906,1811.860,11770.971,7819.964,20424.692,14787.766,0.87748,40015.627,0.19542,54803.393,0.26983,,,,2317.301,752.814,1944.641,5014.757,0.17376,0.28833,0.46210,0.53790,,62%,38%,,,,,,,,,,,,,,,,,,,,,,,,, +2050,19102.753,11095.244,20537.809,50735.805,0.37651,,2050,13525.121,1871.486,11879.337,8075.444,20721.854,15396.607,0.87845,40676.634,0.19853,56073.241,0.27458,,,,2497.812,784.093,2055.530,5337.436,0.17496,0.29302,0.46798,0.53202,,63%,37%,,,,,,,,,,,,,,,,,,,,,,,,, +2051,19742.150,11170.967,20783.674,51696.791,0.38188,,2051,14094.353,1932.560,11987.162,8336.907,21022.633,16026.913,0.87942,41346.703,0.20163,57373.616,0.27934,,,,2689.110,816.195,2171.519,5676.824,0.17606,0.29764,0.47370,0.52630,,63%,37%,,,,,,,,,,,,,,,,,,,,,,,,, +2052,20396.978,11245.608,21029.290,52671.876,0.38725,,2052,14684.170,1995.096,12094.845,8604.378,21326.907,16679.267,0.88038,42026.131,0.20474,58705.398,0.28412,,,,2891.571,849.237,2292.713,6033.522,0.17707,0.30218,0.47925,0.52075,,63%,37%,,,,,,,,,,,,,,,,,,,,,,,,, +2053,21067.454,11319.447,21274.441,53661.341,0.39260,,2053,15295.048,2059.094,12203.028,8877.671,21634.481,17354.142,0.88135,42715.180,0.20783,60069.322,0.28890,,,,3105.266,883.582,2419.133,6407.981,0.17797,0.30662,0.48459,0.51541,,63%,37%,,,,,,,,,,,,,,,,,,,,,,,,, +2054,21753.795,11392.765,21518.909,54665.469,0.39794,,2054,15927.427,2124.546,12312.447,9156.536,21945.100,18051.973,0.88231,43414.083,0.21091,61466.055,0.29369,,,,3330.167,919.682,2550.737,6800.586,0.17875,0.31093,0.48969,0.51031,,63%,37%,,,,,,,,,,,,,,,,,,,,,,,,, +2055,22456.220,11465.844,21762.477,55684.542,0.40328,,2055,16581.772,2191.449,12423.752,9440.808,22258.513,18773.221,0.88327,44123.072,0.21397,62896.293,0.29848,,,,3566.359,957.908,2687.484,7211.751,0.17941,0.31511,0.49452,0.50548,,64%,36%,,,,,,,,,,,,,,,,,,,,,,,,, +2056,23174.946,11538.965,22004.929,56718.841,0.40859,,2056,17258.652,2259.810,12537.458,9730.452,22574.547,19518.462,0.88422,44842.456,0.21699,64360.918,0.30327,,,,3814.158,998.492,2829.427,7642.077,0.17994,0.31916,0.49910,0.50090,,64%,36%,,,,,,,,,,,,,,,,,,,,,,,,, +2057,23910.191,11612.410,22246.047,57768.648,0.41390,,2057,17958.659,2329.639,12653.892,10025.593,22893.015,20288.298,0.88517,45572.499,0.21999,65860.797,0.30805,,,,4074.061,1041.482,2976.606,8092.149,0.18037,0.32309,0.50346,0.49654,,64%,36%,,,,,,,,,,,,,,,,,,,,,,,,, +2058,24662.171,11686.459,22485.615,58834.245,0.41918,,2058,18682.304,2400.940,12773.277,10326.437,23213.611,21083.244,0.88612,46313.326,0.22297,67396.570,0.31282,,,,4346.570,1086.818,3128.936,8562.324,0.18071,0.32693,0.50764,0.49236,,64%,36%,,,,,,,,,,,,,,,,,,,,,,,,, +2059,25431.106,11761.394,22723.415,59915.915,0.42445,,2059,19430.083,2473.719,12895.716,10633.302,23535.979,21903.802,0.88706,47064.998,0.22593,68968.800,0.31759,,,,4632.279,1134.322,3286.283,9052.885,0.18098,0.33071,0.51169,0.48831,,65%,35%,,,,,,,,,,,,,,,,,,,,,,,,, +2060,26217.212,11837.496,22959.231,61013.939,0.42969,,2060,20202.534,2547.981,13021.338,10946.498,23859.784,22750.515,0.88800,47827.620,0.22887,70578.134,0.32235,,,,4931.820,1183.842,3448.534,9564.196,0.18121,0.33444,0.51565,0.48435,,65%,35%,,,,,,,,,,,,,,,,,,,,,,,,, +2061,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,Table 7: Difference in FUNCTIONAL & IMPLEMENTATION UNITS between REF1 and REF2 populations in LLDC+HighNRR+HighED,,,,,,,,Table 8: Difference in FUNCTIONAL & IMPLEMENTATION UNITS between REF1 and REF2 populations in LLDC+HighNRR+LowED,,,,,,,,Table 9: Difference in EMISSIONS between REF1 and REF2 populations in LLDC+HighNRR+HighED,,,,,,,,,,,,,Table 10: Difference in EMISSIONS between REF1 and REF2 populations in LLDC+HighNRR+LowED,,,,,,,,,,,,,Table 11: EMISSIONS ALLOCATIONS TO (a) Health & Education; (b) Education ONLY; (c) Family Planning (excluding education),,,,,,,,,,,,,, +,SOLUTION ,,,CONVENTIONAL,,,,,SOLUTION ,,,CONVENTIONAL,,,,,SOLUTION,,,,CONVENTIONAL,,,,EMISSION REDUCTIONS,,,,,"SOLUTION - Least and Less Developed Countries (sans LAC, EE, China)",,,,"CONVENTIONAL - Least and Less Developed Countries (sans LAC, EE, China)",,,,"EMISSION REDCUTIONS - LEAST AND LESS DEVELOPED COUNTRIES (sans, LAC, EE, China)",,,,,#VALUE!,,,,#VALUE!,,,#VALUE!,,,,% Allocation to Education (Electricity),,, +,Additional Functional Units in REF2 vs REF1,Annual Functional Units Increase,Annual Implementation Units Increase + Replacement,Additional Functional Units in REF2 vs REF2,Annual Functional Units Increase,Change in TAM,Annual Implementation Units Increase + Replacement,,Additional Functional Units in REF2 vs REF1,Annual Functional Units Increase,Annual Implementation Units Increase + Replacement,Additional Functional Units in REF2 vs REF2,Annual Functional Units Increase,Change in TAM,Annual Implementation Units Increase + Replacement,,Avoided Emissions/ Million Metric Tons CO2,,,,Avoided Emissions/ Million Metric Tons CO2,,,,ALL Years,,,,,Avoided Emissions/ Million Metric Tons CO2,,,,Avoided Emissions/ Million Metric Tons CO2,,,,ALL Years,,,,,,,,,,,,,,,,ALL Years,,, +,TWh,TWh,TW,TWh,TWh,%,TW,,TWh,TWh,TW,TWh,TWh,%,TW,,Grid,Fuel,Other Direct,Indirect,Grid,Fuel,Other Direct,Indirect,Conv Total,Solution Total,,,,Grid,Fuel,Other Direct,Indirect,Grid,Fuel,Other Direct,Indirect,Conv Total,Solution Total,,,,,Conv Total,Solution Total,,Conv Total,Solution Total,,Conv Total,Solution Total,,,Conv Total,Solution Total,, +2014,,,, - , ,, Not modeled TBD ,,,,, - , ,, Not modeled TBD ,,,,,, ,,,, - , - ,,,,,,,, ,,,, - , - ,,,,2014,0,0,,0,0,,0,0,,,,,, +2015,,,, - , - ,,,,,,, - , - ,,,,,,,, - ,,,, - , - ,,,,,,,, - ,,,, - , - ,,,,2015,0,0,,0,0,,0,0,,,,,, +2016,,,,2.6,2.6,10%,,,,,,3.2,3.2,12%,,,,,,,1.58,,,,1.6, - ,,,,,,,,1.96,,,,2, - ,,,,2016,3.54,0,,0.98,0,,2.56,0,,,28%,,, +2017,,,,6.5,3.9,10%,,,,,,8.1,4.9,12%,,,,,,,3.92,,,,3.9, - ,,,,,,,,4.9,,,,4.9, - ,,,,2017,8.82,0,,2.45,0,,6.37,0,,,28%,,, +2018,,,,11.7,5.2,10%,,,,,,14.7,6.6,13%,,,,,,,7,,,,7, - ,,,,,,,,8.81,,,,8.8, - ,,,,2018,15.81,0,,4.4,0,,11.41,0,,,28%,,, +2019,,,,18,6.3,10%,,,,,,22.8,8.2,13%,,,,,,,10.75,,,,10.8, - ,,,,,,,,13.63,,,,13.6, - ,,,,2019,24.39,0,,6.82,0,,17.57,0,,,28%,,, +2020,,,,25.4,7.4,11%,,,,,,32.5,9.6,13%,,,,,,,15.07,,,,15.1, - ,,,,,,,,19.26,,,,19.3, - ,,,,2020,34.33,0,,9.63,0,,24.7,0,,,28%,,, +2021,,,,33.9,8.4,11%,,,,,,43.6,11.1,14%,,,,,,,19.96,,,,20, - ,,,,,,,,25.71,,,,25.7, - ,,,,2021,45.66,0,,12.85,0,,32.81,0,,,28%,,, +2022,,,,43.4,9.6,11%,,,,,,56.4,12.8,14%,,,,,,,25.44,,,,25.4, - ,,,,,,,,33.03,,,,33, - ,,,,2022,58.47,0,,16.52,0,,41.95,0,,,28%,,, +2023,,,,54.1,10.7,11%,,,,,,70.8,14.5,15%,,,,,,,31.52,,,,31.5, - ,,,,,,,,41.26,,,,41.3, - ,,,,2023,72.78,0,,20.63,0,,52.15,0,,,28%,,, +2024,,,,66,11.9,11%,,,,,,87.1,16.2,15%,,,,,,,38.21,,,,38.2, - ,,,,,,,,50.43,,,,50.4, - ,,,,2024,88.63,0,,25.21,0,,63.42,0,,,28%,,, +2025,,,,79,13,12%,,,,,,105.1,18,16%,,,,,,,45.51,,,,45.5, - ,,,,,,,,60.57,,,,60.6, - ,,,,2025,106.08,0,,30.28,0,,75.8,0,,,29%,,, +2026,,,,93.2,14.2,12%,,,,,,125.1,19.9,16%,,,,,,,53.36,,,,53.4, - ,,,,,,,,71.62,,,,71.6, - ,,,,2026,124.98,0,,35.81,0,,89.17,0,,,29%,,, +2027,,,,108.5,15.3,12%,,,,,,146.9,21.8,16%,,,,,,,61.79,,,,61.8, - ,,,,,,,,83.64,,,,83.6, - ,,,,2027,145.43,0,,41.82,0,,103.61,0,,,29%,,, +2028,,,,124.7,16.2,12%,,,,,,170.3,23.4,17%,,,,,,,70.63,,,,70.6, - ,,,,,,,,96.46,,,,96.5, - ,,,,2028,167.09,0,,48.23,0,,118.86,0,,,29%,,, +2029,,,,141.6,16.8,12%,,,,,,195,24.7,17%,,,,,,,79.74,,,,79.7, - ,,,,,,,,109.86,,,,109.9, - ,,,,2029,189.6,0,,54.93,0,,134.67,0,,,29%,,, +2030,,,,158.8,17.3,12%,,,,,,220.8,25.8,17%,,,,,,,89.01,,,,89, - ,,,,,,,,123.74,,,,123.7, - ,,,,2030,212.75,0,,61.87,0,,150.88,0,,,29%,,, +2031,,,,176.4,17.6,12%,,,,,,247.5,26.7,17%,,,,,,,98.32,,,,98.3, - ,,,,,,,,137.94,,,,137.9, - ,,,,2031,236.27,0,,68.97,0,,167.3,0,,,29%,,, +2032,,,,194.4,18,13%,,,,,,275.3,27.8,18%,,,,,,,107.78,,,,107.8, - ,,,,,,,,152.62,,,,152.6, - ,,,,2032,260.4,0,,76.31,0,,184.09,0,,,29%,,, +2033,,,,212.9,18.5,13%,,,,,,304.3,29,18%,,,,,,,117.42,,,,117.4, - ,,,,,,,,167.81,,,,167.8, - ,,,,2033,285.23,0,,83.91,0,,201.33,0,,,29%,,, +2034,,,,232.1,19.2,13%,,,,,,334.9,30.5,18%,,,,,,,127.32,,,,127.3, - ,,,,,,,,183.67,,,,183.7, - ,,,,2034,310.99,0,,91.83,0,,219.16,0,,,30%,,, +2035,,,,252.1,20,13%,,,,,,367.2,32.3,19%,,,,,,,137.55,,,,137.5, - ,,,,,,,,200.29,,,,200.3, - ,,,,2035,337.84,0,,100.15,0,,237.69,0,,,30%,,, +2036,,,,273,20.9,13%,,,,,,401.3,34.2,19%,,,,,,,148.17,,,,148.2, - ,,,,,,,,217.8,,,,217.8, - ,,,,2036,365.98,0,,108.9,0,,257.08,0,,,30%,,, +2037,,,,294.9,21.8,13%,,,,,,437.5,36.2,19%,,,,,,,159.17,,,,159.2, - ,,,,,,,,236.18,,,,236.2, - ,,,,2037,395.34,0,,118.09,0,,277.26,0,,,30%,,, +2038,,,,317.8,22.9,13%,,,,,,476,38.5,19%,,,,,,,170.63,,,,170.6, - ,,,,,,,,255.59,,,,255.6, - ,,,,2038,426.23,0,,127.8,0,,298.43,0,,,30%,,, +2039,,,,342.1,24.3,13%,,,,,,517.3,41.2,20%,,,,,,,182.68,,,,182.7, - ,,,,,,,,276.23,,,,276.2, - ,,,,2039,458.91,0,,138.11,0,,320.79,0,,,30%,,, +2040,,,,367.9,25.8,13%,,,,,,561.6,44.3,20%,,,,,,,195.32,,,,195.3, - ,,,,,,,,298.13,,,,298.1, - ,,,,2040,493.45,0,,149.06,0,,344.38,0,,,30%,,, +2041,,,,395.4,27.5,13%,,,,,,609.2,47.6,20%,,,,,,,208.83,,,,208.8, - ,,,,,,,,321.75,,,,321.7, - ,,,,2041,530.58,0,,160.87,0,,369.7,0,,,30%,,, +2042,,,,424.5,29.2,13%,,,,,,660.2,51.1,21%,,,,,,,222.99,,,,223, - ,,,,,,,,346.8,,,,346.8, - ,,,,2042,569.79,0,,173.4,0,,396.39,0,,,30%,,, +2043,,,,455.5,31,13%,,,,,,715,54.8,21%,,,,,,,237.92,,,,237.9, - ,,,,,,,,373.49,,,,373.5, - ,,,,2043,611.41,0,,186.74,0,,424.67,0,,,31%,,, +2044,,,,488.4,32.9,14%,,,,,,773.8,58.8,21%,,,,,,,253.66,,,,253.7, - ,,,,,,,,401.92,,,,401.9, - ,,,,2044,655.58,0,,200.96,0,,454.62,0,,,31%,,, +2045,,,,523.3,34.9,14%,,,,,,836.8,63,22%,,,,,,,270.18,,,,270.2, - ,,,,,,,,432.06,,,,432.1, - ,,,,2045,702.24,0,,216.03,0,,486.21,0,,,31%,,, +2046,,,,560.3,37,14%,,,,,,904.3,67.4,22%,,,,,,,287.65,,,,287.7, - ,,,,,,,,464.28,,,,464.3, - ,,,,2046,751.93,0,,232.14,0,,519.79,0,,,31%,,, +2047,,,,599.3,39.1,14%,,,,,,976.3,72.1,23%,,,,,,,305.92,,,,305.9, - ,,,,,,,,498.33,,,,498.3, - ,,,,2047,804.24,0,,249.16,0,,555.08,0,,,31%,,, +2048,,,,640.5,41.2,14%,,,,,,"1,053.10",76.7,23%,,,,,,,324.99,,,,325, - ,,,,,,,,534.29,,,,534.3, - ,,,,2048,859.28,0,,267.15,0,,592.13,0,,,31%,,, +2049,,,,683.7,43.2,14%,,,,,,"1,134.50",81.5,23%,,,,,,,345.12,,,,345.1, - ,,,,,,,,572.66,,,,572.7, - ,,,,2049,917.78,0,,286.33,0,,631.45,0,,,31%,,, +2050,,,,728.9,45.2,14%,,,,,,"1,220.80",86.2,24%,,,,,,,366.65,,,,366.6, - ,,,,,,,,614.08,,,,614.1, - ,,,,2050,980.72,0,,307.04,0,,673.69,0,,,31%,,, +2051,,,,776.1,47.2,14%,,,,,,"1,312.00",91.2,24%,,,,,,,388.88,,,,388.9, - ,,,,,,,,657.43,,,,657.4, - ,,,,2051,1046.31,0,,328.72,0,,717.59,0,,,31%,,, +2052,,,,825.2,49.2,14%,,,,,,"1,408.30",96.3,24%,,,,,,,411.99,,,,412, - ,,,,,,,,703.1,,,,703.1, - ,,,,2052,1115.09,0,,351.55,0,,763.54,0,,,32%,,, +2053,,,,876.4,51.1,14%,,,,,,"1,509.80",101.5,25%,,,,,,,435.86,,,,435.9, - ,,,,,,,,750.93,,,,750.9, - ,,,,2053,1186.79,0,,375.46,0,,811.33,0,,,32%,,, +2054,,,,929.3,53,14%,,,,,,"1,616.50",106.7,25%,,,,,,,460.42,,,,460.4, - ,,,,,,,,800.88,,,,800.9, - ,,,,2054,1261.3,0,,400.44,0,,860.86,0,,,32%,,, +2055,,,,984.1,54.8,15%,,,,,,"1,728.50",112,26%,,,,,,,485.58,,,,485.6, - ,,,,,,,,852.86,,,,852.9, - ,,,,2055,1338.44,0,,426.43,0,,912.01,0,,,32%,,, +2056,,,,"1,040.70",56.6,15%,,,,,,"1,845.90",117.4,26%,,,,,,,511.44,,,,511.4, - ,,,,,,,,907.13,,,,907.1, - ,,,,2056,1418.57,0,,453.56,0,,965.01,0,,,32%,,, +2057,,,,"1,099.20",58.5,15%,,,,,,"1,968.90",123.1,26%,,,,,,,537.91,,,,537.9, - ,,,,,,,,963.55,,,,963.5, - ,,,,2057,1501.46,0,,481.77,0,,1019.68,0,,,32%,,, +2058,,,,"1,159.60",60.4,15%,,,,,,"2,098.00",129,26%,,,,,,,565.04,,,,565, - ,,,,,,,,"1,022.26",,,,"1,022.30", - ,,,,2058,1587.3,0,,511.13,0,,1076.17,0,,,32%,,, +2059,,,,"1,222.20",62.5,15%,,,,,,"2,233.20",135.3,27%,,,,,,,592.88,,,,592.9, - ,,,,,,,,"1,083.36",,,,"1,083.40", - ,,,,2059,1676.23,0,,541.68,0,,1134.55,0,,,32%,,, +2060,,,,"1,286.90",64.8,15%,,,,,,"2,375.10",141.9,27%,,,,,,,621.66,,,,621.7, - ,,,,,,,,"1,147.32",,,,"1,147.30", - ,,,,2060,1768.98,0,,573.66,0,,1195.32,0,,,32%,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,Table 12: Difference in FUNCTIONAL & IMPLEMENTATION UNITS between REF1 and REF2 populations in MDC + LAC + EE + China,,,,,,,,,Table 13: Difference in EMISSIONS between REF1 and REF2 populations in MDC + LAC + EE + China,,,,,,,,,,,,Table 14: EMISSIONS ALLOCATIONS TO (a) Health & Education; (b) Education ONLY; (c) Family Planning (excluding education),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,SOLUTION ,,,CONVENTIONAL,,,,,,SOLUTION,,,,CONVENTIONAL,,,,EMISSION REDUCTIONS,,,,#VALUE!,,,,#VALUE!,,,#VALUE!,,,,% Allocation to Education (Electricity),,,,,,,,,,,,,,,,,,,,,,,, +,Additional Functional Units in REF2 vs REF1,Annual Functional Units Increase,Annual Implementation Units Increase + Replacement,Additional Functional Units in REF2 vs REF2,Annual Functional Units Increase,Change in TAM,Annual Implementation Units Increase + Replacement,,,Avoided Emissions/ Million Metric Tons CO2,,,,Avoided Emissions/ Million Metric Tons CO2,,,,ALL Years,,,,,,,,,,,,,,,ALL Years,,,,,,,,,,,,,,,,,,,,,,,, +,TWh,TWh,TW,TWh,TWh,%,TW,,,Grid,Fuel,Other Direct,Indirect,Grid,Fuel,Other Direct,Indirect,Conv Total,Solution Total,,,,Conv Total,Solution Total,,Conv Total,Solution Total,,Conv Total,Solution Total,,,Conv Total,Solution Total,,,,,,,,,,,,,,,,,,,,,,, +2014,,,, - , ,#DIV/0!, Not modeled TBD ,,,,,,,,,,,,,,,2014,0,0,,,,,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,, +2015,,,, - , - ,#DIV/0!,,,,,,,, - ,,,, - , - ,,,2015,0,0,,,,,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,, +2016,,,,15.3,15.3,59%,,,,,,,,9.39,,,,9.4, - ,,,2016,9.39,0,,,,,9.39,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, +2017,,,,38,22.6,58%,,,,,,,,22.99,,,,23, - ,,,2017,22.99,0,,,,,22.99,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, +2018,,,,67,29,58%,,,,,,,,40.19,,,,40.2, - ,,,2018,40.19,0,,,,,40.19,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, +2019,,,,100.6,33.6,58%,,,,,,,,60.01,,,,60, - ,,,2019,60.01,0,,,,,60.01,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, +2020,,,,137.2,36.6,57%,,,,,,,,81.37,,,,81.4, - ,,,2020,81.37,0,,,,,81.37,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, +2021,,,,176.5,39.3,56%,,,,,,,,104.03,,,,104, - ,,,2021,104.03,0,,,,,104.03,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, +2022,,,,218.7,42.2,56%,,,,,,,,128.16,,,,128.2, - ,,,2022,128.16,0,,,,,128.16,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, +2023,,,,264,45.2,55%,,,,,,,,153.75,,,,153.8, - ,,,2023,153.75,0,,,,,153.75,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, +2024,,,,312.4,48.4,54%,,,,,,,,180.92,,,,180.9, - ,,,2024,180.92,0,,,,,180.92,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, +2025,,,,364.1,51.7,54%,,,,,,,,209.81,,,,209.8, - ,,,2025,209.81,0,,,,,209.81,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, +2026,,,,419.1,55,53%,,,,,,,,240.01,,,,240, - ,,,2026,240.01,0,,,,,240.01,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, +2027,,,,477,57.8,53%,,,,,,,,271.62,,,,271.6, - ,,,2027,271.62,0,,,,,271.62,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, +2028,,,,537,60,52%,,,,,,,,304.13,,,,304.1, - ,,,2028,304.13,0,,,,,304.13,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, +2029,,,,598.3,61.4,52%,,,,,,,,337.05,,,,337.1, - ,,,2029,337.05,0,,,,,337.05,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, +2030,,,,660.4,62.1,51%,,,,,,,,370.11,,,,370.1, - ,,,2030,370.11,0,,,,,370.11,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, +2031,,,,722.8,62.4,51%,,,,,,,,402.83,,,,402.8, - ,,,2031,402.83,0,,,,,402.83,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, +2032,,,,785.7,62.8,51%,,,,,,,,435.53,,,,435.5, - ,,,2032,435.53,0,,,,,435.53,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, +2033,,,,849.2,63.6,50%,,,,,,,,468.27,,,,468.3, - ,,,2033,468.27,0,,,,,468.27,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, +2034,,,,914.1,64.8,50%,,,,,,,,501.36,,,,501.4, - ,,,2034,501.36,0,,,,,501.36,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, +2035,,,,980.6,66.6,50%,,,,,,,,534.95,,,,534.9, - ,,,2035,534.95,0,,,,,534.95,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, +2036,,,,"1,049.00",68.4,49%,,,,,,,,569.28,,,,569.3, - ,,,2036,569.28,0,,,,,569.28,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, +2037,,,,"1,119.10",70.1,49%,,,,,,,,604.08,,,,604.1, - ,,,2037,604.08,0,,,,,604.08,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, +2038,,,,"1,190.90",71.8,49%,,,,,,,,639.42,,,,639.4, - ,,,2038,639.42,0,,,,,639.42,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, +2039,,,,"1,264.60",73.6,48%,,,,,,,,675.27,,,,675.3, - ,,,2039,675.27,0,,,,,675.27,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, +2040,,,,"1,340.00",75.4,48%,,,,,,,,711.37,,,,711.4, - ,,,2040,711.37,0,,,,,711.37,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, +2041,,,,"1,417.30",77.3,47%,,,,,,,,748.6,,,,748.6, - ,,,2041,748.6,0,,,,,748.6,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, +2042,,,,"1,496.60",79.3,47%,,,,,,,,786.13,,,,786.1, - ,,,2042,786.13,0,,,,,786.13,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, +2043,,,,"1,578.10",81.4,46%,,,,,,,,824.28,,,,824.3, - ,,,2043,824.28,0,,,,,824.28,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, +2044,,,,"1,661.60",83.6,46%,,,,,,,,863.04,,,,863, - ,,,2044,863.04,0,,,,,863.04,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, +2045,,,,"1,747.50",85.8,46%,,,,,,,,902.26,,,,902.3, - ,,,2045,902.26,0,,,,,902.26,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, +2046,,,,"1,835.70",88.2,45%,,,,,,,,942.51,,,,942.5, - ,,,2046,942.51,0,,,,,942.51,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, +2047,,,,"1,926.50",90.7,45%,,,,,,,,983.29,,,,983.3, - ,,,2047,983.29,0,,,,,983.29,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, +2048,,,,"2,020.00",93.5,44%,,,,,,,,"1,024.87",,,,"1,024.90", - ,,,2048,1024.87,0,,,,,1024.87,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, +2049,,,,"2,116.60",96.6,44%,,,,,,,,"1,068.34",,,,"1,068.30", - ,,,2049,1068.34,0,,,,,1068.34,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, +2050,,,,"2,216.50",99.9,43%,,,,,,,,"1,114.93",,,,"1,114.90", - ,,,2050,1114.93,0,,,,,1114.93,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, +2051,,,,"2,319.90",103.4,43%,,,,,,,,"1,162.49",,,,"1,162.50", - ,,,2051,1162.49,0,,,,,1162.49,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, +2052,,,,"2,427.00",107.1,42%,,,,,,,,"1,211.65",,,,"1,211.60", - ,,,2052,1211.65,0,,,,,1211.65,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, +2053,,,,"2,537.90",111,42%,,,,,,,,"1,262.25",,,,"1,262.30", - ,,,2053,1262.25,0,,,,,1262.25,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, +2054,,,,"2,653.10",115.2,41%,,,,,,,,"1,314.42",,,,"1,314.40", - ,,,2054,1314.42,0,,,,,1314.42,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, +2055,,,,"2,772.70",119.6,41%,,,,,,,,"1,368.10",,,,"1,368.10", - ,,,2055,1368.1,0,,,,,1368.1,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, +2056,,,,"2,897.00",124.3,41%,,,,,,,,"1,423.69",,,,"1,423.70", - ,,,2056,1423.69,0,,,,,1423.69,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, +2057,,,,"3,026.00",129,40%,,,,,,,,"1,480.83",,,,"1,480.80", - ,,,2057,1480.83,0,,,,,1480.83,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, +2058,,,,"3,159.50",133.6,40%,,,,,,,,"1,539.53",,,,"1,539.50", - ,,,2058,1539.53,0,,,,,1539.53,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, +2059,,,,"3,297.50",138,40%,,,,,,,,"1,599.64",,,,"1,599.60", - ,,,2059,1599.64,0,,,,,1599.64,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, +2060,,,,"3,439.70",142.2,39%,,,,,,,,"1,661.57",,,,"1,661.60", - ,,,2060,1661.57,0,,,,,1661.57,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, From 395ed46819ea6f90bcb29b04c8f3bd03bd1a46a9 Mon Sep 17 00:00:00 2001 From: Sunishchal Date: Sat, 19 Sep 2020 02:35:02 -0700 Subject: [PATCH 06/28] Added unit tests for all implemented electricity cluster tables (1-6) --- .../tests/test_electricity.py | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/solution/health_and_education/tests/test_electricity.py b/solution/health_and_education/tests/test_electricity.py index 68fa2e6e9..a92be8fc2 100644 --- a/solution/health_and_education/tests/test_electricity.py +++ b/solution/health_and_education/tests/test_electricity.py @@ -2,6 +2,7 @@ sys.path.append('c:\\Users\\sunishchal.dev\\Documents\\solutions\\solution\\health_and_education') import pandas as pd +import numpy as np import electricity_cluster @@ -14,4 +15,37 @@ def test_electricity_cluster(): exp_ref2_tam.index = exp_elec.iloc[26:73, 0].astype(int).values pd.testing.assert_frame_equal(test_elec.ref2_tam, exp_ref2_tam, check_exact=False) + exp_ref1_tam_low_edu = exp_elec.iloc[26:73, 13:23].astype(float) + exp_ref1_tam_low_edu.columns = exp_elec.iloc[25, 13:23].values + exp_ref1_tam_low_edu.index = exp_elec.iloc[26:73, 12].astype(int).values + pd.testing.assert_frame_equal(test_elec.ref1_tam_low_edu, exp_ref1_tam_low_edu, check_exact=False) + + exp_ref1_tam_high_edu = exp_elec.iloc[26:73, 25:35].astype(float) + exp_ref1_tam_high_edu.columns = exp_elec.iloc[25, 25:35].values + exp_ref1_tam_high_edu.index = exp_elec.iloc[26:73, 24].astype(int).values + pd.testing.assert_frame_equal(test_elec.ref1_tam_high_edu, exp_ref1_tam_high_edu, check_exact=False) + + exp_ref1_tam_all_regions = exp_elec.iloc[26:73, 37:47].astype(float) + exp_ref1_tam_all_regions.columns = exp_elec.iloc[25, 37:47].values + exp_ref1_tam_all_regions.index = exp_elec.iloc[26:73, 36].astype(int).values + pd.testing.assert_frame_equal(test_elec.ref1_tam_all_regions, exp_ref1_tam_all_regions, check_exact=False) + + exp_ref2_elec_gen = exp_elec.iloc[77:124, 1:6].astype(float) + exp_ref2_elec_gen.columns = exp_elec.iloc[76, 1:6].values + exp_ref2_elec_gen.index = exp_elec.iloc[77:124, 0].astype(int).values + pd.testing.assert_frame_equal(test_elec.ref2_elec_gen, exp_ref2_elec_gen, check_exact=False, rtol=1e-3) + + exp_ref1_elec_gen = exp_elec.iloc[77:124, 8:19].astype(float) + exp_ref1_elec_gen.columns = exp_elec.iloc[76, 8:19].values + exp_ref1_elec_gen.index = exp_elec.iloc[77:124, 7].astype(int).values + pd.testing.assert_frame_equal(test_elec.ref1_elec_gen, exp_ref1_elec_gen, check_exact=False, rtol=1e-3) + + exp_change_elec_gen = exp_elec.iloc[77:124, 22:30].astype(float) + exp_change_elec_gen.columns = exp_elec.iloc[76, 22:30].values + exp_change_elec_gen.index = exp_elec.iloc[77:124, 7].astype(int).values + pd.testing.assert_frame_equal(test_elec.change_elec_gen, exp_change_elec_gen, check_exact=False, rtol=1e-3) + + + print("Test complete: electricity cluster") + test_electricity_cluster() \ No newline at end of file From 45a20eb7fe375b4bcbc5898c4f3847dc6409f913 Mon Sep 17 00:00:00 2001 From: Sunishchal Date: Sat, 26 Sep 2020 01:21:23 -0700 Subject: [PATCH 07/28] Modifying structure to support multiple clusters --- solution/health_and_education/clusters/__init__.py | 8 ++++++++ .../{ => clusters}/electricity_cluster.py | 2 +- solution/health_and_education/tests/test_electricity.py | 2 +- 3 files changed, 10 insertions(+), 2 deletions(-) create mode 100644 solution/health_and_education/clusters/__init__.py rename solution/health_and_education/{ => clusters}/electricity_cluster.py (99%) diff --git a/solution/health_and_education/clusters/__init__.py b/solution/health_and_education/clusters/__init__.py new file mode 100644 index 000000000..e542aa01c --- /dev/null +++ b/solution/health_and_education/clusters/__init__.py @@ -0,0 +1,8 @@ +"""Health & Education solution model for Electricity Cluster + Excel filename: CORE_PopulationChange_29Jan2020 (version 1.4).xlsx + Excel sheet name: Electricity_cluster +""" +import pathlib + +import numpy as np +import pandas as pd \ No newline at end of file diff --git a/solution/health_and_education/electricity_cluster.py b/solution/health_and_education/clusters/electricity_cluster.py similarity index 99% rename from solution/health_and_education/electricity_cluster.py rename to solution/health_and_education/clusters/electricity_cluster.py index 6f556f522..c284eef22 100644 --- a/solution/health_and_education/electricity_cluster.py +++ b/solution/health_and_education/clusters/electricity_cluster.py @@ -12,7 +12,7 @@ # import solarpvutil -DATADIR = pathlib.Path(__file__).parents[0].joinpath('data') +DATADIR = pathlib.Path(__file__).parents[1].joinpath('data') THISDIR = pathlib.Path(__file__).parents[0] name = 'Health and Education - Electricity Cluster' diff --git a/solution/health_and_education/tests/test_electricity.py b/solution/health_and_education/tests/test_electricity.py index a92be8fc2..c35aa235b 100644 --- a/solution/health_and_education/tests/test_electricity.py +++ b/solution/health_and_education/tests/test_electricity.py @@ -4,7 +4,7 @@ import pandas as pd import numpy as np -import electricity_cluster +import clusters.electricity_cluster as electricity_cluster test_elec = electricity_cluster.Scenario() exp_elec = pd.read_csv('expected_elec_cluster.csv', header=None) From e2a64df411f87989aa798b79fd59b92892f664f4 Mon Sep 17 00:00:00 2001 From: Sunishchal Date: Sat, 26 Sep 2020 01:24:36 -0700 Subject: [PATCH 08/28] Adding path to support upper level module imports --- .../health_and_education/clusters/electricity_cluster.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/solution/health_and_education/clusters/electricity_cluster.py b/solution/health_and_education/clusters/electricity_cluster.py index c284eef22..cbd174bfe 100644 --- a/solution/health_and_education/clusters/electricity_cluster.py +++ b/solution/health_and_education/clusters/electricity_cluster.py @@ -7,10 +7,12 @@ import numpy as np import pandas as pd -# import sys -# sys.path.append('c:\\Users\\sunishchal.dev\\Documents\\solutions') +import sys +repo_path = str(pathlib.Path(__file__).parents[3]) +sys.path.append(repo_path) -# import solarpvutil +from solution import solarpvutil +from model import dd DATADIR = pathlib.Path(__file__).parents[1].joinpath('data') THISDIR = pathlib.Path(__file__).parents[0] From f99b4ee678bde481a6ab92e6a431b07edc453968 Mon Sep 17 00:00:00 2001 From: Sunishchal Date: Sat, 26 Sep 2020 01:40:53 -0700 Subject: [PATCH 09/28] Moving LLDC config to model.dd --- model/dd.py | 12 ++++++++ .../clusters/electricity_cluster.py | 28 ++++++------------- 2 files changed, 21 insertions(+), 19 deletions(-) diff --git a/model/dd.py b/model/dd.py index 0da821b50..4aaab1f28 100644 --- a/model/dd.py +++ b/model/dd.py @@ -48,3 +48,15 @@ # time ranges CORE_START_YEAR = 2015 CORE_END_YEAR = 2060 + +# Config for health & education solution +# Regions included as Least & Less Developed Countries & high Net Reproducitve Rate: +LLDC_HIGH_NRR_CONFIG = { + 'OECD90': 'N', + 'Eastern Europe': 'N', + 'Asia (Sans Japan)': 'Y', + 'Middle East and Africa': 'Y', + 'Latin America': 'N' +} +LLDC_HIGH_NRR_REGION_Y = dict(filter(lambda x: x[1] == 'Y', LLDC_HIGH_NRR_CONFIG.items())).keys() +LLDC_HIGH_NRR_REGION_N = dict(filter(lambda x: x[1] == 'N', LLDC_HIGH_NRR_CONFIG.items())).keys() diff --git a/solution/health_and_education/clusters/electricity_cluster.py b/solution/health_and_education/clusters/electricity_cluster.py index cbd174bfe..1a883c722 100644 --- a/solution/health_and_education/clusters/electricity_cluster.py +++ b/solution/health_and_education/clusters/electricity_cluster.py @@ -27,16 +27,6 @@ use_fixed_weight = 'N' ## TODO: Move above block to advanced_controls.py after we figure out if it varies by scenario -# Regions included as LLDC+HighNRR: -lldc_high_nrr_config = { - 'OECD90': 'N', - 'Eastern Europe': 'N', - 'Asia (Sans Japan)': 'Y', - 'Middle East and Africa': 'Y', - 'Latin America': 'N' -} -lldc_high_nrr_regions_y = dict(filter(lambda x: x[1] == 'Y', lldc_high_nrr_config.items())).keys() -lldc_high_nrr_regions_n = dict(filter(lambda x: x[1] == 'N', lldc_high_nrr_config.items())).keys() # TABLE 1: Current TAM Mix current_tam_mix_list = [ @@ -125,10 +115,10 @@ def __init__(self, scenario=None): columns=['LLDC+HighNRR', 'China', 'MDC + LAC + EE', 'Total Electricity Demand in Countries with Higher Educational Attainment (TWh)', 'Total Electricity Demand in Countries with Higher Educational Attainment (TWh) % LLDC'], index=list(range(2014, 2061)), dtype=np.float64) - ref2_elec_gen.loc[:, 'LLDC+HighNRR'] = self.ref2_tam.loc[:, lldc_high_nrr_regions_y].sum(axis=1) - self.ref2_tam.loc[:, 'China'] + ref2_elec_gen.loc[:, 'LLDC+HighNRR'] = self.ref2_tam.loc[:, dd.LLDC_HIGH_NRR_REGION_Y].sum(axis=1) - self.ref2_tam.loc[:, 'China'] ref2_elec_gen.loc[:, 'China'] = self.ref2_tam.loc[:, 'China'] - ref2_elec_gen.loc[:, 'MDC + LAC + EE'] = self.ref2_tam.loc[:, lldc_high_nrr_regions_n].sum(axis=1) - if lldc_high_nrr_config['Asia (Sans Japan)'] == 'N': + ref2_elec_gen.loc[:, 'MDC + LAC + EE'] = self.ref2_tam.loc[:, dd.LLDC_HIGH_NRR_REGION_N].sum(axis=1) + if dd.LLDC_HIGH_NRR_CONFIG['Asia (Sans Japan)'] == 'N': ref2_elec_gen.loc[:, 'MDC + LAC + EE'] = ref2_elec_gen.loc[:, 'MDC + LAC + EE'] - self.ref2_tam.loc[:, 'China'] ref2_elec_gen.loc[:, 'Total Electricity Demand in Countries with Higher Educational Attainment (TWh)'] = ref2_elec_gen.loc[:, ['LLDC+HighNRR', 'China', 'MDC + LAC + EE']].sum(axis=1) ref2_elec_gen.loc[:, 'Total Electricity Demand in Countries with Higher Educational Attainment (TWh) % LLDC'] = ref2_elec_gen.loc[:, 'LLDC+HighNRR'] / ref2_elec_gen.loc[:, 'Total Electricity Demand in Countries with Higher Educational Attainment (TWh)'] @@ -141,15 +131,15 @@ def __init__(self, scenario=None): columns=['LLDC with low educational attainment, excluding China', 'MDC + EE + LAC with low educational attainment, excluding China', 'China', 'LLDC with higher educational attainment, excluding China', 'MDC + EE + LAC with higher educational attainment', 'Total Electricity Demand in Countries with Low Educational Attainment (TWh), exluding China', 'Total Electricity Demand in Countries with Low Educational Attainment (TWh), exluding China % LLDC', 'Total Electricity Demand in Countries with Higher Educational Attainment (TWh)', 'Total Electricity Demand in Countries with Higher Educational Attainment (TWh) % LLDC', 'Total Electricity Demand (TWh)', 'Total Electricity Demand (TWh) % LLDC'], index=list(range(2014, 2061)), dtype=np.float64) - ref1_elec_gen.loc[:, 'LLDC with low educational attainment, excluding China'] = ref1_tam_low_edu.loc[:, lldc_high_nrr_regions_y].sum(axis=1) - ref1_tam_low_edu.loc[:, 'China'] - ref1_elec_gen.loc[:, 'MDC + EE + LAC with low educational attainment, excluding China'] = ref1_tam_low_edu.loc[:, lldc_high_nrr_regions_n].sum(axis=1) - if lldc_high_nrr_config['Asia (Sans Japan)'] == 'N': + ref1_elec_gen.loc[:, 'LLDC with low educational attainment, excluding China'] = ref1_tam_low_edu.loc[:, dd.LLDC_HIGH_NRR_REGION_Y].sum(axis=1) - ref1_tam_low_edu.loc[:, 'China'] + ref1_elec_gen.loc[:, 'MDC + EE + LAC with low educational attainment, excluding China'] = ref1_tam_low_edu.loc[:, dd.LLDC_HIGH_NRR_REGION_N].sum(axis=1) + if dd.LLDC_HIGH_NRR_CONFIG['Asia (Sans Japan)'] == 'N': ref1_elec_gen.loc[:, 'MDC + LAC + EE'] = ref1_elec_gen.loc[:, 'MDC + LAC + EE'] - self.ref1_tam_low_edu.loc[:, 'China'] ref1_elec_gen.loc[:, 'China'] = ref1_tam_high_edu.loc[:, 'China'] - ref1_elec_gen.loc[:, 'LLDC with higher educational attainment, excluding China'] = ref1_tam_high_edu.loc[:, lldc_high_nrr_regions_y].sum(axis=1) - ref1_tam_high_edu.loc[:, 'China'] - ref1_elec_gen.loc[:, 'MDC + EE + LAC with higher educational attainment'] = ref1_tam_high_edu.loc[:, lldc_high_nrr_regions_n].sum(axis=1) - if lldc_high_nrr_config['Asia (Sans Japan)'] == 'N': + ref1_elec_gen.loc[:, 'LLDC with higher educational attainment, excluding China'] = ref1_tam_high_edu.loc[:, dd.LLDC_HIGH_NRR_REGION_Y].sum(axis=1) - ref1_tam_high_edu.loc[:, 'China'] + ref1_elec_gen.loc[:, 'MDC + EE + LAC with higher educational attainment'] = ref1_tam_high_edu.loc[:, dd.LLDC_HIGH_NRR_REGION_N].sum(axis=1) + if dd.LLDC_HIGH_NRR_CONFIG['Asia (Sans Japan)'] == 'N': ref1_elec_gen.loc[:, 'MDC + EE + LAC with higher educational attainment'] = ref1_elec_gen.loc[:, 'MDC + EE + LAC with higher educational attainment'] - self.ref1_tam_high_edu.loc[:, 'China'] ref1_elec_gen.loc[:, 'Total Electricity Demand in Countries with Low Educational Attainment (TWh), exluding China'] = ref1_elec_gen.loc[:, 'LLDC with low educational attainment, excluding China'] + ref1_elec_gen.loc[:, 'MDC + EE + LAC with low educational attainment, excluding China'] From 96a02a6b806bc31f969290abf87988ec0a27a4d6 Mon Sep 17 00:00:00 2001 From: Sunishchal Date: Sat, 3 Oct 2020 03:00:24 -0700 Subject: [PATCH 10/28] Implemented tables 7 and 8 in electricity cluster --- .../clusters/electricity_cluster.py | 63 +++++- .../tests/expected_elec_cluster.csv | 184 +++++++++--------- .../tests/test_electricity.py | 10 + 3 files changed, 160 insertions(+), 97 deletions(-) diff --git a/solution/health_and_education/clusters/electricity_cluster.py b/solution/health_and_education/clusters/electricity_cluster.py index 1a883c722..c1f34754d 100644 --- a/solution/health_and_education/clusters/electricity_cluster.py +++ b/solution/health_and_education/clusters/electricity_cluster.py @@ -13,12 +13,14 @@ from solution import solarpvutil from model import dd +from model import advanced_controls as ac +from model import emissionsfactors as ef DATADIR = pathlib.Path(__file__).parents[1].joinpath('data') THISDIR = pathlib.Path(__file__).parents[0] name = 'Health and Education - Electricity Cluster' -# solution_category = ac.SOLUTION_CATEGORY.REDUCTION #TODO: Confirm this is a reduction solution +solution_category = ac.SOLUTION_CATEGORY.REDUCTION # Assumptions: # % impact of educational attainment on uptake of Family Planning: @@ -27,10 +29,9 @@ use_fixed_weight = 'N' ## TODO: Move above block to advanced_controls.py after we figure out if it varies by scenario - # TABLE 1: Current TAM Mix current_tam_mix_list = [ - ['Energy Source', '2018', 'Include in SOL?', 'Include in CONV?'], + ['Energy Source', 'Weighting Factor', 'Include in SOL?', 'Include in CONV?'], ['Coal', 39.28, 'N', 'Y'], ['Natural gas', 22.72, 'N', 'Y'], ['Nuclear', 10.45, 'N', 'N'], @@ -113,7 +114,7 @@ def __init__(self, scenario=None): # Table 4: Total REF2 Electricity Generation by Economic Development Status (TWh) ref2_elec_gen = pd.DataFrame(None, columns=['LLDC+HighNRR', 'China', 'MDC + LAC + EE', 'Total Electricity Demand in Countries with Higher Educational Attainment (TWh)', 'Total Electricity Demand in Countries with Higher Educational Attainment (TWh) % LLDC'], - index=list(range(2014, 2061)), dtype=np.float64) + index=list(range(2014, 2061)), dtype=np.float64) # TODO: remove hard coded year indices ref2_elec_gen.loc[:, 'LLDC+HighNRR'] = self.ref2_tam.loc[:, dd.LLDC_HIGH_NRR_REGION_Y].sum(axis=1) - self.ref2_tam.loc[:, 'China'] ref2_elec_gen.loc[:, 'China'] = self.ref2_tam.loc[:, 'China'] @@ -178,14 +179,66 @@ def __init__(self, scenario=None): # Table 7: Difference in FUNCTIONAL & IMPLEMENTATION UNITS between REF1 and REF2 populations in LLDC+HighNRR+HighED # CONVENTIONAL addl_func_units_highed = pd.DataFrame(None, - columns=['Additional Functional Units in REF2 vs REF2 (TWh)', 'Annual Functional Units Increase (TWh)', 'Change in TAM (%)', 'Annual Implementation Units Increase + Replacement (TW)'], + columns=['Additional Functional Units in REF2 vs REF2', 'Annual Functional Units Increase', 'Change in TAM'], index=list(range(2014, 2061)), dtype=np.float64) + current_tam_mix = pd.DataFrame(current_tam_mix_list[1:], columns=current_tam_mix_list[0]) + + if use_fixed_weight == 'N': + conv_weight_factor = self.change_elec_gen.loc[:, '% LLDC with higher educational attainment'] + elif use_fixed_weight == 'Y': + conv_weight_factor = fixed_weighting_factor + else: + raise Exception('Invalid value passed for "use_fixed_weight", please use Y or N') + + conv_weight_sum = current_tam_mix.loc[current_tam_mix['Include in CONV?'] == 'Y', 'Weighting Factor'].sum() + + addl_func_units_highed.loc[:, 'Additional Functional Units in REF2 vs REF2'] = conv_weight_factor * (conv_weight_sum \ + * ((self.ref1_tam_high_edu['World'] + self.ref1_tam_low_edu['World']) - self.ref2_tam['World'])) + addl_func_units_highed.loc[:, 'Annual Functional Units Increase'] = addl_func_units_highed['Additional Functional Units in REF2 vs REF2'].diff() + addl_func_units_highed.loc[2016, 'Annual Functional Units Increase'] = addl_func_units_highed.loc[2016, 'Additional Functional Units in REF2 vs REF2'] + addl_func_units_highed.loc[:, 'Change in TAM'] = addl_func_units_highed['Additional Functional Units in REF2 vs REF2'] \ + / ((self.ref1_tam_high_edu['World'] + self.ref1_tam_low_edu['World']) - self.ref2_tam['World']) + + # Convert to TWh + addl_func_units_highed = addl_func_units_highed / 100 + + # Electricity_cluster!E131:G179 + self.addl_func_units_highed = addl_func_units_highed + + # Table 8: Difference in FUNCTIONAL & IMPLEMENTATION UNITS between REF1 and REF2 populations in LLDC+HighNRR+LowED + # CONVENTIONAL + addl_func_units_lowed = pd.DataFrame(None, + columns=['Additional Functional Units in REF2 vs REF2', 'Annual Functional Units Increase', 'Change in TAM'], + index=list(range(2014, 2061)), dtype=np.float64) + + if use_fixed_weight == 'N': + conv_weight_factor = self.change_elec_gen.loc[:, '% LLDC with Low Educational Attainment'] + elif use_fixed_weight == 'Y': + conv_weight_factor = fixed_weighting_factor + else: + raise Exception('Invalid value passed for "use_fixed_weight", please use Y or N') + + addl_func_units_lowed.loc[:, 'Additional Functional Units in REF2 vs REF2'] = conv_weight_factor * (conv_weight_sum \ + * ((self.ref1_tam_high_edu['World'] + self.ref1_tam_low_edu['World']) - self.ref2_tam['World'])) + addl_func_units_lowed.loc[:, 'Annual Functional Units Increase'] = addl_func_units_lowed['Additional Functional Units in REF2 vs REF2'].diff() + addl_func_units_lowed.loc[2016, 'Annual Functional Units Increase'] = addl_func_units_lowed.loc[2016, 'Additional Functional Units in REF2 vs REF2'] + addl_func_units_lowed.loc[:, 'Change in TAM'] = addl_func_units_lowed['Additional Functional Units in REF2 vs REF2'] \ + / ((self.ref1_tam_high_edu['World'] + self.ref1_tam_low_edu['World']) - self.ref2_tam['World']) + + # Convert to TWh + addl_func_units_lowed = addl_func_units_lowed / 100 + + # Electricity_cluster!M131:O179 + self.addl_func_units_lowed = addl_func_units_lowed + # ref_gred_emis = ef.ElectricityGenOnGrid(ac.AdvancedControls()).conv_ref_grid_CO2eq_per_KWh() + # print(ref_gred_emis.head()) # Table 2: REF2, Electricity Generation TAM (TWh) # Electricity_cluster!B26:K73 +# TODO: Replace this with solarpvutil.Scenario.ref_tam_per_region once we resolve the data mismatch ref2_tam_list = [ ['World', 'OECD90', 'Eastern Europe', 'Asia (Sans Japan)', 'Middle East and Africa', 'Latin America', 'China', 'India', 'EU', 'USA'], [22548.00000, 9630.94132, 2021.81456, 8068.09850, 1750.27240, 1681.57391, 5262.77320, 1324.87968, 3379.55071, 4226.08258], diff --git a/solution/health_and_education/tests/expected_elec_cluster.csv b/solution/health_and_education/tests/expected_elec_cluster.csv index 8f59a336c..1cf6171bf 100644 --- a/solution/health_and_education/tests/expected_elec_cluster.csv +++ b/solution/health_and_education/tests/expected_elec_cluster.csv @@ -75,53 +75,53 @@ COPY TABLES BELOW FROM LATEST ELECTRICITY SOLUTION MODELS,,,,,,,,,,,,(a) FOR POP ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, Table 4: Total REF2 Electricity Generation by Economic Development Status (TWh),,,,,,,Table 5: Total REF1 Electricity Generation by Economic Development Status (TWh),,,,,,,,,,,,,,,"Table 6: Change in Electricity Generation by MDC vs. LLDC Regions, REF1-REF2 (TWh)",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,LLDC+HighNRR,China,MDC + LAC + EE,Total Electricity Demand in Countries with Higher Educational Attainment (TWh),Total Electricity Demand in Countries with Higher Educational Attainment (TWh) % LLDC,,,"LLDC with low educational attainment, excluding China","MDC + EE + LAC with low educational attainment, excluding China",China,"LLDC with higher educational attainment, excluding China",MDC + EE + LAC with higher educational attainment,"Total Electricity Demand in Countries with Low Educational Attainment (TWh), exluding China","Total Electricity Demand in Countries with Low Educational Attainment (TWh), exluding China % LLDC",Total Electricity Demand in Countries with Higher Educational Attainment (TWh),Total Electricity Demand in Countries with Higher Educational Attainment (TWh) % LLDC,Total Electricity Demand (TWh),Total Electricity Demand (TWh) % LLDC,,,,LLDC,China,MDC + EE +LAC,Total change in REF1-REF2,% LLDC with higher educational attainment,% LLDC with Low Educational Attainment,% LLDC,% MDC + LAC + EE + China,,"% LLDC with low educational attainment, TWh)","% LLDC with higher educational attainment, TWh)",,,,,,,,,,,,,,,,,,,,,,,,, -2014,4555.598,5262.773,13334.330,23152.701,0.19676,,2014,0.000,0.000,5262.773,4555.598,13334.330,0.000,,23152.701,0.19676,23152.701,0.00000,,,,0.000,0.000,0.000,0.000,,,,,,0%,100%,,,,,,,,,,,,,,,,,,,,,,,,, -2015,4754.218,5577.466,13461.522,23793.206,0.19981,,2015,2622.263,528.301,5577.466,2131.955,12933.221,3150.565,0.83232,20642.642,0.10328,23793.206,0.13241,,,,0.000,0.000,0.000,0.000,,,,,,55%,45%,,,,,,,,,,,,,,,,,,,,,,,,, -2016,4990.643,5868.272,13579.414,24438.330,0.20421,,2016,2765.394,546.916,5873.482,2231.744,13044.507,3312.310,0.83488,21149.734,0.10552,24462.044,0.13541,,,,6.495,5.210,12.010,23.715,0.12232,0.15157,0.27389,0.72611,,55%,45%,,,,,,,,,,,,,,,,,,,,,,,,, -2017,5234.883,6148.152,13704.650,25087.685,0.20866,,2017,2915.838,566.854,6161.346,2335.411,13167.239,3482.692,0.83724,21663.995,0.10780,25146.688,0.13850,,,,16.366,13.194,29.443,59.003,0.12336,0.15401,0.27737,0.72263,,56%,44%,,,,,,,,,,,,,,,,,,,,,,,,, -2018,5487.154,6417.387,13837.014,25741.555,0.21316,,2018,3073.751,588.075,6441.020,2442.987,13300.495,3661.826,0.83940,22184.502,0.11012,25846.329,0.14168,,,,29.584,23.633,51.556,104.774,0.12504,0.15732,0.28236,0.71764,,56%,44%,,,,,,,,,,,,,,,,,,,,,,,,, -2019,5747.675,6676.257,13976.288,26400.221,0.21771,,2019,3239.111,610.489,6712.044,2554.415,13442.847,3849.600,0.84141,22709.307,0.11248,26558.907,0.14495,,,,45.851,35.787,77.048,158.686,0.12740,0.16155,0.28894,0.71106,,56%,44%,,,,,,,,,,,,,,,,,,,,,,,,, -2020,6016.663,6925.046,14122.257,27063.965,0.22231,,2020,3411.947,634.025,6974.050,2669.662,13593.165,4045.972,0.84329,23236.877,0.11489,27282.849,0.14830,,,,64.946,49.004,104.933,218.884,0.13025,0.16647,0.29672,0.70328,,56%,44%,,,,,,,,,,,,,,,,,,,,,,,,, -2021,6294.335,7164.032,14274.702,27733.069,0.22696,,2021,3592.484,658.673,7227.105,2788.791,13751.036,4251.156,0.84506,23766.932,0.11734,28018.088,0.15173,,,,86.940,63.073,135.007,285.020,0.13331,0.17172,0.30503,0.69497,,56%,44%,,,,,,,,,,,,,,,,,,,,,,,,, -2022,6580.909,7393.499,14433.407,28407.815,0.23166,,2022,3781.108,684.462,7471.617,2911.903,13916.546,4465.569,0.84672,24300.065,0.11983,28765.635,0.15524,,,,112.102,78.118,167.600,357.820,0.13630,0.17699,0.31329,0.68671,,56%,44%,,,,,,,,,,,,,,,,,,,,,,,,, -2023,6876.603,7613.727,14598.155,29088.484,0.23640,,2023,3978.152,711.399,7707.872,3039.038,14089.601,4689.551,0.84830,24836.511,0.12236,29526.062,0.15883,,,,140.588,94.145,202.845,437.577,0.13914,0.18214,0.32129,0.67871,,57%,43%,,,,,,,,,,,,,,,,,,,,,,,,, -2024,7181.634,7824.997,14768.728,29775.359,0.24119,,2024,4183.994,739.499,7936.263,3170.225,14270.241,4923.493,0.84980,25376.729,0.12493,30300.222,0.16249,,,,172.585,111.266,241.012,524.863,0.14175,0.18707,0.32882,0.67118,,57%,43%,,,,,,,,,,,,,,,,,,,,,,,,, -2025,7496.220,8027.591,14944.911,30468.722,0.24603,,2025,4398.969,768.774,8157.140,3305.467,14458.402,5167.743,0.85124,25921.009,0.12752,31088.752,0.16623,,,,208.216,129.549,282.265,620.030,0.14408,0.19174,0.33582,0.66418,,57%,43%,,,,,,,,,,,,,,,,,,,,,,,,, -2026,7820.579,8221.790,15126.486,31168.855,0.25091,,2026,4623.421,799.231,8370.743,3444.827,14653.923,5422.652,0.85261,26469.493,0.13014,31892.145,0.17003,,,,247.669,148.953,326.668,723.290,0.14620,0.19622,0.34242,0.65758,,57%,43%,,,,,,,,,,,,,,,,,,,,,,,,, -2027,8154.928,8407.875,15313.236,31876.038,0.25583,,2027,4857.551,830.856,8577.202,3588.274,14856.373,5688.407,0.85394,27021.849,0.13279,32710.256,0.17390,,,,290.898,169.328,373.993,834.218,0.14815,0.20056,0.34871,0.65129,,58%,42%,,,,,,,,,,,,,,,,,,,,,,,,, -2028,8499.484,8586.127,15504.944,32590.555,0.26080,,2028,5101.369,863.602,8776.639,3735.596,15065.091,5964.970,0.85522,27577.325,0.13546,33542.296,0.17783,,,,337.480,190.512,423.748,951.740,0.14989,0.20470,0.35459,0.64541,,58%,42%,,,,,,,,,,,,,,,,,,,,,,,,, -2029,8854.466,8756.828,15701.393,33312.687,0.26580,,2029,5354.745,897.399,8969.129,3886.495,15279.243,6252.144,0.85647,28134.867,0.13814,34387.011,0.18182,,,,386.774,212.301,475.249,1074.323,0.15141,0.20861,0.36002,0.63998,,58%,42%,,,,,,,,,,,,,,,,,,,,,,,,, -2030,9220.091,8920.259,15902.367,34042.717,0.27084,,2030,5617.629,932.192,9154.788,4040.764,15498.144,6549.821,0.85768,28693.695,0.14082,35243.516,0.18584,,,,438.302,234.529,527.969,1200.800,0.15271,0.21230,0.36501,0.63499,,58%,42%,,,,,,,,,,,,,,,,,,,,,,,,, -2031,9596.577,9076.700,16107.647,34780.925,0.27591,,2031,5890.148,967.951,9333.754,4198.354,15721.367,6858.099,0.85886,29253.474,0.14352,36111.573,0.18991,,,,491.924,257.053,581.671,1330.648,0.15385,0.21584,0.36969,0.63031,,58%,42%,,,,,,,,,,,,,,,,,,,,,,,,, -2032,9984.141,9226.434,16317.018,35527.594,0.28102,,2032,6172.624,1004.687,9506.297,4359.379,15948.779,7177.311,0.86002,29814.455,0.14622,36991.766,0.19402,,,,547.862,279.862,636.448,1464.172,0.15488,0.21930,0.37418,0.62582,,59%,41%,,,,,,,,,,,,,,,,,,,,,,,,, -2033,10383.001,9369.742,16530.263,36283.005,0.28617,,2033,6465.447,1042.433,9672.838,4524.002,16180.344,7507.880,0.86115,30377.185,0.14893,37885.065,0.19818,,,,606.448,303.097,692.514,1602.060,0.15583,0.22271,0.37854,0.62146,,59%,41%,,,,,,,,,,,,,,,,,,,,,,,,, -2034,10793.374,9506.904,16747.163,37047.442,0.29134,,2034,6769.131,1081.253,9833.909,4692.474,16416.182,7850.384,0.86227,30942.566,0.15165,38792.950,0.20237,,,,668.231,327.005,750.272,1745.508,0.15673,0.22610,0.38283,0.61717,,59%,41%,,,,,,,,,,,,,,,,,,,,,,,,, -2035,11215.479,9638.202,16967.503,37821.185,0.29654,,2035,7084.191,1121.202,9989.977,4865.033,16656.365,8205.393,0.86336,31511.374,0.15439,39716.768,0.20660,,,,733.744,351.775,810.064,1895.583,0.15760,0.22948,0.38708,0.61292,,59%,41%,,,,,,,,,,,,,,,,,,,,,,,,, -2036,11649.532,9763.918,17191.066,38604.516,0.30177,,2036,7410.986,1162.300,10141.372,5041.787,16900.761,8573.286,0.86443,32083.921,0.15714,40657.206,0.21087,,,,803.241,377.454,871.995,2052.690,0.15843,0.23288,0.39131,0.60869,,60%,40%,,,,,,,,,,,,,,,,,,,,,,,,, -2037,12095.751,9884.332,17417.634,39397.718,0.30702,,2037,7749.879,1204.548,10288.287,5222.863,17149.158,8954.427,0.86548,32660.308,0.15991,41614.735,0.21517,,,,876.990,403.955,936.072,2217.017,0.15926,0.23631,0.39557,0.60443,,60%,40%,,,,,,,,,,,,,,,,,,,,,,,,, +2014,4555.598,5262.773,13334.33,23152.701,0.19676,,2014,0,0,5262.773,4555.598,13334.33,0,,23152.701,0.19676,23152.701,0,,,,0,0,0,0,,,,,,0%,100%,,,,,,,,,,,,,,,,,,,,,,,,, +2015,4754.218,5577.466,13461.522,23793.206,0.19981,,2015,2622.263,528.301,5577.466,2131.955,12933.221,3150.565,0.83232,20642.642,0.10328,23793.206,0.13241,,,,0,0,0,0,,,,,,55%,45%,,,,,,,,,,,,,,,,,,,,,,,,, +2016,4990.643,5868.272,13579.414,24438.33,0.20421,,2016,2765.394,546.916,5873.482,2231.744,13044.507,3312.31,0.83488,21149.734,0.10552,24462.044,0.13541,,,,6.495,5.21,12.01,23.715,0.12232,0.15157,0.27389,0.72611,,55%,45%,,,,,,,,,,,,,,,,,,,,,,,,, +2017,5234.883,6148.152,13704.65,25087.685,0.20866,,2017,2915.838,566.854,6161.346,2335.411,13167.239,3482.692,0.83724,21663.995,0.1078,25146.688,0.1385,,,,16.366,13.194,29.443,59.003,0.12336,0.15401,0.27737,0.72263,,56%,44%,,,,,,,,,,,,,,,,,,,,,,,,, +2018,5487.154,6417.387,13837.014,25741.555,0.21316,,2018,3073.751,588.075,6441.02,2442.987,13300.495,3661.826,0.8394,22184.502,0.11012,25846.329,0.14168,,,,29.584,23.633,51.556,104.774,0.12504,0.15732,0.28236,0.71764,,56%,44%,,,,,,,,,,,,,,,,,,,,,,,,, +2019,5747.675,6676.257,13976.288,26400.221,0.21771,,2019,3239.111,610.489,6712.044,2554.415,13442.847,3849.6,0.84141,22709.307,0.11248,26558.907,0.14495,,,,45.851,35.787,77.048,158.686,0.1274,0.16155,0.28894,0.71106,,56%,44%,,,,,,,,,,,,,,,,,,,,,,,,, +2020,6016.663,6925.046,14122.257,27063.965,0.22231,,2020,3411.947,634.025,6974.05,2669.662,13593.165,4045.972,0.84329,23236.877,0.11489,27282.849,0.1483,,,,64.946,49.004,104.933,218.884,0.13025,0.16647,0.29672,0.70328,,56%,44%,,,,,,,,,,,,,,,,,,,,,,,,, +2021,6294.335,7164.032,14274.702,27733.069,0.22696,,2021,3592.484,658.673,7227.105,2788.791,13751.036,4251.156,0.84506,23766.932,0.11734,28018.088,0.15173,,,,86.94,63.073,135.007,285.02,0.13331,0.17172,0.30503,0.69497,,56%,44%,,,,,,,,,,,,,,,,,,,,,,,,, +2022,6580.909,7393.499,14433.407,28407.815,0.23166,,2022,3781.108,684.462,7471.617,2911.903,13916.546,4465.569,0.84672,24300.065,0.11983,28765.635,0.15524,,,,112.102,78.118,167.6,357.82,0.1363,0.17699,0.31329,0.68671,,56%,44%,,,,,,,,,,,,,,,,,,,,,,,,, +2023,6876.603,7613.727,14598.155,29088.484,0.2364,,2023,3978.152,711.399,7707.872,3039.038,14089.601,4689.551,0.8483,24836.511,0.12236,29526.062,0.15883,,,,140.588,94.145,202.845,437.577,0.13914,0.18214,0.32129,0.67871,,57%,43%,,,,,,,,,,,,,,,,,,,,,,,,, +2024,7181.634,7824.997,14768.728,29775.359,0.24119,,2024,4183.994,739.499,7936.263,3170.225,14270.241,4923.493,0.8498,25376.729,0.12493,30300.222,0.16249,,,,172.585,111.266,241.012,524.863,0.14175,0.18707,0.32882,0.67118,,57%,43%,,,,,,,,,,,,,,,,,,,,,,,,, +2025,7496.22,8027.591,14944.911,30468.722,0.24603,,2025,4398.969,768.774,8157.14,3305.467,14458.402,5167.743,0.85124,25921.009,0.12752,31088.752,0.16623,,,,208.216,129.549,282.265,620.03,0.14408,0.19174,0.33582,0.66418,,57%,43%,,,,,,,,,,,,,,,,,,,,,,,,, +2026,7820.579,8221.79,15126.486,31168.855,0.25091,,2026,4623.421,799.231,8370.743,3444.827,14653.923,5422.652,0.85261,26469.493,0.13014,31892.145,0.17003,,,,247.669,148.953,326.668,723.29,0.1462,0.19622,0.34242,0.65758,,57%,43%,,,,,,,,,,,,,,,,,,,,,,,,, +2027,8154.928,8407.875,15313.236,31876.038,0.25583,,2027,4857.551,830.856,8577.202,3588.274,14856.373,5688.407,0.85394,27021.849,0.13279,32710.256,0.1739,,,,290.898,169.328,373.993,834.218,0.14815,0.20056,0.34871,0.65129,,58%,42%,,,,,,,,,,,,,,,,,,,,,,,,, +2028,8499.484,8586.127,15504.944,32590.555,0.2608,,2028,5101.369,863.602,8776.639,3735.596,15065.091,5964.97,0.85522,27577.325,0.13546,33542.296,0.17783,,,,337.48,190.512,423.748,951.74,0.14989,0.2047,0.35459,0.64541,,58%,42%,,,,,,,,,,,,,,,,,,,,,,,,, +2029,8854.466,8756.828,15701.393,33312.687,0.2658,,2029,5354.745,897.399,8969.129,3886.495,15279.243,6252.144,0.85647,28134.867,0.13814,34387.011,0.18182,,,,386.774,212.301,475.249,1074.323,0.15141,0.20861,0.36002,0.63998,,58%,42%,,,,,,,,,,,,,,,,,,,,,,,,, +2030,9220.091,8920.259,15902.367,34042.717,0.27084,,2030,5617.629,932.192,9154.788,4040.764,15498.144,6549.821,0.85768,28693.695,0.14082,35243.516,0.18584,,,,438.302,234.529,527.969,1200.8,0.15271,0.2123,0.36501,0.63499,,58%,42%,,,,,,,,,,,,,,,,,,,,,,,,, +2031,9596.577,9076.7,16107.647,34780.925,0.27591,,2031,5890.148,967.951,9333.754,4198.354,15721.367,6858.099,0.85886,29253.474,0.14352,36111.573,0.18991,,,,491.924,257.053,581.671,1330.648,0.15385,0.21584,0.36969,0.63031,,58%,42%,,,,,,,,,,,,,,,,,,,,,,,,, +2032,9984.141,9226.434,16317.018,35527.594,0.28102,,2032,6172.624,1004.687,9506.297,4359.379,15948.779,7177.311,0.86002,29814.455,0.14622,36991.766,0.19402,,,,547.862,279.862,636.448,1464.172,0.15488,0.2193,0.37418,0.62582,,59%,41%,,,,,,,,,,,,,,,,,,,,,,,,, +2033,10383.001,9369.742,16530.263,36283.005,0.28617,,2033,6465.447,1042.433,9672.838,4524.002,16180.344,7507.88,0.86115,30377.185,0.14893,37885.065,0.19818,,,,606.448,303.097,692.514,1602.06,0.15583,0.22271,0.37854,0.62146,,59%,41%,,,,,,,,,,,,,,,,,,,,,,,,, +2034,10793.374,9506.904,16747.163,37047.442,0.29134,,2034,6769.131,1081.253,9833.909,4692.474,16416.182,7850.384,0.86227,30942.566,0.15165,38792.95,0.20237,,,,668.231,327.005,750.272,1745.508,0.15673,0.2261,0.38283,0.61717,,59%,41%,,,,,,,,,,,,,,,,,,,,,,,,, +2035,11215.479,9638.202,16967.503,37821.185,0.29654,,2035,7084.191,1121.202,9989.977,4865.033,16656.365,8205.393,0.86336,31511.374,0.15439,39716.768,0.2066,,,,733.744,351.775,810.064,1895.583,0.1576,0.22948,0.38708,0.61292,,59%,41%,,,,,,,,,,,,,,,,,,,,,,,,, +2036,11649.532,9763.918,17191.066,38604.516,0.30177,,2036,7410.986,1162.3,10141.372,5041.787,16900.761,8573.286,0.86443,32083.921,0.15714,40657.206,0.21087,,,,803.241,377.454,871.995,2052.69,0.15843,0.23288,0.39131,0.60869,,60%,40%,,,,,,,,,,,,,,,,,,,,,,,,, +2037,12095.751,9884.332,17417.634,39397.718,0.30702,,2037,7749.879,1204.548,10288.287,5222.863,17149.158,8954.427,0.86548,32660.308,0.15991,41614.735,0.21517,,,,876.99,403.955,936.072,2217.017,0.15926,0.23631,0.39557,0.60443,,60%,40%,,,,,,,,,,,,,,,,,,,,,,,,, 2038,12554.355,9999.726,17646.991,40201.072,0.31229,,2038,8101.443,1247.979,10430.899,5408.547,17401.473,9349.423,0.86652,33240.918,0.16271,42590.341,0.21952,,,,955.635,431.173,1002.461,2389.269,0.16012,0.23985,0.39997,0.60003,,60%,40%,,,,,,,,,,,,,,,,,,,,,,,,, -2039,13025.560,10110.381,17878.919,41014.860,0.31758,,2039,8466.341,1292.628,10569.320,5599.179,17657.639,9758.969,0.86754,33826.138,0.16553,43585.107,0.22391,,,,1039.960,458.940,1071.347,2570.247,0.16107,0.24355,0.40461,0.59539,,60%,40%,,,,,,,,,,,,,,,,,,,,,,,,, -2040,13509.584,10216.578,18113.202,41839.364,0.32289,,2040,8845.221,1338.526,10703.695,5795.053,17917.597,10183.747,0.86856,34416.346,0.16838,44600.093,0.22833,,,,1130.690,487.117,1142.921,2760.728,0.16212,0.24745,0.40956,0.59044,,60%,40%,,,,,,,,,,,,,,,,,,,,,,,,, -2041,14006.645,10318.599,18349.623,42674.866,0.32822,,2041,9238.638,1385.702,10834.302,5996.328,18181.262,10624.340,0.86957,35011.893,0.17127,45636.233,0.23280,,,,1228.322,515.704,1217.341,2961.367,0.16325,0.25153,0.41478,0.58522,,61%,39%,,,,,,,,,,,,,,,,,,,,,,,,, -2042,14516.960,10416.724,18587.965,43521.648,0.33356,,2042,9647.105,1434.178,10961.434,6203.126,18448.586,11081.283,0.87058,35613.146,0.17418,46694.429,0.23731,,,,1333.272,544.710,1294.799,3172.781,0.16446,0.25576,0.42022,0.57978,,61%,39%,,,,,,,,,,,,,,,,,,,,,,,,, -2043,15040.747,10511.235,18828.010,44379.992,0.33891,,2043,10071.194,1483.979,11085.254,6415.665,18719.601,11555.172,0.87157,36220.520,0.17713,47775.692,0.24186,,,,1446.112,574.019,1375.570,3395.700,0.16572,0.26015,0.42587,0.57413,,61%,39%,,,,,,,,,,,,,,,,,,,,,,,,, +2039,13025.56,10110.381,17878.919,41014.86,0.31758,,2039,8466.341,1292.628,10569.32,5599.179,17657.639,9758.969,0.86754,33826.138,0.16553,43585.107,0.22391,,,,1039.96,458.94,1071.347,2570.247,0.16107,0.24355,0.40461,0.59539,,60%,40%,,,,,,,,,,,,,,,,,,,,,,,,, +2040,13509.584,10216.578,18113.202,41839.364,0.32289,,2040,8845.221,1338.526,10703.695,5795.053,17917.597,10183.747,0.86856,34416.346,0.16838,44600.093,0.22833,,,,1130.69,487.117,1142.921,2760.728,0.16212,0.24745,0.40956,0.59044,,60%,40%,,,,,,,,,,,,,,,,,,,,,,,,, +2041,14006.645,10318.599,18349.623,42674.866,0.32822,,2041,9238.638,1385.702,10834.302,5996.328,18181.262,10624.34,0.86957,35011.893,0.17127,45636.233,0.2328,,,,1228.322,515.704,1217.341,2961.367,0.16325,0.25153,0.41478,0.58522,,61%,39%,,,,,,,,,,,,,,,,,,,,,,,,, +2042,14516.96,10416.724,18587.965,43521.648,0.33356,,2042,9647.105,1434.178,10961.434,6203.126,18448.586,11081.283,0.87058,35613.146,0.17418,46694.429,0.23731,,,,1333.272,544.71,1294.799,3172.781,0.16446,0.25576,0.42022,0.57978,,61%,39%,,,,,,,,,,,,,,,,,,,,,,,,, +2043,15040.747,10511.235,18828.01,44379.992,0.33891,,2043,10071.194,1483.979,11085.254,6415.665,18719.601,11555.172,0.87157,36220.52,0.17713,47775.692,0.24186,,,,1446.112,574.019,1375.57,3395.7,0.16572,0.26015,0.42587,0.57413,,61%,39%,,,,,,,,,,,,,,,,,,,,,,,,, 2044,15578.224,10602.413,19069.542,45250.179,0.34427,,2044,10511.478,1535.129,11205.897,6634.169,18994.382,12046.607,0.87257,36834.448,0.18011,48881.055,0.24645,,,,1567.423,603.484,1459.969,3630.876,0.16703,0.26466,0.43169,0.56831,,61%,39%,,,,,,,,,,,,,,,,,,,,,,,,, -2045,16129.608,10690.540,19312.344,46132.492,0.34964,,2045,10968.532,1587.652,11323.553,6858.812,19272.979,12556.183,0.87356,37455.344,0.18312,50011.527,0.25107,,,,1697.736,633.013,1548.287,3879.036,0.16839,0.26928,0.43767,0.56233,,62%,38%,,,,,,,,,,,,,,,,,,,,,,,,, -2046,16695.117,10775.897,19556.199,47027.212,0.35501,,2046,11442.951,1641.571,11438.484,7089.732,19555.350,13084.522,0.87454,38083.565,0.18616,51168.088,0.25572,,,,1837.566,662.588,1640.722,4140.876,0.16976,0.27400,0.44376,0.55624,,62%,38%,,,,,,,,,,,,,,,,,,,,,,,,, -2047,17274.968,10858.764,19800.890,47934.622,0.36039,,2047,11935.312,1696.907,11551.057,7326.962,19841.426,13632.219,0.87552,38719.446,0.18923,52351.665,0.26040,,,,1987.306,692.293,1737.443,4417.043,0.17114,0.27878,0.44992,0.55008,,62%,38%,,,,,,,,,,,,,,,,,,,,,,,,, -2048,17869.379,10939.423,20046.200,48855.002,0.36576,,2048,12446.135,1753.668,11661.714,7570.425,20131.207,14199.803,0.87650,39363.346,0.19232,53563.149,0.26510,,,,2147.181,722.291,1838.676,4708.147,0.17248,0.28357,0.45606,0.54394,,62%,38%,,,,,,,,,,,,,,,,,,,,,,,,, -2049,18478.568,11018.156,20291.912,49788.636,0.37114,,2049,12975.906,1811.860,11770.971,7819.964,20424.692,14787.766,0.87748,40015.627,0.19542,54803.393,0.26983,,,,2317.301,752.814,1944.641,5014.757,0.17376,0.28833,0.46210,0.53790,,62%,38%,,,,,,,,,,,,,,,,,,,,,,,,, -2050,19102.753,11095.244,20537.809,50735.805,0.37651,,2050,13525.121,1871.486,11879.337,8075.444,20721.854,15396.607,0.87845,40676.634,0.19853,56073.241,0.27458,,,,2497.812,784.093,2055.530,5337.436,0.17496,0.29302,0.46798,0.53202,,63%,37%,,,,,,,,,,,,,,,,,,,,,,,,, -2051,19742.150,11170.967,20783.674,51696.791,0.38188,,2051,14094.353,1932.560,11987.162,8336.907,21022.633,16026.913,0.87942,41346.703,0.20163,57373.616,0.27934,,,,2689.110,816.195,2171.519,5676.824,0.17606,0.29764,0.47370,0.52630,,63%,37%,,,,,,,,,,,,,,,,,,,,,,,,, -2052,20396.978,11245.608,21029.290,52671.876,0.38725,,2052,14684.170,1995.096,12094.845,8604.378,21326.907,16679.267,0.88038,42026.131,0.20474,58705.398,0.28412,,,,2891.571,849.237,2292.713,6033.522,0.17707,0.30218,0.47925,0.52075,,63%,37%,,,,,,,,,,,,,,,,,,,,,,,,, -2053,21067.454,11319.447,21274.441,53661.341,0.39260,,2053,15295.048,2059.094,12203.028,8877.671,21634.481,17354.142,0.88135,42715.180,0.20783,60069.322,0.28890,,,,3105.266,883.582,2419.133,6407.981,0.17797,0.30662,0.48459,0.51541,,63%,37%,,,,,,,,,,,,,,,,,,,,,,,,, -2054,21753.795,11392.765,21518.909,54665.469,0.39794,,2054,15927.427,2124.546,12312.447,9156.536,21945.100,18051.973,0.88231,43414.083,0.21091,61466.055,0.29369,,,,3330.167,919.682,2550.737,6800.586,0.17875,0.31093,0.48969,0.51031,,63%,37%,,,,,,,,,,,,,,,,,,,,,,,,, -2055,22456.220,11465.844,21762.477,55684.542,0.40328,,2055,16581.772,2191.449,12423.752,9440.808,22258.513,18773.221,0.88327,44123.072,0.21397,62896.293,0.29848,,,,3566.359,957.908,2687.484,7211.751,0.17941,0.31511,0.49452,0.50548,,64%,36%,,,,,,,,,,,,,,,,,,,,,,,,, -2056,23174.946,11538.965,22004.929,56718.841,0.40859,,2056,17258.652,2259.810,12537.458,9730.452,22574.547,19518.462,0.88422,44842.456,0.21699,64360.918,0.30327,,,,3814.158,998.492,2829.427,7642.077,0.17994,0.31916,0.49910,0.50090,,64%,36%,,,,,,,,,,,,,,,,,,,,,,,,, -2057,23910.191,11612.410,22246.047,57768.648,0.41390,,2057,17958.659,2329.639,12653.892,10025.593,22893.015,20288.298,0.88517,45572.499,0.21999,65860.797,0.30805,,,,4074.061,1041.482,2976.606,8092.149,0.18037,0.32309,0.50346,0.49654,,64%,36%,,,,,,,,,,,,,,,,,,,,,,,,, -2058,24662.171,11686.459,22485.615,58834.245,0.41918,,2058,18682.304,2400.940,12773.277,10326.437,23213.611,21083.244,0.88612,46313.326,0.22297,67396.570,0.31282,,,,4346.570,1086.818,3128.936,8562.324,0.18071,0.32693,0.50764,0.49236,,64%,36%,,,,,,,,,,,,,,,,,,,,,,,,, -2059,25431.106,11761.394,22723.415,59915.915,0.42445,,2059,19430.083,2473.719,12895.716,10633.302,23535.979,21903.802,0.88706,47064.998,0.22593,68968.800,0.31759,,,,4632.279,1134.322,3286.283,9052.885,0.18098,0.33071,0.51169,0.48831,,65%,35%,,,,,,,,,,,,,,,,,,,,,,,,, -2060,26217.212,11837.496,22959.231,61013.939,0.42969,,2060,20202.534,2547.981,13021.338,10946.498,23859.784,22750.515,0.88800,47827.620,0.22887,70578.134,0.32235,,,,4931.820,1183.842,3448.534,9564.196,0.18121,0.33444,0.51565,0.48435,,65%,35%,,,,,,,,,,,,,,,,,,,,,,,,, +2045,16129.608,10690.54,19312.344,46132.492,0.34964,,2045,10968.532,1587.652,11323.553,6858.812,19272.979,12556.183,0.87356,37455.344,0.18312,50011.527,0.25107,,,,1697.736,633.013,1548.287,3879.036,0.16839,0.26928,0.43767,0.56233,,62%,38%,,,,,,,,,,,,,,,,,,,,,,,,, +2046,16695.117,10775.897,19556.199,47027.212,0.35501,,2046,11442.951,1641.571,11438.484,7089.732,19555.35,13084.522,0.87454,38083.565,0.18616,51168.088,0.25572,,,,1837.566,662.588,1640.722,4140.876,0.16976,0.274,0.44376,0.55624,,62%,38%,,,,,,,,,,,,,,,,,,,,,,,,, +2047,17274.968,10858.764,19800.89,47934.622,0.36039,,2047,11935.312,1696.907,11551.057,7326.962,19841.426,13632.219,0.87552,38719.446,0.18923,52351.665,0.2604,,,,1987.306,692.293,1737.443,4417.043,0.17114,0.27878,0.44992,0.55008,,62%,38%,,,,,,,,,,,,,,,,,,,,,,,,, +2048,17869.379,10939.423,20046.2,48855.002,0.36576,,2048,12446.135,1753.668,11661.714,7570.425,20131.207,14199.803,0.8765,39363.346,0.19232,53563.149,0.2651,,,,2147.181,722.291,1838.676,4708.147,0.17248,0.28357,0.45606,0.54394,,62%,38%,,,,,,,,,,,,,,,,,,,,,,,,, +2049,18478.568,11018.156,20291.912,49788.636,0.37114,,2049,12975.906,1811.86,11770.971,7819.964,20424.692,14787.766,0.87748,40015.627,0.19542,54803.393,0.26983,,,,2317.301,752.814,1944.641,5014.757,0.17376,0.28833,0.4621,0.5379,,62%,38%,,,,,,,,,,,,,,,,,,,,,,,,, +2050,19102.753,11095.244,20537.809,50735.805,0.37651,,2050,13525.121,1871.486,11879.337,8075.444,20721.854,15396.607,0.87845,40676.634,0.19853,56073.241,0.27458,,,,2497.812,784.093,2055.53,5337.436,0.17496,0.29302,0.46798,0.53202,,63%,37%,,,,,,,,,,,,,,,,,,,,,,,,, +2051,19742.15,11170.967,20783.674,51696.791,0.38188,,2051,14094.353,1932.56,11987.162,8336.907,21022.633,16026.913,0.87942,41346.703,0.20163,57373.616,0.27934,,,,2689.11,816.195,2171.519,5676.824,0.17606,0.29764,0.4737,0.5263,,63%,37%,,,,,,,,,,,,,,,,,,,,,,,,, +2052,20396.978,11245.608,21029.29,52671.876,0.38725,,2052,14684.17,1995.096,12094.845,8604.378,21326.907,16679.267,0.88038,42026.131,0.20474,58705.398,0.28412,,,,2891.571,849.237,2292.713,6033.522,0.17707,0.30218,0.47925,0.52075,,63%,37%,,,,,,,,,,,,,,,,,,,,,,,,, +2053,21067.454,11319.447,21274.441,53661.341,0.3926,,2053,15295.048,2059.094,12203.028,8877.671,21634.481,17354.142,0.88135,42715.18,0.20783,60069.322,0.2889,,,,3105.266,883.582,2419.133,6407.981,0.17797,0.30662,0.48459,0.51541,,63%,37%,,,,,,,,,,,,,,,,,,,,,,,,, +2054,21753.795,11392.765,21518.909,54665.469,0.39794,,2054,15927.427,2124.546,12312.447,9156.536,21945.1,18051.973,0.88231,43414.083,0.21091,61466.055,0.29369,,,,3330.167,919.682,2550.737,6800.586,0.17875,0.31093,0.48969,0.51031,,63%,37%,,,,,,,,,,,,,,,,,,,,,,,,, +2055,22456.22,11465.844,21762.477,55684.542,0.40328,,2055,16581.772,2191.449,12423.752,9440.808,22258.513,18773.221,0.88327,44123.072,0.21397,62896.293,0.29848,,,,3566.359,957.908,2687.484,7211.751,0.17941,0.31511,0.49452,0.50548,,64%,36%,,,,,,,,,,,,,,,,,,,,,,,,, +2056,23174.946,11538.965,22004.929,56718.841,0.40859,,2056,17258.652,2259.81,12537.458,9730.452,22574.547,19518.462,0.88422,44842.456,0.21699,64360.918,0.30327,,,,3814.158,998.492,2829.427,7642.077,0.17994,0.31916,0.4991,0.5009,,64%,36%,,,,,,,,,,,,,,,,,,,,,,,,, +2057,23910.191,11612.41,22246.047,57768.648,0.4139,,2057,17958.659,2329.639,12653.892,10025.593,22893.015,20288.298,0.88517,45572.499,0.21999,65860.797,0.30805,,,,4074.061,1041.482,2976.606,8092.149,0.18037,0.32309,0.50346,0.49654,,64%,36%,,,,,,,,,,,,,,,,,,,,,,,,, +2058,24662.171,11686.459,22485.615,58834.245,0.41918,,2058,18682.304,2400.94,12773.277,10326.437,23213.611,21083.244,0.88612,46313.326,0.22297,67396.57,0.31282,,,,4346.57,1086.818,3128.936,8562.324,0.18071,0.32693,0.50764,0.49236,,64%,36%,,,,,,,,,,,,,,,,,,,,,,,,, +2059,25431.106,11761.394,22723.415,59915.915,0.42445,,2059,19430.083,2473.719,12895.716,10633.302,23535.979,21903.802,0.88706,47064.998,0.22593,68968.8,0.31759,,,,4632.279,1134.322,3286.283,9052.885,0.18098,0.33071,0.51169,0.48831,,65%,35%,,,,,,,,,,,,,,,,,,,,,,,,, +2060,26217.212,11837.496,22959.231,61013.939,0.42969,,2060,20202.534,2547.981,13021.338,10946.498,23859.784,22750.515,0.888,47827.62,0.22887,70578.134,0.32235,,,,4931.82,1183.842,3448.534,9564.196,0.18121,0.33444,0.51565,0.48435,,65%,35%,,,,,,,,,,,,,,,,,,,,,,,,, 2061,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, @@ -130,53 +130,53 @@ Table 4: Total REF2 Electricity Generation by Economic Development Status (TWh), ,SOLUTION ,,,CONVENTIONAL,,,,,SOLUTION ,,,CONVENTIONAL,,,,,SOLUTION,,,,CONVENTIONAL,,,,EMISSION REDUCTIONS,,,,,"SOLUTION - Least and Less Developed Countries (sans LAC, EE, China)",,,,"CONVENTIONAL - Least and Less Developed Countries (sans LAC, EE, China)",,,,"EMISSION REDCUTIONS - LEAST AND LESS DEVELOPED COUNTRIES (sans, LAC, EE, China)",,,,,#VALUE!,,,,#VALUE!,,,#VALUE!,,,,% Allocation to Education (Electricity),,, ,Additional Functional Units in REF2 vs REF1,Annual Functional Units Increase,Annual Implementation Units Increase + Replacement,Additional Functional Units in REF2 vs REF2,Annual Functional Units Increase,Change in TAM,Annual Implementation Units Increase + Replacement,,Additional Functional Units in REF2 vs REF1,Annual Functional Units Increase,Annual Implementation Units Increase + Replacement,Additional Functional Units in REF2 vs REF2,Annual Functional Units Increase,Change in TAM,Annual Implementation Units Increase + Replacement,,Avoided Emissions/ Million Metric Tons CO2,,,,Avoided Emissions/ Million Metric Tons CO2,,,,ALL Years,,,,,Avoided Emissions/ Million Metric Tons CO2,,,,Avoided Emissions/ Million Metric Tons CO2,,,,ALL Years,,,,,,,,,,,,,,,,ALL Years,,, ,TWh,TWh,TW,TWh,TWh,%,TW,,TWh,TWh,TW,TWh,TWh,%,TW,,Grid,Fuel,Other Direct,Indirect,Grid,Fuel,Other Direct,Indirect,Conv Total,Solution Total,,,,Grid,Fuel,Other Direct,Indirect,Grid,Fuel,Other Direct,Indirect,Conv Total,Solution Total,,,,,Conv Total,Solution Total,,Conv Total,Solution Total,,Conv Total,Solution Total,,,Conv Total,Solution Total,, -2014,,,, - , ,, Not modeled TBD ,,,,, - , ,, Not modeled TBD ,,,,,, ,,,, - , - ,,,,,,,, ,,,, - , - ,,,,2014,0,0,,0,0,,0,0,,,,,, -2015,,,, - , - ,,,,,,, - , - ,,,,,,,, - ,,,, - , - ,,,,,,,, - ,,,, - , - ,,,,2015,0,0,,0,0,,0,0,,,,,, -2016,,,,2.6,2.6,10%,,,,,,3.2,3.2,12%,,,,,,,1.58,,,,1.6, - ,,,,,,,,1.96,,,,2, - ,,,,2016,3.54,0,,0.98,0,,2.56,0,,,28%,,, -2017,,,,6.5,3.9,10%,,,,,,8.1,4.9,12%,,,,,,,3.92,,,,3.9, - ,,,,,,,,4.9,,,,4.9, - ,,,,2017,8.82,0,,2.45,0,,6.37,0,,,28%,,, -2018,,,,11.7,5.2,10%,,,,,,14.7,6.6,13%,,,,,,,7,,,,7, - ,,,,,,,,8.81,,,,8.8, - ,,,,2018,15.81,0,,4.4,0,,11.41,0,,,28%,,, -2019,,,,18,6.3,10%,,,,,,22.8,8.2,13%,,,,,,,10.75,,,,10.8, - ,,,,,,,,13.63,,,,13.6, - ,,,,2019,24.39,0,,6.82,0,,17.57,0,,,28%,,, -2020,,,,25.4,7.4,11%,,,,,,32.5,9.6,13%,,,,,,,15.07,,,,15.1, - ,,,,,,,,19.26,,,,19.3, - ,,,,2020,34.33,0,,9.63,0,,24.7,0,,,28%,,, -2021,,,,33.9,8.4,11%,,,,,,43.6,11.1,14%,,,,,,,19.96,,,,20, - ,,,,,,,,25.71,,,,25.7, - ,,,,2021,45.66,0,,12.85,0,,32.81,0,,,28%,,, -2022,,,,43.4,9.6,11%,,,,,,56.4,12.8,14%,,,,,,,25.44,,,,25.4, - ,,,,,,,,33.03,,,,33, - ,,,,2022,58.47,0,,16.52,0,,41.95,0,,,28%,,, -2023,,,,54.1,10.7,11%,,,,,,70.8,14.5,15%,,,,,,,31.52,,,,31.5, - ,,,,,,,,41.26,,,,41.3, - ,,,,2023,72.78,0,,20.63,0,,52.15,0,,,28%,,, -2024,,,,66,11.9,11%,,,,,,87.1,16.2,15%,,,,,,,38.21,,,,38.2, - ,,,,,,,,50.43,,,,50.4, - ,,,,2024,88.63,0,,25.21,0,,63.42,0,,,28%,,, -2025,,,,79,13,12%,,,,,,105.1,18,16%,,,,,,,45.51,,,,45.5, - ,,,,,,,,60.57,,,,60.6, - ,,,,2025,106.08,0,,30.28,0,,75.8,0,,,29%,,, -2026,,,,93.2,14.2,12%,,,,,,125.1,19.9,16%,,,,,,,53.36,,,,53.4, - ,,,,,,,,71.62,,,,71.6, - ,,,,2026,124.98,0,,35.81,0,,89.17,0,,,29%,,, -2027,,,,108.5,15.3,12%,,,,,,146.9,21.8,16%,,,,,,,61.79,,,,61.8, - ,,,,,,,,83.64,,,,83.6, - ,,,,2027,145.43,0,,41.82,0,,103.61,0,,,29%,,, -2028,,,,124.7,16.2,12%,,,,,,170.3,23.4,17%,,,,,,,70.63,,,,70.6, - ,,,,,,,,96.46,,,,96.5, - ,,,,2028,167.09,0,,48.23,0,,118.86,0,,,29%,,, -2029,,,,141.6,16.8,12%,,,,,,195,24.7,17%,,,,,,,79.74,,,,79.7, - ,,,,,,,,109.86,,,,109.9, - ,,,,2029,189.6,0,,54.93,0,,134.67,0,,,29%,,, -2030,,,,158.8,17.3,12%,,,,,,220.8,25.8,17%,,,,,,,89.01,,,,89, - ,,,,,,,,123.74,,,,123.7, - ,,,,2030,212.75,0,,61.87,0,,150.88,0,,,29%,,, -2031,,,,176.4,17.6,12%,,,,,,247.5,26.7,17%,,,,,,,98.32,,,,98.3, - ,,,,,,,,137.94,,,,137.9, - ,,,,2031,236.27,0,,68.97,0,,167.3,0,,,29%,,, -2032,,,,194.4,18,13%,,,,,,275.3,27.8,18%,,,,,,,107.78,,,,107.8, - ,,,,,,,,152.62,,,,152.6, - ,,,,2032,260.4,0,,76.31,0,,184.09,0,,,29%,,, -2033,,,,212.9,18.5,13%,,,,,,304.3,29,18%,,,,,,,117.42,,,,117.4, - ,,,,,,,,167.81,,,,167.8, - ,,,,2033,285.23,0,,83.91,0,,201.33,0,,,29%,,, -2034,,,,232.1,19.2,13%,,,,,,334.9,30.5,18%,,,,,,,127.32,,,,127.3, - ,,,,,,,,183.67,,,,183.7, - ,,,,2034,310.99,0,,91.83,0,,219.16,0,,,30%,,, -2035,,,,252.1,20,13%,,,,,,367.2,32.3,19%,,,,,,,137.55,,,,137.5, - ,,,,,,,,200.29,,,,200.3, - ,,,,2035,337.84,0,,100.15,0,,237.69,0,,,30%,,, -2036,,,,273,20.9,13%,,,,,,401.3,34.2,19%,,,,,,,148.17,,,,148.2, - ,,,,,,,,217.8,,,,217.8, - ,,,,2036,365.98,0,,108.9,0,,257.08,0,,,30%,,, -2037,,,,294.9,21.8,13%,,,,,,437.5,36.2,19%,,,,,,,159.17,,,,159.2, - ,,,,,,,,236.18,,,,236.2, - ,,,,2037,395.34,0,,118.09,0,,277.26,0,,,30%,,, -2038,,,,317.8,22.9,13%,,,,,,476,38.5,19%,,,,,,,170.63,,,,170.6, - ,,,,,,,,255.59,,,,255.6, - ,,,,2038,426.23,0,,127.8,0,,298.43,0,,,30%,,, -2039,,,,342.1,24.3,13%,,,,,,517.3,41.2,20%,,,,,,,182.68,,,,182.7, - ,,,,,,,,276.23,,,,276.2, - ,,,,2039,458.91,0,,138.11,0,,320.79,0,,,30%,,, -2040,,,,367.9,25.8,13%,,,,,,561.6,44.3,20%,,,,,,,195.32,,,,195.3, - ,,,,,,,,298.13,,,,298.1, - ,,,,2040,493.45,0,,149.06,0,,344.38,0,,,30%,,, -2041,,,,395.4,27.5,13%,,,,,,609.2,47.6,20%,,,,,,,208.83,,,,208.8, - ,,,,,,,,321.75,,,,321.7, - ,,,,2041,530.58,0,,160.87,0,,369.7,0,,,30%,,, -2042,,,,424.5,29.2,13%,,,,,,660.2,51.1,21%,,,,,,,222.99,,,,223, - ,,,,,,,,346.8,,,,346.8, - ,,,,2042,569.79,0,,173.4,0,,396.39,0,,,30%,,, -2043,,,,455.5,31,13%,,,,,,715,54.8,21%,,,,,,,237.92,,,,237.9, - ,,,,,,,,373.49,,,,373.5, - ,,,,2043,611.41,0,,186.74,0,,424.67,0,,,31%,,, -2044,,,,488.4,32.9,14%,,,,,,773.8,58.8,21%,,,,,,,253.66,,,,253.7, - ,,,,,,,,401.92,,,,401.9, - ,,,,2044,655.58,0,,200.96,0,,454.62,0,,,31%,,, -2045,,,,523.3,34.9,14%,,,,,,836.8,63,22%,,,,,,,270.18,,,,270.2, - ,,,,,,,,432.06,,,,432.1, - ,,,,2045,702.24,0,,216.03,0,,486.21,0,,,31%,,, -2046,,,,560.3,37,14%,,,,,,904.3,67.4,22%,,,,,,,287.65,,,,287.7, - ,,,,,,,,464.28,,,,464.3, - ,,,,2046,751.93,0,,232.14,0,,519.79,0,,,31%,,, -2047,,,,599.3,39.1,14%,,,,,,976.3,72.1,23%,,,,,,,305.92,,,,305.9, - ,,,,,,,,498.33,,,,498.3, - ,,,,2047,804.24,0,,249.16,0,,555.08,0,,,31%,,, -2048,,,,640.5,41.2,14%,,,,,,"1,053.10",76.7,23%,,,,,,,324.99,,,,325, - ,,,,,,,,534.29,,,,534.3, - ,,,,2048,859.28,0,,267.15,0,,592.13,0,,,31%,,, -2049,,,,683.7,43.2,14%,,,,,,"1,134.50",81.5,23%,,,,,,,345.12,,,,345.1, - ,,,,,,,,572.66,,,,572.7, - ,,,,2049,917.78,0,,286.33,0,,631.45,0,,,31%,,, -2050,,,,728.9,45.2,14%,,,,,,"1,220.80",86.2,24%,,,,,,,366.65,,,,366.6, - ,,,,,,,,614.08,,,,614.1, - ,,,,2050,980.72,0,,307.04,0,,673.69,0,,,31%,,, -2051,,,,776.1,47.2,14%,,,,,,"1,312.00",91.2,24%,,,,,,,388.88,,,,388.9, - ,,,,,,,,657.43,,,,657.4, - ,,,,2051,1046.31,0,,328.72,0,,717.59,0,,,31%,,, -2052,,,,825.2,49.2,14%,,,,,,"1,408.30",96.3,24%,,,,,,,411.99,,,,412, - ,,,,,,,,703.1,,,,703.1, - ,,,,2052,1115.09,0,,351.55,0,,763.54,0,,,32%,,, -2053,,,,876.4,51.1,14%,,,,,,"1,509.80",101.5,25%,,,,,,,435.86,,,,435.9, - ,,,,,,,,750.93,,,,750.9, - ,,,,2053,1186.79,0,,375.46,0,,811.33,0,,,32%,,, -2054,,,,929.3,53,14%,,,,,,"1,616.50",106.7,25%,,,,,,,460.42,,,,460.4, - ,,,,,,,,800.88,,,,800.9, - ,,,,2054,1261.3,0,,400.44,0,,860.86,0,,,32%,,, -2055,,,,984.1,54.8,15%,,,,,,"1,728.50",112,26%,,,,,,,485.58,,,,485.6, - ,,,,,,,,852.86,,,,852.9, - ,,,,2055,1338.44,0,,426.43,0,,912.01,0,,,32%,,, -2056,,,,"1,040.70",56.6,15%,,,,,,"1,845.90",117.4,26%,,,,,,,511.44,,,,511.4, - ,,,,,,,,907.13,,,,907.1, - ,,,,2056,1418.57,0,,453.56,0,,965.01,0,,,32%,,, -2057,,,,"1,099.20",58.5,15%,,,,,,"1,968.90",123.1,26%,,,,,,,537.91,,,,537.9, - ,,,,,,,,963.55,,,,963.5, - ,,,,2057,1501.46,0,,481.77,0,,1019.68,0,,,32%,,, -2058,,,,"1,159.60",60.4,15%,,,,,,"2,098.00",129,26%,,,,,,,565.04,,,,565, - ,,,,,,,,"1,022.26",,,,"1,022.30", - ,,,,2058,1587.3,0,,511.13,0,,1076.17,0,,,32%,,, -2059,,,,"1,222.20",62.5,15%,,,,,,"2,233.20",135.3,27%,,,,,,,592.88,,,,592.9, - ,,,,,,,,"1,083.36",,,,"1,083.40", - ,,,,2059,1676.23,0,,541.68,0,,1134.55,0,,,32%,,, -2060,,,,"1,286.90",64.8,15%,,,,,,"2,375.10",141.9,27%,,,,,,,621.66,,,,621.7, - ,,,,,,,,"1,147.32",,,,"1,147.30", - ,,,,2060,1768.98,0,,573.66,0,,1195.32,0,,,32%,,, +2014,,,,,,, Not modeled TBD ,,,,,,,, Not modeled TBD ,,,,,,,,,,,,,,,,,,,,,,,,,,,,2014,0,0,,0,0,,0,0,,,,,, +2015,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2015,0,0,,0,0,,0,0,,,,,, +2016,,,,2.580721651,2.580721651,0.098992078,,,,,,3.197889765,3.197889765,0.122665601,,,,,,,1.582120987,,,,1.582120987,,,,,,,,,1.960478191,,,,1.960478191,,,,,2016,3.54,0,,0.98,0,,2.56,0,,,28%,,, +2017,,,,6.481238206,3.900516555,0.099830102,,,,,,8.091983104,4.894093339,0.124640293,,,,,,,3.924772264,,,,3.924772264,,,,,,,,,4.900173367,,,,4.900173367,,,,,2017,8.82,0,,2.45,0,,6.37,0,,,28%,,, +2018,,,,11.67298737,5.19174916,0.101191832,,,,,,14.6868971,6.594914001,0.127319076,,,,,,,7.001735219,,,,7.001735219,,,,,,,,,8.809549903,,,,8.809549903,,,,,2018,15.81,0,,4.4,0,,11.41,0,,,28%,,, +2019,,,,18.01980541,6.346818047,0.103101071,,,,,,22.85090435,8.164007241,0.130742415,,,,,,,10.7522757,,,,10.7522757,,,,,,,,,13.63495431,,,,13.63495431,,,,,2019,24.39,0,,6.82,0,,17.57,0,,,28%,,, +2020,,,,25.41389405,7.394088639,0.105409251,,,,,,32.48164465,9.630740305,0.134724171,,,,,,,15.06933278,,,,15.06933278,,,,,,,,,19.2602012,,,,19.2602012,,,,,2020,34.33,0,,9.63,0,,24.7,0,,,28%,,, +2021,,,,33.85682492,8.442930872,0.107882791,,,,,,43.61385503,11.13221038,0.138972996,,,,,,,19.9550166,,,,19.9550166,,,,,,,,,25.70575365,,,,25.70575365,,,,,2021,45.66,0,,12.85,0,,32.81,0,,,28%,,, +2022,,,,43.41818642,9.561361495,0.110307573,,,,,,56.37994202,12.76608698,0.143238007,,,,,,,25.43827867,,,,25.43827867,,,,,,,,,33.03244089,,,,33.03244089,,,,,2022,58.47,0,,16.52,0,,41.95,0,,,28%,,, +2023,,,,54.11642731,10.69824089,0.112607488,,,,,,70.83970043,14.45975842,0.147405902,,,,,,,31.5211936,,,,31.5211936,,,,,,,,,41.26199794,,,,41.26199794,,,,,2023,72.78,0,,20.63,0,,52.15,0,,,28%,,, +2024,,,,65.97492046,11.85849315,0.114712773,,,,,,87.07245325,16.23275282,0.151395751,,,,,,,38.20782532,,,,38.20782532,,,,,,,,,50.42596583,,,,50.42596583,,,,,2024,88.63,0,,25.21,0,,63.42,0,,,28%,,, +2025,,,,78.98968561,13.01476515,0.116599176,,,,,,105.1228591,18.05040585,0.155175182,,,,,,,45.51233423,,,,45.51233423,,,,,,,,,60.56976505,,,,60.56976505,,,,,2025,106.08,0,,30.28,0,,75.8,0,,,29%,,, +2026,,,,93.18389918,14.19421357,0.118317494,,,,,,125.0675747,19.9447156,0.158800846,,,,,,,53.36087211,,,,53.36087211,,,,,,,,,71.61875515,,,,71.61875515,,,,,2026,124.98,0,,35.81,0,,89.17,0,,,29%,,, +2027,,,,108.4928845,15.30898529,0.119896232,,,,,,146.8755777,21.80800299,0.162313208,,,,,,,61.78503275,,,,61.78503275,,,,,,,,,83.64338751,,,,83.64338751,,,,,2027,145.43,0,,41.82,0,,103.61,0,,,29%,,, +2028,,,,124.7098831,16.21699863,0.121307497,,,,,,170.3101828,23.4346051,0.16566371,,,,,,,70.6330324,,,,70.6330324,,,,,,,,,96.46007486,,,,96.46007486,,,,,2028,167.09,0,,48.23,0,,118.86,0,,,29%,,, +2029,,,,141.5542143,16.84433117,0.122532419,,,,,,195.036754,24.72657118,0.168828073,,,,,,,79.73992012,,,,79.73992012,,,,,,,,,109.8675533,,,,109.8675533,,,,,2029,189.6,0,,54.93,0,,134.67,0,,,29%,,, +2030,,,,158.8185876,17.26437329,0.123584009,,,,,,220.7997516,25.76299762,0.17181439,,,,,,,89.00592225,,,,89.00592225,,,,,,,,,123.7417221,,,,123.7417221,,,,,2030,212.75,0,,61.87,0,,150.88,0,,,29%,,, +2031,,,,176.4266381,17.60805055,0.124505502,,,,,,247.5238708,26.72411924,0.174679312,,,,,,,98.32352519,,,,98.32352519,,,,,,,,,137.9463998,,,,137.9463998,,,,,2031,236.27,0,,68.97,0,,167.3,0,,,29%,,, +2032,,,,194.4365316,18.00989347,0.125341217,,,,,,275.3164326,27.79256173,0.17747949,,,,,,,107.7849901,,,,107.7849901,,,,,,,,,152.6203883,,,,152.6203883,,,,,2032,260.4,0,,76.31,0,,184.09,0,,,29%,,, +2033,,,,212.9478235,18.51129195,0.126114038,,,,,,304.3399954,29.02356281,0.180239203,,,,,,,117.4214725,,,,117.4214725,,,,,,,,,167.8159926,,,,167.8159926,,,,,2033,285.23,0,,83.91,0,,201.33,0,,,29%,,, +2034,,,,232.1312143,19.18339076,0.126841853,,,,,,334.8737207,30.53372534,0.18298273,,,,,,,127.3225143,,,,127.3225143,,,,,,,,,183.6761342,,,,183.6761342,,,,,2034,310.99,0,,91.83,0,,219.16,0,,,30%,,, +2035,,,,252.1444284,20.01321413,0.127540905,,,,,,367.1590715,32.28535083,0.185718164,,,,,,,137.548251,,,,137.548251,,,,,,,,,200.2903196,,,,200.2903196,,,,,2035,337.84,0,,100.15,0,,237.69,0,,,30%,,, +2036,,,,273.0376586,20.89323016,0.128216065,,,,,,401.3486836,34.18961209,0.188469784,,,,,,,148.174276,,,,148.174276,,,,,,,,,217.8071367,,,,217.8071367,,,,,2036,365.98,0,,108.9,0,,257.08,0,,,30%,,, +2037,,,,294.8656331,21.82797453,0.128885407,,,,,,437.5342469,36.1855633,0.191245683,,,,,,,159.1668185,,,,159.1668185,,,,,,,,,236.1785378,,,,236.1785378,,,,,2037,395.34,0,,118.09,0,,277.26,0,,,30%,,, +2038,,,,317.8120371,22.946404,0.129584757,,,,,,476.0643804,38.53013342,0.194110605,,,,,,,170.6344082,,,,170.6344082,,,,,,,,,255.6006517,,,,255.6006517,,,,,2038,426.23,0,,127.8,0,,298.43,0,,,30%,,, +2039,,,,342.0996809,24.28764376,0.130350227,,,,,,517.2953216,41.23094125,0.197105015,,,,,,,182.6806641,,,,182.6806641,,,,,,,,,276.2348466,,,,276.2348466,,,,,2039,458.91,0,,138.11,0,,320.79,0,,,30%,,, +2040,,,,367.9193147,25.81963384,0.131198703,,,,,,561.5908771,44.29555552,0.200261285,,,,,,,195.3210736,,,,195.3210736,,,,,,,,,298.1374683,,,,298.1374683,,,,,2040,493.45,0,,149.06,0,,344.38,0,,,30%,,, +2041,,,,395.3733597,27.454045,0.132118953,,,,,,609.1743542,47.58347706,0.203563229,,,,,,,208.8302996,,,,208.8302996,,,,,,,,,321.7567895,,,,321.7567895,,,,,2041,530.58,0,,160.87,0,,369.7,0,,,30%,,, +2042,,,,424.5292055,29.15584583,0.133092933,,,,,,660.2292205,51.05486634,0.206986568,,,,,,,222.9918073,,,,222.9918073,,,,,,,,,346.7975941,,,,346.7975941,,,,,2042,569.79,0,,173.4,0,,396.39,0,,,30%,,, +2043,,,,455.4980885,30.96888298,0.134115099,,,,,,715.0596212,54.83040069,0.210539395,,,,,,,237.9238961,,,,237.9238961,,,,,,,,,373.5027113,,,,373.5027113,,,,,2043,611.41,0,,186.74,0,,424.67,0,,,31%,,, +2044,,,,488.3863937,32.88830518,0.135178867,,,,,,773.8425431,58.78292186,0.214189338,,,,,,,253.6630713,,,,253.6630713,,,,,,,,,401.9261771,,,,401.9261771,,,,,2044,655.58,0,,200.96,0,,454.62,0,,,31%,,, +2045,,,,523.2789357,34.89254199,0.136273019,,,,,,836.8295588,62.98701571,0.217928304,,,,,,,270.1773825,,,,270.1773825,,,,,,,,,432.0686433,,,,432.0686433,,,,,2045,702.24,0,,216.03,0,,486.21,0,,,31%,,, +2046,,,,560.255665,36.97672937,0.137386384,,,,,,904.2794626,67.44990377,0.2217482,,,,,,,287.6528041,,,,287.6528041,,,,,,,,,464.2853955,,,,464.2853955,,,,,2046,751.93,0,,232.14,0,,519.79,0,,,31%,,, +2047,,,,599.3495991,39.09393401,0.138500351,,,,,,976.3386887,72.05922613,0.225616654,,,,,,,305.9166593,,,,305.9166593,,,,,,,,,498.337315,,,,498.337315,,,,,2047,804.24,0,,249.16,0,,555.08,0,,,31%,,, +2048,,,,640.5312353,41.18163625,0.139588861,,,,,,1053.075167,76.73647818,0.229493201,,,,,,,324.9854555,,,,324.9854555,,,,,,,,,534.2973049,,,,534.2973049,,,,,2048,859.28,0,,267.15,0,,592.13,0,,,31%,,, +2049,,,,683.731245,43.20000964,0.140624714,,,,,,1134.548711,81.47354395,0.233345469,,,,,,,345.1157195,,,,345.1157195,,,,,,,,,572.6674004,,,,572.6674004,,,,,2049,917.78,0,,286.33,0,,631.45,0,,,31%,,, +2050,,,,728.894341,45.16309609,0.141589089,,,,,,1220.791777,86.24306611,0.237141086,,,,,,,366.6467277,,,,366.6467277,,,,,,,,,614.0798261,,,,614.0798261,,,,,2050,980.72,0,,307.04,0,,673.69,0,,,31%,,, +2051,,,,776.0512259,47.15688488,0.142480625,,,,,,1312.004766,91.21298908,0.240880052,,,,,,,388.8754648,,,,388.8754648,,,,,,,,,657.4391562,,,,657.4391562,,,,,2051,1046.31,0,,328.72,0,,717.59,0,,,31%,,, +2052,,,,825.2283054,49.1770795,0.143298418,,,,,,1408.341498,96.33673238,0.244554274,,,,,,,411.9908919,,,,411.9908919,,,,,,,,,703.1070871,,,,703.1070871,,,,,2052,1115.09,0,,351.55,0,,763.54,0,,,32%,,, +2053,,,,876.3559282,51.12762275,0.144029843,,,,,,1509.864801,101.5233028,0.248147566,,,,,,,435.8605373,,,,435.8605373,,,,,,,,,750.9397294,,,,750.9397294,,,,,2053,1186.79,0,,375.46,0,,811.33,0,,,32%,,, +2054,,,,929.3377642,52.981836,0.14466255,,,,,,1616.55184,106.6870393,0.251635649,,,,,,,460.4178611,,,,460.4178611,,,,,,,,,800.8814119,,,,800.8814119,,,,,2054,1261.3,0,,400.44,0,,860.86,0,,,32%,,, +2055,,,,984.1170971,54.7793329,0.145192594,,,,,,1728.518525,111.9666845,0.255018523,,,,,,,485.5754205,,,,485.5754205,,,,,,,,,852.8721959,,,,852.8721959,,,,,2055,1338.44,0,,426.43,0,,912.01,0,,,32%,,, +2056,,,,1040.706201,56.58910355,0.145624046,,,,,,1845.92072,117.4021953,0.258296188,,,,,,,511.4411142,,,,511.4411142,,,,,,,,,907.152998,,,,907.152998,,,,,2056,1418.57,0,,453.56,0,,965.01,0,,,32%,,, +2057,,,,1099.178427,58.47222607,0.145969235,,,,,,1968.97373,123.0530101,0.261476737,,,,,,,537.9092677,,,,537.9092677,,,,,,,,,963.5644149,,,,963.5644149,,,,,2057,1501.46,0,,481.77,0,,1019.68,0,,,32%,,, +2058,,,,1159.62224,60.4438135,0.146243967,,,,,,2097.987482,129.0137513,0.264584449,,,,,,,565.0419319,,,,565.0419319,,,,,,,,,1022.273339,,,,1022.273339,,,,,2058,1587.3,0,,511.13,0,,1076.17,0,,,32%,,, +2059,,,,1222.162163,62.53992278,0.146466858,,,,,,2233.296252,135.3087705,0.267643603,,,,,,,592.8766658,,,,592.8766658,,,,,,,,,1083.382612,,,,1083.382612,,,,,2059,1676.23,0,,541.68,0,,1134.55,0,,,32%,,, +2060,,,,1286.930524,64.76836097,0.146652936,,,,,,2375.155754,141.8595018,0.270662292,,,,,,,621.6608812,,,,621.6608812,,,,,,,,,1147.335766,,,,1147.335766,,,,,2060,1768.98,0,,573.66,0,,1195.32,0,,,32%,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, diff --git a/solution/health_and_education/tests/test_electricity.py b/solution/health_and_education/tests/test_electricity.py index c35aa235b..bf99ab3bd 100644 --- a/solution/health_and_education/tests/test_electricity.py +++ b/solution/health_and_education/tests/test_electricity.py @@ -45,6 +45,16 @@ def test_electricity_cluster(): exp_change_elec_gen.index = exp_elec.iloc[77:124, 7].astype(int).values pd.testing.assert_frame_equal(test_elec.change_elec_gen, exp_change_elec_gen, check_exact=False, rtol=1e-3) + exp_addl_func_units_highed = exp_elec.iloc[132:179, 4:7].astype(float) + exp_addl_func_units_highed.columns = exp_elec.iloc[130, 4:7].values + exp_addl_func_units_highed.index = exp_elec.iloc[132:179, 0].astype(int, errors='ignore').values + pd.testing.assert_frame_equal(test_elec.addl_func_units_highed, exp_addl_func_units_highed, check_exact=False, rtol=1e-3) + + exp_addl_func_units_lowed = exp_elec.iloc[132:179, 12:15].astype(float) + exp_addl_func_units_lowed.columns = exp_elec.iloc[130, 12:15].values + exp_addl_func_units_lowed.index = exp_elec.iloc[132:179, 0].astype(int, errors='ignore').values + pd.testing.assert_frame_equal(test_elec.addl_func_units_lowed, exp_addl_func_units_lowed, check_exact=False, rtol=1e-3) + print("Test complete: electricity cluster") From 1f08fa0331daffa5ae2b82168e14acb1f906426e Mon Sep 17 00:00:00 2001 From: Sunishchal Date: Sat, 7 Nov 2020 20:23:50 -0800 Subject: [PATCH 11/28] Implemented code & tests for tables 9 - 14 in electricity cluster --- .../clusters/electricity_cluster.py | 170 +++++++++++++++- .../tests/expected_elec_cluster.csv | 184 +++++++++--------- .../tests/test_electricity.py | 37 ++++ 3 files changed, 295 insertions(+), 96 deletions(-) diff --git a/solution/health_and_education/clusters/electricity_cluster.py b/solution/health_and_education/clusters/electricity_cluster.py index c1f34754d..e423d2815 100644 --- a/solution/health_and_education/clusters/electricity_cluster.py +++ b/solution/health_and_education/clusters/electricity_cluster.py @@ -177,7 +177,7 @@ def __init__(self, scenario=None): self.change_elec_gen = change_elec_gen # Table 7: Difference in FUNCTIONAL & IMPLEMENTATION UNITS between REF1 and REF2 populations in LLDC+HighNRR+HighED - # CONVENTIONAL + # CONVENTIONAL addl_func_units_highed = pd.DataFrame(None, columns=['Additional Functional Units in REF2 vs REF2', 'Annual Functional Units Increase', 'Change in TAM'], index=list(range(2014, 2061)), dtype=np.float64) @@ -207,7 +207,7 @@ def __init__(self, scenario=None): self.addl_func_units_highed = addl_func_units_highed # Table 8: Difference in FUNCTIONAL & IMPLEMENTATION UNITS between REF1 and REF2 populations in LLDC+HighNRR+LowED - # CONVENTIONAL + # CONVENTIONAL addl_func_units_lowed = pd.DataFrame(None, columns=['Additional Functional Units in REF2 vs REF2', 'Annual Functional Units Increase', 'Change in TAM'], index=list(range(2014, 2061)), dtype=np.float64) @@ -232,8 +232,118 @@ def __init__(self, scenario=None): # Electricity_cluster!M131:O179 self.addl_func_units_lowed = addl_func_units_lowed - # ref_gred_emis = ef.ElectricityGenOnGrid(ac.AdvancedControls()).conv_ref_grid_CO2eq_per_KWh() - # print(ref_gred_emis.head()) + # Table 9: Difference in EMISSIONS between REF1 and REF2 populations in LLDC+HighNRR+HighED + # CONVENTIONAL Avoided Emissions/ Million Metric Tons CO2 + # emissions_factors_ref1_co2eq = ef.ElectricityGenOnGrid(ac.AdvancedControls()).conv_ref_grid_CO2eq_per_KWh() + emissions_factors_ref1_co2eq = pd.DataFrame(ef_co2_eq_list[1:], + columns=ef_co2_eq_list[0], + index=list(range(2014, 2061)), dtype=np.float64) + + emis_diff_highed = pd.DataFrame(None, + columns=['Conventional: Grid','Conventional: Fuel', 'Conventional: Other Direct', 'Conventional: Indirect', 'Emission Reductions: Conv Total'], + index=list(range(2014, 2061)), dtype=np.float64) + + emis_diff_highed['Conventional: Grid'] = addl_func_units_highed['Additional Functional Units in REF2 vs REF2'] * emissions_factors_ref1_co2eq['World'] + emis_diff_highed['Emission Reductions: Conv Total'] = emis_diff_highed[['Conventional: Grid', 'Conventional: Fuel', 'Conventional: Other Direct', 'Conventional: Indirect']].sum(axis=1, min_count=1) + + # Electricity_cluster!V131:Z179 + self.emis_diff_highed = emis_diff_highed + + # Table 10: Difference in EMISSIONS between REF1 and REF2 populations in LLDC+HighNRR+LowED + # CONVENTIONAL - Least and Less Developed Countries (sans LAC, EE, China) + emis_diff_lowed = pd.DataFrame(None, + columns=['Conventional: Grid','Conventional: Fuel', 'Conventional: Other Direct', 'Conventional: Indirect', 'Emission Reductions: Conv Total'], + index=list(range(2014, 2061)), dtype=np.float64) + + emis_diff_lowed['Conventional: Grid'] = addl_func_units_lowed['Additional Functional Units in REF2 vs REF2'] * emissions_factors_ref1_co2eq['World'] + emis_diff_lowed['Emission Reductions: Conv Total'] = emis_diff_lowed[['Conventional: Grid', 'Conventional: Fuel', 'Conventional: Other Direct', 'Conventional: Indirect']].sum(axis=1, min_count=1) + + # Electricity_cluster!AI131:AM179 + self.emis_diff_lowed = emis_diff_lowed + + # Table 11: EMISSIONS ALLOCATIONS TO (a) Health & Education; (b) Education ONLY; (c) Family Planning (excluding education) + # Least and less developed countries + emissions_allocations_lldc = pd.DataFrame(None, + columns=['Health & Education: Conv Total', 'Health & Education: Solution Total', 'Education: Conv Total', 'Education: Solution Total', 'Family Planning: Conv Total', 'Family Planning: Solution Total', '% Allocation to Education: Conv Total', '% Allocation to Education: Solution Total'], + index=list(range(2014, 2061)), dtype=np.float64) + + emissions_allocations_lldc['Health & Education: Conv Total'] = emis_diff_lowed['Emission Reductions: Conv Total'] + emis_diff_highed['Emission Reductions: Conv Total'] + emissions_allocations_lldc['Health & Education: Conv Total'] = emissions_allocations_lldc['Health & Education: Conv Total'].fillna(0.0) + emissions_allocations_lldc['Health & Education: Solution Total'] = 0.0 + emissions_allocations_lldc['Education: Conv Total'] = emis_diff_lowed['Emission Reductions: Conv Total'] * pct_impact + emissions_allocations_lldc['Education: Conv Total'] = emissions_allocations_lldc['Education: Conv Total'].fillna(0.0) + emissions_allocations_lldc['Education: Solution Total'] = 0.0 + emissions_allocations_lldc['Family Planning: Conv Total'] = emissions_allocations_lldc['Health & Education: Conv Total'] - emissions_allocations_lldc['Education: Conv Total'] + emissions_allocations_lldc['Family Planning: Conv Total'] = emissions_allocations_lldc['Family Planning: Conv Total'].fillna(0.0) + emissions_allocations_lldc['Family Planning: Solution Total'] = 0.0 + emissions_allocations_lldc['% Allocation to Education: Conv Total'] = emissions_allocations_lldc['Education: Conv Total'] / emissions_allocations_lldc['Health & Education: Conv Total'] + emissions_allocations_lldc['% Allocation to Education: Conv Total'] = emissions_allocations_lldc['% Allocation to Education: Conv Total'].round(2) + emissions_allocations_lldc['% Allocation to Education: Solution Total'] = np.nan + + # Electricity_cluster!AR131:BD179 + self.emissions_allocations_lldc = emissions_allocations_lldc + + # Table 12: Difference in FUNCTIONAL & IMPLEMENTATION UNITS between REF1 and REF2 populations in MDC + LAC + EE + China + # CONVENTIONAL Avoided Emissions/ Million Metric Tons CO2 + addl_func_units_mdc = pd.DataFrame(None, + columns=['Additional Functional Units in REF2 vs REF2', 'Annual Functional Units Increase', 'Change in TAM'], + index=list(range(2014, 2061)), dtype=np.float64) + + current_tam_mix = pd.DataFrame(current_tam_mix_list[1:], columns=current_tam_mix_list[0]) + + if use_fixed_weight == 'N': + conv_weight_factor = self.change_elec_gen.loc[:, '% MDC + LAC + EE + China'] + elif use_fixed_weight == 'Y': + conv_weight_factor = fixed_weighting_factor + else: + raise Exception('Invalid value passed for "use_fixed_weight", please use Y or N') + + conv_weight_sum = current_tam_mix.loc[current_tam_mix['Include in CONV?'] == 'Y', 'Weighting Factor'].sum() + + addl_func_units_mdc.loc[:, 'Additional Functional Units in REF2 vs REF2'] = conv_weight_factor * (conv_weight_sum \ + * (self.ref1_tam_all_regions['World'] - self.ref2_tam['World'])) + addl_func_units_mdc.loc[:, 'Annual Functional Units Increase'] = addl_func_units_mdc['Additional Functional Units in REF2 vs REF2'].diff() + addl_func_units_mdc.loc[2016, 'Annual Functional Units Increase'] = addl_func_units_mdc.loc[2016, 'Additional Functional Units in REF2 vs REF2'] + addl_func_units_mdc.loc[:, 'Change in TAM'] = addl_func_units_mdc['Additional Functional Units in REF2 vs REF2'] \ + / (self.ref1_tam_all_regions['World'] - self.ref2_tam['World']) + + # Convert to TWh + addl_func_units_mdc = addl_func_units_mdc / 100 + + # Electricity_cluster!E190:G238 + self.addl_func_units_mdc = addl_func_units_mdc + + # Table 13: Difference in EMISSIONS between REF1 and REF2 populations in MDC + LAC + EE + China + # CONVENTIONAL Avoided Emissions/ Million Metric Tons CO2 + emis_diff_mdc = pd.DataFrame(None, + columns=['Conventional: Grid','Conventional: Fuel', 'Conventional: Other Direct', 'Conventional: Indirect', 'Emission Reductions: Conv Total'], + index=list(range(2014, 2061)), dtype=np.float64) + + emis_diff_mdc['Conventional: Grid'] = addl_func_units_mdc['Additional Functional Units in REF2 vs REF2'] * emissions_factors_ref1_co2eq['World'] + emis_diff_mdc['Emission Reductions: Conv Total'] = emis_diff_mdc[['Conventional: Grid', 'Conventional: Fuel', 'Conventional: Other Direct', 'Conventional: Indirect']].sum(axis=1, min_count=1) + + # Electricity_cluster!O190:S238 + self.emis_diff_mdc = emis_diff_mdc + + # Table 14: EMISSIONS ALLOCATIONS TO (a) Health & Education; (b) Education ONLY; (c) Family Planning (excluding education) + # More developed countries + emissions_allocations_mdc = pd.DataFrame(None, + columns=['Health & Education: Conv Total', 'Health & Education: Solution Total', 'Education: Conv Total', 'Education: Solution Total', 'Family Planning: Conv Total', 'Family Planning: Solution Total', '% Allocation to Education: Conv Total', '% Allocation to Education: Solution Total'], + index=list(range(2014, 2061)), dtype=np.float64) + + emissions_allocations_mdc['Health & Education: Conv Total'] = emis_diff_mdc['Emission Reductions: Conv Total'].fillna(0.0) + emissions_allocations_mdc['Health & Education: Solution Total'] = 0.0 # emis_diff_mdc['Emission Reductions: Solution Total'] + emissions_allocations_mdc['Education: Conv Total'] = np.nan + emissions_allocations_mdc['Education: Solution Total'] = np.nan + emissions_allocations_mdc['Family Planning: Conv Total'] = emissions_allocations_mdc['Health & Education: Conv Total'] - emissions_allocations_mdc['Education: Conv Total'].fillna(0.0) + # emissions_allocations_mdc['Family Planning: Conv Total'] = emissions_allocations_mdc['Family Planning: Conv Total'].fillna(0.0) + emissions_allocations_mdc['Family Planning: Solution Total'] = emissions_allocations_mdc['Health & Education: Solution Total'] - emissions_allocations_mdc['Education: Solution Total'].fillna(0.0) + emissions_allocations_mdc['% Allocation to Education: Conv Total'] = emissions_allocations_mdc['Education: Conv Total'].fillna(0.0) / emissions_allocations_mdc['Health & Education: Conv Total'] + emissions_allocations_mdc['% Allocation to Education: Conv Total'] = emissions_allocations_mdc['% Allocation to Education: Conv Total'].fillna(0.0) + emissions_allocations_mdc['% Allocation to Education: Solution Total'] = emissions_allocations_mdc['Family Planning: Solution Total'] / (emissions_allocations_mdc['Education: Solution Total'] + emissions_allocations_mdc['Family Planning: Solution Total']) + + # Electricity_cluster!X192:AI238 + self.emissions_allocations_mdc = emissions_allocations_mdc # Table 2: REF2, Electricity Generation TAM (TWh) @@ -290,3 +400,55 @@ def __init__(self, scenario=None): [55306.26947, 13424.16108, 3456.00506, 27958.39935, 10096.30850, 6079.06453, 11837.49604, 9087.41057, 5065.47630, 5667.10030]] +# GRID EMISSIONS FACTORS: REF Grid EFs kg CO2-eq per kwh +# Emissions Factors!B11:K57 +# TODO: Replace this with emissions_factors module once interface is better understood +ef_co2_eq_list = [ + ['World', 'OECD90', 'Eastern Europe', 'Asia (Sans Japan)', 'Middle East and Africa', 'Latin America', 'China', 'India', 'EU', 'USA'], + [None, None, None, None, None, None, None, None, None, None], + [0.617381628, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.613053712, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.605559021, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.599823764, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.596692109, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.592956465, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.589394210, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.585889941, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.582469966, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.579126508, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.576180724, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.572640473, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.569484654, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.566378788, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.563317175, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.560425096, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.557305440, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.554345365, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.551409592, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.548493724, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.545513743, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.542688056, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.539794403, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.536903541, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.533998347, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.530880184, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.528185055, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.525268472, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.522337859, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.519390128, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.516316183, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.513431317, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.510414389, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.507368630, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.504753472, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.503017663, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.501095098, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.499244741, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.497355610, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.495425752, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.493412239, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.491436597, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.489373931, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.487263794, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.485104746, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.483057065, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666]] \ No newline at end of file diff --git a/solution/health_and_education/tests/expected_elec_cluster.csv b/solution/health_and_education/tests/expected_elec_cluster.csv index 1cf6171bf..775a7631c 100644 --- a/solution/health_and_education/tests/expected_elec_cluster.csv +++ b/solution/health_and_education/tests/expected_elec_cluster.csv @@ -132,51 +132,51 @@ Table 4: Total REF2 Electricity Generation by Economic Development Status (TWh), ,TWh,TWh,TW,TWh,TWh,%,TW,,TWh,TWh,TW,TWh,TWh,%,TW,,Grid,Fuel,Other Direct,Indirect,Grid,Fuel,Other Direct,Indirect,Conv Total,Solution Total,,,,Grid,Fuel,Other Direct,Indirect,Grid,Fuel,Other Direct,Indirect,Conv Total,Solution Total,,,,,Conv Total,Solution Total,,Conv Total,Solution Total,,Conv Total,Solution Total,,,Conv Total,Solution Total,, 2014,,,,,,, Not modeled TBD ,,,,,,,, Not modeled TBD ,,,,,,,,,,,,,,,,,,,,,,,,,,,,2014,0,0,,0,0,,0,0,,,,,, 2015,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2015,0,0,,0,0,,0,0,,,,,, -2016,,,,2.580721651,2.580721651,0.098992078,,,,,,3.197889765,3.197889765,0.122665601,,,,,,,1.582120987,,,,1.582120987,,,,,,,,,1.960478191,,,,1.960478191,,,,,2016,3.54,0,,0.98,0,,2.56,0,,,28%,,, -2017,,,,6.481238206,3.900516555,0.099830102,,,,,,8.091983104,4.894093339,0.124640293,,,,,,,3.924772264,,,,3.924772264,,,,,,,,,4.900173367,,,,4.900173367,,,,,2017,8.82,0,,2.45,0,,6.37,0,,,28%,,, -2018,,,,11.67298737,5.19174916,0.101191832,,,,,,14.6868971,6.594914001,0.127319076,,,,,,,7.001735219,,,,7.001735219,,,,,,,,,8.809549903,,,,8.809549903,,,,,2018,15.81,0,,4.4,0,,11.41,0,,,28%,,, -2019,,,,18.01980541,6.346818047,0.103101071,,,,,,22.85090435,8.164007241,0.130742415,,,,,,,10.7522757,,,,10.7522757,,,,,,,,,13.63495431,,,,13.63495431,,,,,2019,24.39,0,,6.82,0,,17.57,0,,,28%,,, -2020,,,,25.41389405,7.394088639,0.105409251,,,,,,32.48164465,9.630740305,0.134724171,,,,,,,15.06933278,,,,15.06933278,,,,,,,,,19.2602012,,,,19.2602012,,,,,2020,34.33,0,,9.63,0,,24.7,0,,,28%,,, -2021,,,,33.85682492,8.442930872,0.107882791,,,,,,43.61385503,11.13221038,0.138972996,,,,,,,19.9550166,,,,19.9550166,,,,,,,,,25.70575365,,,,25.70575365,,,,,2021,45.66,0,,12.85,0,,32.81,0,,,28%,,, -2022,,,,43.41818642,9.561361495,0.110307573,,,,,,56.37994202,12.76608698,0.143238007,,,,,,,25.43827867,,,,25.43827867,,,,,,,,,33.03244089,,,,33.03244089,,,,,2022,58.47,0,,16.52,0,,41.95,0,,,28%,,, -2023,,,,54.11642731,10.69824089,0.112607488,,,,,,70.83970043,14.45975842,0.147405902,,,,,,,31.5211936,,,,31.5211936,,,,,,,,,41.26199794,,,,41.26199794,,,,,2023,72.78,0,,20.63,0,,52.15,0,,,28%,,, -2024,,,,65.97492046,11.85849315,0.114712773,,,,,,87.07245325,16.23275282,0.151395751,,,,,,,38.20782532,,,,38.20782532,,,,,,,,,50.42596583,,,,50.42596583,,,,,2024,88.63,0,,25.21,0,,63.42,0,,,28%,,, -2025,,,,78.98968561,13.01476515,0.116599176,,,,,,105.1228591,18.05040585,0.155175182,,,,,,,45.51233423,,,,45.51233423,,,,,,,,,60.56976505,,,,60.56976505,,,,,2025,106.08,0,,30.28,0,,75.8,0,,,29%,,, -2026,,,,93.18389918,14.19421357,0.118317494,,,,,,125.0675747,19.9447156,0.158800846,,,,,,,53.36087211,,,,53.36087211,,,,,,,,,71.61875515,,,,71.61875515,,,,,2026,124.98,0,,35.81,0,,89.17,0,,,29%,,, -2027,,,,108.4928845,15.30898529,0.119896232,,,,,,146.8755777,21.80800299,0.162313208,,,,,,,61.78503275,,,,61.78503275,,,,,,,,,83.64338751,,,,83.64338751,,,,,2027,145.43,0,,41.82,0,,103.61,0,,,29%,,, -2028,,,,124.7098831,16.21699863,0.121307497,,,,,,170.3101828,23.4346051,0.16566371,,,,,,,70.6330324,,,,70.6330324,,,,,,,,,96.46007486,,,,96.46007486,,,,,2028,167.09,0,,48.23,0,,118.86,0,,,29%,,, -2029,,,,141.5542143,16.84433117,0.122532419,,,,,,195.036754,24.72657118,0.168828073,,,,,,,79.73992012,,,,79.73992012,,,,,,,,,109.8675533,,,,109.8675533,,,,,2029,189.6,0,,54.93,0,,134.67,0,,,29%,,, -2030,,,,158.8185876,17.26437329,0.123584009,,,,,,220.7997516,25.76299762,0.17181439,,,,,,,89.00592225,,,,89.00592225,,,,,,,,,123.7417221,,,,123.7417221,,,,,2030,212.75,0,,61.87,0,,150.88,0,,,29%,,, -2031,,,,176.4266381,17.60805055,0.124505502,,,,,,247.5238708,26.72411924,0.174679312,,,,,,,98.32352519,,,,98.32352519,,,,,,,,,137.9463998,,,,137.9463998,,,,,2031,236.27,0,,68.97,0,,167.3,0,,,29%,,, -2032,,,,194.4365316,18.00989347,0.125341217,,,,,,275.3164326,27.79256173,0.17747949,,,,,,,107.7849901,,,,107.7849901,,,,,,,,,152.6203883,,,,152.6203883,,,,,2032,260.4,0,,76.31,0,,184.09,0,,,29%,,, -2033,,,,212.9478235,18.51129195,0.126114038,,,,,,304.3399954,29.02356281,0.180239203,,,,,,,117.4214725,,,,117.4214725,,,,,,,,,167.8159926,,,,167.8159926,,,,,2033,285.23,0,,83.91,0,,201.33,0,,,29%,,, -2034,,,,232.1312143,19.18339076,0.126841853,,,,,,334.8737207,30.53372534,0.18298273,,,,,,,127.3225143,,,,127.3225143,,,,,,,,,183.6761342,,,,183.6761342,,,,,2034,310.99,0,,91.83,0,,219.16,0,,,30%,,, -2035,,,,252.1444284,20.01321413,0.127540905,,,,,,367.1590715,32.28535083,0.185718164,,,,,,,137.548251,,,,137.548251,,,,,,,,,200.2903196,,,,200.2903196,,,,,2035,337.84,0,,100.15,0,,237.69,0,,,30%,,, -2036,,,,273.0376586,20.89323016,0.128216065,,,,,,401.3486836,34.18961209,0.188469784,,,,,,,148.174276,,,,148.174276,,,,,,,,,217.8071367,,,,217.8071367,,,,,2036,365.98,0,,108.9,0,,257.08,0,,,30%,,, -2037,,,,294.8656331,21.82797453,0.128885407,,,,,,437.5342469,36.1855633,0.191245683,,,,,,,159.1668185,,,,159.1668185,,,,,,,,,236.1785378,,,,236.1785378,,,,,2037,395.34,0,,118.09,0,,277.26,0,,,30%,,, -2038,,,,317.8120371,22.946404,0.129584757,,,,,,476.0643804,38.53013342,0.194110605,,,,,,,170.6344082,,,,170.6344082,,,,,,,,,255.6006517,,,,255.6006517,,,,,2038,426.23,0,,127.8,0,,298.43,0,,,30%,,, -2039,,,,342.0996809,24.28764376,0.130350227,,,,,,517.2953216,41.23094125,0.197105015,,,,,,,182.6806641,,,,182.6806641,,,,,,,,,276.2348466,,,,276.2348466,,,,,2039,458.91,0,,138.11,0,,320.79,0,,,30%,,, -2040,,,,367.9193147,25.81963384,0.131198703,,,,,,561.5908771,44.29555552,0.200261285,,,,,,,195.3210736,,,,195.3210736,,,,,,,,,298.1374683,,,,298.1374683,,,,,2040,493.45,0,,149.06,0,,344.38,0,,,30%,,, -2041,,,,395.3733597,27.454045,0.132118953,,,,,,609.1743542,47.58347706,0.203563229,,,,,,,208.8302996,,,,208.8302996,,,,,,,,,321.7567895,,,,321.7567895,,,,,2041,530.58,0,,160.87,0,,369.7,0,,,30%,,, -2042,,,,424.5292055,29.15584583,0.133092933,,,,,,660.2292205,51.05486634,0.206986568,,,,,,,222.9918073,,,,222.9918073,,,,,,,,,346.7975941,,,,346.7975941,,,,,2042,569.79,0,,173.4,0,,396.39,0,,,30%,,, -2043,,,,455.4980885,30.96888298,0.134115099,,,,,,715.0596212,54.83040069,0.210539395,,,,,,,237.9238961,,,,237.9238961,,,,,,,,,373.5027113,,,,373.5027113,,,,,2043,611.41,0,,186.74,0,,424.67,0,,,31%,,, -2044,,,,488.3863937,32.88830518,0.135178867,,,,,,773.8425431,58.78292186,0.214189338,,,,,,,253.6630713,,,,253.6630713,,,,,,,,,401.9261771,,,,401.9261771,,,,,2044,655.58,0,,200.96,0,,454.62,0,,,31%,,, -2045,,,,523.2789357,34.89254199,0.136273019,,,,,,836.8295588,62.98701571,0.217928304,,,,,,,270.1773825,,,,270.1773825,,,,,,,,,432.0686433,,,,432.0686433,,,,,2045,702.24,0,,216.03,0,,486.21,0,,,31%,,, -2046,,,,560.255665,36.97672937,0.137386384,,,,,,904.2794626,67.44990377,0.2217482,,,,,,,287.6528041,,,,287.6528041,,,,,,,,,464.2853955,,,,464.2853955,,,,,2046,751.93,0,,232.14,0,,519.79,0,,,31%,,, -2047,,,,599.3495991,39.09393401,0.138500351,,,,,,976.3386887,72.05922613,0.225616654,,,,,,,305.9166593,,,,305.9166593,,,,,,,,,498.337315,,,,498.337315,,,,,2047,804.24,0,,249.16,0,,555.08,0,,,31%,,, -2048,,,,640.5312353,41.18163625,0.139588861,,,,,,1053.075167,76.73647818,0.229493201,,,,,,,324.9854555,,,,324.9854555,,,,,,,,,534.2973049,,,,534.2973049,,,,,2048,859.28,0,,267.15,0,,592.13,0,,,31%,,, -2049,,,,683.731245,43.20000964,0.140624714,,,,,,1134.548711,81.47354395,0.233345469,,,,,,,345.1157195,,,,345.1157195,,,,,,,,,572.6674004,,,,572.6674004,,,,,2049,917.78,0,,286.33,0,,631.45,0,,,31%,,, -2050,,,,728.894341,45.16309609,0.141589089,,,,,,1220.791777,86.24306611,0.237141086,,,,,,,366.6467277,,,,366.6467277,,,,,,,,,614.0798261,,,,614.0798261,,,,,2050,980.72,0,,307.04,0,,673.69,0,,,31%,,, -2051,,,,776.0512259,47.15688488,0.142480625,,,,,,1312.004766,91.21298908,0.240880052,,,,,,,388.8754648,,,,388.8754648,,,,,,,,,657.4391562,,,,657.4391562,,,,,2051,1046.31,0,,328.72,0,,717.59,0,,,31%,,, -2052,,,,825.2283054,49.1770795,0.143298418,,,,,,1408.341498,96.33673238,0.244554274,,,,,,,411.9908919,,,,411.9908919,,,,,,,,,703.1070871,,,,703.1070871,,,,,2052,1115.09,0,,351.55,0,,763.54,0,,,32%,,, -2053,,,,876.3559282,51.12762275,0.144029843,,,,,,1509.864801,101.5233028,0.248147566,,,,,,,435.8605373,,,,435.8605373,,,,,,,,,750.9397294,,,,750.9397294,,,,,2053,1186.79,0,,375.46,0,,811.33,0,,,32%,,, -2054,,,,929.3377642,52.981836,0.14466255,,,,,,1616.55184,106.6870393,0.251635649,,,,,,,460.4178611,,,,460.4178611,,,,,,,,,800.8814119,,,,800.8814119,,,,,2054,1261.3,0,,400.44,0,,860.86,0,,,32%,,, -2055,,,,984.1170971,54.7793329,0.145192594,,,,,,1728.518525,111.9666845,0.255018523,,,,,,,485.5754205,,,,485.5754205,,,,,,,,,852.8721959,,,,852.8721959,,,,,2055,1338.44,0,,426.43,0,,912.01,0,,,32%,,, -2056,,,,1040.706201,56.58910355,0.145624046,,,,,,1845.92072,117.4021953,0.258296188,,,,,,,511.4411142,,,,511.4411142,,,,,,,,,907.152998,,,,907.152998,,,,,2056,1418.57,0,,453.56,0,,965.01,0,,,32%,,, -2057,,,,1099.178427,58.47222607,0.145969235,,,,,,1968.97373,123.0530101,0.261476737,,,,,,,537.9092677,,,,537.9092677,,,,,,,,,963.5644149,,,,963.5644149,,,,,2057,1501.46,0,,481.77,0,,1019.68,0,,,32%,,, -2058,,,,1159.62224,60.4438135,0.146243967,,,,,,2097.987482,129.0137513,0.264584449,,,,,,,565.0419319,,,,565.0419319,,,,,,,,,1022.273339,,,,1022.273339,,,,,2058,1587.3,0,,511.13,0,,1076.17,0,,,32%,,, -2059,,,,1222.162163,62.53992278,0.146466858,,,,,,2233.296252,135.3087705,0.267643603,,,,,,,592.8766658,,,,592.8766658,,,,,,,,,1083.382612,,,,1083.382612,,,,,2059,1676.23,0,,541.68,0,,1134.55,0,,,32%,,, -2060,,,,1286.930524,64.76836097,0.146652936,,,,,,2375.155754,141.8595018,0.270662292,,,,,,,621.6608812,,,,621.6608812,,,,,,,,,1147.335766,,,,1147.335766,,,,,2060,1768.98,0,,573.66,0,,1195.32,0,,,32%,,, +2016,,,,2.580721651,2.580721651,0.098992078,,,,,,3.197889765,3.197889765,0.122665601,,,,,,,1.582120987,,,,1.582120987,,,,,,,,,1.960478191,,,,1.960478191,,,,,2016,3.54,0,,0.98,0,,2.56,0,,,0.28,,, +2017,,,,6.481238206,3.900516555,0.099830102,,,,,,8.091983104,4.894093339,0.124640293,,,,,,,3.924772264,,,,3.924772264,,,,,,,,,4.900173367,,,,4.900173367,,,,,2017,8.82,0,,2.45,0,,6.37,0,,,0.28,,, +2018,,,,11.67298737,5.19174916,0.101191832,,,,,,14.6868971,6.594914001,0.127319076,,,,,,,7.001735219,,,,7.001735219,,,,,,,,,8.809549903,,,,8.809549903,,,,,2018,15.81,0,,4.4,0,,11.41,0,,,0.28,,, +2019,,,,18.01980541,6.346818047,0.103101071,,,,,,22.85090435,8.164007241,0.130742415,,,,,,,10.7522757,,,,10.7522757,,,,,,,,,13.63495431,,,,13.63495431,,,,,2019,24.39,0,,6.82,0,,17.57,0,,,0.28,,, +2020,,,,25.41389405,7.394088639,0.105409251,,,,,,32.48164465,9.630740305,0.134724171,,,,,,,15.06933278,,,,15.06933278,,,,,,,,,19.2602012,,,,19.2602012,,,,,2020,34.33,0,,9.63,0,,24.7,0,,,0.28,,, +2021,,,,33.85682492,8.442930872,0.107882791,,,,,,43.61385503,11.13221038,0.138972996,,,,,,,19.9550166,,,,19.9550166,,,,,,,,,25.70575365,,,,25.70575365,,,,,2021,45.66,0,,12.85,0,,32.81,0,,,0.28,,, +2022,,,,43.41818642,9.561361495,0.110307573,,,,,,56.37994202,12.76608698,0.143238007,,,,,,,25.43827867,,,,25.43827867,,,,,,,,,33.03244089,,,,33.03244089,,,,,2022,58.47,0,,16.52,0,,41.95,0,,,0.28,,, +2023,,,,54.11642731,10.69824089,0.112607488,,,,,,70.83970043,14.45975842,0.147405902,,,,,,,31.5211936,,,,31.5211936,,,,,,,,,41.26199794,,,,41.26199794,,,,,2023,72.78,0,,20.63,0,,52.15,0,,,0.28,,, +2024,,,,65.97492046,11.85849315,0.114712773,,,,,,87.07245325,16.23275282,0.151395751,,,,,,,38.20782532,,,,38.20782532,,,,,,,,,50.42596583,,,,50.42596583,,,,,2024,88.63,0,,25.21,0,,63.42,0,,,0.28,,, +2025,,,,78.98968561,13.01476515,0.116599176,,,,,,105.1228591,18.05040585,0.155175182,,,,,,,45.51233423,,,,45.51233423,,,,,,,,,60.56976505,,,,60.56976505,,,,,2025,106.08,0,,30.28,0,,75.8,0,,,0.29,,, +2026,,,,93.18389918,14.19421357,0.118317494,,,,,,125.0675747,19.9447156,0.158800846,,,,,,,53.36087211,,,,53.36087211,,,,,,,,,71.61875515,,,,71.61875515,,,,,2026,124.98,0,,35.81,0,,89.17,0,,,0.29,,, +2027,,,,108.4928845,15.30898529,0.119896232,,,,,,146.8755777,21.80800299,0.162313208,,,,,,,61.78503275,,,,61.78503275,,,,,,,,,83.64338751,,,,83.64338751,,,,,2027,145.43,0,,41.82,0,,103.61,0,,,0.29,,, +2028,,,,124.7098831,16.21699863,0.121307497,,,,,,170.3101828,23.4346051,0.16566371,,,,,,,70.6330324,,,,70.6330324,,,,,,,,,96.46007486,,,,96.46007486,,,,,2028,167.09,0,,48.23,0,,118.86,0,,,0.29,,, +2029,,,,141.5542143,16.84433117,0.122532419,,,,,,195.036754,24.72657118,0.168828073,,,,,,,79.73992012,,,,79.73992012,,,,,,,,,109.8675533,,,,109.8675533,,,,,2029,189.6,0,,54.93,0,,134.67,0,,,0.29,,, +2030,,,,158.8185876,17.26437329,0.123584009,,,,,,220.7997516,25.76299762,0.17181439,,,,,,,89.00592225,,,,89.00592225,,,,,,,,,123.7417221,,,,123.7417221,,,,,2030,212.75,0,,61.87,0,,150.88,0,,,0.29,,, +2031,,,,176.4266381,17.60805055,0.124505502,,,,,,247.5238708,26.72411924,0.174679312,,,,,,,98.32352519,,,,98.32352519,,,,,,,,,137.9463998,,,,137.9463998,,,,,2031,236.27,0,,68.97,0,,167.3,0,,,0.29,,, +2032,,,,194.4365316,18.00989347,0.125341217,,,,,,275.3164326,27.79256173,0.17747949,,,,,,,107.7849901,,,,107.7849901,,,,,,,,,152.6203883,,,,152.6203883,,,,,2032,260.4,0,,76.31,0,,184.09,0,,,0.29,,, +2033,,,,212.9478235,18.51129195,0.126114038,,,,,,304.3399954,29.02356281,0.180239203,,,,,,,117.4214725,,,,117.4214725,,,,,,,,,167.8159926,,,,167.8159926,,,,,2033,285.23,0,,83.91,0,,201.33,0,,,0.29,,, +2034,,,,232.1312143,19.18339076,0.126841853,,,,,,334.8737207,30.53372534,0.18298273,,,,,,,127.3225143,,,,127.3225143,,,,,,,,,183.6761342,,,,183.6761342,,,,,2034,310.99,0,,91.83,0,,219.16,0,,,0.30,,, +2035,,,,252.1444284,20.01321413,0.127540905,,,,,,367.1590715,32.28535083,0.185718164,,,,,,,137.548251,,,,137.548251,,,,,,,,,200.2903196,,,,200.2903196,,,,,2035,337.84,0,,100.15,0,,237.69,0,,,0.30,,, +2036,,,,273.0376586,20.89323016,0.128216065,,,,,,401.3486836,34.18961209,0.188469784,,,,,,,148.174276,,,,148.174276,,,,,,,,,217.8071367,,,,217.8071367,,,,,2036,365.98,0,,108.9,0,,257.08,0,,,0.30,,, +2037,,,,294.8656331,21.82797453,0.128885407,,,,,,437.5342469,36.1855633,0.191245683,,,,,,,159.1668185,,,,159.1668185,,,,,,,,,236.1785378,,,,236.1785378,,,,,2037,395.34,0,,118.09,0,,277.26,0,,,0.30,,, +2038,,,,317.8120371,22.946404,0.129584757,,,,,,476.0643804,38.53013342,0.194110605,,,,,,,170.6344082,,,,170.6344082,,,,,,,,,255.6006517,,,,255.6006517,,,,,2038,426.23,0,,127.8,0,,298.43,0,,,0.30,,, +2039,,,,342.0996809,24.28764376,0.130350227,,,,,,517.2953216,41.23094125,0.197105015,,,,,,,182.6806641,,,,182.6806641,,,,,,,,,276.2348466,,,,276.2348466,,,,,2039,458.91,0,,138.11,0,,320.79,0,,,0.30,,, +2040,,,,367.9193147,25.81963384,0.131198703,,,,,,561.5908771,44.29555552,0.200261285,,,,,,,195.3210736,,,,195.3210736,,,,,,,,,298.1374683,,,,298.1374683,,,,,2040,493.45,0,,149.06,0,,344.38,0,,,0.30,,, +2041,,,,395.3733597,27.454045,0.132118953,,,,,,609.1743542,47.58347706,0.203563229,,,,,,,208.8302996,,,,208.8302996,,,,,,,,,321.7567895,,,,321.7567895,,,,,2041,530.58,0,,160.87,0,,369.7,0,,,0.30,,, +2042,,,,424.5292055,29.15584583,0.133092933,,,,,,660.2292205,51.05486634,0.206986568,,,,,,,222.9918073,,,,222.9918073,,,,,,,,,346.7975941,,,,346.7975941,,,,,2042,569.79,0,,173.4,0,,396.39,0,,,0.30,,, +2043,,,,455.4980885,30.96888298,0.134115099,,,,,,715.0596212,54.83040069,0.210539395,,,,,,,237.9238961,,,,237.9238961,,,,,,,,,373.5027113,,,,373.5027113,,,,,2043,611.41,0,,186.74,0,,424.67,0,,,0.31,,, +2044,,,,488.3863937,32.88830518,0.135178867,,,,,,773.8425431,58.78292186,0.214189338,,,,,,,253.6630713,,,,253.6630713,,,,,,,,,401.9261771,,,,401.9261771,,,,,2044,655.58,0,,200.96,0,,454.62,0,,,0.31,,, +2045,,,,523.2789357,34.89254199,0.136273019,,,,,,836.8295588,62.98701571,0.217928304,,,,,,,270.1773825,,,,270.1773825,,,,,,,,,432.0686433,,,,432.0686433,,,,,2045,702.24,0,,216.03,0,,486.21,0,,,0.31,,, +2046,,,,560.255665,36.97672937,0.137386384,,,,,,904.2794626,67.44990377,0.2217482,,,,,,,287.6528041,,,,287.6528041,,,,,,,,,464.2853955,,,,464.2853955,,,,,2046,751.93,0,,232.14,0,,519.79,0,,,0.31,,, +2047,,,,599.3495991,39.09393401,0.138500351,,,,,,976.3386887,72.05922613,0.225616654,,,,,,,305.9166593,,,,305.9166593,,,,,,,,,498.337315,,,,498.337315,,,,,2047,804.24,0,,249.16,0,,555.08,0,,,0.31,,, +2048,,,,640.5312353,41.18163625,0.139588861,,,,,,1053.075167,76.73647818,0.229493201,,,,,,,324.9854555,,,,324.9854555,,,,,,,,,534.2973049,,,,534.2973049,,,,,2048,859.28,0,,267.15,0,,592.13,0,,,0.31,,, +2049,,,,683.731245,43.20000964,0.140624714,,,,,,1134.548711,81.47354395,0.233345469,,,,,,,345.1157195,,,,345.1157195,,,,,,,,,572.6674004,,,,572.6674004,,,,,2049,917.78,0,,286.33,0,,631.45,0,,,0.31,,, +2050,,,,728.894341,45.16309609,0.141589089,,,,,,1220.791777,86.24306611,0.237141086,,,,,,,366.6467277,,,,366.6467277,,,,,,,,,614.0798261,,,,614.0798261,,,,,2050,980.72,0,,307.04,0,,673.69,0,,,0.31,,, +2051,,,,776.0512259,47.15688488,0.142480625,,,,,,1312.004766,91.21298908,0.240880052,,,,,,,388.8754648,,,,388.8754648,,,,,,,,,657.4391562,,,,657.4391562,,,,,2051,1046.31,0,,328.72,0,,717.59,0,,,0.31,,, +2052,,,,825.2283054,49.1770795,0.143298418,,,,,,1408.341498,96.33673238,0.244554274,,,,,,,411.9908919,,,,411.9908919,,,,,,,,,703.1070871,,,,703.1070871,,,,,2052,1115.09,0,,351.55,0,,763.54,0,,,0.32,,, +2053,,,,876.3559282,51.12762275,0.144029843,,,,,,1509.864801,101.5233028,0.248147566,,,,,,,435.8605373,,,,435.8605373,,,,,,,,,750.9397294,,,,750.9397294,,,,,2053,1186.79,0,,375.46,0,,811.33,0,,,0.32,,, +2054,,,,929.3377642,52.981836,0.14466255,,,,,,1616.55184,106.6870393,0.251635649,,,,,,,460.4178611,,,,460.4178611,,,,,,,,,800.8814119,,,,800.8814119,,,,,2054,1261.3,0,,400.44,0,,860.86,0,,,0.32,,, +2055,,,,984.1170971,54.7793329,0.145192594,,,,,,1728.518525,111.9666845,0.255018523,,,,,,,485.5754205,,,,485.5754205,,,,,,,,,852.8721959,,,,852.8721959,,,,,2055,1338.44,0,,426.43,0,,912.01,0,,,0.32,,, +2056,,,,1040.706201,56.58910355,0.145624046,,,,,,1845.92072,117.4021953,0.258296188,,,,,,,511.4411142,,,,511.4411142,,,,,,,,,907.152998,,,,907.152998,,,,,2056,1418.57,0,,453.56,0,,965.01,0,,,0.32,,, +2057,,,,1099.178427,58.47222607,0.145969235,,,,,,1968.97373,123.0530101,0.261476737,,,,,,,537.9092677,,,,537.9092677,,,,,,,,,963.5644149,,,,963.5644149,,,,,2057,1501.46,0,,481.77,0,,1019.68,0,,,0.32,,, +2058,,,,1159.62224,60.4438135,0.146243967,,,,,,2097.987482,129.0137513,0.264584449,,,,,,,565.0419319,,,,565.0419319,,,,,,,,,1022.273339,,,,1022.273339,,,,,2058,1587.3,0,,511.13,0,,1076.17,0,,,0.32,,, +2059,,,,1222.162163,62.53992278,0.146466858,,,,,,2233.296252,135.3087705,0.267643603,,,,,,,592.8766658,,,,592.8766658,,,,,,,,,1083.382612,,,,1083.382612,,,,,2059,1676.23,0,,541.68,0,,1134.55,0,,,0.32,,, +2060,,,,1286.930524,64.76836097,0.146652936,,,,,,2375.155754,141.8595018,0.270662292,,,,,,,621.6608812,,,,621.6608812,,,,,,,,,1147.335766,,,,1147.335766,,,,,2060,1768.98,0,,573.66,0,,1195.32,0,,,0.32,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, @@ -189,50 +189,50 @@ Table 4: Total REF2 Electricity Generation by Economic Development Status (TWh), ,SOLUTION ,,,CONVENTIONAL,,,,,,SOLUTION,,,,CONVENTIONAL,,,,EMISSION REDUCTIONS,,,,#VALUE!,,,,#VALUE!,,,#VALUE!,,,,% Allocation to Education (Electricity),,,,,,,,,,,,,,,,,,,,,,,, ,Additional Functional Units in REF2 vs REF1,Annual Functional Units Increase,Annual Implementation Units Increase + Replacement,Additional Functional Units in REF2 vs REF2,Annual Functional Units Increase,Change in TAM,Annual Implementation Units Increase + Replacement,,,Avoided Emissions/ Million Metric Tons CO2,,,,Avoided Emissions/ Million Metric Tons CO2,,,,ALL Years,,,,,,,,,,,,,,,ALL Years,,,,,,,,,,,,,,,,,,,,,,,, ,TWh,TWh,TW,TWh,TWh,%,TW,,,Grid,Fuel,Other Direct,Indirect,Grid,Fuel,Other Direct,Indirect,Conv Total,Solution Total,,,,Conv Total,Solution Total,,Conv Total,Solution Total,,Conv Total,Solution Total,,,Conv Total,Solution Total,,,,,,,,,,,,,,,,,,,,,,, -2014,,,, - , ,#DIV/0!, Not modeled TBD ,,,,,,,,,,,,,,,2014,0,0,,,,,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,, -2015,,,, - , - ,#DIV/0!,,,,,,,, - ,,,, - , - ,,,2015,0,0,,,,,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,, -2016,,,,15.3,15.3,59%,,,,,,,,9.39,,,,9.4, - ,,,2016,9.39,0,,,,,9.39,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, -2017,,,,38,22.6,58%,,,,,,,,22.99,,,,23, - ,,,2017,22.99,0,,,,,22.99,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, -2018,,,,67,29,58%,,,,,,,,40.19,,,,40.2, - ,,,2018,40.19,0,,,,,40.19,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, -2019,,,,100.6,33.6,58%,,,,,,,,60.01,,,,60, - ,,,2019,60.01,0,,,,,60.01,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, -2020,,,,137.2,36.6,57%,,,,,,,,81.37,,,,81.4, - ,,,2020,81.37,0,,,,,81.37,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, -2021,,,,176.5,39.3,56%,,,,,,,,104.03,,,,104, - ,,,2021,104.03,0,,,,,104.03,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, -2022,,,,218.7,42.2,56%,,,,,,,,128.16,,,,128.2, - ,,,2022,128.16,0,,,,,128.16,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, -2023,,,,264,45.2,55%,,,,,,,,153.75,,,,153.8, - ,,,2023,153.75,0,,,,,153.75,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, -2024,,,,312.4,48.4,54%,,,,,,,,180.92,,,,180.9, - ,,,2024,180.92,0,,,,,180.92,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, -2025,,,,364.1,51.7,54%,,,,,,,,209.81,,,,209.8, - ,,,2025,209.81,0,,,,,209.81,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, -2026,,,,419.1,55,53%,,,,,,,,240.01,,,,240, - ,,,2026,240.01,0,,,,,240.01,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, -2027,,,,477,57.8,53%,,,,,,,,271.62,,,,271.6, - ,,,2027,271.62,0,,,,,271.62,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, -2028,,,,537,60,52%,,,,,,,,304.13,,,,304.1, - ,,,2028,304.13,0,,,,,304.13,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, -2029,,,,598.3,61.4,52%,,,,,,,,337.05,,,,337.1, - ,,,2029,337.05,0,,,,,337.05,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, -2030,,,,660.4,62.1,51%,,,,,,,,370.11,,,,370.1, - ,,,2030,370.11,0,,,,,370.11,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, -2031,,,,722.8,62.4,51%,,,,,,,,402.83,,,,402.8, - ,,,2031,402.83,0,,,,,402.83,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, -2032,,,,785.7,62.8,51%,,,,,,,,435.53,,,,435.5, - ,,,2032,435.53,0,,,,,435.53,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, -2033,,,,849.2,63.6,50%,,,,,,,,468.27,,,,468.3, - ,,,2033,468.27,0,,,,,468.27,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, -2034,,,,914.1,64.8,50%,,,,,,,,501.36,,,,501.4, - ,,,2034,501.36,0,,,,,501.36,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, -2035,,,,980.6,66.6,50%,,,,,,,,534.95,,,,534.9, - ,,,2035,534.95,0,,,,,534.95,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, -2036,,,,"1,049.00",68.4,49%,,,,,,,,569.28,,,,569.3, - ,,,2036,569.28,0,,,,,569.28,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, -2037,,,,"1,119.10",70.1,49%,,,,,,,,604.08,,,,604.1, - ,,,2037,604.08,0,,,,,604.08,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, -2038,,,,"1,190.90",71.8,49%,,,,,,,,639.42,,,,639.4, - ,,,2038,639.42,0,,,,,639.42,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, -2039,,,,"1,264.60",73.6,48%,,,,,,,,675.27,,,,675.3, - ,,,2039,675.27,0,,,,,675.27,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, -2040,,,,"1,340.00",75.4,48%,,,,,,,,711.37,,,,711.4, - ,,,2040,711.37,0,,,,,711.37,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, -2041,,,,"1,417.30",77.3,47%,,,,,,,,748.6,,,,748.6, - ,,,2041,748.6,0,,,,,748.6,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, -2042,,,,"1,496.60",79.3,47%,,,,,,,,786.13,,,,786.1, - ,,,2042,786.13,0,,,,,786.13,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, -2043,,,,"1,578.10",81.4,46%,,,,,,,,824.28,,,,824.3, - ,,,2043,824.28,0,,,,,824.28,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, -2044,,,,"1,661.60",83.6,46%,,,,,,,,863.04,,,,863, - ,,,2044,863.04,0,,,,,863.04,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, -2045,,,,"1,747.50",85.8,46%,,,,,,,,902.26,,,,902.3, - ,,,2045,902.26,0,,,,,902.26,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, -2046,,,,"1,835.70",88.2,45%,,,,,,,,942.51,,,,942.5, - ,,,2046,942.51,0,,,,,942.51,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, -2047,,,,"1,926.50",90.7,45%,,,,,,,,983.29,,,,983.3, - ,,,2047,983.29,0,,,,,983.29,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, -2048,,,,"2,020.00",93.5,44%,,,,,,,,"1,024.87",,,,"1,024.90", - ,,,2048,1024.87,0,,,,,1024.87,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, -2049,,,,"2,116.60",96.6,44%,,,,,,,,"1,068.34",,,,"1,068.30", - ,,,2049,1068.34,0,,,,,1068.34,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, -2050,,,,"2,216.50",99.9,43%,,,,,,,,"1,114.93",,,,"1,114.90", - ,,,2050,1114.93,0,,,,,1114.93,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, -2051,,,,"2,319.90",103.4,43%,,,,,,,,"1,162.49",,,,"1,162.50", - ,,,2051,1162.49,0,,,,,1162.49,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, -2052,,,,"2,427.00",107.1,42%,,,,,,,,"1,211.65",,,,"1,211.60", - ,,,2052,1211.65,0,,,,,1211.65,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, -2053,,,,"2,537.90",111,42%,,,,,,,,"1,262.25",,,,"1,262.30", - ,,,2053,1262.25,0,,,,,1262.25,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, -2054,,,,"2,653.10",115.2,41%,,,,,,,,"1,314.42",,,,"1,314.40", - ,,,2054,1314.42,0,,,,,1314.42,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, -2055,,,,"2,772.70",119.6,41%,,,,,,,,"1,368.10",,,,"1,368.10", - ,,,2055,1368.1,0,,,,,1368.1,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, -2056,,,,"2,897.00",124.3,41%,,,,,,,,"1,423.69",,,,"1,423.70", - ,,,2056,1423.69,0,,,,,1423.69,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, -2057,,,,"3,026.00",129,40%,,,,,,,,"1,480.83",,,,"1,480.80", - ,,,2057,1480.83,0,,,,,1480.83,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, -2058,,,,"3,159.50",133.6,40%,,,,,,,,"1,539.53",,,,"1,539.50", - ,,,2058,1539.53,0,,,,,1539.53,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, -2059,,,,"3,297.50",138,40%,,,,,,,,"1,599.64",,,,"1,599.60", - ,,,2059,1599.64,0,,,,,1599.64,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, -2060,,,,"3,439.70",142.2,39%,,,,,,,,"1,661.57",,,,"1,661.60", - ,,,2060,1661.57,0,,,,,1661.57,0,,,0%,,,,,,,,,,,,,,,,,,,,,,,, +2014,,,,,,, Not modeled TBD ,,,,,,,,,,,,,,,2014,0,0,,,,,0,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, +2015,,,,,,,,,,,,,,,,,,,,,,2015,0,0,,,,,0,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, +2016,,,,15.31950,15.31950,0.58763,,,,,,,,9.39167,,,,9.39167,,,,2016,9.39167,0,,,,,9.39167,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, +2017,,,,37.96766,22.64816,0.58481,,,,,,,,22.99166,,,,22.99166,,,,2017,22.99166,0,,,,,22.99166,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, +2018,,,,66.99520,29.02754,0.58077,,,,,,,,40.18531,,,,40.18531,,,,2018,40.18531,0,,,,,40.18531,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, +2019,,,,100.57550,33.58030,0.57545,,,,,,,,60.01261,,,,60.01261,,,,2019,60.01261,0,,,,,60.01261,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, +2020,,,,137.22245,36.64695,0.56916,,,,,,,,81.36694,,,,81.36694,,,,2020,81.36694,0,,,,,81.36694,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, +2021,,,,176.50684,39.28440,0.56243,,,,,,,,104.03211,,,,104.03211,,,,2021,104.03211,0,,,,,104.03211,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, +2022,,,,218.74600,42.23916,0.55574,,,,,,,,128.16108,,,,128.16108,,,,2022,128.16108,0,,,,,128.16108,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, +2023,,,,263.96686,45.22086,0.54927,,,,,,,,153.75277,,,,153.75277,,,,2023,153.75277,0,,,,,153.75277,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, +2024,,,,312.39788,48.43102,0.54318,,,,,,,,180.91789,,,,180.91789,,,,2024,180.91789,0,,,,,180.91789,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, +2025,,,,364.13652,51.73864,0.53751,,,,,,,,209.80844,,,,209.80844,,,,2025,209.80844,0,,,,,209.80844,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, +2026,,,,419.12317,54.98665,0.53217,,,,,,,,240.00689,,,,240.00689,,,,2026,240.00689,0,,,,,240.00689,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, +2027,,,,476.95065,57.82747,0.52708,,,,,,,,271.61607,,,,271.61607,,,,2027,271.61607,0,,,,,271.61607,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, +2028,,,,536.96821,60.01756,0.52232,,,,,,,,304.12740,,,,304.12740,,,,2028,304.12740,0,,,,,304.12740,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, +2029,,,,598.33201,61.36380,0.51793,,,,,,,,337.05070,,,,337.05070,,,,2029,337.05070,0,,,,,337.05070,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, +2030,,,,660.40240,62.07039,0.51389,,,,,,,,370.10608,,,,370.10608,,,,2030,370.10608,0,,,,,370.10608,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, +2031,,,,722.82443,62.42203,0.51010,,,,,,,,402.83399,,,,402.83399,,,,2031,402.83399,0,,,,,402.83399,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, +2032,,,,785.66193,62.83750,0.50647,,,,,,,,435.52805,,,,435.52805,,,,2032,435.52805,0,,,,,435.52805,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, +2033,,,,849.22388,63.56194,0.50294,,,,,,,,468.27019,,,,468.27019,,,,2033,468.27019,0,,,,,468.27019,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, +2034,,,,914.06657,64.84269,0.49947,,,,,,,,501.35978,,,,501.35978,,,,2034,501.35978,0,,,,,501.35978,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, +2035,,,,980.62770,66.56113,0.49603,,,,,,,,534.94589,,,,534.94589,,,,2035,534.94589,0,,,,,534.94589,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, +2036,,,,1049.00247,68.37477,0.49260,,,,,,,,569.28111,,,,569.28111,,,,2036,569.28111,0,,,,,569.28111,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, +2037,,,,1119.09332,70.09086,0.48915,,,,,,,,604.08031,,,,604.08031,,,,2037,604.08031,0,,,,,604.08031,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, +2038,,,,1190.94302,71.84970,0.48560,,,,,,,,639.42152,,,,639.42152,,,,2038,639.42152,0,,,,,639.42152,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, +2039,,,,1264.56205,73.61903,0.48184,,,,,,,,675.27404,,,,675.27404,,,,2039,675.27404,0,,,,,675.27404,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, +2040,,,,1339.98046,75.41841,0.47783,,,,,,,,711.36907,,,,711.36907,,,,2040,711.36907,0,,,,,711.36907,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, +2041,,,,1417.29837,77.31791,0.47361,,,,,,,,748.59582,,,,748.59582,,,,2041,748.59582,0,,,,,748.59582,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, +2042,,,,1496.63449,79.33612,0.46921,,,,,,,,786.13491,,,,786.13491,,,,2042,786.13491,0,,,,,786.13491,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, +2043,,,,1578.06100,81.42651,0.46464,,,,,,,,824.28100,,,,824.28100,,,,2043,824.28100,0,,,,,824.28100,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, +2044,,,,1661.64884,83.58784,0.45992,,,,,,,,863.04400,,,,863.04400,,,,2044,863.04400,0,,,,,863.04400,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, +2045,,,,1747.49664,85.84780,0.45509,,,,,,,,902.26079,,,,902.26079,,,,2045,902.26079,0,,,,,902.26079,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, +2046,,,,1835.70953,88.21289,0.45015,,,,,,,,942.51076,,,,942.51076,,,,2046,942.51076,0,,,,,942.51076,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, +2047,,,,1926.45241,90.74289,0.44517,,,,,,,,983.28903,,,,983.28903,,,,2047,983.28903,0,,,,,983.28903,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, +2048,,,,2019.96911,93.51669,0.44021,,,,,,,,1024.86896,,,,1024.86896,,,,2048,1024.86896,0,,,,,1024.86896,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, +2049,,,,2116.55475,96.58565,0.43532,,,,,,,,1068.33836,,,,1068.33836,,,,2049,1068.33836,0,,,,,1068.33836,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, +2050,,,,2216.48198,99.92723,0.43056,,,,,,,,1114.92959,,,,1114.92959,,,,2050,1114.92959,0,,,,,1114.92959,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, +2051,,,,2319.90108,103.41909,0.42593,,,,,,,,1162.49106,,,,1162.49106,,,,2051,1162.49106,0,,,,,1162.49106,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, +2052,,,,2426.95955,107.05847,0.42143,,,,,,,,1211.64679,,,,1211.64679,,,,2052,1211.64679,0,,,,,1211.64679,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, +2053,,,,2537.92775,110.96820,0.41711,,,,,,,,1262.25260,,,,1262.25260,,,,2053,1262.25260,0,,,,,1262.25260,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, +2054,,,,2653.10442,115.17667,0.41299,,,,,,,,1314.41626,,,,1314.41626,,,,2054,1314.41626,0,,,,,1314.41626,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, +2055,,,,2772.72739,119.62297,0.40908,,,,,,,,1368.09763,,,,1368.09763,,,,2055,1368.09763,0,,,,,1368.09763,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, +2056,,,,2896.99515,124.26776,0.40537,,,,,,,,1423.68944,,,,1423.68944,,,,2056,1423.68944,0,,,,,1423.68944,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, +2057,,,,3025.96427,128.96911,0.40184,,,,,,,,1480.82803,,,,1480.82803,,,,2057,1480.82803,0,,,,,1480.82803,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, +2058,,,,3159.53780,133.57353,0.39846,,,,,,,,1539.52837,,,,1539.52837,,,,2058,1539.52837,0,,,,,1539.52837,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, +2059,,,,3297.50580,137.96801,0.39518,,,,,,,,1599.63572,,,,1599.63572,,,,2059,1599.63572,0,,,,,1599.63572,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, +2060,,,,3439.70334,142.19754,0.39197,,,,,,,,1661.57300,,,,1661.57300,,,,2060,1661.57300,0,,,,,1661.57300,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, diff --git a/solution/health_and_education/tests/test_electricity.py b/solution/health_and_education/tests/test_electricity.py index bf99ab3bd..29e8a1c21 100644 --- a/solution/health_and_education/tests/test_electricity.py +++ b/solution/health_and_education/tests/test_electricity.py @@ -55,6 +55,43 @@ def test_electricity_cluster(): exp_addl_func_units_lowed.index = exp_elec.iloc[132:179, 0].astype(int, errors='ignore').values pd.testing.assert_frame_equal(test_elec.addl_func_units_lowed, exp_addl_func_units_lowed, check_exact=False, rtol=1e-3) + exp_emis_diff_highed = exp_elec.iloc[132:179, 21:26].astype(float) + exp_emis_diff_highed.columns = range(exp_emis_diff_highed.shape[1]) # Default columns to integers to avoid mismatch between Excel & pandas col names + test_elec.emis_diff_highed.columns = range(test_elec.emis_diff_highed.shape[1]) + exp_emis_diff_highed.index = exp_elec.iloc[132:179, 0].astype(int, errors='ignore').values + pd.testing.assert_frame_equal(test_elec.emis_diff_highed, exp_emis_diff_highed, check_exact=False, rtol=1e-3) + + exp_emis_diff_lowed = exp_elec.iloc[132:179, 34:39].astype(float) + exp_emis_diff_lowed.columns = range(exp_emis_diff_lowed.shape[1]) + test_elec.emis_diff_lowed.columns = range(test_elec.emis_diff_lowed.shape[1]) + exp_emis_diff_lowed.index = exp_elec.iloc[132:179, 0].astype(int, errors='ignore').values + pd.testing.assert_frame_equal(test_elec.emis_diff_lowed, exp_emis_diff_lowed, check_exact=False, rtol=1e-3) + + exp_emissions_allocations_lldc = exp_elec.iloc[132:179, [44, 45, 47, 48, 50, 51, 54, 55]].astype(float) + exp_emissions_allocations_lldc.columns = range(exp_emissions_allocations_lldc.shape[1]) + test_elec.emissions_allocations_lldc.columns = range(test_elec.emissions_allocations_lldc.shape[1]) + exp_emissions_allocations_lldc.index = exp_elec.iloc[132:179, 43].astype(int, errors='ignore').values + pd.testing.assert_frame_equal(test_elec.emissions_allocations_lldc, exp_emissions_allocations_lldc, check_exact=False, rtol=1e-2) + + exp_addl_func_units_mdc = exp_elec.iloc[191:238, 4:7].astype(float) + exp_addl_func_units_mdc.columns = exp_elec.iloc[189, 4:7].values + exp_addl_func_units_mdc.index = exp_elec.iloc[191:238, 0].astype(int, errors='ignore').values + pd.testing.assert_frame_equal(test_elec.addl_func_units_mdc, exp_addl_func_units_mdc, check_exact=False, rtol=1e-3) + + exp_emis_diff_mdc = exp_elec.iloc[191:238, 14:19].astype(float) + exp_emis_diff_mdc.columns = range(exp_emis_diff_mdc.shape[1]) + test_elec.emis_diff_mdc.columns = range(test_elec.emis_diff_mdc.shape[1]) + exp_emis_diff_mdc.index = exp_elec.iloc[191:238, 0].astype(int, errors='ignore').values + pd.testing.assert_frame_equal(test_elec.emis_diff_mdc, exp_emis_diff_mdc, check_exact=False, rtol=1e-3) + + exp_emissions_allocations_mdc = exp_elec.iloc[191:238, [23, 24, 26, 27, 29, 30, 33, 34]].astype(float) + exp_emissions_allocations_mdc.columns = range(exp_emissions_allocations_mdc.shape[1]) + test_elec.emissions_allocations_mdc.columns = range(test_elec.emissions_allocations_mdc.shape[1]) + exp_emissions_allocations_mdc.index = exp_elec.iloc[191:238, 22].astype(int, errors='ignore').values + pd.testing.assert_frame_equal(test_elec.emissions_allocations_mdc, exp_emissions_allocations_mdc, check_exact=False, rtol=1e-2) + + # print(test_elec.emis_diff_highed.head()) + # print(exp_emis_diff_highed.head()) print("Test complete: electricity cluster") From c714901f0ecac65614627867bc07e64a746ed6b4 Mon Sep 17 00:00:00 2001 From: Sunishchal Date: Fri, 27 Nov 2020 05:00:06 -0800 Subject: [PATCH 12/28] Implemented total CO2 reduction readouts --- .../clusters/electricity_cluster.py | 34 +++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/solution/health_and_education/clusters/electricity_cluster.py b/solution/health_and_education/clusters/electricity_cluster.py index e423d2815..fe2ca4452 100644 --- a/solution/health_and_education/clusters/electricity_cluster.py +++ b/solution/health_and_education/clusters/electricity_cluster.py @@ -11,7 +11,6 @@ repo_path = str(pathlib.Path(__file__).parents[3]) sys.path.append(repo_path) -from solution import solarpvutil from model import dd from model import advanced_controls as ac from model import emissionsfactors as ef @@ -21,6 +20,8 @@ name = 'Health and Education - Electricity Cluster' solution_category = ac.SOLUTION_CATEGORY.REDUCTION +period_start = 2020 +period_end = 2050 # Assumptions: # % impact of educational attainment on uptake of Family Planning: @@ -101,7 +102,7 @@ def __init__(self, scenario=None): # (b) FOR REGIONS WITH HIGHER EDUCATIONAL ATTAINMENT ref1_tam_high_edu = ((self.ref2_tam / self.ref2_population) * self.ref1_population) - ref1_tam_low_edu - # Electricity_cluster!@26:AI73 + # Electricity_cluster!Y26:AI73 self.ref1_tam_high_edu = ref1_tam_high_edu # Table 3: REF1 ,Electricity Generation TAM (TWh) @@ -345,6 +346,35 @@ def __init__(self, scenario=None): # Electricity_cluster!X192:AI238 self.emissions_allocations_mdc = emissions_allocations_mdc + # Total Emissions Avoided due to Health & Education (Gt CO2-eq) + emissions_avoided_lldc_period = self.emissions_allocations_lldc.loc[period_start:period_end, 'Health & Education: Conv Total'].sum() + emissions_avoided_lldc_full = self.emissions_allocations_lldc.loc[:, 'Health & Education: Conv Total'].sum() + emissions_avoided_mdc_period = self.emissions_allocations_mdc.loc[period_start:period_end, 'Health & Education: Conv Total'].sum() + emissions_avoided_mdc_full = self.emissions_allocations_mdc.loc[:, 'Health & Education: Conv Total'].sum() + + # Electricity_cluster!N4:O12 + self.emissions_avoided_lldc_period = round(emissions_avoided_lldc_period/1000, 2) + self.emissions_avoided_lldc_full = round(emissions_avoided_lldc_full/1000, 2) + self.emissions_avoided_mdc_period = round(emissions_avoided_mdc_period/1000, 2) + self.emissions_avoided_mdc_full = round(emissions_avoided_mdc_full/1000, 2) + self.emissions_avoided_total_period = round(self.emissions_avoided_lldc_period + self.emissions_avoided_mdc_period, 2) + self.emissions_avoided_total_full = round(self.emissions_avoided_lldc_full + self.emissions_avoided_mdc_full, 2) + + # To avoid the hard coded 2015 - 2060 date range in Excel, infer the min/max years from the dataframe + min_range = min(emissions_allocations_mdc.index) + max_range = max(emissions_allocations_mdc.index) + + print('Total Emissions Avoided due to Health & Education (Gt CO2-eq)') + print('\nLeast & Less Developed Countries (Conventional):') + print(f'{min_range} - {max_range}:', self.emissions_avoided_lldc_period) + print(f'{period_start} - {period_end}:', self.emissions_avoided_lldc_full) + print('\nMore Developed Countries (Conventional):') + print(f'{min_range} - {max_range}:', self.emissions_avoided_mdc_period) + print(f'{period_start} - {period_end}:', self.emissions_avoided_mdc_full) + print('\nTotal (Conventional):') + print(f'{min_range} - {max_range}:', self.emissions_avoided_total_period) + print(f'{period_start} - {period_end}:', self.emissions_avoided_total_full) + # Table 2: REF2, Electricity Generation TAM (TWh) # Electricity_cluster!B26:K73 From 9ba24397c6986c65dbd3f246966414fe35583ea7 Mon Sep 17 00:00:00 2001 From: Sunishchal Date: Fri, 27 Nov 2020 05:00:29 -0800 Subject: [PATCH 13/28] Test for final CO2 readouts --- solution/health_and_education/tests/test_electricity.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/solution/health_and_education/tests/test_electricity.py b/solution/health_and_education/tests/test_electricity.py index 29e8a1c21..ceb23efdb 100644 --- a/solution/health_and_education/tests/test_electricity.py +++ b/solution/health_and_education/tests/test_electricity.py @@ -90,8 +90,12 @@ def test_electricity_cluster(): exp_emissions_allocations_mdc.index = exp_elec.iloc[191:238, 22].astype(int, errors='ignore').values pd.testing.assert_frame_equal(test_elec.emissions_allocations_mdc, exp_emissions_allocations_mdc, check_exact=False, rtol=1e-2) - # print(test_elec.emis_diff_highed.head()) - # print(exp_emis_diff_highed.head()) + # Test the final CO2 reduction output (columns/indices are dropped since it's not a real table) + exp_emissions_avoided = exp_elec.iloc[[4, 7, 11], [13, 14]].reset_index(drop=True).T.reset_index(drop=True).T.astype(float) + test_emissions_avoided = pd.DataFrame([[test_elec.emissions_avoided_lldc_period, test_elec.emissions_avoided_lldc_full], + [test_elec.emissions_avoided_mdc_period, test_elec.emissions_avoided_mdc_full], + [test_elec.emissions_avoided_total_period, test_elec.emissions_avoided_total_full]]) + pd.testing.assert_frame_equal(test_emissions_avoided, exp_emissions_avoided, check_exact=False, rtol=1e-2) print("Test complete: electricity cluster") From e3839b2df3d62e5bf5c2fe85fff2cca0a5911d7f Mon Sep 17 00:00:00 2001 From: Sunishchal Date: Sat, 19 Dec 2020 00:46:19 -0800 Subject: [PATCH 14/28] Generalized class structure and implemented space heating cluster --- .../clusters/cluster_model.py | 438 ++++++++++++++++++ .../clusters/electricity.py | 183 ++++++++ .../clusters/space_heating.py | 186 ++++++++ .../tests/expected_elec_cluster.csv | 142 +++--- .../tests/expected_space_heating.csv | 240 ++++++++++ .../tests/test_electricity.py | 177 ++++--- .../tests/test_space_heating.py | 105 +++++ 7 files changed, 1311 insertions(+), 160 deletions(-) create mode 100644 solution/health_and_education/clusters/cluster_model.py create mode 100644 solution/health_and_education/clusters/electricity.py create mode 100644 solution/health_and_education/clusters/space_heating.py create mode 100644 solution/health_and_education/tests/expected_space_heating.csv create mode 100644 solution/health_and_education/tests/test_space_heating.py diff --git a/solution/health_and_education/clusters/cluster_model.py b/solution/health_and_education/clusters/cluster_model.py new file mode 100644 index 000000000..00b73c538 --- /dev/null +++ b/solution/health_and_education/clusters/cluster_model.py @@ -0,0 +1,438 @@ +import pandas as pd +import numpy as np +import pathlib +import sys +__file__ = 'c:\\Users\\sunishchal.dev\\Documents\\solutions\\solution\\health_and_education\\clusters' +repo_path = str(pathlib.Path(__file__).parents[2]) +sys.path.append(repo_path) +from model import dd +from model import advanced_controls as ac +from model import emissionsfactors as ef + +class Scenario(): + # solution_category = solution_category + + def __init__(self, name, assumptions, scenario=None): + self.name = name + self.assumptions = assumptions + self.period_start = assumptions['period_start'] + self.period_end = assumptions['period_end'] + + # Load in population scenarios + def load_pop_data(self, DATADIR): + # REF1 Population + # Population_Tables!C2:L49 + self.ref1_population = pd.read_csv(DATADIR.joinpath('ref1_population.csv'), + index_col='Year', dtype=np.float64) + self.ref1_population.index = self.ref1_population.index.astype(int) + + # REF 2 Population Table + # Population_Tables!O2:X49 + self.ref2_population = pd.read_csv(DATADIR.joinpath('ref2_population.csv'), + index_col='Year', dtype=np.float64) + self.ref2_population.index = self.ref2_population.index.astype(int) + + # Population in Countries with <0.96 gender partiy in completing upper secondary education, by IPCC Region, REF1_population_scenario (millions) + # Population_Tables!C61:L108 + self.ref1_low_edu = pd.read_csv(DATADIR.joinpath('ref1_low_edu_gender_parity.csv'), + index_col='Year', dtype=np.float64) + self.ref1_low_edu.index = self.ref1_low_edu.index.astype(int) + + # Population in Countries with <0.96 gender partiy in completing upper secondary education, by IPCC Region, REF2_population_scenario (millions) + # Population_Tables!O61:X108 + self.ref2_low_edu = pd.read_csv(DATADIR.joinpath('ref2_low_edu_gender_parity.csv'), + index_col='Year', dtype=np.float64) + self.ref2_low_edu.index = self.ref2_low_edu.index.astype(int) + + + def load_tam_mix(self, current_tam_mix_list): + # TABLE 1: Current TAM Mix + self.current_tam_mix = pd.DataFrame(current_tam_mix_list[1:], columns=current_tam_mix_list[0]) + self.conv_weight_sum = self.current_tam_mix.loc[self.current_tam_mix['Include in CONV?'] == 'Y', 'Weighting Factor'].sum() + + + def load_ref2_tam(self, ref2_tam_list): + # Table 2: REF2 TAM + # obj = solarpvutil.Scenario() # Not using electricity TAM output due to slight discrepancy in Asia values + # self.ref2_tam = obj.tm.ref_tam_per_region() + self.ref2_tam = pd.DataFrame(ref2_tam_list[1:], + columns=ref2_tam_list[0], + index=list(range(2014, 2061)), dtype=np.float64) + + + def calc_ref1_tam(self): + # Table 3: REF1 TAM FOR POPULATIONS IN REGIONS WITH LOW EDUCATIONAL ATTAINMENT ONLY + ref1_tam_low_edu = (self.ref2_tam / self.ref2_population) * self.ref1_low_edu + ref1_tam_low_edu.loc[:, 'Asia (Sans Japan)'] = ((self.ref2_tam.loc[:, 'Asia (Sans Japan)'] - self.ref2_tam.loc[:, 'China']) / self.ref2_population.loc[:, 'Asia (Sans Japan)']) * self.ref1_low_edu.loc[:, 'Asia (Sans Japan)'] + ref1_tam_low_edu.loc[:, 'World'] = ref1_tam_low_edu.loc[:, ref1_tam_low_edu.columns[1:6]].sum(axis=1) + + self.ref1_tam_low_edu = ref1_tam_low_edu + + # Table 3: REF1 TAM FOR REGIONS WITH HIGHER EDUCATIONAL ATTAINMENT + ref1_tam_high_edu = ((self.ref2_tam / self.ref2_population) * self.ref1_population) - ref1_tam_low_edu + + self.ref1_tam_high_edu = ref1_tam_high_edu + + # Table 3: REF1 TAM FOR ALL REGIONS + ref1_tam_all_regions = ref1_tam_low_edu + ref1_tam_high_edu + + # SpaceHeating_cluster!AL28:AU75 + self.ref1_tam_all_regions = ref1_tam_all_regions + + + def calc_ref2_demand(self): + # Table 4: Total REF2 Demand by Economic Development Status + ref2_demand = pd.DataFrame(None, + columns=['LLDC+HighNRR', 'China', 'MDC + LAC + EE', 'Demand in Countries with Higher Educational Attainment', 'Demand in Countries with Higher Educational Attainment % LLDC'], + index=list(range(2014, 2061)), dtype=np.float64) # TODO: remove hard coded year indices + + ref2_demand.loc[:, 'LLDC+HighNRR'] = self.ref2_tam.loc[:, dd.LLDC_HIGH_NRR_REGION_Y].sum(axis=1) - self.ref2_tam.loc[:, 'China'] + ref2_demand.loc[:, 'China'] = self.ref2_tam.loc[:, 'China'] + ref2_demand.loc[:, 'MDC + LAC + EE'] = self.ref2_tam.loc[:, dd.LLDC_HIGH_NRR_REGION_N].sum(axis=1) + if dd.LLDC_HIGH_NRR_CONFIG['Asia (Sans Japan)'] == 'N': + ref2_demand.loc[:, 'MDC + LAC + EE'] = ref2_demand.loc[:, 'MDC + LAC + EE'] - self.ref2_tam.loc[:, 'China'] + ref2_demand.loc[:, 'Demand in Countries with Higher Educational Attainment'] = ref2_demand.loc[:, ['LLDC+HighNRR', 'China', 'MDC + LAC + EE']].sum(axis=1) + ref2_demand.loc[:, 'Demand in Countries with Higher Educational Attainment % LLDC'] = ref2_demand.loc[:, 'LLDC+HighNRR'] / ref2_demand.loc[:, 'Demand in Countries with Higher Educational Attainment'] + + # SpaceHeating_cluster!B77:F124 + self.ref2_demand = ref2_demand + + + def calc_ref1_demand(self): + # Table 5: Total REF1 Demand by Economic Development Status + ref1_demand = pd.DataFrame(None, + columns=['LLDC with low educational attainment, excluding China', 'MDC + EE + LAC with low educational attainment, excluding China', 'China', 'LLDC with higher educational attainment, excluding China', 'MDC + EE + LAC with higher educational attainment', 'Demand in Countries with Low Educational Attainment, exluding China', 'Demand in Countries with Low Educational Attainment, exluding China % LLDC', 'Demand in Countries with Higher Educational Attainment', 'Demand in Countries with Higher Educational Attainment % LLDC', 'Demand', 'Demand % LLDC'], + index=list(range(2014, 2061)), dtype=np.float64) + + ref1_demand.loc[:, 'LLDC with low educational attainment, excluding China'] = self.ref1_tam_low_edu.loc[:, dd.LLDC_HIGH_NRR_REGION_Y].sum(axis=1) - self.ref1_tam_low_edu.loc[:, 'China'] + ref1_demand.loc[:, 'MDC + EE + LAC with low educational attainment, excluding China'] = self.ref1_tam_low_edu.loc[:, dd.LLDC_HIGH_NRR_REGION_N].sum(axis=1) + if dd.LLDC_HIGH_NRR_CONFIG['Asia (Sans Japan)'] == 'N': + ref1_demand.loc[:, 'MDC + LAC + EE'] = ref1_demand.loc[:, 'MDC + LAC + EE'] - self.ref1_tam_low_edu.loc[:, 'China'] + ref1_demand.loc[:, 'China'] = self.ref1_tam_high_edu.loc[:, 'China'] + + ref1_demand.loc[:, 'LLDC with higher educational attainment, excluding China'] = self.ref1_tam_high_edu.loc[:, dd.LLDC_HIGH_NRR_REGION_Y].sum(axis=1) - self.ref1_tam_high_edu.loc[:, 'China'] + ref1_demand.loc[:, 'MDC + EE + LAC with higher educational attainment'] = self.ref1_tam_high_edu.loc[:, dd.LLDC_HIGH_NRR_REGION_N].sum(axis=1) + if dd.LLDC_HIGH_NRR_CONFIG['Asia (Sans Japan)'] == 'N': + ref1_demand.loc[:, 'MDC + EE + LAC with higher educational attainment'] = ref1_demand.loc[:, 'MDC + EE + LAC with higher educational attainment'] - self.ref1_tam_high_edu.loc[:, 'China'] + + ref1_demand.loc[:, 'Demand in Countries with Low Educational Attainment, exluding China'] = ref1_demand.loc[:, 'LLDC with low educational attainment, excluding China'] + ref1_demand.loc[:, 'MDC + EE + LAC with low educational attainment, excluding China'] + ref1_demand.loc[:, 'Demand in Countries with Low Educational Attainment, exluding China % LLDC'] = ref1_demand.loc[:, 'LLDC with low educational attainment, excluding China'] / ref1_demand.loc[:, 'Demand in Countries with Low Educational Attainment, exluding China'] + + ref1_demand.loc[:, 'Demand in Countries with Higher Educational Attainment'] = ref1_demand.loc[:, 'China'] + ref1_demand.loc[:, 'LLDC with higher educational attainment, excluding China'] + ref1_demand.loc[:, 'MDC + EE + LAC with higher educational attainment'] + ref1_demand.loc[:, 'Demand in Countries with Higher Educational Attainment % LLDC'] = ref1_demand.loc[:, 'LLDC with higher educational attainment, excluding China'] / ref1_demand.loc[:, 'Demand in Countries with Higher Educational Attainment'] + + ref1_demand.loc[:, 'Demand'] = ref1_demand.loc[:, 'Demand in Countries with Low Educational Attainment, exluding China'] + ref1_demand.loc[:, 'Demand in Countries with Higher Educational Attainment'] + ref1_demand.loc[:, 'Demand % LLDC'] = ref1_demand.loc[:, 'Demand in Countries with Low Educational Attainment, exluding China'] / ref1_demand.loc[:, 'Demand'] + + # SpaceHeating_cluster!H77:T124 + self.ref1_demand = ref1_demand + + + def calc_change_demand(self): + # Table 6: Change in Demand by MDC vs. LLDC Regions, REF1-REF2 + change_demand = pd.DataFrame(None, + columns=['LLDC', 'China', 'MDC + EE +LAC', 'Total change in REF1-REF2', '% LLDC with higher educational attainment', '% LLDC with Low Educational Attainment', '% LLDC', '% MDC + LAC + EE + China'], + index=list(range(2014, 2061)), dtype=np.float64) + + change_demand.loc[:, 'LLDC'] = (self.ref1_demand.loc[:, 'LLDC with low educational attainment, excluding China'] + self.ref1_demand.loc[:, 'LLDC with higher educational attainment, excluding China']) - self.ref2_demand.loc[:, 'LLDC+HighNRR'] + change_demand.loc[:, 'China'] = self.ref1_demand.loc[:, 'China'] - self.ref2_demand.loc[:, 'China'] + change_demand.loc[:, 'MDC + EE +LAC'] = (self.ref1_demand.loc[:, 'MDC + EE + LAC with higher educational attainment'] + self.ref1_demand.loc[:, 'MDC + EE + LAC with low educational attainment, excluding China']) - self.ref2_demand.loc[:, 'MDC + LAC + EE'] + # change_demand.loc[[2014, 2015], 'MDC + EE +LAC'] = 0 + + change_demand.loc[:, 'Total change in REF1-REF2'] = change_demand.loc[:, 'LLDC'] + change_demand.loc[:, 'China'] + change_demand.loc[:, 'MDC + EE +LAC'] + + change_demand.loc[:, '% LLDC with higher educational attainment'] = (change_demand.loc[:, 'LLDC'] * (self.ref1_demand.loc[:, 'LLDC with higher educational attainment, excluding China'] / (self.ref1_demand.loc[:, 'LLDC with low educational attainment, excluding China'] + self.ref1_demand.loc[:, 'LLDC with higher educational attainment, excluding China']))) / change_demand.loc[:, 'Total change in REF1-REF2'] + + change_demand.loc[:, '% LLDC with Low Educational Attainment'] = (change_demand.loc[:, 'LLDC'] / change_demand.loc[:, 'Total change in REF1-REF2']) * (self.ref1_demand.loc[:, 'LLDC with low educational attainment, excluding China'] / (self.ref1_demand.loc[:, 'LLDC with higher educational attainment, excluding China'] + self.ref1_demand.loc[:, 'LLDC with low educational attainment, excluding China'])) + change_demand.loc[:, '% LLDC'] = (change_demand.loc[:, 'LLDC'] / change_demand.loc[:, 'Total change in REF1-REF2']) + change_demand.loc[:, '% MDC + LAC + EE + China'] = (change_demand.loc[:, 'China'] + change_demand.loc[:, 'MDC + EE +LAC']) / change_demand.loc[:, 'Total change in REF1-REF2'] + change_demand = change_demand.fillna(0).replace((-np.inf, np.inf), np.nan) + + # SpaceHeating_cluster!W77:AD124 + self.change_demand = change_demand + + + def calc_addl_units_highed(self): + # Table 7: Difference in FUNCTIONAL & IMPLEMENTATION UNITS between REF1 and REF2 populations in LLDC+HighNRR+HighED + # CONVENTIONAL + addl_func_units_highed = pd.DataFrame(None, + columns=['Additional Functional Units in REF2 vs REF2', 'Annual Functional Units Increase', 'Change in TAM'], + index=list(range(2014, 2061)), dtype=np.float64) + + if self.assumptions['use_fixed_weight'] == 'N': + conv_weight_factor = self.change_demand.loc[:, '% LLDC with higher educational attainment'] + elif self.assumptions['use_fixed_weight'] == 'Y': + conv_weight_factor = self.assumptions['fixed_weighting_factor'] + else: + raise Exception('Invalid value passed for "use_fixed_weight", please use Y or N') + + addl_func_units_highed.loc[:, 'Additional Functional Units in REF2 vs REF2'] = conv_weight_factor * (self.conv_weight_sum \ + * ((self.ref1_tam_high_edu['World'] + self.ref1_tam_low_edu['World']) - self.ref2_tam['World'])) + addl_func_units_highed.loc[:, 'Annual Functional Units Increase'] = addl_func_units_highed['Additional Functional Units in REF2 vs REF2'].diff() + addl_func_units_highed.loc[2016, 'Annual Functional Units Increase'] = addl_func_units_highed.loc[2016, 'Additional Functional Units in REF2 vs REF2'] + addl_func_units_highed.loc[:, 'Change in TAM'] = addl_func_units_highed['Additional Functional Units in REF2 vs REF2'] \ + / ((self.ref1_tam_high_edu['World'] + self.ref1_tam_low_edu['World']) - self.ref2_tam['World']) + + # Convert to TWh + addl_func_units_highed = addl_func_units_highed / 100 + + # SpaceHeating_cluster!E131:G179 + self.addl_func_units_highed = addl_func_units_highed + + + def calc_addl_units_lowed(self): + # Table 8: Difference in FUNCTIONAL & IMPLEMENTATION UNITS between REF1 and REF2 populations in LLDC+HighNRR+LowED + # CONVENTIONAL + addl_func_units_lowed = pd.DataFrame(None, + columns=['Additional Functional Units in REF2 vs REF2', 'Annual Functional Units Increase', 'Change in TAM'], + index=list(range(2014, 2061)), dtype=np.float64) + + if self.assumptions['use_fixed_weight'] == 'N': + conv_weight_factor = self.change_demand.loc[:, '% LLDC with Low Educational Attainment'] + elif self.assumptions['use_fixed_weight'] == 'Y': + conv_weight_factor = self.assumptions['fixed_weighting_factor'] + else: + raise Exception('Invalid value passed for "use_fixed_weight", please use Y or N') + + addl_func_units_lowed.loc[:, 'Additional Functional Units in REF2 vs REF2'] = conv_weight_factor * (self.conv_weight_sum \ + * ((self.ref1_tam_high_edu['World'] + self.ref1_tam_low_edu['World']) - self.ref2_tam['World'])) + addl_func_units_lowed.loc[:, 'Annual Functional Units Increase'] = addl_func_units_lowed['Additional Functional Units in REF2 vs REF2'].diff() + addl_func_units_lowed.loc[2016, 'Annual Functional Units Increase'] = addl_func_units_lowed.loc[2016, 'Additional Functional Units in REF2 vs REF2'] + addl_func_units_lowed.loc[:, 'Change in TAM'] = addl_func_units_lowed['Additional Functional Units in REF2 vs REF2'] \ + / ((self.ref1_tam_high_edu['World'] + self.ref1_tam_low_edu['World']) - self.ref2_tam['World']) + + # Convert to TWh + addl_func_units_lowed = addl_func_units_lowed / 100 + + # SpaceHeating_cluster!M131:O179 + self.addl_func_units_lowed = addl_func_units_lowed + + + def calc_emis_diff_highed(self, ef_co2_eq_list): + # Table 9: Difference in EMISSIONS between REF1 and REF2 populations in LLDC+HighNRR+HighED + # CONVENTIONAL Avoided Emissions/ Million Metric Tons CO2 + # emissions_factors_ref1_co2eq = ef.ElectricityGenOnGrid(ac.AdvancedControls()).conv_ref_grid_CO2eq_per_KWh() + self.emissions_factors_ref1_co2eq = pd.DataFrame(ef_co2_eq_list[1:], + columns=ef_co2_eq_list[0], + index=list(range(2014, 2061)), dtype=np.float64) + + emis_diff_highed = pd.DataFrame(None, + columns=['Conventional: Grid','Conventional: Fuel', 'Conventional: Other Direct', 'Conventional: Indirect', 'Emission Reductions: Conv Total'], + index=list(range(2014, 2061)), dtype=np.float64) + + emis_diff_highed['Conventional: Grid'] = self.addl_func_units_highed['Additional Functional Units in REF2 vs REF2'] * self.emissions_factors_ref1_co2eq['World'] + emis_diff_highed['Emission Reductions: Conv Total'] = emis_diff_highed[['Conventional: Grid', 'Conventional: Fuel', 'Conventional: Other Direct', 'Conventional: Indirect']].sum(axis=1, min_count=1) + + # SpaceHeating_cluster!V131:Z179 + self.emis_diff_highed = emis_diff_highed + + + def calc_emis_diff_highed_spaceheating(self, ef_co2_eq_list): + # Table 9: Difference in EMISSIONS between REF1 and REF2 populations in LLDC+HighNRR+HighED + # CONVENTIONAL Avoided Emissions/ Million Metric Tons CO2 + # emissions_factors_ref1_co2eq = ef.ElectricityGenOnGrid(ac.AdvancedControls()).conv_ref_grid_CO2eq_per_KWh() + self.emissions_factors_ref1_co2eq = pd.DataFrame(ef_co2_eq_list[1:], + columns=ef_co2_eq_list[0], + index=list(range(2014, 2061)), dtype=np.float64) + + emis_diff_highed = pd.DataFrame(None, + columns=['Conventional: Grid','Conventional: Fuel', 'Conventional: Other Direct', 'Conventional: Indirect', 'Emission Reductions: Conv Total'], + index=list(range(2014, 2061)), dtype=np.float64) + + if self.assumptions['Grid'] == 'Y': + emis_diff_highed['Conventional: Grid'] = self.addl_func_units_highed['Additional Functional Units in REF2 vs REF2'] \ + * (self.current_tam_mix.loc[self.current_tam_mix['Energy Source'] == 'Electricity (Heating & Cooling)', 'Weighting Factor'].values[0] / self.conv_weight_sum) \ + * self.assumptions['Twh_per_TWh'] * self.emissions_factors_ref1_co2eq['World'] + + if self.assumptions['Fuel'] == 'Y': + emis_diff_highed['Conventional: Fuel'] = self.addl_func_units_highed['Additional Functional Units in REF2 vs REF2'] \ + * (self.current_tam_mix.loc[self.current_tam_mix['Energy Source'].isin(['Coal', 'Oil Products', 'Natural Gas', 'Biomass, waste and other renewables']), 'Weighting Factor'].sum() / self.conv_weight_sum) \ + * (self.assumptions['Weighted Emission Factor for Space Heating and Cooling'] * self.assumptions['TJ_per_TWh']) / 10**6 + + emis_diff_highed['Emission Reductions: Conv Total'] = emis_diff_highed[['Conventional: Grid', 'Conventional: Fuel', 'Conventional: Other Direct', 'Conventional: Indirect']].sum(axis=1, min_count=1) + + # SpaceHeating_cluster!V131:Z179 + self.emis_diff_highed = emis_diff_highed + + + def calc_emis_diff_lowed(self): + # Table 10: Difference in EMISSIONS between REF1 and REF2 populations in LLDC+HighNRR+LowED + # CONVENTIONAL - Least and Less Developed Countries (sans LAC, EE, China) + emis_diff_lowed = pd.DataFrame(None, + columns=['Conventional: Grid','Conventional: Fuel', 'Conventional: Other Direct', 'Conventional: Indirect', 'Emission Reductions: Conv Total'], + index=list(range(2014, 2061)), dtype=np.float64) + + emis_diff_lowed['Conventional: Grid'] = self.addl_func_units_lowed['Additional Functional Units in REF2 vs REF2'] * self.emissions_factors_ref1_co2eq['World'] + emis_diff_lowed['Emission Reductions: Conv Total'] = emis_diff_lowed[['Conventional: Grid', 'Conventional: Fuel', 'Conventional: Other Direct', 'Conventional: Indirect']].sum(axis=1, min_count=1) + + # SpaceHeating_cluster!AI131:AM179 + self.emis_diff_lowed = emis_diff_lowed + + + def calc_emis_diff_lowed_spaceheating(self): + # Table 10: Difference in EMISSIONS between REF1 and REF2 populations in LLDC+HighNRR+LowED + # CONVENTIONAL - Least and Less Developed Countries (sans LAC, EE, China) + emis_diff_lowed = pd.DataFrame(None, + columns=['Conventional: Grid','Conventional: Fuel', 'Conventional: Other Direct', 'Conventional: Indirect', 'Emission Reductions: Conv Total'], + index=list(range(2014, 2061)), dtype=np.float64) + + if self.assumptions['Grid'] == 'Y': + emis_diff_lowed['Conventional: Grid'] = self.addl_func_units_lowed['Additional Functional Units in REF2 vs REF2'] \ + * (self.current_tam_mix.loc[self.current_tam_mix['Energy Source'] == 'Electricity (Heating & Cooling)', 'Weighting Factor'].values[0] / self.conv_weight_sum) \ + * self.assumptions['Twh_per_TWh'] * self.emissions_factors_ref1_co2eq['World'] + + if self.assumptions['Fuel'] == 'Y': + emis_diff_lowed['Conventional: Fuel'] = self.addl_func_units_lowed['Additional Functional Units in REF2 vs REF2'] \ + * (self.current_tam_mix.loc[self.current_tam_mix['Energy Source'].isin(['Coal', 'Oil Products', 'Natural Gas', 'Biomass, waste and other renewables']), 'Weighting Factor'].sum() / self.conv_weight_sum) \ + * (self.assumptions['Weighted Emission Factor for Space Heating and Cooling'] * self.assumptions['TJ_per_TWh']) / 10**6 + + emis_diff_lowed['Emission Reductions: Conv Total'] = emis_diff_lowed[['Conventional: Grid', 'Conventional: Fuel', 'Conventional: Other Direct', 'Conventional: Indirect']].sum(axis=1, min_count=1) + + # SpaceHeating_cluster!AI131:AM179 + self.emis_diff_lowed = emis_diff_lowed + + + def calc_emis_alloc_lldc(self): + # Table 11: EMISSIONS ALLOCATIONS TO (a) Health & Education; (b) Education ONLY; (c) Family Planning (excluding education) + # Least and less developed countries + emissions_allocations_lldc = pd.DataFrame(None, + columns=['Health & Education: Conv Total', 'Health & Education: Solution Total', 'Education: Conv Total', 'Education: Solution Total', 'Family Planning: Conv Total', 'Family Planning: Solution Total', '% Allocation to Education: Conv Total', '% Allocation to Education: Solution Total'], + index=list(range(2014, 2061)), dtype=np.float64) + + emissions_allocations_lldc['Health & Education: Conv Total'] = self.emis_diff_lowed['Emission Reductions: Conv Total'] + self.emis_diff_highed['Emission Reductions: Conv Total'] + emissions_allocations_lldc['Health & Education: Conv Total'] = emissions_allocations_lldc['Health & Education: Conv Total'].fillna(0.0) + emissions_allocations_lldc['Health & Education: Solution Total'] = 0.0 + emissions_allocations_lldc['Education: Conv Total'] = self.emis_diff_lowed['Emission Reductions: Conv Total'] * self.assumptions['pct_impact'] + emissions_allocations_lldc['Education: Conv Total'] = emissions_allocations_lldc['Education: Conv Total'].fillna(0.0) + emissions_allocations_lldc['Education: Solution Total'] = 0.0 + emissions_allocations_lldc['Family Planning: Conv Total'] = emissions_allocations_lldc['Health & Education: Conv Total'] - emissions_allocations_lldc['Education: Conv Total'] + emissions_allocations_lldc['Family Planning: Conv Total'] = emissions_allocations_lldc['Family Planning: Conv Total'].fillna(0.0) + emissions_allocations_lldc['Family Planning: Solution Total'] = 0.0 + emissions_allocations_lldc['% Allocation to Education: Conv Total'] = emissions_allocations_lldc['Education: Conv Total'] / emissions_allocations_lldc['Health & Education: Conv Total'] + # emissions_allocations_lldc['% Allocation to Education: Conv Total'] = emissions_allocations_lldc['% Allocation to Education: Conv Total'].round(2) + emissions_allocations_lldc['% Allocation to Education: Solution Total'] = np.nan + + # SpaceHeating_cluster!AR131:BD179 + self.emissions_allocations_lldc = emissions_allocations_lldc + + + def calc_addl_units_mdc(self): + # Table 12: Difference in FUNCTIONAL & IMPLEMENTATION UNITS between REF1 and REF2 populations in MDC + LAC + EE + China + # CONVENTIONAL Avoided Emissions/ Million Metric Tons CO2 + addl_func_units_mdc = pd.DataFrame(None, + columns=['Additional Functional Units in REF2 vs REF2', 'Annual Functional Units Increase', 'Change in TAM'], + index=list(range(2014, 2061)), dtype=np.float64) + + if self.assumptions['use_fixed_weight'] == 'N': + conv_weight_factor = self.change_demand.loc[:, '% MDC + LAC + EE + China'] + elif self.assumptions['use_fixed_weight'] == 'Y': + conv_weight_factor = self.assumptions['fixed_weighting_factor'] + else: + raise Exception('Invalid value passed for "use_fixed_weight", please use Y or N') + + conv_weight_sum = self.current_tam_mix.loc[self.current_tam_mix['Include in CONV?'] == 'Y', 'Weighting Factor'].sum() + + addl_func_units_mdc.loc[:, 'Additional Functional Units in REF2 vs REF2'] = conv_weight_factor * (conv_weight_sum \ + * (self.ref1_tam_all_regions['World'] - self.ref2_tam['World'])) + addl_func_units_mdc.loc[:, 'Annual Functional Units Increase'] = addl_func_units_mdc['Additional Functional Units in REF2 vs REF2'].diff() + addl_func_units_mdc.loc[2016, 'Annual Functional Units Increase'] = addl_func_units_mdc.loc[2016, 'Additional Functional Units in REF2 vs REF2'] + addl_func_units_mdc.loc[:, 'Change in TAM'] = addl_func_units_mdc['Additional Functional Units in REF2 vs REF2'] \ + / (self.ref1_tam_all_regions['World'] - self.ref2_tam['World']) + + # Convert to TWh + addl_func_units_mdc = addl_func_units_mdc / 100 + + # SpaceHeating_cluster!E190:G238 + self.addl_func_units_mdc = addl_func_units_mdc + + + def calc_emis_diff_mdc(self): + # Table 13: Difference in EMISSIONS between REF1 and REF2 populations in MDC + LAC + EE + China + # CONVENTIONAL Avoided Emissions/ Million Metric Tons CO2 + emis_diff_mdc = pd.DataFrame(None, + columns=['Conventional: Grid','Conventional: Fuel', 'Conventional: Other Direct', 'Conventional: Indirect', 'Emission Reductions: Conv Total'], + index=list(range(2014, 2061)), dtype=np.float64) + + emis_diff_mdc['Conventional: Grid'] = self.addl_func_units_mdc['Additional Functional Units in REF2 vs REF2'] * self.emissions_factors_ref1_co2eq['World'] + emis_diff_mdc['Emission Reductions: Conv Total'] = emis_diff_mdc[['Conventional: Grid', 'Conventional: Fuel', 'Conventional: Other Direct', 'Conventional: Indirect']].sum(axis=1, min_count=1) + + # SpaceHeating_cluster!O190:S238 + self.emis_diff_mdc = emis_diff_mdc + + + def calc_emis_diff_mdc_spaceheating(self): + # Table 13: Difference in EMISSIONS between REF1 and REF2 populations in MDC + LAC + EE + China + # CONVENTIONAL Avoided Emissions/ Million Metric Tons CO2 + emis_diff_mdc = pd.DataFrame(None, + columns=['Conventional: Grid','Conventional: Fuel', 'Conventional: Other Direct', 'Conventional: Indirect', 'Emission Reductions: Conv Total'], + index=list(range(2014, 2061)), dtype=np.float64) + + if self.assumptions['Grid'] == 'Y': + emis_diff_mdc['Conventional: Grid'] = self.addl_func_units_mdc['Additional Functional Units in REF2 vs REF2'] \ + * (self.current_tam_mix.loc[self.current_tam_mix['Energy Source'] == 'Electricity (Heating & Cooling)', 'Weighting Factor'].values[0] / self.conv_weight_sum) \ + * self.assumptions['Twh_per_TWh'] * self.emissions_factors_ref1_co2eq['World'] + + if self.assumptions['Fuel'] == 'Y': + emis_diff_mdc['Conventional: Fuel'] = self.addl_func_units_mdc['Additional Functional Units in REF2 vs REF2'] \ + * (self.current_tam_mix.loc[self.current_tam_mix['Energy Source'].isin(['Coal', 'Oil Products', 'Natural Gas', 'Biomass, waste and other renewables']), 'Weighting Factor'].sum() / self.conv_weight_sum) \ + * (self.assumptions['Weighted Emission Factor for Space Heating and Cooling'] * self.assumptions['TJ_per_TWh']) / 10**6 + + emis_diff_mdc['Emission Reductions: Conv Total'] = emis_diff_mdc[['Conventional: Grid', 'Conventional: Fuel', 'Conventional: Other Direct', 'Conventional: Indirect']].sum(axis=1, min_count=1) + + # SpaceHeating_cluster!O190:S238 + self.emis_diff_mdc = emis_diff_mdc + + + def calc_emis_alloc_mdc(self): + # Table 14: EMISSIONS ALLOCATIONS TO (a) Health & Education; (b) Education ONLY; (c) Family Planning (excluding education) + # More developed countries + emissions_allocations_mdc = pd.DataFrame(None, + columns=['Health & Education: Conv Total', 'Health & Education: Solution Total', 'Education: Conv Total', 'Education: Solution Total', 'Family Planning: Conv Total', 'Family Planning: Solution Total', '% Allocation to Education: Conv Total', '% Allocation to Education: Solution Total'], + index=list(range(2014, 2061)), dtype=np.float64) + + emissions_allocations_mdc['Health & Education: Conv Total'] = self.emis_diff_mdc['Emission Reductions: Conv Total'].fillna(0.0) + emissions_allocations_mdc['Health & Education: Solution Total'] = 0.0 # emis_diff_mdc['Emission Reductions: Solution Total'] + emissions_allocations_mdc['Education: Conv Total'] = np.nan + emissions_allocations_mdc['Education: Solution Total'] = np.nan + emissions_allocations_mdc['Family Planning: Conv Total'] = emissions_allocations_mdc['Health & Education: Conv Total'] - emissions_allocations_mdc['Education: Conv Total'].fillna(0.0) + # emissions_allocations_mdc['Family Planning: Conv Total'] = emissions_allocations_mdc['Family Planning: Conv Total'].fillna(0.0) + emissions_allocations_mdc['Family Planning: Solution Total'] = emissions_allocations_mdc['Health & Education: Solution Total'] - emissions_allocations_mdc['Education: Solution Total'].fillna(0.0) + emissions_allocations_mdc['% Allocation to Education: Conv Total'] = emissions_allocations_mdc['Education: Conv Total'].fillna(0.0) / emissions_allocations_mdc['Health & Education: Conv Total'] + emissions_allocations_mdc['% Allocation to Education: Conv Total'] = emissions_allocations_mdc['% Allocation to Education: Conv Total'].fillna(0.0) + emissions_allocations_mdc['% Allocation to Education: Solution Total'] = emissions_allocations_mdc['Family Planning: Solution Total'] / (emissions_allocations_mdc['Education: Solution Total'] + emissions_allocations_mdc['Family Planning: Solution Total']) + + # SpaceHeating_cluster!X192:AI238 + self.emissions_allocations_mdc = emissions_allocations_mdc + + + def calc_total_emis(self): + # Total Emissions Avoided due to Health & Education (Gt CO2-eq) + emissions_avoided_lldc_period = self.emissions_allocations_lldc.loc[self.assumptions['period_start']:self.assumptions['period_end'], 'Health & Education: Conv Total'].sum() + emissions_avoided_lldc_full = self.emissions_allocations_lldc.loc[:, 'Health & Education: Conv Total'].sum() + emissions_avoided_mdc_period = self.emissions_allocations_mdc.loc[self.assumptions['period_start']:self.assumptions['period_end'], 'Health & Education: Conv Total'].sum() + emissions_avoided_mdc_full = self.emissions_allocations_mdc.loc[:, 'Health & Education: Conv Total'].sum() + + # Electricity_cluster!N4:O12 + self.emissions_avoided_lldc_period = round(emissions_avoided_lldc_period/1000, 2) + self.emissions_avoided_lldc_full = round(emissions_avoided_lldc_full/1000, 2) + self.emissions_avoided_mdc_period = round(emissions_avoided_mdc_period/1000, 2) + self.emissions_avoided_mdc_full = round(emissions_avoided_mdc_full/1000, 2) + self.emissions_avoided_total_period = round(self.emissions_avoided_lldc_period + self.emissions_avoided_mdc_period, 2) + self.emissions_avoided_total_full = round(self.emissions_avoided_lldc_full + self.emissions_avoided_mdc_full, 2) + + + def print_total_emis(self): + # To avoid the hard coded 2015 - 2060 date range in Excel, infer the min/max years from the dataframe + min_range = min(self.emissions_allocations_mdc.index) + max_range = max(self.emissions_allocations_mdc.index) + + print('Total Emissions Avoided due to Health & Education (Gt CO2-eq)') + print('\nLeast & Less Developed Countries (Conventional):') + print(f'{min_range} - {max_range}:', self.emissions_avoided_lldc_full) + print(f'{self.period_start} - {self.period_end}:', self.emissions_avoided_lldc_period) + print('\nMore Developed Countries (Conventional):') + print(f'{min_range} - {max_range}:', self.emissions_avoided_mdc_full) + print(f'{self.period_start} - {self.period_end}:', self.emissions_avoided_mdc_period) + print('\nTotal (Conventional):') + print(f'{min_range} - {max_range}:', self.emissions_avoided_total_full) + print(f'{self.period_start} - {self.period_end}:', self.emissions_avoided_total_period) \ No newline at end of file diff --git a/solution/health_and_education/clusters/electricity.py b/solution/health_and_education/clusters/electricity.py new file mode 100644 index 000000000..96237c4f4 --- /dev/null +++ b/solution/health_and_education/clusters/electricity.py @@ -0,0 +1,183 @@ +"""Health & Education solution model for Electricity Cluster + Excel filename: CORE_PopulationChange_29Jan2020 (version 1.4).xlsx + Excel sheet name: Electricity_cluster +""" +import pathlib +import numpy as np +import pandas as pd +import sys +__file__ = 'c:\\Users\\sunishchal.dev\\Documents\\solutions\\solution\\health_and_education\\clusters' +repo_path = str(pathlib.Path(__file__).parents[2]) +sys.path.append(repo_path) +# sys.path.append('c:\\Users\\sunishchal.dev\\Documents\\solutions') + +from model import advanced_controls as ac +from solution.health_and_education.clusters import cluster_model + +DATADIR = pathlib.Path(__file__).parents[0].joinpath('data') +THISDIR = pathlib.Path(__file__).parents[0] + +name = 'Health and Education - Electricity Cluster' +solution_category = ac.SOLUTION_CATEGORY.REDUCTION + +# % impact of educational attainment on uptake of Family Planning: +assumptions = { + 'fixed_weighting_factor': None, + 'pct_impact': 0.50, + 'use_fixed_weight': 'N', + 'period_start': 2020, + 'period_end': 2050 +} + +# TABLE 1: Current TAM Mix +current_tam_mix_list = [ + ['Energy Source', 'Weighting Factor', 'Include in SOL?', 'Include in CONV?'], + ['Coal', 39.28, 'N', 'Y'], + ['Natural gas', 22.72, 'N', 'Y'], + ['Nuclear', 10.45, 'N', 'N'], + ['Oil', 3.41, 'N', 'Y'], + ['Hydroelectric', 15.52, 'N', 'Y'], + ['Solar Photovoltaic', 1.73, 'N', 'N'], + ['Wave and Tidal', 0.00, 'N', 'N'], + ['Wind Onshore', 4.36, 'N', 'N'], + ['Wind Offshore', 0.24, 'N', 'N'], + ['Biomass and Waste', 1.90, 'N', 'N'], + ['Concentrated Solar Power', 0.05, 'N', 'N'], + ['Geothermal', 0.34, 'N', 'N']] + +# Table 2: REF2, Electricity Generation TAM (TWh) +# Electricity_cluster!B26:K73 +# TODO: Replace this with solarpvutil.Scenario.ref_tam_per_region once we resolve the data mismatch +ref2_tam_list = [ + ['World', 'OECD90', 'Eastern Europe', 'Asia (Sans Japan)', 'Middle East and Africa', 'Latin America', 'China', 'India', 'EU', 'USA'], + [22548.00000, 9630.94132, 2021.81456, 8068.09850, 1750.27240, 1681.57391, 5262.77320, 1324.87968, 3379.55071, 4226.08258], + [23915.29474, 9686.06712, 2046.08149, 8518.24480, 1813.43945, 1729.37357, 5577.46645, 1407.75811, 3402.87973, 4238.15940], + [24739.34640, 9726.59905, 2070.42874, 8971.48190, 1887.43392, 1782.38592, 5868.27237, 1508.56127, 3423.02929, 4238.12779], + [25546.28067, 9770.88424, 2095.77922, 9418.25671, 1964.77842, 1837.98642, 6148.15200, 1613.15158, 3443.15125, 4240.90633], + [26336.89072, 9818.79572, 2122.08509, 9858.95275, 2045.58829, 1896.13291, 6417.38657, 1721.48637, 3463.30080, 4246.39976], + [27111.96969, 9870.20653, 2149.29851, 10293.95356, 2129.97886, 1956.78323, 6676.25733, 1833.52292, 3483.53313, 4254.51283], + [27872.31074, 9924.98972, 2177.37163, 10723.64264, 2218.06547, 2019.89524, 6925.04552, 1949.21857, 3503.90343, 4265.15027], + [28618.70702, 9983.01832, 2206.25661, 11148.40352, 2309.96345, 2085.42679, 7164.03237, 2068.53061, 3524.46690, 4278.21684], + [29351.95169, 10044.16537, 2235.90560, 11568.61971, 2405.78813, 2153.33573, 7393.49912, 2191.41636, 3545.27873, 4293.61727], + [30072.83791, 10108.30392, 2266.27077, 11984.67474, 2505.65485, 2223.57990, 7613.72702, 2317.83312, 3566.39411, 4311.25631], + [30782.15882, 10175.30699, 2297.30426, 12396.95213, 2609.67894, 2296.11715, 7824.99730, 2447.73821, 3587.86825, 4331.03871], + [31480.70758, 10245.04764, 2328.95824, 12805.83539, 2717.97573, 2370.90533, 8027.59121, 2581.08893, 3609.75633, 4352.86921], + [32169.27735, 10317.39891, 2361.18485, 13211.70805, 2830.66056, 2447.90230, 8221.78998, 2717.84260, 3632.11354, 4376.65255], + [32848.66128, 10392.23382, 2393.93626, 13614.95362, 2947.84876, 2527.06589, 8407.87486, 2857.95652, 3654.99508, 4402.29347], + [33519.65253, 10469.42543, 2427.16462, 14015.95562, 3069.65567, 2608.35396, 8586.12709, 3001.38800, 3678.45614, 4429.69673], + [34183.04424, 10548.84677, 2460.82209, 14415.09758, 3196.19661, 2691.72436, 8756.82789, 3148.09436, 3702.55192, 4458.76706], + [34839.62958, 10630.37088, 2494.86082, 14812.76302, 3327.58693, 2777.13494, 8920.25852, 3298.03290, 3727.33762, 4489.40921], + [35490.20169, 10713.87080, 2529.23298, 15209.33545, 3463.94195, 2864.54354, 9076.70022, 3451.16094, 3752.86841, 4521.52793], + [36135.55373, 10799.21958, 2563.89071, 15605.19839, 3605.37701, 2953.90802, 9226.43422, 3607.43578, 3779.19950, 4555.02795], + [36776.47886, 10886.29024, 2598.78617, 16000.73536, 3752.00744, 3045.18622, 9369.74177, 3766.81473, 3806.38608, 4589.81402], + [37413.77023, 10974.95584, 2633.87152, 16396.32989, 3903.94858, 3138.33599, 9506.90409, 3929.25510, 3834.48334, 4625.79089], + [38048.22099, 11065.08941, 2669.09891, 16792.36549, 4061.31575, 3233.31518, 9638.20245, 4094.71421, 3863.54649, 4662.86330], + [38680.62430, 11156.56399, 2704.42051, 17189.22569, 4224.22430, 3330.08164, 9763.91807, 4263.14936, 3893.63070, 4700.93599], + [39311.77332, 11249.25262, 2739.78846, 17587.29399, 4392.78956, 3428.59321, 9884.33219, 4434.51785, 3924.79118, 4739.91371], + [39942.46119, 11343.02835, 2775.15493, 17986.95393, 4567.12685, 3528.80776, 9999.72605, 4608.77701, 3957.08311, 4779.70121], + [40573.48107, 11437.76420, 2810.47206, 18388.58902, 4747.35152, 3630.68312, 10110.38090, 4785.88414, 3990.56170, 4820.20321], + [41205.62612, 11533.33323, 2845.69203, 18792.58278, 4933.57890, 3734.17715, 10216.57798, 4965.79655, 4025.28213, 4861.32448], + [41839.68949, 11629.60846, 2880.76697, 19199.31873, 5125.92432, 3839.24769, 10318.59852, 5148.47155, 4061.29960, 4902.96975], + [42476.46433, 11726.46295, 2915.64905, 19609.18039, 5324.50311, 3945.85259, 10416.72376, 5333.86645, 4098.66931, 4945.04377], + [43116.74380, 11823.76973, 2950.29042, 20022.55128, 5529.43060, 4053.94970, 10511.23495, 5521.93856, 4137.44643, 4987.45129], + [43761.32106, 11921.40184, 2984.64325, 20439.81493, 5740.82214, 4163.49688, 10602.41332, 5712.64519, 4177.68618, 5030.09703], + [44410.98925, 12019.23231, 3018.65968, 20861.35484, 5958.79306, 4274.45196, 10690.54011, 5905.94365, 4219.44374, 5072.88576], + [45066.54153, 12117.13420, 3052.29187, 21287.55454, 6183.45868, 4386.77280, 10775.89657, 6101.79125, 4262.77431, 5115.72222], + [45728.77106, 12214.98054, 3085.49198, 21718.79755, 6414.93434, 4500.41725, 10858.76393, 6300.14529, 4307.73308, 5158.51114], + [46398.47098, 12312.64437, 3118.21217, 22155.46740, 6653.33538, 4615.34315, 10939.42343, 6500.96309, 4354.37524, 5201.15727], + [47076.43447, 12409.99873, 3150.40458, 22597.94759, 6898.77713, 4731.50836, 11018.15632, 6704.20196, 4402.75599, 5243.56536], + [47763.45466, 12506.91666, 3182.02139, 23046.62165, 7151.37491, 4848.87072, 11095.24383, 6909.81921, 4452.93051, 5285.64015], + [48460.32471, 12603.27120, 3213.01473, 23501.87309, 7411.24408, 4967.38809, 11170.96721, 7117.77215, 4504.95402, 5327.28639], + [49167.83778, 12698.93539, 3243.33678, 23964.08545, 7678.49995, 5087.01830, 11245.60769, 7328.01808, 4558.88169, 5368.40881], + [49886.78702, 12793.78227, 3272.93968, 24433.64223, 7953.25787, 5207.71922, 11319.44651, 7540.51431, 4614.76872, 5408.91217], + [50617.96559, 12887.68488, 3301.77559, 24910.92696, 8235.63316, 5329.44868, 11392.76492, 7755.21817, 4672.67030, 5448.70121], + [51362.16663, 12980.51625, 3329.79667, 25396.32316, 8525.74117, 5452.16454, 11465.84415, 7972.08695, 4732.64164, 5487.68066], + [52120.18332, 13072.14944, 3356.95508, 25890.21435, 8823.69721, 5575.82465, 11538.96544, 8191.07796, 4794.73791, 5525.75528], + [52892.80878, 13162.45748, 3383.20296, 26392.98404, 9129.61663, 5700.38686, 11612.41004, 8412.14852, 4859.01432, 5562.82981], + [53680.83620, 13251.31340, 3408.49248, 26905.01576, 9443.61477, 5825.80901, 11686.45918, 8635.25594, 4925.52606, 5598.80900], + [54485.05871, 13338.59025, 3432.77580, 27426.69302, 9765.80695, 5952.04895, 11761.39410, 8860.35752, 4994.32832, 5633.59758], + [55306.26947, 13424.16108, 3456.00506, 27958.39935, 10096.30850, 6079.06453, 11837.49604, 9087.41057, 5065.47630, 5667.10030]] + + +# GRID EMISSIONS FACTORS: REF Grid EFs kg CO2-eq per kwh +# Emissions Factors!B11:K57 +# TODO: Replace this with emissions_factors module once interface is better understood +ef_co2_eq_list = [ + ['World', 'OECD90', 'Eastern Europe', 'Asia (Sans Japan)', 'Middle East and Africa', 'Latin America', 'China', 'India', 'EU', 'USA'], + [None, None, None, None, None, None, None, None, None, None], + [0.617381628, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.613053712, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.605559021, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.599823764, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.596692109, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.592956465, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.589394210, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.585889941, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.582469966, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.579126508, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.576180724, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.572640473, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.569484654, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.566378788, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.563317175, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.560425096, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.557305440, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.554345365, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.551409592, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.548493724, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.545513743, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.542688056, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.539794403, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.536903541, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.533998347, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.530880184, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.528185055, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.525268472, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.522337859, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.519390128, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.516316183, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.513431317, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.510414389, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.507368630, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.504753472, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.503017663, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.501095098, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.499244741, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.497355610, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.495425752, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.493412239, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.491436597, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.489373931, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.487263794, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.485104746, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.483057065, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666]] + +class Cluster: + + def __init__(self): + self.name = name + + def run_cluster(self): + scenario = cluster_model.Scenario(self.name, assumptions) + scenario.load_pop_data(DATADIR) + scenario.load_tam_mix(current_tam_mix_list) + scenario.load_ref2_tam(ref2_tam_list) + scenario.calc_ref1_tam() + scenario.calc_ref2_demand() + scenario.calc_ref1_demand() + scenario.calc_change_demand() + scenario.calc_addl_units_highed() + scenario.calc_addl_units_lowed() + scenario.calc_emis_diff_highed(ef_co2_eq_list) + scenario.calc_emis_diff_lowed() + scenario.calc_emis_alloc_lldc() + scenario.calc_addl_units_mdc() + scenario.calc_emis_diff_mdc() + scenario.calc_emis_alloc_mdc() + scenario.calc_total_emis() + scenario.print_total_emis() + return scenario + +if __name__ == "__main__": + cluster = Cluster() + cluster.run_cluster() \ No newline at end of file diff --git a/solution/health_and_education/clusters/space_heating.py b/solution/health_and_education/clusters/space_heating.py new file mode 100644 index 000000000..c18510e40 --- /dev/null +++ b/solution/health_and_education/clusters/space_heating.py @@ -0,0 +1,186 @@ +"""Health & Education solution model for Space Heating Cluster + Excel filename: CORE_PopulationChange_29Jan2020 (version 1.5).xlsx + Excel sheet name: SpaceHeating_cluster +""" +import pathlib +import numpy as np +import pandas as pd +import sys +__file__ = 'c:\\Users\\sunishchal.dev\\Documents\\solutions\\solution\\health_and_education\\clusters' +repo_path = str(pathlib.Path(__file__).parents[2]) +sys.path.append(repo_path) +# sys.path.append('c:\\Users\\sunishchal.dev\\Documents\\solutions') + +from model import advanced_controls as ac +from solution.health_and_education.clusters import cluster_model + +DATADIR = pathlib.Path(__file__).parents[0].joinpath('data') +THISDIR = pathlib.Path(__file__).parents[0] + +name = 'Health and Education - Space Heating Cluster' +solution_category = ac.SOLUTION_CATEGORY.REDUCTION +period_start = 2020 +period_end = 2050 + +# % impact of educational attainment on uptake of Family Planning: +assumptions = { + 'fixed_weighting_factor': None, + 'pct_impact': 0.50, + 'use_fixed_weight': 'N', + 'Twh_per_TWh': 0.198502876609453, + 'TJ_per_TWh': 2885.38964189766, + 'period_start': 2020, + 'period_end': 2050, + 'Grid': 'Y', + 'Fuel': 'Y', + 'Other Direct': 'N', + 'Indirect': 'N', + 'Weighted Emission Factor for Space Heating and Cooling': 87.04 +} + +# TABLE 1: Current TAM Mix +current_tam_mix_list = [ + ['Energy Source', 'Weighting Factor', 'Include in SOL?', 'Include in CONV?'], + ['Coal', 7.0203526, 'N', 'Y'], + ['Oil Products', 12.5061887, 'N', 'Y'], + ['Natural Gas', 36.8500104, 'N', 'Y'], + ['Electricity (Heating & Cooling)', 13.9625051, 'N', 'Y'], + ['Biomass, waste and other renewables', 13.6908156, 'N', 'Y'], + ['Commercial heat', 15.9701277, 'N', 'Y']] + +# Table 2: REF2, Heating Demand TAM (TWh Therms) +# SpaceHeating_cluster!B28:K75 +# TODO: Replace this with solarpvutil.Scenario.ref_tam_per_region once we resolve the data mismatch +ref2_tam_list = [ + ['World', 'OECD90', 'Eastern Europe', 'Asia (Sans Japan)', 'Middle East and Africa', 'Latin America', 'China', 'India', 'EU', 'USA'], + [10669.16363, 2962.263488, 561.0079653, 4099.311153, 1033.924582, 434.4641223, 2772.465626, 797.2777074, 1198.774588, 1260.245688], + [10860.45764, 2984.777619, 566.1629708, 4189.758885, 1064.708058, 442.1809161, 2824.584893, 823.1330498, 1204.604657, 1271.71414], + [11054.07522, 3006.994636, 571.2518042, 4281.946446, 1095.859513, 449.9415929, 2875.983506, 850.7394459, 1210.527168, 1283.255696], + [11249.9193, 3028.903646, 576.2808696, 4375.819879, 1127.408863, 457.7401269, 2926.656272, 880.0766113, 1216.503086, 1294.851176], + [11447.85329, 3050.518088, 581.2545152, 4471.273281, 1159.400951, 465.5719961, 2976.542878, 911.1169801, 1222.488913, 1306.494931], + [11647.69453, 3071.858542, 586.1873931, 4568.168642, 1191.884575, 473.4306054, 3025.556955, 943.8184722, 1228.409726, 1318.17211], + [11848.15994, 3092.900285, 591.1791084, 4665.706889, 1225.053698, 481.3111757, 3073.026365, 978.3222086, 1234.013548, 1329.895139], + [12052.64645, 3113.774383, 595.9626869, 4765.900232, 1258.503962, 489.2094645, 3120.759701, 1014.084803, 1239.883083, 1341.58984], + [12257.73481, 3134.356149, 600.7963627, 4866.672475, 1292.714626, 497.1271089, 3166.950136, 1051.632479, 1245.449322, 1353.332521], + [12464.6224, 3154.714587, 605.5935275, 4968.718231, 1327.563826, 505.0619398, 3212.23334, 1090.784133, 1250.910859, 1365.07968], + [12673.39373, 3174.881829, 610.3567937, 5072.065596, 1363.073546, 513.012908, 3256.653314, 1131.539129, 1256.274807, 1376.807614], + [12884.11668, 3194.881054, 615.0890579, 5176.731785, 1399.270201, 520.9789974, 3300.247431, 1173.894469, 1261.546561, 1388.497797], + [13096.80468, 3214.72315, 619.7932289, 5282.698862, 1436.188087, 528.9585259, 3343.027382, 1217.841, 1266.723557, 1400.143012], + [13311.45249, 3234.402998, 624.4726371, 5389.935163, 1473.869338, 536.9500847, 3384.998075, 1263.364988, 1271.802289, 1411.742722], + [13528.09117, 3253.907199, 629.1314784, 5498.430402, 1512.357844, 544.9534103, 3426.184667, 1310.453806, 1276.786873, 1423.293563], + [13746.75521, 3273.213503, 633.7744739, 5608.175218, 1551.701042, 552.9686719, 3466.615811, 1359.093319, 1281.683167, 1434.79424], + [13971.9491, 3292.390266, 638.053238, 5721.918144, 1591.349987, 560.9930396, 3508.75491, 1408.566408, 1286.894576, 1446.142712], + [14190.27602, 3311.174195, 643.0320742, 5831.36716, 1633.126714, 569.0338571, 3545.307406, 1460.97425, 1291.225014, 1457.639364], + [14415.17514, 3329.824826, 647.656042, 5944.785154, 1675.285106, 577.0817327, 3583.600794, 1514.196034, 1295.870522, 1468.97893], + [14642.20161, 3348.242855, 652.2888431, 6059.393256, 1718.465208, 585.1376728, 3621.224618, 1568.921609, 1300.429359, 1480.269195], + [14871.38455, 3366.413457, 656.9426803, 6175.170142, 1762.714121, 593.1996654, 3658.207777, 1625.136111, 1304.897574, 1491.519608], + [15102.74903, 3384.324713, 661.6279528, 6292.095814, 1808.075896, 601.2659534, 3694.574087, 1682.826471, 1309.272086, 1502.737112], + [15336.31214, 3401.969054, 666.3503069, 6410.150194, 1854.591022, 609.3353268, 3730.340463, 1741.98062, 1313.551724, 1513.925191], + [15572.08689, 3419.344084, 671.1134905, 6529.317587, 1902.294507, 617.4070325, 3765.515157, 1802.590867, 1317.736931, 1525.082311], + [15810.08796, 3436.449856, 675.9235657, 6649.587315, 1951.217749, 625.4803545, 3800.101579, 1864.654186, 1321.827998, 1536.204555], + [16050.32816, 3453.289193, 680.7863807, 6770.951439, 2001.389021, 633.5547512, 3834.0979, 1928.170696, 1325.825784, 1547.285665], + [16286.29506, 3469.862659, 686.2369991, 6889.258302, 2053.730237, 641.6336083, 3863.847504, 1994.19394, 1329.711906, 1558.47401], + [16537.56396, 3486.173485, 690.688332, 7016.908861, 2105.600641, 649.7038274, 3900.317765, 2059.551319, 1333.543201, 1569.313365], + [16784.57163, 3502.215212, 695.7334016, 7141.458995, 2159.712993, 657.7763607, 3932.546349, 2127.399169, 1337.262436, 1580.264572], + [17033.83213, 3517.984858, 700.8416851, 7267.018811, 2215.20843, 665.8465514, 3964.192994, 2196.671574, 1340.885636, 1591.181322], + [17285.33164, 3533.477251, 706.0114844, 7393.554359, 2272.119763, 673.9138876, 3995.262365, 2267.356425, 1344.40912, 1602.071415], + [17539.05835, 3548.689557, 711.2413017, 7521.032805, 2330.48056, 681.9776399, 4025.754655, 2339.442569, 1347.830621, 1612.941462], + [17795.01029, 3563.619741, 716.5321219, 7649.427184, 2390.325464, 690.0368663, 4055.667963, 2412.92004, 1351.149896, 1623.795095], + [18053.18648, 3578.271572, 721.8842157, 7778.711445, 2451.690337, 698.0902408, 4084.990695, 2487.78147, 1354.368961, 1634.634349], + [18313.57633, 3592.655346, 727.2940475, 7908.853586, 2514.611647, 706.1361489, 4113.699985, 2564.021224, 1357.490685, 1645.462527], + [18576.16702, 3606.785472, 732.7566487, 8039.819845, 2579.126543, 714.172712, 4141.765459, 2641.635063, 1360.519195, 1656.282738], + [18845.17104, 3620.588027, 737.9144873, 8174.336365, 2644.677361, 722.1954336, 4171.596905, 2719.913456, 1363.084177, 1666.996881], + [19107.92511, 3634.322763, 743.8273091, 8304.099366, 2713.084723, 730.2108719, 4195.879841, 2800.95966, 1366.310734, 1677.910946], + [19377.09809, 3647.733841, 749.43452, 8437.358364, 2782.600793, 738.2096128, 4221.91617, 2882.651414, 1369.078467, 1688.724161], + [19648.44524, 3660.9069, 755.0880696, 8571.308789, 2853.85634, 746.1926503, 4247.229288, 2965.678312, 1371.764545, 1699.544907], + [19921.93821, 3673.840762, 760.7863521, 8705.900227, 2926.887373, 754.1582278, 4271.770235, 3050.024009, 1374.37211, 1710.38148], + [20197.56249, 3686.534507, 766.5284428, 8841.090646, 3001.730436, 762.1046269, 4295.505775, 3135.673485, 1376.904483, 1721.239773], + [20475.3211, 3698.990161, 772.3147168, 8976.850087, 3078.422798, 770.0302978, 4318.422143, 3222.616037, 1379.365341, 1732.122165], + [20755.24068, 3711.20916, 778.1462425, 9113.163507, 3157.002469, 777.9336692, 4340.534932, 3310.842454, 1381.758463, 1743.027312], + [21037.36197, 3723.188971, 784.0240031, 9250.023481, 3237.507833, 785.8129791, 4361.879019, 3400.340865, 1384.087554, 1753.952381], + [21321.73945, 3734.925729, 789.9493625, 9387.431319, 3319.977713, 793.6664151, 4382.507333, 3491.099347, 1386.356311, 1764.892536], + [21607.39916, 3746.459569, 796.0128216, 9524.696407, 3404.599666, 801.4929156, 4401.857177, 3583.282817, 1388.758975, 1775.868678]] + + +# GRID EMISSIONS FACTORS: REF Grid EFs kg CO2-eq per kwh +# Emissions Factors!B11:K57 +# TODO: Replace this with emissions_factors module once interface is better understood +ef_co2_eq_list = [ + ['World', 'OECD90', 'Eastern Europe', 'Asia (Sans Japan)', 'Middle East and Africa', 'Latin America', 'China', 'India', 'EU', 'USA'], + [None, None, None, None, None, None, None, None, None, None], + [0.617381628, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.613053712, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.605559021, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.599823764, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.596692109, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.592956465, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.589394210, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.585889941, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.582469966, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.579126508, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.576180724, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.572640473, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.569484654, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.566378788, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.563317175, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.560425096, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.557305440, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.554345365, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.551409592, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.548493724, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.545513743, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.542688056, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.539794403, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.536903541, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.533998347, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.530880184, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.528185055, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.525268472, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.522337859, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.519390128, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.516316183, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.513431317, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.510414389, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.507368630, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.504753472, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.503017663, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.501095098, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.499244741, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.497355610, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.495425752, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.493412239, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.491436597, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.489373931, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.487263794, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.485104746, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.483057065, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666]] + +class Cluster: + + def __init__(self): + self.name = name + + def run_cluster(self): + scenario = cluster_model.Scenario(name, assumptions) + scenario.load_pop_data(DATADIR) + scenario.load_tam_mix(current_tam_mix_list) + scenario.load_ref2_tam(ref2_tam_list) + scenario.calc_ref1_tam() + scenario.calc_ref2_demand() + scenario.calc_ref1_demand() + scenario.calc_change_demand() + scenario.calc_addl_units_highed() + scenario.calc_addl_units_lowed() + scenario.calc_emis_diff_highed_spaceheating(ef_co2_eq_list) + scenario.calc_emis_diff_lowed_spaceheating() + scenario.calc_emis_alloc_lldc() + scenario.calc_addl_units_mdc() + scenario.calc_emis_diff_mdc_spaceheating() + scenario.calc_emis_alloc_mdc() + scenario.calc_total_emis() + scenario.print_total_emis() + return scenario + +if __name__ == "__main__": + cluster = Cluster() + cluster.run_cluster() \ No newline at end of file diff --git a/solution/health_and_education/tests/expected_elec_cluster.csv b/solution/health_and_education/tests/expected_elec_cluster.csv index 775a7631c..da5ad5186 100644 --- a/solution/health_and_education/tests/expected_elec_cluster.csv +++ b/solution/health_and_education/tests/expected_elec_cluster.csv @@ -75,8 +75,8 @@ COPY TABLES BELOW FROM LATEST ELECTRICITY SOLUTION MODELS,,,,,,,,,,,,(a) FOR POP ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, Table 4: Total REF2 Electricity Generation by Economic Development Status (TWh),,,,,,,Table 5: Total REF1 Electricity Generation by Economic Development Status (TWh),,,,,,,,,,,,,,,"Table 6: Change in Electricity Generation by MDC vs. LLDC Regions, REF1-REF2 (TWh)",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,LLDC+HighNRR,China,MDC + LAC + EE,Total Electricity Demand in Countries with Higher Educational Attainment (TWh),Total Electricity Demand in Countries with Higher Educational Attainment (TWh) % LLDC,,,"LLDC with low educational attainment, excluding China","MDC + EE + LAC with low educational attainment, excluding China",China,"LLDC with higher educational attainment, excluding China",MDC + EE + LAC with higher educational attainment,"Total Electricity Demand in Countries with Low Educational Attainment (TWh), exluding China","Total Electricity Demand in Countries with Low Educational Attainment (TWh), exluding China % LLDC",Total Electricity Demand in Countries with Higher Educational Attainment (TWh),Total Electricity Demand in Countries with Higher Educational Attainment (TWh) % LLDC,Total Electricity Demand (TWh),Total Electricity Demand (TWh) % LLDC,,,,LLDC,China,MDC + EE +LAC,Total change in REF1-REF2,% LLDC with higher educational attainment,% LLDC with Low Educational Attainment,% LLDC,% MDC + LAC + EE + China,,"% LLDC with low educational attainment, TWh)","% LLDC with higher educational attainment, TWh)",,,,,,,,,,,,,,,,,,,,,,,,, -2014,4555.598,5262.773,13334.33,23152.701,0.19676,,2014,0,0,5262.773,4555.598,13334.33,0,,23152.701,0.19676,23152.701,0,,,,0,0,0,0,,,,,,0%,100%,,,,,,,,,,,,,,,,,,,,,,,,, -2015,4754.218,5577.466,13461.522,23793.206,0.19981,,2015,2622.263,528.301,5577.466,2131.955,12933.221,3150.565,0.83232,20642.642,0.10328,23793.206,0.13241,,,,0,0,0,0,,,,,,55%,45%,,,,,,,,,,,,,,,,,,,,,,,,, +2014,4555.598,5262.773,13334.33,23152.701,0.19676,,2014,0,0,5262.773,4555.598,13334.33,0,,23152.701,0.19676,23152.701,0,,,,0,0,0,0,0,0,0,0,,0%,100%,,,,,,,,,,,,,,,,,,,,,,,,, +2015,4754.218,5577.466,13461.522,23793.206,0.19981,,2015,2622.263,528.301,5577.466,2131.955,12933.221,3150.565,0.83232,20642.642,0.10328,23793.206,0.13241,,,,0,0,0,0,0,0,0,1,,55%,45%,,,,,,,,,,,,,,,,,,,,,,,,, 2016,4990.643,5868.272,13579.414,24438.33,0.20421,,2016,2765.394,546.916,5873.482,2231.744,13044.507,3312.31,0.83488,21149.734,0.10552,24462.044,0.13541,,,,6.495,5.21,12.01,23.715,0.12232,0.15157,0.27389,0.72611,,55%,45%,,,,,,,,,,,,,,,,,,,,,,,,, 2017,5234.883,6148.152,13704.65,25087.685,0.20866,,2017,2915.838,566.854,6161.346,2335.411,13167.239,3482.692,0.83724,21663.995,0.1078,25146.688,0.1385,,,,16.366,13.194,29.443,59.003,0.12336,0.15401,0.27737,0.72263,,56%,44%,,,,,,,,,,,,,,,,,,,,,,,,, 2018,5487.154,6417.387,13837.014,25741.555,0.21316,,2018,3073.751,588.075,6441.02,2442.987,13300.495,3661.826,0.8394,22184.502,0.11012,25846.329,0.14168,,,,29.584,23.633,51.556,104.774,0.12504,0.15732,0.28236,0.71764,,56%,44%,,,,,,,,,,,,,,,,,,,,,,,,, @@ -130,53 +130,53 @@ Table 4: Total REF2 Electricity Generation by Economic Development Status (TWh), ,SOLUTION ,,,CONVENTIONAL,,,,,SOLUTION ,,,CONVENTIONAL,,,,,SOLUTION,,,,CONVENTIONAL,,,,EMISSION REDUCTIONS,,,,,"SOLUTION - Least and Less Developed Countries (sans LAC, EE, China)",,,,"CONVENTIONAL - Least and Less Developed Countries (sans LAC, EE, China)",,,,"EMISSION REDCUTIONS - LEAST AND LESS DEVELOPED COUNTRIES (sans, LAC, EE, China)",,,,,#VALUE!,,,,#VALUE!,,,#VALUE!,,,,% Allocation to Education (Electricity),,, ,Additional Functional Units in REF2 vs REF1,Annual Functional Units Increase,Annual Implementation Units Increase + Replacement,Additional Functional Units in REF2 vs REF2,Annual Functional Units Increase,Change in TAM,Annual Implementation Units Increase + Replacement,,Additional Functional Units in REF2 vs REF1,Annual Functional Units Increase,Annual Implementation Units Increase + Replacement,Additional Functional Units in REF2 vs REF2,Annual Functional Units Increase,Change in TAM,Annual Implementation Units Increase + Replacement,,Avoided Emissions/ Million Metric Tons CO2,,,,Avoided Emissions/ Million Metric Tons CO2,,,,ALL Years,,,,,Avoided Emissions/ Million Metric Tons CO2,,,,Avoided Emissions/ Million Metric Tons CO2,,,,ALL Years,,,,,,,,,,,,,,,,ALL Years,,, ,TWh,TWh,TW,TWh,TWh,%,TW,,TWh,TWh,TW,TWh,TWh,%,TW,,Grid,Fuel,Other Direct,Indirect,Grid,Fuel,Other Direct,Indirect,Conv Total,Solution Total,,,,Grid,Fuel,Other Direct,Indirect,Grid,Fuel,Other Direct,Indirect,Conv Total,Solution Total,,,,,Conv Total,Solution Total,,Conv Total,Solution Total,,Conv Total,Solution Total,,,Conv Total,Solution Total,, -2014,,,,,,, Not modeled TBD ,,,,,,,, Not modeled TBD ,,,,,,,,,,,,,,,,,,,,,,,,,,,,2014,0,0,,0,0,,0,0,,,,,, -2015,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2015,0,0,,0,0,,0,0,,,,,, -2016,,,,2.580721651,2.580721651,0.098992078,,,,,,3.197889765,3.197889765,0.122665601,,,,,,,1.582120987,,,,1.582120987,,,,,,,,,1.960478191,,,,1.960478191,,,,,2016,3.54,0,,0.98,0,,2.56,0,,,0.28,,, -2017,,,,6.481238206,3.900516555,0.099830102,,,,,,8.091983104,4.894093339,0.124640293,,,,,,,3.924772264,,,,3.924772264,,,,,,,,,4.900173367,,,,4.900173367,,,,,2017,8.82,0,,2.45,0,,6.37,0,,,0.28,,, -2018,,,,11.67298737,5.19174916,0.101191832,,,,,,14.6868971,6.594914001,0.127319076,,,,,,,7.001735219,,,,7.001735219,,,,,,,,,8.809549903,,,,8.809549903,,,,,2018,15.81,0,,4.4,0,,11.41,0,,,0.28,,, -2019,,,,18.01980541,6.346818047,0.103101071,,,,,,22.85090435,8.164007241,0.130742415,,,,,,,10.7522757,,,,10.7522757,,,,,,,,,13.63495431,,,,13.63495431,,,,,2019,24.39,0,,6.82,0,,17.57,0,,,0.28,,, -2020,,,,25.41389405,7.394088639,0.105409251,,,,,,32.48164465,9.630740305,0.134724171,,,,,,,15.06933278,,,,15.06933278,,,,,,,,,19.2602012,,,,19.2602012,,,,,2020,34.33,0,,9.63,0,,24.7,0,,,0.28,,, -2021,,,,33.85682492,8.442930872,0.107882791,,,,,,43.61385503,11.13221038,0.138972996,,,,,,,19.9550166,,,,19.9550166,,,,,,,,,25.70575365,,,,25.70575365,,,,,2021,45.66,0,,12.85,0,,32.81,0,,,0.28,,, -2022,,,,43.41818642,9.561361495,0.110307573,,,,,,56.37994202,12.76608698,0.143238007,,,,,,,25.43827867,,,,25.43827867,,,,,,,,,33.03244089,,,,33.03244089,,,,,2022,58.47,0,,16.52,0,,41.95,0,,,0.28,,, -2023,,,,54.11642731,10.69824089,0.112607488,,,,,,70.83970043,14.45975842,0.147405902,,,,,,,31.5211936,,,,31.5211936,,,,,,,,,41.26199794,,,,41.26199794,,,,,2023,72.78,0,,20.63,0,,52.15,0,,,0.28,,, -2024,,,,65.97492046,11.85849315,0.114712773,,,,,,87.07245325,16.23275282,0.151395751,,,,,,,38.20782532,,,,38.20782532,,,,,,,,,50.42596583,,,,50.42596583,,,,,2024,88.63,0,,25.21,0,,63.42,0,,,0.28,,, -2025,,,,78.98968561,13.01476515,0.116599176,,,,,,105.1228591,18.05040585,0.155175182,,,,,,,45.51233423,,,,45.51233423,,,,,,,,,60.56976505,,,,60.56976505,,,,,2025,106.08,0,,30.28,0,,75.8,0,,,0.29,,, -2026,,,,93.18389918,14.19421357,0.118317494,,,,,,125.0675747,19.9447156,0.158800846,,,,,,,53.36087211,,,,53.36087211,,,,,,,,,71.61875515,,,,71.61875515,,,,,2026,124.98,0,,35.81,0,,89.17,0,,,0.29,,, -2027,,,,108.4928845,15.30898529,0.119896232,,,,,,146.8755777,21.80800299,0.162313208,,,,,,,61.78503275,,,,61.78503275,,,,,,,,,83.64338751,,,,83.64338751,,,,,2027,145.43,0,,41.82,0,,103.61,0,,,0.29,,, -2028,,,,124.7098831,16.21699863,0.121307497,,,,,,170.3101828,23.4346051,0.16566371,,,,,,,70.6330324,,,,70.6330324,,,,,,,,,96.46007486,,,,96.46007486,,,,,2028,167.09,0,,48.23,0,,118.86,0,,,0.29,,, -2029,,,,141.5542143,16.84433117,0.122532419,,,,,,195.036754,24.72657118,0.168828073,,,,,,,79.73992012,,,,79.73992012,,,,,,,,,109.8675533,,,,109.8675533,,,,,2029,189.6,0,,54.93,0,,134.67,0,,,0.29,,, -2030,,,,158.8185876,17.26437329,0.123584009,,,,,,220.7997516,25.76299762,0.17181439,,,,,,,89.00592225,,,,89.00592225,,,,,,,,,123.7417221,,,,123.7417221,,,,,2030,212.75,0,,61.87,0,,150.88,0,,,0.29,,, -2031,,,,176.4266381,17.60805055,0.124505502,,,,,,247.5238708,26.72411924,0.174679312,,,,,,,98.32352519,,,,98.32352519,,,,,,,,,137.9463998,,,,137.9463998,,,,,2031,236.27,0,,68.97,0,,167.3,0,,,0.29,,, -2032,,,,194.4365316,18.00989347,0.125341217,,,,,,275.3164326,27.79256173,0.17747949,,,,,,,107.7849901,,,,107.7849901,,,,,,,,,152.6203883,,,,152.6203883,,,,,2032,260.4,0,,76.31,0,,184.09,0,,,0.29,,, -2033,,,,212.9478235,18.51129195,0.126114038,,,,,,304.3399954,29.02356281,0.180239203,,,,,,,117.4214725,,,,117.4214725,,,,,,,,,167.8159926,,,,167.8159926,,,,,2033,285.23,0,,83.91,0,,201.33,0,,,0.29,,, -2034,,,,232.1312143,19.18339076,0.126841853,,,,,,334.8737207,30.53372534,0.18298273,,,,,,,127.3225143,,,,127.3225143,,,,,,,,,183.6761342,,,,183.6761342,,,,,2034,310.99,0,,91.83,0,,219.16,0,,,0.30,,, -2035,,,,252.1444284,20.01321413,0.127540905,,,,,,367.1590715,32.28535083,0.185718164,,,,,,,137.548251,,,,137.548251,,,,,,,,,200.2903196,,,,200.2903196,,,,,2035,337.84,0,,100.15,0,,237.69,0,,,0.30,,, -2036,,,,273.0376586,20.89323016,0.128216065,,,,,,401.3486836,34.18961209,0.188469784,,,,,,,148.174276,,,,148.174276,,,,,,,,,217.8071367,,,,217.8071367,,,,,2036,365.98,0,,108.9,0,,257.08,0,,,0.30,,, -2037,,,,294.8656331,21.82797453,0.128885407,,,,,,437.5342469,36.1855633,0.191245683,,,,,,,159.1668185,,,,159.1668185,,,,,,,,,236.1785378,,,,236.1785378,,,,,2037,395.34,0,,118.09,0,,277.26,0,,,0.30,,, -2038,,,,317.8120371,22.946404,0.129584757,,,,,,476.0643804,38.53013342,0.194110605,,,,,,,170.6344082,,,,170.6344082,,,,,,,,,255.6006517,,,,255.6006517,,,,,2038,426.23,0,,127.8,0,,298.43,0,,,0.30,,, -2039,,,,342.0996809,24.28764376,0.130350227,,,,,,517.2953216,41.23094125,0.197105015,,,,,,,182.6806641,,,,182.6806641,,,,,,,,,276.2348466,,,,276.2348466,,,,,2039,458.91,0,,138.11,0,,320.79,0,,,0.30,,, -2040,,,,367.9193147,25.81963384,0.131198703,,,,,,561.5908771,44.29555552,0.200261285,,,,,,,195.3210736,,,,195.3210736,,,,,,,,,298.1374683,,,,298.1374683,,,,,2040,493.45,0,,149.06,0,,344.38,0,,,0.30,,, -2041,,,,395.3733597,27.454045,0.132118953,,,,,,609.1743542,47.58347706,0.203563229,,,,,,,208.8302996,,,,208.8302996,,,,,,,,,321.7567895,,,,321.7567895,,,,,2041,530.58,0,,160.87,0,,369.7,0,,,0.30,,, -2042,,,,424.5292055,29.15584583,0.133092933,,,,,,660.2292205,51.05486634,0.206986568,,,,,,,222.9918073,,,,222.9918073,,,,,,,,,346.7975941,,,,346.7975941,,,,,2042,569.79,0,,173.4,0,,396.39,0,,,0.30,,, -2043,,,,455.4980885,30.96888298,0.134115099,,,,,,715.0596212,54.83040069,0.210539395,,,,,,,237.9238961,,,,237.9238961,,,,,,,,,373.5027113,,,,373.5027113,,,,,2043,611.41,0,,186.74,0,,424.67,0,,,0.31,,, -2044,,,,488.3863937,32.88830518,0.135178867,,,,,,773.8425431,58.78292186,0.214189338,,,,,,,253.6630713,,,,253.6630713,,,,,,,,,401.9261771,,,,401.9261771,,,,,2044,655.58,0,,200.96,0,,454.62,0,,,0.31,,, -2045,,,,523.2789357,34.89254199,0.136273019,,,,,,836.8295588,62.98701571,0.217928304,,,,,,,270.1773825,,,,270.1773825,,,,,,,,,432.0686433,,,,432.0686433,,,,,2045,702.24,0,,216.03,0,,486.21,0,,,0.31,,, -2046,,,,560.255665,36.97672937,0.137386384,,,,,,904.2794626,67.44990377,0.2217482,,,,,,,287.6528041,,,,287.6528041,,,,,,,,,464.2853955,,,,464.2853955,,,,,2046,751.93,0,,232.14,0,,519.79,0,,,0.31,,, -2047,,,,599.3495991,39.09393401,0.138500351,,,,,,976.3386887,72.05922613,0.225616654,,,,,,,305.9166593,,,,305.9166593,,,,,,,,,498.337315,,,,498.337315,,,,,2047,804.24,0,,249.16,0,,555.08,0,,,0.31,,, -2048,,,,640.5312353,41.18163625,0.139588861,,,,,,1053.075167,76.73647818,0.229493201,,,,,,,324.9854555,,,,324.9854555,,,,,,,,,534.2973049,,,,534.2973049,,,,,2048,859.28,0,,267.15,0,,592.13,0,,,0.31,,, -2049,,,,683.731245,43.20000964,0.140624714,,,,,,1134.548711,81.47354395,0.233345469,,,,,,,345.1157195,,,,345.1157195,,,,,,,,,572.6674004,,,,572.6674004,,,,,2049,917.78,0,,286.33,0,,631.45,0,,,0.31,,, -2050,,,,728.894341,45.16309609,0.141589089,,,,,,1220.791777,86.24306611,0.237141086,,,,,,,366.6467277,,,,366.6467277,,,,,,,,,614.0798261,,,,614.0798261,,,,,2050,980.72,0,,307.04,0,,673.69,0,,,0.31,,, -2051,,,,776.0512259,47.15688488,0.142480625,,,,,,1312.004766,91.21298908,0.240880052,,,,,,,388.8754648,,,,388.8754648,,,,,,,,,657.4391562,,,,657.4391562,,,,,2051,1046.31,0,,328.72,0,,717.59,0,,,0.31,,, -2052,,,,825.2283054,49.1770795,0.143298418,,,,,,1408.341498,96.33673238,0.244554274,,,,,,,411.9908919,,,,411.9908919,,,,,,,,,703.1070871,,,,703.1070871,,,,,2052,1115.09,0,,351.55,0,,763.54,0,,,0.32,,, -2053,,,,876.3559282,51.12762275,0.144029843,,,,,,1509.864801,101.5233028,0.248147566,,,,,,,435.8605373,,,,435.8605373,,,,,,,,,750.9397294,,,,750.9397294,,,,,2053,1186.79,0,,375.46,0,,811.33,0,,,0.32,,, -2054,,,,929.3377642,52.981836,0.14466255,,,,,,1616.55184,106.6870393,0.251635649,,,,,,,460.4178611,,,,460.4178611,,,,,,,,,800.8814119,,,,800.8814119,,,,,2054,1261.3,0,,400.44,0,,860.86,0,,,0.32,,, -2055,,,,984.1170971,54.7793329,0.145192594,,,,,,1728.518525,111.9666845,0.255018523,,,,,,,485.5754205,,,,485.5754205,,,,,,,,,852.8721959,,,,852.8721959,,,,,2055,1338.44,0,,426.43,0,,912.01,0,,,0.32,,, -2056,,,,1040.706201,56.58910355,0.145624046,,,,,,1845.92072,117.4021953,0.258296188,,,,,,,511.4411142,,,,511.4411142,,,,,,,,,907.152998,,,,907.152998,,,,,2056,1418.57,0,,453.56,0,,965.01,0,,,0.32,,, -2057,,,,1099.178427,58.47222607,0.145969235,,,,,,1968.97373,123.0530101,0.261476737,,,,,,,537.9092677,,,,537.9092677,,,,,,,,,963.5644149,,,,963.5644149,,,,,2057,1501.46,0,,481.77,0,,1019.68,0,,,0.32,,, -2058,,,,1159.62224,60.4438135,0.146243967,,,,,,2097.987482,129.0137513,0.264584449,,,,,,,565.0419319,,,,565.0419319,,,,,,,,,1022.273339,,,,1022.273339,,,,,2058,1587.3,0,,511.13,0,,1076.17,0,,,0.32,,, -2059,,,,1222.162163,62.53992278,0.146466858,,,,,,2233.296252,135.3087705,0.267643603,,,,,,,592.8766658,,,,592.8766658,,,,,,,,,1083.382612,,,,1083.382612,,,,,2059,1676.23,0,,541.68,0,,1134.55,0,,,0.32,,, -2060,,,,1286.930524,64.76836097,0.146652936,,,,,,2375.155754,141.8595018,0.270662292,,,,,,,621.6608812,,,,621.6608812,,,,,,,,,1147.335766,,,,1147.335766,,,,,2060,1768.98,0,,573.66,0,,1195.32,0,,,0.32,,, +2014,,,,0,,, Not modeled TBD ,,,,,0,,, Not modeled TBD ,,,,,,,,,,,,,,,,,,,,,,,,,,,,2014,0,0,,0,0,,0,0,,,,,, +2015,,,,0,0,,,,,,,0,0,,,,,,,,0,,,,0,,,,,,,,,0,,,,0,,,,,2015,0,0,,0,0,,0,0,,,,,, +2016,,,,2.580721651,2.580721651,0.098992078,,,,,,3.197889765,3.197889765,0.122665601,,,,,,,1.582120987,,,,1.582120987,,,,,,,,,1.960478191,,,,1.960478191,,,,,2016,3.54,0,,0.98,0,,2.56,0,,,0.27669778,,, +2017,,,,6.481238206,3.900516555,0.099830102,,,,,,8.091983104,4.894093339,0.124640293,,,,,,,3.924772264,,,,3.924772264,,,,,,,,,4.900173367,,,,4.900173367,,,,,2017,8.82,0,,2.45,0,,6.37,0,,,0.277632817,,, +2018,,,,11.67298737,5.19174916,0.101191832,,,,,,14.6868971,6.594914001,0.127319076,,,,,,,7.001735219,,,,7.001735219,,,,,,,,,8.809549903,,,,8.809549903,,,,,2018,15.81,0,,4.4,0,,11.41,0,,,0.278584091,,, +2019,,,,18.01980541,6.346818047,0.103101071,,,,,,22.85090435,8.164007241,0.130742415,,,,,,,10.7522757,,,,10.7522757,,,,,,,,,13.63495431,,,,13.63495431,,,,,2019,24.39,0,,6.82,0,,17.57,0,,,0.279545736,,, +2020,,,,25.41389405,7.394088639,0.105409251,,,,,,32.48164465,9.630740305,0.134724171,,,,,,,15.06933278,,,,15.06933278,,,,,,,,,19.2602012,,,,19.2602012,,,,,2020,34.33,0,,9.63,0,,24.7,0,,,0.280513486,,, +2021,,,,33.85682492,8.442930872,0.107882791,,,,,,43.61385503,11.13221038,0.138972996,,,,,,,19.9550166,,,,19.9550166,,,,,,,,,25.70575365,,,,25.70575365,,,,,2021,45.66,0,,12.85,0,,32.81,0,,,0.281486385,,, +2022,,,,43.41818642,9.561361495,0.110307573,,,,,,56.37994202,12.76608698,0.143238007,,,,,,,25.43827867,,,,25.43827867,,,,,,,,,33.03244089,,,,33.03244089,,,,,2022,58.47,0,,16.52,0,,41.95,0,,,0.28246687,,, +2023,,,,54.11642731,10.69824089,0.112607488,,,,,,70.83970043,14.45975842,0.147405902,,,,,,,31.5211936,,,,31.5211936,,,,,,,,,41.26199794,,,,41.26199794,,,,,2023,72.78,0,,20.63,0,,52.15,0,,,0.283457618,,, +2024,,,,65.97492046,11.85849315,0.114712773,,,,,,87.07245325,16.23275282,0.151395751,,,,,,,38.20782532,,,,38.20782532,,,,,,,,,50.42596583,,,,50.42596583,,,,,2024,88.63,0,,25.21,0,,63.42,0,,,0.284462165,,, +2025,,,,78.98968561,13.01476515,0.116599176,,,,,,105.1228591,18.05040585,0.155175182,,,,,,,45.51233423,,,,45.51233423,,,,,,,,,60.56976505,,,,60.56976505,,,,,2025,106.08,0,,30.28,0,,75.8,0,,,0.285482881,,, +2026,,,,93.18389918,14.19421357,0.118317494,,,,,,125.0675747,19.9447156,0.158800846,,,,,,,53.36087211,,,,53.36087211,,,,,,,,,71.61875515,,,,71.61875515,,,,,2026,124.98,0,,35.81,0,,89.17,0,,,0.28651952,,, +2027,,,,108.4928845,15.30898529,0.119896232,,,,,,146.8755777,21.80800299,0.162313208,,,,,,,61.78503275,,,,61.78503275,,,,,,,,,83.64338751,,,,83.64338751,,,,,2027,145.43,0,,41.82,0,,103.61,0,,,0.287571159,,, +2028,,,,124.7098831,16.21699863,0.121307497,,,,,,170.3101828,23.4346051,0.16566371,,,,,,,70.6330324,,,,70.6330324,,,,,,,,,96.46007486,,,,96.46007486,,,,,2028,167.09,0,,48.23,0,,118.86,0,,,0.288638072,,, +2029,,,,141.5542143,16.84433117,0.122532419,,,,,,195.036754,24.72657118,0.168828073,,,,,,,79.73992012,,,,79.73992012,,,,,,,,,109.8675533,,,,109.8675533,,,,,2029,189.6,0,,54.93,0,,134.67,0,,,0.289720057,,, +2030,,,,158.8185876,17.26437329,0.123584009,,,,,,220.7997516,25.76299762,0.17181439,,,,,,,89.00592225,,,,89.00592225,,,,,,,,,123.7417221,,,,123.7417221,,,,,2030,212.75,0,,61.87,0,,150.88,0,,,0.290815949,,, +2031,,,,176.4266381,17.60805055,0.124505502,,,,,,247.5238708,26.72411924,0.174679312,,,,,,,98.32352519,,,,98.32352519,,,,,,,,,137.9463998,,,,137.9463998,,,,,2031,236.27,0,,68.97,0,,167.3,0,,,0.291923821,,, +2032,,,,194.4365316,18.00989347,0.125341217,,,,,,275.3164326,27.79256173,0.17747949,,,,,,,107.7849901,,,,107.7849901,,,,,,,,,152.6203883,,,,152.6203883,,,,,2032,260.4,0,,76.31,0,,184.09,0,,,0.293041324,,, +2033,,,,212.9478235,18.51129195,0.126114038,,,,,,304.3399954,29.02356281,0.180239203,,,,,,,117.4214725,,,,117.4214725,,,,,,,,,167.8159926,,,,167.8159926,,,,,2033,285.23,0,,83.91,0,,201.33,0,,,0.294166108,,, +2034,,,,232.1312143,19.18339076,0.126841853,,,,,,334.8737207,30.53372534,0.18298273,,,,,,,127.3225143,,,,127.3225143,,,,,,,,,183.6761342,,,,183.6761342,,,,,2034,310.99,0,,91.83,0,,219.16,0,,,0.295295951,,, +2035,,,,252.1444284,20.01321413,0.127540905,,,,,,367.1590715,32.28535083,0.185718164,,,,,,,137.548251,,,,137.548251,,,,,,,,,200.2903196,,,,200.2903196,,,,,2035,337.84,0,,100.15,0,,237.69,0,,,0.296428923,,, +2036,,,,273.0376586,20.89323016,0.128216065,,,,,,401.3486836,34.18961209,0.188469784,,,,,,,148.174276,,,,148.174276,,,,,,,,,217.8071367,,,,217.8071367,,,,,2036,365.98,0,,108.9,0,,257.08,0,,,0.297563673,,, +2037,,,,294.8656331,21.82797453,0.128885407,,,,,,437.5342469,36.1855633,0.191245683,,,,,,,159.1668185,,,,159.1668185,,,,,,,,,236.1785378,,,,236.1785378,,,,,2037,395.34,0,,118.09,0,,277.26,0,,,0.298698578,,, +2038,,,,317.8120371,22.946404,0.129584757,,,,,,476.0643804,38.53013342,0.194110605,,,,,,,170.6344082,,,,170.6344082,,,,,,,,,255.6006517,,,,255.6006517,,,,,2038,426.23,0,,127.8,0,,298.43,0,,,0.299831585,,, +2039,,,,342.0996809,24.28764376,0.130350227,,,,,,517.2953216,41.23094125,0.197105015,,,,,,,182.6806641,,,,182.6806641,,,,,,,,,276.2348466,,,,276.2348466,,,,,2039,458.91,0,,138.11,0,,320.79,0,,,0.300960835,,, +2040,,,,367.9193147,25.81963384,0.131198703,,,,,,561.5908771,44.29555552,0.200261285,,,,,,,195.3210736,,,,195.3210736,,,,,,,,,298.1374683,,,,298.1374683,,,,,2040,493.45,0,,149.06,0,,344.38,0,,,0.302085216,,, +2041,,,,395.3733597,27.454045,0.132118953,,,,,,609.1743542,47.58347706,0.203563229,,,,,,,208.8302996,,,,208.8302996,,,,,,,,,321.7567895,,,,321.7567895,,,,,2041,530.58,0,,160.87,0,,369.7,0,,,0.303205081,,, +2042,,,,424.5292055,29.15584583,0.133092933,,,,,,660.2292205,51.05486634,0.206986568,,,,,,,222.9918073,,,,222.9918073,,,,,,,,,346.7975941,,,,346.7975941,,,,,2042,569.79,0,,173.4,0,,396.39,0,,,0.30432064,,, +2043,,,,455.4980885,30.96888298,0.134115099,,,,,,715.0596212,54.83040069,0.210539395,,,,,,,237.9238961,,,,237.9238961,,,,,,,,,373.5027113,,,,373.5027113,,,,,2043,611.41,0,,186.74,0,,424.67,0,,,0.305430941,,, +2044,,,,488.3863937,32.88830518,0.135178867,,,,,,773.8425431,58.78292186,0.214189338,,,,,,,253.6630713,,,,253.6630713,,,,,,,,,401.9261771,,,,401.9261771,,,,,2044,655.58,0,,200.96,0,,454.62,0,,,0.306534885,,, +2045,,,,523.2789357,34.89254199,0.136273019,,,,,,836.8295588,62.98701571,0.217928304,,,,,,,270.1773825,,,,270.1773825,,,,,,,,,432.0686433,,,,432.0686433,,,,,2045,702.24,0,,216.03,0,,486.21,0,,,0.307632252,,, +2046,,,,560.255665,36.97672937,0.137386384,,,,,,904.2794626,67.44990377,0.2217482,,,,,,,287.6528041,,,,287.6528041,,,,,,,,,464.2853955,,,,464.2853955,,,,,2046,751.93,0,,232.14,0,,519.79,0,,,0.308723549,,, +2047,,,,599.3495991,39.09393401,0.138500351,,,,,,976.3386887,72.05922613,0.225616654,,,,,,,305.9166593,,,,305.9166593,,,,,,,,,498.337315,,,,498.337315,,,,,2047,804.24,0,,249.16,0,,555.08,0,,,0.309810569,,, +2048,,,,640.5312353,41.18163625,0.139588861,,,,,,1053.075167,76.73647818,0.229493201,,,,,,,324.9854555,,,,324.9854555,,,,,,,,,534.2973049,,,,534.2973049,,,,,2048,859.28,0,,267.15,0,,592.13,0,,,0.310895944,,, +2049,,,,683.731245,43.20000964,0.140624714,,,,,,1134.548711,81.47354395,0.233345469,,,,,,,345.1157195,,,,345.1157195,,,,,,,,,572.6674004,,,,572.6674004,,,,,2049,917.78,0,,286.33,0,,631.45,0,,,0.311982761,,, +2050,,,,728.894341,45.16309609,0.141589089,,,,,,1220.791777,86.24306611,0.237141086,,,,,,,366.6467277,,,,366.6467277,,,,,,,,,614.0798261,,,,614.0798261,,,,,2050,980.72,0,,307.04,0,,673.69,0,,,0.313073318,,, +2051,,,,776.0512259,47.15688488,0.142480625,,,,,,1312.004766,91.21298908,0.240880052,,,,,,,388.8754648,,,,388.8754648,,,,,,,,,657.4391562,,,,657.4391562,,,,,2051,1046.31,0,,328.72,0,,717.59,0,,,0.314167659,,, +2052,,,,825.2283054,49.1770795,0.143298418,,,,,,1408.341498,96.33673238,0.244554274,,,,,,,411.9908919,,,,411.9908919,,,,,,,,,703.1070871,,,,703.1070871,,,,,2052,1115.09,0,,351.55,0,,763.54,0,,,0.315265897,,, +2053,,,,876.3559282,51.12762275,0.144029843,,,,,,1509.864801,101.5233028,0.248147566,,,,,,,435.8605373,,,,435.8605373,,,,,,,,,750.9397294,,,,750.9397294,,,,,2053,1186.79,0,,375.46,0,,811.33,0,,,0.316370034,,, +2054,,,,929.3377642,52.981836,0.14466255,,,,,,1616.55184,106.6870393,0.251635649,,,,,,,460.4178611,,,,460.4178611,,,,,,,,,800.8814119,,,,800.8814119,,,,,2054,1261.3,0,,400.44,0,,860.86,0,,,0.317482266,,, +2055,,,,984.1170971,54.7793329,0.145192594,,,,,,1728.518525,111.9666845,0.255018523,,,,,,,485.5754205,,,,485.5754205,,,,,,,,,852.8721959,,,,852.8721959,,,,,2055,1338.44,0,,426.43,0,,912.01,0,,,0.31860354,,, +2056,,,,1040.706201,56.58910355,0.145624046,,,,,,1845.92072,117.4021953,0.258296188,,,,,,,511.4411142,,,,511.4411142,,,,,,,,,907.152998,,,,907.152998,,,,,2056,1418.57,0,,453.56,0,,965.01,0,,,0.3197337,,, +2057,,,,1099.178427,58.47222607,0.145969235,,,,,,1968.97373,123.0530101,0.261476737,,,,,,,537.9092677,,,,537.9092677,,,,,,,,,963.5644149,,,,963.5644149,,,,,2057,1501.46,0,,481.77,0,,1019.68,0,,,0.32087081,,, +2058,,,,1159.62224,60.4438135,0.146243967,,,,,,2097.987482,129.0137513,0.264584449,,,,,,,565.0419319,,,,565.0419319,,,,,,,,,1022.273339,,,,1022.273339,,,,,2058,1587.3,0,,511.13,0,,1076.17,0,,,0.322011624,,, +2059,,,,1222.162163,62.53992278,0.146466858,,,,,,2233.296252,135.3087705,0.267643603,,,,,,,592.8766658,,,,592.8766658,,,,,,,,,1083.382612,,,,1083.382612,,,,,2059,1676.23,0,,541.68,0,,1134.55,0,,,0.323151946,,, +2060,,,,1286.930524,64.76836097,0.146652936,,,,,,2375.155754,141.8595018,0.270662292,,,,,,,621.6608812,,,,621.6608812,,,,,,,,,1147.335766,,,,1147.335766,,,,,2060,1768.98,0,,573.66,0,,1195.32,0,,,0.324288309,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, @@ -189,38 +189,38 @@ Table 4: Total REF2 Electricity Generation by Economic Development Status (TWh), ,SOLUTION ,,,CONVENTIONAL,,,,,,SOLUTION,,,,CONVENTIONAL,,,,EMISSION REDUCTIONS,,,,#VALUE!,,,,#VALUE!,,,#VALUE!,,,,% Allocation to Education (Electricity),,,,,,,,,,,,,,,,,,,,,,,, ,Additional Functional Units in REF2 vs REF1,Annual Functional Units Increase,Annual Implementation Units Increase + Replacement,Additional Functional Units in REF2 vs REF2,Annual Functional Units Increase,Change in TAM,Annual Implementation Units Increase + Replacement,,,Avoided Emissions/ Million Metric Tons CO2,,,,Avoided Emissions/ Million Metric Tons CO2,,,,ALL Years,,,,,,,,,,,,,,,ALL Years,,,,,,,,,,,,,,,,,,,,,,,, ,TWh,TWh,TW,TWh,TWh,%,TW,,,Grid,Fuel,Other Direct,Indirect,Grid,Fuel,Other Direct,Indirect,Conv Total,Solution Total,,,,Conv Total,Solution Total,,Conv Total,Solution Total,,Conv Total,Solution Total,,,Conv Total,Solution Total,,,,,,,,,,,,,,,,,,,,,,, -2014,,,,,,, Not modeled TBD ,,,,,,,,,,,,,,,2014,0,0,,,,,0,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, -2015,,,,,,,,,,,,,,,,,,,,,,2015,0,0,,,,,0,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, -2016,,,,15.31950,15.31950,0.58763,,,,,,,,9.39167,,,,9.39167,,,,2016,9.39167,0,,,,,9.39167,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, +2014,,,,0,,, Not modeled TBD ,,,,,,,,,,,,,,,2014,0,0,,,,,0,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, +2015,,,,0,0,,,,,,,,,0,,,,0,,,,2015,0,0,,,,,0,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, +2016,,,,15.3195,15.3195,0.58763,,,,,,,,9.39167,,,,9.39167,,,,2016,9.39167,0,,,,,9.39167,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, 2017,,,,37.96766,22.64816,0.58481,,,,,,,,22.99166,,,,22.99166,,,,2017,22.99166,0,,,,,22.99166,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, -2018,,,,66.99520,29.02754,0.58077,,,,,,,,40.18531,,,,40.18531,,,,2018,40.18531,0,,,,,40.18531,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, -2019,,,,100.57550,33.58030,0.57545,,,,,,,,60.01261,,,,60.01261,,,,2019,60.01261,0,,,,,60.01261,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, +2018,,,,66.9952,29.02754,0.58077,,,,,,,,40.18531,,,,40.18531,,,,2018,40.18531,0,,,,,40.18531,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, +2019,,,,100.5755,33.5803,0.57545,,,,,,,,60.01261,,,,60.01261,,,,2019,60.01261,0,,,,,60.01261,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, 2020,,,,137.22245,36.64695,0.56916,,,,,,,,81.36694,,,,81.36694,,,,2020,81.36694,0,,,,,81.36694,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, -2021,,,,176.50684,39.28440,0.56243,,,,,,,,104.03211,,,,104.03211,,,,2021,104.03211,0,,,,,104.03211,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, -2022,,,,218.74600,42.23916,0.55574,,,,,,,,128.16108,,,,128.16108,,,,2022,128.16108,0,,,,,128.16108,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, +2021,,,,176.50684,39.2844,0.56243,,,,,,,,104.03211,,,,104.03211,,,,2021,104.03211,0,,,,,104.03211,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, +2022,,,,218.746,42.23916,0.55574,,,,,,,,128.16108,,,,128.16108,,,,2022,128.16108,0,,,,,128.16108,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, 2023,,,,263.96686,45.22086,0.54927,,,,,,,,153.75277,,,,153.75277,,,,2023,153.75277,0,,,,,153.75277,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, 2024,,,,312.39788,48.43102,0.54318,,,,,,,,180.91789,,,,180.91789,,,,2024,180.91789,0,,,,,180.91789,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, 2025,,,,364.13652,51.73864,0.53751,,,,,,,,209.80844,,,,209.80844,,,,2025,209.80844,0,,,,,209.80844,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, 2026,,,,419.12317,54.98665,0.53217,,,,,,,,240.00689,,,,240.00689,,,,2026,240.00689,0,,,,,240.00689,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, 2027,,,,476.95065,57.82747,0.52708,,,,,,,,271.61607,,,,271.61607,,,,2027,271.61607,0,,,,,271.61607,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, -2028,,,,536.96821,60.01756,0.52232,,,,,,,,304.12740,,,,304.12740,,,,2028,304.12740,0,,,,,304.12740,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, -2029,,,,598.33201,61.36380,0.51793,,,,,,,,337.05070,,,,337.05070,,,,2029,337.05070,0,,,,,337.05070,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, -2030,,,,660.40240,62.07039,0.51389,,,,,,,,370.10608,,,,370.10608,,,,2030,370.10608,0,,,,,370.10608,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, -2031,,,,722.82443,62.42203,0.51010,,,,,,,,402.83399,,,,402.83399,,,,2031,402.83399,0,,,,,402.83399,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, -2032,,,,785.66193,62.83750,0.50647,,,,,,,,435.52805,,,,435.52805,,,,2032,435.52805,0,,,,,435.52805,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, +2028,,,,536.96821,60.01756,0.52232,,,,,,,,304.1274,,,,304.1274,,,,2028,304.1274,0,,,,,304.1274,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, +2029,,,,598.33201,61.3638,0.51793,,,,,,,,337.0507,,,,337.0507,,,,2029,337.0507,0,,,,,337.0507,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, +2030,,,,660.4024,62.07039,0.51389,,,,,,,,370.10608,,,,370.10608,,,,2030,370.10608,0,,,,,370.10608,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, +2031,,,,722.82443,62.42203,0.5101,,,,,,,,402.83399,,,,402.83399,,,,2031,402.83399,0,,,,,402.83399,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, +2032,,,,785.66193,62.8375,0.50647,,,,,,,,435.52805,,,,435.52805,,,,2032,435.52805,0,,,,,435.52805,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, 2033,,,,849.22388,63.56194,0.50294,,,,,,,,468.27019,,,,468.27019,,,,2033,468.27019,0,,,,,468.27019,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, 2034,,,,914.06657,64.84269,0.49947,,,,,,,,501.35978,,,,501.35978,,,,2034,501.35978,0,,,,,501.35978,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, -2035,,,,980.62770,66.56113,0.49603,,,,,,,,534.94589,,,,534.94589,,,,2035,534.94589,0,,,,,534.94589,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, -2036,,,,1049.00247,68.37477,0.49260,,,,,,,,569.28111,,,,569.28111,,,,2036,569.28111,0,,,,,569.28111,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, +2035,,,,980.6277,66.56113,0.49603,,,,,,,,534.94589,,,,534.94589,,,,2035,534.94589,0,,,,,534.94589,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, +2036,,,,1049.00247,68.37477,0.4926,,,,,,,,569.28111,,,,569.28111,,,,2036,569.28111,0,,,,,569.28111,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, 2037,,,,1119.09332,70.09086,0.48915,,,,,,,,604.08031,,,,604.08031,,,,2037,604.08031,0,,,,,604.08031,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, -2038,,,,1190.94302,71.84970,0.48560,,,,,,,,639.42152,,,,639.42152,,,,2038,639.42152,0,,,,,639.42152,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, +2038,,,,1190.94302,71.8497,0.4856,,,,,,,,639.42152,,,,639.42152,,,,2038,639.42152,0,,,,,639.42152,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, 2039,,,,1264.56205,73.61903,0.48184,,,,,,,,675.27404,,,,675.27404,,,,2039,675.27404,0,,,,,675.27404,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, 2040,,,,1339.98046,75.41841,0.47783,,,,,,,,711.36907,,,,711.36907,,,,2040,711.36907,0,,,,,711.36907,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, 2041,,,,1417.29837,77.31791,0.47361,,,,,,,,748.59582,,,,748.59582,,,,2041,748.59582,0,,,,,748.59582,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, 2042,,,,1496.63449,79.33612,0.46921,,,,,,,,786.13491,,,,786.13491,,,,2042,786.13491,0,,,,,786.13491,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, -2043,,,,1578.06100,81.42651,0.46464,,,,,,,,824.28100,,,,824.28100,,,,2043,824.28100,0,,,,,824.28100,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, -2044,,,,1661.64884,83.58784,0.45992,,,,,,,,863.04400,,,,863.04400,,,,2044,863.04400,0,,,,,863.04400,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, -2045,,,,1747.49664,85.84780,0.45509,,,,,,,,902.26079,,,,902.26079,,,,2045,902.26079,0,,,,,902.26079,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, +2043,,,,1578.061,81.42651,0.46464,,,,,,,,824.281,,,,824.281,,,,2043,824.281,0,,,,,824.281,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, +2044,,,,1661.64884,83.58784,0.45992,,,,,,,,863.044,,,,863.044,,,,2044,863.044,0,,,,,863.044,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, +2045,,,,1747.49664,85.8478,0.45509,,,,,,,,902.26079,,,,902.26079,,,,2045,902.26079,0,,,,,902.26079,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, 2046,,,,1835.70953,88.21289,0.45015,,,,,,,,942.51076,,,,942.51076,,,,2046,942.51076,0,,,,,942.51076,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, 2047,,,,1926.45241,90.74289,0.44517,,,,,,,,983.28903,,,,983.28903,,,,2047,983.28903,0,,,,,983.28903,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, 2048,,,,2019.96911,93.51669,0.44021,,,,,,,,1024.86896,,,,1024.86896,,,,2048,1024.86896,0,,,,,1024.86896,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, @@ -228,11 +228,11 @@ Table 4: Total REF2 Electricity Generation by Economic Development Status (TWh), 2050,,,,2216.48198,99.92723,0.43056,,,,,,,,1114.92959,,,,1114.92959,,,,2050,1114.92959,0,,,,,1114.92959,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, 2051,,,,2319.90108,103.41909,0.42593,,,,,,,,1162.49106,,,,1162.49106,,,,2051,1162.49106,0,,,,,1162.49106,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, 2052,,,,2426.95955,107.05847,0.42143,,,,,,,,1211.64679,,,,1211.64679,,,,2052,1211.64679,0,,,,,1211.64679,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, -2053,,,,2537.92775,110.96820,0.41711,,,,,,,,1262.25260,,,,1262.25260,,,,2053,1262.25260,0,,,,,1262.25260,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, +2053,,,,2537.92775,110.9682,0.41711,,,,,,,,1262.2526,,,,1262.2526,,,,2053,1262.2526,0,,,,,1262.2526,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, 2054,,,,2653.10442,115.17667,0.41299,,,,,,,,1314.41626,,,,1314.41626,,,,2054,1314.41626,0,,,,,1314.41626,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, 2055,,,,2772.72739,119.62297,0.40908,,,,,,,,1368.09763,,,,1368.09763,,,,2055,1368.09763,0,,,,,1368.09763,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, 2056,,,,2896.99515,124.26776,0.40537,,,,,,,,1423.68944,,,,1423.68944,,,,2056,1423.68944,0,,,,,1423.68944,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, 2057,,,,3025.96427,128.96911,0.40184,,,,,,,,1480.82803,,,,1480.82803,,,,2057,1480.82803,0,,,,,1480.82803,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, -2058,,,,3159.53780,133.57353,0.39846,,,,,,,,1539.52837,,,,1539.52837,,,,2058,1539.52837,0,,,,,1539.52837,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, -2059,,,,3297.50580,137.96801,0.39518,,,,,,,,1599.63572,,,,1599.63572,,,,2059,1599.63572,0,,,,,1599.63572,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, -2060,,,,3439.70334,142.19754,0.39197,,,,,,,,1661.57300,,,,1661.57300,,,,2060,1661.57300,0,,,,,1661.57300,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, +2058,,,,3159.5378,133.57353,0.39846,,,,,,,,1539.52837,,,,1539.52837,,,,2058,1539.52837,0,,,,,1539.52837,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, +2059,,,,3297.5058,137.96801,0.39518,,,,,,,,1599.63572,,,,1599.63572,,,,2059,1599.63572,0,,,,,1599.63572,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, +2060,,,,3439.70334,142.19754,0.39197,,,,,,,,1661.573,,,,1661.573,,,,2060,1661.573,0,,,,,1661.573,0,,,0,,,,,,,,,,,,,,,,,,,,,,,, diff --git a/solution/health_and_education/tests/expected_space_heating.csv b/solution/health_and_education/tests/expected_space_heating.csv new file mode 100644 index 000000000..e02d23969 --- /dev/null +++ b/solution/health_and_education/tests/expected_space_heating.csv @@ -0,0 +1,240 @@ +,,Heating Demand,(TWh Therms),,,,,Sheet Estimates the Emissions Reduction from this Solution due to Health & Education,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,Period Start:,2020,,Total Emissions Avoided due to Health & Education (Gt CO2-eq),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,COPY VALUES FROM SOLUTION MODEL,,,,Period End:,2050,,,,2020-2050,2015-2060,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,TABLE 1: Current TAM Mix,2018,Include in SOL?,Include in CONV?,,,,LLDC,SOLUTION,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,Coal,0.070203526,N,Y,,,,,CONVENTIONAL,2.48956824,5.431708582,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,Oil products,0.125061887,N,Y,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +Keywords:,,,,Natural gas,0.368500104,N,Y,,,,MDC,SOLUTION,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +LLDC,Least and Less Developed Countries,,,Electricity (Heating & Cooling),0.139625051,N,Y,,,,,CONVENTIONAL,2.703179988,5.019903056,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +MDC,More Developed Countries,,,"Biomass, waste and other renewables",0.136908156,N,Y,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +LLDC+HighNRR+HigherEd,Least and Less Developed Countries with High Net Reproductive Rates & Higher Educational Attainment.,"NOTE: China, LAC, and EE are considered as LLDC Regions with Low NRR and are accounted for under the _mdc sheet.",,Commercial heat,0.159701277,N,Y,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +LLDC+HighNRR+LowEd,"Least and Less Developed Countries with High Net Reproductive Rates & Lower Educational Attainment. This excludes China, LAC, and EE.","NOTE: China, LAC, and EE are considered as LLDC Regions with Low NRR and are accounted for under the _mdc sheet.",,,,,,,,,TOTAL,SOLUTION,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +REF1,Reference Scenario 1 with Higher Population,,,,,,,,,,,CONVENTIONAL,5.192748228,10.45161164,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +REF2,Reference Scenario 2 with Lower Population,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +TAM,Total Addressable Market,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +LAC,Latin American Countries,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +EE,Eastern Europe,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +TWh,Terrawatt-Hours,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +NRR,Net Reproductive Rate,,,Assumptions:,,Use fixed weight?,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,Fixed weighting factor:,,N,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,% impact of educational attainment on uptake of Family Planning:,0.5,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,Twh per TWh,0.198502877,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,Fuel unit (TJ) per TWh,2885.389642,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +"Table 2: REF2, Heating Demand TAM (TWh Therms)",,,,,,,,,,,,"Table 3: REF1 ,Heating Demand TAM (TWh Therms)",,,,,,,,,,,,Table 3: REF1 Heating Demand TAM (TWh Therms),,,,,,,,,,,,Table 3: REF1 Heating Demand TAM (TWh Therms),,,,,,,,,,,,,,,,,,,,, +COPY TABLES BELOW FROM LATEST SpaceHeating_cluster SOLUTION MODELS,,,,,,,,,,,,(a) FOR POPULATIONS IN REGIONS WITH LOW EDUCATIONAL ATTAINMENT ONLY!,,,,,,,,,,,,(b) FOR REGIONS WITH HIGHER EDUCATIONAL ATTAINMENT,,,,,,,,,,,,(c) FOR ALL REGIONS,,,,,,,,,,,,,,,,,,,,, +,Regions included as LLDC+HighNRR:,N,N,Y,Y,N,,,,,,,Regions included as LLDC+HighNRR:,N,N,Y,Y,N,,,,,,,Regions included as LLDC+HighNRR:,N,N,Y,Y,N,,,,,,,,,,,,,,,,,,CHECK,,,,,,,,, +,World,OECD90,Eastern Europe,Asia (Sans Japan),Middle East and Africa,Latin America,China,India,EU,USA,,,World,OECD90,Eastern Europe,"Asia (Sans Japan, Sans China)",Middle East and Africa,Latin America,China,India,EU,USA,,,World,OECD90,Eastern Europe,Asia (Sans Japan),Middle East and Africa,Latin America,China,India,EU,USA,,,World,OECD90,Eastern Europe,Asia (Sans Japan),Middle East and Africa,Latin America,China,India,EU,USA,,WORLD,,REGIONAL TOTAL,,% error,OECD90,Eastern Europe,Asia (Sans Japan),Middle East and Africa,Latin America +2014,10669.16363,2962.263488,561.0079653,4099.311153,1033.924582,434.4641223,2772.465626,797.2777074,1198.774588,1260.245688,,2014,0,0,0,0,0,0,0,0,0,0,,2014,10669.16363,2962.263488,561.0079653,4099.311153,1033.924582,434.4641223,2772.465626,797.2777074,1198.774588,1260.245688,,2014,10669.16363,2962.263488,561.0079653,4099.311153,1033.924582,434.4641223,2772.465626,797.2777074,1198.774588,1260.245688,,10669.16363,OK,9090.971311,OK,,2962.263488,561.0079653,4099.311153,1033.924582,434.4641223 +2015,10860.45764,2984.777619,566.1629708,4189.758885,1064.708058,442.1809161,2824.584893,823.1330498,1204.604657,1271.71414,,2015,1486.888382,0,11.79111173,712.6693078,638.2428741,124.1850882,0,0,0,0,,2015,9373.569262,2984.777619,554.3718591,3477.089577,426.4651836,317.9958278,2824.584893,823.1330498,1204.604657,1271.71414,,2015,10860.45764,2984.777619,566.1629708,4189.758885,1064.708058,442.1809161,2824.584893,823.1330498,1204.604657,1271.71414,,10860.45764,OK,9247.588449,OK,,2984.777619,566.1629708,4189.758885,1064.708058,442.1809161 +2016,11054.07522,3006.994636,571.2518042,4281.946446,1095.859513,449.9415929,2875.983506,850.7394459,1210.527168,1283.255696,,2016,1537.065426,0,12.16977783,737.6158365,660.352009,126.9278026,0,0,0,0,,2016,9528.658424,3009.483042,559.5195897,3548.919559,436.7212454,323.613206,2878.536855,851.7205824,1211.39228,1284.461491,,2016,11065.72385,3009.483042,571.6893676,4286.535396,1097.073254,450.5410086,2878.536855,851.7205824,1211.39228,1284.461491,,11065.72385,OK,9415.322068,OK,,3009.483042,571.6893676,4286.535396,1097.073254,450.5410086 +2017,11249.9193,3028.903646,576.2808696,4375.819879,1127.408863,457.7401269,2926.656272,880.0766113,1216.503086,1294.851176,,2017,1590.084471,0,12.56778974,764.5422372,683.1852891,129.7891554,0,0,0,0,,2017,9688.425099,3034.988606,564.7860995,3622.595863,447.2068494,329.4232019,2932.936957,882.5231972,1218.619106,1297.798264,,2017,11278.50957,3034.988606,577.3538892,4387.1381,1130.392138,459.2123573,2932.936957,882.5231972,1218.619106,1297.798264,,11278.50957,OK,9589.085091,OK,,3034.988606,577.3538892,4387.1381,1130.392138,459.2123573 +2018,11447.85329,3050.518088,581.2545152,4471.273281,1159.400951,465.5719961,2976.542878,911.1169801,1222.488913,1306.494931,,2018,1645.897459,0,12.9828563,793.4115772,706.7465977,132.756428,0,0,0,0,,2018,9852.097194,3061.14013,570.1418443,3697.794019,457.9070395,335.4033221,2987.504601,915.4865002,1226.174645,1311.638445,,2018,11497.99465,3061.14013,583.1247006,4491.205597,1164.653637,468.1597502,2987.504601,915.4865002,1226.174645,1311.638445,,11497.99465,OK,9768.283815,OK,,3061.14013,583.1247006,4491.205597,1164.653637,468.1597502 +2019,11647.69453,3071.858542,586.1873931,4568.168642,1191.884575,473.4306054,3025.556955,943.8184722,1228.409726,1318.17211,,2019,1704.367405,0,13.41113664,824.1290298,731.0205471,135.8066915,0,0,0,0,,2019,10018.41431,3087.67559,575.5448381,3773.989234,468.7818369,341.513122,3041.774958,950.4966373,1233.872787,1325.832313,,2019,11722.78172,3087.67559,588.9559748,4598.118264,1199.802384,477.3198136,3041.774958,950.4966373,1233.872787,1325.832313,,11722.78172,OK,9951.872025,OK,,3087.67559,588.9559748,4598.118264,1199.802384,477.3198136 +2020,11848.15994,3092.900285,591.1791084,4665.706889,1225.053698,481.3111757,3073.026365,978.3222086,1234.013548,1329.895139,,2020,1765.448647,0,13.85164622,856.5787484,756.096039,138.9222138,0,0,0,0,,2020,10185.19868,3114.353914,581.0501992,3850.118218,479.85977,347.7213692,3094.772375,987.6428428,1241.375622,1340.290395,,2020,11950.64732,3114.353914,594.9018454,4706.696967,1235.955809,486.643583,3094.772375,987.6428428,1241.375622,1340.290395,,11950.64732,OK,10138.55212,OK,,3114.353914,594.9018454,4706.696967,1235.955809,486.643583 +2021,12052.64645,3113.774383,595.9626869,4765.900232,1258.503962,489.2094645,3120.759701,1014.084803,1239.883083,1341.58984,,2021,1829.005068,0,14.29752775,890.8919213,781.717434,142.0981849,0,0,0,0,,2021,10355.80942,3141.249417,586.3839013,3928.005262,490.9746264,354.0200738,3148.235267,1026.378463,1249.245964,1354.910412,,2021,12184.81449,3141.249417,600.681429,4818.897183,1272.69206,496.1182588,3148.235267,1026.378463,1249.245964,1354.910412,,12184.81449,OK,10329.63835,OK,,3141.249417,600.681429,4818.897183,1272.69206,496.1182588 +2022,12257.73481,3134.356149,600.7963627,4866.672475,1292.714626,497.1271089,3166.950136,1051.632479,1245.449322,1353.332521,,2022,1895.287333,0,14.75568423,926.9877119,808.2043219,145.3396151,0,0,0,0,,2022,10526.82393,3168.287882,591.812879,4005.762698,502.3202578,360.4179341,3200.411216,1067.276595,1256.933853,1369.796407,,2022,12422.11126,3168.287882,606.5685632,4932.750409,1310.52458,505.7575492,3200.411216,1067.276595,1256.933853,1369.796407,,12422.11126,OK,10523.88898,OK,,3168.287882,606.5685632,4932.750409,1310.52458,505.7575492 +2023,12464.6224,3154.714587,605.5935275,4968.718231,1327.563826,505.0619398,3212.23334,1090.784133,1250.910859,1365.07968,,2023,1964.315484,0,15.22373624,964.9309192,835.5146922,148.6461368,0,0,0,0,,2023,10699.49647,3195.551353,597.26162,4084.062355,513.8288607,366.9108149,3251.953043,1110.180862,1264.651183,1384.917714,,2023,12663.81195,3195.551353,612.4853563,5048.993274,1349.343553,515.5569517,3251.953043,1110.180862,1264.651183,1384.917714,,12663.81195,OK,10721.93049,OK,,3195.551353,612.4853563,5048.993274,1349.343553,515.5569517 +2024,12673.39373,3174.881829,610.3567937,5072.065596,1363.073546,513.012908,3256.653314,1131.539129,1256.274807,1376.807614,,2024,2036.180572,0,15.70160265,1004.751392,863.7081856,152.0193917,0,0,0,0,,2024,10874.00185,3223.113281,602.7508894,4162.986908,525.4866993,373.4969429,3302.960459,1155.127746,1272.431316,1400.279226,,2024,12910.18242,3223.113281,618.452492,5167.7383,1389.194885,525.5163346,3302.960459,1155.127746,1272.431316,1400.279226,,12910.18242,OK,10924.01529,OK,,3223.113281,618.452492,5167.7383,1389.194885,525.5163346 +2025,12884.11668,3194.881054,615.0890579,5176.731785,1399.270201,520.9789974,3300.247431,1173.894469,1261.546561,1388.497797,,2025,2110.950986,0,16.18924947,1046.468676,892.8336233,155.4594373,0,0,0,0,,2025,11050.42432,3251.013348,608.2962198,4242.581597,537.2843594,380.1731346,3353.506624,1202.142229,1280.29526,1415.876754,,2025,13161.3753,3251.013348,624.4854693,5289.050272,1430.117983,535.6325718,3353.506624,1202.142229,1280.29526,1415.876754,,13161.3753,OK,11130.29964,OK,,3251.013348,624.4854693,5289.050272,1430.117983,535.6325718 +2026,13096.80468,3214.72315,619.7932289,5282.698862,1436.188087,528.9585259,3343.027382,1217.841,1266.723557,1400.143012,,2026,2188.692668,0,16.6867192,1090.105776,922.9339497,158.9662233,0,0,0,0,,2026,11228.75073,3279.259284,613.9024064,4322.833843,549.2257239,386.9368756,3403.592654,1251.245358,1288.240465,1431.704822,,2026,13417.4434,3279.259284,630.5891256,5412.939619,1472.159674,545.9030989,3403.592654,1251.245358,1288.240465,1431.704822,,13417.4434,OK,11340.8508,FALSE,,3279.259284,630.5891256,5412.939619,1472.159674,545.9030989 +2027,13311.45249,3234.402998,624.4726371,5389.935163,1473.869338,536.9500847,3384.998075,1263.364988,1271.802289,1411.742722,,2027,2269.404115,0,17.19397851,1135.650693,954.0248288,162.5346148,0,0,0,0,,2027,11408.74212,3307.77915,619.5638108,4403.641767,561.3175485,393.7802832,3453.169082,1302.419501,1296.240604,1447.730003,,2027,13678.14623,3307.77915,636.7577893,5539.292459,1515.342377,556.314898,3453.169082,1302.419501,1296.240604,1447.730003,,13678.14623,FALSE,11555.48667,OK,,3307.77915,636.7577893,5539.292459,1515.342377,556.314898 +2028,13528.09117,3253.907199,629.1314784,5498.430402,1512.357844,544.9534103,3426.184667,1310.453806,1276.786873,1423.293563,,2028,2352.999623,0,17.71089742,1183.040624,986.094623,166.1534785,0,0,0,0,,2028,11589.99805,3336.436158,625.2738278,4484.861555,573.5576874,400.6884538,3502.206024,1355.60181,1304.265501,1463.88702,,2028,13942.99767,3336.436158,642.9847252,5667.90218,1559.65231,566.8419323,3502.206024,1355.60181,1304.265501,1463.88702,,13942.99767,OK,11773.81731,OK,,3336.436158,642.9847252,5667.90218,1559.65231,566.8419323 +2029,13746.75521,3273.213503,633.7744739,5608.175218,1551.701042,552.9686719,3466.615811,1359.093319,1281.683167,1434.79424,,2029,2439.338508,0,18.2373153,1232.178791,1019.114308,169.8080934,0,0,0,0,,2029,11771.9975,3365.045217,631.0215014,4566.307224,585.9436433,407.642593,3550.660512,1410.696855,1312.274683,1480.091897,,2029,14211.33601,3365.045217,649.2588167,5798.486015,1605.057951,577.4506864,3550.660512,1410.696855,1312.274683,1480.091897,,14211.33601,FALSE,11995.29869,OK,,3365.045217,649.2588167,5798.486015,1605.057951,577.4506864 +2030,13971.9491,3292.390266,638.053238,5721.918144,1591.349987,560.9930396,3508.75491,1408.566408,1286.894576,1446.142712,,2030,2528.103515,0,18.76293135,1283.17509,1052.678825,173.4866676,0,0,0,0,,2030,11959.2196,3393.552553,636.4467706,4650.517967,598.2551665,414.6265625,3601.00621,1466.89745,1320.645446,1496.176153,,2030,14487.32312,3393.552553,655.209702,5933.693058,1650.933992,588.1132301,3601.00621,1466.89745,1320.645446,1496.176153,,14487.32312,OK,12221.50253,OK,,3393.552553,655.209702,5933.693058,1650.933992,588.1132301 +2031,14190.27602,3311.174195,643.0320742,5831.36716,1633.126714,569.0338571,3545.307406,1460.97425,1291.225014,1457.639364,,2031,2619.929709,0,19.31888894,1335.436381,1087.988073,177.1863661,0,0,0,0,,2031,12136.92207,3421.62829,642.6052411,4729.398519,611.1665214,421.6386029,3645.710955,1526.373602,1328.131779,1512.424342,,2031,14756.85178,3421.62829,661.9241301,6064.8349,1699.154595,598.824969,3645.710955,1526.373602,1328.131779,1512.424342,,14756.85178,FALSE,12446.36688,OK,,3421.62829,661.9241301,6064.8349,1699.154595,598.824969 +2032,14415.17514,3329.824826,647.656042,5944.785154,1675.285106,577.0817327,3583.600794,1514.196034,1295.870522,1468.97893,,2032,2714.233088,0,19.87483953,1389.540612,1123.910809,180.9068282,0,0,0,0,,2032,12319.76893,3449.550409,648.4449623,4811.003598,624.0246395,428.6741992,3692.300942,1586.947718,1335.961152,1528.527838,,2032,15034.00202,3449.550409,668.3198019,6200.54421,1747.935448,609.5810274,3692.300942,1586.947718,1335.961152,1528.527838,,15034.00202,OK,12675.9309,OK,,3449.550409,668.3198019,6200.54421,1747.935448,609.5810274 +2033,14642.20161,3348.242855,652.2888431,6059.393256,1718.465208,585.1376728,3621.224618,1568.921609,1300.429359,1480.269195,,2033,2811.3233,0,20.44335347,1445.331073,1160.89411,184.6547633,0,0,0,0,,2033,12503.15183,3477.247525,654.3298335,4892.754766,637.0891771,435.7419473,3738.365659,1649.387974,1343.725715,1544.610436,,2033,15314.47513,3477.247525,674.773187,6338.085839,1797.983287,620.3967106,3738.365659,1649.387974,1343.725715,1544.610436,,15314.47513,FALSE,12908.48655,OK,,3477.247525,674.773187,6338.085839,1797.983287,620.3967106 +2034,14871.38455,3366.413457,656.9426803,6175.170142,1762.714121,593.1996654,3658.207777,1625.136111,1304.897574,1491.519608,,2034,2911.341617,0,21.02739107,1502.868657,1199.005196,188.4403721,0,0,0,0,,2034,12687.47241,3504.770357,660.2760449,4974.81047,650.4070251,442.8539783,3784.037668,1713.759949,1351.43498,1560.709844,,2034,15598.81402,3504.770357,681.303436,6477.679128,1849.412221,631.2943505,3784.037668,1713.759949,1351.43498,1560.709844,,15598.81402,OK,13144.45949,FALSE,,3504.770357,681.303436,6477.679128,1849.412221,631.2943505 +2035,15102.74903,3384.324713,661.6279528,6292.095814,1808.075896,601.2659534,3694.574087,1682.826471,1309.272086,1502.737112,,2035,3014.424172,0,21.62946761,1562.214773,1238.307719,192.2722128,0,0,0,0,,2035,12873.05716,3532.160867,666.2965773,5057.299211,664.0178783,450.0204213,3829.41848,1780.128875,1359.095666,1576.857296,,2035,15887.48133,3532.160867,687.926045,6619.513983,1902.325597,642.2926341,3829.41848,1780.128875,1359.095666,1576.857296,,15887.48133,OK,13384.21913,OK,,3532.160867,687.926045,6619.513983,1902.325597,642.2926341 +2036,15336.31214,3401.969054,666.3503069,6410.150194,1854.591022,609.3353268,3730.340463,1741.98062,1313.551724,1513.925191,,2036,3120.639012,0,22.2506543,1623.38878,1278.847028,196.1525501,0,0,0,0,,2036,13059.99409,3559.419063,672.3979977,5140.254639,677.9433728,457.243422,3874.548126,1848.517567,1366.707195,1593.05974,,2036,16180.6331,3559.419063,694.648652,6763.643419,1956.7904,653.3959721,3874.548126,1848.517567,1366.707195,1593.05974,,16180.6331,FALSE,13627.89751,OK,,3559.419063,694.648652,6763.643419,1956.7904,653.3959721 +2037,15572.08689,3419.344084,671.1134905,6529.317587,1902.294507,617.4070325,3765.515157,1802.590867,1317.736931,1525.082311,,2037,3230.054378,0,22.8914304,1686.415542,1320.665921,200.0814843,0,0,0,0,,2037,13248.27536,3586.534654,678.5808132,5223.667191,692.1949669,464.5226677,3919.405129,1918.953902,1374.262766,1609.315377,,2037,16478.32974,3586.534654,701.4722436,6910.082733,2012.860888,664.604152,3919.405129,1918.953902,1374.262766,1609.315377,,16478.32974,OK,13875.55467,OK,,3586.534654,701.4722436,6910.082733,2012.860888,664.604152 +2038,15810.08796,3436.449856,675.9235657,6649.587315,1951.217749,625.4803545,3800.101579,1864.654186,1321.827998,1536.204555,,2038,3342.82479,0,23.55308123,1751.382526,1363.825624,204.0635589,0,0,0,0,,2038,13438.03215,3613.533994,684.8451137,5307.57593,706.7903705,471.8639094,3963.95611,1991.527247,1381.756985,1625.639771,,2038,16780.85694,3613.533994,708.3981949,7058.958456,2070.615994,675.9274682,3963.95611,1991.527247,1381.756985,1625.639771,,16780.85694,OK,14127.43411,OK,,3613.533994,708.3981949,7058.958456,2070.615994,675.9274682 +2039,16050.32816,3453.289193,680.7863807,6770.951439,2001.389021,633.5547512,3834.0979,1928.170696,1325.825784,1547.285665,,2039,3459.136363,0,24.23688443,1818.403054,1408.392596,208.1038294,0,0,0,0,,2039,13629.39538,3640.451399,691.1886756,5392.014498,721.7449487,479.2737724,4008.138745,2066.351822,1389.183117,1642.051071,,2039,17088.53174,3640.451399,715.42556,7210.417552,2130.137544,687.3776017,4008.138745,2066.351822,1389.183117,1642.051071,,17088.53174,OK,14383.80966,OK,,3640.451399,715.42556,7210.417552,2130.137544,687.3776017 +2040,16286.29506,3469.862659,686.2369991,6889.258302,2053.730237,641.6336083,3863.847504,1994.19394,1329.711906,1558.47401,,2040,3579.513979,0,24.96317172,1887.278721,1455.06386,212.2082266,0,0,0,0,,2040,13815.16145,3667.318906,698.150666,5472.888035,737.3941312,486.7612488,4048.072291,2144.66663,1396.518341,1658.73019,,2040,17394.67543,3667.318906,723.1138377,7360.166757,2192.457991,698.9694754,4048.072291,2144.66663,1396.518341,1658.73019,,17394.67543,OK,14642.02697,OK,,3667.318906,723.1138377,7360.166757,2192.457991,698.9694754 +2041,16537.56396,3486.173485,690.688332,7016.908861,2105.600641,649.7038274,3900.317765,2059.551319,1333.543201,1569.313365,,2041,3703.039662,0,25.6750445,1958.987202,1502.001454,216.3759616,0,0,0,0,,2041,14017.36256,3694.160421,704.1152909,5562.580876,752.7933578,494.3212111,4095.248186,2223.13481,1403.822769,1675.204514,,2041,17720.40222,3694.160421,729.7903354,7521.568078,2254.794812,710.6971727,4095.248186,2223.13481,1403.822769,1675.204514,,17720.40222,OK,14911.01082,OK,,3694.160421,729.7903354,7521.568078,2254.794812,710.6971727 +2042,16784.57163,3502.215212,695.7334016,7141.458995,2159.712993,657.7763607,3932.546349,2127.399169,1337.262436,1580.264572,,2042,3830.8732,0,26.43082879,2032.671139,1551.15746,220.6137726,0,0,0,0,,2042,14214.11609,3720.994346,710.7080293,5648.743964,768.9197452,501.9659528,4138.186541,2305.208831,1411.044853,1691.977603,,2042,18044.98929,3720.994346,737.1388581,7681.415103,2320.077205,722.5797254,4138.186541,2305.208831,1411.044853,1691.977603,,18044.98929,OK,15182.20524,OK,,3720.994346,737.1388581,7681.415103,2320.077205,722.5797254 +2043,17033.83213,3517.984858,700.8416851,7267.018811,2215.20843,665.8465514,3964.192994,2196.671574,1340.885636,1591.181322,,2043,3962.786523,0,27.21103457,2108.689224,1601.962358,224.9239064,0,0,0,0,,2043,14412.807,3747.860755,717.3980931,5735.495922,785.4673684,509.6964399,4180.677614,2389.813352,1418.217306,1708.917649,,2043,18375.59352,3747.860755,744.6091277,7844.185145,2387.429726,734.6203463,4180.677614,2389.813352,1418.217306,1708.917649,,18375.59352,OK,15458.7051,OK,,3747.860755,744.6091277,7844.185145,2387.429726,734.6203463 +2044,17285.33164,3533.477251,706.0114844,7393.554359,2272.119763,673.9138876,3995.262365,2267.356425,1344.40912,1602.071415,,2044,4098.895781,0,28.01506421,2187.090751,1654.48004,229.3099256,0,0,0,0,,2044,14613.49524,3774.804025,724.1966847,5822.824999,802.4496459,517.5165485,4222.670506,2477.001958,1425.357783,1726.05977,,2044,18712.39102,3774.804025,752.2117489,8009.91575,2456.929685,746.8264741,4222.670506,2477.001958,1425.357783,1726.05977,,18712.39102,OK,15740.68768,OK,,3774.804025,752.2117489,8009.91575,2456.929685,746.8264741 +2045,17539.05835,3548.689557,711.2413017,7521.032805,2330.48056,681.9776399,4025.754655,2339.442569,1347.830621,1612.941462,,2045,4239.317546,0,28.84250469,2267.926148,1708.774025,233.7748685,0,0,0,0,,2045,14816.22958,3801.864342,731.1142954,5910.719054,819.8789522,525.4297094,4264.129497,2566.824156,1432.483397,1743.433945,,2045,19055.54712,3801.864342,759.9568001,8178.645201,2528.652977,759.2045779,4264.129497,2566.824156,1432.483397,1743.433945,,19055.54712,OK,16028.3239,OK,,3801.864342,759.9568001,8178.645201,2528.652977,759.2045779 +2046,17795.01029,3563.619741,716.5321219,7649.427184,2390.325464,690.0368663,4055.667963,2412.92004,1351.149896,1623.795095,,2046,4384.178741,0,29.69377095,2351.257425,1764.906146,238.3213991,0,0,0,0,,2046,15021.05659,3829.06344,738.1573891,5999.17897,837.7682963,533.4391305,4305.042635,2659.338527,1439.602358,1761.057659,,2046,19405.23533,3829.06344,767.8511601,8350.436395,2602.674442,771.7605296,4305.042635,2659.338527,1439.602358,1761.057659,,19405.23533,OK,16321.78597,OK,,3829.06344,767.8511601,8350.436395,2602.674442,771.7605296 +2047,18053.18648,3578.271572,721.8842157,7778.711445,2451.690337,698.0902408,4084.990695,2487.78147,1354.368961,1634.634349,,2047,4533.602675,0,30.56931416,2437.144939,1822.937272,242.95115,0,0,0,0,,2047,15228.00002,3856.423089,745.3314178,6088.200949,856.1282697,541.5471904,4345.426607,2754.589783,1446.724565,1778.942474,,2047,19761.60269,3856.423089,775.9007319,8525.345888,2679.065542,784.4983404,4345.426607,2754.589783,1446.724565,1778.942474,,19761.60269,OK,16621.23359,OK,,3856.423089,775.9007319,8525.345888,2679.065542,784.4983404 +2048,18313.57633,3592.655346,727.2940475,7908.853586,2514.611647,706.1361489,4113.699985,2564.021224,1357.490685,1645.462527,,2048,4687.693839,0,31.46876454,2525.631372,1882.929118,247.6645834,0,0,0,0,,2048,15437.05176,3883.983201,752.6451823,6177.75947,874.9652535,549.7551962,4385.312764,2852.58992,1453.872025,1797.104787,,2048,20124.7456,3883.983201,784.1139468,8703.390843,2757.894372,797.4197796,4385.312764,2852.58992,1453.872025,1797.104787,,20124.7456,OK,16926.80214,OK,,3883.983201,784.1139468,8703.390843,2757.894372,797.4197796 +2049,18576.16702,3606.785472,732.7566487,8039.819845,2579.126543,714.172712,4141.765459,2641.635063,1360.519195,1656.282738,,2049,4846.546489,0,32.3915364,2616.750436,1944.943251,252.461266,0,0,0,0,,2049,15648.18465,3911.788045,760.1081418,6267.820742,894.2832572,558.0636579,4424.751196,2953.330844,1461.070917,1815.559558,,2049,20494.73114,3911.788045,792.4996782,8884.571178,2839.226508,810.5249239,4424.751196,2953.330844,1461.070917,1815.559558,,20494.73114,OK,17238.61033,OK,,3911.788045,792.4996782,8884.571178,2839.226508,810.5249239 +2050,18845.17104,3620.588027,737.9144873,8174.336365,2644.677361,722.1954336,4171.596905,2719.913456,1363.084177,1666.996881,,2050,5010.0047,0,33.32134328,2710.753884,2008.589603,257.3398702,0,0,0,0,,2050,15866.303,3939.77915,767.3612917,6361.200526,913.8816343,566.4709372,4466.400654,3056.01624,1467.940442,1834.207374,,2050,20876.3077,3939.77915,800.682635,9071.95441,2922.471237,823.8108074,4466.400654,3056.01624,1467.940442,1834.207374,,20876.3077,OK,17558.69824,OK,,3939.77915,800.682635,9071.95441,2922.471237,823.8108074 +2051,19107.92511,3634.322763,743.8273091,8304.099366,2713.084723,730.2108719,4195.879841,2800.95966,1366.310734,1677.910946,,2051,5178.928243,0,34.30639938,2807.02964,2075.287939,262.3042652,0,0,0,0,,2051,16076.63837,3968.257148,775.5153488,6449.357664,934.3864946,574.9848613,4502.44725,3163.046525,1475.703463,1853.394037,,2051,21255.56661,3968.257148,809.8217482,9256.387304,3009.674434,837.2891266,4502.44725,3163.046525,1475.703463,1853.394037,,21255.56661,OK,17881.42976,OK,,3968.257148,809.8217482,9256.387304,3009.674434,837.2891266 +2052,19377.09809,3647.733841,749.43452,8437.358364,2782.600793,738.2096128,4221.91617,2882.651414,1369.078467,1688.724161,,2052,5352.673286,0,35.29943373,2906.275802,2143.745743,267.3523065,0,0,0,0,,2052,16293.9779,3996.947368,783.4730037,6540.81892,955.1910288,583.6002544,4540.743666,3272.076706,1483.158435,1872.790179,,2052,21646.65118,3996.947368,818.7724374,9447.094722,3098.936772,850.952561,4540.743666,3272.076706,1483.158435,1872.790179,,21646.65118,OK,18212.70386,OK,,3996.947368,818.7724374,9447.094722,3098.936772,850.952561 +2053,19648.44524,3660.9069,755.0880696,8571.308789,2853.85634,746.1926503,4247.229288,2965.678312,1371.764545,1699.544907,,2053,5531.570735,0,36.31683375,3008.29958,2214.470702,272.4836191,0,0,0,0,,2053,16513.33733,4025.930207,791.606128,6632.718531,976.5052852,592.3184362,4578.76257,3383.880762,1490.715074,1892.505108,,2053,22044.90807,4025.930207,827.9229617,9641.018111,3190.975987,864.8020553,4578.76257,3383.880762,1490.715074,1892.505108,,22044.90807,OK,18550.64932,OK,,4025.930207,827.9229617,9641.018111,3190.975987,864.8020553 +2054,19921.93821,3673.840762,760.7863521,8705.900227,2926.887373,754.1582278,4271.770235,3050.024009,1374.37211,1710.38148,,2054,5715.690475,0,37.35909671,3113.1191,2287.516155,277.6961231,0,0,0,0,,2054,16734.63953,4055.179446,799.9174217,6725.033577,998.3324576,601.1378281,4616.609316,3498.42704,1498.376711,1912.530761,,2054,22450.33,4055.179446,837.2765184,9838.152678,3285.848613,878.8339512,4616.609316,3498.42704,1498.376711,1912.530761,,22450.33,OK,18895.29121,OK,,4055.179446,837.2765184,9838.152678,3285.848613,878.8339512 +2055,20197.56249,3686.534507,766.5284428,8841.090646,3001.730436,762.1046269,4295.505775,3135.673485,1376.904483,1721.239773,,2055,5905.106472,0,38.4268788,3220.752628,2362.938746,282.9882188,0,0,0,0,,2055,16957.82866,4084.670995,808.40981,6817.750206,1020.677665,610.0572259,4654.371597,3615.696773,1506.146098,1932.858629,,2055,22862.93513,4084.670995,846.8366888,10038.50283,3383.616411,893.0454447,4654.371597,3615.696773,1506.146098,1932.858629,,22862.93513,OK,19246.67237,OK,,4084.670995,846.8366888,10038.50283,3383.616411,893.0454447 +2056,20475.3211,3698.990161,772.3147168,8976.850087,3078.422798,770.0302978,4318.422143,3222.616037,1379.365341,1732.122165,,2056,6099.922267,0,39.52082416,3331.23715,2440.80429,288.3600035,0,0,0,0,,2056,17182.89928,4114.402837,817.0891213,6910.865607,1043.550115,619.0771122,4692.104869,3735.700612,1514.030494,1953.488129,,2056,23282.82155,4114.402837,856.6099455,10242.10276,3484.354405,907.4371158,4692.104869,3735.700612,1514.030494,1953.488129,,23282.82155,OK,19604.90706,OK,,4114.402837,856.6099455,10242.10276,3484.354405,907.4371158 +2057,20755.24068,3711.20916,778.1462425,9113.163507,3157.002469,777.9336692,4340.534932,3310.842454,1381.758463,1743.027312,,2057,6300.237994,0,40.64195666,3444.602685,2521.181363,293.8119884,0,0,0,0,,2057,17409.87017,4144.370986,825.960424,7004.38901,1066.96153,628.1981037,4729.82427,3858.47276,1522.034583,1974.416137,,2057,23710.10817,4144.370986,866.6023807,10448.9917,3588.142893,922.0100921,4729.82427,3858.47276,1522.034583,1974.416137,,23710.10817,OK,19970.11805,OK,,4144.370986,866.6023807,10448.9917,3588.142893,922.0100921 +2058,21037.36197,3723.188971,784.0240031,9250.023481,3237.507833,785.8129791,4361.879019,3400.340865,1384.087554,1753.952381,,2058,6506.11667,0,41.79184109,3560.848193,2604.133153,299.3434835,0,0,0,0,,2058,17638.74134,4174.542559,835.0244961,7098.336517,1090.923151,637.4192729,4767.525414,3984.048823,1530.153709,1995.626395,,2058,24144.85801,4174.542559,876.8163372,10659.18471,3695.056304,936.7627564,4767.525414,3984.048823,1530.153709,1995.626395,,24144.85801,FALSE,20342.36267,OK,,4174.542559,876.8163372,10659.18471,3695.056304,936.7627564 +2059,21321.73945,3734.925729,789.9493625,9387.431319,3319.977713,793.6664151,4382.507333,3491.099347,1386.356311,1764.892536,,2059,6717.607768,0,42.97237883,3679.958918,2689.722825,304.953647,0,0,0,0,,2059,17869.51883,4204.875181,844.2801382,7192.732228,1115.447389,646.7392676,4805.176222,4112.477938,1538.378841,2017.097653,,2059,24587.1266,4204.875181,887.252517,10872.69115,3805.170214,951.6929147,4805.176222,4112.477938,1538.378841,2017.097653,,24587.1266,OK,20721.68197,OK,,4204.875181,887.252517,10872.69115,3805.170214,951.6929147 +2060,21607.39916,3746.459569,796.0128216,9524.696407,3404.599666,801.4929156,4401.857177,3583.282817,1388.758975,1775.868678,,2060,6934.842379,0,44.19026788,3801.871193,2778.138477,310.6424409,0,0,0,0,,2060,18100.96454,4235.381321,853.822157,7286.857295,1140.597624,656.1579193,4842.077116,4244.023711,1546.914217,2038.841141,,2060,25035.80692,4235.381321,898.0124249,11088.72849,3918.736101,966.8003601,4842.077116,4244.023711,1546.914217,2038.841141,,25035.80692,OK,21107.6587,OK,,4235.381321,898.0124249,11088.72849,3918.736101,966.8003601 +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +Table 4: Total REF2 Heating Demand by Economic Development Status (TWh Therms),,,,,,,Table 5: Total REF1 Heating Demand by Economic Development Status (TWh Therms),,,,,,,,,,,,,,,"Table 6: Change in Heating Demand by MDC vs. LLDC Regions, REF1-REF2 (TWh Therms)",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,LLDC+HighNRR,China,MDC + LAC + EE,Total Electricity Demand in Countries with Higher Educational Attainment (TWh), --> % LLDC,,,"LLDC with low educational attainment, excluding China","MDC + EE + LAC with low educational attainment, excluding China",China,"LLDC with higher educational attainment, excluding China",MDC + EE + LAC with higher educational attainment,,"Total Electricity Demand in Countries with Low Educational Attainment (TWh), exluding China", --> % LLDC,Total Electricity Demand in Countries with Higher Educational Attainment (TWh), --> % LLDC,Total Electricity Demand (TWh), --> % LLDC,,,LLDC,China,MDC + EE +LAC,Total change in REF1-REF2,% LLDC with higher educational attainment,% LLDC with Low Educational Attainment,% LLDC,% MDC + LAC + EE + China,,"% LLDC with low educational attainment, TWh)","% LLDC with higher educational attainment, TWh)",,,,,,,,,,,,,,,,,,,,,,,,, +2014,2360.77011,2772.465626,3957.735576,9090.971311,0.259682935,,2014,0,0,2772.465626,2360.77011,3957.735576,,0,,9090.971311,0.259682935,9090.971311,0,,,0,0,0,0,,0,,,,0,1,,,,,,,,,,,,,,,,,,,,,,,,, +2015,2429.88205,2824.584893,3993.121506,9247.588449,0.262758455,,2015,1350.912182,135.9762,2824.584893,1078.969868,3857.145306,,1486.888382,0.908549827,7760.700067,0.139029966,9247.588449,0.160786608,,,0,0,0,0,0,0,0,1,,0.555957925,0.444042075,,,,,,,,,,,,,,,,,,,,,,,,, +2016,2501.822452,2875.983506,4028.188034,9405.993992,0.265981719,,2016,1397.967846,139.0975805,2878.536855,1107.10395,3892.615838,,1537.065426,0.90950445,7878.256642,0.140526515,9415.322068,0.163251497,,,3.249343,2.553348088,3.525384819,9.328075906,0.15394717,0.194392941,0.348340111,0.651659889,,0.558055002,0.441944998,,,,,,,,,,,,,,,,,,,,,,,,, +2017,2576.57247,2926.656272,4062.924642,9566.153384,0.269342584,,2017,1447.727526,142.3569452,2932.936957,1136.865755,3929.197907,,1590.084471,0.910472086,7999.000619,0.142125974,9589.085091,0.165822334,,,8.020811501,6.280685516,8.63021015,22.93170717,0.153850494,0.195918995,0.349769489,0.650230511,,0.560137464,0.439862536,,,,,,,,,,,,,,,,,,,,,,,,, +2018,2654.131354,2976.542878,4097.344599,9728.018831,0.272833698,,2018,1500.158175,145.7392843,2987.504601,1168.196458,3966.685297,,1645.897459,0.911452999,8122.386356,0.143824291,9768.283815,0.168494025,,,14.22327904,10.96172277,15.0799818,40.26498361,0.154648083,0.19859381,0.353241893,0.646758107,,0.562203448,0.437796552,,,,,,,,,,,,,,,,,,,,,,,,, +2019,2734.496263,3025.556955,4131.47654,9891.529758,0.276448267,,2019,1555.149577,149.2178282,3041.774958,1200.996113,4004.73355,,1704.367405,0.912449729,8247.50462,0.145619332,9951.872025,0.171260985,,,21.64942653,16.21800351,22.47483761,60.34226765,0.156337874,0.202439272,0.358777145,0.641222855,,0.564247958,0.435752042,,,,,,,,,,,,,,,,,,,,,,,,, +2020,2817.734222,3073.026365,4165.390569,10056.15116,0.280200066,,2020,1612.674787,152.77386,3094.772375,1235.205613,4043.125483,,1765.448647,0.913464569,8373.103471,0.147520644,10138.55212,0.174132226,,,30.14617905,21.74601016,30.50877353,82.40096274,0.158678285,0.207169128,0.365847413,0.634152587,,0.56627195,0.43372805,,,,,,,,,,,,,,,,,,,,,,,,, +2021,2903.644494,3120.759701,4198.946534,10223.35073,0.284020824,,2021,1672.609355,156.3957127,3148.235267,1270.744621,4081.653392,,1829.005068,0.914491373,8500.63328,0.14948823,10329.63835,0.177063805,,,39.70948296,27.47556567,39.10257035,106.287619,0.16129739,0.212306642,0.373604032,0.626395968,,0.568266464,0.431733536,,,,,,,,,,,,,,,,,,,,,,,,, +2022,2992.436965,3166.950136,4232.27962,10391.66672,0.287965063,,2022,1735.192034,160.0952993,3200.411216,1307.671739,4120.518695,,1895.287333,0.9155298,8628.60165,0.15155083,10523.88898,0.180093817,,,50.42680801,33.46108005,48.33437387,132.2222619,0.1638978,0.217481306,0.381379106,0.618620894,,0.570249661,0.429750339,,,,,,,,,,,,,,,,,,,,,,,,, +2023,3084.048718,3212.23334,4265.370054,10561.65211,0.292004384,,2023,1800.445611,163.869873,3251.953043,1345.938173,4159.723788,,1964.315484,0.916576602,8757.615004,0.153687753,10721.93049,0.183205393,,,62.33506697,39.71970301,58.22360668,160.2783767,0.166368427,0.222549082,0.388917509,0.611082491,,0.572226955,0.427773045,,,,,,,,,,,,,,,,,,,,,,,,, +2024,3178.485827,3256.653314,4298.251531,10733.39067,0.296130638,,2024,1868.459577,167.7209944,3302.960459,1385.513149,4199.361113,,2036.180572,0.917629607,8887.834721,0.155888717,10924.01529,0.186394885,,,75.48689852,46.30714485,68.83057686,190.6246202,0.168612332,0.227385302,0.395997634,0.604002366,,0.57420874,0.42579126,,,,,,,,,,,,,,,,,,,,,,,,, +2025,3275.754554,3300.247431,4330.949109,10906.95109,0.300336412,,2025,1939.302299,171.6486867,3353.506624,1426.359332,4239.482702,,2110.950986,0.91868656,9019.348658,0.158144383,11130.29964,0.189658055,,,89.90707704,53.25919288,80.18228021,223.3485501,0.170596154,0.23194542,0.402541575,0.597458425,,0.576202397,0.423797603,,,,,,,,,,,,,,,,,,,,,,,,, +2026,3375.859568,3343.027382,4363.474905,11082.36185,0.304615533,,2026,2013.039725,175.6529425,3403.592654,1468.466913,4280.098566,,2188.692668,0.919745268,9152.158133,0.160450343,11340.8508,0.192991929,,,105.6470709,60.56527221,92.27660371,258.4889468,0.17239014,0.236320067,0.408710207,0.591289793,,0.57820936,0.42179064,,,,,,,,,,,,,,,,,,,,,,,,, +2027,3478.806426,3384.998075,4395.825719,11259.63022,0.30896276,,2027,2089.675522,179.7285933,3453.169082,1511.790233,4321.123244,,2269.404115,0.920803619,9286.082559,0.162801722,11555.48667,0.196391911,,,122.6593287,68.1710067,105.0261175,295.8564529,0.174033071,0.240557612,0.414590682,0.585409318,,0.58022918,0.41977082,,,,,,,,,,,,,,,,,,,,,,,,, +2028,3584.603579,3426.184667,4427.992088,11438.78033,0.313372884,,2028,2169.135247,183.864376,3502.206024,1556.213219,4362.398439,,2352.999623,0.921859581,9420.817682,0.165188763,11773.81731,0.19985019,,,140.7448869,76.02135718,118.2707277,335.0369718,0.175485844,0.244601784,0.420087628,0.579912372,,0.582263718,0.417736282,,,,,,,,,,,,,,,,,,,,,,,,, +2029,3693.260448,3466.615811,4459.956649,11619.83291,0.317841098,,2029,2251.2931,188.0454087,3550.660512,1601.590355,4403.709311,,2439.338508,0.922911311,9555.960178,0.167601196,11995.29869,0.20335788,,,159.6230062,84.044701,131.7980708,375.465778,0.176722033,0.24841127,0.425133302,0.574866698,,0.584313833,0.415686167,,,,,,,,,,,,,,,,,,,,,,,,, +2030,3804.513221,3508.75491,4491.436543,11804.70467,0.322287878,,2030,2335.853916,192.249599,3601.00621,1647.766924,4444.625886,,2528.103515,0.923955013,9693.39902,0.169988558,12221.50253,0.206857013,,,179.1076185,92.25129996,145.4389423,416.7978607,0.177748671,0.251974308,0.429722979,0.570277021,,0.586364519,0.413635481,,,,,,,,,,,,,,,,,,,,,,,,, +2031,3919.186468,3545.307406,4523.240126,11987.734,0.326933052,,2031,2423.424454,196.505255,3645.710955,1694.854086,4485.872134,,2619.929709,0.924995982,9826.437175,0.172479003,12446.36688,0.210497548,,,199.0920725,100.4035491,159.1372634,458.632885,0.178650968,0.255448023,0.434098991,0.565901009,,0.588455693,0.411544307,,,,,,,,,,,,,,,,,,,,,,,,, +2032,4036.469466,3583.600794,4554.562601,12174.63286,0.331547531,,2032,2513.45142,200.7816678,3692.300942,1742.727295,4526.66957,,2714.233088,0.926026372,9961.697808,0.174942799,12675.9309,0.214124951,,,219.7092502,108.7001486,172.888637,501.2980357,0.179457625,0.258823067,0.438280692,0.561719308,,0.590541795,0.409458205,,,,,,,,,,,,,,,,,,,,,,,,, +2033,4156.633846,3621.224618,4585.669371,12363.52783,0.336201277,,2033,2606.225183,205.0981167,3738.365659,1791.478284,4567.319305,,2811.3233,0.927045702,10097.16325,0.17742392,12908.48655,0.217788762,,,241.0696206,117.1410418,186.7480515,544.9587139,0.180204026,0.262159064,0.44236309,0.55763691,,0.592633224,0.407366776,,,,,,,,,,,,,,,,,,,,,,,,, +2034,4279.676486,3658.207777,4616.555803,12554.44007,0.340889475,,2034,2701.873854,209.4677632,3784.037668,1841.179827,4607.90038,,2911.341617,0.928051122,10233.11788,0.179923641,13144.45949,0.22148812,,,263.3771947,125.8298914,200.812341,590.0194271,0.180909009,0.265478317,0.446387327,0.553612673,,0.594726376,0.405273624,,,,,,,,,,,,,,,,,,,,,,,,, +2035,4405.597622,3694.574087,4647.218619,12747.39033,0.345607807,,2035,2800.522491,213.9016804,3829.41848,1891.898609,4648.477865,,3014.424172,0.929040617,10369.79495,0.182443203,13384.21913,0.225222267,,,286.8234783,134.8443922,215.1609263,636.8287968,0.181590399,0.268802987,0.450393386,0.549606614,,0.596818238,0.403181762,,,,,,,,,,,,,,,,,,,,,,,,, +2036,4534.400753,3730.340463,4677.654688,12942.3959,0.350352499,,2036,2902.235808,218.4032044,3874.548126,1943.649886,4689.060483,,3120.639012,0.930013307,10507.25849,0.184981638,13627.89751,0.228989029,,,311.4849406,144.2076636,229.8089993,685.5016035,0.182252482,0.272137324,0.454389806,0.545610194,,0.598907195,0.401092805,,,,,,,,,,,,,,,,,,,,,,,,, +2037,4666.096937,3765.515157,4707.864607,13139.4767,0.355120454,,2037,3007.081463,222.9729147,3919.405129,1996.457029,4729.638135,,3230.054378,0.9309693,10645.50029,0.187539991,13875.55467,0.232787406,,,337.4415549,153.8899725,244.7464433,736.0779707,0.18291843,0.275513378,0.458431808,0.541568192,,0.600990972,0.399009028,,,,,,,,,,,,,,,,,,,,,,,,, +2038,4800.703485,3800.101579,4737.853776,13338.65884,0.359909009,,2038,3115.20815,227.6166401,3963.95611,2050.41019,4770.243017,,3342.82479,0.931908893,10784.60932,0.190123734,14127.43411,0.236619386,,,364.9148548,163.8545317,260.005881,788.7752675,0.183635522,0.278999235,0.462634758,0.537365242,,0.603065876,0.396934124,,,,,,,,,,,,,,,,,,,,,,,,, +2039,4938.24256,3834.0979,4767.630324,13539.97078,0.364715895,,2039,3226.79565,232.3407138,4008.138745,2105.620702,4810.913847,,3459.136363,0.932832739,10924.67329,0.192739924,14383.80966,0.240488191,,,394.1737917,174.0408447,275.6242366,843.838873,0.184452399,0.282667337,0.467119736,0.532880264,,0.605128226,0.394871774,,,,,,,,,,,,,,,,,,,,,,,,, +2040,5079.141035,3863.847504,4797.733266,13740.7218,0.369641501,,2040,3342.342581,237.1713983,4048.072291,2162.209876,4852.230821,,3579.513979,0.933742011,11062.51299,0.195453771,14642.02697,0.244468473,,,425.4114218,184.2247873,291.6689534,901.3051625,0.185401447,0.286593433,0.47199488,0.52800512,,0.607196063,0.392803937,,,,,,,,,,,,,,,,,,,,,,,,, +2041,5222.191738,3900.317765,4826.565644,13949.07515,0.374375482,,2041,3460.988656,242.0510061,4095.248186,2220.126047,4892.596924,,3703.039662,0.934634509,11207.97116,0.198084561,14911.01082,0.248342631,,,458.9229657,194.9304213,308.0822854,961.9356724,0.18643946,0.290643342,0.477082802,0.522917198,,0.609209431,0.390790569,,,,,,,,,,,,,,,,,,,,,,,,, +2042,5368.625638,3932.546349,4855.724975,14156.89696,0.379223332,,2042,3583.828598,247.0446014,4138.186541,2279.477168,4933.668328,,3830.8732,0.935512196,11351.33204,0.200811426,15182.20524,0.252326532,,,494.6801284,205.6401923,324.9879546,1025.308275,0.18756971,0.294899944,0.482469654,0.517530346,,0.611230037,0.388769963,,,,,,,,,,,,,,,,,,,,,,,,, +2043,5518.034246,3964.192994,4884.673094,14366.90033,0.384079664,,2043,3710.651582,252.134941,4180.677614,2340.285676,4974.955288,,3962.786523,0.936374332,11495.91858,0.203575352,15458.7051,0.256346602,,,532.9030115,216.4846198,342.4171348,1091.804766,0.188777145,0.29931654,0.488093685,0.511906315,,0.613235838,0.386764162,,,,,,,,,,,,,,,,,,,,,,,,, +2044,5670.411758,3995.262365,4913.402623,14579.07675,0.388941759,,2044,3841.570791,257.3249898,4222.670506,2402.604138,5016.517258,,4098.895781,0.9372209,11641.7919,0.20637752,15740.68768,0.260401316,,,573.7631718,227.4081414,360.4396248,1161.610938,0.190054928,0.303882545,0.493937473,0.506062527,,0.615224723,0.384775277,,,,,,,,,,,,,,,,,,,,,,,,, +2045,5825.75871,4025.754655,4941.908499,14793.42186,0.39380738,,2045,3976.700173,262.6173731,4264.129497,2466.468508,5058.408347,,4239.317546,0.938051969,11789.00635,0.209217676,16028.3239,0.264489136,,,617.409971,238.3748425,379.1172209,1234.902034,0.191389103,0.308577659,0.499966762,0.500033238,,0.617196347,0.382803653,,,,,,,,,,,,,,,,,,,,,,,,, +2046,5984.084685,4055.667963,4970.188729,15009.94138,0.398674754,,2046,4116.163571,268.0151701,4305.042635,2531.904631,5100.65996,,4384.178741,0.938867645,11937.60723,0.212094818,16321.78597,0.268609008,,,663.9835169,249.3746724,398.4864009,1311.84459,0.19276438,0.313380571,0.506144952,0.493855048,,0.619151827,0.380848173,,,,,,,,,,,,,,,,,,,,,,,,, +2047,6145.411086,4084.990695,4998.246028,15228.64781,0.403542794,,2047,4260.082211,273.5204642,4345.426607,2598.902612,5143.301697,,4533.602675,0.939668188,12087.63092,0.215005126,16621.23359,0.272759699,,,713.5737368,260.4359124,418.5761324,1392.585782,0.194154323,0.318254856,0.512409179,0.487590821,,0.621095151,0.378904849,,,,,,,,,,,,,,,,,,,,,,,,, +2048,6309.765249,4113.699985,5026.085542,15449.55078,0.40841092,,2048,4408.560491,279.133348,4385.312764,2667.41196,5186.38358,,4687.693839,0.940454015,12239.1083,0.217941691,16926.80214,0.276939129,,,766.2072022,271.6127791,439.4313855,1477.251367,0.195522072,0.323148765,0.518670837,0.481329163,,0.623032455,0.376967545,,,,,,,,,,,,,,,,,,,,,,,,, +2049,6477.180929,4141.765459,5053.714833,15672.66122,0.413278947,,2049,4561.693687,284.8528024,4424.751196,2737.352803,5229.959845,,4846.546489,0.941225612,12392.06384,0.220895634,17238.61033,0.281144848,,,821.8655604,282.9857375,461.0978144,1565.949112,0.196828409,0.328007011,0.52483542,0.47516458,,0.624971179,0.375028821,,,,,,,,,,,,,,,,,,,,,,,,, +2050,6647.41682,4171.596905,5080.697948,15899.71167,0.418084111,,2050,4719.343486,290.6612135,4466.400654,2808.681506,5273.611379,,5010.0047,0.941983844,12548.69354,0.223822623,17558.69824,0.285328937,,,880.6081716,294.8037499,483.5746451,1658.986567,0.198043815,0.332767096,0.530810912,0.469189088,,0.62690327,0.37309673,,,,,,,,,,,,,,,,,,,,,,,,, +2051,6821.304248,4195.879841,5108.360944,16125.54503,0.423012322,,2051,4882.317579,296.6106646,4502.44725,2881.296909,5318.757358,,5178.928243,0.942727404,12702.50152,0.226829094,17881.42976,0.289626071,,,942.3102399,306.5674083,507.0070785,1755.884727,0.1991691,0.337489273,0.536658373,0.463341627,,0.628871718,0.371128282,,,,,,,,,,,,,,,,,,,,,,,,, +2052,6998.042987,4221.91617,5135.377974,16355.33713,0.42787519,,2052,5050.021545,302.6517403,4540.743666,2955.266283,5364.020626,,5352.673286,0.943457834,12860.03058,0.229802431,18212.70386,0.293897783,,,1007.244841,318.8274961,531.2943924,1857.366729,0.200196766,0.342100469,0.542297234,0.457702766,,0.630835724,0.369164276,,,,,,,,,,,,,,,,,,,,,,,,, +2053,7177.935841,4247.229288,5162.18762,16587.35275,0.432735467,,2053,5222.770282,308.8004529,4578.76257,3030.461246,5409.854771,,5531.570735,0.944174907,13019.07859,0.232770793,18550.64932,0.298187446,,,1075.295687,331.5332823,556.4676046,1963.296574,0.201106775,0.346592285,0.547699059,0.452300941,,0.632815191,0.367184809,,,,,,,,,,,,,,,,,,,,,,,,, +2054,7361.017366,4271.770235,5188.785342,16821.57294,0.43759388,,2054,5400.635256,315.0552199,4616.609316,3106.756718,5456.234696,,5715.690475,0.944878887,13179.60073,0.235724646,18895.29121,0.302492849,,,1146.374608,344.8390815,582.5045739,2073.718264,0.201877356,0.350933808,0.552811165,0.447188835,,0.634816789,0.365183211,,,,,,,,,,,,,,,,,,,,,,,,, +2055,7547.315308,4295.505775,5215.167577,17057.98866,0.442450482,,2055,5583.691374,321.4150976,4654.371597,3184.056274,5503.138031,,5905.106472,0.945569974,13341.5659,0.238656864,19246.67237,0.306811814,,,1220.43234,358.8658217,609.3855515,2188.683713,0.202499239,0.355110951,0.55761019,0.44238981,,0.636844444,0.363155556,,,,,,,,,,,,,,,,,,,,,,,,, +2056,7736.850741,4318.422143,5241.335176,17296.60806,0.447304507,,2056,5772.04144,327.8808277,4692.104869,3262.310853,5550.569071,,6099.922267,0.94624836,13504.98479,0.24156346,19604.90706,0.311142626,,,1297.501552,373.6827258,637.114723,2308.299,0.202975744,0.359127152,0.562102895,0.437897105,,0.638899309,0.361100691,,,,,,,,,,,,,,,,,,,,,,,,, +2057,7929.631045,4340.534932,5267.289072,17537.45505,0.452154034,,2057,5965.784049,334.4539451,4729.82427,3341.52627,5598.529513,,6300.237994,0.946914078,13669.88005,0.244444447,19970.11805,0.315483262,,,1377.679274,389.2893382,665.6943867,2432.662999,0.203323165,0.363002411,0.566325576,0.433674424,,0.640978311,0.359021689,,,,,,,,,,,,,,,,,,,,,,,,, +2058,8125.652294,4361.879019,5293.025953,17780.55727,0.456996492,,2058,6164.981346,341.1353246,4767.525414,3421.734254,5646.986328,,6506.11667,0.947566983,13836.246,0.247302213,20342.36267,0.319830925,,,1461.063306,405.6463943,695.0956999,2561.8054,0.203563229,0.366762412,0.570325641,0.429674359,,0.643075439,0.356924561,,,,,,,,,,,,,,,,,,,,,,,,, +2059,8324.901699,4382.507333,5318.541507,18025.95054,0.461828722,,2059,6369.681743,347.9260259,4805.176222,3503.003395,5695.894587,,6717.607768,0.948206856,14004.0742,0.250141733,20721.68197,0.324182553,,,1547.783439,422.668889,725.2791061,2695.731434,0.203722428,0.370438417,0.574160845,0.425839155,,0.645182304,0.354817696,,,,,,,,,,,,,,,,,,,,,,,,, +2060,8527.438896,4401.857177,5343.965307,18273.26138,0.46666212,,2060,6580.00967,354.8327087,4842.077116,3585.377804,5745.361398,,6934.842379,0.948833342,14172.81632,0.252975677,21107.6587,0.328546263,,,1637.948578,440.219939,756.2287998,2834.397316,0.203821749,0.374060741,0.57788249,0.42211751,,0.64729551,0.35270449,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,Table 7: Difference in FUNCTIONAL & IMPLEMENTATION UNITS between REF1 and REF2 populations in LLDC+HighNRR+HighED,,,,,,,,Table 8: Difference in FUNCTIONAL & IMPLEMENTATION UNITS between REF1 and REF2 populations in LLDC+HighNRR+LowED,,,,,,,,Table 9: Difference in EMISSIONS between REF1 and REF2 populations in LLDC+HighNRR+HighED,,,,,,,,,,,,,Table 10: Difference in EMISSIONS between REF1 and REF2 populations in LLDC+HighNRR+LowED,,,,,,,,,,,,,,,Table 11: EMISSIONS ALLOCATIONS TO (a) Health & Education; (b) Education ONLY; (c) Family Planning (excluding education),,,,,,,,,,,, +,SOLUTION ,,,CONVENTIONAL,,,,,SOLUTION ,,,CONVENTIONAL,,,,,SOLUTION,,,,,CONVENTIONAL,,,,,EMISSION REDUCTIONS,,,SOLUTION ,,,,,CONVENTIONAL,,,,,EMISSION REDCUTIONS ,,,,,"Table 11(a): EMISSIONS ALLOCATION TO HEALTH & EDUCATION in LLDC, SpaceHeating_cluster",,,,"Table 11(b): EMISSIONS ALLOCATION TO Education in LLDC, SpaceHeating_cluster",,,"Table 11(c): EMISSIONS ALLOCATION TO Family Planning in LLDC, SpaceHeating_cluster",,,,% Allocation to Education (Electricity), +,Additional Functional Units in REF2 vs REF1,Annual Functional Units Increase,Annual Implementation Units Increase + Replacement,Additional Functional Units in REF2 vs REF2,Annual Functional Units Increase,Change in TAM,Annual Implementation Units Increase + Replacement,,Additional Functional Units in REF2 vs REF1,Annual Functional Units Increase,Annual Implementation Units Increase + Replacement,Additional Functional Units in REF2 vs REF2,Annual Functional Units Increase,Change in TAM,Annual Implementation Units Increase + Replacement,,Avoided Emissions/ Million Metric Tons CO2,,,,,Avoided Emissions/ Million Metric Tons CO2,,,,,ALL Years,,,Avoided Emissions/ Million Metric Tons CO2,,,,,Avoided Emissions/ Million Metric Tons CO2,,,,,ALL Years,,,,,,,,,,,,,,,,ALL Years, +,TWh,TWh,TW,TWh,TWh,%,TW,,TWh,TWh,TW,TWh,TWh,%,TW,,Grid,Fuel,Other Direct,Indirect,,Grid,Fuel,Other Direct,Indirect,,Conv Total,Solution Total,,Grid,Fuel,Other Direct,Indirect,,Grid,Fuel,Other Direct,Indirect,,Conv Total,Solution Total,,,,,Conv Total,Solution Total,,Conv Total,Solution Total,,Conv Total,Solution Total,,,Conv Total,Solution Total +2014,,,,,,,Not modeled TBD,,,,,0,,,Not modeled TBD,,,,,,,,,,,,,,,,,,,,,0,,,,0,,,,,2014,0,0,,0,0,,0,0,,,, +2015,,,,0,,,,,,,,0,0,,,,,,,,,0,0,,,,0,0,,,,,,,0,0,,,,0,0,,,,2015,0,0,,0,0,,0,0,,,, +2016,,,,1.793273893,1.793273893,0.15394717,,,,,,2.264411793,2.264411793,0.194392941,,,,,,,,0.0304702,0.31554863,,,,0.346018829,0,,,,,,,0.038475483,0.398451146,,,,0.43692663,0,,,,2016,0.782945459,0,,0.218463315,0,,0.564482144,0,,,0.279027501, +2017,,,,4.398626561,2.605352668,0.153850494,,,,,,5.601376169,3.336964376,0.195918995,,,,,,,,0.073825045,0.773992522,,,,0.847817567,0,,,,,,,0.094011583,0.985631131,,,,1.079642714,0,,,,2017,1.927460281,0,,0.539821357,0,,1.387638924,0,,,0.280068732, +2018,,,,7.754265207,3.355638646,0.154648083,,,,,,9.957763751,4.356387581,0.19859381,,,,,,,,0.128912333,1.364458474,,,,1.493370807,0,,,,,,,0.165544835,1.752191184,,,,1.917736019,0,,,,2018,3.411106827,0,,0.95886801,0,,2.452238817,0,,,0.281101724, +2019,,,,11.73897082,3.984705612,0.156337874,,,,,,15.200595,5.242831247,0.202439272,,,,,,,,0.194137962,2.065616507,,,,2.25975447,0,,,,,,,0.251385968,2.67473192,,,,2.926117887,0,,,,2019,5.185872357,0,,1.463058944,0,,3.722813414,0,,,0.282123979, +2020,,,,16.26252276,4.523551943,0.158678285,,,,,,21.23222252,6.031627517,0.207169128,,,,,,,,0.267264253,2.86159119,,,,3.128855443,0,,,,,,,0.348938119,3.736071074,,,,4.085009193,0,,,,2020,7.213864636,0,,2.042504596,0,,5.171360039,0,,,0.283135975, +2021,,,,21.31836052,5.055837754,0.16129739,,,,,,28.06015358,6.827931068,0.212306642,,,,,,,,0.348248951,3.751228116,,,,4.099477068,0,,,,,,,0.458380421,4.937529647,,,,5.395910068,0,,,,2021,9.495387135,0,,2.697955034,0,,6.797432102,0,,,0.284133232, +2022,,,,26.94093806,5.622577549,0.1638978,,,,,,35.74880432,7.688650741,0.217481306,,,,,,,,0.437480706,4.740589891,,,,5.178070597,0,,,,,,,0.580507335,6.290442448,,,,6.870949783,0,,,,2022,12.04902038,0,,3.435474892,0,,8.613545489,0,,,0.28512483, +2023,,,,33.13885282,6.197914759,0.166368427,,,,,,44.32945236,8.58064804,0.222549082,,,,,,,,0.534984447,5.831189334,,,,6.366173781,0,,,,,,,0.715642382,7.800313161,,,,8.515955543,0,,,,2023,14.88212932,0,,4.257977771,0,,10.62415155,0,,,0.286113477, +2024,,,,39.92549265,6.786639828,0.168612332,,,,,,53.84226718,9.512814818,0.227385302,,,,,,,,0.640846295,7.025382205,,,,7.666228499,0,,,,,,,0.864225214,9.4742101,,,,10.33843531,0,,,,2024,18.00466381,0,,5.169217657,0,,12.83544616,0,,,0.28710437, +2025,,,,47.2992553,7.373762646,0.170596154,,,,,,64.30886837,10.46660119,0.23194542,,,,,,,,0.755341206,8.322886567,,,,9.078227773,0,,,,,,,1.026974693,11.3159375,,,,12.34291219,0,,,,2025,21.42113996,0,,6.171456096,0,,15.24968387,0,,,0.288101198, +2026,,,,55.2749533,7.975698001,0.17239014,,,,,,75.77336322,11.46449485,0.236320067,,,,,,,,0.877284737,9.726308869,,,,10.60359361,0,,,,,,,1.202620917,13.33325658,,,,14.5358775,0,,,,2026,25.1394711,0,,7.267938748,0,,17.87153235,0,,,0.28910468, +2027,,,,63.81683729,8.541883989,0.174033071,,,,,,88.21096989,12.43760668,0.240557612,,,,,,,,1.007273601,11.22935857,,,,12.23663217,0,,,,,,,1.392306248,15.52180667,,,,16.91411292,0,,,,2027,29.15074509,0,,8.457056459,0,,20.69368863,0,,,0.29011459, +2028,,,,72.81021821,8.993380923,0.175485844,,,,,,101.4868713,13.27590143,0.244601784,,,,,,,,1.142955868,12.81185472,,,,13.95481058,0,,,,,,,1.59311451,17.85786505,,,,19.45097956,0,,,,2028,33.40579014,0,,9.725489779,0,,23.68030036,0,,,0.291131859, +2029,,,,82.1016637,9.291445491,0.176722033,,,,,,115.4071067,13.92023537,0.24841127,,,,,,,,1.281843779,14.446799,,,,15.72864277,0,,,,,,,1.801837808,20.30730192,,,,22.10913973,0,,,,2029,37.8377825,0,,11.05456986,0,,26.78321264,0,,,0.292156917, +2030,,,,91.60704587,9.505382168,0.177748671,,,,,,129.8610099,14.4539032,0.251974308,,,,,,,,1.422907285,16.11938807,,,,17.54229535,0,,,,,,,2.017095686,22.85064422,,,,24.86773991,0,,,,2030,42.41003526,0,,12.43386995,0,,29.97616531,0,,,0.293182259, +2031,,,,101.2193079,9.612262077,0.178650968,,,,,,144.7306575,14.86964756,0.255448023,,,,,,,,1.563460075,17.81078398,,,,19.37424405,0,,,,,,,2.235547834,25.46714186,,,,27.7026897,0,,,,2031,47.07693375,0,,13.85134485,0,,33.2255889,0,,,0.294227847, +2032,,,,111.0532021,9.833894145,0.179457625,,,,,,160.1666705,15.43601308,0.258823067,,,,,,,,1.706246037,19.54117878,,,,21.24742482,0,,,,,,,2.460836263,28.18329849,,,,30.64413476,0,,,,2032,51.89155957,0,,15.32206738,0,,36.56949219,0,,,0.295270898, +2033,,,,121.1463959,10.09319381,0.180204026,,,,,,176.2425985,16.07592798,0.262159064,,,,,,,,1.851462688,21.31720055,,,,23.16866324,0,,,,,,,2.693489912,31.01205603,,,,33.70554595,0,,,,2033,56.87420918,0,,16.85277297,0,,40.02143621,0,,,0.296316612, +2034,,,,131.598546,10.45215009,0.180909009,,,,,,193.1167534,16.87415485,0.265478317,,,,,,,,2.00056609,23.1563851,,,,25.15695119,0,,,,,,,2.935768213,33.98127142,,,,36.91703964,0,,,,2034,62.07399083,0,,18.45851982,0,,43.61547101,0,,,0.297363188, +2035,,,,142.4998525,10.90130646,0.181590399,,,,,,210.9383874,17.82163406,0.268802987,,,,,,,,2.154518664,25.07460425,,,,27.22912291,0,,,,,,,3.189271321,37.11720745,,,,40.30647877,0,,,,2035,67.53560168,0,,20.15323939,0,,47.3823623,0,,,0.298409119, +2036,,,,153.879591,11.37973852,0.182252482,,,,,,229.7712476,18.83286014,0.272137324,,,,,,,,2.314522653,27.07700941,,,,29.39153206,0,,,,,,,3.456018788,40.43108116,,,,43.88709995,0,,,,2036,73.27863201,0,,21.94354997,0,,51.33508203,0,,,0.299453597, +2037,,,,165.7685198,11.88892878,0.18291843,,,,,,249.6820296,19.910782,0.275513378,,,,,,,,2.480050855,29.16901286,,,,31.64906372,0,,,,,,,3.735474816,43.9346285,,,,47.67010332,0,,,,2037,79.31916704,0,,23.83505166,0,,55.48411538,0,,,0.300495486, +2038,,,,178.2676681,12.49914839,0.183635522,,,,,,270.8438025,21.16177294,0.278999235,,,,,,,,2.65276636,31.36839198,,,,34.02115834,0,,,,,,,4.030373738,47.6583031,,,,51.68867684,0,,,,2038,85.70983518,0,,25.84433842,0,,59.86549676,0,,,0.301532938, +2039,,,,191.4991409,13.23147273,0.184452399,,,,,,293.4662421,22.62243959,0.282667337,,,,,,,,2.834241756,33.69663258,,,,36.53087434,0,,,,,,,4.343383857,51.639,,,,55.98238385,0,,,,2039,92.51325819,0,,27.99119193,0,,64.52206626,0,,,0.302564113, +2040,,,,205.4953253,13.99618443,0.185401447,,,,,,317.6545366,24.18829447,0.286593433,,,,,,,,3.023629761,36.15943363,,,,39.18306339,0,,,,,,,4.673924864,55.89522834,,,,60.5691532,0,,,,2040,99.75221659,0,,30.2845766,0,,69.46763999,0,,,0.303598032, +2041,,,,220.5277261,15.03240079,0.18643946,,,,,,343.7840655,26.1295289,0.290643342,,,,,,,,3.228341413,38.8045697,,,,42.03291112,0,,,,,,,5.032711103,60.4930408,,,,65.5257519,0,,,,2041,107.558663,0,,32.76287595,0,,74.79578706,0,,,0.304604716, +2042,,,,236.4161747,15.8884486,0.18756971,,,,,,371.6970978,27.91303234,0.294899944,,,,,,,,3.441824089,41.60033794,,,,45.04216202,0,,,,,,,5.411288067,65.40468265,,,,70.81597071,0,,,,2042,115.8581327,0,,35.40798536,0,,80.45014738,0,,,0.305615018, +2043,,,,253.2938846,16.87770992,0.188777145,,,,,,401.6113772,29.91427944,0.29931654,,,,,,,,3.666961568,44.57017888,,,,48.23714045,0,,,,,,,5.814169133,70.66846858,,,,76.48263771,0,,,,2043,124.7197782,0,,38.24131885,0,,86.47845931,0,,,0.306617919, +2044,,,,271.2196687,17.92578408,0.190054928,,,,,,433.6584377,32.04706048,0.303882545,,,,,,,,3.904316544,47.72444139,,,,51.62875793,0,,,,,,,6.242688153,76.3075436,,,,82.55023175,0,,,,2044,134.1789897,0,,41.27511588,0,,92.90387381,0,,,0.307612361, +2045,,,,290.2394257,19.01975698,0.191389103,,,,,,467.9545554,34.29611768,0.308577659,,,,,,,,4.15338598,51.0712019,,,,55.22458788,0,,,,,,,6.696526101,82.34236794,,,,89.03889404,0,,,,2045,144.2634819,0,,44.51944702,0,,99.7440349,0,,,0.308598173, +2046,,,,310.3940329,20.15460721,0.19276438,,,,,,504.6132446,36.6586892,0.313380571,,,,,,,,4.416984431,54.61765329,,,,59.03463772,0,,,,,,,7.180772208,88.79291584,,,,95.97368805,0,,,,2046,155.0083258,0,,47.98684402,0,,107.0214817,0,,,0.309575913, +2047,,,,331.6963922,21.30235935,0.194154323,,,,,,543.711755,39.09851042,0.318254856,,,,,,,,4.692386819,58.3660658,,,,63.05845262,0,,,,,,,7.691690149,95.67278033,,,,103.3644705,0,,,,2047,166.4229231,0,,51.68223524,0,,114.7406879,0,,,0.310547575, +2048,,,,354.1235685,22.4271763,0.195522072,,,,,,585.2771137,41.56535868,0.323148765,,,,,,,,4.979762076,62.31240372,,,,67.29216579,0,,,,,,,8.230293135,102.9867172,,,,111.2170103,0,,,,2048,178.5091761,0,,55.60850515,0,,122.9006709,0,,,0.311516228, +2049,,,,377.6279245,23.50435598,0.196828409,,,,,,629.3024843,44.02537058,0.328007011,,,,,,,,5.282914302,66.44828466,,,,71.73119896,0,,,,,,,8.803774505,110.7335234,,,,119.5372979,0,,,,2049,191.2684969,0,,59.76864895,0,,131.4998479,0,,,0.312485589, +2050,,,,402.2540517,24.6261272,0.198043815,,,,,,675.895446,46.59296167,0.332767096,,,,,,,,5.60807498,70.78155507,,,,76.38963005,0,,,,,,,9.423080572,118.9321289,,,,128.3552095,0,,,,2050,204.7448395,0,,64.17760473,0,,140.5672348,0,,,0.313451635, +2051,,,,427.7438249,25.48977315,0.1991691,,,,,,724.8059681,48.91052215,0.337489273,,,,,,,,5.940651173,75.26679462,,,,81.20744579,0,,,,,,,10.06635087,127.5385377,,,,137.6048886,0,,,,2051,218.8123344,0,,68.80244429,0,,150.0098901,0,,,0.314435859, +2052,,,,454.3571887,26.61336383,0.200196766,,,,,,776.4151764,51.60920829,0.342100469,,,,,,,,6.28696514,79.94974379,,,,86.23670893,0,,,,,,,10.74329904,136.6198136,,,,147.3631126,0,,,,2052,233.5998216,0,,73.68155631,0,,159.9182652,0,,,0.315417862, +2053,,,,481.9449109,27.58772221,0.201106775,,,,,,830.595528,54.18035157,0.346592285,,,,,,,,6.643463745,84.80414331,,,,91.44760706,0,,,,,,,11.44950626,146.1535138,,,,157.6030201,0,,,,2053,249.0506271,0,,78.80151003,0,,170.2491171,0,,,0.316407595, +2054,,,,510.4250503,28.48013943,0.201877356,,,,,,887.2981608,56.70263283,0.350933808,,,,,,,,7.008752232,89.81557464,,,,96.82432688,0,,,,,,,12.18367508,156.1310405,,,,168.3147156,0,,,,2054,265.1390424,0,,84.15735778,0,,180.9816847,0,,,0.317408394, +2055,,,,539.7359319,29.31088152,0.202499239,,,,,,946.5030162,59.2048554,0.355110951,,,,,,,,7.381105262,94.97318528,,,,102.3542905,0,,,,,,,12.94380822,166.548864,,,,179.4926722,0,,,,2055,281.8469628,0,,89.74633612,0,,192.1006267,0,,,0.318422222, +2056,,,,569.8544921,30.11856026,0.202975744,,,,,,1008.24964,61.74662376,0.359127152,,,,,,,,7.761785221,100.2729169,,,,108.0347022,0,,,,,,,13.7330095,177.413943,,,,191.1469525,0,,,,2056,299.1816547,0,,95.57347626,0,,203.6081784,0,,,0.319449655, +2057,,,,600.7930081,30.93851594,0.203323165,,,,,,1072.624021,64.37438092,0.363002411,,,,,,,,8.148841116,105.7169299,,,,113.865771,0,,,,,,,14.5485094,188.7414083,,,,203.2899177,0,,,,2057,317.1556887,0,,101.6449588,0,,215.5107298,0,,,0.320489156, +2058,,,,632.5719288,31.77892074,0.203563229,,,,,,1139.712745,67.08872448,0.366762412,,,,,,,,8.542878056,111.3088224,,,,119.8517005,0,,,,,,,15.3918101,200.5464957,,,,215.9383058,0,,,,2058,335.7900063,0,,107.9691529,0,,227.8208534,0,,,0.32153772, +2059,,,,665.2325985,32.66066972,0.203722428,,,,,,1209.624845,69.91209935,0.370438417,,,,,,,,8.944152513,117.0558696,,,,126.0000221,0,,,,,,,16.26358828,212.8483907,,,,229.111979,0,,,,2059,355.112001,0,,114.5559895,0,,240.5560115,0,,,0.322591152, +2060,,,,698.7840642,33.55146566,0.203821749,,,,,,1282.432745,72.80790039,0.374060741,,,,,,,,9.355598588,122.9596632,,,,132.3152618,0,,,,,,,17.16971894,225.6598376,,,,242.8295565,0,,,,2060,375.1448183,0,,121.4147782,0,,253.73004,0,,,0.323647755, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,Table 12: Difference in FUNCTIONAL & IMPLEMENTATION UNITS between REF1 and REF2 populations in MDC + LAC + EE + China,,,,,,,,,Table 13: Difference in EMISSIONS between REF1 and REF2 populations in MDC + LAC + EE + China,,,,,,,,,,,,,,Table 14: EMISSIONS ALLOCATIONS TO (a) Health & Education; (b) Education ONLY; (c) Family Planning (excluding education),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,SOLUTION ,,,CONVENTIONAL,,,,,,SOLUTION,,,,,CONVENTIONAL,,,,,EMISSION REDUCTIONS,,,,"Table 14(a): EMISSIONS ALLOCATION TO HEALTH & EDUCATION in MDC, SpaceHeating_cluster",,,,"Table 14(b): EMISSIONS ALLOCATION TO Education in MDC, SpaceHeating_cluster",,,"Table 14(c): EMISSIONS ALLOCATION TO Family Planning in MDC, SpaceHeating_cluster",,,,% Allocation to Education (Electricity),,,,,,,,,,,,,,,,,,,,,, +,Additional Functional Units in REF2 vs REF1,Annual Functional Units Increase,Annual Implementation Units Increase + Replacement,Additional Functional Units in REF2 vs REF2,Annual Functional Units Increase,Change in TAM,Annual Implementation Units Increase + Replacement,,,Avoided Emissions/ Million Metric Tons CO2,,,,,Avoided Emissions/ Million Metric Tons CO2,,,,,ALL Years,,,,,,,,,,,,,,,ALL Years,,,,,,,,,,,,,,,,,,,,,, +,TWh,TWh,TW,TWh,TWh,%,TW,,,Grid,Fuel,Other Direct,Indirect,,Grid,Fuel,Other Direct,Indirect,,Conv Total,Solution Total,,,,Conv Total,Solution Total,,Conv Total,Solution Total,,Conv Total,Solution Total,,,Conv Total,Solution Total,,,,,,,,,,,,,,,,,,,,, +2014,,,,,,,Not modeled TBD,,,,,,,,,,,,,,,,,2014,0,0,,,,,0,0,,,,,,,,,,,,,,,,,,,,,,,,, +2015,,,,0,,,,,,,,,,,0,0,,,,0,0,,,2015,0,0,,,,,0,0,,,,,,,,,,,,,,,,,,,,,,,,, +2016,,,,7.590946079,7.590946079,0.651659889,,,,,,,,,0.128980656,1.335720462,,,,1.464701119,0,,,2016,1.464701119,0,,,,,1.464701119,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2017,,,,18.59026326,10.99931718,0.650230511,,,,,,,,,0.312012625,3.271185802,,,,3.583198427,0,,,2017,3.583198427,0,,,,,3.583198427,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2018,,,,32.4293311,13.83906784,0.646758107,,,,,,,,,0.539127901,5.706340248,,,,6.245468149,0,,,2018,6.245468149,0,,,,,6.245468149,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2019,,,,48.147619,15.7182879,0.641222855,,,,,,,,,0.79626066,8.47216661,,,,9.268427269,0,,,2019,9.268427269,0,,,,,9.268427269,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2020,,,,64.99264138,16.84502238,0.634152587,,,,,,,,,1.068112864,11.43625578,,,,12.50436865,0,,,2020,12.50436865,0,,,,,12.50436865,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2021,,,,82.78952993,17.79688855,0.626395968,,,,,,,,,1.352419524,14.56783753,,,,15.92025706,0,,,2021,15.92025706,0,,,,,15.92025706,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2022,,,,101.6867047,18.89717476,0.618620894,,,,,,,,,1.651240624,17.89302819,,,,19.54426882,0,,,2022,19.54426882,0,,,,,19.54426882,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2023,,,,121.721249,20.03454426,0.611082491,,,,,,,,,1.965034078,21.41835303,,,,23.3833871,0,,,2023,23.3833871,0,,,,,23.3833871,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2024,,,,143.0209275,21.2996785,0.604002366,,,,,,,,,2.295636831,25.16629381,,,,27.46193064,0,,,2024,27.46193064,0,,,,,27.46193064,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2025,,,,165.6505018,22.62957438,0.597458425,,,,,,,,,2.6453408,29.14824616,,,,31.79358696,0,,,2025,31.79358696,0,,,,,31.79358696,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2026,,,,189.590401,23.93989911,0.591289793,,,,,,,,,3.009043973,33.36076628,,,,36.36981025,0,,,2026,36.36981025,0,,,,,36.36981025,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2027,,,,214.6659312,25.07553025,0.585409318,,,,,,,,,3.38824885,37.77311469,,,,41.16136354,0,,,2027,41.16136354,0,,,,,41.16136354,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2028,,,,240.609415,25.94348382,0.579912372,,,,,,,,,3.777024016,42.33819022,,,,46.11521424,0,,,2028,46.11521424,0,,,,,46.11521424,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2029,,,,267.0720311,26.46261604,0.574866698,,,,,,,,,4.16976473,46.99461346,,,,51.16437819,0,,,2029,51.16437819,0,,,,,51.16437819,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2030,,,,293.9059558,26.83392472,0.570277021,,,,,,,,,4.565161137,51.71637303,,,,56.28153417,0,,,2030,56.28153417,0,,,,,56.28153417,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2031,,,,320.6257943,26.71983848,0.565901009,,,,,,,,,4.952470419,56.41805773,,,,61.37052815,0,,,2031,61.37052815,0,,,,,61.37052815,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2032,,,,347.6070056,26.98121133,0.561719308,,,,,,,,,5.34071116,61.1657342,,,,66.50644536,0,,,2032,66.50644536,0,,,,,66.50644536,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2033,,,,374.8845321,27.27752646,0.55763691,,,,,,,,,5.729305593,65.96555096,,,,71.69485656,0,,,2033,71.69485656,0,,,,,71.69485656,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2034,,,,402.7141773,27.82964525,0.553612673,,,,,,,,,6.122076206,70.86251983,,,,76.98459604,0,,,2034,76.98459604,0,,,,,76.98459604,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2035,,,,431.2940643,28.57988703,0.549606614,,,,,,,,,6.520926832,75.89150298,,,,82.41242981,0,,,2035,82.41242981,0,,,,,82.41242981,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2036,,,,460.6701245,29.37606017,0.545610194,,,,,,,,,6.928998394,81.0605826,,,,87.98958099,0,,,2036,87.98958099,0,,,,,87.98958099,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2037,,,,490.7923031,30.12217865,0.541568192,,,,,,,,,7.34270821,86.36095095,,,,93.70365916,0,,,2037,93.70365916,0,,,,,93.70365916,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2038,,,,521.6575067,30.86520357,0.537365242,,,,,,,,,7.762683495,91.7920637,,,,99.55474719,0,,,2038,99.55474719,0,,,,,99.55474719,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2039,,,,553.2381985,31.58069174,0.532880264,,,,,,,,,8.188082702,97.34907539,,,,105.5371581,0,,,2039,105.5371581,0,,,,,105.5371581,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2040,,,,585.2305132,31.99231477,0.52800512,,,,,,,,,8.611000732,102.9785172,,,,111.589518,0,,,2040,111.589518,0,,,,,111.589518,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2041,,,,618.5264693,33.29595611,0.522917198,,,,,,,,,9.054710041,108.8373508,,,,117.8920609,0,,,2041,117.8920609,0,,,,,117.8920609,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2042,,,,652.3043891,33.77791973,0.517530346,,,,,,,,,9.496460902,114.7809919,,,,124.2774528,0,,,2042,124.2774528,0,,,,,124.2774528,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2043,,,,686.8561297,34.55174067,0.511906315,,,,,,,,,9.943686694,120.8607962,,,,130.8044829,0,,,2043,130.8044829,0,,,,,130.8044829,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2044,,,,722.1812774,35.3251477,0.506062527,,,,,,,,,10.39609082,127.0766911,,,,137.4727819,0,,,2044,137.4727819,0,,,,,137.4727819,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2045,,,,758.2947925,36.11351504,0.500033238,,,,,,,,,10.85135471,133.4313088,,,,144.2826636,0,,,2045,144.2826636,0,,,,,144.2826636,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2046,,,,795.2177669,36.92297438,0.493855048,,,,,,,,,11.31614697,139.928361,,,,151.244508,0,,,2046,151.244508,0,,,,,151.244508,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2047,,,,833.0080628,37.79029589,0.487590821,,,,,,,,,11.78425857,146.578029,,,,158.3622876,0,,,2047,158.3622876,0,,,,,158.3622876,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2048,,,,871.7685913,38.76052852,0.481329163,,,,,,,,,12.25899815,153.3984214,,,,165.6574196,0,,,2048,165.6574196,0,,,,,165.6574196,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2049,,,,911.6337162,39.86512491,0.47516458,,,,,,,,,12.7535134,160.4131812,,,,173.1666946,0,,,2049,173.1666946,0,,,,,173.1666946,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2050,,,,952.9871544,41.35343821,0.469189088,,,,,,,,,13.28618915,167.689828,,,,180.9760172,0,,,2050,180.9760172,0,,,,,180.9760172,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2051,,,,995.0917083,42.10455387,0.463341627,,,,,,,,,13.82017081,175.0986429,,,,188.9188137,0,,,2051,188.9188137,0,,,,,188.9188137,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2052,,,,1038.780727,43.68901824,0.457702766,,,,,,,,,14.37366543,182.7862638,,,,197.1599292,0,,,2052,197.1599292,0,,,,,197.1599292,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2053,,,,1083.922393,45.14166649,0.452300941,,,,,,,,,14.94153991,190.729496,,,,205.6710359,0,,,2053,205.6710359,0,,,,,205.6710359,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2054,,,,1130.668581,46.74618806,0.447188835,,,,,,,,,15.5254448,198.9550636,,,,214.4805084,0,,,2054,214.4805084,0,,,,,214.4805084,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2055,,,,1179.133701,48.46512006,0.44238981,,,,,,,,,16.12512611,207.4830984,,,,223.6082245,0,,,2055,223.6082245,0,,,,,223.6082245,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2056,,,,1229.396318,50.26261726,0.437897105,,,,,,,,,16.7451697,216.327425,,,,233.0725947,0,,,2056,233.0725947,0,,,,,233.0725947,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2057,,,,1281.450453,52.05413503,0.433674424,,,,,,,,,17.38092155,225.4869912,,,,242.8679128,0,,,2057,242.8679128,0,,,,,242.8679128,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2058,,,,1335.211373,53.76092005,0.429674359,,,,,,,,,18.03201727,234.9468873,,,,252.9789046,0,,,2058,252.9789046,0,,,,,252.9789046,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2059,,,,1390.529702,55.31832815,0.425839155,,,,,,,,,18.69588134,244.6808285,,,,263.3767098,0,,,2059,263.3767098,0,,,,,263.3767098,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2060,,,,1447.190947,56.66124515,0.42211751,,,,,,,,,19.37556718,254.6510725,,,,274.0266397,0,,,2060,274.0266397,0,,,,,274.0266397,0,,,0,,,,,,,,,,,,,,,,,,,,,, diff --git a/solution/health_and_education/tests/test_electricity.py b/solution/health_and_education/tests/test_electricity.py index ceb23efdb..e086ad993 100644 --- a/solution/health_and_education/tests/test_electricity.py +++ b/solution/health_and_education/tests/test_electricity.py @@ -4,99 +4,98 @@ import pandas as pd import numpy as np -import clusters.electricity_cluster as electricity_cluster +from clusters import electricity -test_elec = electricity_cluster.Scenario() -exp_elec = pd.read_csv('expected_elec_cluster.csv', header=None) +test_cluster = electricity.Cluster() +test_dfs = test_cluster.run_cluster() + +expected_df = pd.read_csv('expected_elec_cluster.csv', header=None) def test_electricity_cluster(): - exp_ref2_tam = exp_elec.iloc[26:73, 1:11].astype(float) - exp_ref2_tam.columns = exp_elec.iloc[25, 1:11].values - exp_ref2_tam.index = exp_elec.iloc[26:73, 0].astype(int).values - pd.testing.assert_frame_equal(test_elec.ref2_tam, exp_ref2_tam, check_exact=False) - - exp_ref1_tam_low_edu = exp_elec.iloc[26:73, 13:23].astype(float) - exp_ref1_tam_low_edu.columns = exp_elec.iloc[25, 13:23].values - exp_ref1_tam_low_edu.index = exp_elec.iloc[26:73, 12].astype(int).values - pd.testing.assert_frame_equal(test_elec.ref1_tam_low_edu, exp_ref1_tam_low_edu, check_exact=False) - - exp_ref1_tam_high_edu = exp_elec.iloc[26:73, 25:35].astype(float) - exp_ref1_tam_high_edu.columns = exp_elec.iloc[25, 25:35].values - exp_ref1_tam_high_edu.index = exp_elec.iloc[26:73, 24].astype(int).values - pd.testing.assert_frame_equal(test_elec.ref1_tam_high_edu, exp_ref1_tam_high_edu, check_exact=False) - - exp_ref1_tam_all_regions = exp_elec.iloc[26:73, 37:47].astype(float) - exp_ref1_tam_all_regions.columns = exp_elec.iloc[25, 37:47].values - exp_ref1_tam_all_regions.index = exp_elec.iloc[26:73, 36].astype(int).values - pd.testing.assert_frame_equal(test_elec.ref1_tam_all_regions, exp_ref1_tam_all_regions, check_exact=False) - - exp_ref2_elec_gen = exp_elec.iloc[77:124, 1:6].astype(float) - exp_ref2_elec_gen.columns = exp_elec.iloc[76, 1:6].values - exp_ref2_elec_gen.index = exp_elec.iloc[77:124, 0].astype(int).values - pd.testing.assert_frame_equal(test_elec.ref2_elec_gen, exp_ref2_elec_gen, check_exact=False, rtol=1e-3) - - exp_ref1_elec_gen = exp_elec.iloc[77:124, 8:19].astype(float) - exp_ref1_elec_gen.columns = exp_elec.iloc[76, 8:19].values - exp_ref1_elec_gen.index = exp_elec.iloc[77:124, 7].astype(int).values - pd.testing.assert_frame_equal(test_elec.ref1_elec_gen, exp_ref1_elec_gen, check_exact=False, rtol=1e-3) - - exp_change_elec_gen = exp_elec.iloc[77:124, 22:30].astype(float) - exp_change_elec_gen.columns = exp_elec.iloc[76, 22:30].values - exp_change_elec_gen.index = exp_elec.iloc[77:124, 7].astype(int).values - pd.testing.assert_frame_equal(test_elec.change_elec_gen, exp_change_elec_gen, check_exact=False, rtol=1e-3) - - exp_addl_func_units_highed = exp_elec.iloc[132:179, 4:7].astype(float) - exp_addl_func_units_highed.columns = exp_elec.iloc[130, 4:7].values - exp_addl_func_units_highed.index = exp_elec.iloc[132:179, 0].astype(int, errors='ignore').values - pd.testing.assert_frame_equal(test_elec.addl_func_units_highed, exp_addl_func_units_highed, check_exact=False, rtol=1e-3) - - exp_addl_func_units_lowed = exp_elec.iloc[132:179, 12:15].astype(float) - exp_addl_func_units_lowed.columns = exp_elec.iloc[130, 12:15].values - exp_addl_func_units_lowed.index = exp_elec.iloc[132:179, 0].astype(int, errors='ignore').values - pd.testing.assert_frame_equal(test_elec.addl_func_units_lowed, exp_addl_func_units_lowed, check_exact=False, rtol=1e-3) - - exp_emis_diff_highed = exp_elec.iloc[132:179, 21:26].astype(float) - exp_emis_diff_highed.columns = range(exp_emis_diff_highed.shape[1]) # Default columns to integers to avoid mismatch between Excel & pandas col names - test_elec.emis_diff_highed.columns = range(test_elec.emis_diff_highed.shape[1]) - exp_emis_diff_highed.index = exp_elec.iloc[132:179, 0].astype(int, errors='ignore').values - pd.testing.assert_frame_equal(test_elec.emis_diff_highed, exp_emis_diff_highed, check_exact=False, rtol=1e-3) - - exp_emis_diff_lowed = exp_elec.iloc[132:179, 34:39].astype(float) - exp_emis_diff_lowed.columns = range(exp_emis_diff_lowed.shape[1]) - test_elec.emis_diff_lowed.columns = range(test_elec.emis_diff_lowed.shape[1]) - exp_emis_diff_lowed.index = exp_elec.iloc[132:179, 0].astype(int, errors='ignore').values - pd.testing.assert_frame_equal(test_elec.emis_diff_lowed, exp_emis_diff_lowed, check_exact=False, rtol=1e-3) - - exp_emissions_allocations_lldc = exp_elec.iloc[132:179, [44, 45, 47, 48, 50, 51, 54, 55]].astype(float) - exp_emissions_allocations_lldc.columns = range(exp_emissions_allocations_lldc.shape[1]) - test_elec.emissions_allocations_lldc.columns = range(test_elec.emissions_allocations_lldc.shape[1]) - exp_emissions_allocations_lldc.index = exp_elec.iloc[132:179, 43].astype(int, errors='ignore').values - pd.testing.assert_frame_equal(test_elec.emissions_allocations_lldc, exp_emissions_allocations_lldc, check_exact=False, rtol=1e-2) - - exp_addl_func_units_mdc = exp_elec.iloc[191:238, 4:7].astype(float) - exp_addl_func_units_mdc.columns = exp_elec.iloc[189, 4:7].values - exp_addl_func_units_mdc.index = exp_elec.iloc[191:238, 0].astype(int, errors='ignore').values - pd.testing.assert_frame_equal(test_elec.addl_func_units_mdc, exp_addl_func_units_mdc, check_exact=False, rtol=1e-3) - - exp_emis_diff_mdc = exp_elec.iloc[191:238, 14:19].astype(float) - exp_emis_diff_mdc.columns = range(exp_emis_diff_mdc.shape[1]) - test_elec.emis_diff_mdc.columns = range(test_elec.emis_diff_mdc.shape[1]) - exp_emis_diff_mdc.index = exp_elec.iloc[191:238, 0].astype(int, errors='ignore').values - pd.testing.assert_frame_equal(test_elec.emis_diff_mdc, exp_emis_diff_mdc, check_exact=False, rtol=1e-3) - - exp_emissions_allocations_mdc = exp_elec.iloc[191:238, [23, 24, 26, 27, 29, 30, 33, 34]].astype(float) - exp_emissions_allocations_mdc.columns = range(exp_emissions_allocations_mdc.shape[1]) - test_elec.emissions_allocations_mdc.columns = range(test_elec.emissions_allocations_mdc.shape[1]) - exp_emissions_allocations_mdc.index = exp_elec.iloc[191:238, 22].astype(int, errors='ignore').values - pd.testing.assert_frame_equal(test_elec.emissions_allocations_mdc, exp_emissions_allocations_mdc, check_exact=False, rtol=1e-2) - - # Test the final CO2 reduction output (columns/indices are dropped since it's not a real table) - exp_emissions_avoided = exp_elec.iloc[[4, 7, 11], [13, 14]].reset_index(drop=True).T.reset_index(drop=True).T.astype(float) - test_emissions_avoided = pd.DataFrame([[test_elec.emissions_avoided_lldc_period, test_elec.emissions_avoided_lldc_full], - [test_elec.emissions_avoided_mdc_period, test_elec.emissions_avoided_mdc_full], - [test_elec.emissions_avoided_total_period, test_elec.emissions_avoided_total_full]]) + exp_ref2_tam = expected_df.iloc[26:73, 1:11].astype(float) + exp_ref2_tam.columns = expected_df.iloc[25, 1:11].values + exp_ref2_tam.index = expected_df.iloc[26:73, 0].astype(int).values + pd.testing.assert_frame_equal(test_dfs.ref2_tam, exp_ref2_tam, check_exact=False) + + exp_ref1_tam_low_edu = expected_df.iloc[26:73, 13:23].astype(float) + exp_ref1_tam_low_edu.columns = expected_df.iloc[25, 13:23].values + exp_ref1_tam_low_edu.index = expected_df.iloc[26:73, 12].astype(int).values + pd.testing.assert_frame_equal(test_dfs.ref1_tam_low_edu, exp_ref1_tam_low_edu, check_exact=False) + + exp_ref1_tam_high_edu = expected_df.iloc[26:73, 25:35].astype(float) + exp_ref1_tam_high_edu.columns = expected_df.iloc[25, 25:35].values + exp_ref1_tam_high_edu.index = expected_df.iloc[26:73, 24].astype(int).values + pd.testing.assert_frame_equal(test_dfs.ref1_tam_high_edu, exp_ref1_tam_high_edu, check_exact=False) + + exp_ref1_tam_all_regions = expected_df.iloc[26:73, 37:47].astype(float) + exp_ref1_tam_all_regions.columns = expected_df.iloc[25, 37:47].values + exp_ref1_tam_all_regions.index = expected_df.iloc[26:73, 36].astype(int).values + pd.testing.assert_frame_equal(test_dfs.ref1_tam_all_regions, exp_ref1_tam_all_regions, check_exact=False) + + # Default columns to integers to avoid mismatch between Excel & pandas col names using T.reset_index() + exp_ref2_demand = expected_df.iloc[77:124, 1:6].T.reset_index(drop=True).T.astype(float) + exp_ref2_demand.index = expected_df.iloc[77:124, 0].astype(int).values + test_ref2_demand = test_dfs.ref2_demand.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_ref2_demand, exp_ref2_demand, check_exact=False, rtol=1e-3) + + exp_ref1_demand = expected_df.iloc[77:124, 8:19].T.reset_index(drop=True).T.astype(float) + exp_ref1_demand.index = expected_df.iloc[77:124, 7].astype(int).values + test_ref1_demand = test_dfs.ref1_demand.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_ref1_demand, exp_ref1_demand, check_exact=False, rtol=1e-3) + + exp_change_demand = expected_df.iloc[77:124, 22:30].T.reset_index(drop=True).T.astype(float) + exp_change_demand.index = expected_df.iloc[77:124, 7].astype(int).values + test_change_demand = test_dfs.change_demand.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_change_demand, exp_change_demand, check_exact=False, rtol=1e-3) + + exp_addl_func_units_highed = expected_df.iloc[132:179, 4:7].T.reset_index(drop=True).T.astype(float) + exp_addl_func_units_highed.index = expected_df.iloc[132:179, 0].astype(int, errors='ignore').values + test_addl_func_units_highed = test_dfs.addl_func_units_highed.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_addl_func_units_highed, exp_addl_func_units_highed, check_exact=False, rtol=1e-3) + + exp_addl_func_units_lowed = expected_df.iloc[132:179, 12:15].T.reset_index(drop=True).T.astype(float) + exp_addl_func_units_lowed.index = expected_df.iloc[132:179, 0].astype(int, errors='ignore').values + test_addl_func_units_lowed = test_dfs.addl_func_units_lowed.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_addl_func_units_lowed, exp_addl_func_units_lowed, check_exact=False, rtol=1e-3) + + exp_emis_diff_highed = expected_df.iloc[132:179, 21:26].T.reset_index(drop=True).T.astype(float) + exp_emis_diff_highed.index = expected_df.iloc[132:179, 0].astype(int, errors='ignore').values + test_emis_diff_highed = test_dfs.emis_diff_highed.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_emis_diff_highed, exp_emis_diff_highed, check_exact=False, rtol=1e-3) + + exp_emis_diff_lowed = expected_df.iloc[132:179, 34:39].T.reset_index(drop=True).T.astype(float) + exp_emis_diff_lowed.index = expected_df.iloc[132:179, 0].astype(int, errors='ignore').values + test_emis_diff_lowed = test_dfs.emis_diff_lowed.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_emis_diff_lowed, exp_emis_diff_lowed, check_exact=False, rtol=1e-3) + + exp_emissions_allocations_lldc = expected_df.iloc[132:179, [44, 45, 47, 48, 50, 51, 54, 55]].T.reset_index(drop=True).T.astype(float) + exp_emissions_allocations_lldc.index = expected_df.iloc[132:179, 43].astype(int, errors='ignore').values + test_emissions_allocations_lldc = test_dfs.emissions_allocations_lldc.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_emissions_allocations_lldc, exp_emissions_allocations_lldc, check_exact=False, rtol=1e-2) + + exp_addl_func_units_mdc = expected_df.iloc[191:238, 4:7].T.reset_index(drop=True).T.astype(float) + exp_addl_func_units_mdc.index = expected_df.iloc[191:238, 0].astype(int, errors='ignore').values + test_addl_func_units_mdc = test_dfs.addl_func_units_mdc.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_addl_func_units_mdc, exp_addl_func_units_mdc, check_exact=False, rtol=1e-3) + + exp_emis_diff_mdc = expected_df.iloc[191:238, 14:19].T.reset_index(drop=True).T.astype(float) + exp_emis_diff_mdc.index = expected_df.iloc[191:238, 0].astype(int, errors='ignore').values + test_emis_diff_mdc = test_dfs.emis_diff_mdc.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_emis_diff_mdc, exp_emis_diff_mdc, check_exact=False, rtol=1e-3) + + exp_emissions_allocations_mdc = expected_df.iloc[191:238, [23, 24, 26, 27, 29, 30, 33, 34]].T.reset_index(drop=True).T.astype(float) + exp_emissions_allocations_mdc.index = expected_df.iloc[191:238, 22].astype(int, errors='ignore').values + test_emissions_allocations_mdc = test_dfs.emissions_allocations_mdc.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_emissions_allocations_mdc, exp_emissions_allocations_mdc, check_exact=False, rtol=1e-2) + + # Test the final CO2 reduction output + exp_emissions_avoided = expected_df.iloc[[4, 7, 11], [13, 14]].reset_index(drop=True).T.reset_index(drop=True).T.astype(float) + test_emissions_avoided = pd.DataFrame([[test_dfs.emissions_avoided_lldc_period, test_dfs.emissions_avoided_lldc_full], + [test_dfs.emissions_avoided_mdc_period, test_dfs.emissions_avoided_mdc_full], + [test_dfs.emissions_avoided_total_period, test_dfs.emissions_avoided_total_full]]) pd.testing.assert_frame_equal(test_emissions_avoided, exp_emissions_avoided, check_exact=False, rtol=1e-2) print("Test complete: electricity cluster") -test_electricity_cluster() \ No newline at end of file +if __name__ == "__main__": + test_electricity_cluster() \ No newline at end of file diff --git a/solution/health_and_education/tests/test_space_heating.py b/solution/health_and_education/tests/test_space_heating.py new file mode 100644 index 000000000..21f966a6e --- /dev/null +++ b/solution/health_and_education/tests/test_space_heating.py @@ -0,0 +1,105 @@ +import sys +sys.path.append('c:\\Users\\sunishchal.dev\\Documents\\solutions\\solution\\health_and_education') + +import pandas as pd +import numpy as np + +from clusters import space_heating + +test_cluster = space_heating.Cluster() +test_dfs = test_cluster.run_cluster() + +expected_df = pd.read_csv('expected_space_heating.csv', header=None) + +def test_space_heating(): + + # Default columns to integers to avoid mismatch between Excel & pandas col names using T.reset_index() + exp_ref2_tam = expected_df.iloc[28:75, 1:11].T.reset_index(drop=True).T.astype(float) + # exp_ref2_tam.columns = expected_df.iloc[27, 1:11].values + exp_ref2_tam.index = expected_df.iloc[28:75, 0].astype(int).values + test_ref2_tam = test_dfs.ref2_tam.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_ref2_tam, exp_ref2_tam, check_exact=False) + + exp_ref1_tam_low_edu = expected_df.iloc[28:75, 13:23].T.reset_index(drop=True).T.astype(float) + # exp_ref1_tam_low_edu.columns = expected_df.iloc[27, 13:23].values + exp_ref1_tam_low_edu.index = expected_df.iloc[28:75, 12].astype(int).values + test_ref1_tam_low_edu = test_dfs.ref1_tam_low_edu.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_ref1_tam_low_edu, exp_ref1_tam_low_edu, check_exact=False) + + exp_ref1_tam_high_edu = expected_df.iloc[28:75, 25:35].T.reset_index(drop=True).T.astype(float) + # exp_ref1_tam_high_edu.columns = expected_df.iloc[27, 25:35].values + exp_ref1_tam_high_edu.index = expected_df.iloc[28:75, 24].astype(int).values + test_ref1_tam_high_edu = test_dfs.ref1_tam_high_edu.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_ref1_tam_high_edu, exp_ref1_tam_high_edu, check_exact=False) + + exp_ref1_tam_all_regions = expected_df.iloc[28:75, 37:47].T.reset_index(drop=True).T.astype(float) + # exp_ref1_tam_all_regions.columns = expected_df.iloc[27, 37:47].values + exp_ref1_tam_all_regions.index = expected_df.iloc[28:75, 36].astype(int).values + test_ref1_tam_all_regions = test_dfs.ref1_tam_all_regions.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_ref1_tam_all_regions, exp_ref1_tam_all_regions, check_exact=False) + + exp_ref2_demand = expected_df.iloc[79:126, 1:6].T.reset_index(drop=True).T.astype(float) + exp_ref2_demand.index = expected_df.iloc[79:126, 0].astype(int).values + test_ref2_demand = test_dfs.ref2_demand.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_ref2_demand, exp_ref2_demand, check_exact=False, rtol=1e-3) + + exp_ref1_demand = expected_df.iloc[79:126, [8,9,10,11,12,14,15,16,17,18,19]].T.reset_index(drop=True).T.astype(float) + exp_ref1_demand.index = expected_df.iloc[79:126, 7].astype(int).values + test_ref1_demand = test_dfs.ref1_demand.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_ref1_demand, exp_ref1_demand, check_exact=False, rtol=1e-3) + + exp_change_demand = expected_df.iloc[79:126, 22:30].T.reset_index(drop=True).T.astype(float) + exp_change_demand.index = expected_df.iloc[79:126, 7].astype(int).values + test_change_demand = test_dfs.change_demand.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_change_demand, exp_change_demand, check_exact=False, rtol=1e-3) + + exp_addl_func_units_highed = expected_df.iloc[134:181, 4:7].T.reset_index(drop=True).T.astype(float) + exp_addl_func_units_highed.index = expected_df.iloc[134:181, 0].astype(int, errors='ignore').values + test_addl_func_units_highed = test_dfs.addl_func_units_highed.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_addl_func_units_highed, exp_addl_func_units_highed, check_exact=False, rtol=1e-3) + + exp_addl_func_units_lowed = expected_df.iloc[134:181, 12:15].T.reset_index(drop=True).T.astype(float) + exp_addl_func_units_lowed.index = expected_df.iloc[134:181, 0].astype(int, errors='ignore').values + test_addl_func_units_lowed = test_dfs.addl_func_units_lowed.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_addl_func_units_lowed, exp_addl_func_units_lowed, check_exact=False, rtol=1e-3) + + exp_emis_diff_highed = expected_df.iloc[134:181, [22, 23, 24, 25, 27]].T.reset_index(drop=True).T.astype(float) + exp_emis_diff_highed.index = expected_df.iloc[134:181, 0].astype(int, errors='ignore').values + test_emis_diff_highed = test_dfs.emis_diff_highed.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_emis_diff_highed, exp_emis_diff_highed, check_exact=False, rtol=1e-3) + + exp_emis_diff_lowed = expected_df.iloc[134:181, [35, 36, 37, 38, 40]].T.reset_index(drop=True).T.astype(float) + exp_emis_diff_lowed.index = expected_df.iloc[134:181, 0].astype(int, errors='ignore').values + test_emis_diff_lowed = test_dfs.emis_diff_lowed.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_emis_diff_lowed, exp_emis_diff_lowed, check_exact=False, rtol=1e-3) + + exp_emissions_allocations_lldc = expected_df.iloc[134:181, [46, 47, 49, 50, 52, 53, 56, 57]].T.reset_index(drop=True).T.astype(float) + exp_emissions_allocations_lldc.index = expected_df.iloc[134:181, 45].astype(int, errors='ignore').values + test_emissions_allocations_lldc = test_dfs.emissions_allocations_lldc.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_emissions_allocations_lldc, exp_emissions_allocations_lldc, check_exact=False, rtol=1e-2) + + exp_addl_func_units_mdc = expected_df.iloc[193:240, 4:7].T.reset_index(drop=True).T.astype(float) + exp_addl_func_units_mdc.index = expected_df.iloc[193:240, 0].astype(int, errors='ignore').values + test_addl_func_units_mdc = test_dfs.addl_func_units_mdc.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_addl_func_units_mdc, exp_addl_func_units_mdc, check_exact=False, rtol=1e-3) + + exp_emis_diff_mdc = expected_df.iloc[193:240, [15, 16, 17, 18, 20]].T.reset_index(drop=True).T.astype(float) + exp_emis_diff_mdc.index = expected_df.iloc[193:240, 0].astype(int, errors='ignore').values + test_emis_diff_mdc = test_dfs.emis_diff_mdc.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_emis_diff_mdc, exp_emis_diff_mdc, check_exact=False, rtol=1e-3) + + exp_emissions_allocations_mdc = expected_df.iloc[193:240, [25, 26, 28, 29, 31, 32, 35, 36]].T.reset_index(drop=True).T.astype(float) + exp_emissions_allocations_mdc.index = expected_df.iloc[193:240, 24].astype(int, errors='ignore').values + test_emissions_allocations_mdc = test_dfs.emissions_allocations_mdc.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_emissions_allocations_mdc, exp_emissions_allocations_mdc, check_exact=False, rtol=1e-2) + + # Test the final CO2 reduction output + exp_emissions_avoided = expected_df.iloc[[4, 7, 11], [13, 14]].reset_index(drop=True).T.reset_index(drop=True).T.astype(float) + test_emissions_avoided = pd.DataFrame([[test_dfs.emissions_avoided_lldc_period, test_dfs.emissions_avoided_lldc_full], + [test_dfs.emissions_avoided_mdc_period, test_dfs.emissions_avoided_mdc_full], + [test_dfs.emissions_avoided_total_period, test_dfs.emissions_avoided_total_full]]) + pd.testing.assert_frame_equal(test_emissions_avoided, exp_emissions_avoided, check_exact=False, rtol=1e-2) + + print("Test complete: space heating cluster") + +test_space_heating() \ No newline at end of file From c71af0b43bb95de54deca30aead04e6369b8d4b5 Mon Sep 17 00:00:00 2001 From: Sunishchal Date: Sat, 19 Dec 2020 01:50:02 -0800 Subject: [PATCH 15/28] Implemented space cooling cluster --- .../clusters/cluster_model.py | 60 +++++ .../clusters/space_cooling.py | 180 +++++++++++++ .../tests/expected_space_cooling.csv | 240 ++++++++++++++++++ .../tests/expected_space_heating.csv | 4 +- .../tests/test_space_cooling.py | 105 ++++++++ 5 files changed, 587 insertions(+), 2 deletions(-) create mode 100644 solution/health_and_education/clusters/space_cooling.py create mode 100644 solution/health_and_education/tests/expected_space_cooling.csv create mode 100644 solution/health_and_education/tests/test_space_cooling.py diff --git a/solution/health_and_education/clusters/cluster_model.py b/solution/health_and_education/clusters/cluster_model.py index 00b73c538..24d5b4934 100644 --- a/solution/health_and_education/clusters/cluster_model.py +++ b/solution/health_and_education/clusters/cluster_model.py @@ -253,6 +253,29 @@ def calc_emis_diff_highed_spaceheating(self, ef_co2_eq_list): # SpaceHeating_cluster!V131:Z179 self.emis_diff_highed = emis_diff_highed + + + def calc_emis_diff_highed_spacecooling(self, ef_co2_eq_list): + # Table 9: Difference in EMISSIONS between REF1 and REF2 populations in LLDC+HighNRR+HighED + # CONVENTIONAL Avoided Emissions/ Million Metric Tons CO2 + # emissions_factors_ref1_co2eq = ef.ElectricityGenOnGrid(ac.AdvancedControls()).conv_ref_grid_CO2eq_per_KWh() + self.emissions_factors_ref1_co2eq = pd.DataFrame(ef_co2_eq_list[1:], + columns=ef_co2_eq_list[0], + index=list(range(2014, 2061)), dtype=np.float64) + + emis_diff_highed = pd.DataFrame(None, + columns=['Conventional: Grid','Conventional: Fuel', 'Conventional: Other Direct', 'Conventional: Indirect', 'Emission Reductions: Conv Total'], + index=list(range(2014, 2061)), dtype=np.float64) + + if self.assumptions['Grid'] == 'Y': + emis_diff_highed['Conventional: Grid'] = self.addl_func_units_highed['Additional Functional Units in REF2 vs REF2'] \ + * self.current_tam_mix.loc[self.current_tam_mix['Energy Source'] == 'Electricity', 'Weighting Factor'].values[0] \ + * self.assumptions['Twh_per_TWh'] * self.emissions_factors_ref1_co2eq['World'] / 100 + + emis_diff_highed['Emission Reductions: Conv Total'] = emis_diff_highed[['Conventional: Grid', 'Conventional: Fuel', 'Conventional: Other Direct', 'Conventional: Indirect']].sum(axis=1, min_count=1) + + # SpaceHeating_cluster!V131:Z179 + self.emis_diff_highed = emis_diff_highed def calc_emis_diff_lowed(self): @@ -290,6 +313,24 @@ def calc_emis_diff_lowed_spaceheating(self): # SpaceHeating_cluster!AI131:AM179 self.emis_diff_lowed = emis_diff_lowed + + + def calc_emis_diff_lowed_spacecooling(self): + # Table 10: Difference in EMISSIONS between REF1 and REF2 populations in LLDC+HighNRR+LowED + # CONVENTIONAL - Least and Less Developed Countries (sans LAC, EE, China) + emis_diff_lowed = pd.DataFrame(None, + columns=['Conventional: Grid','Conventional: Fuel', 'Conventional: Other Direct', 'Conventional: Indirect', 'Emission Reductions: Conv Total'], + index=list(range(2014, 2061)), dtype=np.float64) + + if self.assumptions['Grid'] == 'Y': + emis_diff_lowed['Conventional: Grid'] = self.addl_func_units_lowed['Additional Functional Units in REF2 vs REF2'] \ + * self.current_tam_mix.loc[self.current_tam_mix['Energy Source'] == 'Electricity', 'Weighting Factor'].values[0] \ + * self.assumptions['Twh_per_TWh'] * self.emissions_factors_ref1_co2eq['World'] / 100 + + emis_diff_lowed['Emission Reductions: Conv Total'] = emis_diff_lowed[['Conventional: Grid', 'Conventional: Fuel', 'Conventional: Other Direct', 'Conventional: Indirect']].sum(axis=1, min_count=1) + + # SpaceHeating_cluster!AI131:AM179 + self.emis_diff_lowed = emis_diff_lowed def calc_emis_alloc_lldc(self): @@ -383,6 +424,24 @@ def calc_emis_diff_mdc_spaceheating(self): self.emis_diff_mdc = emis_diff_mdc + def calc_emis_diff_mdc_spacecooling(self): + # Table 13: Difference in EMISSIONS between REF1 and REF2 populations in MDC + LAC + EE + China + # CONVENTIONAL Avoided Emissions/ Million Metric Tons CO2 + emis_diff_mdc = pd.DataFrame(None, + columns=['Conventional: Grid','Conventional: Fuel', 'Conventional: Other Direct', 'Conventional: Indirect', 'Emission Reductions: Conv Total'], + index=list(range(2014, 2061)), dtype=np.float64) + + if self.assumptions['Grid'] == 'Y': + emis_diff_mdc['Conventional: Grid'] = self.addl_func_units_mdc['Additional Functional Units in REF2 vs REF2'] \ + * self.current_tam_mix.loc[self.current_tam_mix['Energy Source'] == 'Electricity', 'Weighting Factor'].values[0] \ + * self.assumptions['Twh_per_TWh'] * self.emissions_factors_ref1_co2eq['World'] / 100 + + emis_diff_mdc['Emission Reductions: Conv Total'] = emis_diff_mdc[['Conventional: Grid', 'Conventional: Fuel', 'Conventional: Other Direct', 'Conventional: Indirect']].sum(axis=1, min_count=1) + + # SpaceHeating_cluster!O190:S238 + self.emis_diff_mdc = emis_diff_mdc + + def calc_emis_alloc_mdc(self): # Table 14: EMISSIONS ALLOCATIONS TO (a) Health & Education; (b) Education ONLY; (c) Family Planning (excluding education) # More developed countries @@ -426,6 +485,7 @@ def print_total_emis(self): min_range = min(self.emissions_allocations_mdc.index) max_range = max(self.emissions_allocations_mdc.index) + print('\n', self.name) print('Total Emissions Avoided due to Health & Education (Gt CO2-eq)') print('\nLeast & Less Developed Countries (Conventional):') print(f'{min_range} - {max_range}:', self.emissions_avoided_lldc_full) diff --git a/solution/health_and_education/clusters/space_cooling.py b/solution/health_and_education/clusters/space_cooling.py new file mode 100644 index 000000000..850c616a1 --- /dev/null +++ b/solution/health_and_education/clusters/space_cooling.py @@ -0,0 +1,180 @@ +"""Health & Education solution model for Space Cooling Cluster + Excel filename: CORE_PopulationChange_29Jan2020 (version 1.5).xlsx + Excel sheet name: SpaceCooling_cluster +""" +import pathlib +import numpy as np +import pandas as pd +import sys +__file__ = 'c:\\Users\\sunishchal.dev\\Documents\\solutions\\solution\\health_and_education\\clusters' +repo_path = str(pathlib.Path(__file__).parents[2]) +sys.path.append(repo_path) +# sys.path.append('c:\\Users\\sunishchal.dev\\Documents\\solutions') + +from model import advanced_controls as ac +from solution.health_and_education.clusters import cluster_model + +DATADIR = pathlib.Path(__file__).parents[0].joinpath('data') +THISDIR = pathlib.Path(__file__).parents[0] + +name = 'Health and Education - Space Cooling Cluster' +solution_category = ac.SOLUTION_CATEGORY.REDUCTION +period_start = 2020 +period_end = 2050 + +# % impact of educational attainment on uptake of Family Planning: +assumptions = { + 'fixed_weighting_factor': None, + 'pct_impact': 0.50, + 'use_fixed_weight': 'N', + 'Twh_per_TWh': 0.27027027027, + 'TJ_per_TWh': 1403.3616727979, + 'period_start': 2020, + 'period_end': 2050, + 'Grid': 'Y', + 'Fuel': 'N', + 'Other Direct': 'N', + 'Indirect': 'N', + 'Weighted Emission Factor for Space Heating and Cooling': 87.04 +} + +# TABLE 1: Current TAM Mix +current_tam_mix_list = [ + ['Energy Source', 'Weighting Factor', 'Include in SOL?', 'Include in CONV?'], + ['Electricity', 95.0, 'N', 'Y']] + +# Table 2: REF2, Heating Demand TAM (TWh Therms) +# SpaceHeating_cluster!B28:K75 +# TODO: Replace this with solarpvutil.Scenario.ref_tam_per_region once we resolve the data mismatch +ref2_tam_list = [ + ['World', 'OECD90', 'Eastern Europe', 'Asia (Sans Japan)', 'Middle East and Africa', 'Latin America', 'China', 'India', 'EU', 'USA'], + [9420.048251, 2629.435090, 467.0264956, 3740.718808, 871.7010232, 350.4834273, 2609.230277, 737.6365244, 1087.500722, 1156.635498], + [9656.209279, 2652.404245, 473.7443788, 3858.486310, 899.4620594, 357.2736655, 2684.721063, 770.0808236, 1095.260534, 1168.600794], + [9897.405911, 2675.160234, 480.4624485, 3979.795788, 927.8077399, 364.1923378, 2759.244739, 805.7220604, 1103.110215, 1180.687336], + [10143.55947, 2697.690347, 487.1859992, 4104.575801, 956.8036914, 371.2330824, 2832.802159, 844.5345449, 1111.017055, 1192.880541], + [10394.56021, 2720.001755, 493.9185571, 4232.712642, 986.5268690, 378.3907265, 2905.344880, 886.4870200, 1118.943754, 1205.176379], + [10650.26125, 2742.109228, 500.6717256, 4364.064076, 1017.057284, 385.6584651, 2976.798683, 931.5370924, 1126.826499, 1217.563983], + [10908.46035, 2763.946805, 507.6153027, 4497.255260, 1048.742894, 393.0316435, 3045.999583, 979.9681788, 1134.259567, 1230.079929], + [11175.39419, 2785.746158, 514.2648785, 4635.981754, 1080.845750, 400.5032807, 3116.262398, 1030.796716, 1142.309180, 1242.587344], + [11444.80163, 2807.270185, 521.0976734, 4776.443203, 1114.245777, 408.0751816, 3184.279521, 1084.972215, 1149.917341, 1255.224638], + [11718.80788, 2828.616631, 527.9536403, 4919.873113, 1148.734811, 415.7433958, 3251.183018, 1142.160017, 1157.441819, 1267.930924], + [11997.47277, 2849.810809, 534.8342118, 5066.267879, 1184.371613, 423.5055455, 3317.009906, 1202.349403, 1164.886672, 1280.686927], + [12280.84358, 2870.869850, 541.7410576, 5215.614994, 1221.218374, 431.3592584, 3381.792227, 1265.527845, 1172.254605, 1293.477706], + [12568.92632, 2891.799026, 548.6760480, 5367.873103, 1259.343547, 439.3016208, 3445.541455, 1331.678023, 1179.541693, 1306.297351], + [12861.71283, 2912.589072, 555.6413602, 5522.989215, 1298.821579, 447.3299061, 3508.263844, 1400.779038, 1186.743373, 1319.145871], + [13159.22265, 2933.223950, 562.6395920, 5680.927538, 1339.728014, 455.4422613, 3569.982466, 1472.810850, 1193.861660, 1332.021734], + [13461.47803, 2953.679689, 569.6736677, 5841.652833, 1382.141048, 463.6371519, 3630.723581, 1547.752228, 1200.900149, 1344.925447], + [13776.64516, 2974.093325, 576.1030058, 6010.154533, 1425.054654, 471.9079223, 3694.950020, 1624.300945, 1208.587942, 1357.672940], + [14080.29858, 2993.983903, 583.8616610, 6171.317093, 1471.789084, 480.2670008, 3749.362668, 1706.283561, 1214.743813, 1370.815396], + [14396.88825, 3013.819320, 591.0218940, 6340.178401, 1519.166583, 488.6970717, 3807.292671, 1789.837654, 1221.545638, 1383.797602], + [14718.28631, 3033.424737, 598.2348567, 6511.669956, 1568.347076, 497.2000621, 3864.328273, 1876.223681, 1228.262046, 1396.809417], + [15044.51201, 3052.780756, 605.5093718, 6685.747544, 1619.408848, 505.7727659, 3920.498624, 1965.419766, 1234.887254, 1409.858355], + [15375.58135, 3071.870732, 612.8529516, 6862.367987, 1672.427896, 514.4121698, 3975.827797, 2057.405387, 1241.416439, 1422.949751], + [15711.50322, 3090.682449, 620.2695466, 7041.487673, 1727.477488, 523.1156788, 4030.332384, 2152.160779, 1247.846849, 1436.086207], + [16052.28355, 3109.208587, 627.7617459, 7223.066701, 1784.626774, 531.8810400, 4084.020627, 2249.669544, 1254.177458, 1449.265910], + [16397.93061, 3127.443761, 635.3339739, 7407.069784, 1843.942261, 540.7060191, 4136.896917, 2349.918879, 1260.407096, 1462.484522], + [16748.45150, 3145.385100, 642.9905562, 7593.464041, 1905.488128, 549.5885093, 4188.960804, 2452.898438, 1266.535231, 1475.735478], + [17091.97248, 3163.026647, 651.7008234, 7774.673924, 1970.954289, 558.5336453, 4233.554859, 2560.518544, 1272.526768, 1489.291403], + [17464.12973, 3180.369617, 658.5699365, 7973.274595, 2035.536644, 567.5170124, 4290.652209, 2666.997351, 1278.483420, 1502.320672], + [17829.28699, 3197.399734, 666.4968113, 8166.600653, 2104.179234, 576.5580150, 4340.284787, 2778.083334, 1284.300566, 1515.657342], + [18199.31007, 3214.108878, 674.5154003, 8362.139339, 2175.325464, 585.6471742, 4389.114621, 2891.835738, 1290.008739, 1529.027371], + [18574.18193, 3230.485505, 682.6244180, 8559.835021, 2249.043017, 594.7824181, 4437.146810, 3008.234709, 1295.603500, 1542.435097], + [18953.88721, 3246.520944, 690.8226691, 8759.632821, 2325.400130, 603.9615041, 4484.381827, 3127.261136, 1301.081773, 1555.884357], + [19338.41858, 3262.207677, 699.1107351, 8961.482779, 2404.465766, 613.1820255, 4530.817770, 3248.896850, 1306.441952, 1569.377062], + [19727.76983, 3277.545163, 707.4885610, 9165.335357, 2486.309807, 622.4412734, 4576.443033, 3373.125729, 1311.684897, 1582.914696], + [20121.92719, 3292.540499, 715.9531831, 9371.135510, 2571.002674, 631.7363101, 4621.235057, 3499.933002, 1316.813108, 1596.500400], + [20520.87524, 3307.205591, 724.5004991, 9578.826412, 2658.615316, 641.0639922, 4665.164043, 3629.305013, 1321.830570, 1610.137671], + [20932.29082, 3321.393455, 732.4832549, 9793.377495, 2748.135534, 650.4163569, 4712.641740, 3759.945344, 1326.059117, 1623.645167], + [21333.10011, 3335.569214, 741.8321878, 9999.662204, 2842.882782, 659.8052001, 4750.349882, 3895.682102, 1331.544345, 1637.578378], + [21746.36897, 3349.261964, 750.6153558, 10212.70580, 2939.678114, 669.2131671, 4791.594579, 4032.651635, 1336.242131, 1651.385498], + [22164.38133, 3362.621883, 759.4751181, 10427.41638, 3039.674495, 678.6421668, 4831.900149, 4172.114068, 1340.834901, 1665.256518], + [22587.10611, 3375.642046, 768.4099106, 10643.72325, 3142.941784, 688.0891864, 4871.220676, 4314.046218, 1345.323486, 1679.197693], + [23014.52377, 3388.315964, 777.4186819, 10861.56291, 3249.550253, 697.5512374, 4909.525374, 4458.425906, 1349.708850, 1693.213458], + [23446.63038, 3400.640666, 786.5014000, 11080.88226, 3359.570772, 707.0254478, 4946.802415, 4605.234322, 1353.992610, 1707.305728], + [23883.44127, 3412.612777, 795.6585368, 11301.64086, 3473.074774, 716.5089254, 4983.067200, 4754.453835, 1358.176320, 1721.473510], + [24324.98199, 3424.224576, 804.8904396, 11523.80453, 3590.133911, 725.9986410, 5018.352258, 4906.064729, 1362.260876, 1735.714428], + [24771.28903, 3435.466979, 814.1977203, 11747.34646, 3710.820153, 735.4915272, 5052.706457, 5060.047241, 1366.246934, 1750.024479], + [25220.53039, 3446.410046, 823.7425644, 11970.98180, 3835.476276, 744.9857938, 5085.063399, 5216.702682, 1370.481990, 1764.446230]] + +# GRID EMISSIONS FACTORS: REF Grid EFs kg CO2-eq per kwh +# Emissions Factors!B11:K57 +# TODO: Replace this with emissions_factors module once interface is better understood +ef_co2_eq_list = [ + ['World', 'OECD90', 'Eastern Europe', 'Asia (Sans Japan)', 'Middle East and Africa', 'Latin America', 'China', 'India', 'EU', 'USA'], + [None, None, None, None, None, None, None, None, None, None], + [0.617381628, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.613053712, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.605559021, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.599823764, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.596692109, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.592956465, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.589394210, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.585889941, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.582469966, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.579126508, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.576180724, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.572640473, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.569484654, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.566378788, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.563317175, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.560425096, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.557305440, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.554345365, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.551409592, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.548493724, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.545513743, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.542688056, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.539794403, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.536903541, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.533998347, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.530880184, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.528185055, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.525268472, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.522337859, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.519390128, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.516316183, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.513431317, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.510414389, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.507368630, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.504753472, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.503017663, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.501095098, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.499244741, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.497355610, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.495425752, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.493412239, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.491436597, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.489373931, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.487263794, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.485104746, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.483057065, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666]] + +class Cluster: + + def __init__(self): + self.name = name + + def run_cluster(self): + scenario = cluster_model.Scenario(name, assumptions) + scenario.load_pop_data(DATADIR) + scenario.load_tam_mix(current_tam_mix_list) + scenario.load_ref2_tam(ref2_tam_list) + scenario.calc_ref1_tam() + scenario.calc_ref2_demand() + scenario.calc_ref1_demand() + scenario.calc_change_demand() + scenario.calc_addl_units_highed() + scenario.calc_addl_units_lowed() + scenario.calc_emis_diff_highed_spacecooling(ef_co2_eq_list) + scenario.calc_emis_diff_lowed_spacecooling() + scenario.calc_emis_alloc_lldc() + scenario.calc_addl_units_mdc() + scenario.calc_emis_diff_mdc_spacecooling() + scenario.calc_emis_alloc_mdc() + scenario.calc_total_emis() + scenario.print_total_emis() + return scenario + +if __name__ == "__main__": + cluster = Cluster() + cluster.run_cluster() \ No newline at end of file diff --git a/solution/health_and_education/tests/expected_space_cooling.csv b/solution/health_and_education/tests/expected_space_cooling.csv new file mode 100644 index 000000000..a9fcc7449 --- /dev/null +++ b/solution/health_and_education/tests/expected_space_cooling.csv @@ -0,0 +1,240 @@ +2,,Cooling Demand,(TWh),,,,,Sheet Estimates the Emissions Reduction from this Solution due to Health & Education,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,Period Start:,2020,,Total Emissions Avoided due to Health & Education (Gt CO2-eq),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,COPY VALUES FROM SOLUTION MODEL,,,,Period End:,2050,,,,2020-2050,2015-2060,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,TABLE 1: Current TAM Mix,2018,Include in SOL?,Include in CONV?,,,,LLDC,SOLUTION,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,CONVENTIONAL,1.870547002,4.166936004,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +Keywords:,,,,,,,,,,,MDC,SOLUTION,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +LLDC,Least and Less Developed Countries,,,,,,,,,,,CONVENTIONAL,1.826114267,3.333576155,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +MDC,More Developed Countries,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +LLDC+HighNRR+HigherEd,Least and Less Developed Countries with High Net Reproductive Rates & Higher Educational Attainment.,"NOTE: China, LAC, and EE are considered as LLDC Regions with Low NRR and are accounted for under the _mdc sheet.",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +LLDC+HighNRR+LowEd,"Least and Less Developed Countries with High Net Reproductive Rates & Lower Educational Attainment. This excludes China, LAC, and EE.","NOTE: China, LAC, and EE are considered as LLDC Regions with Low NRR and are accounted for under the _mdc sheet.",,,,,,,,,TOTAL,SOLUTION,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +REF1,Reference Scenario 1 with Higher Population,,,Electricity,0.95,,Y,,,,,CONVENTIONAL,3.696661269,7.50051216,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +REF2,Reference Scenario 2 with Lower Population,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +TAM,Total Addressable Market,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +LAC,Latin American Countries,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +EE,Eastern Europe,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +TWh,Terrawatt-Hours,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +NRR,Net Reproductive Rate,,,Assumptions:,,Use fixed weight?,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,Fixed weighting factor:,,N,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,% impact of educational attainment on uptake of Family Planning:,0.5,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,Twh per TWh,0.27027027,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,Fuel unit (TJ) per TWh,1403.361673,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,Direct Emissions,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,Indirect Emissions,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +"Table 2: REF2, Cooling Demand TAM (TWh)",,,,,,,,,,,,"Table 3: REF1 ,Cooling Demand TAM (TWh)",,,,,,,,,,,,Table 3: REF1 Cooling Demand TAM (TWh),,,,,,,,,,,,Table 3: REF1 Cooling Demand TAM (TWh),,,,,,,,,,,,,,,,,,,,, +COPY TABLES BELOW FROM LATEST 2 SOLUTION MODELS,,,,,,,,,,,,(a) FOR POPULATIONS IN REGIONS WITH LOW EDUCATIONAL ATTAINMENT ONLY!,,,,,,,,,,,,(b) FOR REGIONS WITH HIGHER EDUCATIONAL ATTAINMENT,,,,,,,,,,,,(c) FOR ALL REGIONS,,,,,,,,,,,,,,,,,,,,, +,Regions included as LLDC+HighNRR:,N,N,Y,Y,N,,,,,,,Regions included as LLDC+HighNRR:,N,N,Y,Y,N,,,,,,,Regions included as LLDC+HighNRR:,N,N,Y,Y,N,,,,,,,,,,,,,,,,,,CHECK,,,,,,,,, +,World,OECD90,Eastern Europe,Asia (Sans Japan),Middle East and Africa,Latin America,China,India,EU,USA,,,World,OECD90,Eastern Europe,"Asia (Sans Japan, Sans China)",Middle East and Africa,Latin America,China,India,EU,USA,,,World,OECD90,Eastern Europe,Asia (Sans Japan),Middle East and Africa,Latin America,China,India,EU,USA,,,World,OECD90,Eastern Europe,Asia (Sans Japan),Middle East and Africa,Latin America,China,India,EU,USA,,WORLD,,REGIONAL TOTAL,,% error,OECD90,Eastern Europe,Asia (Sans Japan),Middle East and Africa,Latin America +2014,9420.048251,2629.43509,467.0264956,3740.718808,871.7010232,350.4834273,2609.230277,737.6365244,1087.500722,1156.635498,,2014,0,0,0,0,0,0,0,0,0,0,,2014,9420.048251,2629.43509,467.0264956,3740.718808,871.7010232,350.4834273,2609.230277,737.6365244,1087.500722,1156.635498,,2014,9420.048251,2629.43509,467.0264956,3740.718808,871.7010232,350.4834273,2609.230277,737.6365244,1087.500722,1156.635498,,9420.048251,OK,8059.364845,OK,,2629.43509,467.0264956,3740.718808,871.7010232,350.4834273 +2015,9656.209279,2652.404245,473.7443788,3858.48631,899.4620594,357.2736655,2684.721063,770.0808236,1095.260534,1168.600794,,2015,1262.138272,0,9.866369209,612.7471453,539.1855972,100.33916,0,0,0,0,,2015,8394.071007,2652.404245,463.8780096,3245.739165,360.2764622,256.9345056,2684.721063,770.0808236,1095.260534,1168.600794,,2015,9656.209279,2652.404245,473.7443788,3858.48631,899.4620594,357.2736655,2684.721063,770.0808236,1095.260534,1168.600794,,9656.209279,OK,8241.370659,OK,,2652.404245,473.7443788,3858.48631,899.4620594,357.2736655 +2016,9897.405911,2675.160234,480.4624485,3979.795788,927.8077399,364.1923378,2759.244739,805.7220604,1103.110215,1180.687336,,2016,1312.402169,0,10.23562851,640.3424712,559.0859941,102.7380751,0,0,0,0,,2016,8595.433492,2677.374034,470.5948412,3343.718452,369.7493584,261.9394426,2761.694444,806.6512794,1103.898561,1181.796753,,2016,9907.835661,2677.374034,480.8304697,3984.060924,928.8353525,364.6775177,2761.694444,806.6512794,1103.898561,1181.796753,,9907.835661,OK,8435.778297,OK,,2677.374034,480.8304697,3984.060924,928.8353525,364.6775177 +2017,10143.55947,2697.690347,487.1859992,4104.575801,956.8036914,371.2330824,2832.802159,844.5345449,1111.017055,1192.880541,,2017,1366.643447,0,10.62476914,670.9557568,579.8022599,105.2606608,0,0,0,0,,2017,8802.694618,2703.109911,477.4683573,3444.236682,379.5332629,267.1664193,2838.881431,846.8823249,1112.949589,1195.595543,,2017,10169.33806,2703.109911,488.0931265,4115.192439,959.3355229,372.4270801,2838.881431,846.8823249,1112.949589,1195.595543,,10169.33806,OK,8638.15808,OK,,2703.109911,488.0931265,4115.192439,959.3355229,372.4270801 +2018,10394.56021,2720.001755,493.9185571,4232.712642,986.526869,378.3907265,2905.34488,886.48702,1118.943754,1205.176379,,2018,1424.869768,0,11.03212703,704.5745157,601.366169,107.8969562,0,0,0,0,,2018,9015.218402,2729.472925,484.4756121,3547.006972,389.6301772,272.5969513,2916.044402,890.7384201,1122.317303,1209.921015,,2018,10440.08817,2729.472925,495.5077392,4251.581488,990.9963461,380.4939075,2916.044402,890.7384201,1122.317303,1209.921015,,10440.08817,OK,8848.052405,OK,,2729.472925,495.5077392,4251.581488,990.9963461,380.4939075 +2019,10650.26125,2742.109228,500.6717256,4364.064076,1017.057284,385.6584651,2976.798683,931.5370924,1126.826499,1217.563983,,2019,1487.013173,0,11.45465939,741.1364062,623.7934337,110.6286742,0,0,0,0,,2019,9231.905281,2756.228391,491.5817547,3651.53915,400.0202632,278.1979554,2992.755326,938.1283583,1131.837793,1224.639528,,2019,10718.91845,2756.228391,503.0364141,4392.675557,1023.813697,388.8266297,2992.755326,938.1283583,1131.837793,1224.639528,,10718.91845,OK,9064.580689,OK,,2756.228391,503.0364141,4392.675557,1023.813697,388.8266297 +2020,10908.46035,2763.946805,507.6153027,4497.25526,1048.742894,393.0316435,3045.999583,979.9681788,1134.259567,1230.079929,,2020,1553.130919,0,11.89370106,780.5173437,647.2780335,113.4418413,0,0,0,0,,2020,9449.688356,2783.118678,498.9181257,3756.24808,410.7979307,283.9441678,3067.55434,989.3044944,1141.026513,1239.69497,,2020,11002.81928,2783.118678,510.8118268,4536.765424,1058.075964,397.386009,3067.55434,989.3044944,1141.026513,1239.69497,,11002.81928,OK,9286.157902,OK,,2783.118678,510.8118268,4536.765424,1058.075964,397.386009 +2021,11175.39419,2785.746158,514.2648785,4635.981754,1080.84575,400.5032807,3116.262398,1030.796716,1142.30918,1242.587344,,2021,1623.007727,0,12.33754483,822.9726708,671.3653606,116.3321509,0,0,0,0,,2021,9674.934652,2810.326767,505.9992049,3864.561336,421.665608,289.827183,3143.698369,1043.292972,1150.935239,1254.924925,,2021,11297.94238,2810.326767,518.3367497,4687.534007,1093.030969,406.159334,3143.698369,1043.292972,1150.935239,1254.924925,,11297.94238,OK,9515.387826,OK,,2810.326767,518.3367497,4687.534007,1093.030969,406.159334 +2022,11444.80163,2807.270185,521.0976734,4776.443203,1114.245777,408.0751816,3184.279521,1084.972215,1149.917341,1255.224638,,2022,1697.056267,0,12.79826776,868.3278055,696.6257168,119.3044772,0,0,0,0,,2022,9901.220359,2837.66097,513.3058945,3972.968231,432.971218,295.8551471,3217.923698,1101.112294,1160.520954,1270.494999,,2022,11598.27663,2837.66097,526.1041622,4841.296036,1129.596935,415.1596243,3217.923698,1101.112294,1160.520954,1270.494999,,11598.27663,OK,9749.817727,OK,,2837.66097,526.1041622,4841.296036,1129.596935,415.1596243 +2023,11718.80788,2828.616631,527.9536403,4919.873113,1148.734811,415.7433958,3251.183018,1142.160017,1157.441819,1267.930924,,2023,1775.298071,0,13.27198295,916.7005507,722.9669814,122.3585561,0,0,0,0,,2023,10130.78096,2865.232164,520.6899219,4082.658459,444.6137259,302.0238433,3291.384339,1162.470332,1170.155455,1286.357144,,2023,11906.07903,2865.232164,533.9619048,4999.35901,1167.580707,424.3823993,3291.384339,1162.470332,1170.155455,1286.357144,,11906.07903,OK,9990.516186,OK,,2865.232164,533.9619048,4999.35901,1167.580707,424.3823993 +2024,11997.47277,2849.810809,534.8342118,5066.267879,1184.371613,423.5055455,3317.009906,1202.349403,1164.886672,1280.686927,,2024,1857.866758,0,13.75876269,968.1378723,750.4741472,125.4959757,0,0,0,0,,2024,10363.76585,2893.10392,528.1694251,4193.693351,456.5942399,308.3314749,3364.175275,1227.414166,1179.86787,1302.519887,,2024,12221.6326,2893.10392,541.9281878,5161.831223,1207.068387,433.8274505,3364.175275,1227.414166,1179.86787,1302.519887,,12221.6326,OK,10237.75917,OK,,2893.10392,541.9281878,5161.831223,1207.068387,433.8274505 +2025,12280.84358,2870.86985,541.7410576,5215.614994,1221.218374,431.3592584,3381.792227,1265.527845,1172.254605,1293.477706,,2025,1944.877045,0,14.25871752,1022.67737,779.2239306,128.7170268,0,0,0,0,,2025,10600.24308,2921.309446,535.7582504,4306.099753,468.9169622,314.775072,3436.367385,1295.980606,1189.676276,1318.983018,,2025,12545.12012,2921.309446,550.0169679,5328.777123,1248.140893,443.4920988,3436.367385,1295.980606,1189.676276,1318.983018,,12545.12012,OK,10491.73653,OK,,2921.309446,550.0169679,5328.777123,1248.140893,443.4920988 +2026,12568.92632,2891.799026,548.676048,5367.873103,1259.343547,439.3016208,3445.541455,1331.678023,1179.541693,1306.297351,,2026,2036.44343,0,14.77202834,1080.360697,809.288786,132.0219188,0,0,0,0,,2026,10840.19798,2949.852401,543.4611585,4419.853066,481.5969978,321.35222,3507.963964,1368.204836,1199.577706,1335.743706,,2026,12876.64141,2949.852401,558.2331869,5500.213763,1290.885784,453.3741388,3507.963964,1368.204836,1199.577706,1335.743706,,12876.64141,OK,10752.55927,OK,,2949.852401,558.2331869,5500.213763,1290.885784,453.3741388 +2027,12861.71283,2912.589072,555.6413602,5522.989215,1298.821579,447.3299061,3508.263844,1400.779038,1186.743373,1319.145871,,2027,2132.618159,0,15.2988058,1141.195041,840.7176964,135.4066161,0,0,0,0,,2027,11083.39932,2978.664505,551.2735996,4534.838452,494.6512733,328.0560002,3578.91732,1444.081443,1209.547239,1352.77273,,2027,13216.01748,2978.664505,566.5724054,5676.033493,1335.36897,463.4626163,3578.91732,1444.081443,1209.547239,1352.77273,,13216.01748,OK,11020.10199,OK,,2978.664505,566.5724054,5676.033493,1335.36897,463.4626163 +2028,13159.22265,2933.22395,562.639592,5680.927538,1339.728014,455.4422613,3569.982466,1472.81085,1193.86166,1332.021734,,2028,2233.370761,0,15.83906137,1205.133993,873.5357151,138.8619918,0,0,0,0,,2028,11329.4452,3007.619409,559.1896502,4650.890222,508.0882838,334.8734994,3649.194458,1523.55241,1219.555595,1370.012047,,2028,13562.81596,3007.619409,575.0287116,5856.024215,1381.623999,473.7354912,3649.194458,1523.55241,1219.555595,1370.012047,,13562.81596,OK,11294.03183,OK,,3007.619409,575.0287116,5856.024215,1381.623999,473.7354912 +2029,13461.47803,2953.679689,569.6736677,5841.652833,1382.141048,463.6371519,3630.723581,1547.752228,1200.900149,1344.925447,,2029,2338.612323,0,16.3927686,1272.091788,907.7519965,142.3757706,0,0,0,0,,2029,11577.80538,3036.546714,567.1991347,4767.794796,521.9154591,341.7883515,3718.746913,1606.51897,1229.563516,1387.385871,,2029,13916.4177,3036.546714,583.5919033,6039.886583,1429.667456,484.1641221,3718.746913,1606.51897,1229.563516,1387.385871,,13916.4177,OK,11573.85678,OK,,3036.546714,583.5919033,6039.886583,1429.667456,484.1641221 +2030,13776.64516,2974.093325,576.1030058,6010.154533,1425.054654,471.9079223,3694.95002,1624.300945,1208.587942,1357.67294,,2030,2447.890574,0,16.94119002,1342.337842,942.674378,145.9371633,0,0,0,0,,2030,11836.92455,3065.475592,574.6525145,4890.259572,535.7377801,348.7842911,3792.096715,1691.565908,1240.285095,1404.645517,,2030,14284.81512,3065.475592,591.5937045,6232.597414,1478.412158,494.7214544,3792.096715,1691.565908,1240.285095,1404.645517,,14284.81512,OK,11862.80032,OK,,3065.475592,591.5937045,6232.597414,1478.412158,494.7214544 +2031,14080.29858,2993.983903,583.861661,6171.317093,1471.789084,480.2670008,3749.362668,1706.283561,1214.743813,1370.815396,,2031,2562.413601,0,17.54120679,1414.821309,980.5050374,149.5460482,0,0,0,0,,2031,12080.06967,3093.85717,583.4741042,5003.573943,550.7889908,355.8647781,3855.545088,1782.66399,1249.464536,1422.337119,,2031,14642.48327,3093.85717,601.015311,6418.395252,1531.294028,505.4108263,3855.545088,1782.66399,1249.464536,1422.337119,,14642.48327,OK,12149.97259,FALSE,,3093.85717,601.015311,6418.395252,1531.294028,505.4108263 +2032,14396.88825,3013.81932,591.021894,6340.178401,1519.166583,488.6970717,3807.292671,1789.837654,1221.545638,1383.797602,,2032,2681.096502,0,18.13688832,1490.585676,1019.17443,153.1995074,0,0,0,0,,2032,12333.83359,3122.18276,591.7418274,5122.362556,565.872266,363.0193333,3922.77799,1875.832928,1259.336862,1439.893462,,2032,15014.93009,3122.18276,609.8787157,6612.948232,1585.046696,516.2188407,3922.77799,1875.832928,1259.336862,1439.893462,,15014.93009,OK,12446.27524,OK,,3122.18276,609.8787157,6612.948232,1585.046696,516.2188407 +2033,14718.28631,3033.424737,598.2348567,6511.669956,1568.347076,497.2000621,3864.328273,1876.223681,1228.262046,1396.809417,,2033,2804.463774,0,18.74925007,1569.327542,1059.483122,156.9038605,0,0,0,0,,2033,12589.58937,3150.299759,600.1067139,5241.836776,581.4356573,370.2563232,3989.333344,1972.45086,1269.155671,1457.523003,,2033,15394.05314,3150.299759,618.855964,6811.164318,1640.918779,527.1601836,3989.333344,1972.45086,1269.155671,1457.523003,,15394.05314,OK,12748.399,OK,,3150.299759,618.855964,6811.164318,1640.918779,527.1601836 +2034,15044.51201,3052.780756,605.5093718,6685.747544,1619.408848,505.7727659,3920.498624,1965.419766,1234.887254,1409.858355,,2034,2932.696778,0,19.3811161,1651.119615,1101.528376,160.6676702,0,0,0,0,,2034,12847.71319,3178.247603,608.5817609,5362.14906,597.530183,377.5853133,4055.350427,2072.600354,1278.927837,1475.260401,,2034,15780.40997,3178.247603,627.962877,7013.268675,1699.058559,538.2529835,4055.350427,2072.600354,1278.927837,1475.260401,,15780.40997,OK,13056.7907,OK,,3178.247603,627.962877,7013.268675,1699.058559,538.2529835 +2035,15375.58135,3071.870732,612.8529516,6862.367987,1672.427896,514.4121698,3975.827797,2057.405387,1241.416439,1422.949751,,2035,3065.976545,0,20.03495017,1736.037732,1145.405664,164.4981985,0,0,0,0,,2035,13108.51336,3206.058078,617.1774067,5483.423349,614.2009999,385.0142853,4120.937374,2176.36625,1288.657811,1493.134547,,2035,16174.4899,3206.058078,637.2123569,7219.461081,1759.606664,549.5124838,4120.937374,2176.36625,1288.657811,1493.134547,,16174.4899,OK,13371.85066,OK,,3206.058078,637.2123569,7219.461081,1759.606664,549.5124838 +2036,15711.50322,3090.682449,620.2695466,7041.487673,1727.477488,523.1156788,4030.332384,2152.160779,1247.846849,1436.086207,,2036,3204.417241,0,20.71193352,1824.112979,1191.194945,168.397383,0,0,0,0,,2036,13372.0626,3233.725484,625.8990157,5605.683566,631.4771834,392.5444538,4186.137149,2283.783736,1298.343443,1511.152026,,2036,16576.47984,3233.725484,646.6109492,7429.796545,1822.672129,560.9418368,4186.137149,2283.783736,1298.343443,1511.152026,,16576.47984,OK,13693.74694,OK,,3233.725484,646.6109492,7429.796545,1822.672129,560.9418368 +2037,16052.28355,3109.208587,627.7617459,7223.066701,1784.626774,531.88104,4084.020627,2249.669544,1254.177458,1449.26591,,2037,3348.134757,0,21.4127186,1915.381515,1238.975224,172.3652993,0,0,0,0,,2037,13638.33746,3261.234925,634.7467039,5728.907161,649.3787721,400.1749034,4250.927358,2394.892944,1307.976837,1529.311498,,2037,16986.47222,3261.234925,656.1594225,7644.288676,1888.353996,572.5402027,4250.927358,2394.892944,1307.976837,1529.311498,,16986.47222,OK,14022.57722,OK,,3261.234925,656.1594225,7644.288676,1888.353996,572.5402027 +2038,16397.93061,3127.443761,635.3339739,7407.069784,1843.942261,540.7060191,4136.896917,2349.918879,1260.407096,1462.484522,,2038,3497.338686,0,22.13870541,2009.949916,1288.844213,176.4058515,0,0,0,0,,2038,13907.45554,3288.604467,643.7197779,5853.124198,667.9319283,407.9099434,4315.273545,2509.809868,1317.551384,1547.627883,,2038,17404.79422,3288.604467,665.8584833,7863.074114,1956.776141,584.3157949,4315.273545,2509.809868,1317.551384,1547.627883,,17404.79422,OK,14358.629,OK,,3288.604467,665.8584833,7863.074114,1956.776141,584.3157949 +2039,16748.4515,3145.3851,642.9905562,7593.464041,1905.488128,549.5885093,4188.960804,2452.898438,1266.535231,1475.735478,,2039,3652.277496,0,22.89130371,2107.956356,1340.906412,180.5234246,0,0,0,0,,2039,14179.53518,3315.859446,652.8153376,5978.358676,687.1609751,415.7546883,4379.109907,2628.683844,1327.059242,1566.118706,,2039,17831.81267,3315.859446,675.7066413,8086.315033,2028.067387,596.2781129,4379.109907,2628.683844,1327.059242,1566.118706,,17831.81267,OK,14702.22662,OK,,3315.859446,675.7066413,8086.315033,2028.067387,596.2781129 +2040,17091.97248,3163.026647,651.7008234,7774.673924,1970.954289,558.5336453,4233.554859,2560.518544,1272.526768,1489.291403,,2040,3813.830815,0,23.70685286,2208.98222,1396.417262,184.7244796,0,0,0,0,,2040,14441.35323,3343.022063,663.0149124,6097.121871,707.6733346,423.7192865,4435.406962,2753.723481,1336.460148,1585.097086,,2040,18255.18405,3343.022063,686.7217653,8306.104091,2104.090597,608.4437661,4435.406962,2753.723481,1336.460148,1585.097086,,18255.18405,OK,15048.38228,OK,,3343.022063,686.7217653,8306.104091,2104.090597,608.4437661 +2041,17464.12973,3180.369617,658.5699365,7973.274595,2035.536644,567.5170124,4290.652209,2666.997351,1278.48342,1502.320672,,2041,3980.283956,0,24.48110333,2314.775952,1452.022259,189.004642,0,0,0,0,,2041,14732.95604,3370.112135,671.3725149,6231.940109,727.7441103,431.7901251,4505.0908,2878.828314,1345.861261,1603.691414,,2041,18713.23999,3370.112135,695.8536182,8546.716062,2179.766369,620.7947671,4505.0908,2878.828314,1345.861261,1603.691414,,18713.23999,OK,15413.24295,OK,,3370.112135,695.8536182,8546.716062,2179.766369,620.7947671 +2042,17829.28699,3197.399734,666.4968113,8166.600653,2104.179234,576.558015,4340.284787,2778.083334,1284.300566,1515.657342,,2042,4153.728011,0,25.32013421,2423.762404,1511.271788,193.3736851,0,0,0,0,,2042,15014.42831,3397.137414,680.8421648,6360.303939,749.1481349,439.9861574,4567.246384,3010.27768,1355.160854,1622.80312,,2042,19168.15632,3397.137414,706.1622991,8784.066344,2260.419923,633.3598425,4567.246384,3010.27768,1355.160854,1622.80312,,19168.15632,OK,15781.14582,OK,,3397.137414,706.1622991,8784.066344,2260.419923,633.3598425 +2043,18199.31007,3214.108878,674.5154003,8362.139339,2175.325464,585.6471742,4389.114621,2891.835738,1290.008739,1529.027371,,2043,4333.719429,0,26.18888441,2536.577729,1573.120372,197.8324434,0,0,0,0,,2043,15299.15717,3424.128589,690.4498866,6489.705386,771.3256886,448.3049121,4628.804215,3146.099644,1364.406231,1642.164739,,2043,19632.8766,3424.128589,716.638771,9026.283115,2344.446061,646.1373555,4628.804215,3146.099644,1364.406231,1642.164739,,19632.8766,OK,16157.63389,OK,,3424.128589,716.638771,9026.283115,2344.446061,646.1373555 +2044,18574.18193,3230.485505,682.624418,8559.835021,2249.043017,594.7824181,4437.14681,3008.234709,1295.6035,1542.435097,,2044,4520.449076,0,27.08704791,2653.301503,1637.676341,202.3841838,0,0,0,0,,2044,15587.1984,3451.118776,700.2072223,6620.121538,794.2995798,456.7493708,4689.706771,3286.38373,1373.613512,1661.808047,,2044,20107.64748,3451.118776,727.2942702,9273.423041,2431.975921,659.1335545,4689.706771,3286.38373,1373.613512,1661.808047,,20107.64748,OK,16542.94556,OK,,3451.118776,727.2942702,9273.423041,2431.975921,659.1335545 +2045,18953.88721,3246.520944,690.8226691,8759.632821,2325.40013,603.9615041,4484.381827,3127.261136,1301.081773,1555.884357,,2045,4714.109994,0,28.0144812,2774.014856,1705.048911,207.0317455,0,0,0,0,,2045,15878.59708,3478.13806,710.1251401,6751.529147,818.0916224,465.3221734,4749.913113,3431.214568,1382.798408,1681.760725,,2045,20592.70707,3478.13806,738.1396213,9525.544003,2523.140534,672.3539189,4749.913113,3431.214568,1382.798408,1681.760725,,20592.70707,OK,16937.31614,OK,,3478.13806,738.1396213,9525.544003,2523.140534,672.3539189 +2046,19338.41858,3262.207677,699.1107351,8961.482779,2404.465766,613.1820255,4530.81777,3248.89685,1306.441952,1569.377062,,2046,4914.90863,0,28.97181215,2898.812457,1775.346693,211.7776678,0,0,0,0,,2046,16173.39407,3505.200066,720.2102168,6883.919001,842.724231,474.0258129,4809.408426,3580.689132,1391.967626,1702.039564,,2046,21088.3027,3505.200066,749.182029,9782.731458,2618.070924,685.8034807,4809.408426,3580.689132,1391.967626,1702.039564,,21088.3027,OK,17340.98796,OK,,3505.200066,749.182029,9782.731458,2618.070924,685.8034807 +2047,19727.76983,3277.545163,707.488561,9165.335357,2486.309807,622.4412734,4576.443033,3373.125729,1311.684897,1582.914696,,2047,5123.047576,0,29.95970769,3027.785927,1848.678339,216.623603,0,0,0,0,,2047,16471.60829,3532.320169,730.4681842,7017.278048,868.2173606,482.8621045,4868.211168,3734.884989,1401.129838,1722.656928,,2047,21594.65587,3532.320169,760.4278919,10045.06397,2716.895699,699.4857075,4868.211168,3734.884989,1401.129838,1722.656928,,21594.65587,OK,17754.19344,OK,,3532.320169,760.4278919,10045.06397,2716.895699,699.4857075 +2048,20121.92719,3292.540499,715.9531831,9371.13551,2571.002674,631.7363101,4621.235057,3499.933002,1316.813108,1596.5004,,2048,5338.707185,0,30.97806482,3161.004496,1925.154448,221.570175,0,0,0,0,,2048,16773.2309,3559.532089,740.9090118,7151.571668,894.5866488,491.8319501,4926.358547,3893.834228,1410.306355,1743.630417,,2048,22111.93808,3559.532089,771.8870767,10312.57616,2819.741097,713.4021251,4926.358547,3893.834228,1410.306355,1743.630417,,22111.93808,OK,18177.13855,OK,,3559.532089,771.8870767,10312.57616,2819.741097,713.4021251 +2049,20520.87524,3307.205591,724.5004991,9578.826412,2658.615316,641.0639922,4665.164043,3629.305013,1321.83057,1610.137671,,2049,5562.054819,0,32.02657298,3298.524565,2004.886472,226.6172095,0,0,0,0,,2049,17078.23585,3586.874627,751.5438162,7286.758029,921.8450994,500.9355727,4983.910939,4057.539433,1419.522936,1764.97694,,2049,22640.29067,3586.874627,783.5703892,10585.28259,2926.731571,727.5527821,4983.910939,4057.539433,1419.522936,1764.97694,,22640.29067,OK,18610.01196,OK,,3586.874627,783.5703892,10585.28259,2926.731571,727.5527821 +2050,20932.29082,3321.393455,732.4832549,9793.377495,2748.135534,650.4163569,4712.64174,3759.945344,1326.059117,1623.645167,,2050,5792.802896,0,33.07608999,3440.799562,2087.164409,231.7628346,0,0,0,0,,2050,17395.5748,3614.207579,761.7133237,7427.98173,949.6321294,510.1693337,5045.680739,4224.566045,1428.067203,1786.507204,,2050,23188.3777,3614.207579,794.7894136,10868.78129,3036.796539,741.9321684,5045.680739,4224.566045,1428.067203,1786.507204,,23188.3777,OK,19056.50699,OK,,3614.207579,794.7894136,10868.78129,3036.796539,741.9321684 +2051,21333.10011,3335.569214,741.8321878,9999.662204,2842.882782,659.8052001,4750.349882,3895.682102,1331.544345,1637.578378,,2051,6032.506478,0,34.21438148,3586.705917,2174.572839,237.0133408,0,0,0,0,,2051,17698.3344,3642.053069,773.4352326,7559.686027,979.0889514,519.5458135,5097.429042,4399.286398,1438.153527,1808.843317,,2051,23730.84088,3642.053069,807.6496141,11146.39194,3153.66179,756.5591543,5097.429042,4399.286398,1438.153527,1808.843317,,23730.84088,OK,19506.31557,OK,,3642.053069,807.6496141,11146.39194,3153.66179,756.5591543 +2052,21746.36897,3349.261964,750.6153558,10212.7058,2939.678114,669.2131671,4791.594579,4032.651635,1336.242131,1651.385498,,2052,6279.986119,0,35.35505278,3737.506919,2264.75981,242.3643376,0,0,0,0,,2052,18013.43807,3669.901472,784.7074718,7697.398997,1009.111393,529.0543063,5153.442622,4577.433613,1447.585976,1831.381711,,2052,24293.42419,3669.901472,820.0625245,11434.90592,3273.871202,771.4186438,5153.442622,4577.433613,1447.585976,1831.381711,,24293.42419,OK,19970.15976,OK,,3669.901472,820.0625245,11434.90592,3273.871202,771.4186438 +2053,22164.38133,3362.621883,759.4751181,10427.41638,3039.674495,678.6421668,4831.900149,4172.114068,1340.834901,1665.256518,,2053,6535.851151,0,36.52783392,3892.849128,2358.657658,247.8165306,0,0,0,0,,2053,18331.85431,3697.903658,796.2053458,7835.920959,1040.086765,538.6977034,5209.072091,4760.440967,1457.103413,1854.323739,,2053,24867.70546,3697.903658,832.7331797,11728.77009,3398.744424,786.5142339,5209.072091,4760.440967,1457.103413,1854.323739,,24867.70546,OK,20444.66558,OK,,3697.903658,832.7331797,11728.77009,3398.744424,786.5142339 +2054,22587.10611,3375.642046,768.4099106,10643.72325,3142.941784,688.0891864,4871.220676,4314.046218,1345.323486,1679.197693,,2054,6800.240931,0,37.73345839,4052.76527,2456.374021,253.3681824,0,0,0,0,,2054,18653.50663,3726.02819,807.9330981,7975.235477,1072.026489,548.4743437,5264.450455,4948.281029,1466.707136,1877.661375,,2054,25453.74756,3726.02819,845.6665565,12028.00075,3528.40051,801.8425261,5264.450455,4948.281029,1466.707136,1877.661375,,25453.74756,OK,20929.93853,OK,,3726.02819,845.6665565,12028.00075,3528.40051,801.8425261 +2055,23014.52377,3388.315964,777.4186819,10861.56291,3249.550253,697.5512374,4909.525374,4458.425906,1349.70885,1693.213458,,2055,7073.299345,0,38.97281797,4217.288003,2558.020569,259.0179553,0,0,0,0,,2055,18978.33755,3754.245597,819.8950669,8115.334117,1104.943776,558.3828752,5319.689147,5140.942204,1476.397777,1901.386601,,2055,26051.63689,3754.245597,858.8678849,12332.62212,3662.964346,817.4008305,5319.689147,5140.942204,1476.397777,1901.386601,,26051.63689,OK,21426.10078,OK,,3754.245597,858.8678849,12332.62212,3662.964346,817.4008305 +2056,23446.63038,3400.640666,786.5014,11080.88226,3359.570772,707.0254478,4946.802415,4605.234322,1353.99261,1707.305728,,2056,7355.206628,0,40.24678393,4386.474347,2663.719473,264.7660244,0,0,0,0,,2056,19306.33916,3782.547397,832.0982675,8256.215871,1138.856062,568.4234422,5374.860291,5338.450649,1486.180665,1925.500141,,2056,26661.54579,3782.547397,872.3450515,12642.69022,3802.575535,833.1894666,5374.860291,5338.450649,1486.180665,1925.500141,,26661.54579,OK,21933.34767,OK,,3782.547397,872.3450515,12642.69022,3802.575535,833.1894666 +2057,23883.44127,3412.612777,795.6585368,11301.64086,3473.074774,716.5089254,4983.0672,4754.453835,1358.17632,1721.47351,,2057,7646.14112,0,41.5566098,4560.374952,2773.596625,270.6129332,0,0,0,0,,2057,19637.52109,3810.923279,844.5487834,8397.886078,1173.783426,578.5963071,5429.983297,5540.864861,1496.05838,1950.001043,,2057,27283.66221,3810.923279,886.1053932,12958.26103,3947.38005,849.2092404,5429.983297,5540.864861,1496.05838,1950.001043,,27283.66221,OK,22451.87899,OK,,3810.923279,886.1053932,12958.26103,3947.38005,849.2092404 +2058,24324.98199,3424.224576,804.8904396,11523.80453,3590.133911,725.998641,5018.352258,4906.064729,1362.260876,1735.714428,,2058,7946.237263,0,42.90411163,4739.002327,2887.772702,276.5581225,0,0,0,0,,2058,19971.86565,3839.335403,857.2482873,8540.354351,1209.745396,588.900334,5485.049406,5748.247657,1506.023607,1974.875465,,2058,27918.10292,3839.335403,900.1523989,13279.35668,4097.518098,865.4584565,5485.049406,5748.247657,1506.023607,1974.875465,,27918.10292,FALSE,22981.82103,OK,,3839.335403,900.1523989,13279.35668,4097.518098,865.4584565 +2059,24771.28903,3435.466979,814.1977203,11747.34646,3710.820153,735.4915272,5052.706457,5060.047241,1366.246934,1750.024479,,2059,8255.613732,0,44.29146289,4922.352518,3006.368876,282.6008753,0,0,0,0,,2059,20309.35494,3867.73684,870.1962383,8683.634628,1246.762782,599.3339804,5540.01239,5960.681886,1516.064347,2000.104934,,2059,28564.96867,3867.73684,914.4877012,13605.98715,4253.131658,881.9348557,5540.01239,5960.681886,1516.064347,2000.104934,,28564.96867,OK,23523.2782,OK,,3867.73684,914.4877012,13605.98715,4253.131658,881.9348557 +2060,25220.53039,3446.410046,823.7425644,11970.9818,3835.476276,744.9857938,5085.063399,5216.702682,1370.48199,1764.44623,,2060,8574.528281,0,45.72967118,5110.325275,3129.731911,288.7414235,0,0,0,0,,2060,20647.69899,3896.174633,883.5657342,8826.388424,1284.948469,609.897254,5593.609271,6178.638696,1526.555804,2025.727244,,2060,29222.22727,3896.174633,929.2954054,13936.7137,4414.68038,898.6386775,5593.609271,6178.638696,1526.555804,2025.727244,,29222.22727,OK,24075.50279,OK,,3896.174633,929.2954054,13936.7137,4414.68038,898.6386775 +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +Table 4: Total REF2 Cooling Demand by Economic Development Status (TWh),,,,,,,Table 5: Total REF1 Cooling Demand by Economic Development Status (TWh),,,,,,,,,,,,,,,"Table 6: Change in Cooling Demand by MDC vs. LLDC Regions, REF1-REF2 (TWh)",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,LLDC+HighNRR,China,MDC + LAC + EE,Total Electricity Demand in Countries with Higher Educational Attainment (TWh), --> % LLDC,,,"LLDC with low educational attainment, excluding China","MDC + EE + LAC with low educational attainment, excluding China",China,"LLDC with higher educational attainment, excluding China",MDC + EE + LAC with higher educational attainment,,"Total Electricity Demand in Countries with Low Educational Attainment (TWh), exluding China", --> % LLDC,Total Electricity Demand in Countries with Higher Educational Attainment (TWh), --> % LLDC,Total Electricity Demand (TWh), --> % LLDC,,,LLDC,China,MDC + EE +LAC,Total change in REF1-REF2,% LLDC with higher educational attainment,% LLDC with Low Educational Attainment,% LLDC,% MDC + LAC + EE + China,,"% LLDC with low educational attainment, TWh)","% LLDC with higher educational attainment, TWh)",,,,,,,,,,,,,,,,,,,,,,,,, +2014,2003.189554,2609.230277,3446.945013,8059.364845,0.248554271,,2014,0,0,2609.230277,2003.189554,3446.945013,,0,,8059.364845,0.248554271,8059.364845,0,,,0,0,0,0,0,0,0,0,,0,1,,,,,,,,,,,,,,,,,,,,,,,,, +2015,2073.227307,2684.721063,3483.42229,8241.370659,0.25156341,,2015,1151.932743,110.2055292,2684.721063,921.2945645,3373.21676,,1262.138272,0.912683474,6979.232387,0.132005142,8241.370659,0.153146646,,,0,0,0,0,0,0,0,0,,0.555622984,0.444377016,,,,,,,,,,,,,,,,,,,,,,,,, +2016,2148.358789,2759.244739,3519.81502,8427.418549,0.254924895,,2016,1199.428465,112.9737036,2761.694444,951.7733665,3409.908318,,1312.402169,0.913918381,7123.376128,0.133612679,8435.778297,0.155575707,,,2.843042539,2.449705383,3.067000853,8.359748775,0.150467436,0.189619643,0.340087079,0.659912921,,0.557562032,0.442437968,,,,,,,,,,,,,,,,,,,,,,,,, +2017,2228.577333,2832.802159,3556.109428,8617.48892,0.258610989,,2017,1250.758017,115.88543,2838.881431,984.8885138,3447.744688,,1366.643447,0.915204342,7271.514633,0.135444754,8638.15808,0.158210053,,,7.069197837,6.079271989,7.520689324,20.66915915,0.150671551,0.19134516,0.342016711,0.657983289,,0.559461435,0.440538565,,,,,,,,,,,,,,,,,,,,,,,,, +2018,2313.894631,2905.34488,3592.311039,8811.55055,0.262597896,,2018,1305.940685,118.9290832,2916.044402,1020.592747,3486.545488,,1424.869768,0.916533366,7423.182637,0.13748722,8848.052405,0.161037673,,,12.63880086,10.6995217,13.1635325,36.50185507,0.151891725,0.194359194,0.346250919,0.653749081,,0.561324702,0.438675298,,,,,,,,,,,,,,,,,,,,,,,,, +2019,2404.322676,2976.798683,3628.439419,9009.560779,0.266863473,,2019,1364.92984,122.0833336,2992.755326,1058.804087,3526.008102,,1487.013173,0.917900301,7577.567515,0.139728757,9064.580689,0.164046548,,,19.41125091,15.95664277,19.65201637,55.01991006,0.154121886,0.198682233,0.352804119,0.647195881,,0.563151683,0.436848317,,,,,,,,,,,,,,,,,,,,,,,,, +2020,2499.998572,3045.999583,3664.593752,9210.591906,0.271426484,,2020,1427.795377,125.3355423,3067.55434,1099.491671,3565.980971,,1553.130919,0.919301367,7733.026983,0.14218128,9286.157902,0.167252263,,,27.28847627,21.55475743,26.72276217,75.56599588,0.157105087,0.204016022,0.361121109,0.638878891,,0.564951804,0.435048196,,,,,,,,,,,,,,,,,,,,,,,,, +2021,2600.565106,3116.262398,3700.514318,9417.341822,0.276146407,,2021,1494.338031,128.6696958,3143.698369,1142.528576,3606.153155,,1623.007727,0.920721452,7892.380099,0.144763501,9515.387826,0.17056664,,,36.30150071,27.43597084,34.3085334,98.04600495,0.160425569,0.209824099,0.370249667,0.629750333,,0.566709756,0.433290244,,,,,,,,,,,,,,,,,,,,,,,,, +2022,2706.409459,3184.279521,3736.44304,9627.13202,0.281123127,,2022,1564.953522,132.102745,3217.923698,1188.015751,3646.822011,,1697.056267,0.922157711,8052.76146,0.147528988,9749.817727,0.174060307,,,46.5598137,33.64417732,42.48171604,122.6857071,0.163771414,0.215733378,0.379504792,0.620495208,,0.568460221,0.431539779,,,,,,,,,,,,,,,,,,,,,,,,, +2023,2817.424906,3251.183018,3772.313667,9840.921591,0.286296855,,2023,1639.667532,135.630539,3291.384339,1235.887846,3687.945929,,1775.298071,0.923601258,8215.218115,0.150438835,9990.516186,0.177698333,,,58.13047255,40.20132108,51.26280086,149.5945945,0.167011078,0.221575641,0.388586718,0.611413282,,0.570208991,0.429791009,,,,,,,,,,,,,,,,,,,,,,,,, +2024,2933.629586,3317.009906,3808.150566,10058.79006,0.291648356,,2024,1718.612019,139.2547384,3364.175275,1286.112315,3729.60482,,1857.866758,0.925045896,8379.892411,0.153475994,10237.75917,0.181472012,,,71.09474818,47.16536989,60.70899249,178.9691106,0.17003319,0.227212725,0.397245916,0.602754084,,0.571969947,0.428030053,,,,,,,,,,,,,,,,,,,,,,,,, +2025,3055.041142,3381.792227,3843.970166,10280.80353,0.297159763,,2025,1801.9013,142.9757443,3436.367385,1338.649331,3771.842769,,1944.877045,0.926485973,8546.859484,0.156624703,10491.73653,0.185372273,,,85.50948981,54.57515785,70.84834721,210.9329949,0.172794861,0.232592119,0.40538698,0.59461302,,0.573753304,0.426246696,,,,,,,,,,,,,,,,,,,,,,,,, +2026,3181.675195,3445.541455,3879.776695,10506.99334,0.302815001,,2026,1889.649483,146.7939471,3507.963964,1393.486101,3814.66578,,2036.44343,0.927916511,8716.115844,0.159874665,10752.55927,0.189391509,,,101.4603885,62.42250879,81.68303214,245.5659294,0.175364723,0.237804925,0.413169648,0.586830352,,0.575562426,0.424437574,,,,,,,,,,,,,,,,,,,,,,,,, +2027,3313.54695,3508.263844,3915.560338,10737.37113,0.308599462,,2027,1981.912738,150.7054219,3578.91732,1450.572405,3857.994105,,2132.618159,0.929333143,8887.48383,0.163215195,11020.10199,0.193520728,,,118.9381933,70.65347534,93.1391885,282.7308571,0.177778351,0.242898029,0.420676379,0.579323621,,0.577398781,0.422601219,,,,,,,,,,,,,,,,,,,,,,,,, +2028,3450.673086,3569.982466,3951.305804,10971.96136,0.314499202,,2028,2078.669708,154.7010532,3649.194458,1509.784048,3901.682558,,2233.370761,0.930732033,9060.661065,0.166630673,11294.03183,0.197747872,,,137.7806695,79.21199193,105.0778081,322.0704696,0.179988544,0.247808111,0.427796655,0.572203345,,0.579266127,0.420733873,,,,,,,,,,,,,,,,,,,,,,,,, +2029,3593.070301,3630.723581,3986.990508,11210.78439,0.32050124,,2029,2179.843784,158.7685392,3718.746913,1570.963341,3945.534201,,2338.612323,0.932109936,9235.244455,0.170105226,11573.85678,0.202059898,,,157.7368248,88.02333293,117.3122313,363.0723891,0.181962205,0.252487865,0.43445007,0.56554993,,0.581166589,0.418833411,,,,,,,,,,,,,,,,,,,,,,,,, +2030,3740.259167,3694.95002,4022.104254,11457.31344,0.326451675,,2030,2285.01222,162.8783534,3792.096715,1633.900637,3988.912398,,2447.890574,0.933461751,9414.90975,0.173543951,11862.80032,0.206350146,,,178.6536903,97.14669488,129.6864974,405.4868826,0.183694104,0.25689645,0.440590554,0.559409446,,0.583072986,0.416927014,,,,,,,,,,,,,,,,,,,,,,,,, +2031,3893.743509,3749.362668,4058.112565,11701.21874,0.332763928,,2031,2395.326346,167.087255,3855.545088,1698.817846,4033.196052,,2562.413601,0.934793019,9587.558986,0.17718982,12149.97259,0.210898715,,,200.4006832,106.1824197,142.1707424,448.7538452,0.185299691,0.261271821,0.446571512,0.553428488,,0.58506155,0.41493845,,,,,,,,,,,,,,,,,,,,,,,,, +2032,4052.052312,3807.292671,4093.538286,11952.88327,0.339002082,,2032,2509.760106,171.3363958,3922.77799,1765.456832,4076.943921,,2681.096502,0.936094655,9765.178743,0.180791041,12446.27524,0.215413563,,,223.1646262,115.4853185,154.7420309,493.3919756,0.186780795,0.265526168,0.452306963,0.547693037,,0.587048597,0.412951403,,,,,,,,,,,,,,,,,,,,,,,,, +2033,4215.688759,3864.328273,4128.859656,12208.87669,0.345297022,,2033,2628.810663,175.6531105,3989.333344,1833.93909,4120.662796,,2804.463774,0.937366597,9943.935229,0.1844279,12748.399,0.219985566,,,247.0609949,125.0050708,167.4562507,539.5223164,0.188181595,0.269743846,0.457925441,0.542074559,,0.589056256,0.410943744,,,,,,,,,,,,,,,,,,,,,,,,, +2034,4384.657768,3920.498624,4164.062894,12469.21929,0.351638516,,2034,2752.647992,180.0487863,4055.350427,1904.328815,4164.414677,,2932.696778,0.938606409,10124.09392,0.188098691,13056.7907,0.224610844,,,272.3190388,134.8518034,180.4005699,587.5714122,0.189520072,0.273945361,0.463465433,0.536534567,,0.59108046,0.40891954,,,,,,,,,,,,,,,,,,,,,,,,, +2035,4558.968087,3975.827797,4199.135853,12733.93174,0.358017318,,2035,2881.443397,184.5331487,4120.937374,1976.686976,4208.24977,,3065.976545,0.939812603,10305.87412,0.191801972,13371.85066,0.22928588,,,299.1622856,145.1095769,193.6470658,637.9189282,0.190813936,0.27815206,0.468965996,0.531034004,,0.593117758,0.406882242,,,,,,,,,,,,,,,,,,,,,,,,, +2036,4738.632777,4030.332384,4234.067674,13003.03284,0.364425195,,2036,3015.307924,189.1093165,4186.137149,2051.023601,4252.168954,,3204.417241,0.940984802,10489.3297,0.195534287,13693.74694,0.234005875,,,327.6987481,155.8047643,207.2105958,690.7141083,0.192067334,0.282367377,0.474434711,0.525565289,,0.595165932,0.404834068,,,,,,,,,,,,,,,,,,,,,,,,, +2037,4923.672848,4084.020627,4268.851373,13276.54485,0.370854986,,2037,3154.356739,193.7780179,4250.927358,2127.358576,4296.156532,,3348.134757,0.942123591,10674.44247,0.199294584,14022.57722,0.238767432,,,358.0424666,166.9067301,221.0831769,746.0323736,0.193304772,0.286624088,0.47992886,0.52007114,,0.597222029,0.402777971,,,,,,,,,,,,,,,,,,,,,,,,, +2038,5114.115128,4136.896917,4303.483754,13554.4958,0.377300285,,2038,3298.794129,198.5445569,4315.273545,2205.782581,4340.234188,,3497.338686,0.943229817,10861.29031,0.203086606,14358.629,0.243570517,,,390.4615825,178.3766284,235.2949906,804.1332015,0.194575919,0.290992369,0.485568289,0.514431711,,0.599282071,0.400717929,,,,,,,,,,,,,,,,,,,,,,,,, +2039,5309.991366,4188.960804,4337.964166,13836.91634,0.3837554,,2039,3448.862768,203.4147283,4379.109907,2286.409745,4384.429472,,3652.277496,0.94430469,11049.94912,0.206915862,14702.22662,0.248416624,,,425.2811468,190.1491031,249.8800347,865.3102845,0.195931503,0.295546704,0.491478207,0.508521793,,0.60134244,0.39865756,,,,,,,,,,,,,,,,,,,,,,,,, +2040,5512.073354,4233.554859,4373.261115,14118.88933,0.390404176,,2040,3605.399482,208.4313324,4435.406962,2369.388243,4429.756262,,3813.830815,0.945348564,11234.55147,0.210901899,15048.38228,0.253437927,,,462.7143719,201.8521028,264.9264788,929.4929535,0.197415222,0.300398527,0.497813749,0.502186251,,0.603435578,0.396564422,,,,,,,,,,,,,,,,,,,,,,,,, +2041,5718.15903,4290.652209,4406.456566,14415.2678,0.396673798,,2041,3766.798211,213.4857453,4505.0908,2454.59342,4473.274775,,3980.283956,0.946364192,11432.95899,0.2146945,15413.24295,0.25823793,,,503.2326015,214.4385902,280.303954,997.9751457,0.198948683,0.305304959,0.504253642,0.495746358,,0.605459105,0.394540895,,,,,,,,,,,,,,,,,,,,,,,,, +2042,5930.4951,4340.284787,4440.45456,14711.23445,0.403126952,,2042,3935.034192,218.6938193,4567.246384,2542.205691,4517.965736,,4153.728011,0.94734999,11627.41781,0.218638887,15781.14582,0.263208265,,,546.7447823,226.9615967,296.2049956,1069.911375,0.200566108,0.31045265,0.511018758,0.488981242,,0.607517131,0.392482869,,,,,,,,,,,,,,,,,,,,,,,,, +2043,6148.350182,4389.114621,4474.271452,15011.73625,0.409569558,,2043,4109.698101,224.0213278,4628.804215,2632.22686,4562.883387,,4333.719429,0.948307376,11823.91446,0.222618902,16157.63389,0.268214979,,,593.5747786,239.6895942,312.6332628,1145.897636,0.202240913,0.315758915,0.517999828,0.482000172,,0.609573397,0.390426603,,,,,,,,,,,,,,,,,,,,,,,,, +2044,6371.731229,4437.14681,4507.892341,15316.77038,0.415997046,,2044,4290.977844,229.4712317,4689.706771,2724.714347,4608.075369,,4520.449076,0.949237072,12022.49649,0.226634655,16542.94556,0.273255392,,,643.9609623,252.5599615,329.6542599,1226.175184,0.203965855,0.321212742,0.525178597,0.474821403,,0.611625728,0.388374272,,,,,,,,,,,,,,,,,,,,,,,,, +2045,6600.651124,4484.381827,4541.305117,15626.33807,0.422405499,,2045,4479.063767,235.0462267,4749.913113,2819.707656,4653.585373,,4714.109994,0.950139851,12223.20614,0.230684783,16937.31614,0.278326859,,,698.1202992,265.5312863,347.3264828,1310.978068,0.20572599,0.326792682,0.532518671,0.467481329,,0.613673659,0.386326341,,,,,,,,,,,,,,,,,,,,,,,,, +2046,6835.130774,4530.81777,4574.500437,15940.44898,0.428791609,,2046,4674.159151,240.7494799,4809.408426,2917.234805,4699.436096,,4914.90863,0.951016489,12426.07933,0.234767116,17340.98796,0.283427256,,,756.2631817,278.5906557,365.6851381,1400.538976,0.207504546,0.332475558,0.539980104,0.460019896,,0.615718164,0.384281836,,,,,,,,,,,,,,,,,,,,,,,,, +2047,7075.202131,4576.443033,4607.474998,16259.12016,0.435152829,,2047,4876.464265,246.5833107,4868.211168,3017.284241,4745.650457,,5123.047576,0.951867847,12631.14587,0.238876526,17754.19344,0.288554228,,,818.5463746,291.768135,384.7587701,1495.07328,0.209273264,0.338222558,0.547495822,0.452504178,,0.617762811,0.382237189,,,,,,,,,,,,,,,,,,,,,,,,, +2048,7320.903127,4621.235057,4640.229993,16582.36818,0.44148719,,2048,5086.158945,252.5482398,4926.358547,3119.79977,4792.273051,,5338.707185,0.95269487,12838.43137,0.243004747,18177.13855,0.293704489,,,885.0555877,305.1234901,404.5912982,1594.770376,0.210993843,0.343979839,0.554973682,0.445026318,,0.619812885,0.380187115,,,,,,,,,,,,,,,,,,,,,,,,, +2049,7572.277685,4665.164043,4672.770083,16910.21181,0.44779319,,2049,5303.411037,258.6437825,4983.910939,3224.692189,4839.354016,,5562.054819,0.95349852,13047.95714,0.247141537,18610.01196,0.298874328,,,955.8255398,318.7468968,425.2277156,1699.800152,0.212626105,0.349690317,0.562316422,0.437683578,,0.62187463,0.37812537,,,,,,,,,,,,,,,,,,,,,,,,, +2050,7828.87129,4712.64174,4704.293067,17245.8061,0.453957979,,2050,5527.963971,264.8389246,5045.680739,3331.93312,4886.090236,,5792.802896,0.954281385,13263.7041,0.251206835,19056.50699,0.30398031,,,1031.025802,333.0389988,446.6360936,1810.700895,0.21413636,0.355270661,0.569407021,0.430592979,,0.623930946,0.376069054,,,,,,,,,,,,,,,,,,,,,,,,, +2051,8092.195104,4750.349882,4737.206601,17579.75159,0.460313393,,2051,5761.278756,271.2277222,5097.429042,3441.345935,4935.034115,,6032.506478,0.955038967,13473.80909,0.255410026,19506.31557,0.309259145,,,1110.429588,347.0791602,469.0552362,1926.563984,0.215538179,0.360840076,0.576378255,0.423621745,,0.626047345,0.373952655,,,,,,,,,,,,,,,,,,,,,,,,, +2052,8360.789336,4791.594579,4769.090487,17921.4744,0.466523521,,2052,6002.266728,277.7193904,5153.442622,3553.067769,4983.66325,,6279.986119,0.955777069,13690.17364,0.259534164,19970.15976,0.314468497,,,1194.545161,361.8480426,492.2921531,2048.685357,0.216812794,0.366266085,0.583078879,0.416921121,,0.628158724,0.371841276,,,,,,,,,,,,,,,,,,,,,,,,, +2053,8635.190722,4831.900149,4800.739168,18267.83004,0.472699314,,2053,6251.506787,284.3443645,5209.072091,3666.935634,5032.806707,,6535.851151,0.956494669,13908.81443,0.263641136,20444.66558,0.319684914,,,1283.251698,377.1719415,516.4119031,2176.835543,0.217944562,0.37155872,0.589503283,0.410496717,,0.630291181,0.369708819,,,,,,,,,,,,,,,,,,,,,,,,, +2054,8915.444362,4871.220676,4832.141143,18618.80618,0.478840817,,2054,6509.139291,291.1016408,5264.450455,3782.811512,5082.435632,,6800.240931,0.957192452,14129.6976,0.267720628,20929.93853,0.324904964,,,1376.50644,393.2297786,541.3961291,2311.132348,0.218912435,0.37668584,0.595598275,0.404401725,,0.632449515,0.367550485,,,,,,,,,,,,,,,,,,,,,,,,, +2055,9201.587791,4909.525374,4863.285883,18974.39905,0.484947522,,2055,6775.308572,297.9907733,5319.689147,3900.588746,5132.523539,,7073.299345,0.957871036,14352.80143,0.271764977,21426.10078,0.330125365,,,1474.309528,410.1637734,567.2284286,2451.70173,0.219708477,0.381632832,0.601341309,0.398658691,,0.634635981,0.365364019,,,,,,,,,,,,,,,,,,,,,,,,, +2056,9493.650621,4946.802415,4894.167514,19334.62055,0.491018202,,2056,7050.19382,305.0128083,5374.860291,4020.211642,5183.069107,,7355.206628,0.958531035,14578.14104,0.275769841,21933.34767,0.335343548,,,1576.754842,428.057876,593.9144013,2598.727119,0.220337737,0.386403475,0.606741212,0.393258788,,0.636850551,0.363149449,,,,,,,,,,,,,,,,,,,,,,,,, +2057,9791.648438,4983.0672,4924.78024,19699.49588,0.497050711,,2057,7333.971577,312.169543,5429.983297,4141.686207,5234.068369,,7646.14112,0.959172929,14805.73787,0.279735211,22451.87899,0.340556847,,,1684.009345,446.9160974,621.4576727,2752.383116,0.220818378,0.391018447,0.611836825,0.388163175,,0.639089429,0.360910571,,,,,,,,,,,,,,,,,,,,,,,,, +2058,10095.58619,5018.352258,4955.113657,20069.0521,0.503042502,,2058,7626.775028,319.4622342,5485.049406,4265.050342,5285.484024,,7946.237263,0.959797043,15035.58377,0.283663768,22981.82103,0.345761863,,,1796.239185,466.6971481,649.8326012,2912.768934,0.221173846,0.395503695,0.616677541,0.383322459,,0.641346033,0.358653967,,,,,,,,,,,,,,,,,,,,,,,,, +2059,10405.46016,5052.706457,4985.156226,20443.32284,0.508990649,,2059,7928.721394,326.8923382,5540.01239,4390.38502,5337.267058,,8255.613732,0.96040363,15267.66447,0.28756101,23523.2782,0.350955069,,,1913.646256,487.305933,679.00317,3079.955359,0.221432131,0.399890594,0.621322725,0.378677275,,0.64361173,0.35638827,,,,,,,,,,,,,,,,,,,,,,,,, +2060,10721.39467,5085.063399,5015.138405,20821.59648,0.514917033,,2060,8240.057186,334.4710947,5593.609271,4517.727622,5389.637621,,8574.528281,0.960992479,15500.97451,0.291447974,24075.50279,0.356151577,,,2036.390133,508.5458727,708.970311,3253.906317,0.221615795,0.404213573,0.625829368,0.374170632,,0.645884635,0.354115365,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,Table 7: Difference in FUNCTIONAL & IMPLEMENTATION UNITS between REF1 and REF2 populations in LLDC+HighNRR+HighED,,,,,,,,Table 8: Difference in FUNCTIONAL & IMPLEMENTATION UNITS between REF1 and REF2 populations in LLDC+HighNRR+LowED,,,,,,,,Table 9: Difference in EMISSIONS between REF1 and REF2 populations in LLDC+HighNRR+HighED,,,,,,,,,,,,,Table 10: Difference in EMISSIONS between REF1 and REF2 populations in LLDC+HighNRR+LowED,,,,,,,,,,,,,,,Table 11: EMISSIONS ALLOCATIONS TO (a) Health & Education; (b) Education ONLY; (c) Family Planning (excluding education),,,,,,,,,,,, +,SOLUTION ,,,CONVENTIONAL,,,,,SOLUTION ,,,CONVENTIONAL,,,,,SOLUTION,,,,,CONVENTIONAL,,,,,EMISSION REDUCTIONS,,,SOLUTION ,,,,,CONVENTIONAL,,,,,EMISSION REDCUTIONS ,,,,,"Table 11(a): EMISSIONS ALLOCATION TO HEALTH & EDUCATION in LLDC, 2",,,,"Table 11(b): EMISSIONS ALLOCATION TO Education in LLDC, 2",,,"Table 11(c): EMISSIONS ALLOCATION TO Family Planning in LLDC, 2",,,,% Allocation to Education (Electricity), +,Additional Functional Units in REF2 vs REF1,Annual Functional Units Increase,Annual Implementation Units Increase + Replacement,Additional Functional Units in REF2 vs REF2,Annual Functional Units Increase,Change in TAM,Annual Implementation Units Increase + Replacement,,Additional Functional Units in REF2 vs REF1,Annual Functional Units Increase,Annual Implementation Units Increase + Replacement,Additional Functional Units in REF2 vs REF2,Annual Functional Units Increase,Change in TAM,Annual Implementation Units Increase + Replacement,,Avoided Emissions/ Million Metric Tons CO2,,,,,Avoided Emissions/ Million Metric Tons CO2,,,,,ALL Years,,,Avoided Emissions/ Million Metric Tons CO2,,,,,Avoided Emissions/ Million Metric Tons CO2,,,,,ALL Years,,,,,,,,,,,,,,,,ALL Years, +,TWh,TWh,TW,TWh,TWh,%,TW,,TWh,TWh,TW,TWh,TWh,%,TW,,Grid,Fuel,Other Direct,Indirect,,Grid,Fuel,Other Direct,Indirect,,Conv Total,Solution Total,,Grid,Fuel,Other Direct,Indirect,,Grid,Fuel,Other Direct,Indirect,,Conv Total,Solution Total,,,,,Conv Total,Solution Total,,Conv Total,Solution Total,,Conv Total,Solution Total,,,Conv Total,Solution Total +2014,,,,0,,,Not modeled TBD,,,,,0,,,Not modeled TBD,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2014,0,0,,0,0,,0,0,,,, +2015,,,,0,0,,,,,,,0,0,,,,,,,,,0,,,,,0,0,,,,,,,0,,,,,0,0,,,,2015,0,0,,0,0,,0,0,,,, +2016,,,,1.490870799,1.490870799,0.142944064,,,,,,1.878801128,1.878801128,0.180138661,,,,,,,,0.234671536,,,,,0.234671536,0,,,,,,,0.295733974,,,,,0.295733974,0,,,,2016,0.53040551,0,,0.147866987,0,,0.382538523,0,,,0.278781016, +2017,,,,3.689895212,2.199024412,0.143137974,,,,,,4.685978111,2.807176983,0.181777902,,,,,,,,0.573709964,,,,,0.573709964,0,,,,,,,0.728582298,,,,,0.728582298,0,,,,2017,1.302292261,0,,0.364291149,0,,0.938001113,0,,,0.279730718, +2018,,,,6.569554109,2.879658897,0.144297139,,,,,,8.40633839,3.72036028,0.184641234,,,,,,,,1.011769173,,,,,1.011769173,0,,,,,,,1.294650124,,,,,1.294650124,0,,,,2018,2.306419297,0,,0.647325062,0,,1.659094235,0,,,0.280662351, +2019,,,,10.05249881,3.482944697,0.146415792,,,,,,12.95891822,4.552579835,0.188748122,,,,,,,,1.540090373,,,,,1.540090373,0,,,,,,,1.985367577,,,,,1.985367577,0,,,,2019,3.52545795,0,,0.992683789,0,,2.532774161,0,,,0.281575841, +2020,,,,14.08305327,4.030554467,0.149249833,,,,,,18.28819525,5.329277025,0.193815221,,,,,,,,2.144082598,,,,,2.144082598,0,,,,,,,2.784296873,,,,,2.784296873,0,,,,2020,4.928379471,0,,1.392148436,0,,3.536231034,0,,,0.282475902, +2021,,,,18.67686972,4.593816451,0.15240429,,,,,,24.42788507,6.139689821,0.199332894,,,,,,,,2.826388362,,,,,2.826388362,0,,,,,,,3.696694955,,,,,3.696694955,0,,,,2021,6.523083318,0,,1.848347478,0,,4.67473584,0,,,0.283354878, +2022,,,,23.87807657,5.20120685,0.155582843,,,,,,31.45419581,7.026310737,0.204946709,,,,,,,,3.592007737,,,,,3.592007737,0,,,,,,,4.731692452,,,,,4.731692452,0,,,,2022,8.323700189,0,,2.365846226,0,,5.957853963,0,,,0.284230111, +2023,,,,29.71253805,5.834461477,0.158660524,,,,,,39.41998789,7.965792079,0.210496859,,,,,,,,4.44360216,,,,,4.44360216,0,,,,,,,5.895381371,,,,,5.895381371,0,,,,2023,10.33898353,0,,2.947690685,0,,7.391292845,0,,,0.285104496, +2024,,,,36.20888101,6.496342962,0.161531531,,,,,,48.38536836,8.965380469,0.215852089,,,,,,,,5.384066673,,,,,5.384066673,0,,,,,,,7.194645124,,,,,7.194645124,0,,,,2024,12.5787118,0,,3.597322562,0,,8.981389235,0,,,0.285984974, +2025,,,,43.38234704,7.173466029,0.164155118,,,,,,58.39520907,10.00984071,0.220962513,,,,,,,,6.417910409,,,,,6.417910409,0,,,,,,,8.638887604,,,,,8.638887604,0,,,,2025,15.05679801,0,,4.319443802,0,,10.73735421,0,,,0.286876652, +2026,,,,51.26425263,7.881905584,0.166596487,,,,,,69.51735537,11.12214631,0.225914679,,,,,,,,7.537347726,,,,,7.537347726,0,,,,,,,10.22108884,,,,,10.22108884,0,,,,2026,17.75843657,0,,5.11054442,0,,12.64789215,0,,,0.287781213, +2027,,,,59.83831202,8.574059393,0.168889433,,,,,,81.75690669,12.23955132,0.230753127,,,,,,,,8.749500104,,,,,8.749500104,0,,,,,,,11.95441582,,,,,11.95441582,0,,,,2027,20.70391592,0,,5.977207908,0,,14.72670801,0,,,0.288699391, +2028,,,,69.01006323,9.171751208,0.170989116,,,,,,95.01301072,13.25610403,0.235417706,,,,,,,,10.03555247,,,,,10.03555247,0,,,,,,,13.8169422,,,,,13.8169422,0,,,,2028,23.85249467,0,,6.9084711,0,,16.94402357,0,,,0.289633063, +2029,,,,78.64273376,9.632670537,0.172864094,,,,,,109.1234084,14.11039772,0.239863472,,,,,,,,11.37453041,,,,,11.37453041,0,,,,,,,15.78311775,,,,,15.78311775,0,,,,2029,27.15764816,0,,7.891558877,0,,19.26608928,0,,,0.290583295, +2030,,,,88.68043512,10.03770136,0.174509399,,,,,,124.0197068,14.89629837,0.244051627,,,,,,,,12.76048766,,,,,12.76048766,0,,,,,,,17.84555901,,,,,17.84555901,0,,,,2030,30.60604667,0,,8.922779506,0,,21.68326716,0,,,0.291536493, +2031,,,,98.9640162,10.28358108,0.176034707,,,,,,139.5388657,15.51915891,0.24820823,,,,,,,,14.1609528,,,,,14.1609528,0,,,,,,,19.96688663,,,,,19.96688663,0,,,,2031,34.12783943,0,,9.983443314,0,,24.14439612,0,,,0.292530775, +2032,,,,109.6664295,10.70241328,0.177441755,,,,,,155.9009683,16.36210261,0.25224986,,,,,,,,15.60903326,,,,,15.60903326,0,,,,,,,22.18968385,,,,,22.18968385,0,,,,2032,37.79871711,0,,11.09484193,0,,26.70387518,0,,,0.293524299, +2033,,,,120.8085369,11.14210745,0.178772515,,,,,,173.169748,17.26877968,0.256256654,,,,,,,,17.10384777,,,,,17.10384777,0,,,,,,,24.51705056,,,,,24.51705056,0,,,,2033,41.62089833,0,,12.25852528,0,,29.36237305,0,,,0.294528128, +2034,,,,132.4940618,11.68552491,0.180044068,,,,,,191.5160398,18.34629181,0.260248093,,,,,,,,18.65906848,,,,,18.65906848,0,,,,,,,26.97110234,,,,,26.97110234,0,,,,2034,45.63017081,0,,13.48555117,0,,32.14461964,0,,,0.29554023, +2035,,,,144.820741,12.32667919,0.181273239,,,,,,211.1071571,19.59111731,0.264244457,,,,,,,,20.28422145,,,,,20.28422145,0,,,,,,,29.56858454,,,,,29.56858454,0,,,,2035,49.85280598,0,,14.78429227,0,,35.06851371,0,,,0.296558879, +2036,,,,157.8270667,13.00632566,0.182463967,,,,,,232.0291218,20.92196468,0.268249008,,,,,,,,21.99143804,,,,,21.99143804,0,,,,,,,32.33066522,,,,,32.33066522,0,,,,2036,54.32210326,0,,16.16533261,0,,38.15677065,0,,,0.297582966, +2037,,,,171.5539728,13.72690607,0.183639534,,,,,,254.3729281,22.34380632,0.272292883,,,,,,,,23.77667045,,,,,23.77667045,0,,,,,,,35.25503482,,,,,35.25503482,0,,,,2037,59.03170527,0,,17.62751741,0,,41.40418786,0,,,0.298611015, +2038,,,,186.1158429,14.56187009,0.184847123,,,,,,278.3401478,23.96721968,0.276442751,,,,,,,,25.65674118,,,,,25.65674118,0,,,,,,,38.37019472,,,,,38.37019472,0,,,,2038,64.0269359,0,,19.18509736,0,,44.84183854,0,,,0.299641035, +2039,,,,201.6513532,15.53551031,0.186134927,,,,,,304.1746326,25.83448482,0.280769369,,,,,,,,27.64794994,,,,,27.64794994,0,,,,,,,41.70467931,,,,,41.70467931,0,,,,2039,69.35262925,0,,20.85233965,0,,48.5002896,0,,,0.30067122, +2040,,,,218.1538869,16.50253374,0.187544461,,,,,,331.9556907,27.78105809,0.285378601,,,,,,,,29.73591808,,,,,29.73591808,0,,,,,,,45.24790901,,,,,45.24790901,0,,,,2040,74.98382708,0,,22.6239545,0,,52.35987258,0,,,0.301717789, +2041,,,,236.0833993,17.92951236,0.189001249,,,,,,362.2915791,30.33588834,0.290039711,,,,,,,,32.01646945,,,,,32.01646945,0,,,,,,,49.13220205,,,,,49.13220205,0,,,,2041,81.1486715,0,,24.56610103,0,,56.58257048,0,,,0.302729553, +2042,,,,255.105221,19.02182172,0.190537803,,,,,,394.8727559,32.58117683,0.294930018,,,,,,,,34.40507925,,,,,34.40507925,0,,,,,,,53.25499967,,,,,53.25499967,0,,,,2042,87.66007893,0,,26.62749984,0,,61.03257909,0,,,0.303758566, +2043,,,,275.4295139,20.32429292,0.192128868,,,,,,430.0283413,35.15558536,0.299970969,,,,,,,,36.93889172,,,,,36.93889172,0,,,,,,,57.67272398,,,,,57.67272398,0,,,,2043,94.6116157,0,,28.83636199,0,,65.77525371,0,,,0.304786699, +2044,,,,297.1358819,21.70636796,0.193767562,,,,,,467.9402402,37.91189898,0.305152105,,,,,,,,39.6251274,,,,,39.6251274,0,,,,,,,62.40307135,,,,,62.40307135,0,,,,2044,102.0281988,0,,31.20153567,0,,70.82666308,0,,,0.305812864, +2045,,,,320.2904461,23.15456418,0.19543969,,,,,,508.7766206,40.83638032,0.310453048,,,,,,,,42.46015768,,,,,42.46015768,0,,,,,,,67.44733038,,,,,67.44733038,0,,,,2045,109.9074881,0,,33.72366519,0,,76.18382287,0,,,0.30683683, +2046,,,,344.9534639,24.66301781,0.197129318,,,,,,552.704015,43.92739444,0.31585178,,,,,,,,45.47416642,,,,,45.47416642,0,,,,,,,72.86128997,,,,,72.86128997,0,,,,2046,118.3354564,0,,36.43064499,0,,81.9048114,0,,,0.307859082, +2047,,,,371.1548681,26.20140422,0.198809601,,,,,,599.8518226,47.14780765,0.32131143,,,,,,,,48.64071511,,,,,48.64071511,0,,,,,,,78.61198685,,,,,78.61198685,0,,,,2047,127.252702,0,,39.30599343,0,,87.94670853,0,,,0.308881405, +2048,,,,398.8860426,27.73117447,0.200444151,,,,,,650.2974431,50.44562046,0.326780847,,,,,,,,51.96301399,,,,,51.96301399,0,,,,,,,84.71445859,,,,,84.71445859,0,,,,2048,136.6774726,0,,42.3572293,0,,94.32024329,0,,,0.309906442, +2049,,,,428.1108963,29.22485371,0.2019948,,,,,,704.0821013,53.78465816,0.332205801,,,,,,,,55.48268596,,,,,55.48268596,0,,,,,,,91.24824071,,,,,91.24824071,0,,,,2049,146.7309267,0,,45.62412035,0,,101.1068063,0,,,0.310937315, +2050,,,,458.95472,30.84382372,0.203429542,,,,,,761.4454027,57.3633014,0.337507128,,,,,,,,59.27546323,,,,,59.27546323,0,,,,,,,98.34309792,,,,,98.34309792,0,,,,2050,157.6185611,0,,49.17154896,0,,108.4470122,0,,,0.311965473, +2051,,,,490.9644456,32.00972566,0.20476127,,,,,,821.940916,60.49551337,0.342798073,,,,,,,,63.16726566,,,,,63.16726566,0,,,,,,,105.7505501,,,,,105.7505501,0,,,,2051,168.9178158,0,,52.87527505,0,,116.0425407,0,,,0.313023673, +2052,,,,524.622452,33.65800635,0.205972154,,,,,,886.2549475,64.31403142,0.347952781,,,,,,,,67.24844604,,,,,67.24844604,0,,,,,,,113.6041124,,,,,113.6041124,0,,,,2052,180.8525585,0,,56.80205621,0,,124.0505022,0,,,0.314079362, +2053,,,,559.7160542,35.09360222,0.207047334,,,,,,954.2214703,67.96652279,0.352980784,,,,,,,,71.4754118,,,,,71.4754118,0,,,,,,,121.853522,,,,,121.853522,0,,,,2053,193.3289338,0,,60.92676101,0,,132.4021728,0,,,0.31514559, +2054,,,,596.1662859,36.45023167,0.207966813,,,,,,1025.832078,71.61060812,0.357851548,,,,,,,,75.83468222,,,,,75.83468222,0,,,,,,,130.4898508,,,,,130.4898508,0,,,,2054,206.324533,0,,65.24492538,0,,141.0796076,0,,,0.316224757, +2055,,,,633.9155256,37.74923969,0.208723053,,,,,,1101.10898,75.27690121,0.36255119,,,,,,,,80.30880946,,,,,80.30880946,0,,,,,,,139.4961121,,,,,139.4961121,0,,,,2055,219.8049216,0,,69.74805606,0,,150.0568655,0,,,0.317317991, +2056,,,,672.9488262,39.03330064,0.20932085,,,,,,1180.141763,79.03278358,0.367083301,,,,,,,,84.91245875,,,,,84.91245875,0,,,,,,,148.9098946,,,,,148.9098946,0,,,,2056,233.8223533,0,,74.4549473,0,,159.367406,0,,,0.318425276, +2057,,,,713.2897089,40.34088266,0.209777459,,,,,,1263.071655,82.92989169,0.371467524,,,,,,,,89.62489715,,,,,89.62489715,0,,,,,,,158.7050335,,,,,158.7050335,0,,,,2057,248.3299307,0,,79.35251676,0,,168.9774139,0,,,0.319544714, +2058,,,,754.9691561,41.67944722,0.210115154,,,,,,1350.03797,86.9663156,0.37572851,,,,,,,,94.45288602,,,,,94.45288602,0,,,,,,,168.9009167,,,,,168.9009167,0,,,,2058,263.3538027,0,,84.45045835,0,,178.9033444,0,,,0.320673017, +2059,,,,798.0404373,43.07128123,0.210360524,,,,,,1441.203963,91.1659924,0.379896064,,,,,,,,99.39906584,,,,,99.39906584,0,,,,,,,179.507605,,,,,179.507605,0,,,,2059,278.9066708,0,,89.75380249,0,,189.1528683,0,,,0.321805865, +2060,,,,842.4972749,44.4568376,0.210535005,,,,,,1536.663187,95.45922406,0.384002894,,,,,,,,104.4933912,,,,,104.4933912,0,,,,,,,190.5895156,,,,,190.5895156,0,,,,2060,295.0829068,0,,95.29475782,0,,199.788149,0,,,0.322942318, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,Table 12: Difference in FUNCTIONAL & IMPLEMENTATION UNITS between REF1 and REF2 populations in MDC + LAC + EE + China,,,,,,,,,Table 13: Difference in EMISSIONS between REF1 and REF2 populations in MDC + LAC + EE + China,,,,,,,,,,,,,,Table 14: EMISSIONS ALLOCATIONS TO (a) Health & Education; (b) Education ONLY; (c) Family Planning (excluding education),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,SOLUTION ,,,CONVENTIONAL,,,,,,SOLUTION,,,,,CONVENTIONAL,,,,,EMISSION REDUCTIONS,,,,"Table 14(a): EMISSIONS ALLOCATION TO HEALTH & EDUCATION in MDC, 2",,,,"Table 14(b): EMISSIONS ALLOCATION TO Education in MDC, 2",,,"Table 14(c): EMISSIONS ALLOCATION TO Family Planning in MDC, 2",,,,% Allocation to Education (Electricity),,,,,,,,,,,,,,,,,,,,,, +,Additional Functional Units in REF2 vs REF1,Annual Functional Units Increase,Annual Implementation Units Increase + Replacement,Additional Functional Units in REF2 vs REF2,Annual Functional Units Increase,Change in TAM,Annual Implementation Units Increase + Replacement,,,Avoided Emissions/ Million Metric Tons CO2,,,,,Avoided Emissions/ Million Metric Tons CO2,,,,,ALL Years,,,,,,,,,,,,,,,ALL Years,,,,,,,,,,,,,,,,,,,,,, +,TWh,TWh,TW,TWh,TWh,%,TW,,,Grid,Fuel,Other Direct,Indirect,,Grid,Fuel,Other Direct,Indirect,,Conv Total,Solution Total,,,,Conv Total,Solution Total,,Conv Total,Solution Total,,Conv Total,Solution Total,,,Conv Total,Solution Total,,,,,,,,,,,,,,,,,,,,, +2014,,,,0,,,Not modeled TBD,,,,,,,,,,,,,,,,,2014,0,0,,,,,0,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2015,,,,0,0,,,,,,,,,,0,,,,,0,0,,,2015,0,0,,,,,0,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2016,,,,6.538590218,6.538590218,0.626917275,,,,,,,,,1.029211258,,,,,1.029211258,0,,,2016,1.029211258,0,,,,,1.029211258,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2017,,,,16.1137877,9.575197481,0.625084124,,,,,,,,,2.505393792,,,,,2.505393792,0,,,2017,2.505393792,0,,,,,2.505393792,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2018,,,,28.27566779,12.16188009,0.621061627,,,,,,,,,4.354701787,,,,,4.354701787,0,,,2018,4.354701787,0,,,,,4.354701787,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2019,,,,42.21292637,13.93725857,0.614836087,,,,,,,,,6.467220017,,,,,6.467220017,0,,,2019,6.467220017,0,,,,,6.467220017,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2020,,,,57.26972696,15.05680059,0.606934946,,,,,,,,,8.719062734,,,,,8.719062734,0,,,2020,8.719062734,0,,,,,8.719062734,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2021,,,,73.31602448,16.04629752,0.598262816,,,,,,,,,11.09498334,,,,,11.09498334,0,,,2021,11.09498334,0,,,,,11.09498334,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2022,,,,90.46897595,17.15295147,0.589470448,,,,,,,,,13.60935671,,,,,13.60935671,0,,,2022,13.60935671,0,,,,,13.60935671,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2023,,,,108.7750625,18.30608651,0.580842618,,,,,,,,,16.26764774,,,,,16.26764774,0,,,2023,16.26764774,0,,,,,16.26764774,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2024,,,,128.3575924,19.58252997,0.57261638,,,,,,,,,19.08608652,,,,,19.08608652,0,,,2024,19.08608652,0,,,,,19.08608652,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2025,,,,149.2851595,20.92756704,0.564882369,,,,,,,,,22.0849918,,,,,22.0849918,0,,,2025,22.0849918,0,,,,,22.0849918,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2026,,,,171.5477263,22.2625668,0.557488835,,,,,,,,,25.22254394,,,,,25.22254394,0,,,2026,25.22254394,0,,,,,25.22254394,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2027,,,,194.9942018,23.44647554,0.55035744,,,,,,,,,28.51186358,,,,,28.51186358,0,,,2027,28.51186358,0,,,,,28.51186358,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2028,,,,219.3905691,24.39636727,0.543593178,,,,,,,,,31.90412333,,,,,31.90412333,0,,,2028,31.90412333,0,,,,,31.90412333,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2029,,,,244.4265427,25.0359736,0.537272434,,,,,,,,,35.352753,,,,,35.352753,0,,,2029,35.352753,0,,,,,35.352753,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2030,,,,270.0613243,25.63478165,0.531438974,,,,,,,,,38.85991528,,,,,38.85991528,0,,,2030,38.85991528,0,,,,,38.85991528,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2031,,,,295.5725697,25.51124532,0.525757064,,,,,,,,,42.29405161,,,,,42.29405161,0,,,2031,42.29405161,0,,,,,42.29405161,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2032,,,,321.5723531,25.99978347,0.520308385,,,,,,,,,45.77000982,,,,,45.77000982,0,,,2032,45.77000982,0,,,,,45.77000982,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2033,,,,348.0002084,26.42785524,0.514970831,,,,,,,,,49.26922168,,,,,49.26922168,0,,,2033,49.26922168,0,,,,,49.26922168,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2034,,,,375.0929572,27.09274878,0.509707839,,,,,,,,,52.82414226,,,,,52.82414226,0,,,2034,52.82414226,0,,,,,52.82414226,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2035,,,,403.0352275,27.94227035,0.504482304,,,,,,,,,56.45086295,,,,,56.45086295,0,,,2035,56.45086295,0,,,,,56.45086295,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2036,,,,431.871606,28.83637853,0.499287025,,,,,,,,,60.17648218,,,,,60.17648218,0,,,2036,60.17648218,0,,,,,60.17648218,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2037,,,,461.5523411,29.68073508,0.494067583,,,,,,,,,63.96924381,,,,,63.96924381,0,,,2037,63.96924381,0,,,,,63.96924381,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2038,,,,492.0644442,30.51210311,0.488710126,,,,,,,,,67.83286094,,,,,67.83286094,0,,,2038,67.83286094,0,,,,,67.83286094,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2039,,,,523.367128,31.30268372,0.483095704,,,,,,,,,71.75765462,,,,,71.75765462,0,,,2039,71.75765462,0,,,,,71.75765462,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2040,,,,554.9414151,31.57428717,0.477076938,,,,,,,,,75.64244072,,,,,75.64244072,0,,,2040,75.64244072,0,,,,,75.64244072,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2041,,,,588.2797702,33.3383551,0.47095904,,,,,,,,,79.77960903,,,,,79.77960903,0,,,2041,79.77960903,0,,,,,79.77960903,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2042,,,,621.947889,33.66811881,0.464532179,,,,,,,,,83.87976667,,,,,83.87976667,0,,,2042,83.87976667,0,,,,,83.87976667,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2043,,,,656.4303473,34.48245822,0.457900163,,,,,,,,,88.03635156,,,,,88.03635156,0,,,2043,88.03635156,0,,,,,88.03635156,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2044,,,,691.7161518,35.28580449,0.451080333,,,,,,,,,92.24513871,,,,,92.24513871,0,,,2044,92.24513871,0,,,,,92.24513871,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2045,,,,727.8118019,36.09565017,0.444107262,,,,,,,,,96.48431369,,,,,96.48431369,0,,,2045,96.48431369,0,,,,,96.48431369,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2046,,,,764.7324355,36.92063354,0.437018901,,,,,,,,,100.812352,,,,,100.812352,0,,,2046,100.812352,0,,,,,100.812352,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2047,,,,802.5350447,37.80260921,0.429878969,,,,,,,,,105.174098,,,,,105.174098,0,,,2047,105.174098,0,,,,,105.174098,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2048,,,,841.3268565,38.79181186,0.422775002,,,,,,,,,109.5999222,,,,,109.5999222,0,,,2048,109.5999222,0,,,,,109.5999222,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2049,,,,881.2516629,39.92480637,0.415799399,,,,,,,,,114.2092147,,,,,114.2092147,0,,,2049,114.2092147,0,,,,,114.2092147,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2050,,,,922.8824113,41.63074843,0.40906333,,,,,,,,,119.1932015,,,,,119.1932015,0,,,2050,119.1932015,0,,,,,119.1932015,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2051,,,,964.9483739,42.06596261,0.402440658,,,,,,,,,124.1498256,,,,,124.1498256,0,,,2051,124.1498256,0,,,,,124.1498256,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2052,,,,1008.825064,43.87668976,0.396075065,,,,,,,,,129.3156967,,,,,129.3156967,0,,,2052,129.3156967,0,,,,,129.3156967,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2053,,,,1054.220396,45.39533223,0.389971881,,,,,,,,,134.6233262,,,,,134.6233262,0,,,2053,134.6233262,0,,,,,134.6233262,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2054,,,,1101.311007,47.09061097,0.384181639,,,,,,,,,140.0910656,,,,,140.0910656,0,,,2054,140.0910656,0,,,,,140.0910656,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2055,,,,1150.232967,48.92195975,0.378725756,,,,,,,,,145.719479,,,,,145.719479,0,,,2055,145.719479,0,,,,,145.719479,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2056,,,,1201.079051,50.84608463,0.373595849,,,,,,,,,151.5517546,,,,,151.5517546,0,,,2056,151.5517546,0,,,,,151.5517546,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2057,,,,1253.848529,52.76947808,0.368755017,,,,,,,,,157.5461472,,,,,157.5461472,0,,,2057,157.5461472,0,,,,,157.5461472,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2058,,,,1308.457749,54.60921921,0.364156336,,,,,,,,,163.698887,,,,,163.698887,0,,,2058,163.698887,0,,,,,163.698887,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2059,,,,1364.751254,56.29350522,0.359743411,,,,,,,,,169.9851203,,,,,169.9851203,0,,,2059,169.9851203,0,,,,,169.9851203,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2060,,,,1422.451582,57.700328,0.355462101,,,,,,,,,176.4240598,,,,,176.4240598,0,,,2060,176.4240598,0,,,,,176.4240598,0,,,0,,,,,,,,,,,,,,,,,,,,,, diff --git a/solution/health_and_education/tests/expected_space_heating.csv b/solution/health_and_education/tests/expected_space_heating.csv index e02d23969..eea243c5f 100644 --- a/solution/health_and_education/tests/expected_space_heating.csv +++ b/solution/health_and_education/tests/expected_space_heating.csv @@ -191,8 +191,8 @@ Table 4: Total REF2 Heating Demand by Economic Development Status (TWh Therms),, ,SOLUTION ,,,CONVENTIONAL,,,,,,SOLUTION,,,,,CONVENTIONAL,,,,,EMISSION REDUCTIONS,,,,"Table 14(a): EMISSIONS ALLOCATION TO HEALTH & EDUCATION in MDC, SpaceHeating_cluster",,,,"Table 14(b): EMISSIONS ALLOCATION TO Education in MDC, SpaceHeating_cluster",,,"Table 14(c): EMISSIONS ALLOCATION TO Family Planning in MDC, SpaceHeating_cluster",,,,% Allocation to Education (Electricity),,,,,,,,,,,,,,,,,,,,,, ,Additional Functional Units in REF2 vs REF1,Annual Functional Units Increase,Annual Implementation Units Increase + Replacement,Additional Functional Units in REF2 vs REF2,Annual Functional Units Increase,Change in TAM,Annual Implementation Units Increase + Replacement,,,Avoided Emissions/ Million Metric Tons CO2,,,,,Avoided Emissions/ Million Metric Tons CO2,,,,,ALL Years,,,,,,,,,,,,,,,ALL Years,,,,,,,,,,,,,,,,,,,,,, ,TWh,TWh,TW,TWh,TWh,%,TW,,,Grid,Fuel,Other Direct,Indirect,,Grid,Fuel,Other Direct,Indirect,,Conv Total,Solution Total,,,,Conv Total,Solution Total,,Conv Total,Solution Total,,Conv Total,Solution Total,,,Conv Total,Solution Total,,,,,,,,,,,,,,,,,,,,, -2014,,,,,,,Not modeled TBD,,,,,,,,,,,,,,,,,2014,0,0,,,,,0,0,,,,,,,,,,,,,,,,,,,,,,,,, -2015,,,,0,,,,,,,,,,,0,0,,,,0,0,,,2015,0,0,,,,,0,0,,,,,,,,,,,,,,,,,,,,,,,,, +2014,,,,,,,Not modeled TBD,,,,,,,,,,,,,,,,,2014,0,0,,,,,0,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2015,,,,0,,,,,,,,,,,0,0,,,,0,0,,,2015,0,0,,,,,0,0,,,0,,,,,,,,,,,,,,,,,,,,,, 2016,,,,7.590946079,7.590946079,0.651659889,,,,,,,,,0.128980656,1.335720462,,,,1.464701119,0,,,2016,1.464701119,0,,,,,1.464701119,0,,,0,,,,,,,,,,,,,,,,,,,,,, 2017,,,,18.59026326,10.99931718,0.650230511,,,,,,,,,0.312012625,3.271185802,,,,3.583198427,0,,,2017,3.583198427,0,,,,,3.583198427,0,,,0,,,,,,,,,,,,,,,,,,,,,, 2018,,,,32.4293311,13.83906784,0.646758107,,,,,,,,,0.539127901,5.706340248,,,,6.245468149,0,,,2018,6.245468149,0,,,,,6.245468149,0,,,0,,,,,,,,,,,,,,,,,,,,,, diff --git a/solution/health_and_education/tests/test_space_cooling.py b/solution/health_and_education/tests/test_space_cooling.py new file mode 100644 index 000000000..0b7c27828 --- /dev/null +++ b/solution/health_and_education/tests/test_space_cooling.py @@ -0,0 +1,105 @@ +import sys +sys.path.append('c:\\Users\\sunishchal.dev\\Documents\\solutions\\solution\\health_and_education') + +import pandas as pd +import numpy as np + +from clusters import space_cooling + +test_cluster = space_cooling.Cluster() +test_dfs = test_cluster.run_cluster() + +expected_df = pd.read_csv('expected_space_cooling.csv', header=None) + +def test_space_cooling(): + + # Default columns to integers to avoid mismatch between Excel & pandas col names using T.reset_index() + exp_ref2_tam = expected_df.iloc[28:75, 1:11].T.reset_index(drop=True).T.astype(float) + # exp_ref2_tam.columns = expected_df.iloc[27, 1:11].values + exp_ref2_tam.index = expected_df.iloc[28:75, 0].astype(int).values + test_ref2_tam = test_dfs.ref2_tam.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_ref2_tam, exp_ref2_tam, check_exact=False) + + exp_ref1_tam_low_edu = expected_df.iloc[28:75, 13:23].T.reset_index(drop=True).T.astype(float) + # exp_ref1_tam_low_edu.columns = expected_df.iloc[27, 13:23].values + exp_ref1_tam_low_edu.index = expected_df.iloc[28:75, 12].astype(int).values + test_ref1_tam_low_edu = test_dfs.ref1_tam_low_edu.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_ref1_tam_low_edu, exp_ref1_tam_low_edu, check_exact=False) + + exp_ref1_tam_high_edu = expected_df.iloc[28:75, 25:35].T.reset_index(drop=True).T.astype(float) + # exp_ref1_tam_high_edu.columns = expected_df.iloc[27, 25:35].values + exp_ref1_tam_high_edu.index = expected_df.iloc[28:75, 24].astype(int).values + test_ref1_tam_high_edu = test_dfs.ref1_tam_high_edu.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_ref1_tam_high_edu, exp_ref1_tam_high_edu, check_exact=False) + + exp_ref1_tam_all_regions = expected_df.iloc[28:75, 37:47].T.reset_index(drop=True).T.astype(float) + # exp_ref1_tam_all_regions.columns = expected_df.iloc[27, 37:47].values + exp_ref1_tam_all_regions.index = expected_df.iloc[28:75, 36].astype(int).values + test_ref1_tam_all_regions = test_dfs.ref1_tam_all_regions.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_ref1_tam_all_regions, exp_ref1_tam_all_regions, check_exact=False) + + exp_ref2_demand = expected_df.iloc[79:126, 1:6].T.reset_index(drop=True).T.astype(float) + exp_ref2_demand.index = expected_df.iloc[79:126, 0].astype(int).values + test_ref2_demand = test_dfs.ref2_demand.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_ref2_demand, exp_ref2_demand, check_exact=False, rtol=1e-3) + + exp_ref1_demand = expected_df.iloc[79:126, [8,9,10,11,12,14,15,16,17,18,19]].T.reset_index(drop=True).T.astype(float) + exp_ref1_demand.index = expected_df.iloc[79:126, 7].astype(int).values + test_ref1_demand = test_dfs.ref1_demand.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_ref1_demand, exp_ref1_demand, check_exact=False, rtol=1e-3) + + exp_change_demand = expected_df.iloc[79:126, 22:30].T.reset_index(drop=True).T.astype(float) + exp_change_demand.index = expected_df.iloc[79:126, 7].astype(int).values + test_change_demand = test_dfs.change_demand.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_change_demand, exp_change_demand, check_exact=False, rtol=1e-3) + + exp_addl_func_units_highed = expected_df.iloc[134:181, 4:7].T.reset_index(drop=True).T.astype(float) + exp_addl_func_units_highed.index = expected_df.iloc[134:181, 0].astype(int, errors='ignore').values + test_addl_func_units_highed = test_dfs.addl_func_units_highed.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_addl_func_units_highed, exp_addl_func_units_highed, check_exact=False, rtol=1e-3) + + exp_addl_func_units_lowed = expected_df.iloc[134:181, 12:15].T.reset_index(drop=True).T.astype(float) + exp_addl_func_units_lowed.index = expected_df.iloc[134:181, 0].astype(int, errors='ignore').values + test_addl_func_units_lowed = test_dfs.addl_func_units_lowed.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_addl_func_units_lowed, exp_addl_func_units_lowed, check_exact=False, rtol=1e-3) + + exp_emis_diff_highed = expected_df.iloc[134:181, [22, 23, 24, 25, 27]].T.reset_index(drop=True).T.astype(float) + exp_emis_diff_highed.index = expected_df.iloc[134:181, 0].astype(int, errors='ignore').values + test_emis_diff_highed = test_dfs.emis_diff_highed.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_emis_diff_highed, exp_emis_diff_highed, check_exact=False, rtol=1e-3) + + exp_emis_diff_lowed = expected_df.iloc[134:181, [35, 36, 37, 38, 40]].T.reset_index(drop=True).T.astype(float) + exp_emis_diff_lowed.index = expected_df.iloc[134:181, 0].astype(int, errors='ignore').values + test_emis_diff_lowed = test_dfs.emis_diff_lowed.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_emis_diff_lowed, exp_emis_diff_lowed, check_exact=False, rtol=1e-3) + + exp_emissions_allocations_lldc = expected_df.iloc[134:181, [46, 47, 49, 50, 52, 53, 56, 57]].T.reset_index(drop=True).T.astype(float) + exp_emissions_allocations_lldc.index = expected_df.iloc[134:181, 45].astype(int, errors='ignore').values + test_emissions_allocations_lldc = test_dfs.emissions_allocations_lldc.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_emissions_allocations_lldc, exp_emissions_allocations_lldc, check_exact=False, rtol=1e-2) + + exp_addl_func_units_mdc = expected_df.iloc[193:240, 4:7].T.reset_index(drop=True).T.astype(float) + exp_addl_func_units_mdc.index = expected_df.iloc[193:240, 0].astype(int, errors='ignore').values + test_addl_func_units_mdc = test_dfs.addl_func_units_mdc.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_addl_func_units_mdc, exp_addl_func_units_mdc, check_exact=False, rtol=1e-3) + + exp_emis_diff_mdc = expected_df.iloc[193:240, [15, 16, 17, 18, 20]].T.reset_index(drop=True).T.astype(float) + exp_emis_diff_mdc.index = expected_df.iloc[193:240, 0].astype(int, errors='ignore').values + test_emis_diff_mdc = test_dfs.emis_diff_mdc.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_emis_diff_mdc, exp_emis_diff_mdc, check_exact=False, rtol=1e-3) + + exp_emissions_allocations_mdc = expected_df.iloc[193:240, [25, 26, 28, 29, 31, 32, 35, 36]].T.reset_index(drop=True).T.astype(float) + exp_emissions_allocations_mdc.index = expected_df.iloc[193:240, 24].astype(int, errors='ignore').values + test_emissions_allocations_mdc = test_dfs.emissions_allocations_mdc.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_emissions_allocations_mdc, exp_emissions_allocations_mdc, check_exact=False, rtol=1e-2) + + # Test the final CO2 reduction output + exp_emissions_avoided = expected_df.iloc[[4, 7, 11], [13, 14]].reset_index(drop=True).T.reset_index(drop=True).T.astype(float) + test_emissions_avoided = pd.DataFrame([[test_dfs.emissions_avoided_lldc_period, test_dfs.emissions_avoided_lldc_full], + [test_dfs.emissions_avoided_mdc_period, test_dfs.emissions_avoided_mdc_full], + [test_dfs.emissions_avoided_total_period, test_dfs.emissions_avoided_total_full]]) + pd.testing.assert_frame_equal(test_emissions_avoided, exp_emissions_avoided, check_exact=False, rtol=1e-2) + + print("Test complete: space cooling cluster") + +test_space_cooling() \ No newline at end of file From 578d89238c9b29e60274c938a189a082dc5359da Mon Sep 17 00:00:00 2001 From: Sunishchal Date: Sat, 26 Dec 2020 01:37:33 -0800 Subject: [PATCH 16/28] Formatting updates --- .../clusters/cluster_model.py | 105 ++++++++++++------ .../clusters/space_cooling.py | 2 +- .../tests/test_space_cooling.py | 4 - .../tests/test_space_heating.py | 4 - 4 files changed, 74 insertions(+), 41 deletions(-) diff --git a/solution/health_and_education/clusters/cluster_model.py b/solution/health_and_education/clusters/cluster_model.py index 24d5b4934..80444ff32 100644 --- a/solution/health_and_education/clusters/cluster_model.py +++ b/solution/health_and_education/clusters/cluster_model.py @@ -63,7 +63,8 @@ def load_ref2_tam(self, ref2_tam_list): def calc_ref1_tam(self): # Table 3: REF1 TAM FOR POPULATIONS IN REGIONS WITH LOW EDUCATIONAL ATTAINMENT ONLY ref1_tam_low_edu = (self.ref2_tam / self.ref2_population) * self.ref1_low_edu - ref1_tam_low_edu.loc[:, 'Asia (Sans Japan)'] = ((self.ref2_tam.loc[:, 'Asia (Sans Japan)'] - self.ref2_tam.loc[:, 'China']) / self.ref2_population.loc[:, 'Asia (Sans Japan)']) * self.ref1_low_edu.loc[:, 'Asia (Sans Japan)'] + ref1_tam_low_edu.loc[:, 'Asia (Sans Japan)'] = ((self.ref2_tam.loc[:, 'Asia (Sans Japan)'] - self.ref2_tam.loc[:, 'China']) \ + / self.ref2_population.loc[:, 'Asia (Sans Japan)']) * self.ref1_low_edu.loc[:, 'Asia (Sans Japan)'] ref1_tam_low_edu.loc[:, 'World'] = ref1_tam_low_edu.loc[:, ref1_tam_low_edu.columns[1:6]].sum(axis=1) self.ref1_tam_low_edu = ref1_tam_low_edu @@ -92,7 +93,8 @@ def calc_ref2_demand(self): if dd.LLDC_HIGH_NRR_CONFIG['Asia (Sans Japan)'] == 'N': ref2_demand.loc[:, 'MDC + LAC + EE'] = ref2_demand.loc[:, 'MDC + LAC + EE'] - self.ref2_tam.loc[:, 'China'] ref2_demand.loc[:, 'Demand in Countries with Higher Educational Attainment'] = ref2_demand.loc[:, ['LLDC+HighNRR', 'China', 'MDC + LAC + EE']].sum(axis=1) - ref2_demand.loc[:, 'Demand in Countries with Higher Educational Attainment % LLDC'] = ref2_demand.loc[:, 'LLDC+HighNRR'] / ref2_demand.loc[:, 'Demand in Countries with Higher Educational Attainment'] + ref2_demand.loc[:, 'Demand in Countries with Higher Educational Attainment % LLDC'] = ref2_demand.loc[:, 'LLDC+HighNRR'] \ + / ref2_demand.loc[:, 'Demand in Countries with Higher Educational Attainment'] # SpaceHeating_cluster!B77:F124 self.ref2_demand = ref2_demand @@ -101,7 +103,10 @@ def calc_ref2_demand(self): def calc_ref1_demand(self): # Table 5: Total REF1 Demand by Economic Development Status ref1_demand = pd.DataFrame(None, - columns=['LLDC with low educational attainment, excluding China', 'MDC + EE + LAC with low educational attainment, excluding China', 'China', 'LLDC with higher educational attainment, excluding China', 'MDC + EE + LAC with higher educational attainment', 'Demand in Countries with Low Educational Attainment, exluding China', 'Demand in Countries with Low Educational Attainment, exluding China % LLDC', 'Demand in Countries with Higher Educational Attainment', 'Demand in Countries with Higher Educational Attainment % LLDC', 'Demand', 'Demand % LLDC'], + columns=['LLDC with low educational attainment, excluding China', 'MDC + EE + LAC with low educational attainment, excluding China', 'China', + 'LLDC with higher educational attainment, excluding China', 'MDC + EE + LAC with higher educational attainment', + 'Demand in Countries with Low Educational Attainment, exluding China', 'Demand in Countries with Low Educational Attainment, exluding China % LLDC', + 'Demand in Countries with Higher Educational Attainment', 'Demand in Countries with Higher Educational Attainment % LLDC', 'Demand', 'Demand % LLDC'], index=list(range(2014, 2061)), dtype=np.float64) ref1_demand.loc[:, 'LLDC with low educational attainment, excluding China'] = self.ref1_tam_low_edu.loc[:, dd.LLDC_HIGH_NRR_REGION_Y].sum(axis=1) - self.ref1_tam_low_edu.loc[:, 'China'] @@ -110,18 +115,26 @@ def calc_ref1_demand(self): ref1_demand.loc[:, 'MDC + LAC + EE'] = ref1_demand.loc[:, 'MDC + LAC + EE'] - self.ref1_tam_low_edu.loc[:, 'China'] ref1_demand.loc[:, 'China'] = self.ref1_tam_high_edu.loc[:, 'China'] - ref1_demand.loc[:, 'LLDC with higher educational attainment, excluding China'] = self.ref1_tam_high_edu.loc[:, dd.LLDC_HIGH_NRR_REGION_Y].sum(axis=1) - self.ref1_tam_high_edu.loc[:, 'China'] + ref1_demand.loc[:, 'LLDC with higher educational attainment, excluding China'] = self.ref1_tam_high_edu.loc[:, dd.LLDC_HIGH_NRR_REGION_Y].sum(axis=1) \ + - self.ref1_tam_high_edu.loc[:, 'China'] ref1_demand.loc[:, 'MDC + EE + LAC with higher educational attainment'] = self.ref1_tam_high_edu.loc[:, dd.LLDC_HIGH_NRR_REGION_N].sum(axis=1) if dd.LLDC_HIGH_NRR_CONFIG['Asia (Sans Japan)'] == 'N': - ref1_demand.loc[:, 'MDC + EE + LAC with higher educational attainment'] = ref1_demand.loc[:, 'MDC + EE + LAC with higher educational attainment'] - self.ref1_tam_high_edu.loc[:, 'China'] - - ref1_demand.loc[:, 'Demand in Countries with Low Educational Attainment, exluding China'] = ref1_demand.loc[:, 'LLDC with low educational attainment, excluding China'] + ref1_demand.loc[:, 'MDC + EE + LAC with low educational attainment, excluding China'] - ref1_demand.loc[:, 'Demand in Countries with Low Educational Attainment, exluding China % LLDC'] = ref1_demand.loc[:, 'LLDC with low educational attainment, excluding China'] / ref1_demand.loc[:, 'Demand in Countries with Low Educational Attainment, exluding China'] - - ref1_demand.loc[:, 'Demand in Countries with Higher Educational Attainment'] = ref1_demand.loc[:, 'China'] + ref1_demand.loc[:, 'LLDC with higher educational attainment, excluding China'] + ref1_demand.loc[:, 'MDC + EE + LAC with higher educational attainment'] - ref1_demand.loc[:, 'Demand in Countries with Higher Educational Attainment % LLDC'] = ref1_demand.loc[:, 'LLDC with higher educational attainment, excluding China'] / ref1_demand.loc[:, 'Demand in Countries with Higher Educational Attainment'] - - ref1_demand.loc[:, 'Demand'] = ref1_demand.loc[:, 'Demand in Countries with Low Educational Attainment, exluding China'] + ref1_demand.loc[:, 'Demand in Countries with Higher Educational Attainment'] + ref1_demand.loc[:, 'MDC + EE + LAC with higher educational attainment'] = ref1_demand.loc[:, 'MDC + EE + LAC with higher educational attainment'] \ + - self.ref1_tam_high_edu.loc[:, 'China'] + + ref1_demand.loc[:, 'Demand in Countries with Low Educational Attainment, exluding China'] = ref1_demand.loc[:, 'LLDC with low educational attainment, excluding China'] \ + + ref1_demand.loc[:, 'MDC + EE + LAC with low educational attainment, excluding China'] + ref1_demand.loc[:, 'Demand in Countries with Low Educational Attainment, exluding China % LLDC'] = ref1_demand.loc[:, 'LLDC with low educational attainment, excluding China'] \ + / ref1_demand.loc[:, 'Demand in Countries with Low Educational Attainment, exluding China'] + + ref1_demand.loc[:, 'Demand in Countries with Higher Educational Attainment'] = ref1_demand.loc[:, 'China'] \ + + ref1_demand.loc[:, 'LLDC with higher educational attainment, excluding China'] \ + + ref1_demand.loc[:, 'MDC + EE + LAC with higher educational attainment'] + ref1_demand.loc[:, 'Demand in Countries with Higher Educational Attainment % LLDC'] = ref1_demand.loc[:, 'LLDC with higher educational attainment, excluding China'] \ + / ref1_demand.loc[:, 'Demand in Countries with Higher Educational Attainment'] + + ref1_demand.loc[:, 'Demand'] = ref1_demand.loc[:, 'Demand in Countries with Low Educational Attainment, exluding China'] \ + + ref1_demand.loc[:, 'Demand in Countries with Higher Educational Attainment'] ref1_demand.loc[:, 'Demand % LLDC'] = ref1_demand.loc[:, 'Demand in Countries with Low Educational Attainment, exluding China'] / ref1_demand.loc[:, 'Demand'] # SpaceHeating_cluster!H77:T124 @@ -131,22 +144,37 @@ def calc_ref1_demand(self): def calc_change_demand(self): # Table 6: Change in Demand by MDC vs. LLDC Regions, REF1-REF2 change_demand = pd.DataFrame(None, - columns=['LLDC', 'China', 'MDC + EE +LAC', 'Total change in REF1-REF2', '% LLDC with higher educational attainment', '% LLDC with Low Educational Attainment', '% LLDC', '% MDC + LAC + EE + China'], + columns=['LLDC', 'China', 'MDC + EE +LAC', 'Total change in REF1-REF2', '% LLDC with higher educational attainment', + '% LLDC with Low Educational Attainment', '% LLDC', '% MDC + LAC + EE + China'], index=list(range(2014, 2061)), dtype=np.float64) - change_demand.loc[:, 'LLDC'] = (self.ref1_demand.loc[:, 'LLDC with low educational attainment, excluding China'] + self.ref1_demand.loc[:, 'LLDC with higher educational attainment, excluding China']) - self.ref2_demand.loc[:, 'LLDC+HighNRR'] + change_demand.loc[:, 'LLDC'] = (self.ref1_demand.loc[:, 'LLDC with low educational attainment, excluding China'] \ + + self.ref1_demand.loc[:, 'LLDC with higher educational attainment, excluding China']) - self.ref2_demand.loc[:, 'LLDC+HighNRR'] + change_demand.loc[:, 'China'] = self.ref1_demand.loc[:, 'China'] - self.ref2_demand.loc[:, 'China'] - change_demand.loc[:, 'MDC + EE +LAC'] = (self.ref1_demand.loc[:, 'MDC + EE + LAC with higher educational attainment'] + self.ref1_demand.loc[:, 'MDC + EE + LAC with low educational attainment, excluding China']) - self.ref2_demand.loc[:, 'MDC + LAC + EE'] - # change_demand.loc[[2014, 2015], 'MDC + EE +LAC'] = 0 + change_demand.loc[:, 'MDC + EE +LAC'] = (self.ref1_demand.loc[:, 'MDC + EE + LAC with higher educational attainment'] \ + + self.ref1_demand.loc[:, 'MDC + EE + LAC with low educational attainment, excluding China']) - self.ref2_demand.loc[:, 'MDC + LAC + EE'] change_demand.loc[:, 'Total change in REF1-REF2'] = change_demand.loc[:, 'LLDC'] + change_demand.loc[:, 'China'] + change_demand.loc[:, 'MDC + EE +LAC'] - change_demand.loc[:, '% LLDC with higher educational attainment'] = (change_demand.loc[:, 'LLDC'] * (self.ref1_demand.loc[:, 'LLDC with higher educational attainment, excluding China'] / (self.ref1_demand.loc[:, 'LLDC with low educational attainment, excluding China'] + self.ref1_demand.loc[:, 'LLDC with higher educational attainment, excluding China']))) / change_demand.loc[:, 'Total change in REF1-REF2'] + change_demand.loc[:, '% LLDC with higher educational attainment'] = (change_demand.loc[:, 'LLDC'] \ + * (self.ref1_demand.loc[:, 'LLDC with higher educational attainment, excluding China'] \ + / (self.ref1_demand.loc[:, 'LLDC with low educational attainment, excluding China'] \ + + self.ref1_demand.loc[:, 'LLDC with higher educational attainment, excluding China']))) \ + / change_demand.loc[:, 'Total change in REF1-REF2'] + + change_demand.loc[:, '% LLDC with Low Educational Attainment'] = (change_demand.loc[:, 'LLDC'] / change_demand.loc[:, 'Total change in REF1-REF2']) \ + * (self.ref1_demand.loc[:, 'LLDC with low educational attainment, excluding China'] \ + / (self.ref1_demand.loc[:, 'LLDC with higher educational attainment, excluding China'] \ + + self.ref1_demand.loc[:, 'LLDC with low educational attainment, excluding China'])) - change_demand.loc[:, '% LLDC with Low Educational Attainment'] = (change_demand.loc[:, 'LLDC'] / change_demand.loc[:, 'Total change in REF1-REF2']) * (self.ref1_demand.loc[:, 'LLDC with low educational attainment, excluding China'] / (self.ref1_demand.loc[:, 'LLDC with higher educational attainment, excluding China'] + self.ref1_demand.loc[:, 'LLDC with low educational attainment, excluding China'])) change_demand.loc[:, '% LLDC'] = (change_demand.loc[:, 'LLDC'] / change_demand.loc[:, 'Total change in REF1-REF2']) - change_demand.loc[:, '% MDC + LAC + EE + China'] = (change_demand.loc[:, 'China'] + change_demand.loc[:, 'MDC + EE +LAC']) / change_demand.loc[:, 'Total change in REF1-REF2'] + change_demand.loc[:, '% MDC + LAC + EE + China'] = (change_demand.loc[:, 'China'] + change_demand.loc[:, 'MDC + EE +LAC']) \ + / change_demand.loc[:, 'Total change in REF1-REF2'] change_demand = change_demand.fillna(0).replace((-np.inf, np.inf), np.nan) + + # Force valuesin order to pass test against Excel, which seems to have been zerod out manually for the first 2 rows + change_demand.iloc[0:2, :] = 0 # SpaceHeating_cluster!W77:AD124 self.change_demand = change_demand @@ -246,7 +274,8 @@ def calc_emis_diff_highed_spaceheating(self, ef_co2_eq_list): if self.assumptions['Fuel'] == 'Y': emis_diff_highed['Conventional: Fuel'] = self.addl_func_units_highed['Additional Functional Units in REF2 vs REF2'] \ - * (self.current_tam_mix.loc[self.current_tam_mix['Energy Source'].isin(['Coal', 'Oil Products', 'Natural Gas', 'Biomass, waste and other renewables']), 'Weighting Factor'].sum() / self.conv_weight_sum) \ + * (self.current_tam_mix.loc[self.current_tam_mix['Energy Source'].isin(['Coal', 'Oil Products', 'Natural Gas', 'Biomass, waste and other renewables']), 'Weighting Factor'].sum() \ + / self.conv_weight_sum) \ * (self.assumptions['Weighted Emission Factor for Space Heating and Cooling'] * self.assumptions['TJ_per_TWh']) / 10**6 emis_diff_highed['Emission Reductions: Conv Total'] = emis_diff_highed[['Conventional: Grid', 'Conventional: Fuel', 'Conventional: Other Direct', 'Conventional: Indirect']].sum(axis=1, min_count=1) @@ -464,35 +493,47 @@ def calc_emis_alloc_mdc(self): self.emissions_allocations_mdc = emissions_allocations_mdc - def calc_total_emis(self): + def calc_total_emis(self, mdc=True): # Total Emissions Avoided due to Health & Education (Gt CO2-eq) emissions_avoided_lldc_period = self.emissions_allocations_lldc.loc[self.assumptions['period_start']:self.assumptions['period_end'], 'Health & Education: Conv Total'].sum() emissions_avoided_lldc_full = self.emissions_allocations_lldc.loc[:, 'Health & Education: Conv Total'].sum() - emissions_avoided_mdc_period = self.emissions_allocations_mdc.loc[self.assumptions['period_start']:self.assumptions['period_end'], 'Health & Education: Conv Total'].sum() - emissions_avoided_mdc_full = self.emissions_allocations_mdc.loc[:, 'Health & Education: Conv Total'].sum() + + if mdc: + emissions_avoided_mdc_period = self.emissions_allocations_mdc.loc[self.assumptions['period_start']:self.assumptions['period_end'], 'Health & Education: Conv Total'].sum() + emissions_avoided_mdc_full = self.emissions_allocations_mdc.loc[:, 'Health & Education: Conv Total'].sum() # Electricity_cluster!N4:O12 self.emissions_avoided_lldc_period = round(emissions_avoided_lldc_period/1000, 2) self.emissions_avoided_lldc_full = round(emissions_avoided_lldc_full/1000, 2) - self.emissions_avoided_mdc_period = round(emissions_avoided_mdc_period/1000, 2) - self.emissions_avoided_mdc_full = round(emissions_avoided_mdc_full/1000, 2) + + if mdc: + self.emissions_avoided_mdc_period = round(emissions_avoided_mdc_period/1000, 2) + self.emissions_avoided_mdc_full = round(emissions_avoided_mdc_full/1000, 2) + else: + self.emissions_avoided_mdc_period = 0 + self.emissions_avoided_mdc_full = 0 + + self.emissions_avoided_total_period = round(self.emissions_avoided_lldc_period + self.emissions_avoided_mdc_period, 2) self.emissions_avoided_total_full = round(self.emissions_avoided_lldc_full + self.emissions_avoided_mdc_full, 2) - def print_total_emis(self): + def print_total_emis(self, mdc=True): # To avoid the hard coded 2015 - 2060 date range in Excel, infer the min/max years from the dataframe - min_range = min(self.emissions_allocations_mdc.index) - max_range = max(self.emissions_allocations_mdc.index) + min_range = min(self.emissions_allocations_lldc.index) + max_range = max(self.emissions_allocations_lldc.index) print('\n', self.name) print('Total Emissions Avoided due to Health & Education (Gt CO2-eq)') print('\nLeast & Less Developed Countries (Conventional):') print(f'{min_range} - {max_range}:', self.emissions_avoided_lldc_full) print(f'{self.period_start} - {self.period_end}:', self.emissions_avoided_lldc_period) - print('\nMore Developed Countries (Conventional):') - print(f'{min_range} - {max_range}:', self.emissions_avoided_mdc_full) - print(f'{self.period_start} - {self.period_end}:', self.emissions_avoided_mdc_period) + + if mdc: + print('\nMore Developed Countries (Conventional):') + print(f'{min_range} - {max_range}:', self.emissions_avoided_mdc_full) + print(f'{self.period_start} - {self.period_end}:', self.emissions_avoided_mdc_period) + print('\nTotal (Conventional):') print(f'{min_range} - {max_range}:', self.emissions_avoided_total_full) print(f'{self.period_start} - {self.period_end}:', self.emissions_avoided_total_period) \ No newline at end of file diff --git a/solution/health_and_education/clusters/space_cooling.py b/solution/health_and_education/clusters/space_cooling.py index 850c616a1..8eb5e195e 100644 --- a/solution/health_and_education/clusters/space_cooling.py +++ b/solution/health_and_education/clusters/space_cooling.py @@ -44,7 +44,7 @@ ['Electricity', 95.0, 'N', 'Y']] # Table 2: REF2, Heating Demand TAM (TWh Therms) -# SpaceHeating_cluster!B28:K75 +# SpaceCooling_cluster!B28:K75 # TODO: Replace this with solarpvutil.Scenario.ref_tam_per_region once we resolve the data mismatch ref2_tam_list = [ ['World', 'OECD90', 'Eastern Europe', 'Asia (Sans Japan)', 'Middle East and Africa', 'Latin America', 'China', 'India', 'EU', 'USA'], diff --git a/solution/health_and_education/tests/test_space_cooling.py b/solution/health_and_education/tests/test_space_cooling.py index 0b7c27828..3de0ea83a 100644 --- a/solution/health_and_education/tests/test_space_cooling.py +++ b/solution/health_and_education/tests/test_space_cooling.py @@ -15,25 +15,21 @@ def test_space_cooling(): # Default columns to integers to avoid mismatch between Excel & pandas col names using T.reset_index() exp_ref2_tam = expected_df.iloc[28:75, 1:11].T.reset_index(drop=True).T.astype(float) - # exp_ref2_tam.columns = expected_df.iloc[27, 1:11].values exp_ref2_tam.index = expected_df.iloc[28:75, 0].astype(int).values test_ref2_tam = test_dfs.ref2_tam.T.reset_index(drop=True).T pd.testing.assert_frame_equal(test_ref2_tam, exp_ref2_tam, check_exact=False) exp_ref1_tam_low_edu = expected_df.iloc[28:75, 13:23].T.reset_index(drop=True).T.astype(float) - # exp_ref1_tam_low_edu.columns = expected_df.iloc[27, 13:23].values exp_ref1_tam_low_edu.index = expected_df.iloc[28:75, 12].astype(int).values test_ref1_tam_low_edu = test_dfs.ref1_tam_low_edu.T.reset_index(drop=True).T pd.testing.assert_frame_equal(test_ref1_tam_low_edu, exp_ref1_tam_low_edu, check_exact=False) exp_ref1_tam_high_edu = expected_df.iloc[28:75, 25:35].T.reset_index(drop=True).T.astype(float) - # exp_ref1_tam_high_edu.columns = expected_df.iloc[27, 25:35].values exp_ref1_tam_high_edu.index = expected_df.iloc[28:75, 24].astype(int).values test_ref1_tam_high_edu = test_dfs.ref1_tam_high_edu.T.reset_index(drop=True).T pd.testing.assert_frame_equal(test_ref1_tam_high_edu, exp_ref1_tam_high_edu, check_exact=False) exp_ref1_tam_all_regions = expected_df.iloc[28:75, 37:47].T.reset_index(drop=True).T.astype(float) - # exp_ref1_tam_all_regions.columns = expected_df.iloc[27, 37:47].values exp_ref1_tam_all_regions.index = expected_df.iloc[28:75, 36].astype(int).values test_ref1_tam_all_regions = test_dfs.ref1_tam_all_regions.T.reset_index(drop=True).T pd.testing.assert_frame_equal(test_ref1_tam_all_regions, exp_ref1_tam_all_regions, check_exact=False) diff --git a/solution/health_and_education/tests/test_space_heating.py b/solution/health_and_education/tests/test_space_heating.py index 21f966a6e..2d8612533 100644 --- a/solution/health_and_education/tests/test_space_heating.py +++ b/solution/health_and_education/tests/test_space_heating.py @@ -15,25 +15,21 @@ def test_space_heating(): # Default columns to integers to avoid mismatch between Excel & pandas col names using T.reset_index() exp_ref2_tam = expected_df.iloc[28:75, 1:11].T.reset_index(drop=True).T.astype(float) - # exp_ref2_tam.columns = expected_df.iloc[27, 1:11].values exp_ref2_tam.index = expected_df.iloc[28:75, 0].astype(int).values test_ref2_tam = test_dfs.ref2_tam.T.reset_index(drop=True).T pd.testing.assert_frame_equal(test_ref2_tam, exp_ref2_tam, check_exact=False) exp_ref1_tam_low_edu = expected_df.iloc[28:75, 13:23].T.reset_index(drop=True).T.astype(float) - # exp_ref1_tam_low_edu.columns = expected_df.iloc[27, 13:23].values exp_ref1_tam_low_edu.index = expected_df.iloc[28:75, 12].astype(int).values test_ref1_tam_low_edu = test_dfs.ref1_tam_low_edu.T.reset_index(drop=True).T pd.testing.assert_frame_equal(test_ref1_tam_low_edu, exp_ref1_tam_low_edu, check_exact=False) exp_ref1_tam_high_edu = expected_df.iloc[28:75, 25:35].T.reset_index(drop=True).T.astype(float) - # exp_ref1_tam_high_edu.columns = expected_df.iloc[27, 25:35].values exp_ref1_tam_high_edu.index = expected_df.iloc[28:75, 24].astype(int).values test_ref1_tam_high_edu = test_dfs.ref1_tam_high_edu.T.reset_index(drop=True).T pd.testing.assert_frame_equal(test_ref1_tam_high_edu, exp_ref1_tam_high_edu, check_exact=False) exp_ref1_tam_all_regions = expected_df.iloc[28:75, 37:47].T.reset_index(drop=True).T.astype(float) - # exp_ref1_tam_all_regions.columns = expected_df.iloc[27, 37:47].values exp_ref1_tam_all_regions.index = expected_df.iloc[28:75, 36].astype(int).values test_ref1_tam_all_regions = test_dfs.ref1_tam_all_regions.T.reset_index(drop=True).T pd.testing.assert_frame_equal(test_ref1_tam_all_regions, exp_ref1_tam_all_regions, check_exact=False) From 78d97732f1ba2431306b28a1a51e451a63b248b3 Mon Sep 17 00:00:00 2001 From: Sunishchal Date: Sat, 26 Dec 2020 01:38:26 -0800 Subject: [PATCH 17/28] Instantiation of clean cookstoves cluster --- .../clusters/clean_cookstoves.py | 183 +++++++++++++ .../tests/expected_clean_cookstoves.csv | 240 ++++++++++++++++++ .../tests/test_clean_cookstoves.py | 88 +++++++ 3 files changed, 511 insertions(+) create mode 100644 solution/health_and_education/clusters/clean_cookstoves.py create mode 100644 solution/health_and_education/tests/expected_clean_cookstoves.csv create mode 100644 solution/health_and_education/tests/test_clean_cookstoves.py diff --git a/solution/health_and_education/clusters/clean_cookstoves.py b/solution/health_and_education/clusters/clean_cookstoves.py new file mode 100644 index 000000000..050fcbb5a --- /dev/null +++ b/solution/health_and_education/clusters/clean_cookstoves.py @@ -0,0 +1,183 @@ +"""Health & Education solution model for Clean Cookstoves Cluster + Excel filename: CORE_PopulationChange_29Jan2020 (version 1.5).xlsx + Excel sheet name: CleanCookstoves_cluster +""" +import pathlib +import numpy as np +import pandas as pd +import sys +__file__ = 'c:\\Users\\sunishchal.dev\\Documents\\solutions\\solution\\health_and_education\\clusters' +repo_path = str(pathlib.Path(__file__).parents[2]) +sys.path.append(repo_path) +# sys.path.append('c:\\Users\\sunishchal.dev\\Documents\\solutions') + +from model import advanced_controls as ac +from solution.health_and_education.clusters import cluster_model + +DATADIR = pathlib.Path(__file__).parents[0].joinpath('data') +THISDIR = pathlib.Path(__file__).parents[0] + +name = 'Health and Education - Clean Cookstoves Cluster' +solution_category = ac.SOLUTION_CATEGORY.REDUCTION +period_start = 2020 +period_end = 2050 + +# % impact of educational attainment on uptake of Family Planning: +assumptions = { + 'fixed_weighting_factor': None, + 'pct_impact': 0.50, + 'use_fixed_weight': 'N', + 'TJ_per_TWh': 16997.5625998504, + 'period_start': 2020, + 'period_end': 2050, + 'Grid': 'N', + 'Fuel': 'Y', + 'Other Direct': 'N', + 'Indirect': 'N', + 'CO2-eq Emissions for Solid Biofuels': 108.0 +} + +# TABLE 1: Current TAM Mix +current_tam_mix_list = [ + ['Energy Source', 'Weighting Factor', 'Include in SOL?', 'Include in CONV?'], + ['LPG', 23.7722604650757, 'N', 'Y'], + ['Electricity', 3.09086628733514, 'N', 'Y'], + ['Firewood (incl crop residue+dung)', 44.5074639589554, 'N', 'Y'], + ['Biogas', 1.00127286339017, 'N', 'Y'], + ['Coal', 15.3972560062807, 'N', 'Y'], + ['Natural Gas', 2.92055789748195, 'N', 'Y'], + ['Kerosene', 2.30072086818361, 'N', 'Y'], + ['Coal gas', 2.92055789748195, 'N', 'Y']] + +# Table 2: REF2, Heating Demand TAM (TWh Therms) +# Clean Cookstoves_cluster!B28:K75 +# TODO: Replace this with solarpvutil.Scenario.ref_tam_per_region once we resolve the data mismatch +ref2_tam_list = [ + ['World', 'OECD90', 'Eastern Europe', 'Asia (Sans Japan)', 'Middle East and Africa', 'Latin America', 'China', 'India', 'EU', 'USA'], + [4417.454144, 0.000000, 0.000000, 4053.298731, 1783.757754, 173.254108, 1086.492157, 1622.370389, 0.000000, 0.000000], + [4499.784719, 0.000000, 0.000000, 4063.458970, 1813.714359, 173.110086, 1083.167749, 1629.340849, 0.000000, 0.000000], + [4566.459576, 0.000000, 0.000000, 4072.722322, 1846.401375, 173.132753, 1079.291643, 1640.767842, 0.000000, 0.000000], + [4640.619484, 0.000000, 0.000000, 4081.370608, 1879.220242, 173.127819, 1074.656400, 1651.913008, 0.000000, 0.000000], + [4714.592064, 0.000000, 0.000000, 4089.403674, 1912.166934, 173.095459, 1069.301088, 1662.775487, 0.000000, 0.000000], + [4788.429020, 0.000000, 0.000000, 4096.821366, 1945.237426, 173.035847, 1063.264772, 1673.354415, 0.000000, 0.000000], + [4857.017901, 0.000000, 0.000000, 4103.623531, 1978.427692, 172.949155, 1056.586516, 1683.648933, 0.000000, 0.000000], + [4928.700426, 0.000000, 0.000000, 4109.810015, 2011.733707, 172.835559, 1049.305389, 1693.658179, 0.000000, 0.000000], + [4995.148726, 0.000000, 0.000000, 4115.380664, 2045.151444, 172.695231, 1041.460454, 1703.381292, 0.000000, 0.000000], + [5061.464606, 0.000000, 0.000000, 4120.335323, 2078.676878, 172.528346, 1033.090778, 1712.817409, 0.000000, 0.000000], + [5127.597848, 0.000000, 0.000000, 4124.673841, 2112.305984, 172.335078, 1024.235427, 1721.965671, 0.000000, 0.000000], + [5193.508617, 0.000000, 0.000000, 4128.396061, 2146.034735, 172.115601, 1014.933467, 1730.825215, 0.000000, 0.000000], + [5259.177960, 0.000000, 0.000000, 4131.501832, 2179.859107, 171.870088, 1005.223962, 1739.395180, 0.000000, 0.000000], + [5324.597693, 0.000000, 0.000000, 4133.990998, 2213.775072, 171.598714, 995.145980, 1747.674706, 0.000000, 0.000000], + [5389.752123, 0.000000, 0.000000, 4135.863407, 2247.778607, 171.301651, 984.738586, 1755.662930, 0.000000, 0.000000], + [5454.627086, 0.000000, 0.000000, 4137.118904, 2281.865684, 170.979075, 974.040846, 1763.358992, 0.000000, 0.000000], + [5519.206321, 0.000000, 0.000000, 4137.757336, 2316.032279, 170.631159, 963.091825, 1770.762029, 0.000000, 0.000000], + [5575.316947, 0.000000, 0.000000, 4137.778548, 2350.274365, 170.258076, 951.930590, 1777.871181, 0.000000, 0.000000], + [5631.178821, 0.000000, 0.000000, 4137.182387, 2384.587918, 169.860002, 940.596206, 1784.685587, 0.000000, 0.000000], + [5686.782132, 0.000000, 0.000000, 4135.968699, 2418.968910, 169.437109, 929.127739, 1791.204385, 0.000000, 0.000000], + [5742.117705, 0.000000, 0.000000, 4134.137331, 2453.413318, 168.989571, 917.564254, 1797.426713, 0.000000, 0.000000], + [5797.172386, 0.000000, 0.000000, 4131.688128, 2487.917114, 168.517563, 905.944819, 1803.351712, 0.000000, 0.000000], + [5851.928792, 0.000000, 0.000000, 4128.620937, 2522.476274, 168.021258, 894.308497, 1808.978518, 0.000000, 0.000000], + [5906.363303, 0.000000, 0.000000, 4124.935604, 2557.086772, 167.500830, 882.694356, 1814.306271, 0.000000, 0.000000], + [5960.447861, 0.000000, 0.000000, 4120.631976, 2591.744581, 166.956453, 871.141461, 1819.334109, 0.000000, 0.000000], + [6014.150757, 0.000000, 0.000000, 4115.709897, 2626.445677, 166.388301, 859.688878, 1824.061172, 0.000000, 0.000000], + [6067.440852, 0.000000, 0.000000, 4110.169215, 2661.186034, 165.796548, 848.375673, 1828.486598, 0.000000, 0.000000], + [6111.834509, 0.000000, 0.000000, 4104.009776, 2695.961626, 165.181368, 837.240910, 1832.609525, 0.000000, 0.000000], + [6155.906047, 0.000000, 0.000000, 4097.231425, 2730.768427, 164.542934, 826.323658, 1836.429093, 0.000000, 0.000000], + [6199.636056, 0.000000, 0.000000, 4089.834010, 2765.602412, 163.881420, 815.662980, 1839.944439, 0.000000, 0.000000], + [6243.003700, 0.000000, 0.000000, 4081.817376, 2800.459554, 163.197001, 805.297943, 1843.154704, 0.000000, 0.000000], + [6285.986042, 0.000000, 0.000000, 4073.181370, 2835.335830, 162.489849, 795.267613, 1846.059024, 0.000000, 0.000000], + [6328.557075, 0.000000, 0.000000, 4063.925837, 2870.227211, 161.760140, 785.611056, 1848.656540, 0.000000, 0.000000], + [6370.689262, 0.000000, 0.000000, 4054.050624, 2905.129674, 161.008047, 776.367336, 1850.946389, 0.000000, 0.000000], + [6412.354174, 0.000000, 0.000000, 4043.555577, 2940.039192, 160.233743, 767.575521, 1852.927710, 0.000000, 0.000000], + [6453.521053, 0.000000, 0.000000, 4032.440543, 2974.951740, 159.437403, 759.274676, 1854.599643, 0.000000, 0.000000], + [6494.155356, 0.000000, 0.000000, 4020.705367, 3009.863292, 158.619201, 751.503867, 1855.961325, 0.000000, 0.000000], + [6526.721591, 0.000000, 0.000000, 4008.349896, 3044.769823, 157.779310, 744.302159, 1857.011896, 0.000000, 0.000000], + [6558.862251, 0.000000, 0.000000, 3995.373976, 3079.667306, 156.917904, 737.708618, 1857.750494, 0.000000, 0.000000], + [6590.546779, 0.000000, 0.000000, 3981.777453, 3114.551716, 156.035158, 731.762311, 1858.176258, 0.000000, 0.000000], + [6621.741211, 0.000000, 0.000000, 3967.560173, 3149.419027, 155.131245, 726.502302, 1858.288326, 0.000000, 0.000000], + [6652.409150, 0.000000, 0.000000, 3952.721983, 3184.265214, 154.206338, 721.967659, 1858.085838, 0.000000, 0.000000], + [6682.513018, 0.000000, 0.000000, 3937.262728, 3219.086252, 153.260612, 718.197446, 1857.567931, 0.000000, 0.000000], + [6712.014512, 0.000000, 0.000000, 3921.182255, 3253.878113, 152.294241, 715.230729, 1856.733745, 0.000000, 0.000000], + [6740.874312, 0.000000, 0.000000, 3904.480411, 3288.636773, 151.307399, 713.106575, 1855.582418, 0.000000, 0.000000], + [6769.053409, 0.000000, 0.000000, 3887.157041, 3323.358207, 150.300259, 711.864048, 1854.113089, 0.000000, 0.000000], + [6796.513173, 0.000000, 0.000000, 3869.211991, 3358.038387, 149.272995, 711.542216, 1852.324897, 0.000000, 0.000000]] + +# GRID EMISSIONS FACTORS: REF Grid EFs kg CO2-eq per kwh +# Emissions Factors!B11:K57 +# TODO: Replace this with emissions_factors module once interface is better understood +ef_co2_eq_list = [ + ['World', 'OECD90', 'Eastern Europe', 'Asia (Sans Japan)', 'Middle East and Africa', 'Latin America', 'China', 'India', 'EU', 'USA'], + [None, None, None, None, None, None, None, None, None, None], + [0.617381628, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.613053712, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.605559021, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.599823764, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.596692109, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.592956465, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.589394210, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.585889941, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.582469966, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.579126508, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.576180724, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.572640473, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.569484654, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.566378788, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.563317175, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.560425096, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.557305440, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.554345365, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.551409592, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.548493724, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.545513743, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.542688056, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.539794403, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.536903541, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.533998347, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.530880184, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.528185055, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.525268472, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.522337859, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.519390128, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.516316183, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.513431317, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.510414389, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.507368630, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.504753472, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.503017663, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.501095098, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.499244741, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.497355610, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.495425752, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.493412239, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.491436597, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.489373931, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.487263794, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.485104746, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.483057065, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666]] + +class Cluster: + + def __init__(self): + self.name = name + + def run_cluster(self): + scenario = cluster_model.Scenario(name, assumptions) + scenario.load_pop_data(DATADIR) + scenario.load_tam_mix(current_tam_mix_list) + scenario.load_ref2_tam(ref2_tam_list) + scenario.calc_ref1_tam() + scenario.calc_ref2_demand() + scenario.calc_ref1_demand() + scenario.calc_change_demand() + scenario.calc_addl_units_highed() + scenario.calc_addl_units_lowed() + scenario.calc_emis_diff_highed_spacecooling(ef_co2_eq_list) + scenario.calc_emis_diff_lowed_spacecooling() + scenario.calc_emis_alloc_lldc() + scenario.calc_total_emis(mdc=False) + scenario.print_total_emis(mdc=False) + return scenario + +if __name__ == "__main__": + cluster = Cluster() + cluster.run_cluster() \ No newline at end of file diff --git a/solution/health_and_education/tests/expected_clean_cookstoves.csv b/solution/health_and_education/tests/expected_clean_cookstoves.csv new file mode 100644 index 000000000..f0753bc16 --- /dev/null +++ b/solution/health_and_education/tests/expected_clean_cookstoves.csv @@ -0,0 +1,240 @@ +CleanCookstoves_cluster,,Cooking Heat Demand,(TWh Therms),,,,,Sheet Estimates the Emissions Reduction from this Solution due to Health & Education,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,Period Start:,2020,,Total Emissions Avoided due to Health & Education (Gt CO2-eq),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,COPY VALUES FROM SOLUTION MODEL,,,,Period End:,2050,,,,2020-2050,2015-2060,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,TABLE 1: Current TAM Mix,2018,Include in SOL?,Include in CONV?,,,,LLDC,SOLUTION,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,LPG,0.237722605,N,N,,,,,CONVENTIONAL,7.256899568,14.00152945,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,Electricity,0.030908663,N,N,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +Keywords:,,,,firewood (incl crop residue+dung),0.44507464,N,Y,,,,MDC,SOLUTION,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +LLDC,Least and Less Developed Countries,,,Biogas,0.010012729,N,N,,,,,CONVENTIONAL,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +MDC,More Developed Countries,,,Coal,0.15397256,N,N,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +LLDC+HighNRR+HigherEd,Least and Less Developed Countries with High Net Reproductive Rates & Higher Educational Attainment.,"NOTE: China, LAC, and EE are considered as LLDC Regions with Low NRR and are accounted for under the _mdc sheet.",,Natural gas,0.029205579,N,N,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +LLDC+HighNRR+LowEd,"Least and Less Developed Countries with High Net Reproductive Rates & Lower Educational Attainment. This excludes China, LAC, and EE.","NOTE: China, LAC, and EE are considered as LLDC Regions with Low NRR and are accounted for under the _mdc sheet.",,Kerosene,0.023007209,N,N,,,,TOTAL,SOLUTION,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +REF1,Reference Scenario 1 with Higher Population,,,Coal gas,0.029205579,N,N,,,,,CONVENTIONAL,7.256899568,14.00152945,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +REF2,Reference Scenario 2 with Lower Population,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +TAM,Total Addressable Market,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +LAC,Latin American Countries,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +EE,Eastern Europe,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +TWh,Terrawatt-Hours,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +NRR,Net Reproductive Rate,,,Assumptions:,,Use fixed weight?,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,Fixed weighting factor:,,N,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,% impact of educational attainment on uptake of Family Planning:,0.5,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,Twh per TWh,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,Fuel unit (TJ) per TWh,16997.5626,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,Direct Emissions,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,Indirect Emissions,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +"Table 2: REF2, Cooking Heat Demand TAM (TWh Therms)",,,,,,,,,,,,"Table 3: REF1 ,Cooking Heat Demand TAM (TWh Therms)",,,,,,,,,,,,Table 3: REF1 Cooking Heat Demand TAM (TWh Therms),,,,,,,,,,,,Table 3: REF1 Cooking Heat Demand TAM (TWh Therms),,,,,,,,,,,,,,,,,,,,, +COPY TABLES BELOW FROM LATEST CleanCookstoves_cluster SOLUTION MODELS,,,,,,,,,,,,(a) FOR POPULATIONS IN REGIONS WITH LOW EDUCATIONAL ATTAINMENT ONLY!,,,,,,,,,,,,(b) FOR REGIONS WITH HIGHER EDUCATIONAL ATTAINMENT,,,,,,,,,,,,(c) FOR ALL REGIONS,,,,,,,,,,,,,,,,,,,,, +,Regions included as LLDC+HighNRR:,N,N,Y,Y,N,,,,,,,Regions included as LLDC+HighNRR:,N,N,Y,Y,N,,,,,,,Regions included as LLDC+HighNRR:,N,N,Y,Y,N,,,,,,,,,,,,,,,,,,CHECK,,,,,,,,, +,World,OECD90,Eastern Europe,Asia (Sans Japan),Middle East and Africa,Latin America,China,India,EU,USA,,,World,OECD90,Eastern Europe,"Asia (Sans Japan, Sans China)",Middle East and Africa,Latin America,China,India,EU,USA,,,World,OECD90,Eastern Europe,Asia (Sans Japan),Middle East and Africa,Latin America,China,India,EU,USA,,,World,OECD90,Eastern Europe,Asia (Sans Japan),Middle East and Africa,Latin America,China,India,EU,USA,,WORLD,,REGIONAL TOTAL,,% error,OECD90,Eastern Europe,Asia (Sans Japan),Middle East and Africa,Latin America +2014,4417.454144,0.000000,0.000000,4053.298731,1783.757754,173.254108,1086.492157,1622.370389,0.000000,0.000000,,2014,0,0,0,0,0,0,0,0,0,0,,2014,4417.454144,0,0,4053.298731,1783.757754,173.2541075,1086.492157,1622.370389,0,0,,2014,4417.454144,0,0,4053.298731,1783.757754,173.2541075,1086.492157,1622.370389,0,0,,4417.454144,OK,6010.310593,OK,,0,0,4053.298731,1783.757754,173.2541075 +2015,4499.784719,0.000000,0.000000,4063.458970,1813.714359,173.110086,1083.167749,1629.340849,0.000000,0.000000,,2015,2691.672527,0,0,1555.817862,1087.237254,48.61741097,0,0,0,0,,2015,1808.112192,0,0,2507.641108,726.4771045,124.4926752,1083.167749,1629.340849,0,0,,2015,4499.784719,0,0,4063.45897,1813.714359,173.1100861,1083.167749,1629.340849,0,0,,4499.784719,OK,6050.283415,OK,,0,0,4063.45897,1813.714359,173.1100861 +2016,4566.459576,0.000000,0.000000,4072.722322,1846.401375,173.132753,1079.291643,1640.767842,0.000000,0.000000,,2016,2731.915396,0,0,1570.455246,1112.619677,48.8404723,0,0,0,0,,2016,1839.356252,0,0,2506.6318,735.8267173,124.5229295,1080.249856,1642.660098,0,0,,2016,4571.271648,0,0,4077.087047,1848.446394,173.3634018,1080.249856,1642.660098,0,0,,4571.271648,OK,6098.896843,OK,,0,0,4077.087047,1848.446394,173.3634018 +2017,4640.619484,0.000000,0.000000,4081.370608,1879.220242,173.127819,1074.656400,1651.913008,0.000000,0.000000,,2017,2774.122619,0,0,1586.266723,1138.766659,49.08923679,0,0,0,0,,2017,1878.29042,0,0,2505.660502,745.4262525,124.5954141,1076.962643,1656.505276,0,0,,2017,4652.41304,0,0,4091.927225,1884.192912,173.6846508,1076.962643,1656.505276,0,0,,4652.41304,OK,6149.804788,OK,,0,0,4091.927225,1884.192912,173.6846508 +2018,4714.592064,0.000000,0.000000,4089.403674,1912.166934,173.095459,1069.301088,1662.775487,0.000000,0.000000,,2018,2818.062644,0,0,1603.08799,1165.617014,49.35763983,0,0,0,0,,2018,1917.179235,0,0,2504.545678,755.2130253,124.6999231,1073.239006,1670.749799,0,0,,2018,4735.241879,0,0,4107.633668,1920.83004,174.057563,1073.239006,1670.749799,0,0,,4735.241879,OK,6202.521271,OK,,0,0,4107.633668,1920.83004,174.057563 +2019,4788.429020,0.000000,0.000000,4096.821366,1945.237426,173.035847,1063.264772,1673.354415,0.000000,0.000000,,2019,2863.367636,0,0,1620.65546,1193.075703,49.63647383,0,0,0,0,,2019,1955.930124,0,0,2503.025303,765.0841303,124.8208534,1068.964229,1685.194549,0,0,,2019,4819.29776,0,0,4123.680762,1958.159833,174.4573273,1068.964229,1685.194549,0,0,,4819.29776,OK,6256.297923,OK,,0,0,4123.680762,1958.159833,174.4573273 +2020,4857.017901,0.000000,0.000000,4103.623531,1978.427692,172.949155,1056.586516,1683.648933,0.000000,0.000000,,2020,2909.756685,0,0,1638.763778,1221.0741,49.9188066,0,0,0,0,,2020,1989.274751,0,0,2500.911707,774.960199,124.9464381,1064.063361,1699.68933,0,0,,2020,4899.031435,0,0,4139.675485,1996.034299,174.8652447,1064.063361,1699.68933,0,0,,4899.031435,OK,6310.575029,OK,,0,0,4139.675485,1996.034299,174.8652447 +2021,4928.700426,0.000000,0.000000,4109.810015,2011.733707,172.835559,1049.305389,1693.658179,0.000000,0.000000,,2021,2957.140531,0,0,1657.353153,1249.584712,50.20266564,0,0,0,0,,2021,2025.607502,0,0,2498.15807,784.8288402,125.0737397,1058.543607,1714.190245,0,0,,2021,4982.748032,0,0,4155.511223,2034.413552,175.2764053,1058.543607,1714.190245,0,0,,4982.748032,OK,6365.201181,OK,,0,0,4155.511223,2034.413552,175.2764053 +2022,4995.148726,0.000000,0.000000,4115.380664,2045.151444,172.695231,1041.460454,1703.381292,0.000000,0.000000,,2022,3005.558537,0,0,1676.442203,1278.627319,50.48901573,0,0,0,0,,2022,2056.575224,0,0,2494.815624,794.7005319,125.2043136,1052.464224,1728.720843,0,0,,2022,5062.133761,0,0,4171.257827,2073.327851,175.6933293,1052.464224,1728.720843,0,0,,5062.133761,OK,6420.279007,OK,,0,0,4171.257827,2073.327851,175.6933293 +2023,5061.464606,0.000000,0.000000,4120.335323,2078.676878,172.528346,1033.090778,1712.817409,0.000000,0.000000,,2023,3055.000226,0,0,1695.988239,1308.234706,50.77728129,0,0,0,0,,2023,2087.34857,0,0,2490.91558,804.5444981,125.3361443,1045.865086,1743.275366,0,0,,2023,5142.348796,0,0,4186.903819,2112.779204,176.1134256,1045.865086,1743.275366,0,0,,5142.348796,OK,6475.796449,OK,,0,0,4186.903819,2112.779204,176.1134256 +2024,5127.597848,0.000000,0.000000,4124.673841,2112.305984,172.335078,1024.235427,1721.965671,0.000000,0.000000,,2024,3105.482164,0,0,1715.95722,1338.457469,51.0674749,0,0,0,0,,2024,2117.919318,0,0,2486.518986,814.327813,125.4678468,1038.799279,1757.862608,0,0,,2024,5223.401482,0,0,4202.476206,2152.785283,176.5353217,1038.799279,1757.862608,0,0,,5223.401482,OK,6531.79681,OK,,0,0,4202.476206,2152.785283,176.5353217 +2025,5193.508617,0.000000,0.000000,4128.396061,2146.034735,172.115601,1014.933467,1730.825215,0.000000,0.000000,,2025,3156.982113,0,0,1736.30069,1369.322356,51.35906558,0,0,0,0,,2025,2148.28776,0,0,2481.668334,824.0230497,125.5976304,1031.312401,1772.474561,0,0,,2025,5305.269873,0,0,4217.969024,2193.345406,176.956696,1031.312401,1772.474561,0,0,,5305.269873,OK,6588.271126,OK,,0,0,4217.969024,2193.345406,176.956696 +2026,5259.177960,0.000000,0.000000,4131.501832,2179.859107,171.870088,1005.223962,1739.395180,0.000000,0.000000,,2026,3209.473894,0,0,1756.984931,1400.837392,51.65157092,0,0,0,0,,2026,2178.460364,0,0,2476.375807,833.6197094,125.7241762,1023.435498,1787.105333,0,0,,2026,5387.934257,0,0,4233.360738,2234.457102,177.3757472,1023.435498,1787.105333,0,0,,5387.934257,OK,6645.193586,OK,,0,0,4233.360738,2234.457102,177.3757472 +2027,5324.597693,0.000000,0.000000,4133.990998,2213.775072,171.598714,995.145980,1747.674706,0.000000,0.000000,,2027,3262.830135,0,0,1777.926869,1432.960392,51.94287442,0,0,0,0,,2027,2208.445513,0,0,2470.618702,843.1078415,125.8444537,1015.187381,1801.700727,0,0,,2027,5471.275648,0,0,4248.545571,2276.068233,177.7873281,1015.187381,1801.700727,0,0,,5471.275648,OK,6702.401132,OK,,0,0,4248.545571,2276.068233,177.7873281 +2028,5389.752123,0.000000,0.000000,4135.863407,2247.778607,171.301651,984.738586,1755.662930,0.000000,0.000000,,2028,3316.80646,0,0,1798.97037,1465.607102,52.22898821,0,0,0,0,,2028,2238.249341,0,0,2464.367985,852.4640542,125.9531411,1006.588303,1816.149364,0,0,,2028,5555.0558,0,0,4263.338354,2318.071156,178.1821293,1006.588303,1816.149364,0,0,,5555.0558,OK,6759.59164,OK,,0,0,4263.338354,2318.071156,178.1821293 +2029,5454.627086,0.000000,0.000000,4137.118904,2281.865684,170.979075,974.040846,1763.358992,0.000000,0.000000,,2029,3371.096352,0,0,1819.925091,1498.666242,52.50501923,0,0,0,0,,2029,2267.87351,0,0,2457.585004,861.6638492,126.0439462,997.6555111,1830.312127,0,0,,2029,5638.969862,0,0,4277.510095,2360.330091,178.5489654,997.6555111,1830.312127,0,0,,5638.969862,OK,6816.389151,OK,,0,0,4277.510095,2360.330091,178.5489654 +2030,5519.206321,0.000000,0.000000,4137.757336,2316.032279,170.631159,963.091825,1770.762029,0.000000,0.000000,,2030,3425.47083,0,0,1840.646745,1532.05653,52.76755511,0,0,0,0,,2030,2297.318791,0,0,2450.253851,870.6936173,126.1124574,988.4131928,1844.092186,0,0,,2030,5722.789621,0,0,4290.900596,2402.750147,178.8800126,988.4131928,1844.092186,0,0,,5722.789621,OK,6872.530756,OK,,0,0,4290.900596,2402.750147,178.8800126 +2031,5575.316947,0.000000,0.000000,4137.778548,2350.274365,170.258076,951.930590,1777.871181,0.000000,0.000000,,2031,3479.827834,0,0,1861.061269,1565.751424,53.01514046,0,0,0,0,,2031,2318.095032,0,0,2442.379598,879.5453505,126.1566014,978.8893832,1857.456172,0,0,,2031,5797.922866,0,0,4303.440867,2445.296775,179.1717419,978.8893832,1857.456172,0,0,,5797.922866,OK,6927.909384,OK,,0,0,4303.440867,2445.296775,179.1717419 +2032,5631.178821,0.000000,0.000000,4137.182387,2384.587918,169.860002,940.596206,1784.685587,0.000000,0.000000,,2032,3534.183445,0,0,1881.168787,1599.765989,53.24866898,0,0,0,0,,2032,2338.735401,0,0,2434.005207,888.2318659,126.1772746,969.1269917,1870.433322,0,0,,2032,5872.918846,0,0,4315.173994,2487.997855,179.4259436,969.1269917,1870.433322,0,0,,5872.918846,OK,6982.597793,OK,,0,0,4315.173994,2487.997855,179.4259436 +2033,5686.782132,0.000000,0.000000,4135.968699,2418.968910,169.437109,929.127739,1791.204385,0.000000,0.000000,,2033,3588.57855,0,0,1900.995204,1634.113247,53.47009884,0,0,0,0,,2033,2359.303189,0,0,2425.20109,896.7879624,126.1768967,959.1835906,1883.071121,0,0,,2033,5947.881739,0,0,4326.196294,2530.901209,179.6469956,959.1835906,1883.071121,0,0,,5947.881739,OK,7036.744498,OK,,0,0,4326.196294,2530.901209,179.6469956 +2034,5742.117705,0.000000,0.000000,4134.137331,2453.413318,168.989571,917.564254,1797.426713,0.000000,0.000000,,2034,3643.107634,0,0,1920.603553,1668.821553,53.68252806,0,0,0,0,,2034,2379.884099,0,0,2416.056731,905.2615159,126.1593832,949.1253403,1895.446106,0,0,,2034,6022.991733,0,0,4336.660284,2574.083069,179.8419112,949.1253403,1895.446106,0,0,,6022.991733,OK,7090.585264,OK,,0,0,4336.660284,2574.083069,179.8419112 +2035,5797.172386,0.000000,0.000000,4131.688128,2487.917114,168.517563,905.944819,1803.351712,0.000000,0.000000,,2035,3697.846005,0,0,1940.043003,1703.914628,53.88837426,0,0,0,0,,2035,2400.54495,0,0,2406.643403,913.6903199,126.127788,939.0099502,1907.622983,0,0,,2035,6098.390955,0,0,4346.686406,2617.604947,180.0161622,939.0099502,1907.622983,0,0,,6098.390955,OK,7144.307516,OK,,0,0,4346.686406,2617.604947,180.0161622 +2036,5851.928792,0.000000,0.000000,4128.620937,2522.476274,168.021258,894.308497,1808.978518,0.000000,0.000000,,2036,3752.778637,0,0,1959.298254,1739.392269,54.08811338,0,0,0,0,,2036,2421.320577,0,0,2396.999023,922.0879716,126.0826537,928.880714,1919.612957,0,0,,2036,6174.099214,0,0,4356.297277,2661.480241,180.1707671,928.880714,1919.612957,0,0,,6174.099214,OK,7197.948285,OK,,0,0,4356.297277,2661.480241,180.1707671 +2037,5906.363303,0.000000,0.000000,4124.935604,2557.086772,167.500830,882.694356,1814.306271,0.000000,0.000000,,2037,3807.885399,0,0,1978.349093,1775.254749,54.28155652,0,0,0,0,,2037,2442.208296,0,0,2387.137179,930.4566602,126.0237225,918.7685199,1931.425572,0,0,,2037,6250.093695,0,0,4365.486273,2705.711409,180.305279,918.7685199,1931.425572,0,0,,6250.093695,OK,7251.50296,OK,,0,0,4365.486273,2705.711409,180.305279 +2038,5960.447861,0.000000,0.000000,4120.631976,2591.744581,166.956453,871.141461,1819.334109,0.000000,0.000000,,2038,3863.236668,0,0,1997.237899,1811.529068,54.46970127,0,0,0,0,,2038,2463.193842,0,0,2377.074152,938.808656,125.9523568,908.7037403,1943.123544,0,0,,2038,6326.43051,0,0,4374.312052,2750.337724,180.4220581,908.7037403,1943.123544,0,0,,6326.43051,OK,7305.071833,OK,,0,0,4374.312052,2750.337724,180.4220581 +2039,6014.150757,0.000000,0.000000,4115.709897,2626.445677,166.388301,859.688878,1824.061172,0.000000,0.000000,,2039,3918.924338,0,0,2016.021053,1848.249693,54.65359172,0,0,0,0,,2039,2484.247303,0,0,2366.817481,947.1541418,125.8700196,898.7126543,1954.781356,0,0,,2039,6403.171641,0,0,4382.838534,2795.403835,180.5236113,898.7126543,1954.781356,0,0,,6403.171641,OK,7358.765981,OK,,0,0,4382.838534,2795.403835,180.5236113 +2040,6067.440852,0.000000,0.000000,4110.169215,2661.186034,165.796548,848.375673,1828.486598,0.000000,0.000000,,2040,3975.015613,0,0,2034.736423,1885.445105,54.83408448,0,0,0,0,,2040,2505.351097,0,0,2356.379354,955.5018124,125.777911,888.8254645,1966.455776,0,0,,2040,6480.36671,0,0,4391.115777,2840.946918,180.6119955,888.8254645,1966.455776,0,0,,6480.36671,OK,7412.67469,OK,,0,0,4391.115777,2840.946918,180.6119955 +2041,6111.834509,0.000000,0.000000,4104.009776,2695.961626,165.181368,837.240910,1832.609525,0.000000,0.000000,,2041,4031.523079,0,0,2053.384034,1923.127398,55.01164649,0,0,0,0,,2041,2517.456328,0,0,2345.787956,963.8589413,125.6767319,879.0846097,1978.167765,0,0,,2041,6548.979406,0,0,4399.17199,2886.986339,180.6883784,879.0846097,1978.167765,0,0,,6548.979406,OK,7466.846707,OK,,0,0,4399.17199,2886.986339,180.6883784 +2042,6155.906047,0.000000,0.000000,4097.231425,2730.768427,164.542934,826.323658,1836.429093,0.000000,0.000000,,2042,4088.431375,0,0,2071.941667,1961.303113,55.1865946,0,0,0,0,,2042,2529.745196,0,0,2335.075915,972.2318521,125.5669182,869.5336649,1989.919252,0,0,,2042,6618.17657,0,0,4407.017582,2933.534965,180.7535128,869.5336649,1989.919252,0,0,,6618.17657,OK,7521.30606,OK,,0,0,4407.017582,2933.534965,180.7535128 +2043,6199.636056,0.000000,0.000000,4089.834010,2765.602412,163.881420,815.662980,1839.944439,0.000000,0.000000,,2043,4145.742258,0,0,2090.394574,1999.988309,55.35937538,0,0,0,0,,2043,2542.241471,0,0,2324.26514,980.6257592,125.4489885,860.2063437,2001.721076,0,0,,2043,6687.98373,0,0,4414.659714,2980.614068,180.8083639,860.2063437,2001.721076,0,0,,6687.98373,OK,7576.082146,OK,,0,0,4414.659714,2980.614068,180.8083639 +2044,6243.003700,0.000000,0.000000,4081.817376,2800.459554,163.197001,805.297943,1843.154704,0.000000,0.000000,,2044,4203.449136,0,0,2108.719721,2039.199038,55.53037677,0,0,0,0,,2044,2554.970595,0,0,2313.377108,989.0445981,125.3233537,851.1350603,2013.577468,0,0,,2044,6758.419731,0,0,4422.096829,3028.243636,180.8537305,851.1350603,2013.577468,0,0,,6758.419731,OK,7631.194195,OK,,0,0,4422.096829,3028.243636,180.8537305 +2045,6285.986042,0.000000,0.000000,4073.181370,2835.335830,162.489849,795.267613,1846.059024,0.000000,0.000000,,2045,4261.536306,0,0,2126.888333,2078.948137,55.69983669,0,0,0,0,,2045,2567.958233,0,0,2302.437549,997.4904785,125.1903132,842.3573661,2025.486309,0,0,,2045,6829.49454,0,0,4429.325882,3076.438616,180.8901499,842.3573661,2025.486309,0,0,,6829.49454,OK,7686.654647,OK,,0,0,4429.325882,3076.438616,180.8901499 +2046,6328.557075,0.000000,0.000000,4063.925837,2870.227211,161.760140,785.611056,1848.656540,0.000000,0.000000,,2046,4319.985715,0,0,2144.874349,2119.243476,55.86788883,0,0,0,0,,2046,2581.226331,0,0,2291.477994,1005.965672,125.0501136,833.9166619,2037.449844,0,0,,2046,6901.212046,0,0,4436.352343,3125.209148,180.9180025,833.9166619,2037.449844,0,0,,6901.212046,OK,7742.479494,OK,,0,0,4436.352343,3125.209148,180.9180025 +2047,6370.689262,0.000000,0.000000,4054.050624,2905.129674,161.008047,776.367336,1850.946389,0.000000,0.000000,,2047,4378.763635,0,0,2162.640269,2160.088934,56.03443203,0,0,0,0,,2047,2594.799188,0,0,2280.535707,1014.468917,124.9028425,825.8641286,2049.455739,0,0,,2047,6973.562822,0,0,4443.175976,3174.557851,180.9372746,825.8641286,2049.455739,0,0,,6973.562822,OK,7798.671102,OK,,0,0,4443.175976,3174.557851,180.9372746 +2048,6412.354174,0.000000,0.000000,4043.555577,2940.039192,160.233743,767.575521,1852.927710,0.000000,0.000000,,2048,4437.813638,0,0,2180.127308,2201.48722,56.19911026,0,0,0,0,,2048,2608.707158,0,0,2269.650931,1022.993805,124.7483692,818.2557656,2061.46613,0,0,,2048,7046.520797,0,0,4449.778239,3224.481025,180.9474795,818.2557656,2061.46613,0,0,,7046.520797,OK,7855.206744,OK,,0,0,4449.778239,3224.481025,180.9474795 +2049,6453.521053,0.000000,0.000000,4032.440543,2974.951740,159.437403,759.274676,1854.599643,0.000000,0.000000,,2049,4497.06503,0,0,2197.264933,2243.438704,56.36139277,0,0,0,0,,2049,2622.98179,0,0,2258.86788,1031.531213,124.5864188,811.1520472,2073.430356,0,0,,2049,7120.04682,0,0,4456.132814,3274.969917,180.9478115,811.1520472,2073.430356,0,0,,7120.04682,OK,7912.050542,OK,,0,0,4456.132814,3274.969917,180.9478115 +2050,6494.155356,0.000000,0.000000,4020.705367,3009.863292,158.619201,751.503867,1855.961325,0.000000,0.000000,,2050,4556.44706,0,0,2213.983886,2285.942401,56.52077363,0,0,0,0,,2050,2637.649778,0,0,2248.232269,1040.07348,124.4166929,804.6121038,2085.304566,0,0,,2050,7194.096838,0,0,4462.216155,3326.01588,180.9374665,804.6121038,2085.304566,0,0,,7194.096838,OK,7969.169502,OK,,0,0,4462.216155,3326.01588,180.9374665 +2051,6526.721591,0.000000,0.000000,4008.349896,3044.769823,157.779310,744.302159,1857.011896,0.000000,0.000000,,2051,4615.907999,0,0,2230.23105,2328.999915,56.67703345,0,0,0,0,,2051,2644.386604,0,0,2237.783776,1048.618857,124.2390633,798.6837884,2097.072338,0,0,,2051,7260.294603,0,0,4468.014827,3377.618772,180.9160968,798.6837884,2097.072338,0,0,,7260.294603,OK,8026.549695,OK,,0,0,4468.014827,3377.618772,180.9160968 +2052,6558.862251,0.000000,0.000000,3995.373976,3079.667306,156.917904,737.708618,1857.750494,0.000000,0.000000,,2052,4675.389258,0,0,2245.950381,2372.608997,56.82987998,0,0,0,0,,2052,2651.683281,0,0,2227.567843,1057.165868,124.053287,793.4183438,2108.719108,0,0,,2052,7327.072539,0,0,4473.518224,3429.774865,180.883167,793.4183438,2108.719108,0,0,,7327.072539,OK,8084.176255,OK,,0,0,4473.518224,3429.774865,180.883167 +2053,6590.546779,0.000000,0.000000,3981.777453,3114.551716,156.035158,731.762311,1858.176258,0.000000,0.000000,,2053,4734.8015,0,0,2261.063698,2416.759185,56.9786161,0,0,0,0,,2053,2659.574804,0,0,2217.644219,1065.707537,123.8587659,788.8827401,2120.205305,0,0,,2053,7394.376304,0,0,4478.707918,3482.466723,180.837382,788.8827401,2120.205305,0,0,,7394.376304,OK,8142.012022,OK,,0,0,4478.707918,3482.466723,180.837382 +2054,6621.741211,0.000000,0.000000,3967.560173,3149.419027,155.131245,726.502302,1858.288326,0.000000,0.000000,,2054,4794.044398,0,0,2275.485649,2461.436326,57.12242284,0,0,0,0,,2054,2668.094768,0,0,2208.078569,1074.235813,123.6547663,785.1492737,2131.48687,0,0,,2054,7462.139166,0,0,4483.564218,3535.67214,180.7771891,785.1492737,2131.48687,0,0,,7462.139166,OK,8200.013546,OK,,0,0,4483.564218,3535.67214,180.7771891 +2055,6652.409150,0.000000,0.000000,3952.721983,3184.265214,154.206338,721.967659,1858.085838,0.000000,0.000000,,2055,4853.024981,0,0,2289.135672,2506.628697,57.26061143,0,0,0,0,,2055,2677.269776,0,0,2198.931741,1082.744921,123.4406503,782.2840756,2142.530145,0,0,,2055,7530.294757,0,0,4488.067413,3589.373617,180.7012618,782.2840756,2142.530145,0,0,,7530.294757,OK,8258.142292,OK,,0,0,4488.067413,3589.373617,180.7012618 +2056,6682.513018,0.000000,0.000000,3937.262728,3219.086252,153.260612,718.197446,1857.567931,0.000000,0.000000,,2056,4911.676018,0,0,2301.950355,2552.332817,57.39284651,0,0,0,0,,2056,2687.118519,0,0,2190.254489,1091.233417,123.2161092,780.3446768,2153.318166,0,0,,2056,7598.794537,0,0,4492.204844,3643.566234,180.6089557,780.3446768,2153.318166,0,0,,7598.794537,OK,8316.380034,OK,,0,0,4492.204844,3643.566234,180.6089557 +2057,6712.014512,0.000000,0.000000,3921.182255,3253.878113,152.294241,715.230729,1856.733745,0.000000,0.000000,,2057,4969.932417,0,0,2313.867309,2598.546228,57.51888059,0,0,0,0,,2057,2697.653448,0,0,2182.090741,1099.702266,122.9808624,779.3775914,2163.84702,0,0,,2057,7667.585865,0,0,4495.958049,3698.248494,180.499743,779.3775914,2163.84702,0,0,,7667.585865,OK,8374.706286,OK,,0,0,4495.958049,3698.248494,180.499743 +2058,6740.874312,0.000000,0.000000,3904.480411,3288.636773,151.307399,713.106575,1855.582418,0.000000,0.000000,,2058,5027.705739,0,0,2324.808083,2645.259407,57.63824853,0,0,0,0,,2058,2708.884685,0,0,2174.486214,1108.151756,122.7343587,779.4241202,2174.114667,0,0,,2058,7736.590424,0,0,4499.294297,3753.411163,180.3726072,779.4241202,2174.114667,0,0,,7736.590424,OK,8433.078068,OK,,0,0,4499.294297,3753.411163,180.3726072 +2059,6769.053409,0.000000,0.000000,3887.157041,3323.358207,150.300259,711.864048,1854.113089,0.000000,0.000000,,2059,5084.902406,0,0,2334.690356,2692.461575,57.75047442,0,0,0,0,,2059,2720.819706,0,0,2167.484573,1116.583168,122.4759891,780.5194464,2184.125519,0,0,,2059,7805.722112,0,0,4502.17493,3809.044744,180.2264635,780.5194464,2184.125519,0,0,,7805.722112,OK,8491.446137,OK,,0,0,4502.17493,3809.044744,180.2264635 +2060,6796.513173,0.000000,0.000000,3869.211991,3358.038387,149.272995,711.542216,1852.324897,0.000000,0.000000,,2060,5141.437408,0,0,2343.437538,2740.144677,57.85519318,0,0,0,0,,2060,2733.466472,0,0,2161.130313,1124.99882,122.2052694,782.7019689,2193.8851,0,0,,2060,7874.903881,0,0,4504.567851,3865.143497,180.0604626,782.7019689,2193.8851,0,0,,7874.903881,OK,8549.771811,OK,,0,0,4504.567851,3865.143497,180.0604626 +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +Table 4: Total REF2 Cooking Heat Demand by Economic Development Status (TWh Therms),,,,,,,Table 5: Total REF1 Cooking Heat Demand by Economic Development Status (TWh Therms),,,,,,,,,,,,,,,"Table 6: Change in Cooking Heat Demand by MDC vs. LLDC Regions, REF1-REF2 (TWh Therms)",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,LLDC+HighNRR,China,MDC + LAC + EE,Total Electricity Demand in Countries with Higher Educational Attainment (TWh), --> % LLDC,,,"LLDC with low educational attainment, excluding China","MDC + EE + LAC with low educational attainment, excluding China",China,"LLDC with higher educational attainment, excluding China",MDC + EE + LAC with higher educational attainment,,"Total Electricity Demand in Countries with Low Educational Attainment (TWh), exluding China", --> % LLDC,Total Electricity Demand in Countries with Higher Educational Attainment (TWh), --> % LLDC,Total Electricity Demand (TWh), --> % LLDC,,,LLDC,China,MDC + EE +LAC,Total change in REF1-REF2,% LLDC with higher educational attainment,% LLDC with Low Educational Attainment,% LLDC,% MDC + LAC + EE + China,,"% LLDC with low educational attainment, TWh)","% LLDC with higher educational attainment, TWh)",,,,,,,,,,,,,,,,,,,,,,,,, +2014,4750.564328,1086.492157,173.2541075,6010.310593,0.790402468,,2014,0,0,1086.492157,4750.564328,173.2541075,,0,,6010.310593,0.790402468,6010.310593,0,,,0,0,0,0,0,0,0,0,,0,1,,,,,,,,,,,,,,,,,,,,,,,,, +2015,4794.00558,1083.167749,173.1100861,6050.283415,0.792360498,,2015,2643.055116,48.61741097,1083.167749,2150.950464,124.4926752,,2691.672527,0.981937843,3358.610888,0.640428599,6050.283415,0.444883709,,,0,0,0,0,0,0,0,0,,0.551324998,0.448675002,,,,,,,,,,,,,,,,,,,,,,,,, +2016,4839.832054,1079.291643,173.132753,6092.25645,0.794423559,,2016,2683.074923,48.8404723,1080.249856,2162.208661,124.5229295,,2731.915396,0.98212226,3366.981447,0.642180153,6098.896843,0.44793599,,,5.451530443,0.958213858,0.230648816,6.640393118,0.366355784,0.454609232,0.820965016,0.179034984,,0.553749822,0.446250178,,,,,,,,,,,,,,,,,,,,,,,,, +2017,4885.934449,1074.6564,173.1278195,6133.718669,0.796569701,,2017,2725.033382,49.08923679,1076.962643,2174.124112,124.5954141,,2774.122619,0.98230459,3375.682169,0.644054743,6149.804788,0.451091167,,,13.22304477,2.306242436,0.55683135,16.08611856,0.364790177,0.457225695,0.822015872,0.177984128,,0.556224899,0.443775101,,,,,,,,,,,,,,,,,,,,,,,,, +2018,4932.26952,1069.301088,173.0954594,6174.666068,0.798791298,,2018,2768.705004,49.35763983,1073.239006,2186.519697,124.6999231,,2818.062644,0.982485258,3384.458627,0.646047105,6202.521271,0.454341472,,,22.95518138,3.937918102,0.962103564,27.85520304,0.363633965,0.460455572,0.824089537,0.175910463,,0.558744592,0.441255408,,,,,,,,,,,,,,,,,,,,,,,,, +2019,4978.794021,1063.264772,173.0358467,6215.094639,0.801080967,,2019,2813.731162,49.63647383,1068.964229,2199.145204,124.8208534,,2863.367636,0.982665001,3392.930286,0.64815514,6256.297923,0.457677635,,,34.08234563,5.699457013,1.421480622,41.20328326,0.36288128,0.464294201,0.82717548,0.17282452,,0.56130073,0.43869927,,,,,,,,,,,,,,,,,,,,,,,,, +2020,5025.464707,1056.586516,172.9491551,6255.000379,0.803431559,,2020,2859.837878,49.9188066,1064.063361,2211.808545,124.9464381,,2909.756685,0.982844336,3400.818344,0.650375386,6310.575029,0.461092162,,,46.18171567,7.476844777,1.916089603,55.57465005,0.362403088,0.468582184,0.830985272,0.169014728,,0.563887472,0.436112528,,,,,,,,,,,,,,,,,,,,,,,,, +2021,5072.238333,1049.305389,172.8355586,6294.379281,0.805836145,,2021,2906.937865,50.20266564,1058.543607,2224.443303,125.0737397,,2957.140531,0.98302324,3408.06065,0.652700621,6365.201181,0.464579272,,,59.14283513,9.238218213,2.440846721,70.82190007,0.362010886,0.47308158,0.835092465,0.164907535,,0.566502033,0.433497967,,,,,,,,,,,,,,,,,,,,,,,,, +2022,5119.071654,1041.460454,172.6952311,6333.227339,0.808287999,,2022,2955.069522,50.48901573,1052.464224,2237.051932,125.2043136,,3005.558537,0.983201453,3414.72047,0.655120076,6420.279007,0.468135191,,,73.04979972,11.00377023,2.998098179,87.05166813,0.361553987,0.477600521,0.839154508,0.160845492,,0.569144915,0.430855085,,,,,,,,,,,,,,,,,,,,,,,,, +2023,5165.921424,1033.090778,172.5283464,6371.540548,0.810780593,,2023,3004.222945,50.77728129,1045.865086,2249.594992,125.3361443,,3055.000226,0.98337896,3420.796223,0.65762321,6475.796449,0.471756679,,,87.89651302,12.77430826,3.585079188,104.2559005,0.36099428,0.482090022,0.843084301,0.156915699,,0.571817102,0.428182898,,,,,,,,,,,,,,,,,,,,,,,,, +2024,5212.744398,1024.235427,172.3350785,6409.314903,0.813307581,,2024,3054.414689,51.0674749,1038.799279,2262.04752,125.4678468,,3105.482164,0.983555702,3426.314646,0.660198421,6531.79681,0.475440718,,,103.7178114,14.56385243,4.200243269,122.4819071,0.360296793,0.486504288,0.846801082,0.153198918,,0.574520154,0.425479846,,,,,,,,,,,,,,,,,,,,,,,,, +2025,5259.49733,1014.933467,172.1156011,6446.546398,0.81586279,,2025,3105.623047,51.35906558,1031.312401,2274.378982,125.5976304,,3156.982113,0.983731594,3431.289014,0.662835154,6588.271126,0.479182179,,,120.5046988,16.37893473,4.841094923,141.7247284,0.35945021,0.490822711,0.850272921,0.149727079,,0.577253137,0.422746863,,,,,,,,,,,,,,,,,,,,,,,,, +2026,5306.136976,1005.223962,171.8700882,6483.231027,0.818440212,,2026,3157.822323,51.65157092,1023.435498,2286.560018,125.7241762,,3209.473894,0.98390653,3435.719693,0.665525777,6645.193586,0.482976734,,,138.2453649,18.21153582,5.505658962,161.9625597,0.358484131,0.495079588,0.85356372,0.14643628,,0.580014798,0.419985202,,,,,,,,,,,,,,,,,,,,,,,,, +2027,5352.62009,995.1459803,171.5987136,6519.364784,0.821033991,,2027,3210.887261,51.94287442,1015.187381,2298.539162,125.8444537,,3262.830135,0.984080423,3439.570997,0.668263328,6702.401132,0.486815109,,,156.8063327,20.04140085,6.188614462,183.036348,0.357414178,0.499280869,0.856695047,0.143304953,,0.582798828,0.417201172,,,,,,,,,,,,,,,,,,,,,,,,, +2028,5398.903427,984.7385863,171.3016513,6554.943665,0.823638418,,2028,3264.577472,52.22898821,1006.588303,2310.243736,125.9531411,,3316.80646,0.98425323,3442.78518,0.671039178,6759.59164,0.490681484,,,175.9177804,21.84971654,6.880478036,204.6479749,0.356228894,0.503382741,0.859611635,0.140388365,,0.585593215,0.414406785,,,,,,,,,,,,,,,,,,,,,,,,, +2029,5444.943742,974.040846,170.9790751,6589.963663,0.826247916,,2029,3318.591333,52.50501923,997.6555111,2321.593342,126.0439462,,3371.096352,0.984424943,3445.292799,0.673845005,6816.389151,0.494557496,,,195.2409324,23.61466517,7.569890304,226.4254879,0.354926467,0.507348068,0.862274536,0.137725464,,0.588383453,0.411616547,,,,,,,,,,,,,,,,,,,,,,,,, +2030,5490.697789,963.0918252,170.6311588,6624.420773,0.828857039,,2030,3372.703275,52.76755511,988.4131928,2332.534276,126.1124574,,3425.47083,0.984595532,3447.059926,0.67667355,6872.530756,0.49842932,,,214.5397614,25.32136759,8.248853731,248.1099827,0.353523149,0.51117306,0.864696209,0.135303791,,0.591159131,0.408840869,,,,,,,,,,,,,,,,,,,,,,,,, +2031,5536.122323,951.9305899,170.2580764,6658.310989,0.831460461,,2031,3426.812694,53.01514046,978.8893832,2343.035565,126.1566014,,3479.827834,0.984765011,3448.08155,0.679518605,6927.909384,0.502291188,,,233.7259358,26.95879336,8.913665412,269.5983946,0.352049794,0.514891332,0.866941126,0.133058874,,0.593917299,0.406082701,,,,,,,,,,,,,,,,,,,,,,,,, +2032,5581.174099,940.5962057,169.8600018,6691.630306,0.834052965,,2032,3480.934776,53.24866898,969.1269917,2353.110082,126.1772746,,3534.183445,0.984933247,3448.414348,0.682374519,6982.597793,0.506141632,,,252.8707589,28.53078598,9.565941774,290.9674867,0.35053116,0.518537621,0.869068781,0.130931219,,0.596658898,0.403341102,,,,,,,,,,,,,,,,,,,,,,,,, +2033,5625.809871,929.1277386,169.4371087,6724.374719,0.836629442,,2033,3535.108451,53.47009884,959.1835906,2362.805462,126.1768967,,3588.57855,0.985099922,3448.165949,0.685235426,7036.744498,0.5099771,,,272.104041,30.05585204,10.20988682,312.3697798,0.348975965,0.522119956,0.871095921,0.128904079,,0.59938285,0.40061715,,,,,,,,,,,,,,,,,,,,,,,,, +2034,5669.986395,917.5642543,168.9895712,6756.54022,0.83918488,,2034,3589.425106,53.68252806,949.1253403,2372.192906,126.1593832,,3643.107634,0.985264633,3447.47763,0.688095228,7090.585264,0.513795053,,,291.6316175,31.56108606,10.85234005,334.0450436,0.347388496,0.525642322,0.873030818,0.126969182,,0.60208908,0.39791092,,,,,,,,,,,,,,,,,,,,,,,,, +2035,5713.660424,905.9448186,168.517563,6788.122806,0.841714357,,2035,3643.957631,53.88837426,939.0099502,2381.323773,126.127788,,3697.846005,0.985427091,3446.461511,0.690947444,7144.307516,0.517593342,,,311.6209791,33.0651316,11.49859925,356.1847099,0.345774154,0.529111742,0.874885896,0.125114104,,0.604777999,0.395222001,,,,,,,,,,,,,,,,,,,,,,,,, +2036,5756.788715,894.3084973,168.0212581,6819.11847,0.844213037,,2036,3698.690523,54.08811338,928.880714,2390.206281,126.0826537,,3752.778637,0.985587183,3445.169648,0.693784784,7197.948285,0.521367824,,,332.1080892,34.57221672,12.14950902,378.8298149,0.344137557,0.532530741,0.876668298,0.123331702,,0.607448384,0.392551616,,,,,,,,,,,,,,,,,,,,,,,,, +2037,5799.32802,882.6943562,167.5008302,6849.523207,0.846676162,,2037,3753.603842,54.28155652,918.7685199,2398.82532,126.0237225,,3807.885399,0.985744961,3443.617562,0.696600385,7251.50296,0.525116713,,,353.1011415,36.0741637,12.80444875,401.979754,0.342489249,0.535916039,0.878405288,0.121594712,,0.610101107,0.389898893,,,,,,,,,,,,,,,,,,,,,,,,, +2038,5841.235096,871.1414612,166.9564534,6879.33301,0.849099046,,2038,3808.766967,54.46970127,908.7037403,2407.179068,125.9523568,,3863.236668,0.985900501,3441.835165,0.699388249,7305.071833,0.528843077,,,374.7109393,37.56227912,13.46560469,425.7388231,0.340842922,0.53929983,0.880142752,0.119857248,,0.612741318,0.387258682,,,,,,,,,,,,,,,,,,,,,,,,, +2039,5882.466696,859.688878,166.3883015,6908.543876,0.85147707,,2039,3864.270747,54.65359172,898.7126543,2415.258968,125.8700196,,3918.924338,0.98605393,3439.841642,0.702142488,7358.765981,0.532551837,,,397.0630189,39.02377624,14.13530981,450.222105,0.33921044,0.542716535,0.881926975,0.118073025,,0.61537582,0.38462418,,,,,,,,,,,,,,,,,,,,,,,,, +2040,5922.979576,848.3756725,165.7965483,6937.151797,0.853805676,,2040,3920.181528,54.83408448,888.8254645,2423.055702,125.777911,,3975.015613,0.986205316,3437.659077,0.704856313,7412.67469,0.536245792,,,420.2576535,40.449792,14.81544722,475.5228927,0.337595497,0.546184569,0.883780066,0.116219934,,0.618009604,0.381990396,,,,,,,,,,,,,,,,,,,,,,,,, +2041,5962.730491,837.2409105,165.1813677,6965.152769,0.85608036,,2041,3976.511432,55.01164649,879.0846097,2430.562287,125.6767319,,4031.523079,0.986354624,3435.323629,0.707520615,7466.846707,0.539923108,,,444.3432284,41.84369922,15.50701069,501.6939383,0.335990305,0.549695557,0.885685862,0.114314138,,0.620643933,0.379356067,,,,,,,,,,,,,,,,,,,,,,,,, +2042,6001.676194,826.3236577,164.5429337,6992.542786,0.858296671,,2042,4033.24478,55.1865946,869.5336649,2437.774102,125.5669182,,4088.431375,0.986501768,3432.874685,0.710126155,7521.30606,0.543579977,,,469.3426879,43.21000716,16.21057913,528.7632742,0.334387139,0.553236323,0.887623462,0.112376538,,0.623278166,0.376721834,,,,,,,,,,,,,,,,,,,,,,,,, +2043,6039.773441,815.6629801,163.88142,7019.317842,0.8604502,,2043,4090.382883,55.35937538,860.2063437,2444.684556,125.4489885,,4145.742258,0.986646691,3430.339888,0.712665402,7576.082146,0.547214534,,,495.293997,44.54336366,16.92694382,556.7643045,0.332785531,0.556808132,0.889593663,0.110406337,,0.62591288,0.37408712,,,,,,,,,,,,,,,,,,,,,,,,, +2044,6076.978987,805.2979433,163.1970007,7045.473931,0.86253658,,2044,4147.918759,55.53037677,851.1350603,2451.286646,125.3233537,,4203.449136,0.986789331,3427.74506,0.715130969,7631.194195,0.550824554,,,522.2264176,45.83711702,17.65672983,585.7202644,0.331185291,0.560411686,0.891596978,0.108403022,,0.628548212,0.371451788,,,,,,,,,,,,,,,,,,,,,,,,, +2045,6113.249586,795.2676132,162.4898494,7071.007048,0.864551477,,2045,4205.83647,55.69983669,842.3573661,2457.570661,125.1903132,,4261.536306,0.986929635,3425.118341,0.717514088,7686.654647,0.554407151,,,550.1575453,47.08975293,18.40030051,615.6475988,0.329582807,0.564041316,0.893624123,0.106375877,,0.631184075,0.368815925,,,,,,,,,,,,,,,,,,,,,,,,, +2046,6148.541993,785.6110556,161.7601402,7095.913188,0.866490588,,2046,4264.117826,55.86788883,833.9166619,2463.527004,125.0501136,,4319.985715,0.987067576,3422.49378,0.71980467,7742.479494,0.557958948,,,579.1028372,48.30560623,19.15786226,646.5663057,0.327972096,0.567686759,0.895658855,0.104341145,,0.633820294,0.366179706,,,,,,,,,,,,,,,,,,,,,,,,, +2047,6182.812962,776.3673364,161.0080469,7120.188345,0.868349637,,2047,4322.729203,56.03443203,825.8641286,2469.140496,124.9028425,,4378.763635,0.987203138,3419.907467,0.72199044,7798.671102,0.561475613,,,609.0567368,49.4967922,19.92922768,678.4827567,0.32634382,0.571330779,0.897674599,0.102325401,,0.636456439,0.363543561,,,,,,,,,,,,,,,,,,,,,,,,, +2048,6216.019249,767.5755212,160.2337433,7143.828513,0.870124365,,2048,4381.614528,56.19911026,818.2557656,2474.388971,124.7483692,,4437.813638,0.987336307,3417.393105,0.72405746,7855.206744,0.564951857,,,639.9842502,50.68024436,20.71373612,711.3782307,0.324687565,0.574952349,0.899639914,0.100360086,,0.639091641,0.360908359,,,,,,,,,,,,,,,,,,,,,,,,, +2049,6248.117607,759.274676,159.4374034,7166.829687,0.871810533,,2049,4440.703637,56.36139277,811.1520472,2479.247047,124.5864188,,4497.06503,0.987467072,3414.985513,0.725990502,7912.050542,0.568381737,,,671.833076,51.8773712,21.5104081,745.2208553,0.322993057,0.578529051,0.901522107,0.098477893,,0.641724752,0.358275248,,,,,,,,,,,,,,,,,,,,,,,,, +2050,6279.064793,751.5038666,158.6192011,7189.187861,0.873403911,,2050,4499.926287,56.52077363,804.6121038,2483.693645,124.4166929,,4556.44706,0.987595428,3412.722442,0.727774874,7969.169502,0.571759336,,,704.5551388,53.1082372,22.31826546,779.9816414,0.321253625,0.582043455,0.90329708,0.09670292,,0.644354408,0.355645592,,,,,,,,,,,,,,,,,,,,,,,,, +2051,6308.81756,744.3021587,157.7793101,7210.899029,0.874900277,,2051,4559.230965,56.67703345,798.6837884,2487.718845,124.2390633,,4615.907999,0.987721368,3410.641696,0.729399059,8026.549695,0.575079975,,,738.1322499,54.38162969,23.13678663,815.6506662,0.319470016,0.585491239,0.904961254,0.095038746,,0.646979344,0.353020656,,,,,,,,,,,,,,,,,,,,,,,,, +2052,6337.332664,737.7086181,156.9179045,7231.959186,0.876295413,,2052,4618.559378,56.82987998,793.4183438,2491.315367,124.053287,,4675.389258,0.987844888,3408.786998,0.730850994,8084.176255,0.578338363,,,772.542081,55.70972566,23.96526252,852.2170692,0.31764255,0.588866025,0.906508575,0.093491425,,0.649597854,0.350402146,,,,,,,,,,,,,,,,,,,,,,,,, +2053,6364.566858,731.7623107,156.035158,7252.364327,0.877585098,,2053,4677.822884,56.9786161,788.8827401,2494.469016,123.8587659,,4734.8015,0.987965997,3407.210522,0.732114731,8142.012022,0.581527206,,,807.725042,57.12042942,24.80222399,889.6476954,0.315766205,0.592149419,0.907915623,0.092084377,,0.652207544,0.347792456,,,,,,,,,,,,,,,,,,,,,,,,, +2054,6390.476898,726.5023023,155.1312445,7272.110445,0.878765105,,2054,4736.921975,57.12242284,785.1492737,2497.165108,123.6547663,,4794.044398,0.988084711,3405.969148,0.733173144,8200.013546,0.584638595,,,843.6101855,58.64697137,25.64594461,927.9031014,0.313835967,0.595321664,0.909157631,0.090842369,,0.654805772,0.345194228,,,,,,,,,,,,,,,,,,,,,,,,, +2055,6415.019538,721.9676587,154.206338,7291.193535,0.879831197,,2055,4795.764369,57.26061143,782.2840756,2499.392586,123.4406503,,4853.024981,0.988201047,3405.117312,0.734010713,8258.142292,0.587665459,,,880.1374166,60.3164169,26.49492378,966.9487573,0.311850799,0.598370564,0.910221364,0.089778636,,0.657390156,0.342609844,,,,,,,,,,,,,,,,,,,,,,,,, +2056,6438.151534,718.1974457,153.2606122,7309.609592,0.880779124,,2056,4854.283172,57.39284651,780.3446768,2501.143229,123.2161092,,4911.676018,0.988315018,3404.704015,0.734613998,8316.380034,0.590602642,,,917.274867,62.14723115,27.34834345,1006.770442,0.309813078,0.601293197,0.911106275,0.088893725,,0.659959451,0.340040549,,,,,,,,,,,,,,,,,,,,,,,,, +2057,6459.82964,715.230729,152.2942412,7327.35461,0.881604615,,2057,4912.413536,57.51888059,779.3775914,2502.415415,122.9808624,,4969.932417,0.988426627,3404.773869,0.734972574,8374.706286,0.593445579,,,954.9993121,64.14686243,28.20550178,1047.351676,0.307729263,0.604093703,0.911822966,0.088177034,,0.662512051,0.337487949,,,,,,,,,,,,,,,,,,,,,,,,, +2058,6480.01061,713.1065746,151.3073987,7344.424583,0.882303377,,2058,4970.067491,57.63824853,779.4241202,2503.21385,122.7343587,,5027.705739,0.988535875,3405.372328,0.735077873,8433.078068,0.596188687,,,993.2707307,66.31754559,29.06520856,1088.653485,0.305607911,0.606776741,0.912384652,0.087615348,,0.66504488,0.33495512,,,,,,,,,,,,,,,,,,,,,,,,, +2059,6498.651199,711.8640482,150.3002586,7360.815506,0.882871089,,2059,5027.151932,57.75047442,780.5194464,2503.548295,122.4759891,,5084.902406,0.988642757,3406.543731,0.734923281,8491.446137,0.598826434,,,1032.049028,68.65539827,29.92620489,1130.630631,0.303459121,0.609349182,0.912808303,0.087191697,,0.667554381,0.332445619,,,,,,,,,,,,,,,,,,,,,,,,, +2060,6515.708162,711.5422156,149.2729948,7376.523373,0.883303398,,2060,5083.582215,57.85519318,782.7019689,2503.427164,122.2052694,,5141.437408,0.988747273,3408.334403,0.734501627,8549.771811,0.601353758,,,1071.301217,71.1597533,30.78746778,1173.248438,0.301290857,0.61181602,0.913106877,0.086893123,,0.670037687,0.329962313,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,Table 7: Difference in FUNCTIONAL & IMPLEMENTATION UNITS between REF1 and REF2 populations in LLDC+HighNRR+HighED,,,,,,,,Table 8: Difference in FUNCTIONAL & IMPLEMENTATION UNITS between REF1 and REF2 populations in LLDC+HighNRR+LowED,,,,,,,,Table 9: Difference in EMISSIONS between REF1 and REF2 populations in LLDC+HighNRR+HighED,,,,,,,,,,,,,Table 10: Difference in EMISSIONS between REF1 and REF2 populations in LLDC+HighNRR+LowED,,,,,,,,,,,,,,,Table 11: EMISSIONS ALLOCATIONS TO (a) Health & Education; (b) Education ONLY; (c) Family Planning (excluding education),,,,,,,,,,,, +,SOLUTION ,,,CONVENTIONAL,,,,,SOLUTION ,,,CONVENTIONAL,,,,,SOLUTION,,,,,CONVENTIONAL,,,,,EMISSION REDUCTIONS,,,SOLUTION ,,,,,CONVENTIONAL,,,,,EMISSION REDCUTIONS ,,,,,"Table 11(a): EMISSIONS ALLOCATION TO HEALTH & EDUCATION in LLDC, CleanCookstoves_cluster",,,,"Table 11(b): EMISSIONS ALLOCATION TO Education in LLDC, CleanCookstoves_cluster",,,"Table 11(c): EMISSIONS ALLOCATION TO Family Planning in LLDC, CleanCookstoves_cluster",,,,% Allocation to Education (Electricity), +,Additional Functional Units in REF2 vs REF1,Annual Functional Units Increase,Annual Implementation Units Increase + Replacement,Additional Functional Units in REF2 vs REF2,Annual Functional Units Increase,Change in TAM,Annual Implementation Units Increase + Replacement,,Additional Functional Units in REF2 vs REF1,Annual Functional Units Increase,Annual Implementation Units Increase + Replacement,Additional Functional Units in REF2 vs REF2,Annual Functional Units Increase,Change in TAM,Annual Implementation Units Increase + Replacement,,Avoided Emissions/ Million Metric Tons CO2,,,,,Avoided Emissions/ Million Metric Tons CO2,,,,,ALL Years,,,Avoided Emissions/ Million Metric Tons CO2,,,,,Avoided Emissions/ Million Metric Tons CO2,,,,,ALL Years,,,,,,,,,,,,,,,,ALL Years, +,TWh,TWh,TW,TWh,TWh,%,TW,,TWh,TWh,TW,TWh,TWh,%,TW,,Grid,Fuel,Other Direct,Indirect,,Grid,Fuel,Other Direct,Indirect,,Conv Total,Solution Total,,Grid,Fuel,Other Direct,Indirect,,Grid,Fuel,Other Direct,Indirect,,Conv Total,Solution Total,,,,,Conv Total,Solution Total,,Conv Total,Solution Total,,Conv Total,Solution Total,,,Conv Total,Solution Total +2014,,,,0,,,Not modeled TBD,,,,,0,,,Not modeled TBD,,,,,,,N,Y,N,N,,,,,N,N,N,N,,N,Y,N,N,,,,,,,2014,0,0,,0,0,,0,0,,,, +2015,,,,0,0,,,,,,,0,0,,,,,,,,,,0,,,,0,0,,,,,,,,0,,,,0,0,,,,2015,0,0,,0,0,,0,0,,,, +2016,,,,0.784635621,0.784635621,0.163055669,,,,,,0.973650785,0.973650785,0.20233504,,,,,,,,,1.440384454,,,,1.440384454,0,,,,,,,,1.787366537,,,,1.787366537,0,,,,2016,3.227750991,0,,0.893683269,0,,2.334067723,0,,,0.276874911, +2017,,,,1.914788151,1.130152529,0.162358856,,,,,,2.399983332,1.426332548,0.203499562,,,,,,,,,3.515046997,,,,3.515046997,0,,,,,,,,4.405737629,,,,4.405737629,0,,,,2017,7.920784626,0,,2.202868814,0,,5.717915812,0,,,0.27811245, +2018,,,,3.342054021,1.42726587,0.161844256,,,,,,4.231913255,1.831929923,0.204937098,,,,,,,,,6.135131422,,,,6.135131422,0,,,,,,,,7.768678731,,,,7.768678731,0,,,,2018,13.90381015,0,,3.884339365,0,,10.01947079,0,,,0.279372296, +2019,,,,4.985587202,1.643533181,0.161509255,,,,,,6.378888509,2.146975254,0.206645574,,,,,,,,,9.152225701,,,,9.152225701,0,,,,,,,,11.70996013,,,,11.70996013,0,,,,2019,20.86218583,0,,5.854980064,0,,15.00720576,0,,,0.280650365, +2020,,,,6.7766328,1.791045598,0.161296424,,,,,,8.762092548,2.383204039,0.208554047,,,,,,,,,12.44011395,,,,12.44011395,0,,,,,,,,16.08489539,,,,16.08489539,0,,,,2020,28.52500934,0,,8.042447696,0,,20.48256164,0,,,0.281943736, +2021,,,,8.708251165,1.931618364,0.161121865,,,,,,11.38008103,2.617988487,0.210556614,,,,,,,,,15.98605679,,,,15.98605679,0,,,,,,,,20.8908331,,,,20.8908331,0,,,,2021,36.87688988,0,,10.44541655,0,,26.43147333,0,,,0.283251017, +2022,,,,10.77913212,2.070880954,0.16091851,,,,,,14.23886694,2.858785904,0.21256788,,,,,,,,,19.78764908,,,,19.78764908,0,,,,,,,,26.13881147,,,,26.13881147,0,,,,2022,45.92646055,0,,13.06940574,0,,32.85705481,0,,,0.284572457, +2023,,,,12.99561409,2.216481971,0.160669399,,,,,,17.35500042,3.116133481,0.214566043,,,,,,,,,23.85652651,,,,23.85652651,0,,,,,,,,31.85921225,,,,31.85921225,0,,,,2023,55.71573877,0,,15.92960613,0,,39.78613264,0,,,0.285908551, +2024,,,,15.3629715,2.36735741,0.160358965,,,,,,20.74442973,3.389429308,0.216530721,,,,,,,,,28.20237154,,,,28.20237154,0,,,,,,,,38.08131223,,,,38.08131223,0,,,,2024,66.28368377,0,,19.04065612,0,,47.24302765,0,,,0.287260077, +2025,,,,17.87980854,2.516837044,0.159982173,,,,,,24.41455269,3.670122959,0.218452741,,,,,,,,,32.82262182,,,,32.82262182,0,,,,,,,,44.81869187,,,,44.81869187,0,,,,2025,77.64131368,0,,22.40934593,0,,55.23196775,0,,,0.288626568, +2026,,,,20.54334991,2.663541367,0.159552196,,,,,,28.37111137,3.956558687,0.220347369,,,,,,,,,37.71218262,,,,37.71218262,0,,,,,,,,52.08189209,,,,52.08189209,0,,,,2026,89.79407471,0,,26.04094605,0,,63.75312867,0,,,0.290007399, +2027,,,,23.33294041,2.789590496,0.159075986,,,,,,32.59437226,4.223260887,0.222217253,,,,,,,,,42.83313644,,,,42.83313644,0,,,,,,,,59.83468735,,,,59.83468735,0,,,,2027,102.6678238,0,,29.91734368,0,,72.75048012,0,,,0.291399414, +2028,,,,26.20864125,2.875700842,0.158548447,,,,,,37.03511385,4.440741586,0.224042892,,,,,,,,,48.11216619,,,,48.11216619,0,,,,,,,,67.98671993,,,,67.98671993,0,,,,2028,116.0988861,0,,33.99335996,0,,82.10552616,0,,,0.292796607, +2029,,,,29.12040157,2.911760318,0.157968769,,,,,,41.62602921,4.590915359,0.225807759,,,,,,,,,53.45739165,,,,53.45739165,0,,,,,,,,76.41443202,,,,76.41443202,0,,,,2029,129.8718237,0,,38.20721601,0,,91.66460766,0,,,0.294191726, +2030,,,,32.03264902,2.912247451,0.157344188,,,,,,46.31727017,4.691240968,0.227510165,,,,,,,,,58.80351135,,,,58.80351135,0,,,,,,,,85.02631552,,,,85.02631552,0,,,,2030,143.8298269,0,,42.51315776,0,,101.3166691,0,,,0.295579566, +2031,,,,34.87977314,2.847124118,0.156688435,,,,,,51.01350193,4.696231757,0.229165074,,,,,,,,,64.03008175,,,,64.03008175,0,,,,,,,,93.64736079,,,,93.64736079,0,,,,2031,157.6774425,0,,46.8236804,0,,110.8537621,0,,,0.29695865, +2032,,,,37.71447293,2.834699791,0.15601253,,,,,,55.79068375,4.777181814,0.230787945,,,,,,,,,69.23384436,,,,69.23384436,0,,,,,,,,102.4170091,,,,102.4170091,0,,,,2032,171.6508534,0,,51.20850453,0,,120.4423489,0,,,0.298329449, +2033,,,,40.55408276,2.839609831,0.155320352,,,,,,60.67494044,4.884256699,0.232382351,,,,,,,,,74.44662052,,,,74.44662052,0,,,,,,,,111.3832186,,,,111.3832186,0,,,,2033,185.8298391,0,,55.69160932,0,,130.1382298,0,,,0.299691425, +2034,,,,43.42700342,2.872920663,0.154613809,,,,,,65.71049763,5.035557183,0.233950067,,,,,,,,,79.72054659,,,,79.72054659,0,,,,,,,,120.6271761,,,,120.6271761,0,,,,2034,200.3477227,0,,60.31358803,0,,140.0341346,0,,,0.30104454, +2035,,,,46.35612414,2.929120718,0.153895307,,,,,,70.93523116,5.224733532,0.235494218,,,,,,,,,85.09764117,,,,85.09764117,0,,,,,,,,130.2184115,,,,130.2184115,0,,,,2035,215.3160526,0,,65.10920574,0,,150.2068469,0,,,0.302389, +2036,,,,49.34584457,2.989720437,0.153166899,,,,,,76.35952142,5.424290264,0.237015928,,,,,,,,,90.58598088,,,,90.58598088,0,,,,,,,,140.1759805,,,,140.1759805,0,,,,2036,230.7619614,0,,70.08799026,0,,160.6739711,0,,,0.303724192, +2037,,,,52.3959508,3.050106222,0.152433279,,,,,,81.98747971,5.627958285,0.238522638,,,,,,,,,96.18517299,,,,96.18517299,0,,,,,,,,150.5074304,,,,150.5074304,0,,,,2037,246.6926034,0,,75.25371521,0,,171.4388882,0,,,0.305050553, +2038,,,,55.51976573,3.123814936,0.151700541,,,,,,87.84633123,5.858851516,0.240028677,,,,,,,,,101.9196749,,,,101.9196749,0,,,,,,,,161.2627395,,,,161.2627395,0,,,,2038,263.1824144,0,,80.63136977,0,,182.5510447,0,,,0.306370659, +2039,,,,58.73202505,3.212259314,0.150973964,,,,,,93.96774807,6.121416849,0.241549366,,,,,,,,,107.8165374,,,,107.8165374,0,,,,,,,,172.5000495,,,,172.5000495,0,,,,2039,280.3165869,0,,86.25002473,0,,194.0665621,0,,,0.30768791, +2040,,,,62.0442551,3.312230054,0.150255194,,,,,,100.3793444,6.411596327,0.2430929,,,,,,,,,113.8969199,,,,113.8969199,0,,,,,,,,184.2700525,,,,184.2700525,0,,,,2040,298.1669724,0,,92.13502627,0,,206.0319462,0,,,0.309004802, +2041,,,,65.37098198,3.326726883,0.149540764,,,,,,106.9499262,6.570581778,0.244655552,,,,,,,,,120.0039147,,,,120.0039147,0,,,,,,,,196.3319111,,,,196.3319111,0,,,,2041,316.3358258,0,,98.16595553,0,,218.1698702,0,,,0.310321966, +2042,,,,68.79844384,3.427461852,0.148827235,,,,,,113.8255445,6.87561829,0.246231457,,,,,,,,,126.2958324,,,,126.2958324,0,,,,,,,,208.9537363,,,,208.9537363,0,,,,2042,335.2495687,0,,104.4768681,0,,230.7727006,0,,,0.311639083, +2043,,,,72.33132289,3.532879053,0.1481144,,,,,,121.0228961,7.197351659,0.247821179,,,,,,,,,132.7812684,,,,132.7812684,0,,,,,,,,222.1661793,,,,222.1661793,0,,,,2043,354.9474477,0,,111.0830897,0,,243.864358,0,,,0.31295644, +2044,,,,75.97344346,3.642120573,0.147402174,,,,,,128.5576584,7.534762309,0.249425029,,,,,,,,,139.467243,,,,139.467243,0,,,,,,,,235.9980195,,,,235.9980195,0,,,,2044,375.4652625,0,,117.9990097,0,,257.4662527,0,,,0.314274106, +2045,,,,79.72669039,3.753246929,0.146688949,,,,,,136.4426372,7.884978724,0.251040485,,,,,,,,,146.3572164,,,,146.3572164,0,,,,,,,,250.4727648,,,,250.4727648,0,,,,2045,396.8299811,0,,125.2363824,0,,271.5935988,0,,,0.315592038, +2046,,,,83.59162716,3.86493677,0.145972062,,,,,,144.6887113,8.246074128,0.25266298,,,,,,,,,153.4522229,,,,153.4522229,0,,,,,,,,265.6103862,,,,265.6103862,0,,,,2046,419.0626091,0,,132.8051931,0,,286.257416,0,,,0.316910147, +2047,,,,87.56579198,3.974164821,0.145247358,,,,,,153.3016071,8.612895785,0.254284841,,,,,,,,,160.7477433,,,,160.7477433,0,,,,,,,,281.4213956,,,,281.4213956,0,,,,2047,442.1691389,0,,140.7106978,0,,301.4584411,0,,,0.31822822, +2048,,,,91.64354607,4.077754091,0.144510201,,,,,,162.2811521,8.979545021,0.25589671,,,,,,,,,168.2334264,,,,168.2334264,0,,,,,,,,297.9054765,,,,297.9054765,0,,,,2048,466.1389029,0,,148.9527382,0,,317.1861647,0,,,0.319545821, +2049,,,,95.81709033,4.173544258,0.143756018,,,,,,171.6227925,9.341640431,0.257488609,,,,,,,,,175.894955,,,,175.894955,0,,,,,,,,315.0542692,,,,315.0542692,0,,,,2049,490.9492243,0,,157.5271346,0,,333.4220896,0,,,0.320862376, +2050,,,,100.078922,4.261831632,0.142981841,,,,,,181.3217876,9.698995115,0.259052781,,,,,,,,,183.718556,,,,183.718556,0,,,,,,,,332.8590711,,,,332.8590711,0,,,,2050,516.5776271,0,,166.4295356,0,,350.1480916,0,,,0.322177204, +2051,,,,104.3052808,4.226358853,0.142188002,,,,,,191.1598118,9.838024144,0.260587302,,,,,,,,,191.4770383,,,,191.4770383,0,,,,,,,,350.9190937,,,,350.9190937,0,,,,2051,542.396132,0,,175.4595468,0,,366.9365852,0,,,0.323489672, +2052,,,,108.6054555,4.300174672,0.141374643,,,,,,201.3397226,10.17991083,0.262089334,,,,,,,,,199.3710271,,,,199.3710271,0,,,,,,,,369.6067302,,,,369.6067302,0,,,,2052,568.9777573,0,,184.8033651,0,,384.1743922,0,,,0.324798927, +2053,,,,112.9698234,4.364367923,0.14053953,,,,,,211.8498252,10.5101026,0.263550689,,,,,,,,,207.3828577,,,,207.3828577,0,,,,,,,,388.9005119,,,,388.9005119,0,,,,2053,596.2833696,0,,194.450256,0,,401.8331137,0,,,0.326103772, +2054,,,,117.3871475,4.417324129,0.13968043,,,,,,222.6740062,10.82418101,0.264962575,,,,,,,,,215.491902,,,,215.491902,0,,,,,,,,408.7708589,,,,408.7708589,0,,,,2054,624.2627609,0,,204.3854295,0,,419.8773314,0,,,0.327402886, +2055,,,,121.8477851,4.46063758,0.138796882,,,,,,233.7981115,11.12410522,0.266319563,,,,,,,,,223.6804584,,,,223.6804584,0,,,,,,,,429.1917878,,,,429.1917878,0,,,,2055,652.8722462,0,,214.5958939,0,,438.2763523,0,,,0.328695078, +2056,,,,126.3460072,4.49822207,0.137889944,,,,,,245.2155836,11.41747212,0.267620353,,,,,,,,,231.93801,,,,231.93801,0,,,,,,,,450.1512611,,,,450.1512611,0,,,,2056,682.0892711,0,,225.0756305,0,,457.0136405,0,,,0.329979726, +2057,,,,130.8774325,4.531425359,0.136962491,,,,,,256.9213997,11.70581617,0.268866787,,,,,,,,,240.2565141,,,,240.2565141,0,,,,,,,,471.6400581,,,,471.6400581,0,,,,2057,711.8965722,0,,235.8200291,0,,476.0765432,0,,,0.331256025, +2058,,,,135.4356435,4.558210986,0.136018331,,,,,,268.9040288,11.98262902,0.270060939,,,,,,,,,248.6241896,,,,248.6241896,0,,,,,,,,493.6370107,,,,493.6370107,0,,,,2058,742.2612003,0,,246.8185054,0,,495.4426949,0,,,0.33252244, +2059,,,,140.0145058,4.57886222,0.135061959,,,,,,281.1506351,12.2466063,0.271205868,,,,,,,,,257.0297753,,,,257.0297753,0,,,,,,,,516.1185561,,,,516.1185561,0,,,,2059,773.1483314,0,,258.0592781,0,,515.0890533,0,,,0.333777191, +2060,,,,144.6088721,4.594366358,0.13409692,,,,,,293.6498816,12.49924653,0.272303794,,,,,,,,,265.4638225,,,,265.4638225,0,,,,,,,,539.0638824,,,,539.0638824,0,,,,2060,804.5277049,0,,269.5319412,0,,534.9957637,0,,,0.335018843, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,Table 12: Difference in FUNCTIONAL & IMPLEMENTATION UNITS between REF1 and REF2 populations in MDC + LAC + EE + China,,,,,,,,,Table 13: Difference in EMISSIONS between REF1 and REF2 populations in MDC + LAC + EE + China,,,,,,,,,,,,,,Table 14: EMISSIONS ALLOCATIONS TO (a) Health & Education; (b) Education ONLY; (c) Family Planning (excluding education),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,SOLUTION ,,,CONVENTIONAL,,,,,,SOLUTION,,,,,CONVENTIONAL,,,,,EMISSION REDUCTIONS,,,,"Table 14(a): EMISSIONS ALLOCATION TO HEALTH & EDUCATION in MDC, CleanCookstoves_cluster",,,,"Table 14(b): EMISSIONS ALLOCATION TO Education in MDC, CleanCookstoves_cluster",,,"Table 14(c): EMISSIONS ALLOCATION TO Family Planning in MDC, CleanCookstoves_cluster",,,,% Allocation to Education (Electricity),,,,,,,,,,,,,,,,,,,,,, +,Additional Functional Units in REF2 vs REF1,Annual Functional Units Increase,Annual Implementation Units Increase + Replacement,Additional Functional Units in REF2 vs REF2,Annual Functional Units Increase,Change in TAM,Annual Implementation Units Increase + Replacement,,,Avoided Emissions/ Million Metric Tons CO2,,,,,Avoided Emissions/ Million Metric Tons CO2,,,,,ALL Years,,,,,,,,,,,,,,,ALL Years,,,,,,,,,,,,,,,,,,,,,, +,TWh,TWh,TW,TWh,TWh,%,TW,,,Grid,Fuel,Other Direct,Indirect,,Grid,Fuel,Other Direct,Indirect,,Conv Total,Solution Total,,,,Conv Total,Solution Total,,Conv Total,Solution Total,,Conv Total,Solution Total,,,Conv Total,Solution Total,,,,,,,,,,,,,,,,,,,,, +2014,,,,0,,,Not modeled TBD,,,Y,Y,N,N,,N,Y,N,N,,,,,,2014,0,0,,,,,0,0,,,,,,,,,,,,,,,,,,,,,,,,, +2015,,,,0,0,,,,,,,,,,,,,,,0,0,,,2015,0,0,,,,,0,0,,,,,,,,,,,,,,,,,,,,,,,,, +2016,,,,0.383444814,0.383444814,0.079683931,,,,,,,,,,,,,,0,0,,,2016,0,0,,,,,0,0,,,,,,,,,,,,,,,,,,,,,,,,, +2017,,,,0.934240891,0.550796076,0.079216222,,,,,,,,,,,,,,0,0,,,2017,0,0,,,,,0,0,,,,,,,,,,,,,,,,,,,,,,,,, +2018,,,,1.616741909,0.682501018,0.078293286,,,,,,,,,,,,,,0,0,,,2018,0,0,,,,,0,0,,,,,,,,,,,,,,,,,,,,,,,,, +2019,,,,2.374417643,0.757675735,0.076919811,,,,,,,,,,,,,,0,0,,,2019,0,0,,,,,0,0,,,,,,,,,,,,,,,,,,,,,,,,, +2020,,,,3.160433203,0.786015559,0.075224169,,,,,,,,,,,,,,0,0,,,2020,0,0,,,,,0,0,,,,,,,,,,,,,,,,,,,,,,,,, +2021,,,,3.966886871,0.806453668,0.073396162,,,,,,,,,,,,,,0,0,,,2021,0,0,,,,,0,0,,,,,,,,,,,,,,,,,,,,,,,,, +2022,,,,4.795341423,0.828454552,0.071588249,,,,,,,,,,,,,,0,0,,,2022,0,0,,,,,0,0,,,,,,,,,,,,,,,,,,,,,,,,, +2023,,,,5.648886912,0.853545489,0.069839198,,,,,,,,,,,,,,0,0,,,2023,0,0,,,,,0,0,,,,,,,,,,,,,,,,,,,,,,,,, +2024,,,,6.532366262,0.88347935,0.068184953,,,,,,,,,,,,,,0,0,,,2024,0,0,,,,,0,0,,,,,,,,,,,,,,,,,,,,,,,,, +2025,,,,7.447739454,0.915373192,0.066639726,,,,,,,,,,,,,,0,0,,,2025,0,0,,,,,0,0,,,,,,,,,,,,,,,,,,,,,,,,, +2026,,,,8.391701282,0.943961828,0.065175075,,,,,,,,,,,,,,0,0,,,2026,0,0,,,,,0,0,,,,,,,,,,,,,,,,,,,,,,,,, +2027,,,,9.355325403,0.963624121,0.0637814,,,,,,,,,,,,,,0,0,,,2027,0,0,,,,,0,0,,,,,,,,,,,,,,,,,,,,,,,,, +2028,,,,10.32871939,0.973393991,0.062483301,,,,,,,,,,,,,,0,0,,,2028,0,0,,,,,0,0,,,,,,,,,,,,,,,,,,,,,,,,, +2029,,,,11.29986406,0.971144665,0.061298111,,,,,,,,,,,,,,0,0,,,2029,0,0,,,,,0,0,,,,,,,,,,,,,,,,,,,,,,,,, +2030,,,,12.25984456,0.959980505,0.060220286,,,,,,,,,,,,,,0,0,,,2030,0,0,,,,,0,0,,,,,,,,,,,,,,,,,,,,,,,,, +2031,,,,13.18297414,0.923129577,0.05922113,,,,,,,,,,,,,,0,0,,,2031,0,0,,,,,0,0,,,,,,,,,,,,,,,,,,,,,,,,, +2032,,,,14.08719819,0.90422405,0.058274165,,,,,,,,,,,,,,0,0,,,2032,0,0,,,,,0,0,,,,,,,,,,,,,,,,,,,,,,,,, +2033,,,,14.97979008,0.892591889,0.057371937,,,,,,,,,,,,,,0,0,,,2033,0,0,,,,,0,0,,,,,,,,,,,,,,,,,,,,,,,,, +2034,,,,15.87240566,0.892615579,0.056510763,,,,,,,,,,,,,,0,0,,,2034,0,0,,,,,0,0,,,,,,,,,,,,,,,,,,,,,,,,, +2035,,,,16.77339056,0.9009849,0.055685115,,,,,,,,,,,,,,0,0,,,2035,0,0,,,,,0,0,,,,,,,,,,,,,,,,,,,,,,,,, +2036,,,,17.68451846,0.911127902,0.054891813,,,,,,,,,,,,,,0,0,,,2036,0,0,,,,,0,0,,,,,,,,,,,,,,,,,,,,,,,,, +2037,,,,18.60224975,0.917731288,0.054118723,,,,,,,,,,,,,,0,0,,,2037,0,0,,,,,0,0,,,,,,,,,,,,,,,,,,,,,,,,, +2038,,,,19.52349871,0.921248959,0.053345422,,,,,,,,,,,,,,0,0,,,2038,0,0,,,,,0,0,,,,,,,,,,,,,,,,,,,,,,,,, +2039,,,,20.4435568,0.920058089,0.052551309,,,,,,,,,,,,,,0,0,,,2039,0,0,,,,,0,0,,,,,,,,,,,,,,,,,,,,,,,,, +2040,,,,21.3592281,0.9156713,0.051726545,,,,,,,,,,,,,,0,0,,,2040,0,0,,,,,0,0,,,,,,,,,,,,,,,,,,,,,,,,, +2041,,,,22.24119956,0.881971464,0.050878324,,,,,,,,,,,,,,0,0,,,2041,0,0,,,,,0,0,,,,,,,,,,,,,,,,,,,,,,,,, +2042,,,,23.12089809,0.879698528,0.050015947,,,,,,,,,,,,,,0,0,,,2042,0,0,,,,,0,0,,,,,,,,,,,,,,,,,,,,,,,,, +2043,,,,23.99694599,0.876047904,0.049139061,,,,,,,,,,,,,,0,0,,,2043,0,0,,,,,0,0,,,,,,,,,,,,,,,,,,,,,,,,, +2044,,,,24.86750195,0.870555962,0.048247436,,,,,,,,,,,,,,0,0,,,2044,0,0,,,,,0,0,,,,,,,,,,,,,,,,,,,,,,,,, +2045,,,,25.73252141,0.865019458,0.047345205,,,,,,,,,,,,,,0,0,,,2045,0,0,,,,,0,0,,,,,,,,,,,,,,,,,,,,,,,,, +2046,,,,26.59386629,0.861344878,0.046439597,,,,,,,,,,,,,,0,0,,,2046,0,0,,,,,0,0,,,,,,,,,,,,,,,,,,,,,,,,, +2047,,,,27.45633342,0.862467129,0.045542441,,,,,,,,,,,,,,0,0,,,2047,0,0,,,,,0,0,,,,,,,,,,,,,,,,,,,,,,,,, +2048,,,,28.32678295,0.87044953,0.044667729,,,,,,,,,,,,,,0,0,,,2048,0,0,,,,,0,0,,,,,,,,,,,,,,,,,,,,,,,,, +2049,,,,29.21383272,0.887049772,0.043830013,,,,,,,,,,,,,,0,0,,,2049,0,0,,,,,0,0,,,,,,,,,,,,,,,,,,,,,,,,, +2050,,,,30.12549366,0.911660944,0.043040017,,,,,,,,,,,,,,0,0,,,2050,0,0,,,,,0,0,,,,,,,,,,,,,,,,,,,,,,,,, +2051,,,,31.02965093,0.90415727,0.042299336,,,,,,,,,,,,,,0,0,,,2051,0,0,,,,,0,0,,,,,,,,,,,,,,,,,,,,,,,,, +2052,,,,31.96573884,0.936087903,0.041610662,,,,,,,,,,,,,,0,0,,,2052,0,0,,,,,0,0,,,,,,,,,,,,,,,,,,,,,,,,, +2053,,,,32.94448743,0.978748594,0.040984421,,,,,,,,,,,,,,0,0,,,2053,0,0,,,,,0,0,,,,,,,,,,,,,,,,,,,,,,,,, +2054,,,,33.97866308,1.034175645,0.040431635,,,,,,,,,,,,,,0,0,,,2054,0,0,,,,,0,0,,,,,,,,,,,,,,,,,,,,,,,,, +2055,,,,35.07872351,1.100060433,0.039958194,,,,,,,,,,,,,,0,0,,,2055,0,0,,,,,0,0,,,,,,,,,,,,,,,,,,,,,,,,, +2056,,,,36.25207586,1.173352349,0.039564343,,,,,,,,,,,,,,0,0,,,2056,0,0,,,,,0,0,,,,,,,,,,,,,,,,,,,,,,,,, +2057,,,,37.50174325,1.249667387,0.039245362,,,,,,,,,,,,,,0,0,,,2057,0,0,,,,,0,0,,,,,,,,,,,,,,,,,,,,,,,,, +2058,,,,38.82831776,1.326574516,0.03899537,,,,,,,,,,,,,,0,0,,,2058,0,0,,,,,0,0,,,,,,,,,,,,,,,,,,,,,,,,, +2059,,,,40.22980853,1.401490765,0.038806813,,,,,,,,,,,,,,0,0,,,2059,0,0,,,,,0,0,,,,,,,,,,,,,,,,,,,,,,,,, +2060,,,,41.70560189,1.475793362,0.038673925,,,,,,,,,,,,,,0,0,,,2060,0,0,,,,,0,0,,,,,,,,,,,,,,,,,,,,,,,,, diff --git a/solution/health_and_education/tests/test_clean_cookstoves.py b/solution/health_and_education/tests/test_clean_cookstoves.py new file mode 100644 index 000000000..dc5a16ed8 --- /dev/null +++ b/solution/health_and_education/tests/test_clean_cookstoves.py @@ -0,0 +1,88 @@ +import sys +sys.path.append('c:\\Users\\sunishchal.dev\\Documents\\solutions\\solution\\health_and_education') + +import pandas as pd +import numpy as np + +from clusters import clean_cookstoves + +test_cluster = clean_cookstoves.Cluster() +test_dfs = test_cluster.run_cluster() + +expected_df = pd.read_csv('expected_clean_cookstoves.csv', header=None) + +def test_clean_cookstoves(): + + # Default columns to integers to avoid mismatch between Excel & pandas col names using T.reset_index() + exp_ref2_tam = expected_df.iloc[28:75, 1:11].T.reset_index(drop=True).T.astype(float) + exp_ref2_tam.index = expected_df.iloc[28:75, 0].astype(int).values + test_ref2_tam = test_dfs.ref2_tam.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_ref2_tam, exp_ref2_tam, check_exact=False) + + exp_ref1_tam_low_edu = expected_df.iloc[28:75, 13:23].T.reset_index(drop=True).T.astype(float) + exp_ref1_tam_low_edu.index = expected_df.iloc[28:75, 12].astype(int).values + test_ref1_tam_low_edu = test_dfs.ref1_tam_low_edu.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_ref1_tam_low_edu, exp_ref1_tam_low_edu, check_exact=False) + + exp_ref1_tam_high_edu = expected_df.iloc[28:75, 25:35].T.reset_index(drop=True).T.astype(float) + exp_ref1_tam_high_edu.index = expected_df.iloc[28:75, 24].astype(int).values + test_ref1_tam_high_edu = test_dfs.ref1_tam_high_edu.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_ref1_tam_high_edu, exp_ref1_tam_high_edu, check_exact=False) + + exp_ref1_tam_all_regions = expected_df.iloc[28:75, 37:47].T.reset_index(drop=True).T.astype(float) + exp_ref1_tam_all_regions.index = expected_df.iloc[28:75, 36].astype(int).values + test_ref1_tam_all_regions = test_dfs.ref1_tam_all_regions.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_ref1_tam_all_regions, exp_ref1_tam_all_regions, check_exact=False) + + exp_ref2_demand = expected_df.iloc[79:126, 1:6].T.reset_index(drop=True).T.astype(float) + exp_ref2_demand.index = expected_df.iloc[79:126, 0].astype(int).values + test_ref2_demand = test_dfs.ref2_demand.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_ref2_demand, exp_ref2_demand, check_exact=False, rtol=1e-3) + + exp_ref1_demand = expected_df.iloc[79:126, [8,9,10,11,12,14,15,16,17,18,19]].T.reset_index(drop=True).T.astype(float) + exp_ref1_demand.index = expected_df.iloc[79:126, 7].astype(int).values + test_ref1_demand = test_dfs.ref1_demand.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_ref1_demand, exp_ref1_demand, check_exact=False, rtol=1e-3) + + exp_change_demand = expected_df.iloc[79:126, 22:30].T.reset_index(drop=True).T.astype(float) + exp_change_demand.index = expected_df.iloc[79:126, 7].astype(int).values + test_change_demand = test_dfs.change_demand.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_change_demand, exp_change_demand, check_exact=False, rtol=1e-3) + + exp_addl_func_units_highed = expected_df.iloc[134:181, 4:7].T.reset_index(drop=True).T.astype(float) + exp_addl_func_units_highed.index = expected_df.iloc[134:181, 0].astype(int, errors='ignore').values + test_addl_func_units_highed = test_dfs.addl_func_units_highed.T.reset_index(drop=True).T + print(test_addl_func_units_highed.head()) + print(exp_addl_func_units_highed.head()) + pd.testing.assert_frame_equal(test_addl_func_units_highed, exp_addl_func_units_highed, check_exact=False, rtol=1e-3) + + exp_addl_func_units_lowed = expected_df.iloc[134:181, 12:15].T.reset_index(drop=True).T.astype(float) + exp_addl_func_units_lowed.index = expected_df.iloc[134:181, 0].astype(int, errors='ignore').values + test_addl_func_units_lowed = test_dfs.addl_func_units_lowed.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_addl_func_units_lowed, exp_addl_func_units_lowed, check_exact=False, rtol=1e-3) + + exp_emis_diff_highed = expected_df.iloc[134:181, [22, 23, 24, 25, 27]].T.reset_index(drop=True).T.astype(float) + exp_emis_diff_highed.index = expected_df.iloc[134:181, 0].astype(int, errors='ignore').values + test_emis_diff_highed = test_dfs.emis_diff_highed.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_emis_diff_highed, exp_emis_diff_highed, check_exact=False, rtol=1e-3) + + exp_emis_diff_lowed = expected_df.iloc[134:181, [35, 36, 37, 38, 40]].T.reset_index(drop=True).T.astype(float) + exp_emis_diff_lowed.index = expected_df.iloc[134:181, 0].astype(int, errors='ignore').values + test_emis_diff_lowed = test_dfs.emis_diff_lowed.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_emis_diff_lowed, exp_emis_diff_lowed, check_exact=False, rtol=1e-3) + + exp_emissions_allocations_lldc = expected_df.iloc[134:181, [46, 47, 49, 50, 52, 53, 56, 57]].T.reset_index(drop=True).T.astype(float) + exp_emissions_allocations_lldc.index = expected_df.iloc[134:181, 45].astype(int, errors='ignore').values + test_emissions_allocations_lldc = test_dfs.emissions_allocations_lldc.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_emissions_allocations_lldc, exp_emissions_allocations_lldc, check_exact=False, rtol=1e-2) + + # Test the final CO2 reduction output + exp_emissions_avoided = expected_df.iloc[[4, 7, 11], [13, 14]].reset_index(drop=True).T.reset_index(drop=True).T.astype(float) + test_emissions_avoided = pd.DataFrame([[test_dfs.emissions_avoided_lldc_period, test_dfs.emissions_avoided_lldc_full], + [test_dfs.emissions_avoided_mdc_period, test_dfs.emissions_avoided_mdc_full], + [test_dfs.emissions_avoided_total_period, test_dfs.emissions_avoided_total_full]]) + pd.testing.assert_frame_equal(test_emissions_avoided, exp_emissions_avoided, check_exact=False, rtol=1e-2) + + print("Test complete: clean cookstoves cluster") + +test_clean_cookstoves() \ No newline at end of file From 532bbad21f82d4449e6e84c8e5550819491be98e Mon Sep 17 00:00:00 2001 From: Sunishchal Date: Tue, 29 Dec 2020 01:16:38 -0800 Subject: [PATCH 18/28] Completed clean cookstoves cluster --- .../clusters/clean_cookstoves.py | 18 ++-- .../clusters/cluster_model.py | 42 +++++--- .../tests/expected_clean_cookstoves.csv | 96 +++++++++---------- .../tests/test_clean_cookstoves.py | 2 - 4 files changed, 87 insertions(+), 71 deletions(-) diff --git a/solution/health_and_education/clusters/clean_cookstoves.py b/solution/health_and_education/clusters/clean_cookstoves.py index 050fcbb5a..2791f9330 100644 --- a/solution/health_and_education/clusters/clean_cookstoves.py +++ b/solution/health_and_education/clusters/clean_cookstoves.py @@ -40,14 +40,14 @@ # TABLE 1: Current TAM Mix current_tam_mix_list = [ ['Energy Source', 'Weighting Factor', 'Include in SOL?', 'Include in CONV?'], - ['LPG', 23.7722604650757, 'N', 'Y'], - ['Electricity', 3.09086628733514, 'N', 'Y'], + ['LPG', 23.7722604650757, 'N', 'N'], + ['Electricity', 3.09086628733514, 'N', 'N'], ['Firewood (incl crop residue+dung)', 44.5074639589554, 'N', 'Y'], - ['Biogas', 1.00127286339017, 'N', 'Y'], - ['Coal', 15.3972560062807, 'N', 'Y'], - ['Natural Gas', 2.92055789748195, 'N', 'Y'], - ['Kerosene', 2.30072086818361, 'N', 'Y'], - ['Coal gas', 2.92055789748195, 'N', 'Y']] + ['Biogas', 1.00127286339017, 'N', 'N'], + ['Coal', 15.3972560062807, 'N', 'N'], + ['Natural Gas', 2.92055789748195, 'N', 'N'], + ['Kerosene', 2.30072086818361, 'N', 'N'], + ['Coal gas', 2.92055789748195, 'N', 'N']] # Table 2: REF2, Heating Demand TAM (TWh Therms) # Clean Cookstoves_cluster!B28:K75 @@ -171,8 +171,8 @@ def run_cluster(self): scenario.calc_change_demand() scenario.calc_addl_units_highed() scenario.calc_addl_units_lowed() - scenario.calc_emis_diff_highed_spacecooling(ef_co2_eq_list) - scenario.calc_emis_diff_lowed_spacecooling() + scenario.calc_emis_diff_highed_cleancookstoves() + scenario.calc_emis_diff_lowed_cleancookstoves() scenario.calc_emis_alloc_lldc() scenario.calc_total_emis(mdc=False) scenario.print_total_emis(mdc=False) diff --git a/solution/health_and_education/clusters/cluster_model.py b/solution/health_and_education/clusters/cluster_model.py index 80444ff32..a2de9d1d7 100644 --- a/solution/health_and_education/clusters/cluster_model.py +++ b/solution/health_and_education/clusters/cluster_model.py @@ -256,9 +256,6 @@ def calc_emis_diff_highed(self, ef_co2_eq_list): def calc_emis_diff_highed_spaceheating(self, ef_co2_eq_list): - # Table 9: Difference in EMISSIONS between REF1 and REF2 populations in LLDC+HighNRR+HighED - # CONVENTIONAL Avoided Emissions/ Million Metric Tons CO2 - # emissions_factors_ref1_co2eq = ef.ElectricityGenOnGrid(ac.AdvancedControls()).conv_ref_grid_CO2eq_per_KWh() self.emissions_factors_ref1_co2eq = pd.DataFrame(ef_co2_eq_list[1:], columns=ef_co2_eq_list[0], index=list(range(2014, 2061)), dtype=np.float64) @@ -285,9 +282,6 @@ def calc_emis_diff_highed_spaceheating(self, ef_co2_eq_list): def calc_emis_diff_highed_spacecooling(self, ef_co2_eq_list): - # Table 9: Difference in EMISSIONS between REF1 and REF2 populations in LLDC+HighNRR+HighED - # CONVENTIONAL Avoided Emissions/ Million Metric Tons CO2 - # emissions_factors_ref1_co2eq = ef.ElectricityGenOnGrid(ac.AdvancedControls()).conv_ref_grid_CO2eq_per_KWh() self.emissions_factors_ref1_co2eq = pd.DataFrame(ef_co2_eq_list[1:], columns=ef_co2_eq_list[0], index=list(range(2014, 2061)), dtype=np.float64) @@ -305,7 +299,22 @@ def calc_emis_diff_highed_spacecooling(self, ef_co2_eq_list): # SpaceHeating_cluster!V131:Z179 self.emis_diff_highed = emis_diff_highed + + + def calc_emis_diff_highed_cleancookstoves(self): + emis_diff_highed = pd.DataFrame(None, + columns=['Conventional: Grid','Conventional: Fuel', 'Conventional: Other Direct', 'Conventional: Indirect', 'Emission Reductions: Conv Total'], + index=list(range(2014, 2061)), dtype=np.float64) + + if self.assumptions['Fuel'] == 'Y': + emis_diff_highed['Conventional: Fuel'] = self.addl_func_units_highed['Additional Functional Units in REF2 vs REF2'] \ + * (self.assumptions['CO2-eq Emissions for Solid Biofuels'] * self.assumptions['TJ_per_TWh']) / 10**6 + emis_diff_highed['Emission Reductions: Conv Total'] = emis_diff_highed[['Conventional: Grid', 'Conventional: Fuel', 'Conventional: Other Direct', 'Conventional: Indirect']].sum(axis=1, min_count=1) + + # SpaceHeating_cluster!V131:Z179 + self.emis_diff_highed = emis_diff_highed + def calc_emis_diff_lowed(self): # Table 10: Difference in EMISSIONS between REF1 and REF2 populations in LLDC+HighNRR+LowED @@ -322,8 +331,6 @@ def calc_emis_diff_lowed(self): def calc_emis_diff_lowed_spaceheating(self): - # Table 10: Difference in EMISSIONS between REF1 and REF2 populations in LLDC+HighNRR+LowED - # CONVENTIONAL - Least and Less Developed Countries (sans LAC, EE, China) emis_diff_lowed = pd.DataFrame(None, columns=['Conventional: Grid','Conventional: Fuel', 'Conventional: Other Direct', 'Conventional: Indirect', 'Emission Reductions: Conv Total'], index=list(range(2014, 2061)), dtype=np.float64) @@ -344,9 +351,7 @@ def calc_emis_diff_lowed_spaceheating(self): self.emis_diff_lowed = emis_diff_lowed - def calc_emis_diff_lowed_spacecooling(self): - # Table 10: Difference in EMISSIONS between REF1 and REF2 populations in LLDC+HighNRR+LowED - # CONVENTIONAL - Least and Less Developed Countries (sans LAC, EE, China) + def calc_emis_diff_lowed_spacecooling(self): emis_diff_lowed = pd.DataFrame(None, columns=['Conventional: Grid','Conventional: Fuel', 'Conventional: Other Direct', 'Conventional: Indirect', 'Emission Reductions: Conv Total'], index=list(range(2014, 2061)), dtype=np.float64) @@ -358,7 +363,20 @@ def calc_emis_diff_lowed_spacecooling(self): emis_diff_lowed['Emission Reductions: Conv Total'] = emis_diff_lowed[['Conventional: Grid', 'Conventional: Fuel', 'Conventional: Other Direct', 'Conventional: Indirect']].sum(axis=1, min_count=1) - # SpaceHeating_cluster!AI131:AM179 + self.emis_diff_lowed = emis_diff_lowed + + + def calc_emis_diff_lowed_cleancookstoves(self): + emis_diff_lowed = pd.DataFrame(None, + columns=['Conventional: Grid','Conventional: Fuel', 'Conventional: Other Direct', 'Conventional: Indirect', 'Emission Reductions: Conv Total'], + index=list(range(2014, 2061)), dtype=np.float64) + + if self.assumptions['Fuel'] == 'Y': + emis_diff_lowed['Conventional: Fuel'] = self.addl_func_units_lowed['Additional Functional Units in REF2 vs REF2'] \ + * (self.assumptions['CO2-eq Emissions for Solid Biofuels'] * self.assumptions['TJ_per_TWh']) / 10**6 + + emis_diff_lowed['Emission Reductions: Conv Total'] = emis_diff_lowed[['Conventional: Grid', 'Conventional: Fuel', 'Conventional: Other Direct', 'Conventional: Indirect']].sum(axis=1, min_count=1) + self.emis_diff_lowed = emis_diff_lowed diff --git a/solution/health_and_education/tests/expected_clean_cookstoves.csv b/solution/health_and_education/tests/expected_clean_cookstoves.csv index f0753bc16..7d2d28743 100644 --- a/solution/health_and_education/tests/expected_clean_cookstoves.csv +++ b/solution/health_and_education/tests/expected_clean_cookstoves.csv @@ -26,53 +26,53 @@ NRR,Net Reproductive Rate,,,Assumptions:,,Use fixed weight?,,,,,,,,,,,,,,,,,,,,, COPY TABLES BELOW FROM LATEST CleanCookstoves_cluster SOLUTION MODELS,,,,,,,,,,,,(a) FOR POPULATIONS IN REGIONS WITH LOW EDUCATIONAL ATTAINMENT ONLY!,,,,,,,,,,,,(b) FOR REGIONS WITH HIGHER EDUCATIONAL ATTAINMENT,,,,,,,,,,,,(c) FOR ALL REGIONS,,,,,,,,,,,,,,,,,,,,, ,Regions included as LLDC+HighNRR:,N,N,Y,Y,N,,,,,,,Regions included as LLDC+HighNRR:,N,N,Y,Y,N,,,,,,,Regions included as LLDC+HighNRR:,N,N,Y,Y,N,,,,,,,,,,,,,,,,,,CHECK,,,,,,,,, ,World,OECD90,Eastern Europe,Asia (Sans Japan),Middle East and Africa,Latin America,China,India,EU,USA,,,World,OECD90,Eastern Europe,"Asia (Sans Japan, Sans China)",Middle East and Africa,Latin America,China,India,EU,USA,,,World,OECD90,Eastern Europe,Asia (Sans Japan),Middle East and Africa,Latin America,China,India,EU,USA,,,World,OECD90,Eastern Europe,Asia (Sans Japan),Middle East and Africa,Latin America,China,India,EU,USA,,WORLD,,REGIONAL TOTAL,,% error,OECD90,Eastern Europe,Asia (Sans Japan),Middle East and Africa,Latin America -2014,4417.454144,0.000000,0.000000,4053.298731,1783.757754,173.254108,1086.492157,1622.370389,0.000000,0.000000,,2014,0,0,0,0,0,0,0,0,0,0,,2014,4417.454144,0,0,4053.298731,1783.757754,173.2541075,1086.492157,1622.370389,0,0,,2014,4417.454144,0,0,4053.298731,1783.757754,173.2541075,1086.492157,1622.370389,0,0,,4417.454144,OK,6010.310593,OK,,0,0,4053.298731,1783.757754,173.2541075 -2015,4499.784719,0.000000,0.000000,4063.458970,1813.714359,173.110086,1083.167749,1629.340849,0.000000,0.000000,,2015,2691.672527,0,0,1555.817862,1087.237254,48.61741097,0,0,0,0,,2015,1808.112192,0,0,2507.641108,726.4771045,124.4926752,1083.167749,1629.340849,0,0,,2015,4499.784719,0,0,4063.45897,1813.714359,173.1100861,1083.167749,1629.340849,0,0,,4499.784719,OK,6050.283415,OK,,0,0,4063.45897,1813.714359,173.1100861 -2016,4566.459576,0.000000,0.000000,4072.722322,1846.401375,173.132753,1079.291643,1640.767842,0.000000,0.000000,,2016,2731.915396,0,0,1570.455246,1112.619677,48.8404723,0,0,0,0,,2016,1839.356252,0,0,2506.6318,735.8267173,124.5229295,1080.249856,1642.660098,0,0,,2016,4571.271648,0,0,4077.087047,1848.446394,173.3634018,1080.249856,1642.660098,0,0,,4571.271648,OK,6098.896843,OK,,0,0,4077.087047,1848.446394,173.3634018 -2017,4640.619484,0.000000,0.000000,4081.370608,1879.220242,173.127819,1074.656400,1651.913008,0.000000,0.000000,,2017,2774.122619,0,0,1586.266723,1138.766659,49.08923679,0,0,0,0,,2017,1878.29042,0,0,2505.660502,745.4262525,124.5954141,1076.962643,1656.505276,0,0,,2017,4652.41304,0,0,4091.927225,1884.192912,173.6846508,1076.962643,1656.505276,0,0,,4652.41304,OK,6149.804788,OK,,0,0,4091.927225,1884.192912,173.6846508 -2018,4714.592064,0.000000,0.000000,4089.403674,1912.166934,173.095459,1069.301088,1662.775487,0.000000,0.000000,,2018,2818.062644,0,0,1603.08799,1165.617014,49.35763983,0,0,0,0,,2018,1917.179235,0,0,2504.545678,755.2130253,124.6999231,1073.239006,1670.749799,0,0,,2018,4735.241879,0,0,4107.633668,1920.83004,174.057563,1073.239006,1670.749799,0,0,,4735.241879,OK,6202.521271,OK,,0,0,4107.633668,1920.83004,174.057563 -2019,4788.429020,0.000000,0.000000,4096.821366,1945.237426,173.035847,1063.264772,1673.354415,0.000000,0.000000,,2019,2863.367636,0,0,1620.65546,1193.075703,49.63647383,0,0,0,0,,2019,1955.930124,0,0,2503.025303,765.0841303,124.8208534,1068.964229,1685.194549,0,0,,2019,4819.29776,0,0,4123.680762,1958.159833,174.4573273,1068.964229,1685.194549,0,0,,4819.29776,OK,6256.297923,OK,,0,0,4123.680762,1958.159833,174.4573273 -2020,4857.017901,0.000000,0.000000,4103.623531,1978.427692,172.949155,1056.586516,1683.648933,0.000000,0.000000,,2020,2909.756685,0,0,1638.763778,1221.0741,49.9188066,0,0,0,0,,2020,1989.274751,0,0,2500.911707,774.960199,124.9464381,1064.063361,1699.68933,0,0,,2020,4899.031435,0,0,4139.675485,1996.034299,174.8652447,1064.063361,1699.68933,0,0,,4899.031435,OK,6310.575029,OK,,0,0,4139.675485,1996.034299,174.8652447 -2021,4928.700426,0.000000,0.000000,4109.810015,2011.733707,172.835559,1049.305389,1693.658179,0.000000,0.000000,,2021,2957.140531,0,0,1657.353153,1249.584712,50.20266564,0,0,0,0,,2021,2025.607502,0,0,2498.15807,784.8288402,125.0737397,1058.543607,1714.190245,0,0,,2021,4982.748032,0,0,4155.511223,2034.413552,175.2764053,1058.543607,1714.190245,0,0,,4982.748032,OK,6365.201181,OK,,0,0,4155.511223,2034.413552,175.2764053 -2022,4995.148726,0.000000,0.000000,4115.380664,2045.151444,172.695231,1041.460454,1703.381292,0.000000,0.000000,,2022,3005.558537,0,0,1676.442203,1278.627319,50.48901573,0,0,0,0,,2022,2056.575224,0,0,2494.815624,794.7005319,125.2043136,1052.464224,1728.720843,0,0,,2022,5062.133761,0,0,4171.257827,2073.327851,175.6933293,1052.464224,1728.720843,0,0,,5062.133761,OK,6420.279007,OK,,0,0,4171.257827,2073.327851,175.6933293 -2023,5061.464606,0.000000,0.000000,4120.335323,2078.676878,172.528346,1033.090778,1712.817409,0.000000,0.000000,,2023,3055.000226,0,0,1695.988239,1308.234706,50.77728129,0,0,0,0,,2023,2087.34857,0,0,2490.91558,804.5444981,125.3361443,1045.865086,1743.275366,0,0,,2023,5142.348796,0,0,4186.903819,2112.779204,176.1134256,1045.865086,1743.275366,0,0,,5142.348796,OK,6475.796449,OK,,0,0,4186.903819,2112.779204,176.1134256 -2024,5127.597848,0.000000,0.000000,4124.673841,2112.305984,172.335078,1024.235427,1721.965671,0.000000,0.000000,,2024,3105.482164,0,0,1715.95722,1338.457469,51.0674749,0,0,0,0,,2024,2117.919318,0,0,2486.518986,814.327813,125.4678468,1038.799279,1757.862608,0,0,,2024,5223.401482,0,0,4202.476206,2152.785283,176.5353217,1038.799279,1757.862608,0,0,,5223.401482,OK,6531.79681,OK,,0,0,4202.476206,2152.785283,176.5353217 -2025,5193.508617,0.000000,0.000000,4128.396061,2146.034735,172.115601,1014.933467,1730.825215,0.000000,0.000000,,2025,3156.982113,0,0,1736.30069,1369.322356,51.35906558,0,0,0,0,,2025,2148.28776,0,0,2481.668334,824.0230497,125.5976304,1031.312401,1772.474561,0,0,,2025,5305.269873,0,0,4217.969024,2193.345406,176.956696,1031.312401,1772.474561,0,0,,5305.269873,OK,6588.271126,OK,,0,0,4217.969024,2193.345406,176.956696 -2026,5259.177960,0.000000,0.000000,4131.501832,2179.859107,171.870088,1005.223962,1739.395180,0.000000,0.000000,,2026,3209.473894,0,0,1756.984931,1400.837392,51.65157092,0,0,0,0,,2026,2178.460364,0,0,2476.375807,833.6197094,125.7241762,1023.435498,1787.105333,0,0,,2026,5387.934257,0,0,4233.360738,2234.457102,177.3757472,1023.435498,1787.105333,0,0,,5387.934257,OK,6645.193586,OK,,0,0,4233.360738,2234.457102,177.3757472 -2027,5324.597693,0.000000,0.000000,4133.990998,2213.775072,171.598714,995.145980,1747.674706,0.000000,0.000000,,2027,3262.830135,0,0,1777.926869,1432.960392,51.94287442,0,0,0,0,,2027,2208.445513,0,0,2470.618702,843.1078415,125.8444537,1015.187381,1801.700727,0,0,,2027,5471.275648,0,0,4248.545571,2276.068233,177.7873281,1015.187381,1801.700727,0,0,,5471.275648,OK,6702.401132,OK,,0,0,4248.545571,2276.068233,177.7873281 -2028,5389.752123,0.000000,0.000000,4135.863407,2247.778607,171.301651,984.738586,1755.662930,0.000000,0.000000,,2028,3316.80646,0,0,1798.97037,1465.607102,52.22898821,0,0,0,0,,2028,2238.249341,0,0,2464.367985,852.4640542,125.9531411,1006.588303,1816.149364,0,0,,2028,5555.0558,0,0,4263.338354,2318.071156,178.1821293,1006.588303,1816.149364,0,0,,5555.0558,OK,6759.59164,OK,,0,0,4263.338354,2318.071156,178.1821293 -2029,5454.627086,0.000000,0.000000,4137.118904,2281.865684,170.979075,974.040846,1763.358992,0.000000,0.000000,,2029,3371.096352,0,0,1819.925091,1498.666242,52.50501923,0,0,0,0,,2029,2267.87351,0,0,2457.585004,861.6638492,126.0439462,997.6555111,1830.312127,0,0,,2029,5638.969862,0,0,4277.510095,2360.330091,178.5489654,997.6555111,1830.312127,0,0,,5638.969862,OK,6816.389151,OK,,0,0,4277.510095,2360.330091,178.5489654 -2030,5519.206321,0.000000,0.000000,4137.757336,2316.032279,170.631159,963.091825,1770.762029,0.000000,0.000000,,2030,3425.47083,0,0,1840.646745,1532.05653,52.76755511,0,0,0,0,,2030,2297.318791,0,0,2450.253851,870.6936173,126.1124574,988.4131928,1844.092186,0,0,,2030,5722.789621,0,0,4290.900596,2402.750147,178.8800126,988.4131928,1844.092186,0,0,,5722.789621,OK,6872.530756,OK,,0,0,4290.900596,2402.750147,178.8800126 -2031,5575.316947,0.000000,0.000000,4137.778548,2350.274365,170.258076,951.930590,1777.871181,0.000000,0.000000,,2031,3479.827834,0,0,1861.061269,1565.751424,53.01514046,0,0,0,0,,2031,2318.095032,0,0,2442.379598,879.5453505,126.1566014,978.8893832,1857.456172,0,0,,2031,5797.922866,0,0,4303.440867,2445.296775,179.1717419,978.8893832,1857.456172,0,0,,5797.922866,OK,6927.909384,OK,,0,0,4303.440867,2445.296775,179.1717419 -2032,5631.178821,0.000000,0.000000,4137.182387,2384.587918,169.860002,940.596206,1784.685587,0.000000,0.000000,,2032,3534.183445,0,0,1881.168787,1599.765989,53.24866898,0,0,0,0,,2032,2338.735401,0,0,2434.005207,888.2318659,126.1772746,969.1269917,1870.433322,0,0,,2032,5872.918846,0,0,4315.173994,2487.997855,179.4259436,969.1269917,1870.433322,0,0,,5872.918846,OK,6982.597793,OK,,0,0,4315.173994,2487.997855,179.4259436 -2033,5686.782132,0.000000,0.000000,4135.968699,2418.968910,169.437109,929.127739,1791.204385,0.000000,0.000000,,2033,3588.57855,0,0,1900.995204,1634.113247,53.47009884,0,0,0,0,,2033,2359.303189,0,0,2425.20109,896.7879624,126.1768967,959.1835906,1883.071121,0,0,,2033,5947.881739,0,0,4326.196294,2530.901209,179.6469956,959.1835906,1883.071121,0,0,,5947.881739,OK,7036.744498,OK,,0,0,4326.196294,2530.901209,179.6469956 -2034,5742.117705,0.000000,0.000000,4134.137331,2453.413318,168.989571,917.564254,1797.426713,0.000000,0.000000,,2034,3643.107634,0,0,1920.603553,1668.821553,53.68252806,0,0,0,0,,2034,2379.884099,0,0,2416.056731,905.2615159,126.1593832,949.1253403,1895.446106,0,0,,2034,6022.991733,0,0,4336.660284,2574.083069,179.8419112,949.1253403,1895.446106,0,0,,6022.991733,OK,7090.585264,OK,,0,0,4336.660284,2574.083069,179.8419112 -2035,5797.172386,0.000000,0.000000,4131.688128,2487.917114,168.517563,905.944819,1803.351712,0.000000,0.000000,,2035,3697.846005,0,0,1940.043003,1703.914628,53.88837426,0,0,0,0,,2035,2400.54495,0,0,2406.643403,913.6903199,126.127788,939.0099502,1907.622983,0,0,,2035,6098.390955,0,0,4346.686406,2617.604947,180.0161622,939.0099502,1907.622983,0,0,,6098.390955,OK,7144.307516,OK,,0,0,4346.686406,2617.604947,180.0161622 -2036,5851.928792,0.000000,0.000000,4128.620937,2522.476274,168.021258,894.308497,1808.978518,0.000000,0.000000,,2036,3752.778637,0,0,1959.298254,1739.392269,54.08811338,0,0,0,0,,2036,2421.320577,0,0,2396.999023,922.0879716,126.0826537,928.880714,1919.612957,0,0,,2036,6174.099214,0,0,4356.297277,2661.480241,180.1707671,928.880714,1919.612957,0,0,,6174.099214,OK,7197.948285,OK,,0,0,4356.297277,2661.480241,180.1707671 -2037,5906.363303,0.000000,0.000000,4124.935604,2557.086772,167.500830,882.694356,1814.306271,0.000000,0.000000,,2037,3807.885399,0,0,1978.349093,1775.254749,54.28155652,0,0,0,0,,2037,2442.208296,0,0,2387.137179,930.4566602,126.0237225,918.7685199,1931.425572,0,0,,2037,6250.093695,0,0,4365.486273,2705.711409,180.305279,918.7685199,1931.425572,0,0,,6250.093695,OK,7251.50296,OK,,0,0,4365.486273,2705.711409,180.305279 -2038,5960.447861,0.000000,0.000000,4120.631976,2591.744581,166.956453,871.141461,1819.334109,0.000000,0.000000,,2038,3863.236668,0,0,1997.237899,1811.529068,54.46970127,0,0,0,0,,2038,2463.193842,0,0,2377.074152,938.808656,125.9523568,908.7037403,1943.123544,0,0,,2038,6326.43051,0,0,4374.312052,2750.337724,180.4220581,908.7037403,1943.123544,0,0,,6326.43051,OK,7305.071833,OK,,0,0,4374.312052,2750.337724,180.4220581 -2039,6014.150757,0.000000,0.000000,4115.709897,2626.445677,166.388301,859.688878,1824.061172,0.000000,0.000000,,2039,3918.924338,0,0,2016.021053,1848.249693,54.65359172,0,0,0,0,,2039,2484.247303,0,0,2366.817481,947.1541418,125.8700196,898.7126543,1954.781356,0,0,,2039,6403.171641,0,0,4382.838534,2795.403835,180.5236113,898.7126543,1954.781356,0,0,,6403.171641,OK,7358.765981,OK,,0,0,4382.838534,2795.403835,180.5236113 -2040,6067.440852,0.000000,0.000000,4110.169215,2661.186034,165.796548,848.375673,1828.486598,0.000000,0.000000,,2040,3975.015613,0,0,2034.736423,1885.445105,54.83408448,0,0,0,0,,2040,2505.351097,0,0,2356.379354,955.5018124,125.777911,888.8254645,1966.455776,0,0,,2040,6480.36671,0,0,4391.115777,2840.946918,180.6119955,888.8254645,1966.455776,0,0,,6480.36671,OK,7412.67469,OK,,0,0,4391.115777,2840.946918,180.6119955 -2041,6111.834509,0.000000,0.000000,4104.009776,2695.961626,165.181368,837.240910,1832.609525,0.000000,0.000000,,2041,4031.523079,0,0,2053.384034,1923.127398,55.01164649,0,0,0,0,,2041,2517.456328,0,0,2345.787956,963.8589413,125.6767319,879.0846097,1978.167765,0,0,,2041,6548.979406,0,0,4399.17199,2886.986339,180.6883784,879.0846097,1978.167765,0,0,,6548.979406,OK,7466.846707,OK,,0,0,4399.17199,2886.986339,180.6883784 -2042,6155.906047,0.000000,0.000000,4097.231425,2730.768427,164.542934,826.323658,1836.429093,0.000000,0.000000,,2042,4088.431375,0,0,2071.941667,1961.303113,55.1865946,0,0,0,0,,2042,2529.745196,0,0,2335.075915,972.2318521,125.5669182,869.5336649,1989.919252,0,0,,2042,6618.17657,0,0,4407.017582,2933.534965,180.7535128,869.5336649,1989.919252,0,0,,6618.17657,OK,7521.30606,OK,,0,0,4407.017582,2933.534965,180.7535128 -2043,6199.636056,0.000000,0.000000,4089.834010,2765.602412,163.881420,815.662980,1839.944439,0.000000,0.000000,,2043,4145.742258,0,0,2090.394574,1999.988309,55.35937538,0,0,0,0,,2043,2542.241471,0,0,2324.26514,980.6257592,125.4489885,860.2063437,2001.721076,0,0,,2043,6687.98373,0,0,4414.659714,2980.614068,180.8083639,860.2063437,2001.721076,0,0,,6687.98373,OK,7576.082146,OK,,0,0,4414.659714,2980.614068,180.8083639 -2044,6243.003700,0.000000,0.000000,4081.817376,2800.459554,163.197001,805.297943,1843.154704,0.000000,0.000000,,2044,4203.449136,0,0,2108.719721,2039.199038,55.53037677,0,0,0,0,,2044,2554.970595,0,0,2313.377108,989.0445981,125.3233537,851.1350603,2013.577468,0,0,,2044,6758.419731,0,0,4422.096829,3028.243636,180.8537305,851.1350603,2013.577468,0,0,,6758.419731,OK,7631.194195,OK,,0,0,4422.096829,3028.243636,180.8537305 -2045,6285.986042,0.000000,0.000000,4073.181370,2835.335830,162.489849,795.267613,1846.059024,0.000000,0.000000,,2045,4261.536306,0,0,2126.888333,2078.948137,55.69983669,0,0,0,0,,2045,2567.958233,0,0,2302.437549,997.4904785,125.1903132,842.3573661,2025.486309,0,0,,2045,6829.49454,0,0,4429.325882,3076.438616,180.8901499,842.3573661,2025.486309,0,0,,6829.49454,OK,7686.654647,OK,,0,0,4429.325882,3076.438616,180.8901499 -2046,6328.557075,0.000000,0.000000,4063.925837,2870.227211,161.760140,785.611056,1848.656540,0.000000,0.000000,,2046,4319.985715,0,0,2144.874349,2119.243476,55.86788883,0,0,0,0,,2046,2581.226331,0,0,2291.477994,1005.965672,125.0501136,833.9166619,2037.449844,0,0,,2046,6901.212046,0,0,4436.352343,3125.209148,180.9180025,833.9166619,2037.449844,0,0,,6901.212046,OK,7742.479494,OK,,0,0,4436.352343,3125.209148,180.9180025 -2047,6370.689262,0.000000,0.000000,4054.050624,2905.129674,161.008047,776.367336,1850.946389,0.000000,0.000000,,2047,4378.763635,0,0,2162.640269,2160.088934,56.03443203,0,0,0,0,,2047,2594.799188,0,0,2280.535707,1014.468917,124.9028425,825.8641286,2049.455739,0,0,,2047,6973.562822,0,0,4443.175976,3174.557851,180.9372746,825.8641286,2049.455739,0,0,,6973.562822,OK,7798.671102,OK,,0,0,4443.175976,3174.557851,180.9372746 -2048,6412.354174,0.000000,0.000000,4043.555577,2940.039192,160.233743,767.575521,1852.927710,0.000000,0.000000,,2048,4437.813638,0,0,2180.127308,2201.48722,56.19911026,0,0,0,0,,2048,2608.707158,0,0,2269.650931,1022.993805,124.7483692,818.2557656,2061.46613,0,0,,2048,7046.520797,0,0,4449.778239,3224.481025,180.9474795,818.2557656,2061.46613,0,0,,7046.520797,OK,7855.206744,OK,,0,0,4449.778239,3224.481025,180.9474795 -2049,6453.521053,0.000000,0.000000,4032.440543,2974.951740,159.437403,759.274676,1854.599643,0.000000,0.000000,,2049,4497.06503,0,0,2197.264933,2243.438704,56.36139277,0,0,0,0,,2049,2622.98179,0,0,2258.86788,1031.531213,124.5864188,811.1520472,2073.430356,0,0,,2049,7120.04682,0,0,4456.132814,3274.969917,180.9478115,811.1520472,2073.430356,0,0,,7120.04682,OK,7912.050542,OK,,0,0,4456.132814,3274.969917,180.9478115 -2050,6494.155356,0.000000,0.000000,4020.705367,3009.863292,158.619201,751.503867,1855.961325,0.000000,0.000000,,2050,4556.44706,0,0,2213.983886,2285.942401,56.52077363,0,0,0,0,,2050,2637.649778,0,0,2248.232269,1040.07348,124.4166929,804.6121038,2085.304566,0,0,,2050,7194.096838,0,0,4462.216155,3326.01588,180.9374665,804.6121038,2085.304566,0,0,,7194.096838,OK,7969.169502,OK,,0,0,4462.216155,3326.01588,180.9374665 -2051,6526.721591,0.000000,0.000000,4008.349896,3044.769823,157.779310,744.302159,1857.011896,0.000000,0.000000,,2051,4615.907999,0,0,2230.23105,2328.999915,56.67703345,0,0,0,0,,2051,2644.386604,0,0,2237.783776,1048.618857,124.2390633,798.6837884,2097.072338,0,0,,2051,7260.294603,0,0,4468.014827,3377.618772,180.9160968,798.6837884,2097.072338,0,0,,7260.294603,OK,8026.549695,OK,,0,0,4468.014827,3377.618772,180.9160968 -2052,6558.862251,0.000000,0.000000,3995.373976,3079.667306,156.917904,737.708618,1857.750494,0.000000,0.000000,,2052,4675.389258,0,0,2245.950381,2372.608997,56.82987998,0,0,0,0,,2052,2651.683281,0,0,2227.567843,1057.165868,124.053287,793.4183438,2108.719108,0,0,,2052,7327.072539,0,0,4473.518224,3429.774865,180.883167,793.4183438,2108.719108,0,0,,7327.072539,OK,8084.176255,OK,,0,0,4473.518224,3429.774865,180.883167 -2053,6590.546779,0.000000,0.000000,3981.777453,3114.551716,156.035158,731.762311,1858.176258,0.000000,0.000000,,2053,4734.8015,0,0,2261.063698,2416.759185,56.9786161,0,0,0,0,,2053,2659.574804,0,0,2217.644219,1065.707537,123.8587659,788.8827401,2120.205305,0,0,,2053,7394.376304,0,0,4478.707918,3482.466723,180.837382,788.8827401,2120.205305,0,0,,7394.376304,OK,8142.012022,OK,,0,0,4478.707918,3482.466723,180.837382 -2054,6621.741211,0.000000,0.000000,3967.560173,3149.419027,155.131245,726.502302,1858.288326,0.000000,0.000000,,2054,4794.044398,0,0,2275.485649,2461.436326,57.12242284,0,0,0,0,,2054,2668.094768,0,0,2208.078569,1074.235813,123.6547663,785.1492737,2131.48687,0,0,,2054,7462.139166,0,0,4483.564218,3535.67214,180.7771891,785.1492737,2131.48687,0,0,,7462.139166,OK,8200.013546,OK,,0,0,4483.564218,3535.67214,180.7771891 -2055,6652.409150,0.000000,0.000000,3952.721983,3184.265214,154.206338,721.967659,1858.085838,0.000000,0.000000,,2055,4853.024981,0,0,2289.135672,2506.628697,57.26061143,0,0,0,0,,2055,2677.269776,0,0,2198.931741,1082.744921,123.4406503,782.2840756,2142.530145,0,0,,2055,7530.294757,0,0,4488.067413,3589.373617,180.7012618,782.2840756,2142.530145,0,0,,7530.294757,OK,8258.142292,OK,,0,0,4488.067413,3589.373617,180.7012618 -2056,6682.513018,0.000000,0.000000,3937.262728,3219.086252,153.260612,718.197446,1857.567931,0.000000,0.000000,,2056,4911.676018,0,0,2301.950355,2552.332817,57.39284651,0,0,0,0,,2056,2687.118519,0,0,2190.254489,1091.233417,123.2161092,780.3446768,2153.318166,0,0,,2056,7598.794537,0,0,4492.204844,3643.566234,180.6089557,780.3446768,2153.318166,0,0,,7598.794537,OK,8316.380034,OK,,0,0,4492.204844,3643.566234,180.6089557 -2057,6712.014512,0.000000,0.000000,3921.182255,3253.878113,152.294241,715.230729,1856.733745,0.000000,0.000000,,2057,4969.932417,0,0,2313.867309,2598.546228,57.51888059,0,0,0,0,,2057,2697.653448,0,0,2182.090741,1099.702266,122.9808624,779.3775914,2163.84702,0,0,,2057,7667.585865,0,0,4495.958049,3698.248494,180.499743,779.3775914,2163.84702,0,0,,7667.585865,OK,8374.706286,OK,,0,0,4495.958049,3698.248494,180.499743 -2058,6740.874312,0.000000,0.000000,3904.480411,3288.636773,151.307399,713.106575,1855.582418,0.000000,0.000000,,2058,5027.705739,0,0,2324.808083,2645.259407,57.63824853,0,0,0,0,,2058,2708.884685,0,0,2174.486214,1108.151756,122.7343587,779.4241202,2174.114667,0,0,,2058,7736.590424,0,0,4499.294297,3753.411163,180.3726072,779.4241202,2174.114667,0,0,,7736.590424,OK,8433.078068,OK,,0,0,4499.294297,3753.411163,180.3726072 -2059,6769.053409,0.000000,0.000000,3887.157041,3323.358207,150.300259,711.864048,1854.113089,0.000000,0.000000,,2059,5084.902406,0,0,2334.690356,2692.461575,57.75047442,0,0,0,0,,2059,2720.819706,0,0,2167.484573,1116.583168,122.4759891,780.5194464,2184.125519,0,0,,2059,7805.722112,0,0,4502.17493,3809.044744,180.2264635,780.5194464,2184.125519,0,0,,7805.722112,OK,8491.446137,OK,,0,0,4502.17493,3809.044744,180.2264635 -2060,6796.513173,0.000000,0.000000,3869.211991,3358.038387,149.272995,711.542216,1852.324897,0.000000,0.000000,,2060,5141.437408,0,0,2343.437538,2740.144677,57.85519318,0,0,0,0,,2060,2733.466472,0,0,2161.130313,1124.99882,122.2052694,782.7019689,2193.8851,0,0,,2060,7874.903881,0,0,4504.567851,3865.143497,180.0604626,782.7019689,2193.8851,0,0,,7874.903881,OK,8549.771811,OK,,0,0,4504.567851,3865.143497,180.0604626 +2014,4417.454144,0,0,4053.298731,1783.757754,173.254108,1086.492157,1622.370389,0,0,,2014,0,0,0,0,0,0,0,0,0,0,,2014,4417.454144,0,0,4053.298731,1783.757754,173.2541075,1086.492157,1622.370389,0,0,,2014,4417.454144,0,0,4053.298731,1783.757754,173.2541075,1086.492157,1622.370389,0,0,,4417.454144,OK,6010.310593,OK,,0,0,4053.298731,1783.757754,173.2541075 +2015,4499.784719,0,0,4063.45897,1813.714359,173.110086,1083.167749,1629.340849,0,0,,2015,2691.672527,0,0,1555.817862,1087.237254,48.61741097,0,0,0,0,,2015,1808.112192,0,0,2507.641108,726.4771045,124.4926752,1083.167749,1629.340849,0,0,,2015,4499.784719,0,0,4063.45897,1813.714359,173.1100861,1083.167749,1629.340849,0,0,,4499.784719,OK,6050.283415,OK,,0,0,4063.45897,1813.714359,173.1100861 +2016,4566.459576,0,0,4072.722322,1846.401375,173.132753,1079.291643,1640.767842,0,0,,2016,2731.915396,0,0,1570.455246,1112.619677,48.8404723,0,0,0,0,,2016,1839.356252,0,0,2506.6318,735.8267173,124.5229295,1080.249856,1642.660098,0,0,,2016,4571.271648,0,0,4077.087047,1848.446394,173.3634018,1080.249856,1642.660098,0,0,,4571.271648,OK,6098.896843,OK,,0,0,4077.087047,1848.446394,173.3634018 +2017,4640.619484,0,0,4081.370608,1879.220242,173.127819,1074.6564,1651.913008,0,0,,2017,2774.122619,0,0,1586.266723,1138.766659,49.08923679,0,0,0,0,,2017,1878.29042,0,0,2505.660502,745.4262525,124.5954141,1076.962643,1656.505276,0,0,,2017,4652.41304,0,0,4091.927225,1884.192912,173.6846508,1076.962643,1656.505276,0,0,,4652.41304,OK,6149.804788,OK,,0,0,4091.927225,1884.192912,173.6846508 +2018,4714.592064,0,0,4089.403674,1912.166934,173.095459,1069.301088,1662.775487,0,0,,2018,2818.062644,0,0,1603.08799,1165.617014,49.35763983,0,0,0,0,,2018,1917.179235,0,0,2504.545678,755.2130253,124.6999231,1073.239006,1670.749799,0,0,,2018,4735.241879,0,0,4107.633668,1920.83004,174.057563,1073.239006,1670.749799,0,0,,4735.241879,OK,6202.521271,OK,,0,0,4107.633668,1920.83004,174.057563 +2019,4788.42902,0,0,4096.821366,1945.237426,173.035847,1063.264772,1673.354415,0,0,,2019,2863.367636,0,0,1620.65546,1193.075703,49.63647383,0,0,0,0,,2019,1955.930124,0,0,2503.025303,765.0841303,124.8208534,1068.964229,1685.194549,0,0,,2019,4819.29776,0,0,4123.680762,1958.159833,174.4573273,1068.964229,1685.194549,0,0,,4819.29776,OK,6256.297923,OK,,0,0,4123.680762,1958.159833,174.4573273 +2020,4857.017901,0,0,4103.623531,1978.427692,172.949155,1056.586516,1683.648933,0,0,,2020,2909.756685,0,0,1638.763778,1221.0741,49.9188066,0,0,0,0,,2020,1989.274751,0,0,2500.911707,774.960199,124.9464381,1064.063361,1699.68933,0,0,,2020,4899.031435,0,0,4139.675485,1996.034299,174.8652447,1064.063361,1699.68933,0,0,,4899.031435,OK,6310.575029,OK,,0,0,4139.675485,1996.034299,174.8652447 +2021,4928.700426,0,0,4109.810015,2011.733707,172.835559,1049.305389,1693.658179,0,0,,2021,2957.140531,0,0,1657.353153,1249.584712,50.20266564,0,0,0,0,,2021,2025.607502,0,0,2498.15807,784.8288402,125.0737397,1058.543607,1714.190245,0,0,,2021,4982.748032,0,0,4155.511223,2034.413552,175.2764053,1058.543607,1714.190245,0,0,,4982.748032,OK,6365.201181,OK,,0,0,4155.511223,2034.413552,175.2764053 +2022,4995.148726,0,0,4115.380664,2045.151444,172.695231,1041.460454,1703.381292,0,0,,2022,3005.558537,0,0,1676.442203,1278.627319,50.48901573,0,0,0,0,,2022,2056.575224,0,0,2494.815624,794.7005319,125.2043136,1052.464224,1728.720843,0,0,,2022,5062.133761,0,0,4171.257827,2073.327851,175.6933293,1052.464224,1728.720843,0,0,,5062.133761,OK,6420.279007,OK,,0,0,4171.257827,2073.327851,175.6933293 +2023,5061.464606,0,0,4120.335323,2078.676878,172.528346,1033.090778,1712.817409,0,0,,2023,3055.000226,0,0,1695.988239,1308.234706,50.77728129,0,0,0,0,,2023,2087.34857,0,0,2490.91558,804.5444981,125.3361443,1045.865086,1743.275366,0,0,,2023,5142.348796,0,0,4186.903819,2112.779204,176.1134256,1045.865086,1743.275366,0,0,,5142.348796,OK,6475.796449,OK,,0,0,4186.903819,2112.779204,176.1134256 +2024,5127.597848,0,0,4124.673841,2112.305984,172.335078,1024.235427,1721.965671,0,0,,2024,3105.482164,0,0,1715.95722,1338.457469,51.0674749,0,0,0,0,,2024,2117.919318,0,0,2486.518986,814.327813,125.4678468,1038.799279,1757.862608,0,0,,2024,5223.401482,0,0,4202.476206,2152.785283,176.5353217,1038.799279,1757.862608,0,0,,5223.401482,OK,6531.79681,OK,,0,0,4202.476206,2152.785283,176.5353217 +2025,5193.508617,0,0,4128.396061,2146.034735,172.115601,1014.933467,1730.825215,0,0,,2025,3156.982113,0,0,1736.30069,1369.322356,51.35906558,0,0,0,0,,2025,2148.28776,0,0,2481.668334,824.0230497,125.5976304,1031.312401,1772.474561,0,0,,2025,5305.269873,0,0,4217.969024,2193.345406,176.956696,1031.312401,1772.474561,0,0,,5305.269873,OK,6588.271126,OK,,0,0,4217.969024,2193.345406,176.956696 +2026,5259.17796,0,0,4131.501832,2179.859107,171.870088,1005.223962,1739.39518,0,0,,2026,3209.473894,0,0,1756.984931,1400.837392,51.65157092,0,0,0,0,,2026,2178.460364,0,0,2476.375807,833.6197094,125.7241762,1023.435498,1787.105333,0,0,,2026,5387.934257,0,0,4233.360738,2234.457102,177.3757472,1023.435498,1787.105333,0,0,,5387.934257,OK,6645.193586,OK,,0,0,4233.360738,2234.457102,177.3757472 +2027,5324.597693,0,0,4133.990998,2213.775072,171.598714,995.14598,1747.674706,0,0,,2027,3262.830135,0,0,1777.926869,1432.960392,51.94287442,0,0,0,0,,2027,2208.445513,0,0,2470.618702,843.1078415,125.8444537,1015.187381,1801.700727,0,0,,2027,5471.275648,0,0,4248.545571,2276.068233,177.7873281,1015.187381,1801.700727,0,0,,5471.275648,OK,6702.401132,OK,,0,0,4248.545571,2276.068233,177.7873281 +2028,5389.752123,0,0,4135.863407,2247.778607,171.301651,984.738586,1755.66293,0,0,,2028,3316.80646,0,0,1798.97037,1465.607102,52.22898821,0,0,0,0,,2028,2238.249341,0,0,2464.367985,852.4640542,125.9531411,1006.588303,1816.149364,0,0,,2028,5555.0558,0,0,4263.338354,2318.071156,178.1821293,1006.588303,1816.149364,0,0,,5555.0558,OK,6759.59164,OK,,0,0,4263.338354,2318.071156,178.1821293 +2029,5454.627086,0,0,4137.118904,2281.865684,170.979075,974.040846,1763.358992,0,0,,2029,3371.096352,0,0,1819.925091,1498.666242,52.50501923,0,0,0,0,,2029,2267.87351,0,0,2457.585004,861.6638492,126.0439462,997.6555111,1830.312127,0,0,,2029,5638.969862,0,0,4277.510095,2360.330091,178.5489654,997.6555111,1830.312127,0,0,,5638.969862,OK,6816.389151,OK,,0,0,4277.510095,2360.330091,178.5489654 +2030,5519.206321,0,0,4137.757336,2316.032279,170.631159,963.091825,1770.762029,0,0,,2030,3425.47083,0,0,1840.646745,1532.05653,52.76755511,0,0,0,0,,2030,2297.318791,0,0,2450.253851,870.6936173,126.1124574,988.4131928,1844.092186,0,0,,2030,5722.789621,0,0,4290.900596,2402.750147,178.8800126,988.4131928,1844.092186,0,0,,5722.789621,OK,6872.530756,OK,,0,0,4290.900596,2402.750147,178.8800126 +2031,5575.316947,0,0,4137.778548,2350.274365,170.258076,951.93059,1777.871181,0,0,,2031,3479.827834,0,0,1861.061269,1565.751424,53.01514046,0,0,0,0,,2031,2318.095032,0,0,2442.379598,879.5453505,126.1566014,978.8893832,1857.456172,0,0,,2031,5797.922866,0,0,4303.440867,2445.296775,179.1717419,978.8893832,1857.456172,0,0,,5797.922866,OK,6927.909384,OK,,0,0,4303.440867,2445.296775,179.1717419 +2032,5631.178821,0,0,4137.182387,2384.587918,169.860002,940.596206,1784.685587,0,0,,2032,3534.183445,0,0,1881.168787,1599.765989,53.24866898,0,0,0,0,,2032,2338.735401,0,0,2434.005207,888.2318659,126.1772746,969.1269917,1870.433322,0,0,,2032,5872.918846,0,0,4315.173994,2487.997855,179.4259436,969.1269917,1870.433322,0,0,,5872.918846,OK,6982.597793,OK,,0,0,4315.173994,2487.997855,179.4259436 +2033,5686.782132,0,0,4135.968699,2418.96891,169.437109,929.127739,1791.204385,0,0,,2033,3588.57855,0,0,1900.995204,1634.113247,53.47009884,0,0,0,0,,2033,2359.303189,0,0,2425.20109,896.7879624,126.1768967,959.1835906,1883.071121,0,0,,2033,5947.881739,0,0,4326.196294,2530.901209,179.6469956,959.1835906,1883.071121,0,0,,5947.881739,OK,7036.744498,OK,,0,0,4326.196294,2530.901209,179.6469956 +2034,5742.117705,0,0,4134.137331,2453.413318,168.989571,917.564254,1797.426713,0,0,,2034,3643.107634,0,0,1920.603553,1668.821553,53.68252806,0,0,0,0,,2034,2379.884099,0,0,2416.056731,905.2615159,126.1593832,949.1253403,1895.446106,0,0,,2034,6022.991733,0,0,4336.660284,2574.083069,179.8419112,949.1253403,1895.446106,0,0,,6022.991733,OK,7090.585264,OK,,0,0,4336.660284,2574.083069,179.8419112 +2035,5797.172386,0,0,4131.688128,2487.917114,168.517563,905.944819,1803.351712,0,0,,2035,3697.846005,0,0,1940.043003,1703.914628,53.88837426,0,0,0,0,,2035,2400.54495,0,0,2406.643403,913.6903199,126.127788,939.0099502,1907.622983,0,0,,2035,6098.390955,0,0,4346.686406,2617.604947,180.0161622,939.0099502,1907.622983,0,0,,6098.390955,OK,7144.307516,OK,,0,0,4346.686406,2617.604947,180.0161622 +2036,5851.928792,0,0,4128.620937,2522.476274,168.021258,894.308497,1808.978518,0,0,,2036,3752.778637,0,0,1959.298254,1739.392269,54.08811338,0,0,0,0,,2036,2421.320577,0,0,2396.999023,922.0879716,126.0826537,928.880714,1919.612957,0,0,,2036,6174.099214,0,0,4356.297277,2661.480241,180.1707671,928.880714,1919.612957,0,0,,6174.099214,OK,7197.948285,OK,,0,0,4356.297277,2661.480241,180.1707671 +2037,5906.363303,0,0,4124.935604,2557.086772,167.50083,882.694356,1814.306271,0,0,,2037,3807.885399,0,0,1978.349093,1775.254749,54.28155652,0,0,0,0,,2037,2442.208296,0,0,2387.137179,930.4566602,126.0237225,918.7685199,1931.425572,0,0,,2037,6250.093695,0,0,4365.486273,2705.711409,180.305279,918.7685199,1931.425572,0,0,,6250.093695,OK,7251.50296,OK,,0,0,4365.486273,2705.711409,180.305279 +2038,5960.447861,0,0,4120.631976,2591.744581,166.956453,871.141461,1819.334109,0,0,,2038,3863.236668,0,0,1997.237899,1811.529068,54.46970127,0,0,0,0,,2038,2463.193842,0,0,2377.074152,938.808656,125.9523568,908.7037403,1943.123544,0,0,,2038,6326.43051,0,0,4374.312052,2750.337724,180.4220581,908.7037403,1943.123544,0,0,,6326.43051,OK,7305.071833,OK,,0,0,4374.312052,2750.337724,180.4220581 +2039,6014.150757,0,0,4115.709897,2626.445677,166.388301,859.688878,1824.061172,0,0,,2039,3918.924338,0,0,2016.021053,1848.249693,54.65359172,0,0,0,0,,2039,2484.247303,0,0,2366.817481,947.1541418,125.8700196,898.7126543,1954.781356,0,0,,2039,6403.171641,0,0,4382.838534,2795.403835,180.5236113,898.7126543,1954.781356,0,0,,6403.171641,OK,7358.765981,OK,,0,0,4382.838534,2795.403835,180.5236113 +2040,6067.440852,0,0,4110.169215,2661.186034,165.796548,848.375673,1828.486598,0,0,,2040,3975.015613,0,0,2034.736423,1885.445105,54.83408448,0,0,0,0,,2040,2505.351097,0,0,2356.379354,955.5018124,125.777911,888.8254645,1966.455776,0,0,,2040,6480.36671,0,0,4391.115777,2840.946918,180.6119955,888.8254645,1966.455776,0,0,,6480.36671,OK,7412.67469,OK,,0,0,4391.115777,2840.946918,180.6119955 +2041,6111.834509,0,0,4104.009776,2695.961626,165.181368,837.24091,1832.609525,0,0,,2041,4031.523079,0,0,2053.384034,1923.127398,55.01164649,0,0,0,0,,2041,2517.456328,0,0,2345.787956,963.8589413,125.6767319,879.0846097,1978.167765,0,0,,2041,6548.979406,0,0,4399.17199,2886.986339,180.6883784,879.0846097,1978.167765,0,0,,6548.979406,OK,7466.846707,OK,,0,0,4399.17199,2886.986339,180.6883784 +2042,6155.906047,0,0,4097.231425,2730.768427,164.542934,826.323658,1836.429093,0,0,,2042,4088.431375,0,0,2071.941667,1961.303113,55.1865946,0,0,0,0,,2042,2529.745196,0,0,2335.075915,972.2318521,125.5669182,869.5336649,1989.919252,0,0,,2042,6618.17657,0,0,4407.017582,2933.534965,180.7535128,869.5336649,1989.919252,0,0,,6618.17657,OK,7521.30606,OK,,0,0,4407.017582,2933.534965,180.7535128 +2043,6199.636056,0,0,4089.83401,2765.602412,163.88142,815.66298,1839.944439,0,0,,2043,4145.742258,0,0,2090.394574,1999.988309,55.35937538,0,0,0,0,,2043,2542.241471,0,0,2324.26514,980.6257592,125.4489885,860.2063437,2001.721076,0,0,,2043,6687.98373,0,0,4414.659714,2980.614068,180.8083639,860.2063437,2001.721076,0,0,,6687.98373,OK,7576.082146,OK,,0,0,4414.659714,2980.614068,180.8083639 +2044,6243.0037,0,0,4081.817376,2800.459554,163.197001,805.297943,1843.154704,0,0,,2044,4203.449136,0,0,2108.719721,2039.199038,55.53037677,0,0,0,0,,2044,2554.970595,0,0,2313.377108,989.0445981,125.3233537,851.1350603,2013.577468,0,0,,2044,6758.419731,0,0,4422.096829,3028.243636,180.8537305,851.1350603,2013.577468,0,0,,6758.419731,OK,7631.194195,OK,,0,0,4422.096829,3028.243636,180.8537305 +2045,6285.986042,0,0,4073.18137,2835.33583,162.489849,795.267613,1846.059024,0,0,,2045,4261.536306,0,0,2126.888333,2078.948137,55.69983669,0,0,0,0,,2045,2567.958233,0,0,2302.437549,997.4904785,125.1903132,842.3573661,2025.486309,0,0,,2045,6829.49454,0,0,4429.325882,3076.438616,180.8901499,842.3573661,2025.486309,0,0,,6829.49454,OK,7686.654647,OK,,0,0,4429.325882,3076.438616,180.8901499 +2046,6328.557075,0,0,4063.925837,2870.227211,161.76014,785.611056,1848.65654,0,0,,2046,4319.985715,0,0,2144.874349,2119.243476,55.86788883,0,0,0,0,,2046,2581.226331,0,0,2291.477994,1005.965672,125.0501136,833.9166619,2037.449844,0,0,,2046,6901.212046,0,0,4436.352343,3125.209148,180.9180025,833.9166619,2037.449844,0,0,,6901.212046,OK,7742.479494,OK,,0,0,4436.352343,3125.209148,180.9180025 +2047,6370.689262,0,0,4054.050624,2905.129674,161.008047,776.367336,1850.946389,0,0,,2047,4378.763635,0,0,2162.640269,2160.088934,56.03443203,0,0,0,0,,2047,2594.799188,0,0,2280.535707,1014.468917,124.9028425,825.8641286,2049.455739,0,0,,2047,6973.562822,0,0,4443.175976,3174.557851,180.9372746,825.8641286,2049.455739,0,0,,6973.562822,OK,7798.671102,OK,,0,0,4443.175976,3174.557851,180.9372746 +2048,6412.354174,0,0,4043.555577,2940.039192,160.233743,767.575521,1852.92771,0,0,,2048,4437.813638,0,0,2180.127308,2201.48722,56.19911026,0,0,0,0,,2048,2608.707158,0,0,2269.650931,1022.993805,124.7483692,818.2557656,2061.46613,0,0,,2048,7046.520797,0,0,4449.778239,3224.481025,180.9474795,818.2557656,2061.46613,0,0,,7046.520797,OK,7855.206744,OK,,0,0,4449.778239,3224.481025,180.9474795 +2049,6453.521053,0,0,4032.440543,2974.95174,159.437403,759.274676,1854.599643,0,0,,2049,4497.06503,0,0,2197.264933,2243.438704,56.36139277,0,0,0,0,,2049,2622.98179,0,0,2258.86788,1031.531213,124.5864188,811.1520472,2073.430356,0,0,,2049,7120.04682,0,0,4456.132814,3274.969917,180.9478115,811.1520472,2073.430356,0,0,,7120.04682,OK,7912.050542,OK,,0,0,4456.132814,3274.969917,180.9478115 +2050,6494.155356,0,0,4020.705367,3009.863292,158.619201,751.503867,1855.961325,0,0,,2050,4556.44706,0,0,2213.983886,2285.942401,56.52077363,0,0,0,0,,2050,2637.649778,0,0,2248.232269,1040.07348,124.4166929,804.6121038,2085.304566,0,0,,2050,7194.096838,0,0,4462.216155,3326.01588,180.9374665,804.6121038,2085.304566,0,0,,7194.096838,OK,7969.169502,OK,,0,0,4462.216155,3326.01588,180.9374665 +2051,6526.721591,0,0,4008.349896,3044.769823,157.77931,744.302159,1857.011896,0,0,,2051,4615.907999,0,0,2230.23105,2328.999915,56.67703345,0,0,0,0,,2051,2644.386604,0,0,2237.783776,1048.618857,124.2390633,798.6837884,2097.072338,0,0,,2051,7260.294603,0,0,4468.014827,3377.618772,180.9160968,798.6837884,2097.072338,0,0,,7260.294603,OK,8026.549695,OK,,0,0,4468.014827,3377.618772,180.9160968 +2052,6558.862251,0,0,3995.373976,3079.667306,156.917904,737.708618,1857.750494,0,0,,2052,4675.389258,0,0,2245.950381,2372.608997,56.82987998,0,0,0,0,,2052,2651.683281,0,0,2227.567843,1057.165868,124.053287,793.4183438,2108.719108,0,0,,2052,7327.072539,0,0,4473.518224,3429.774865,180.883167,793.4183438,2108.719108,0,0,,7327.072539,OK,8084.176255,OK,,0,0,4473.518224,3429.774865,180.883167 +2053,6590.546779,0,0,3981.777453,3114.551716,156.035158,731.762311,1858.176258,0,0,,2053,4734.8015,0,0,2261.063698,2416.759185,56.9786161,0,0,0,0,,2053,2659.574804,0,0,2217.644219,1065.707537,123.8587659,788.8827401,2120.205305,0,0,,2053,7394.376304,0,0,4478.707918,3482.466723,180.837382,788.8827401,2120.205305,0,0,,7394.376304,OK,8142.012022,OK,,0,0,4478.707918,3482.466723,180.837382 +2054,6621.741211,0,0,3967.560173,3149.419027,155.131245,726.502302,1858.288326,0,0,,2054,4794.044398,0,0,2275.485649,2461.436326,57.12242284,0,0,0,0,,2054,2668.094768,0,0,2208.078569,1074.235813,123.6547663,785.1492737,2131.48687,0,0,,2054,7462.139166,0,0,4483.564218,3535.67214,180.7771891,785.1492737,2131.48687,0,0,,7462.139166,OK,8200.013546,OK,,0,0,4483.564218,3535.67214,180.7771891 +2055,6652.40915,0,0,3952.721983,3184.265214,154.206338,721.967659,1858.085838,0,0,,2055,4853.024981,0,0,2289.135672,2506.628697,57.26061143,0,0,0,0,,2055,2677.269776,0,0,2198.931741,1082.744921,123.4406503,782.2840756,2142.530145,0,0,,2055,7530.294757,0,0,4488.067413,3589.373617,180.7012618,782.2840756,2142.530145,0,0,,7530.294757,OK,8258.142292,OK,,0,0,4488.067413,3589.373617,180.7012618 +2056,6682.513018,0,0,3937.262728,3219.086252,153.260612,718.197446,1857.567931,0,0,,2056,4911.676018,0,0,2301.950355,2552.332817,57.39284651,0,0,0,0,,2056,2687.118519,0,0,2190.254489,1091.233417,123.2161092,780.3446768,2153.318166,0,0,,2056,7598.794537,0,0,4492.204844,3643.566234,180.6089557,780.3446768,2153.318166,0,0,,7598.794537,OK,8316.380034,OK,,0,0,4492.204844,3643.566234,180.6089557 +2057,6712.014512,0,0,3921.182255,3253.878113,152.294241,715.230729,1856.733745,0,0,,2057,4969.932417,0,0,2313.867309,2598.546228,57.51888059,0,0,0,0,,2057,2697.653448,0,0,2182.090741,1099.702266,122.9808624,779.3775914,2163.84702,0,0,,2057,7667.585865,0,0,4495.958049,3698.248494,180.499743,779.3775914,2163.84702,0,0,,7667.585865,OK,8374.706286,OK,,0,0,4495.958049,3698.248494,180.499743 +2058,6740.874312,0,0,3904.480411,3288.636773,151.307399,713.106575,1855.582418,0,0,,2058,5027.705739,0,0,2324.808083,2645.259407,57.63824853,0,0,0,0,,2058,2708.884685,0,0,2174.486214,1108.151756,122.7343587,779.4241202,2174.114667,0,0,,2058,7736.590424,0,0,4499.294297,3753.411163,180.3726072,779.4241202,2174.114667,0,0,,7736.590424,OK,8433.078068,OK,,0,0,4499.294297,3753.411163,180.3726072 +2059,6769.053409,0,0,3887.157041,3323.358207,150.300259,711.864048,1854.113089,0,0,,2059,5084.902406,0,0,2334.690356,2692.461575,57.75047442,0,0,0,0,,2059,2720.819706,0,0,2167.484573,1116.583168,122.4759891,780.5194464,2184.125519,0,0,,2059,7805.722112,0,0,4502.17493,3809.044744,180.2264635,780.5194464,2184.125519,0,0,,7805.722112,OK,8491.446137,OK,,0,0,4502.17493,3809.044744,180.2264635 +2060,6796.513173,0,0,3869.211991,3358.038387,149.272995,711.542216,1852.324897,0,0,,2060,5141.437408,0,0,2343.437538,2740.144677,57.85519318,0,0,0,0,,2060,2733.466472,0,0,2161.130313,1124.99882,122.2052694,782.7019689,2193.8851,0,0,,2060,7874.903881,0,0,4504.567851,3865.143497,180.0604626,782.7019689,2193.8851,0,0,,7874.903881,OK,8549.771811,OK,,0,0,4504.567851,3865.143497,180.0604626 ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, Table 4: Total REF2 Cooking Heat Demand by Economic Development Status (TWh Therms),,,,,,,Table 5: Total REF1 Cooking Heat Demand by Economic Development Status (TWh Therms),,,,,,,,,,,,,,,"Table 6: Change in Cooking Heat Demand by MDC vs. LLDC Regions, REF1-REF2 (TWh Therms)",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, @@ -132,7 +132,7 @@ Table 4: Total REF2 Cooking Heat Demand by Economic Development Status (TWh Ther ,SOLUTION ,,,CONVENTIONAL,,,,,SOLUTION ,,,CONVENTIONAL,,,,,SOLUTION,,,,,CONVENTIONAL,,,,,EMISSION REDUCTIONS,,,SOLUTION ,,,,,CONVENTIONAL,,,,,EMISSION REDCUTIONS ,,,,,"Table 11(a): EMISSIONS ALLOCATION TO HEALTH & EDUCATION in LLDC, CleanCookstoves_cluster",,,,"Table 11(b): EMISSIONS ALLOCATION TO Education in LLDC, CleanCookstoves_cluster",,,"Table 11(c): EMISSIONS ALLOCATION TO Family Planning in LLDC, CleanCookstoves_cluster",,,,% Allocation to Education (Electricity), ,Additional Functional Units in REF2 vs REF1,Annual Functional Units Increase,Annual Implementation Units Increase + Replacement,Additional Functional Units in REF2 vs REF2,Annual Functional Units Increase,Change in TAM,Annual Implementation Units Increase + Replacement,,Additional Functional Units in REF2 vs REF1,Annual Functional Units Increase,Annual Implementation Units Increase + Replacement,Additional Functional Units in REF2 vs REF2,Annual Functional Units Increase,Change in TAM,Annual Implementation Units Increase + Replacement,,Avoided Emissions/ Million Metric Tons CO2,,,,,Avoided Emissions/ Million Metric Tons CO2,,,,,ALL Years,,,Avoided Emissions/ Million Metric Tons CO2,,,,,Avoided Emissions/ Million Metric Tons CO2,,,,,ALL Years,,,,,,,,,,,,,,,,ALL Years, ,TWh,TWh,TW,TWh,TWh,%,TW,,TWh,TWh,TW,TWh,TWh,%,TW,,Grid,Fuel,Other Direct,Indirect,,Grid,Fuel,Other Direct,Indirect,,Conv Total,Solution Total,,Grid,Fuel,Other Direct,Indirect,,Grid,Fuel,Other Direct,Indirect,,Conv Total,Solution Total,,,,,Conv Total,Solution Total,,Conv Total,Solution Total,,Conv Total,Solution Total,,,Conv Total,Solution Total -2014,,,,0,,,Not modeled TBD,,,,,0,,,Not modeled TBD,,,,,,,N,Y,N,N,,,,,N,N,N,N,,N,Y,N,N,,,,,,,2014,0,0,,0,0,,0,0,,,, +2014,,,,0,,,Not modeled TBD,,,,,0,,,Not modeled TBD,,,,,,,,0,,,,0,0,,,,,,,,0,,,,0,0,,,,2014,0,0,,0,0,,0,0,,,, 2015,,,,0,0,,,,,,,0,0,,,,,,,,,,0,,,,0,0,,,,,,,,0,,,,0,0,,,,2015,0,0,,0,0,,0,0,,,, 2016,,,,0.784635621,0.784635621,0.163055669,,,,,,0.973650785,0.973650785,0.20233504,,,,,,,,,1.440384454,,,,1.440384454,0,,,,,,,,1.787366537,,,,1.787366537,0,,,,2016,3.227750991,0,,0.893683269,0,,2.334067723,0,,,0.276874911, 2017,,,,1.914788151,1.130152529,0.162358856,,,,,,2.399983332,1.426332548,0.203499562,,,,,,,,,3.515046997,,,,3.515046997,0,,,,,,,,4.405737629,,,,4.405737629,0,,,,2017,7.920784626,0,,2.202868814,0,,5.717915812,0,,,0.27811245, diff --git a/solution/health_and_education/tests/test_clean_cookstoves.py b/solution/health_and_education/tests/test_clean_cookstoves.py index dc5a16ed8..a28c0415a 100644 --- a/solution/health_and_education/tests/test_clean_cookstoves.py +++ b/solution/health_and_education/tests/test_clean_cookstoves.py @@ -52,8 +52,6 @@ def test_clean_cookstoves(): exp_addl_func_units_highed = expected_df.iloc[134:181, 4:7].T.reset_index(drop=True).T.astype(float) exp_addl_func_units_highed.index = expected_df.iloc[134:181, 0].astype(int, errors='ignore').values test_addl_func_units_highed = test_dfs.addl_func_units_highed.T.reset_index(drop=True).T - print(test_addl_func_units_highed.head()) - print(exp_addl_func_units_highed.head()) pd.testing.assert_frame_equal(test_addl_func_units_highed, exp_addl_func_units_highed, check_exact=False, rtol=1e-3) exp_addl_func_units_lowed = expected_df.iloc[134:181, 12:15].T.reset_index(drop=True).T.astype(float) From c3c8b08d36cc84c145cd0ed594c61ac00bdaa9bd Mon Sep 17 00:00:00 2001 From: Sunishchal Date: Tue, 29 Dec 2020 01:53:52 -0800 Subject: [PATCH 19/28] Working implementation for commercial light cluster --- .../clusters/cluster_model.py | 51 +++- .../clusters/com_light.py | 183 +++++++++++++ .../tests/expected_com_light.csv | 240 ++++++++++++++++++ .../tests/test_com_light.py | 101 ++++++++ 4 files changed, 572 insertions(+), 3 deletions(-) create mode 100644 solution/health_and_education/clusters/com_light.py create mode 100644 solution/health_and_education/tests/expected_com_light.csv create mode 100644 solution/health_and_education/tests/test_com_light.py diff --git a/solution/health_and_education/clusters/cluster_model.py b/solution/health_and_education/clusters/cluster_model.py index a2de9d1d7..a1449fcd0 100644 --- a/solution/health_and_education/clusters/cluster_model.py +++ b/solution/health_and_education/clusters/cluster_model.py @@ -316,6 +316,25 @@ def calc_emis_diff_highed_cleancookstoves(self): self.emis_diff_highed = emis_diff_highed + def calc_emis_diff_highed_comlight(self, ef_co2_eq_list): + self.emissions_factors_ref1_co2eq = pd.DataFrame(ef_co2_eq_list[1:], + columns=ef_co2_eq_list[0], + index=list(range(2014, 2061)), dtype=np.float64) + + emis_diff_highed = pd.DataFrame(None, + columns=['Conventional: Grid','Conventional: Fuel', 'Conventional: Other Direct', 'Conventional: Indirect', 'Emission Reductions: Conv Total'], + index=list(range(2014, 2061)), dtype=np.float64) + + if self.assumptions['Grid'] == 'Y': + emis_diff_highed['Conventional: Grid'] = self.addl_func_units_highed['Additional Functional Units in REF2 vs REF2'] \ + * self.assumptions['Twh_per_TWh'] * self.emissions_factors_ref1_co2eq['World'] + + emis_diff_highed['Emission Reductions: Conv Total'] = emis_diff_highed[['Conventional: Grid', 'Conventional: Fuel', 'Conventional: Other Direct', 'Conventional: Indirect']].sum(axis=1, min_count=1) + + # SpaceHeating_cluster!V131:Z179 + self.emis_diff_highed = emis_diff_highed + + def calc_emis_diff_lowed(self): # Table 10: Difference in EMISSIONS between REF1 and REF2 populations in LLDC+HighNRR+LowED # CONVENTIONAL - Least and Less Developed Countries (sans LAC, EE, China) @@ -378,6 +397,21 @@ def calc_emis_diff_lowed_cleancookstoves(self): emis_diff_lowed['Emission Reductions: Conv Total'] = emis_diff_lowed[['Conventional: Grid', 'Conventional: Fuel', 'Conventional: Other Direct', 'Conventional: Indirect']].sum(axis=1, min_count=1) self.emis_diff_lowed = emis_diff_lowed + + + def calc_emis_diff_lowed_comlight(self): + emis_diff_lowed = pd.DataFrame(None, + columns=['Conventional: Grid','Conventional: Fuel', 'Conventional: Other Direct', 'Conventional: Indirect', 'Emission Reductions: Conv Total'], + index=list(range(2014, 2061)), dtype=np.float64) + + if self.assumptions['Grid'] == 'Y': + emis_diff_lowed['Conventional: Grid'] = self.addl_func_units_lowed['Additional Functional Units in REF2 vs REF2'] \ + * self.assumptions['Twh_per_TWh'] * self.emissions_factors_ref1_co2eq['World'] + + emis_diff_lowed['Emission Reductions: Conv Total'] = emis_diff_lowed[['Conventional: Grid', 'Conventional: Fuel', 'Conventional: Other Direct', 'Conventional: Indirect']].sum(axis=1, min_count=1) + + # SpaceHeating_cluster!AI131:AM179 + self.emis_diff_lowed = emis_diff_lowed def calc_emis_alloc_lldc(self): @@ -472,8 +506,6 @@ def calc_emis_diff_mdc_spaceheating(self): def calc_emis_diff_mdc_spacecooling(self): - # Table 13: Difference in EMISSIONS between REF1 and REF2 populations in MDC + LAC + EE + China - # CONVENTIONAL Avoided Emissions/ Million Metric Tons CO2 emis_diff_mdc = pd.DataFrame(None, columns=['Conventional: Grid','Conventional: Fuel', 'Conventional: Other Direct', 'Conventional: Indirect', 'Emission Reductions: Conv Total'], index=list(range(2014, 2061)), dtype=np.float64) @@ -485,7 +517,20 @@ def calc_emis_diff_mdc_spacecooling(self): emis_diff_mdc['Emission Reductions: Conv Total'] = emis_diff_mdc[['Conventional: Grid', 'Conventional: Fuel', 'Conventional: Other Direct', 'Conventional: Indirect']].sum(axis=1, min_count=1) - # SpaceHeating_cluster!O190:S238 + self.emis_diff_mdc = emis_diff_mdc + + + def calc_emis_diff_mdc_comlight(self): + emis_diff_mdc = pd.DataFrame(None, + columns=['Conventional: Grid','Conventional: Fuel', 'Conventional: Other Direct', 'Conventional: Indirect', 'Emission Reductions: Conv Total'], + index=list(range(2014, 2061)), dtype=np.float64) + + if self.assumptions['Grid'] == 'Y': + emis_diff_mdc['Conventional: Grid'] = self.addl_func_units_mdc['Additional Functional Units in REF2 vs REF2'] \ + * self.assumptions['Twh_per_TWh'] * self.emissions_factors_ref1_co2eq['World'] + + emis_diff_mdc['Emission Reductions: Conv Total'] = emis_diff_mdc[['Conventional: Grid', 'Conventional: Fuel', 'Conventional: Other Direct', 'Conventional: Indirect']].sum(axis=1, min_count=1) + self.emis_diff_mdc = emis_diff_mdc diff --git a/solution/health_and_education/clusters/com_light.py b/solution/health_and_education/clusters/com_light.py new file mode 100644 index 000000000..413323753 --- /dev/null +++ b/solution/health_and_education/clusters/com_light.py @@ -0,0 +1,183 @@ +"""Health & Education solution model for Commercial Light Cluster + Excel filename: CORE_PopulationChange_29Jan2020 (version 1.5).xlsx + Excel sheet name: ComLight_cluster +""" +import pathlib +import numpy as np +import pandas as pd +import sys +__file__ = 'c:\\Users\\sunishchal.dev\\Documents\\solutions\\solution\\health_and_education\\clusters' +repo_path = str(pathlib.Path(__file__).parents[2]) +sys.path.append(repo_path) +# sys.path.append('c:\\Users\\sunishchal.dev\\Documents\\solutions') + +from model import advanced_controls as ac +from solution.health_and_education.clusters import cluster_model + +DATADIR = pathlib.Path(__file__).parents[0].joinpath('data') +THISDIR = pathlib.Path(__file__).parents[0] + +name = 'Health and Education - Commercial Light Cluster' +solution_category = ac.SOLUTION_CATEGORY.REDUCTION +period_start = 2020 +period_end = 2050 + +# % impact of educational attainment on uptake of Family Planning: +assumptions = { + 'fixed_weighting_factor': None, + 'pct_impact': 0.50, + 'use_fixed_weight': 'N', + 'Twh_per_TWh': 19.8579168170079, + 'period_start': 2020, + 'period_end': 2050, + 'Grid': 'Y', + 'Fuel': 'Y', + 'Other Direct': 'N', + 'Indirect': 'N' +} + +# TABLE 1: Current TAM Mix +current_tam_mix_list = [ + ['Energy Source', 'Weighting Factor', 'Include in SOL?', 'Include in CONV?'], + ['(LFL) Linear fluorescent lamp', 75, 'N', 'Y'], + ['(CFL) Compact fluorescent lamp', 10, 'N', 'Y'], + ['Incandescent & Halogen lamp', 2, 'N', 'Y'], + ['(HID) High-intensity discharge lamp', 10, 'N', 'Y']] + +# Table 2: REF2, Commercial Lighting Demand TAM (Plmh) +# ComLight_cluster!B28:K75 +# TODO: Replace this with solarpvutil.Scenario.ref_tam_per_region once we resolve the data mismatch +ref2_tam_list = [ + ['World', 'OECD90', 'Eastern Europe', 'Asia (Sans Japan)', 'Middle East and Africa', 'Latin America', 'China', 'India', 'EU', 'USA'], + [51.45487193, 14.6389084, 1.992069204, 22.82947281, 3.948231058, 1.260385887, 17.43928237, 4.694814929, 6.846265699, 7.492431673], + [54.44646738, 16.71153886, 2.069993949, 24.55327312, 4.038832628, 1.292897568, 19.19419539, 4.841474341, 7.308533527, 7.593933951], + [57.08154589, 16.55297255, 2.150866495, 25.94288574, 4.223522213, 1.332740261, 20.03578642, 5.298852948, 7.344699597, 7.704709269], + [59.80876287, 16.42730049, 2.232938124, 27.39580666, 4.416441101, 1.374913758, 20.87855549, 5.802120171, 7.387071877, 7.817187528], + [62.62774948, 16.33302942, 2.316208156, 28.91104178, 4.618777108, 1.419376816, 21.72201069, 6.351153017, 7.435354865, 7.931364925], + [65.53813687, 16.2686661, 2.400675914, 30.48759696, 4.831718051, 1.46608819, 22.5656601, 6.945828492, 7.489253059, 8.047237659], + [68.53955619, 16.23271726, 2.48634072, 32.12447809, 5.056451746, 1.515006639, 23.40901179, 7.586023602, 7.548470955, 8.164801928], + [71.63163859, 16.22368966, 2.573201896, 33.82069105, 5.294166011, 1.566090917, 24.25157386, 8.271615353, 7.612713054, 8.284053929], + [74.81401524, 16.24009005, 2.661258763, 35.57524173, 5.546048661, 1.619299782, 25.09285437, 9.002480751, 7.681683851, 8.40498986], + [78.08631727, 16.28042517, 2.750510643, 37.38713601, 5.813287515, 1.674591991, 25.93236142, 9.778496802, 7.755087846, 8.527605919], + [81.44817585, 16.34320178, 2.840956858, 39.25537977, 6.097070387, 1.731926299, 26.76960309, 10.59954051, 7.832629535, 8.651898304], + [84.89922212, 16.42692661, 2.93259673, 41.17897889, 6.398585095, 1.791261464, 27.60408745, 11.46548889, 7.914013418, 8.777863212], + [88.43908724, 16.53010642, 3.02542958, 43.15693925, 6.719019456, 1.852556242, 28.43532259, 12.37621893, 7.998943991, 8.905496842], + [92.06740236, 16.65124795, 3.119454731, 45.18826675, 7.059561286, 1.915769389, 29.2628166, 13.33160766, 8.087125753, 9.034795391], + [95.78379864, 16.78885796, 3.214671504, 47.27196725, 7.421398403, 1.980859662, 30.08607754, 14.33153207, 8.178263201, 9.165755057], + [99.58790721, 16.94144319, 3.311079221, 49.40704665, 7.805718621, 2.047785818, 30.90461351, 15.37586916, 8.272060835, 9.298372038], + [103.4793592, 17.10751039, 3.408677205, 51.59251082, 8.21370976, 2.116506612, 31.71793259, 16.46449596, 8.36822315, 9.432642532], + [107.4577859, 17.2855663, 3.507464775, 53.82736565, 8.646559634, 2.186980802, 32.52554285, 17.59728945, 8.466454646, 9.568562736], + [111.5228183, 17.47411768, 3.607441256, 56.11061703, 9.105456061, 2.259167145, 33.32695238, 18.77412665, 8.56645982, 9.706128848], + [115.6740876, 17.67167127, 3.708605967, 58.44127082, 9.591586858, 2.333024396, 34.12166927, 19.99488457, 8.66794317, 9.845337067], + [119.911225, 17.87673382, 3.810958232, 60.81833292, 10.10613984, 2.408511312, 34.90920158, 21.2594402, 8.770609194, 9.986183589], + [124.2338616, 18.08781208, 3.914497372, 63.2408092, 10.65030283, 2.48558665, 35.68905742, 22.56767056, 8.874162389, 10.12866461], + [128.6416286, 18.30341279, 4.019222708, 65.70770556, 11.22526363, 2.564209166, 36.46074485, 23.91945265, 8.978307255, 10.27277634], + [133.1341571, 18.52204271, 4.125133563, 68.21802787, 11.83221007, 2.644337617, 37.22377195, 25.31466348, 9.082748288, 10.41851496], + [137.7110783, 18.74220858, 4.232229259, 70.77078201, 12.47232997, 2.725930759, 37.97764682, 26.75318006, 9.187189987, 10.56587667], + [142.3720233, 18.96241715, 4.340509117, 73.36497387, 13.14681113, 2.808947349, 38.72187753, 28.23487938, 9.291336849, 10.71485768], + [147.1166232, 19.18117517, 4.449972458, 75.99960933, 13.85684138, 2.893346143, 39.45597216, 29.75963846, 9.394893372, 10.86545418], + [151.9445094, 19.39698938, 4.560618606, 78.67369427, 14.60360853, 2.979085899, 40.1794388, 31.3273343, 9.497564055, 11.01766237], + [156.8553128, 19.60836653, 4.672446881, 81.38623458, 15.3883004, 3.066125372, 40.89178552, 32.93784391, 9.599053395, 11.17147845], + [161.8486646, 19.81381338, 4.785456606, 84.13623613, 16.21210481, 3.154423319, 41.59252042, 34.59104429, 9.699065889, 11.32689861], + [166.924196, 20.01183666, 4.899647102, 86.92270482, 17.07620957, 3.243938496, 42.28115156, 36.28681245, 9.797306037, 11.48391905], + [172.0815382, 20.20094314, 5.015017691, 89.74464651, 17.9818025, 3.334629661, 42.95718704, 38.0250254, 9.893478336, 11.64253597], + [177.3203223, 20.37963954, 5.131567695, 92.6010671, 18.93007142, 3.426455569, 43.62013493, 39.80556014, 9.987287283, 11.80274557], + [182.6401794, 20.54643263, 5.249296436, 95.49097247, 19.92220414, 3.519374977, 44.26950331, 41.62829368, 10.07843738, 11.96454404], + [188.0407407, 20.69982915, 5.368203236, 98.4133685, 20.95938848, 3.613346642, 44.90480028, 43.49310303, 10.16663311, 12.12792759], + [193.5216374, 20.83833585, 5.488287415, 101.3672611, 22.04281226, 3.708329321, 45.5255339, 45.39986518, 10.25157899, 12.29289241], + [199.0825006, 20.96045947, 5.609548297, 104.3516561, 23.17366329, 3.804281769, 46.13121226, 47.34845715, 10.33297952, 12.4594347], + [204.7229614, 21.06470676, 5.731985203, 107.3655594, 24.35312939, 3.901162743, 46.72134345, 49.33875594, 10.41053917, 12.62755065], + [210.4426511, 21.14958448, 5.855597455, 110.4079768, 25.58239837, 3.998931, 47.29543554, 51.37063857, 10.48396247, 12.79723647], + [216.2412007, 21.21359937, 5.980384375, 113.4779144, 26.86265806, 4.097545297, 47.85299662, 53.44398202, 10.5529539, 12.96848835], + [222.1182414, 21.25525818, 6.106345284, 116.5743779, 28.19509627, 4.196964389, 48.39353477, 55.55866332, 10.61721796, 13.14130249], + [228.0734044, 21.27306765, 6.233479504, 119.6963733, 29.58090081, 4.297147034, 48.91655806, 57.71455946, 10.67645915, 13.31567509], + [234.1063208, 21.26553453, 6.361786357, 122.8429063, 31.02125951, 4.398051988, 49.42157459, 59.91154745, 10.73038197, 13.49160235], + [240.2166218, 21.23116558, 6.491265165, 126.012983, 32.51736018, 4.499638007, 49.90809243, 62.14950431, 10.77869091, 13.66908046], + [246.4039385, 21.16846753, 6.62191525, 129.2056092, 34.07039064, 4.601863849, 50.37561966, 64.42830703, 10.82109048, 13.84810562], + [252.6679021, 21.07594714, 6.753735934, 132.4197907, 35.68153869, 4.704688269, 50.82366438, 66.74783262, 10.85728517, 14.02867403], + [259.0081437, 20.95211116, 6.886726538, 135.6545335, 37.35199217, 4.808070024, 51.25173465, 69.10795808, 10.88697947, 14.21078189]] + + + +# GRID EMISSIONS FACTORS: REF Grid EFs kg CO2-eq per kwh +# Emissions Factors!B11:K57 +# TODO: Replace this with emissions_factors module once interface is better understood +ef_co2_eq_list = [ + ['World', 'OECD90', 'Eastern Europe', 'Asia (Sans Japan)', 'Middle East and Africa', 'Latin America', 'China', 'India', 'EU', 'USA'], + [None, None, None, None, None, None, None, None, None, None], + [0.617381628, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.613053712, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.605559021, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.599823764, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.596692109, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.592956465, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.589394210, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.585889941, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.582469966, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.579126508, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.576180724, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.572640473, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.569484654, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.566378788, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.563317175, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.560425096, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.557305440, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.554345365, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.551409592, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.548493724, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.545513743, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.542688056, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.539794403, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.536903541, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.533998347, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.530880184, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.528185055, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.525268472, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.522337859, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.519390128, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.516316183, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.513431317, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.510414389, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.507368630, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.504753472, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.503017663, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.501095098, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.499244741, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.497355610, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.495425752, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.493412239, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.491436597, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.489373931, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.487263794, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.485104746, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.483057065, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666]] + +class Cluster: + + def __init__(self): + self.name = name + + def run_cluster(self): + scenario = cluster_model.Scenario(name, assumptions) + scenario.load_pop_data(DATADIR) + scenario.load_tam_mix(current_tam_mix_list) + scenario.load_ref2_tam(ref2_tam_list) + scenario.calc_ref1_tam() + scenario.calc_ref2_demand() + scenario.calc_ref1_demand() + scenario.calc_change_demand() + scenario.calc_addl_units_highed() + scenario.calc_addl_units_lowed() + scenario.calc_emis_diff_highed_comlight(ef_co2_eq_list) + scenario.calc_emis_diff_lowed_comlight() + scenario.calc_emis_alloc_lldc() + scenario.calc_addl_units_mdc() + scenario.calc_emis_diff_mdc_comlight() + scenario.calc_emis_alloc_mdc() + scenario.calc_total_emis() + scenario.print_total_emis() + return scenario + +if __name__ == "__main__": + cluster = Cluster() + cluster.run_cluster() \ No newline at end of file diff --git a/solution/health_and_education/tests/expected_com_light.csv b/solution/health_and_education/tests/expected_com_light.csv new file mode 100644 index 000000000..7916ae10c --- /dev/null +++ b/solution/health_and_education/tests/expected_com_light.csv @@ -0,0 +1,240 @@ +ComLight_cluster,,Commercial Lighting,Petalumen hours (Plmh),,,,,Sheet Estimates the Emissions Reduction from this Solution due to Health & Education,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,Period Start:,2020,,Total Emissions Avoided due to Health & Education (Gt CO2-eq),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,COPY VALUES FROM SOLUTION MODEL,,,,Period End:,2050,,,,2020-2050,2015-2060,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,TABLE 1: Current TAM Mix,2018,Include in SOL?,Include in CONV?,,,,LLDC,SOLUTION,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,(LFL) Linear fluorescent lamp,0.75,N,Y,,,,,CONVENTIONAL,1.416394973,3.4349283,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,(CFL) Compact fluorescent lamp,0.1,N,Y,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +Keywords:,,,,Incandescent & Halogen lamp,0.02,N,Y,,,,MDC,SOLUTION,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +LLDC,Least and Less Developed Countries,,,(HID) High-intensity discharge lamp,0.1,N,Y,,,,,CONVENTIONAL,1.102339124,2.073001958,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +MDC,More Developed Countries,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +LLDC+HighNRR+HigherEd,Least and Less Developed Countries with High Net Reproductive Rates & Higher Educational Attainment.,"NOTE: China, LAC, and EE are considered as LLDC Regions with Low NRR and are accounted for under the _mdc sheet.",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +LLDC+HighNRR+LowEd,"Least and Less Developed Countries with High Net Reproductive Rates & Lower Educational Attainment. This excludes China, LAC, and EE.","NOTE: China, LAC, and EE are considered as LLDC Regions with Low NRR and are accounted for under the _mdc sheet.",,,,,,,,,TOTAL,SOLUTION,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +REF1,Reference Scenario 1 with Higher Population,,,,,,,,,,,CONVENTIONAL,2.518734097,5.507930258,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +REF2,Reference Scenario 2 with Lower Population,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +TAM,Total Addressable Market,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +LAC,Latin American Countries,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +EE,Eastern Europe,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +TWh,Terrawatt-Hours,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +NRR,Net Reproductive Rate,,,Assumptions:,,Use fixed weight?,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,Fixed weighting factor:,,N,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,% impact of educational attainment on uptake of Family Planning:,0.5,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,Twh per TWh,19.85791682,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,Fuel unit (TJ) per TWh,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,Direct Emissions,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,Indirect Emissions,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +"Table 2: REF2, Commercial Lighting TAM Petalumen hours (Plmh)",,,,,,,,,,,,"Table 3: REF1 ,Commercial Lighting TAM Petalumen hours (Plmh)",,,,,,,,,,,,Table 3: REF1 Commercial Lighting TAM Petalumen hours (Plmh),,,,,,,,,,,,Table 3: REF1 Commercial Lighting TAM Petalumen hours (Plmh),,,,,,,,,,,,,,,,,,,,, +COPY TABLES BELOW FROM LATEST ComLight_cluster SOLUTION MODELS,,,,,,,,,,,,(a) FOR POPULATIONS IN REGIONS WITH LOW EDUCATIONAL ATTAINMENT ONLY!,,,,,,,,,,,,(b) FOR REGIONS WITH HIGHER EDUCATIONAL ATTAINMENT,,,,,,,,,,,,(c) FOR ALL REGIONS,,,,,,,,,,,,,,,,,,,,, +,Regions included as LLDC+HighNRR:,N,N,Y,Y,N,,,,,,,Regions included as LLDC+HighNRR:,N,N,Y,Y,N,,,,,,,Regions included as LLDC+HighNRR:,N,N,Y,Y,N,,,,,,,,,,,,,,,,,,CHECK,,,,,,,,, +,World,OECD90,Eastern Europe,Asia (Sans Japan),Middle East and Africa,Latin America,China,India,EU,USA,,,World,OECD90,Eastern Europe,"Asia (Sans Japan, Sans China)",Middle East and Africa,Latin America,China,India,EU,USA,,,World,OECD90,Eastern Europe,Asia (Sans Japan),Middle East and Africa,Latin America,China,India,EU,USA,,,World,OECD90,Eastern Europe,Asia (Sans Japan),Middle East and Africa,Latin America,China,India,EU,USA,,WORLD,,REGIONAL TOTAL,,% error,OECD90,Eastern Europe,Asia (Sans Japan),Middle East and Africa,Latin America +2014,51.454872,14.638908,1.992069,22.829473,3.948231,1.260386,17.439282,4.694815,6.846266,7.492432,,2014,0,0,0,0,0,0,0,0,0,0,,2014,51.45487193,14.6389084,1.992069204,22.82947281,3.948231058,1.260385887,17.43928237,4.694814929,6.846265699,7.492431673,,2014,51.45487193,14.6389084,1.992069204,22.82947281,3.948231058,1.260385887,17.43928237,4.694814929,6.846265699,7.492431673,,51.45487193,OK,44.66906736,OK,,14.6389084,1.992069204,22.82947281,3.948231058,1.260385887 +2015,54.446467,16.711539,2.069994,24.553273,4.038833,1.292898,19.194195,4.841474,7.308534,7.593934,,2015,5.62493744,0,0.043110431,2.7976289,2.421091984,0.363106124,0,0,0,0,,2015,48.82152994,16.71153886,2.026883518,21.75564422,1.617740643,0.929791444,19.19419539,4.841474341,7.308533527,7.593933951,,2015,54.44646738,16.71153886,2.069993949,24.55327312,4.038832628,1.292897568,19.19419539,4.841474341,7.308533527,7.593933951,,54.44646738,OK,48.66653612,OK,,16.71153886,2.069993949,24.55327312,4.038832628,1.292897568 +2016,57.081546,16.552973,2.150866,25.942886,4.223522,1.332740,20.035786,5.298853,7.344700,7.704709,,2016,6.065894571,0,0.045821417,3.099064622,2.54504464,0.375963893,0,0,0,0,,2016,51.07580306,16.56667078,2.106692583,22.87162403,1.683155422,0.958551855,20.05357454,5.304963982,7.349948544,7.711948901,,2016,57.14169763,16.56667078,2.152514001,25.97068865,4.228200062,1.334515748,20.05357454,5.304963982,7.349948544,7.711948901,,57.14169763,OK,50.25258925,OK,,16.56667078,2.152514001,25.97068865,4.228200062,1.334515748 +2017,59.808763,16.427300,2.232938,27.395807,4.416441,1.374914,20.878555,5.802120,7.387072,7.817188,,2017,6.553149574,0,0.048696909,3.438337649,2.676267404,0.389847612,0,0,0,0,,2017,53.4076098,16.46030235,2.188398886,24.02832929,1.751860195,0.989488284,20.92336145,5.818249886,7.39992116,7.834979487,,2017,59.96075937,16.46030235,2.237095795,27.46666694,4.428127599,1.379335896,20.92336145,5.818249886,7.39992116,7.834979487,,59.96075937,OK,51.97152858,OK,,16.46030235,2.237095795,27.46666694,4.428127599,1.379335896 +2018,62.627749,16.333029,2.316208,28.911042,4.618777,1.419377,21.722011,6.351153,7.435355,7.931365,,2018,7.087955072,0,0.051734648,3.815979445,2.81551003,0.40473095,0,0,0,0,,2018,55.81410265,16.38990177,2.271925904,25.22394374,1.824192528,1.022535082,21.8020064,6.381611774,7.457772021,7.962589762,,2018,62.90205772,16.38990177,2.323660552,29.03992319,4.639702558,1.427266032,21.8020064,6.381611774,7.457772021,7.962589762,,62.90205772,OK,53.8204541,OK,,16.38990177,2.323660552,29.03992319,4.639702558,1.427266032 +2019,65.538137,16.268666,2.400676,30.487597,4.831718,1.466088,22.565660,6.945828,7.489253,8.047238,,2019,7.67116371,0,0.054924062,4.232236921,2.96344566,0.420557067,0,0,0,0,,2019,58.28946657,16.35243371,2.357090321,26.45524145,1.900369977,1.057574963,22.68661963,6.994975008,7.522559735,8.094002017,,2019,65.96063028,16.35243371,2.412014383,30.68747837,4.863815637,1.47813203,22.68661963,6.994975008,7.522559735,8.094002017,,65.96063028,OK,55.79387413,FALSE,,16.35243371,2.412014383,30.68747837,4.863815637,1.47813203 +2020,68.539556,16.232717,2.486341,32.124478,5.056452,1.515007,23.409012,7.586024,7.548471,8.164802,,2020,8.303719873,0,0.058256308,4.687370191,3.120812699,0.437280676,0,0,0,0,,2020,60.82870812,16.34531407,2.443741246,27.71933413,1.980637891,1.094510598,23.57466368,7.658296878,7.593504823,8.228622908,,2020,69.13242799,16.34531407,2.501997553,32.40670432,5.101450589,1.531791274,23.57466368,7.658296878,7.593504823,8.228622908,,69.13242799,OK,57.8872578,OK,,16.34531407,2.501997553,32.40670432,5.101450589,1.531791274 +2021,71.631639,16.223690,2.573202,33.820691,5.294166,1.566091,24.251574,8.271615,7.612713,8.284054,,2021,8.987046804,0,0.061732767,5.18195804,3.288461533,0.454894463,0,0,0,0,,2021,63.43009675,16.36684275,2.531843351,29.01482009,2.065389746,1.13331336,24.4650878,8.371891404,7.670199866,8.366305845,,2021,72.41714355,16.36684275,2.593576118,34.19677813,5.353851279,1.588207824,24.4650878,8.371891404,7.670199866,8.366305845,,72.41714355,OK,60.0992561,OK,,16.36684275,2.593576118,34.19677813,5.353851279,1.588207824 +2022,74.814015,16.240090,2.661259,35.575242,5.546049,1.619300,25.092854,9.002481,7.681684,8.404990,,2022,9.723006089,0,0.065361071,5.716842128,3.467385924,0.473416965,0,0,0,0,,2022,66.09426646,16.41590109,2.621465954,30.34142748,2.155071613,1.173994883,25.35797822,9.136401925,7.752518157,8.507240263,,2022,75.81727255,16.41590109,2.686827025,36.05826961,5.622457537,1.647411848,25.35797822,9.136401925,7.752518157,8.507240263,,75.81727255,OK,62.43086711,OK,,16.41590109,2.686827025,36.05826961,5.622457537,1.647411848 +2023,78.086317,16.280425,2.750511,37.387136,5.813288,1.674592,25.932361,9.778497,7.755088,8.527606,,2023,10.51336346,0,0.069143818,6.292719183,3.658646788,0.492853669,0,0,0,0,,2023,68.82080379,16.49117004,2.712668428,31.69844664,2.250012272,1.216535763,26.2530186,9.952381674,7.840271713,8.65153344,,2023,79.33416725,16.49117004,2.781812246,37.99116583,5.90865906,1.709389432,26.2530186,9.952381674,7.840271713,8.65153344,,79.33416725,OK,64.8821966,OK,,16.49117004,2.781812246,37.99116583,5.90865906,1.709389432 +2024,81.448176,16.343202,2.840957,39.255380,6.097070,1.731926,26.769603,10.599541,7.832630,8.651898,,2024,11.36002587,0,0.073084426,6.910331952,3.863393591,0.513215903,0,0,0,0,,2024,71.60992126,16.59148073,2.805554539,33.08550913,2.350518358,1.260921837,27.15024658,10.82050371,7.93336223,8.799394582,,2024,82.96994713,16.59148073,2.878638964,39.99584108,6.21391195,1.774137739,27.15024658,10.82050371,7.93336223,8.799394582,,82.96994713,OK,67.45401046,OK,,16.59148073,2.878638964,39.99584108,6.21391195,1.774137739 +2025,84.899222,16.426927,2.932597,41.178979,6.398585,1.791261,27.604087,11.465489,7.914013,8.777863,,2025,12.26482704,0,0.077186449,7.570379491,4.082751074,0.534510029,0,0,0,0,,2025,74.46137649,16.71553863,2.900210111,34.50205126,2.45689481,1.30713424,28.04956054,11.74138625,8.031628938,8.95094864,,2025,86.72620353,16.71553863,2.97739656,42.07243075,6.539645884,1.841644269,28.04956054,11.74138625,8.031628938,8.95094864,,86.72620353,OK,70.14665609,OK,,16.71553863,2.97739656,42.07243075,6.539645884,1.841644269 +2026,88.439087,16.530106,3.025430,43.156939,6.719019,1.852556,28.435323,12.376219,7.998944,8.905497,,2026,13.22965075,0,0.081453768,8.273627524,4.317826627,0.556742835,0,0,0,0,,2026,77.37462076,16.86195122,2.996674396,35.94731189,2.569481224,1.355157898,28.95048231,12.71568825,8.134816213,9.106243192,,2026,90.60427152,16.86195122,3.078128164,44.22093941,6.887307851,1.911900733,28.95048231,12.71568825,8.134816213,9.106243192,,90.60427152,OK,72.96022738,OK,,16.86195122,3.078128164,44.22093941,6.887307851,1.911900733 +2027,92.067402,16.651248,3.119455,45.188267,7.059561,1.915769,29.262817,13.331608,8.087126,9.034795,,2027,14.25600139,0,0.085889812,9.020606487,4.56960232,0.579902767,0,0,0,0,,2027,80.34760354,17.02900066,3.094933462,37.41984552,2.688607146,1.404957806,29.85214504,13.74372882,8.24252391,9.265104862,,2027,94.60360493,17.02900066,3.180823274,46.44045201,7.258209466,1.984860572,29.85214504,13.74372882,8.24252391,9.265104862,,94.60360493,OK,75.89334598,OK,,17.02900066,3.180823274,46.44045201,7.258209466,1.984860572 +2028,95.783799,16.788858,3.214672,47.271967,7.421398,1.980860,30.086078,14.331532,8.178263,9.165755,,2028,15.34477344,0,0.090497327,9.811387402,4.838934837,0.603953874,0,0,0,0,,2028,83.37671393,17.21467433,3.194960077,38.91758917,2.814545592,1.456468719,30.75363772,14.82528474,8.354273351,9.427169634,,2028,98.72148737,17.21467433,3.285457404,48.72897657,7.65348043,2.060422593,30.75363772,14.82528474,8.354273351,9.427169634,,98.72148737,OK,78.94301134,OK,,17.21467433,3.285457404,48.72897657,7.65348043,2.060422593 +2029,99.587907,16.941443,3.311079,49.407047,7.805719,2.047786,30.904614,15.375869,8.272061,9.298372,,2029,16.49635836,0,0.095278681,10.64565645,5.126580005,0.628843229,0,0,0,0,,2029,86.45718889,17.41674422,3.296696645,40.43799517,2.94754665,1.509605811,31.65386556,15.95967691,8.469500332,9.591929439,,2029,102.9535473,17.41674422,3.391975326,51.08365162,8.074126655,2.138449041,31.65386556,15.95967691,8.469500332,9.591929439,,102.9535473,OK,82.10494686,OK,,17.41674422,3.391975326,51.08365162,8.074126655,2.138449041 +2030,103.479359,17.107510,3.408677,51.592511,8.213710,2.116507,31.717933,16.464496,8.368223,9.432643,,2030,17.71126682,0,0.100237367,11.52312822,5.433373181,0.654528048,0,0,0,0,,2030,89.58506686,17.63315733,3.40009496,41.97888205,3.087877802,1.564297236,32.55185248,17.14631771,8.587693192,9.758991764,,2030,107.2963337,17.63315733,3.500332327,53.50201027,8.521250983,2.218825284,32.55185248,17.14631771,8.587693192,9.758991764,,107.2963337,OK,85.3755762,OK,,17.63315733,3.500332327,53.50201027,8.521250983,2.218825284 +2031,107.457786,17.285566,3.507465,53.827366,8.646560,2.186981,32.525543,17.597289,8.466455,9.568563,,2031,18.99047568,0,0.105376272,12.44378197,5.760333033,0.680984402,0,0,0,0,,2031,92.75778184,17.86217794,3.505136584,43.53864494,3.235810013,1.62049326,33.44667029,18.38501813,8.708449226,9.92819456,,2031,111.7482575,17.86217794,3.610512855,55.98242691,8.996143047,2.301477662,33.44667029,18.38501813,8.708449226,9.92819456,,111.7482575,OK,88.75273842,FALSE,,17.86217794,3.610512855,55.98242691,8.996143047,2.301477662 +2032,111.522818,17.474118,3.607441,56.110617,9.105456,2.259167,33.326952,18.774127,8.566460,9.706129,,2032,20.33559185,0,0.110702767,13.40802855,6.108644105,0.708216427,0,0,0,0,,2032,95.97477268,18.10240866,3.611835539,45.11660313,3.391678775,1.678179384,34.33784754,19.67615604,8.831482261,10.0995922,,2032,116.3103645,18.10240866,3.722538306,58.52463168,9.50032288,2.38639581,34.33784754,19.67615604,8.831482261,10.0995922,,116.3103645,OK,92.23629733,OK,,18.10240866,3.722538306,58.52463168,9.50032288,2.38639581 +2033,115.674088,17.671671,3.708606,58.441271,9.591587,2.333024,34.121669,19.994885,8.667943,9.845337,,2033,21.74849486,0,0.116231242,14.41650723,6.479512438,0.736243943,0,0,0,0,,2033,99.23658552,18.35254426,3.720210074,46.71268101,3.555903343,1.737363087,35.22545274,21.02037602,8.956532738,10.27327356,,2033,120.9850804,18.35254426,3.836441316,61.12918825,10.03541578,2.47360703,35.22545274,21.02037602,8.956532738,10.27327356,,120.9850804,FALSE,95.82719663,OK,,18.35254426,3.836441316,61.12918825,10.03541578,2.47360703 +2034,119.911225,17.876734,3.810958,60.818333,10.106140,2.408511,34.909202,21.259440,8.770609,9.986184,,2034,23.23156776,0,0.121980976,15.4702438,6.874236744,0.765106244,0,0,0,0,,2034,102.5450801,18.61145328,3.830295251,48.32745516,3.728967885,1.798077238,36.10995925,22.41878506,9.083401101,10.44943355,,2034,125.7766479,18.61145328,3.952276227,63.79769896,10.60320463,2.563183482,36.10995925,22.41878506,9.083401101,10.44943355,,125.7766479,OK,99.52781658,OK,,18.61145328,3.952276227,63.79769896,10.60320463,2.563183482 +2035,124.233862,18.087812,3.914497,63.240809,10.650303,2.485587,35.689057,22.567671,8.874162,10.128665,,2035,24.78725987,0,0.127969947,16.57031516,7.294136395,0.794838361,0,0,0,0,,2035,105.9017394,18.87793501,3.942119117,49.96131964,3.911335526,1.860349393,36.99163496,23.87255174,9.21186342,10.62824533,,2035,130.6889993,18.87793501,4.070089064,66.5316348,11.20547192,2.655187754,36.99163496,23.87255174,9.21186342,10.62824533,,130.6889993,OK,103.3403185,OK,,18.87793501,4.070089064,66.5316348,11.20547192,2.655187754 +2036,128.641629,18.303413,4.019223,65.707706,11.225264,2.564209,36.460745,23.919453,8.978307,10.272776,,2036,26.41749645,0,0.13420919,17.71737274,7.740463994,0.825450527,0,0,0,0,,2036,109.3063317,19.15053176,4.055700543,51.61384055,4.103380744,1.924174953,37.8702459,25.38233085,9.341632235,10.80974575,,2036,135.7238282,19.15053176,4.189909733,69.33121329,11.84384474,2.74962548,37.8702459,25.38233085,9.341632235,10.80974575,,135.7238282,OK,107.265125,OK,,19.15053176,4.189909733,69.33121329,11.84384474,2.74962548 +2037,133.134157,18.522043,4.125134,68.218028,11.832210,2.644338,37.223772,25.314663,9.082748,10.418515,,2037,28.12420859,0,0.140706765,18.9120591,8.214499151,0.856943584,0,0,0,0,,2037,112.7579067,19.42768742,4.171032959,53.28418656,4.305430221,1.989538019,38.74504195,26.94880638,9.472363179,10.99394846,,2037,140.8821153,19.42768742,4.311739723,72.19624565,12.51992937,2.846481603,38.74504195,26.94880638,9.472363179,10.99394846,,140.8821153,OK,111.3020838,OK,,19.42768742,4.311739723,72.19624565,12.51992937,2.846481603 +2038,137.711078,18.742209,4.232229,70.770782,12.472330,2.725931,37.977647,26.753180,9.187190,10.565877,,2038,29.91016877,0,0.147475313,20.15568045,8.717675514,0.889337495,0,0,0,0,,2038,116.2566273,19.70801573,4.288090659,54.97199086,4.517856974,2.056448832,39.6151845,28.57349498,9.603718453,11.18100404,,2038,146.1667961,19.70801573,4.435565972,75.12767131,13.23553249,2.945786328,39.6151845,28.57349498,9.603718453,11.18100404,,146.1667961,OK,115.4525718,OK,,19.70801573,4.435565972,75.12767131,13.23553249,2.945786328 +2039,142.372023,18.962417,4.340509,73.364974,13.146811,2.808947,38.721878,28.234879,9.291337,10.714858,,2039,31.77855871,0,0.154527794,21.44986509,9.251510453,0.92265538,0,0,0,0,,2039,119.8026933,19.99014684,4.406831325,56.67683543,4.741029567,2.124922574,40.47957607,30.25831404,9.735342635,11.37110227,,2039,151.5812521,19.99014684,4.561359119,78.12670052,13.99254002,3.047577954,40.47957607,30.25831404,9.735342635,11.37110227,,151.5812521,OK,119.7183245,OK,,19.99014684,4.561359119,78.12670052,13.99254002,3.047577954 +2040,147.116623,19.181175,4.449972,75.999609,13.856841,2.893346,39.455972,29.759638,9.394893,10.865454,,2040,33.73259356,0,0.161876184,22.79625262,9.817545041,0.956919722,0,0,0,0,,2040,123.3962011,20.27270047,4.527227823,58.39823503,4.975314345,2.194973524,41.33719756,32.00516372,9.866904893,11.5644257,,2040,157.1287947,20.27270047,4.689104007,81.19448765,14.79285939,3.151893245,41.33719756,32.00516372,9.866904893,11.5644257,,157.1287947,OK,124.1010448,OK,,20.27270047,4.689104007,81.19448765,14.79285939,3.151893245 +2041,151.944509,19.396989,4.560619,78.673694,14.603609,2.979086,40.179439,31.327334,9.497564,11.017662,,2041,35.77519508,0,0.169532451,24.19622963,10.41728465,0.992148343,0,0,0,0,,2041,127.0370442,20.55422393,4.649276885,60.13571184,5.221075301,2.266610242,42.18753029,33.81556301,9.998098793,11.76109128,,2041,162.8122393,20.55422393,4.818809335,84.33194147,15.63835996,3.258758585,42.18753029,33.81556301,9.998098793,11.76109128,,162.8122393,OK,128.6020933,OK,,20.55422393,4.818809335,84.33194147,15.63835996,3.258758585 +2042,156.855313,19.608367,4.672447,81.386235,15.388300,3.066125,40.891786,32.937844,9.599053,11.171478,,2042,37.90913328,0,0.177505699,25.65102481,11.05224492,1.028357852,0,0,0,0,,2042,130.7250447,20.83327739,4.773014358,61.8887135,5.478676132,2.339838638,43.03009335,35.69081429,10.12867372,11.96121945,,2042,168.634178,20.83327739,4.950520056,87.5397383,16.53092106,3.36819649,43.03009335,35.69081429,10.12867372,11.96121945,,168.634178,OK,133.2226533,OK,,20.83327739,4.950520056,87.5397383,16.53092106,3.36819649 +2043,161.848665,19.813813,4.785457,84.136236,16.212105,3.154423,41.592520,34.591044,9.699066,11.326899,,2043,40.13744142,0,0.185801199,27.16203634,11.72403522,1.065568657,0,0,0,0,,2043,134.4601036,21.10850858,4.898506349,63.65652776,5.748479074,2.414667962,43.86388838,37.63245287,10.25843124,12.16501015,,2043,174.5975451,21.10850858,5.084307547,90.8185641,17.47251429,3.480236619,43.86388838,37.63245287,10.25843124,12.16501015,,174.5975451,OK,137.9641311,OK,,21.10850858,5.084307547,90.8185641,17.47251429,3.480236619 +2044,166.924196,20.011837,4.899647,86.922705,17.076210,3.243938,42.281152,36.286812,9.797306,11.483919,,2044,42.46318334,0,0.194421665,28.73064716,12.43431282,1.103801701,0,0,0,0,,2044,138.2421044,21.37859005,5.025850522,65.43834227,6.030843334,2.491107373,44.68777151,39.64198329,10.38721488,12.37268856,,2044,180.7052877,21.37859005,5.220272187,94.16898943,18.46515615,3.594909074,44.68777151,39.64198329,10.38721488,12.37268856,,180.7052877,OK,142.8279169,OK,,21.37859005,5.220272187,94.16898943,18.46515615,3.594909074 +2045,172.081538,20.200943,5.015018,89.744647,17.981803,3.334630,42.957187,38.025025,9.893478,11.642536,,2045,44.8894544,0,0.203370742,30.35824279,13.18476437,1.143076495,0,0,0,0,,2045,142.0708598,21.64214258,5.155143715,67.23335686,6.326120736,2.569165602,45.50078782,41.72085907,10.51485493,12.58445697,,2045,186.9603142,21.64214258,5.358514457,97.59159966,19.5108851,3.712242097,45.50078782,41.72085907,10.51485493,12.58445697,,186.9603142,OK,147.8153839,OK,,21.64214258,5.358514457,97.59159966,19.5108851,3.712242097 +2046,177.320322,20.379640,5.131568,92.601067,18.930071,3.426456,43.620135,39.805560,9.987287,11.802746,,2046,47.41948716,0,0.212657034,32.04632625,13.9770922,1.183411677,0,0,0,0,,2046,145.9460983,21.89765979,5.286440756,69.04089275,6.634667088,2.648851922,46.30224721,43.87068694,10.64110086,12.80045466,,2046,193.3655855,21.89765979,5.49909779,101.087219,20.61175929,3.832263599,46.30224721,43.87068694,10.64110086,12.80045466,,193.3655855,OK,152.9279995,OK,,21.89765979,5.49909779,101.087219,20.61175929,3.832263599 +2047,182.640179,20.546433,5.249296,95.490972,19.922204,3.519375,44.269503,41.628294,10.078437,11.964544,,2047,50.05644112,0,0.222289653,33.79631347,14.81301612,1.224821876,0,0,0,0,,2047,149.8674152,22.14357843,5.419796513,70.86029647,6.956817468,2.730173722,47.09187657,46.0928236,10.76569484,13.02079306,,2047,199.9238564,22.14357843,5.642086166,104.6566099,21.76983359,3.954995597,47.09187657,46.0928236,10.76569484,13.02079306,,199.9238564,OK,158.1671037,OK,,22.14357843,5.642086166,104.6566099,21.76983359,3.954995597 +2048,188.040741,20.699829,5.368203,98.413368,20.959388,3.613347,44.904800,43.493103,10.166633,12.127928,,2048,52.80321977,0,0.232272936,35.60934096,15.69428938,1.267316498,0,0,0,0,,2048,153.8343043,22.37837503,5.555321561,72.69080657,7.292870324,2.813134684,47.86970235,48.38805004,10.88846034,13.24561111,,2048,206.6375241,22.37837503,5.787594496,108.3001475,22.98715971,4.080451182,47.86970235,48.38805004,10.88846034,13.24561111,,206.6375241,OK,163.5337279,OK,,22.37837503,5.787594496,108.3001475,22.98715971,4.080451182 +2049,193.521637,20.838336,5.488287,101.367261,22.042812,3.708329,45.525534,45.399865,10.251579,12.292892,,2049,55.6625583,0,0.24260996,37.48635843,16.6226892,1.31090071,0,0,0,0,,2049,157.8461771,22.60049944,5.693147864,74.53165483,7.643098396,2.897735787,48.63606175,50.75675442,11.00924116,13.47504131,,2049,213.5087354,22.60049944,5.935757824,112.0180133,24.26578759,4.208636497,48.63606175,50.75675442,11.00924116,13.47504131,,213.5087354,OK,169.0286946,OK,,22.60049944,5.935757824,112.0180133,24.26578759,4.208636497 +2050,199.082501,20.960459,5.609548,104.351656,23.173663,3.804282,46.131212,47.348457,10.332980,12.459435,,2050,58.63722715,0,0.253305346,39.42832046,17.60002177,1.355579572,0,0,0,0,,2050,161.9024288,22.80833406,5.833399807,76.38211652,8.007776523,2.983977686,49.39127182,53.19935958,11.12785166,13.70919601,,2050,220.539656,22.80833406,6.086705153,115.810437,25.6077983,4.339557257,49.39127182,53.19935958,11.12785166,13.70919601,,220.539656,OK,174.6528317,OK,,22.80833406,6.086705153,115.810437,25.6077983,4.339557257 +2051,204.722961,21.064707,5.731985,107.365559,24.353129,3.901163,46.721343,49.338756,10.410539,12.627551,,2051,61.73035359,0,0.26436751,41.43646914,18.6281524,1.401364546,0,0,0,0,,2051,166.0025121,23.00020627,5.976175451,78.24143412,8.3872188,3.071865409,50.13498772,55.71689687,11.24405184,13.94819382,,2051,227.7328657,23.00020627,6.240542961,119.6779033,27.0153712,4.473229955,50.13498772,55.71689687,11.24405184,13.94819382,,227.7328657,OK,180.4072536,OK,,23.00020627,6.240542961,119.6779033,27.0153712,4.473229955 +2052,210.442651,21.149584,5.855597,110.407977,25.582398,3.998931,47.295436,51.370639,10.483962,12.797236,,2052,64.94505977,0,0.275806984,43.51203104,19.70895636,1.448265382,0,0,0,0,,2052,170.1458006,23.17432678,6.121552189,80.1089615,8.781740263,3.161401733,50.86705674,58.31043913,11.35755017,14.192098,,2052,235.0908604,23.17432678,6.397359173,123.6209925,28.49069663,4.609667114,50.86705674,58.31043913,11.35755017,14.192098,,235.0908604,FALSE,186.2930422,OK,,23.17432678,6.397359173,123.6209925,28.49069663,4.609667114 +2053,216.241201,21.213599,5.980384,113.477914,26.862658,4.097545,47.852997,53.443982,10.552954,12.968488,,2053,68.28401462,0,0.287633501,45.65582399,20.84427601,1.496281117,0,0,0,0,,2053,174.3314866,23.32877422,6.269611598,81.98426633,9.191607581,3.252580445,51.58834029,60.98033689,11.46803766,14.44088376,,2053,242.6155012,23.32877422,6.557245099,127.6400903,30.03588359,4.748861561,51.58834029,60.98033689,11.46803766,14.44088376,,242.6155012,OK,192.3108548,FALSE,,23.32877422,6.557245099,127.6400903,30.03588359,4.748861561 +2054,222.118241,21.255258,6.106345,116.574378,28.195096,4.196964,48.393535,55.558663,10.617218,13.141302,,2054,71.74969679,0,0.299857566,47.86848502,22.03594809,1.545406119,0,0,0,0,,2054,178.5586701,23.46151934,6.420425342,83.86706195,9.617069658,3.34539088,52.30010772,63.72668854,11.57517096,14.69446761,,2054,250.3083669,23.46151934,6.720282908,131.735547,31.65301774,4.890796999,52.30010772,63.72668854,11.57517096,14.69446761,,250.3083669,OK,198.461164,OK,,23.46151934,6.720282908,131.735547,31.65301774,4.890796999 +2055,228.073404,21.273068,6.233480,119.696373,29.580901,4.297147,48.916558,57.714559,10.676459,13.315675,,2055,75.34468421,0,0.312490898,50.15070278,23.28585399,1.595636534,0,0,0,0,,2055,182.8264418,23.57050564,6.574062617,85.75700707,10.05838646,3.439823754,53.00326676,66.54976909,11.67859317,14.95277875,,2055,258.1711261,23.57050564,6.886553515,135.9077098,33.34424045,5.035460288,53.00326676,66.54976909,11.67859317,14.95277875,,258.1711261,OK,204.7444697,OK,,23.57050564,6.886553515,135.9077098,33.34424045,5.035460288 +2056,234.106321,21.265535,6.361786,122.842906,31.021260,4.398052,49.421575,59.911547,10.730382,13.491602,,2056,79.07202188,0,0.3255448,52.5035207,24.59597926,1.646977126,0,0,0,0,,2056,187.1340935,23.65374651,6.730606463,87.65362324,10.51585213,3.535878175,53.69813396,69.4502857,11.77797138,15.21583498,,2056,266.2061154,23.65374651,7.056151263,140.1571439,35.11183139,5.182855301,53.69813396,69.4502857,11.77797138,15.21583498,,266.2061154,OK,211.1617284,OK,,23.65374651,7.056151263,140.1571439,35.11183139,5.182855301 +2057,240.216622,21.231166,6.491265,126.012983,32.517360,4.499638,49.908092,62.149504,10.778691,13.669080,,2057,82.93485917,0,0.339033594,54.92803521,25.96835551,1.699434852,0,0,0,0,,2057,191.4807534,23.70920711,6.890129176,89.55621682,10.9897831,3.633554087,54.38419701,72.42935078,11.87294361,15.48366617,,2057,274.4156125,23.70920711,7.22916277,144.484252,36.95813861,5.33298894,54.38419701,72.42935078,11.87294361,15.48366617,,274.4156125,OK,217.7137495,OK,,23.70920711,7.22916277,144.484252,36.95813861,5.33298894 +2058,246.403938,21.168468,6.621915,129.205609,34.070391,4.601864,50.375620,64.428307,10.821090,13.848106,,2058,86.93595096,0,0.352976476,57.42498567,27.40497889,1.753009929,0,0,0,0,,2058,195.8651017,23.7346719,7.052668571,91.46398273,11.48049049,3.732843293,55.06045581,75.48817338,11.9630667,15.75621173,,2058,282.8010526,23.7346719,7.405645047,148.8889684,38.88546938,5.485853222,55.06045581,75.48817338,11.9630667,15.75621173,,282.8010526,OK,224.4006079,OK,,23.7346719,7.405645047,148.8889684,38.88546938,5.485853222 +2059,252.667902,21.075947,6.753736,132.419791,35.681539,4.704688,50.823664,66.747833,10.857285,14.028674,,2059,91.07795224,0,0.367395827,59.99499564,28.90785943,1.807701345,0,0,0,0,,2059,200.2855976,23.72784186,7.218241292,93.37597848,11.98829709,3.833734914,55.72532914,78.62823762,12.04785353,16.03338724,,2059,291.3635498,23.72784186,7.585637119,153.3709741,40.89615652,5.641436259,55.72532914,78.62823762,12.04785353,16.03338724,,291.3635498,OK,231.2220459,OK,,23.72784186,7.585637119,153.3709741,40.89615652,5.641436259 +2060,259.008144,20.952111,6.886727,135.654533,37.351992,4.808070,51.251735,69.107958,10.886979,14.210782,,2060,95.36369983,0,0.382313302,62.63881316,30.47906269,1.86351068,0,0,0,0,,2060,204.7408073,23.68641076,7.386865572,95.29129038,12.51353983,3.936220971,56.37730656,81.85114814,12.12681511,16.3151291,,2060,300.1045071,23.68641076,7.769178875,157.9301035,42.99260252,5.799731651,56.37730656,81.85114814,12.12681511,16.3151291,,300.1045071,OK,238.1780273,OK,,23.68641076,7.769178875,157.9301035,42.99260252,5.799731651 +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +Table 4: Total REF2 Commercial Lighting by Economic Development Status Petalumen hours (Plmh),,,,,,,Table 5: Total REF1 Commercial Lighting by Economic Development Status Petalumen hours (Plmh),,,,,,,,,,,,,,,"Table 6: Change in Commercial Lighting by MDC vs. LLDC Regions, REF1-REF2 Petalumen hours (Plmh)",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,LLDC+HighNRR,China,MDC + LAC + EE,Total Electricity Demand in Countries with Higher Educational Attainment (TWh), --> % LLDC,,,"LLDC with low educational attainment, excluding China","MDC + EE + LAC with low educational attainment, excluding China",China,"LLDC with higher educational attainment, excluding China",MDC + EE + LAC with higher educational attainment,,"Total Electricity Demand in Countries with Low Educational Attainment (TWh), exluding China", --> % LLDC,Total Electricity Demand in Countries with Higher Educational Attainment (TWh), --> % LLDC,Total Electricity Demand (TWh), --> % LLDC,,,LLDC,China,MDC + EE +LAC,Total change in REF1-REF2,% LLDC with higher educational attainment,% LLDC with Low Educational Attainment,% LLDC,% MDC + LAC + EE + China,,"% LLDC with low educational attainment, TWh)","% LLDC with higher educational attainment, TWh)",,,,,,,,,,,,,,,,,,,,,,,,, +2014,9.338421503,17.43928237,17.89136349,44.66906736,0.209057902,,2014,0,0,17.43928237,9.338421503,17.89136349,,0,,44.66906736,0.209057902,44.66906736,0,,,0,0,0,0,0,0,0,0,,0,1,,,,,,,,,,,,,,,,,,,,,,,,, +2015,9.397910354,19.19419539,20.07443038,48.66653612,0.193108265,,2015,5.218720884,0.406216556,19.19419539,4.17918947,19.66821382,,5.62493744,0.92778292,43.04159868,0.097096521,48.66653612,0.115581216,,,0,0,0,0,0,0,0,0,,0.555306519,0.444693481,,,,,,,,,,,,,,,,,,,,,,,,, +2016,10.13062153,20.03578642,20.03657931,50.20298726,0.201793202,,2016,5.644109261,0.42178531,20.05357454,4.501204915,19.63191522,,6.065894571,0.930466099,44.18669467,0.10186788,50.25258925,0.1207081,,,0.014692644,0.017788119,0.017121225,0.049601988,0.131420814,0.164789972,0.296210786,0.703789214,,0.55632671,0.44367329,,,,,,,,,,,,,,,,,,,,,,,,, +2017,10.93369227,20.87855549,20.03515237,51.84740014,0.21088217,,2017,6.114605053,0.438544521,20.92336145,4.856828034,19.63818952,,6.553149574,0.933078817,45.41837901,0.106935301,51.97152858,0.126091146,,,0.037740814,0.044805959,0.041581674,0.124128447,0.13459512,0.169451336,0.304046456,0.695953544,,0.557320544,0.442679456,,,,,,,,,,,,,,,,,,,,,,,,, +2018,11.80780819,21.72201069,20.06861439,53.59843328,0.220301368,,2018,6.631489475,0.456465597,21.8020064,5.24612987,19.68436276,,7.087955072,0.935599818,46.73249903,0.112258706,53.8204541,0.131696307,,,0.069811152,0.079995709,0.072213961,0.222020822,0.138880327,0.175554828,0.314435155,0.685564845,,0.558318067,0.441681933,,,,,,,,,,,,,,,,,,,,,,,,, +2019,12.75365491,22.5656601,20.1354302,55.45474521,0.229983113,,2019,7.195682581,0.475481129,22.68661963,5.668991793,19.767099,,7.67116371,0.93801708,48.12271042,0.117802837,55.79387413,0.137491146,,,0.111019464,0.120959532,0.107149925,0.339128921,0.144258472,0.183108075,0.327366548,0.672633452,,0.55933655,0.44066345,,,,,,,,,,,,,,,,,,,,,,,,, +2020,13.77191804,23.40901179,20.23406462,57.41499445,0.239866226,,2020,7.80818289,0.495536983,23.57466368,6.125308341,19.88356591,,8.303719873,0.940323495,49.58353793,0.123535121,57.8872578,0.14344642,,,0.161573188,0.165651884,0.145038275,0.472263348,0.150401809,0.191723382,0.342125191,0.657874809,,0.560389551,0.439610449,,,,,,,,,,,,,,,,,,,,,,,,, +2021,14.86328321,24.25157386,20.36298248,59.47783954,0.249896152,,2021,8.470419574,0.51662723,24.4650878,6.615122036,20.03199946,,8.987046804,0.942514238,51.1122093,0.12942352,60.0992561,0.149536739,,,0.222258403,0.213513943,0.185644219,0.621416565,0.156838369,0.200825742,0.35766411,0.64233589,,0.561492573,0.438507427,,,,,,,,,,,,,,,,,,,,,,,,, +2022,16.02843602,25.09285437,20.5206486,61.64193899,0.260024851,,2022,9.184228053,0.538778036,25.35797822,7.138520873,20.21136192,,9.723006089,0.944587298,52.70786102,0.135435602,62.43086711,0.155740366,,,0.294312905,0.265123849,0.229491364,0.788928118,0.163149897,0.209904249,0.373054146,0.626945854,,0.562664297,0.437335703,,,,,,,,,,,,,,,,,,,,,,,,, +2023,17.2680621,25.93236142,20.70552781,63.90595133,0.270210548,,2023,9.951365971,0.561997487,26.2530186,7.695440309,20.42037423,,10.51336346,0.946544463,54.36883315,0.141541392,64.8821966,0.162037724,,,0.378744179,0.320657183,0.276843913,0.976245275,0.169182087,0.218777977,0.387960063,0.612039937,,0.563918808,0.436081192,,,,,,,,,,,,,,,,,,,,,,,,, +2024,18.58284707,26.76960309,20.91608493,66.26853509,0.280417351,,2024,10.77372554,0.586300328,27.15024658,8.285780904,20.65795711,,11.36002587,0.948389173,56.09398459,0.147712468,67.45401046,0.168411423,,,0.476659382,0.380643491,0.328172504,1.185475377,0.17479838,0.227284524,0.402082904,0.597917096,,0.565267814,0.434732186,,,,,,,,,,,,,,,,,,,,,,,,, +2025,19.97347653,27.60408745,21.1507848,68.72834879,0.290614817,,2025,11.65313057,0.611696478,28.04956054,8.909385527,20.92288298,,12.26482704,0.95012596,57.88182905,0.153923704,70.14665609,0.174845498,,,0.58903956,0.445473089,0.383794657,1.418307305,0.179947418,0.235364241,0.415311659,0.584688341,,0.566717152,0.433282848,,,,,,,,,,,,,,,,,,,,,,,,, +2026,21.44063612,28.43532259,21.40809224,71.28405095,0.300777465,,2026,12.59145415,0.638196603,28.95048231,9.5663108,21.21378351,,13.22965075,0.951760132,59.73057663,0.160157684,72.96022738,0.181326885,,,0.717128833,0.515159721,0.443887875,1.676176429,0.184712374,0.243123754,0.427836128,0.572163872,,0.56826373,0.43173627,,,,,,,,,,,,,,,,,,,,,,,,, +2027,22.98501144,29.2628166,21.68647207,73.93430011,0.310884277,,2027,13.59020881,0.665792579,29.85214504,10.25630762,21.52889193,,14.25600139,0.953297383,61.6373446,0.166397623,75.89334598,0.187842573,,,0.861504987,0.589328449,0.508212438,1.959045874,0.189138214,0.25061922,0.439757434,0.560242566,,0.569903317,0.430096683,,,,,,,,,,,,,,,,,,,,,,,,, +2028,24.60728812,30.08607754,21.98438913,76.67775478,0.320918214,,2028,14.65032224,0.694451201,30.75363772,10.97849705,21.86610313,,15.34477344,0.95474347,63.5982379,0.172622661,78.94301134,0.194377858,,,1.02153117,0.667560178,0.576165205,2.265256553,0.193173931,0.257782129,0.45095606,0.54904394,,0.571634693,0.428365307,,,,,,,,,,,,,,,,,,,,,,,,, +2029,26.30815176,30.90461351,22.30030823,79.5130735,0.330865738,,2029,15.77223645,0.72412191,31.65386556,11.73167626,22.22304668,,16.49635836,0.956104136,65.6085885,0.178813118,82.10494686,0.200917959,,,1.195760953,0.74925205,0.64686036,2.591873362,0.196786897,0.264563171,0.461350068,0.538649932,,0.57345428,0.42654572,,,,,,,,,,,,,,,,,,,,,,,,, +2030,28.088288,31.71793259,22.6326942,82.43891479,0.340716372,,2030,16.95650141,0.754765415,32.55185248,12.51490737,22.59754953,,17.71126682,0.957385012,67.66430938,0.184955813,85.3755762,0.207451213,,,1.383120778,0.833919891,0.71962074,2.93666141,0.200001371,0.270982711,0.470984082,0.529015918,,0.575354288,0.424645712,,,,,,,,,,,,,,,,,,,,,,,,, +2031,29.94838244,32.52554285,22.98001188,85.45393717,0.350462289,,2031,18.20411501,0.786360674,33.44667029,13.32778466,22.98780779,,18.99047568,0.958591839,69.76226274,0.191045762,88.75273842,0.213970589,,,1.583517229,0.921127441,0.794156583,3.298801253,0.202896462,0.277131618,0.480028079,0.519971921,,0.577323764,0.422676236,,,,,,,,,,,,,,,,,,,,,,,,, +2032,31.8891207,33.32695238,23.34072608,88.55679916,0.360097937,,2032,19.51667265,0.818919194,34.33784754,14.17043437,23.39242358,,20.33559185,0.959729759,71.90070549,0.197083384,92.23629733,0.220472769,,,1.797986317,1.010895154,0.8706167,3.67949817,0.205549885,0.283099989,0.488649874,0.511350126,,0.579351401,0.420648599,,,,,,,,,,,,,,,,,,,,,,,,, +2033,33.91118841,34.12166927,23.71330163,91.74615931,0.369619706,,2033,20.89601967,0.852475186,35.22545274,15.04313161,23.81011742,,21.74849486,0.960803026,74.07870177,0.20306959,95.82719663,0.226955349,,,2.027962877,1.103783474,0.949290971,4.081037322,0.207998342,0.288925042,0.496923384,0.503076616,,0.581427744,0.418572256,,,,,,,,,,,,,,,,,,,,,,,,, +2034,36.01527117,34.90920158,24.09620336,95.02067612,0.379025625,,2034,22.34448054,0.88708722,36.10995925,15.94646379,24.23982577,,23.23156776,0.961815439,76.29624881,0.20900718,99.52781658,0.233417838,,,2.275673161,1.200757669,1.030709626,4.507140457,0.210269901,0.294634081,0.504903981,0.495096019,,0.583544776,0.416455224,,,,,,,,,,,,,,,,,,,,,,,,, +2035,38.20205461,35.68905742,24.4878961,98.37900813,0.388315102,,2035,23.86445156,0.922808308,36.99163496,16.8810202,24.68040352,,24.78725987,0.962770862,78.55305868,0.214899591,103.3403185,0.239860494,,,2.543417146,1.302577548,1.115315727,4.961310421,0.212393163,0.300257111,0.512650274,0.487349726,,0.585695797,0.414304203,,,,,,,,,,,,,,,,,,,,,,,,, +2036,40.47222434,36.46074485,24.88684467,101.8198139,0.397488689,,2036,25.45783673,0.959659718,37.8702459,17.84697539,25.13040725,,26.41749645,0.963673328,80.84762855,0.220748286,107.265125,0.246282251,,,2.83258778,1.409501057,1.203222305,5.445311142,0.214382407,0.305806009,0.520188416,0.479811584,,0.587875469,0.412124531,,,,,,,,,,,,,,,,,,,,,,,,, +2037,42.82646598,37.22377195,25.29151389,105.3417518,0.406547881,,2037,27.12655825,0.997650349,38.74504195,18.84457483,25.5882584,,28.12420859,0.964526989,83.17787518,0.226557541,111.3020838,0.252683576,,,3.144667088,1.52127,1.294394859,5.960331947,0.216274523,0.311324798,0.527599321,0.472400679,,0.590078087,0.409921913,,,,,,,,,,,,,,,,,,,,,,,,, +2038,45.26546515,37.97764682,25.7003686,108.9434806,0.415494942,,2038,28.87335596,1.036812809,39.6151845,19.87466333,26.05255522,,29.91016877,0.965335775,85.54240306,0.232336977,115.4525718,0.259068883,,,3.482554139,1.637537683,1.388999435,6.509091257,0.218132473,0.316896766,0.535029239,0.464970761,,0.592298033,0.407701967,,,,,,,,,,,,,,,,,,,,,,,,, +2039,47.78990747,38.72187753,26.11187362,112.6236586,0.424332756,,2039,30.70137554,1.077183175,40.47957607,20.93828893,26.52190074,,31.77855871,0.96610346,87.93976574,0.238098075,119.7183245,0.265444399,,,3.849757003,1.757698538,1.487210299,7.09466584,0.220018475,0.322608492,0.542626966,0.457373034,,0.594530887,0.405469113,,,,,,,,,,,,,,,,,,,,,,,,, +2040,50.40047855,39.45597216,26.52449377,116.3809445,0.433064698,,2040,32.61379766,1.118795906,41.33719756,22.03635181,26.99490181,,33.73259356,0.966833386,90.36845119,0.243850055,124.1010448,0.271815549,,,4.249670926,1.881225404,1.589203949,7.720100279,0.22196306,0.328505298,0.550468358,0.449531642,,0.596774171,0.403225829,,,,,,,,,,,,,,,,,,,,,,,,, +2041,53.097864,40.1794388,26.93669388,120.2139967,0.441694524,,2041,34.61351428,1.161680794,42.18753029,23.16925685,27.47011105,,35.77519508,0.967528317,92.8268982,0.24959637,128.6020933,0.278185169,,,4.684907127,2.008091495,1.695097965,8.388096588,0.223950121,0.334568379,0.5585185,0.4414815,,0.599028285,0.400971715,,,,,,,,,,,,,,,,,,,,,,,,, +2042,55.88274946,40.89178552,27.34693879,124.1214738,0.45022628,,2042,36.70326973,1.205863551,43.03009335,24.33729628,27.94613039,,37.90913328,0.968190685,95.31352001,0.255339392,133.2226533,0.284554709,,,5.157816549,2.138307827,1.80505515,9.101179527,0.225955016,0.340764554,0.56671957,0.43328043,,0.601293077,0.398706923,,,,,,,,,,,,,,,,,,,,,,,,, +2043,58.75582053,41.59252042,27.7536933,128.1020342,0.458664227,,2043,38.88607156,1.251369855,43.86388838,25.54111845,28.4216829,,40.13744142,0.968822879,97.82668973,0.26108538,137.9641311,0.290926642,,,5.671369484,2.271367964,1.919359447,9.862096896,0.227976141,0.347091164,0.575067305,0.424932695,,0.603566158,0.396433842,,,,,,,,,,,,,,,,,,,,,,,,, +2044,61.71776283,42.28115156,28.15542226,132.1543367,0.46701277,,2044,41.16495998,1.298223366,44.68777151,26.7814141,28.89554794,,42.46318334,0.969427083,100.3647335,0.266840883,142.8279169,0.297303106,,,6.228611249,2.406619945,2.038349043,10.67358024,0.230010851,0.353543224,0.583554076,0.416445924,,0.605844838,0.394155162,,,,,,,,,,,,,,,,,,,,,,,,, +2045,64.76926198,42.95718704,28.55059049,136.2770395,0.475276409,,2045,43.54300716,1.346447237,45.50078782,28.05868978,29.3664519,,44.8894544,0.970005266,102.9259295,0.272610507,147.8153839,0.303685944,,,6.832434962,2.543600784,2.162308648,11.53834439,0.232047066,0.360103309,0.592150375,0.407849625,,0.608128145,0.391871855,,,,,,,,,,,,,,,,,,,,,,,,, +2046,67.9110036,43.62013493,28.93766281,140.4688013,0.483459693,,2046,46.02341845,1.396068711,46.30224721,29.37331262,29.83295246,,47.41948716,0.970559177,105.5085123,0.278397562,152.9279995,0.310077208,,,7.485727476,2.682112282,2.29135837,12.45919813,0.234069232,0.36675013,0.600819362,0.399180638,,0.610416629,0.389583371,,,,,,,,,,,,,,,,,,,,,,,,, +2047,71.1436733,44.26950331,29.31510404,144.7282807,0.491567184,,2047,48.60932959,1.447111529,47.09187657,30.72523737,30.29354866,,50.05644112,0.971090403,108.1106626,0.28420173,158.1671037,0.316478205,,,8.190893664,2.822373255,2.425556146,13.43882307,0.236049369,0.373445497,0.609494866,0.390505134,,0.612713114,0.387286886,,,,,,,,,,,,,,,,,,,,,,,,, +2048,74.4679567,44.90480028,29.68137903,149.054136,0.499603424,,2048,51.30363034,1.499589433,47.86970235,32.11397455,30.74683127,,52.80321977,0.971600417,110.7305082,0.29001921,163.5337279,0.322888865,,,8.949648187,2.964902069,2.565041681,14.47959194,0.23795015,0.380136894,0.618087045,0.381912955,,0.615021618,0.384978382,,,,,,,,,,,,,,,,,,,,,,,,, +2049,77.88453942,45.5255339,30.03495258,153.4450259,0.507572917,,2049,54.10904763,1.55351067,48.63606175,33.53869148,31.19138309,,55.6625583,0.972090563,113.3661363,0.295844002,169.0286946,0.329308337,,,9.763199693,3.110527845,2.709941178,15.58366872,0.239733023,0.386768982,0.626502005,0.373497995,,0.617346758,0.382653242,,,,,,,,,,,,,,,,,,,,,,,,, +2050,81.39410708,46.13121226,30.37428953,157.8996089,0.515480106,,2050,57.02834223,1.608884918,49.39127182,34.99862121,31.62571155,,58.63722715,0.972562057,116.0156046,0.30167167,174.6528317,0.335735909,,,10.63285637,3.260059558,2.860306933,16.75322286,0.241372298,0.39330298,0.634675278,0.365324722,,0.619691665,0.380308335,,,,,,,,,,,,,,,,,,,,,,,,, +2051,84.99734529,46.72134345,30.69785471,162.4165435,0.523329357,,2051,60.06462153,1.665732056,50.13498772,36.49366519,32.04824713,,61.73035359,0.973015997,118.6769,0.307504368,180.4072536,0.342172237,,,11.56094144,3.413644269,3.01612447,17.99071018,0.242869415,0.39973676,0.642606174,0.357393826,,0.622055585,0.377944415,,,,,,,,,,,,,,,,,,,,,,,,, +2052,88.69493967,47.29543554,31.00411294,166.9944882,0.531124953,,2052,63.2209874,1.724072365,50.86705674,38.02364502,32.4572807,,64.94505977,0.973453372,121.3479825,0.313343858,186.2930422,0.348617742,,,12.54969275,3.571621199,3.177240127,19.29855407,0.244224968,0.406066899,0.650291866,0.349708134,,0.624437917,0.375562083,,,,,,,,,,,,,,,,,,,,,,,,, +2053,92.48757585,47.85299662,31.29152904,171.6321015,0.53887108,,2053,66.5001,1.783914618,51.58834029,39.58753362,32.85096626,,68.28401462,0.973875077,124.0268402,0.319185215,192.3108548,0.355071037,,,13.60005778,3.735343671,3.34335184,20.67875329,0.245420075,0.4122626,0.657682675,0.342317325,,0.626841204,0.373158796,,,,,,,,,,,,,,,,,,,,,,,,, +2054,96.37593942,48.39353477,31.55856785,176.328042,0.546571823,,2054,69.90443311,1.845263685,52.30010772,41.18402388,33.22733556,,71.74969679,0.974281931,126.7114672,0.325022074,198.461164,0.361530162,,,14.71251757,3.906572957,3.514031396,22.13312192,0.246436005,0.418292523,0.664728529,0.335271471,,0.629268198,0.370731802,,,,,,,,,,,,,,,,,,,,,,,,, +2055,100.360716,48.91655806,31.80369419,181.0809683,0.554231165,,2055,73.43655678,1.908127431,53.00326676,42.81212676,33.58439201,,75.34468421,0.974674691,129.3997855,0.330851605,204.7444697,0.367993745,,,15.88796752,4.086708696,3.688825258,23.66350147,0.247268102,0.424144264,0.671412366,0.328587634,,0.63171947,0.36828053,,,,,,,,,,,,,,,,,,,,,,,,, +2056,104.4425913,49.42157459,32.02537288,185.8895387,0.56185298,,2056,77.09949996,1.972521926,53.69813396,44.47134141,33.92023115,,79.07202188,0.97505411,132.0897065,0.336675299,211.1617284,0.374461899,,,17.1282501,4.276559375,3.867380198,25.27218967,0.247925347,0.429825584,0.677750932,0.322249068,,0.634194015,0.365805985,,,,,,,,,,,,,,,,,,,,,,,,, +2057,108.6222508,49.90809243,32.22206875,190.7524119,0.569441034,,2057,80.89639073,2.038468447,54.38419701,46.16180291,34.23289038,,82.93485917,0.975420849,134.7788903,0.342500245,217.7137495,0.380935331,,,18.43594287,4.476104576,4.049290072,26.96133752,0.248429981,0.435361869,0.68379185,0.31620815,,0.636687713,0.363312287,,,,,,,,,,,,,,,,,,,,,,,,, +2058,112.9003801,50.37561966,32.39224663,195.6682464,0.576998988,,2058,84.82996456,2.105986405,55.06045581,47.88401741,34.52018376,,86.93595096,0.975775426,137.464657,0.348336936,224.4006079,0.387414062,,,19.81360183,4.684836142,4.233923534,28.73236151,0.248808956,0.440782877,0.689591833,0.310408167,,0.639193876,0.360806124,,,,,,,,,,,,,,,,,,,,,,,,, +2059,117.277665,50.82366438,32.53437135,200.6357007,0.584530393,,2059,88.90285507,2.175097171,55.72532914,49.63894643,34.77981807,,91.07795224,0.976118291,140.1440936,0.354199347,231.2220459,0.39389822,,,21.26413649,4.901664761,4.420543892,30.58634515,0.249093211,0.446123442,0.695216653,0.304783347,,0.641704194,0.358295806,,,,,,,,,,,,,,,,,,,,,,,,, +2060,121.754791,51.25173465,32.64690772,205.6534334,0.592038698,,2060,93.11787585,2.245823982,56.37730656,51.42752365,35.0094973,,95.36369983,0.976449907,142.8143275,0.36010059,238.1780273,0.400388318,,,22.79060852,5.125571911,4.608413563,32.52459399,0.249307519,0.451411713,0.700719232,0.299280768,,0.644211965,0.355788035,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,Table 7: Difference in FUNCTIONAL & IMPLEMENTATION UNITS between REF1 and REF2 populations in LLDC+HighNRR+HighED,,,,,,,,Table 8: Difference in FUNCTIONAL & IMPLEMENTATION UNITS between REF1 and REF2 populations in LLDC+HighNRR+LowED,,,,,,,,Table 9: Difference in EMISSIONS between REF1 and REF2 populations in LLDC+HighNRR+HighED,,,,,,,,,,,,,Table 10: Difference in EMISSIONS between REF1 and REF2 populations in LLDC+HighNRR+LowED,,,,,,,,,,,,,,,Table 11: EMISSIONS ALLOCATIONS TO (a) Health & Education; (b) Education ONLY; (c) Family Planning (excluding education),,,,,,,,,,,, +,SOLUTION ,,,CONVENTIONAL,,,,,SOLUTION ,,,CONVENTIONAL,,,,,SOLUTION,,,,,CONVENTIONAL,,,,,EMISSION REDUCTIONS,,,SOLUTION ,,,,,CONVENTIONAL,,,,,EMISSION REDCUTIONS ,,,,,"Table 11(a): EMISSIONS ALLOCATION TO HEALTH & EDUCATION in LLDC, ComLight_cluster",,,,"Table 11(b): EMISSIONS ALLOCATION TO Education in LLDC, ComLight_cluster",,,"Table 11(c): EMISSIONS ALLOCATION TO Family Planning in LLDC, ComLight_cluster",,,,% Allocation to Education (Electricity), +,Additional Functional Units in REF2 vs REF1,Annual Functional Units Increase,Annual Implementation Units Increase + Replacement,Additional Functional Units in REF2 vs REF2,Annual Functional Units Increase,Change in TAM,Annual Implementation Units Increase + Replacement,,Additional Functional Units in REF2 vs REF1,Annual Functional Units Increase,Annual Implementation Units Increase + Replacement,Additional Functional Units in REF2 vs REF2,Annual Functional Units Increase,Change in TAM,Annual Implementation Units Increase + Replacement,,Avoided Emissions/ Million Metric Tons CO2,,,,,Avoided Emissions/ Million Metric Tons CO2,,,,,ALL Years,,,Avoided Emissions/ Million Metric Tons CO2,,,,,Avoided Emissions/ Million Metric Tons CO2,,,,,ALL Years,,,,,,,,,,,,,,,,ALL Years, +,TWh,TWh,TW,TWh,TWh,%,TW,,TWh,TWh,TW,TWh,TWh,%,TW,,Grid,Fuel,Other Direct,Indirect,,Grid,Fuel,Other Direct,Indirect,,Conv Total,Solution Total,,Grid,Fuel,Other Direct,Indirect,,Grid,Fuel,Other Direct,Indirect,,Conv Total,Solution Total,,,,,Conv Total,Solution Total,,Conv Total,Solution Total,,Conv Total,Solution Total,,,Conv Total,Solution Total +2014,,,,0,,,Not modeled TBD,,,,,0,,,Not modeled TBD,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2014,0,0,,0,0,,0,0,,,, +2015,,,,0,0,,,,,,,0,0,,,,,,,,,0,,,,,0,0,,,,,,,0,,,,,0,0,,,,2015,0,0,,0,0,,0,0,,,, +2016,,,,0.007668035,0.007668035,0.12747819,,,,,,0.009615032,0.009615032,0.159846273,,,,,,,,0.093350431,,,,,0.093350431,0,,,,,,,0.11705311,,,,,0.11705311,0,,,,2016,0.210403541,0,,0.058526555,0,,0.151876986,0,,,0.278163355, +2017,,,,0.019844248,0.012176213,0.130557266,,,,,,0.024983331,0.015368299,0.164367796,,,,,,,,0.238629879,,,,,0.238629879,0,,,,,,,0.300428069,,,,,0.300428069,0,,,,2017,0.539057948,0,,0.150214034,0,,0.388843914,0,,,0.278660272, +2018,,,,0.036953138,0.01710889,0.134713917,,,,,,0.046711453,0.021728122,0.170288183,,,,,,,,0.440158082,,,,,0.440158082,0,,,,,,,0.556391809,,,,,0.556391809,0,,,,2018,0.996549891,0,,0.278195904,0,,0.718353986,0,,,0.279159034, +2019,,,,0.059119806,0.022166668,0.139930718,,,,,,0.075041097,0.028329644,0.177614833,,,,,,,,0.700514268,,,,,0.700514268,0,,,,,,,0.889166628,,,,,0.889166628,0,,,,2019,1.589680896,0,,0.444583314,0,,1.145097582,0,,,0.279668275, +2020,,,,0.086493923,0.027374116,0.145889755,,,,,,0.110257366,0.03521627,0.185971681,,,,,,,,1.018455573,,,,,1.018455573,0,,,,,,,1.298267276,,,,,1.298267276,0,,,,2020,2.316722849,0,,0.649133638,0,,1.667589211,0,,,0.280194775, +2021,,,,0.119501397,0.033007474,0.152133218,,,,,,0.153017128,0.042759761,0.194800969,,,,,,,,1.398661225,,,,,1.398661225,0,,,,,,,1.790934067,,,,,1.790934067,0,,,,2021,3.189595292,0,,0.895467034,0,,2.294128258,0,,,0.280746287, +2022,,,,0.158770886,0.039269489,0.1582554,,,,,,0.204270332,0.051253205,0.203607121,,,,,,,,1.847228406,,,,,1.847228406,0,,,,,,,2.37659415,,,,,2.37659415,0,,,,2022,4.223822556,0,,1.188297075,0,,3.035525481,0,,,0.281332149, +2023,,,,0.204780446,0.04600956,0.164106624,,,,,,0.264812029,0.060541697,0.212214637,,,,,,,,2.368621731,,,,,2.368621731,0,,,,,,,3.062985449,,,,,3.062985449,0,,,,2023,5.43160718,0,,1.531492725,0,,3.900114456,0,,,0.281959404, +2024,,,,0.25802306,0.053242614,0.169554428,,,,,,0.33549881,0.070686781,0.220465988,,,,,,,,2.967328672,,,,,2.967328672,0,,,,,,,3.858318858,,,,,3.858318858,0,,,,2024,6.82564753,0,,1.929159429,0,,4.896488101,0,,,0.282633907, +2025,,,,0.31889777,0.06087471,0.174548996,,,,,,0.417105909,0.081607099,0.228303313,,,,,,,,3.648748202,,,,,3.648748202,0,,,,,,,4.772421069,,,,,4.772421069,0,,,,2025,8.421169271,0,,2.386210535,0,,6.034958737,0,,,0.283358576, +2026,,,,0.387938237,0.069040468,0.179171003,,,,,,0.510615496,0.093509587,0.235830041,,,,,,,,4.41141906,,,,,4.41141906,0,,,,,,,5.806436986,,,,,5.806436986,0,,,,2026,10.21785605,0,,2.903218493,0,,7.314637553,0,,,0.284131865, +2027,,,,0.465302038,0.077363801,0.183464067,,,,,,0.616552476,0.105936981,0.243100644,,,,,,,,5.261997867,,,,,5.261997867,0,,,,,,,6.972455625,,,,,6.972455625,0,,,,2027,12.23445349,0,,3.486227812,0,,8.74822568,0,,,0.284951658, +2028,,,,0.550460336,0.085158297,0.187378713,,,,,,0.734565147,0.118012671,0.250048665,,,,,,,,6.191084011,,,,,6.191084011,0,,,,,,,8.26172976,,,,,8.26172976,0,,,,2028,14.45281377,0,,4.13086488,0,,10.32194889,0,,,0.285817346, +2029,,,,0.642444445,0.09198411,0.19088329,,,,,,0.86371167,0.129146523,0.256626276,,,,,,,,7.1865799,,,,,7.1865799,0,,,,,,,9.661742697,,,,,9.661742697,0,,,,2029,16.8483226,0,,4.830871348,0,,12.01745125,0,,,0.28672714, +2030,,,,0.740498116,0.09805367,0.19400133,,,,,,1.003304057,0.139592387,0.26285323,,,,,,,,8.240910928,,,,,8.240910928,0,,,,,,,11.16564539,,,,,11.16564539,0,,,,2030,19.40655631,0,,5.582822693,0,,13.82373362,0,,,0.287677144, +2031,,,,0.844405867,0.103907751,0.196809568,,,,,,1.153354583,0.150050526,0.268817669,,,,,,,,9.34497646,,,,,9.34497646,0,,,,,,,12.76408875,,,,,12.76408875,0,,,,2031,22.10906521,0,,6.382044373,0,,15.72702083,0,,,0.288661882, +2032,,,,0.95455719,0.110151323,0.199383388,,,,,,1.314693659,0.161339076,0.274606989,,,,,,,,10.50790315,,,,,10.50790315,0,,,,,,,14.47233731,,,,,14.47233731,0,,,,2032,24.98024046,0,,7.236168654,0,,17.7440718,0,,,0.289675701, +2033,,,,1.071537357,0.116980167,0.201758391,,,,,,1.488444446,0.173750787,0.280257291,,,,,,,,11.73316884,,,,,11.73316884,0,,,,,,,16.29823717,,,,,16.29823717,0,,,,2033,28.03140602,0,,8.149118587,0,,19.88228743,0,,,0.290713872, +2034,,,,1.196322235,0.124784878,0.203961804,,,,,,1.676308884,0.187864438,0.285795058,,,,,,,,13.0302733,,,,,13.0302733,0,,,,,,,18.2582604,,,,,18.2582604,0,,,,2034,31.2885337,0,,9.129130198,0,,22.1594035,0,,,0.291772388, +2035,,,,1.329896299,0.133574063,0.206021368,,,,,,1.880054962,0.203746078,0.291249397,,,,,,,,14.40645613,,,,,14.40645613,0,,,,,,,20.36619649,,,,,20.36619649,0,,,,2035,34.77265261,0,,10.18309824,0,,24.58955437,0,,,0.292847899, +2036,,,,1.472750029,0.14285373,0.207950935,,,,,,2.100805821,0.220750859,0.296631829,,,,,,,,15.87131788,,,,,15.87131788,0,,,,,,,22.63965801,,,,,22.63965801,0,,,,2036,38.5109759,0,,11.31982901,0,,27.19114689,0,,,0.293937734, +2037,,,,1.625415386,0.152665357,0.209786287,,,,,,2.339767575,0.238961753,0.301985054,,,,,,,,17.42314019,,,,,17.42314019,0,,,,,,,25.08041871,,,,,25.08041871,0,,,,2037,42.5035589,0,,12.54020936,0,,29.96334954,0,,,0.295039043, +2038,,,,1.789132639,0.163717253,0.211588499,,,,,,2.599201943,0.259434369,0.307389863,,,,,,,,19.07534907,,,,,19.07534907,0,,,,,,,27.71213453,,,,,27.71213453,0,,,,2038,46.7874836,0,,13.85606726,0,,32.93141634,0,,,0.296149017, +2039,,,,1.96541446,0.176281821,0.21341792,,,,,,2.881846154,0.282644211,0.312930237,,,,,,,,20.84144117,,,,,20.84144117,0,,,,,,,30.55936968,,,,,30.55936968,0,,,,2039,51.40081085,0,,15.27968484,0,,36.12112601,0,,,0.297265444, +2040,,,,2.155662241,0.190247781,0.215304168,,,,,,3.19037982,0.308533666,0.318650139,,,,,,,,22.72536759,,,,,22.72536759,0,,,,,,,33.63354091,,,,,33.63354091,0,,,,2040,56.3589085,0,,16.81677045,0,,39.54213804,0,,,0.298387086, +2041,,,,2.360814556,0.205152315,0.217231617,,,,,,3.526918834,0.336539014,0.324531328,,,,,,,,24.76176911,,,,,24.76176911,0,,,,,,,36.99263443,,,,,36.99263443,0,,,,2041,61.75440354,0,,18.49631722,0,,43.25808633,0,,,0.299514142, +2042,,,,2.581648865,0.220834309,0.219176366,,,,,,3.89340515,0.366486316,0.330541617,,,,,,,,26.92850197,,,,,26.92850197,0,,,,,,,40.61108761,,,,,40.61108761,0,,,,2042,67.53958957,0,,20.3055438,0,,47.23404577,0,,,0.300646538, +2043,,,,2.81924735,0.237598485,0.221136857,,,,,,4.292273043,0.398867893,0.336678429,,,,,,,,29.24276083,,,,,29.24276083,0,,,,,,,44.52178132,,,,,44.52178132,0,,,,2043,73.76454215,0,,22.26089066,0,,51.50365149,0,,,0.301783079, +2044,,,,3.074706615,0.255459265,0.223110526,,,,,,4.726045245,0.433772201,0.342936928,,,,,,,,31.71254231,,,,,31.71254231,0,,,,,,,48.74445876,,,,,48.74445876,0,,,,2044,80.45700107,0,,24.37222938,0,,56.08477169,0,,,0.302922419, +2045,,,,3.348999029,0.274292414,0.225085654,,,,,,5.197159592,0.471114348,0.34930021,,,,,,,,34.33716583,,,,,34.33716583,0,,,,,,,53.28628919,,,,,53.28628919,0,,,,2045,87.62345502,0,,26.64314459,0,,60.98031043,0,,,0.304064073, +2046,,,,3.643031368,0.294032339,0.227047155,,,,,,5.708064298,0.510904705,0.355747626,,,,,,,,37.1431689,,,,,37.1431689,0,,,,,,,58.19757638,,,,,58.19757638,0,,,,2046,95.34074528,0,,29.09878819,0,,66.24195709,0,,,0.305208315, +2047,,,,3.957407001,0.314375632,0.228967888,,,,,,6.260875998,0.552811701,0.362242133,,,,,,,,40.11135321,,,,,40.11135321,0,,,,,,,63.45877705,,,,,63.45877705,0,,,,2047,103.5701303,0,,31.72938852,0,,71.84074173,0,,,0.306356557, +2048,,,,4.292354177,0.334947176,0.230811646,,,,,,6.857243773,0.596367775,0.368732787,,,,,,,,43.2466876,,,,,43.2466876,0,,,,,,,69.08867884,,,,,69.08867884,0,,,,2048,112.3353664,0,,34.54433942,0,,77.79102702,0,,,0.307510809, +2049,,,,4.647820405,0.355466228,0.232541032,,,,,,7.498477863,0.641234091,0.375165912,,,,,,,,46.58674205,,,,,46.58674205,0,,,,,,,75.15988647,,,,,75.15988647,0,,,,2049,121.7466285,0,,37.57994324,0,,84.16668528,0,,,0.308673379, +2050,,,,5.023788019,0.375967614,0.234131129,,,,,,8.185988261,0.687510398,0.38150389,,,,,,,,50.18203024,,,,,50.18203024,0,,,,,,,81.76887817,,,,,81.76887817,0,,,,2050,131.9509084,0,,40.88443908,0,,91.06646932,0,,,0.309845833, +2051,,,,5.420749929,0.39696191,0.235583332,,,,,,8.921967448,0.735979187,0.387744657,,,,,,,,53.94028215,,,,,53.94028215,0,,,,,,,88.779864,,,,,88.779864,0,,,,2051,142.7201462,0,,44.389932,0,,98.33021415,0,,,0.311027792, +2052,,,,5.839116876,0.418366947,0.236898219,,,,,,9.70855725,0.786589802,0.393884892,,,,,,,,57.88877433,,,,,57.88877433,0,,,,,,,96.25025353,,,,,96.25025353,0,,,,2052,154.1390279,0,,48.12512677,0,,106.0139011,0,,,0.312218959, +2053,,,,6.278599337,0.439482461,0.238057473,,,,,,10.54694359,0.838386337,0.399894722,,,,,,,,62.01024941,,,,,62.01024941,0,,,,,,,104.1663223,,,,,104.1663223,0,,,,2053,166.1765717,0,,52.08316116,0,,114.0934106,0,,,0.313420602, +2054,,,,6.738650066,0.460050729,0.239042925,,,,,,11.43796716,0.891023575,0.405743747,,,,,,,,66.29567077,,,,,66.29567077,0,,,,,,,112.5281322,,,,,112.5281322,0,,,,2054,178.8238029,0,,56.26406608,0,,122.5597369,0,,,0.314634099, +2055,,,,7.218940315,0.480290249,0.239850059,,,,,,12.38280273,0.944835573,0.411419936,,,,,,,,70.7321821,,,,,70.7321821,0,,,,,,,121.3284249,,,,,121.3284249,0,,,,2055,192.060607,0,,60.66421245,0,,131.3963946,0,,,0.315859735, +2056,,,,7.719602139,0.500661824,0.240487587,,,,,,13.38339357,1.000590838,0.416930817,,,,,,,,75.33487992,,,,,75.33487992,0,,,,,,,130.6072942,,,,,130.6072942,0,,,,2056,205.9421741,0,,65.3036471,0,,140.638527,0,,,0.317097007, +2057,,,,8.241172987,0.521570848,0.240977082,,,,,,14.44226845,1.058874882,0.422301013,,,,,,,,80.0872808,,,,,80.0872808,0,,,,,,,140.3491968,,,,,140.3491968,0,,,,2057,220.4364776,0,,70.17459839,0,,150.2618792,0,,,0.318343857, +2058,,,,8.784250142,0.543077155,0.241344688,,,,,,15.56192794,1.11965948,0.42755939,,,,,,,,84.99678983,,,,,84.99678983,0,,,,,,,150.5778976,,,,,150.5778976,0,,,,2058,235.5746874,0,,75.28894878,0,,160.2857386,0,,,0.319596938, +2059,,,,9.349658453,0.565408311,0.241620415,,,,,,16.74514449,1.183216557,0.432739739,,,,,,,,90.06684649,,,,,90.06684649,0,,,,,,,161.3088185,,,,,161.3088185,0,,,,2059,251.375665,0,,80.65440925,0,,170.7212557,0,,,0.320852097, +2060,,,,9.938263416,0.588604963,0.241828293,,,,,,17.99483843,1.249693937,0.437869362,,,,,,,,95.33286144,,,,,95.33286144,0,,,,,,,172.6156137,,,,,172.6156137,0,,,,2060,267.9484751,0,,86.30780685,0,,181.6406683,0,,,0.322105983, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,Table 12: Difference in FUNCTIONAL & IMPLEMENTATION UNITS between REF1 and REF2 populations in MDC + LAC + EE + China,,,,,,,,,Table 13: Difference in EMISSIONS between REF1 and REF2 populations in MDC + LAC + EE + China,,,,,,,,,,,,,,Table 14: EMISSIONS ALLOCATIONS TO (a) Health & Education; (b) Education ONLY; (c) Family Planning (excluding education),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,SOLUTION ,,,CONVENTIONAL,,,,,,SOLUTION,,,,,CONVENTIONAL,,,,,EMISSION REDUCTIONS,,,,"Table 14(a): EMISSIONS ALLOCATION TO HEALTH & EDUCATION in MDC, ComLight_cluster",,,,"Table 14(b): EMISSIONS ALLOCATION TO Education in MDC, ComLight_cluster",,,"Table 14(c): EMISSIONS ALLOCATION TO Family Planning in MDC, ComLight_cluster",,,,% Allocation to Education (Electricity),,,,,,,,,,,,,,,,,,,,,, +,Additional Functional Units in REF2 vs REF1,Annual Functional Units Increase,Annual Implementation Units Increase + Replacement,Additional Functional Units in REF2 vs REF2,Annual Functional Units Increase,Change in TAM,Annual Implementation Units Increase + Replacement,,,Avoided Emissions/ Million Metric Tons CO2,,,,,Avoided Emissions/ Million Metric Tons CO2,,,,,ALL Years,,,,,,,,,,,,,,,ALL Years,,,,,,,,,,,,,,,,,,,,,, +,TWh,TWh,TW,TWh,TWh,%,TW,,,Grid,Fuel,Other Direct,Indirect,,Grid,Fuel,Other Direct,Indirect,,Conv Total,Solution Total,,,,Conv Total,Solution Total,,Conv Total,Solution Total,,Conv Total,Solution Total,,,Conv Total,Solution Total,,,,,,,,,,,,,,,,,,,,, +2014,,,,0,,,Not modeled TBD,,,,,,,,,,,,,,,,,2014,0,0,,,,,0,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2015,,,,0,0,,,,,,,,,,0,,,,,0,0,,,2015,0,0,,,,,0,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2016,,,,0.041064125,0.041064125,0.682675537,,,,,,,,,0.499913404,,,,,0.499913404,0,,,2016,0.499913404,0,,,,,0.499913404,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2017,,,,0.102609032,0.061544908,0.675074937,,,,,,,,,1.233888049,,,,,1.233888049,0,,,2017,1.233888049,0,,,,,1.233888049,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2018,,,,0.182414406,0.079805374,0.664997899,,,,,,,,,2.17278367,,,,,2.17278367,0,,,2018,2.17278367,0,,,,,2.17278367,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2019,,,,0.275657706,0.093243299,0.652454449,,,,,,,,,3.266285318,,,,,3.266285318,0,,,2019,3.266285318,0,,,,,3.266285318,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2020,,,,0.378334364,0.102676659,0.638138565,,,,,,,,,4.4548418,,,,,4.4548418,0,,,2020,4.4548418,0,,,,,4.4548418,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2021,,,,0.489421286,0.111086922,0.623065813,,,,,,,,,5.728255845,,,,,5.728255845,0,,,2021,5.728255845,0,,,,,5.728255845,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2022,,,,0.610118369,0.120697082,0.608137479,,,,,,,,,7.098454932,,,,,7.098454932,0,,,2022,7.098454932,0,,,,,7.098454932,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2023,,,,0.740821998,0.130703629,0.593678739,,,,,,,,,8.568821461,,,,,8.568821461,0,,,2023,8.568821461,0,,,,,8.568821461,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2024,,,,0.882596275,0.141774277,0.579979583,,,,,,,,,10.1500743,,,,,10.1500743,0,,,2024,10.1500743,0,,,,,10.1500743,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2025,,,,1.036168287,0.153572013,0.567147691,,,,,,,,,11.85557735,,,,,11.85557735,0,,,2025,11.85557735,0,,,,,11.85557735,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2026,,,,1.20167501,0.165506723,0.554998956,,,,,,,,,13.66478355,,,,,13.66478355,0,,,2026,13.66478355,0,,,,,13.66478355,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2027,,,,1.378261973,0.176586963,0.543435289,,,,,,,,,15.5864599,,,,,15.5864599,0,,,2027,15.5864599,0,,,,,15.5864599,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2028,,,,1.564532594,0.186270621,0.532572622,,,,,,,,,17.596459,,,,,17.596459,0,,,2028,17.596459,0,,,,,17.596459,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2029,,,,1.758514724,0.19398213,0.522490434,,,,,,,,,19.67128312,,,,,19.67128312,0,,,2029,19.67128312,0,,,,,19.67128312,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2030,,,,1.958663026,0.200148301,0.51314544,,,,,,,,,21.79771588,,,,,21.79771588,0,,,2030,21.79771588,0,,,,,21.79771588,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2031,,,,2.163997032,0.205334006,0.504372763,,,,,,,,,23.948793,,,,,23.948793,0,,,2031,23.948793,0,,,,,23.948793,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2032,,,,2.374669001,0.210671969,0.496009622,,,,,,,,,26.14069867,,,,,26.14069867,0,,,2032,26.14069867,0,,,,,26.14069867,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2033,,,,2.591681179,0.217012178,0.487984317,,,,,,,,,28.37850929,,,,,28.37850929,0,,,2033,28.37850929,0,,,,,28.37850929,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2034,,,,2.816829105,0.225147926,0.480243138,,,,,,,,,30.68074135,,,,,30.68074135,0,,,2034,30.68074135,0,,,,,30.68074135,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2035,,,,3.051532298,0.234703193,0.472729234,,,,,,,,,33.05653698,,,,,33.05653698,0,,,2035,33.05653698,0,,,,,33.05653698,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2036,,,,3.296177765,0.244645467,0.465417236,,,,,,,,,35.52176817,,,,,35.52176817,0,,,2036,35.52176817,0,,,,,35.52176817,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2037,,,,3.550336492,0.254158728,0.458228659,,,,,,,,,38.05673981,,,,,38.05673981,0,,,2037,38.05673981,0,,,,,38.05673981,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2038,,,,3.813711709,0.263375217,0.451021639,,,,,,,,,40.66097758,,,,,40.66097758,0,,,2038,40.66097758,0,,,,,40.66097758,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2039,,,,4.085691328,0.271979619,0.443651843,,,,,,,,,43.32505798,,,,,43.32505798,0,,,2039,43.32505798,0,,,,,43.32505798,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2040,,,,4.365764223,0.280072895,0.436045692,,,,,,,,,46.02464843,,,,,46.02464843,0,,,2040,46.02464843,0,,,,,46.02464843,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2041,,,,4.653964667,0.288200443,0.428237055,,,,,,,,,48.81382921,,,,,48.81382921,0,,,2041,48.81382921,0,,,,,48.81382921,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2042,,,,4.95044522,0.296480553,0.420282017,,,,,,,,,51.63679524,,,,,51.63679524,0,,,2042,51.63679524,0,,,,,51.63679524,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2043,,,,5.254893643,0.304448423,0.412184714,,,,,,,,,54.50660368,,,,,54.50660368,0,,,2043,54.50660368,0,,,,,54.50660368,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2044,,,,5.566907086,0.312013443,0.403952547,,,,,,,,,57.4171128,,,,,57.4171128,0,,,2044,57.4171128,0,,,,,57.4171128,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2045,,,,5.886254123,0.319347036,0.395614136,,,,,,,,,60.35155047,,,,,60.35155047,0,,,2045,60.35155047,0,,,,,60.35155047,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2046,,,,6.212809645,0.326555522,0.387205218,,,,,,,,,63.3437966,,,,,63.3437966,0,,,2046,63.3437966,0,,,,,63.3437966,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2047,,,,6.546883646,0.334074001,0.37878998,,,,,,,,,66.35768378,,,,,66.35768378,0,,,2047,66.35768378,0,,,,,66.35768378,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2048,,,,6.889281926,0.34239828,0.370455567,,,,,,,,,69.41147234,,,,,69.41147234,0,,,2048,69.41147234,0,,,,,69.41147234,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2049,,,,7.241186807,0.351904881,0.362293055,,,,,,,,,72.58096753,,,,,72.58096753,0,,,2049,72.58096753,0,,,,,72.58096753,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2050,,,,7.603664464,0.362477657,0.354364981,,,,,,,,,75.95211394,,,,,75.95211394,0,,,2050,75.95211394,0,,,,,75.95211394,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2051,,,,7.9768898,0.373225336,0.346672011,,,,,,,,,79.37567534,,,,,79.37567534,0,,,2051,79.37567534,0,,,,,79.37567534,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2052,,,,8.361088893,0.384199093,0.33921689,,,,,,,,,82.8915054,,,,,82.8915054,0,,,2052,82.8915054,0,,,,,82.8915054,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2053,,,,8.757528617,0.396439724,0.332047805,,,,,,,,,86.4932614,,,,,86.4932614,0,,,2053,86.4932614,0,,,,,86.4932614,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2054,,,,9.167804512,0.410275895,0.325213327,,,,,,,,,90.19399192,,,,,90.19399192,0,,,2054,90.19399192,0,,,,,90.19399192,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2055,,,,9.593046969,0.425242457,0.318730005,,,,,,,,,93.99400957,,,,,93.99400957,0,,,2055,93.99400957,0,,,,,93.99400957,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2056,,,,10.03380502,0.440758054,0.312581596,,,,,,,,,97.91897082,,,,,97.91897082,0,,,2056,97.91897082,0,,,,,97.91897082,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2057,,,,10.4895796,0.455774576,0.306721905,,,,,,,,,101.9371767,,,,,101.9371767,0,,,2057,101.9371767,0,,,,,101.9371767,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2058,,,,10.95902265,0.469443054,0.301095922,,,,,,,,,106.0399841,,,,,106.0399841,0,,,2058,106.0399841,0,,,,,106.0399841,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2059,,,,11.43997537,0.48095272,0.295639847,,,,,,,,,110.2032241,,,,,110.2032241,0,,,2059,110.2032241,0,,,,,110.2032241,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2060,,,,11.93037068,0.490395306,0.290302345,,,,,,,,,114.4421643,,,,,114.4421643,0,,,2060,114.4421643,0,,,,,114.4421643,0,,,0,,,,,,,,,,,,,,,,,,,,,, diff --git a/solution/health_and_education/tests/test_com_light.py b/solution/health_and_education/tests/test_com_light.py new file mode 100644 index 000000000..7a88ea721 --- /dev/null +++ b/solution/health_and_education/tests/test_com_light.py @@ -0,0 +1,101 @@ +import sys +sys.path.append('c:\\Users\\sunishchal.dev\\Documents\\solutions\\solution\\health_and_education') + +import pandas as pd +import numpy as np + +from clusters import com_light + +test_cluster = com_light.Cluster() +test_dfs = test_cluster.run_cluster() + +expected_df = pd.read_csv('expected_com_light.csv', header=None) + +def test_com_light(): + + # Default columns to integers to avoid mismatch between Excel & pandas col names using T.reset_index() + exp_ref2_tam = expected_df.iloc[28:75, 1:11].T.reset_index(drop=True).T.astype(float) + exp_ref2_tam.index = expected_df.iloc[28:75, 0].astype(int).values + test_ref2_tam = test_dfs.ref2_tam.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_ref2_tam, exp_ref2_tam, check_exact=False) + + exp_ref1_tam_low_edu = expected_df.iloc[28:75, 13:23].T.reset_index(drop=True).T.astype(float) + exp_ref1_tam_low_edu.index = expected_df.iloc[28:75, 12].astype(int).values + test_ref1_tam_low_edu = test_dfs.ref1_tam_low_edu.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_ref1_tam_low_edu, exp_ref1_tam_low_edu, check_exact=False) + + exp_ref1_tam_high_edu = expected_df.iloc[28:75, 25:35].T.reset_index(drop=True).T.astype(float) + exp_ref1_tam_high_edu.index = expected_df.iloc[28:75, 24].astype(int).values + test_ref1_tam_high_edu = test_dfs.ref1_tam_high_edu.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_ref1_tam_high_edu, exp_ref1_tam_high_edu, check_exact=False) + + exp_ref1_tam_all_regions = expected_df.iloc[28:75, 37:47].T.reset_index(drop=True).T.astype(float) + exp_ref1_tam_all_regions.index = expected_df.iloc[28:75, 36].astype(int).values + test_ref1_tam_all_regions = test_dfs.ref1_tam_all_regions.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_ref1_tam_all_regions, exp_ref1_tam_all_regions, check_exact=False) + + exp_ref2_demand = expected_df.iloc[79:126, 1:6].T.reset_index(drop=True).T.astype(float) + exp_ref2_demand.index = expected_df.iloc[79:126, 0].astype(int).values + test_ref2_demand = test_dfs.ref2_demand.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_ref2_demand, exp_ref2_demand, check_exact=False, rtol=1e-3) + + exp_ref1_demand = expected_df.iloc[79:126, [8,9,10,11,12,14,15,16,17,18,19]].T.reset_index(drop=True).T.astype(float) + exp_ref1_demand.index = expected_df.iloc[79:126, 7].astype(int).values + test_ref1_demand = test_dfs.ref1_demand.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_ref1_demand, exp_ref1_demand, check_exact=False, rtol=1e-3) + + exp_change_demand = expected_df.iloc[79:126, 22:30].T.reset_index(drop=True).T.astype(float) + exp_change_demand.index = expected_df.iloc[79:126, 7].astype(int).values + test_change_demand = test_dfs.change_demand.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_change_demand, exp_change_demand, check_exact=False, rtol=1e-3) + + exp_addl_func_units_highed = expected_df.iloc[134:181, 4:7].T.reset_index(drop=True).T.astype(float) + exp_addl_func_units_highed.index = expected_df.iloc[134:181, 0].astype(int, errors='ignore').values + test_addl_func_units_highed = test_dfs.addl_func_units_highed.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_addl_func_units_highed, exp_addl_func_units_highed, check_exact=False, rtol=1e-3) + + exp_addl_func_units_lowed = expected_df.iloc[134:181, 12:15].T.reset_index(drop=True).T.astype(float) + exp_addl_func_units_lowed.index = expected_df.iloc[134:181, 0].astype(int, errors='ignore').values + test_addl_func_units_lowed = test_dfs.addl_func_units_lowed.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_addl_func_units_lowed, exp_addl_func_units_lowed, check_exact=False, rtol=1e-3) + + exp_emis_diff_highed = expected_df.iloc[134:181, [22, 23, 24, 25, 27]].T.reset_index(drop=True).T.astype(float) + exp_emis_diff_highed.index = expected_df.iloc[134:181, 0].astype(int, errors='ignore').values + test_emis_diff_highed = test_dfs.emis_diff_highed.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_emis_diff_highed, exp_emis_diff_highed, check_exact=False, rtol=1e-3) + + exp_emis_diff_lowed = expected_df.iloc[134:181, [35, 36, 37, 38, 40]].T.reset_index(drop=True).T.astype(float) + exp_emis_diff_lowed.index = expected_df.iloc[134:181, 0].astype(int, errors='ignore').values + test_emis_diff_lowed = test_dfs.emis_diff_lowed.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_emis_diff_lowed, exp_emis_diff_lowed, check_exact=False, rtol=1e-3) + + exp_emissions_allocations_lldc = expected_df.iloc[134:181, [46, 47, 49, 50, 52, 53, 56, 57]].T.reset_index(drop=True).T.astype(float) + exp_emissions_allocations_lldc.index = expected_df.iloc[134:181, 45].astype(int, errors='ignore').values + test_emissions_allocations_lldc = test_dfs.emissions_allocations_lldc.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_emissions_allocations_lldc, exp_emissions_allocations_lldc, check_exact=False, rtol=1e-2) + + exp_addl_func_units_mdc = expected_df.iloc[193:240, 4:7].T.reset_index(drop=True).T.astype(float) + exp_addl_func_units_mdc.index = expected_df.iloc[193:240, 0].astype(int, errors='ignore').values + test_addl_func_units_mdc = test_dfs.addl_func_units_mdc.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_addl_func_units_mdc, exp_addl_func_units_mdc, check_exact=False, rtol=1e-3) + + exp_emis_diff_mdc = expected_df.iloc[193:240, [15, 16, 17, 18, 20]].T.reset_index(drop=True).T.astype(float) + exp_emis_diff_mdc.index = expected_df.iloc[193:240, 0].astype(int, errors='ignore').values + test_emis_diff_mdc = test_dfs.emis_diff_mdc.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_emis_diff_mdc, exp_emis_diff_mdc, check_exact=False, rtol=1e-3) + + exp_emissions_allocations_mdc = expected_df.iloc[193:240, [25, 26, 28, 29, 31, 32, 35, 36]].T.reset_index(drop=True).T.astype(float) + exp_emissions_allocations_mdc.index = expected_df.iloc[193:240, 24].astype(int, errors='ignore').values + test_emissions_allocations_mdc = test_dfs.emissions_allocations_mdc.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_emissions_allocations_mdc, exp_emissions_allocations_mdc, check_exact=False, rtol=1e-2) + + # Test the final CO2 reduction output + exp_emissions_avoided = expected_df.iloc[[4, 7, 11], [13, 14]].reset_index(drop=True).T.reset_index(drop=True).T.astype(float) + test_emissions_avoided = pd.DataFrame([[test_dfs.emissions_avoided_lldc_period, test_dfs.emissions_avoided_lldc_full], + [test_dfs.emissions_avoided_mdc_period, test_dfs.emissions_avoided_mdc_full], + [test_dfs.emissions_avoided_total_period, test_dfs.emissions_avoided_total_full]]) + pd.testing.assert_frame_equal(test_emissions_avoided, exp_emissions_avoided, check_exact=False, rtol=1e-2) + + print("Test complete: com light cluster") + +test_com_light() \ No newline at end of file From 14cc7e59b836933a2496ddad991deeba665c4720 Mon Sep 17 00:00:00 2001 From: Sunishchal Date: Wed, 30 Dec 2020 01:57:34 -0800 Subject: [PATCH 20/28] Residential light cluster working implementation --- .../clusters/cluster_model.py | 26 ++ .../clusters/res_light.py | 182 +++++++++++++ .../tests/expected_res_light.csv | 240 ++++++++++++++++++ .../tests/test_res_light.py | 101 ++++++++ 4 files changed, 549 insertions(+) create mode 100644 solution/health_and_education/clusters/res_light.py create mode 100644 solution/health_and_education/tests/expected_res_light.csv create mode 100644 solution/health_and_education/tests/test_res_light.py diff --git a/solution/health_and_education/clusters/cluster_model.py b/solution/health_and_education/clusters/cluster_model.py index a1449fcd0..1335e5487 100644 --- a/solution/health_and_education/clusters/cluster_model.py +++ b/solution/health_and_education/clusters/cluster_model.py @@ -281,6 +281,32 @@ def calc_emis_diff_highed_spaceheating(self, ef_co2_eq_list): self.emis_diff_highed = emis_diff_highed + def calc_emis_diff_highed_waterheating(self, ef_co2_eq_list): + self.emissions_factors_ref1_co2eq = pd.DataFrame(ef_co2_eq_list[1:], + columns=ef_co2_eq_list[0], + index=list(range(2014, 2061)), dtype=np.float64) + + emis_diff_highed = pd.DataFrame(None, + columns=['Conventional: Grid','Conventional: Fuel', 'Conventional: Other Direct', 'Conventional: Indirect', 'Emission Reductions: Conv Total'], + index=list(range(2014, 2061)), dtype=np.float64) + + if self.assumptions['Grid'] == 'Y': + emis_diff_highed['Conventional: Grid'] = self.addl_func_units_highed['Additional Functional Units in REF2 vs REF2'] \ + * (self.current_tam_mix.loc[self.current_tam_mix['Energy Source'] == 'Electricity (Heating & Cooling)', 'Weighting Factor'].values[0] / self.conv_weight_sum) \ + * self.assumptions['Twh_per_TWh'] * self.emissions_factors_ref1_co2eq['World'] + + if self.assumptions['Fuel'] == 'Y': + emis_diff_highed['Conventional: Fuel'] = self.addl_func_units_highed['Additional Functional Units in REF2 vs REF2'] \ + * (self.current_tam_mix.loc[self.current_tam_mix['Energy Source'].isin(['Coal', 'Oil Products', 'Natural Gas']), 'Weighting Factor'].sum() \ + / self.conv_weight_sum) \ + * (self.assumptions['Weighted Emission Factor for Space Heating and Cooling'] * self.assumptions['TJ_per_TWh']) / 10**6 + + emis_diff_highed['Emission Reductions: Conv Total'] = emis_diff_highed[['Conventional: Grid', 'Conventional: Fuel', 'Conventional: Other Direct', 'Conventional: Indirect']].sum(axis=1, min_count=1) + + # WaterHeating_cluster!V131:Z179 + self.emis_diff_highed = emis_diff_highed + + def calc_emis_diff_highed_spacecooling(self, ef_co2_eq_list): self.emissions_factors_ref1_co2eq = pd.DataFrame(ef_co2_eq_list[1:], columns=ef_co2_eq_list[0], diff --git a/solution/health_and_education/clusters/res_light.py b/solution/health_and_education/clusters/res_light.py new file mode 100644 index 000000000..80f26290a --- /dev/null +++ b/solution/health_and_education/clusters/res_light.py @@ -0,0 +1,182 @@ +"""Health & Education solution model for Residential Light Cluster + Excel filename: CORE_PopulationChange_29Jan2020 (version 1.5).xlsx + Excel sheet name: ResLight_cluster +""" +import pathlib +import numpy as np +import pandas as pd +import sys +__file__ = 'c:\\Users\\sunishchal.dev\\Documents\\solutions\\solution\\health_and_education\\clusters' +repo_path = str(pathlib.Path(__file__).parents[2]) +sys.path.append(repo_path) +# sys.path.append('c:\\Users\\sunishchal.dev\\Documents\\solutions') + +from model import advanced_controls as ac +from solution.health_and_education.clusters import cluster_model + +DATADIR = pathlib.Path(__file__).parents[0].joinpath('data') +THISDIR = pathlib.Path(__file__).parents[0] + +name = 'Health and Education - Residential Light Cluster' +solution_category = ac.SOLUTION_CATEGORY.REDUCTION +period_start = 2020 +period_end = 2050 + +# % impact of educational attainment on uptake of Family Planning: +assumptions = { + 'fixed_weighting_factor': None, + 'pct_impact': 0.50, + 'use_fixed_weight': 'N', + 'Twh_per_TWh': 42.34, + 'period_start': 2020, + 'period_end': 2050, + 'Grid': 'Y', + 'Fuel': 'Y', + 'Other Direct': 'N', + 'Indirect': 'N' +} + +# TABLE 1: Current TAM Mix +current_tam_mix_list = [ + ['Energy Source', 'Weighting Factor', 'Include in SOL?', 'Include in CONV?'], + ['Incandescent', 19.1167883211679, 'N', 'Y'], + ['Halogen', 31.8613138686131, 'N', 'Y'], + ['LFL', 14.1605839416058, 'N', 'Y'], + ['CFL', 31.8613138686131, 'N', 'Y']] + +# Table 2: REF2, Residential Lighting Demand TAM (Plmh) +# ComLight_cluster!B28:K75 +# TODO: Replace this with solarpvutil.Scenario.ref_tam_per_region once we resolve the data mismatch +ref2_tam_list = [ + ['World', 'OECD90', 'Eastern Europe', 'Asia (Sans Japan)', 'Middle East and Africa', 'Latin America', 'China', 'India', 'EU', 'USA'], + [35.4547221, 9.794373552, 1.964518584, 13.19266535, 3.581666314, 1.56105251, 8.641704421, 2.530072744, 3.871085331, 4.030950662], + [35.13686627, 10.01766303, 1.951154263, 13.85151143, 3.747134398, 1.654489288, 8.916478443, 2.670750172, 3.880729963, 4.117565504], + [35.59044879, 10.05068271, 1.96410343, 13.92690104, 3.835573099, 1.667797468, 8.945605217, 2.70691206, 3.891812362, 4.1404158], + [36.03815483, 10.08559572, 1.976302369, 14.0086474, 3.925481129, 1.682035514, 8.976640258, 2.744266293, 3.902526858, 4.163828968], + [36.47998439, 10.1222983, 1.987781847, 14.09642286, 4.016800375, 1.697156622, 9.009457738, 2.782751518, 3.912879003, 4.187768353], + [36.91593747, 10.1606867, 1.998572631, 14.18989976, 4.109472727, 1.713113985, 9.043931829, 2.82230638, 3.92287435, 4.212197297], + [37.34601407, 10.20065716, 2.008705487, 14.28875046, 4.203440071, 1.729860796, 9.079936705, 2.862869527, 3.932518451, 4.237079145], + [37.77021419, 10.24210593, 2.018211183, 14.39264732, 4.298644297, 1.74735025, 9.117346537, 2.904379605, 3.941816859, 4.262377239], + [38.18853783, 10.28492925, 2.027120484, 14.50126268, 4.395027292, 1.765535541, 9.156035497, 2.94677526, 3.950775126, 4.288054923], + [38.60098498, 10.32902338, 2.035464158, 14.61426891, 4.492530946, 1.784369861, 9.195877759, 2.989995138, 3.959398805, 4.314075541], + [39.00755566, 10.37428456, 2.043272971, 14.73133834, 4.591097146, 1.803806406, 9.236747494, 3.033977886, 3.967693448, 4.340402435], + [39.40824985, 10.42060903, 2.05057769, 14.85214334, 4.69066778, 1.823798369, 9.278518876, 3.07866215, 3.975664608, 4.36699895], + [39.80306757, 10.46789305, 2.057409081, 14.97635626, 4.791184738, 1.844298943, 9.321066075, 3.123986577, 3.983317838, 4.39382843], + [40.1920088, 10.51603285, 2.063797912, 15.10364945, 4.892589907, 1.865261324, 9.364263266, 3.169889813, 3.990658689, 4.420854216], + [40.57507355, 10.5649247, 2.069774949, 15.23369526, 4.994825175, 1.886638703, 9.407984619, 3.216310504, 3.997692715, 4.448039653], + [40.95226183, 10.61446483, 2.075370959, 15.36616604, 5.097832431, 1.908384276, 9.452104309, 3.263187296, 4.004425468, 4.475348085], + [41.32357362, 10.66454948, 2.080616708, 15.50073416, 5.201553564, 1.930451237, 9.496496506, 3.310458837, 4.010862501, 4.502742854], + [41.68900893, 10.71507492, 2.085542963, 15.63707195, 5.305930461, 1.952792778, 9.541035383, 3.358063772, 4.017009365, 4.530187305], + [42.04856775, 10.76593738, 2.090180491, 15.77485178, 5.410905011, 1.975362094, 9.585595114, 3.405940748, 4.022871615, 4.55764478], + [42.4022501, 10.81703311, 2.094560058, 15.913746, 5.516419101, 1.998112379, 9.630049869, 3.454028411, 4.028454801, 4.585078623], + [42.75005597, 10.86825836, 2.098712431, 16.05342695, 5.622414622, 2.020996826, 9.674273822, 3.502265408, 4.033764477, 4.612452179], + [43.09198536, 10.91950937, 2.102668378, 16.193567, 5.72883346, 2.04396863, 9.718141145, 3.550590384, 4.038806195, 4.639728789], + [43.42803826, 10.97068239, 2.106458664, 16.3338385, 5.835617504, 2.066980984, 9.76152601, 3.598941987, 4.043585508, 4.666871797], + [43.75821469, 11.02167367, 2.110114056, 16.47391379, 5.942708642, 2.089987083, 9.80430259, 3.647258862, 4.048107968, 4.693844548], + [44.08251463, 11.07237946, 2.113665321, 16.61346523, 6.050048763, 2.112940119, 9.846345058, 3.695479657, 4.052379127, 4.720610384], + [44.40093809, 11.12269599, 2.117143226, 16.75216517, 6.157579755, 2.135793287, 9.887527585, 3.743543017, 4.056404539, 4.747132649], + [44.71348507, 11.17251953, 2.120578537, 16.88968598, 6.265243506, 2.158499781, 9.927724343, 3.791387588, 4.060189756, 4.773374687], + [45.02015557, 11.22174631, 2.124002021, 17.02569999, 6.372981905, 2.181012794, 9.966809507, 3.838952018, 4.06374033, 4.79929984], + [45.32094959, 11.27027258, 2.127444444, 17.15987956, 6.480736839, 2.203285521, 10.00465725, 3.886174952, 4.067061815, 4.824871453], + [45.61586713, 11.31799459, 2.130936574, 17.29189705, 6.588450198, 2.225271155, 10.04114174, 3.932995037, 4.070159761, 4.850052869], + [45.90490819, 11.36480858, 2.134509178, 17.4214248, 6.696063869, 2.246922889, 10.07613715, 3.979350919, 4.073039722, 4.87480743], + [46.18807277, 11.41061081, 2.138193021, 17.54813517, 6.803519741, 2.268193919, 10.10951765, 4.025181245, 4.075707251, 4.899098482], + [46.46536087, 11.45529752, 2.14201887, 17.67170052, 6.910759702, 2.289037438, 10.14115742, 4.070424661, 4.0781679, 4.922889366], + [46.73677248, 11.49876495, 2.146017493, 17.79179319, 7.01772564, 2.309406639, 10.17093063, 4.115019814, 4.080427222, 4.946143428], + [47.00230762, 11.54090935, 2.150219655, 17.90808554, 7.124359444, 2.329254716, 10.19871145, 4.158905349, 4.082490768, 4.968824009], + [47.26196627, 11.58162697, 2.154656125, 18.02024992, 7.230603002, 2.348534864, 10.22437406, 4.202019913, 4.084364092, 4.990894454], + [47.51574844, 11.62081406, 2.159357667, 18.12795869, 7.336398202, 2.367200276, 10.24779262, 4.244302153, 4.086052746, 5.012318106], + [47.76365413, 11.65836686, 2.164355049, 18.23088419, 7.441686933, 2.385204146, 10.26884131, 4.285690714, 4.087562283, 5.033058309], + [48.00568334, 11.69418162, 2.169679038, 18.32869878, 7.546411082, 2.402499667, 10.2873943, 4.326124244, 4.088898255, 5.053078405], + [48.24183608, 11.72815459, 2.1753604, 18.42107481, 7.650512539, 2.419040035, 10.30332576, 4.365541388, 4.090066215, 5.072341739], + [48.47211232, 11.76018201, 2.181429903, 18.50768464, 7.753933192, 2.434778442, 10.31650987, 4.403880794, 4.091071715, 5.090811654], + [48.69651209, 11.79016013, 2.187918312, 18.58820061, 7.856614928, 2.449668082, 10.32682079, 4.441081107, 4.091920307, 5.108451493], + [48.91503538, 11.8179852, 2.194856394, 18.66229509, 7.958499636, 2.463662149, 10.33413271, 4.477080973, 4.092617545, 5.1252246], + [49.12768219, 11.84355345, 2.202274917, 18.72964042, 8.059529205, 2.476713838, 10.33831979, 4.511819039, 4.093168981, 5.141094318], + [49.33445251, 11.86676115, 2.210204646, 18.78990895, 8.159645522, 2.488776341, 10.33925621, 4.545233952, 4.093580167, 5.156023991], + [49.53534636, 11.88750454, 2.218676349, 18.84277304, 8.258790476, 2.499802853, 10.33681613, 4.577264358, 4.093856656, 5.169976962], + [49.73036372, 11.90567986, 2.227720792, 18.88790505, 8.356905956, 2.509746568, 10.33087373, 4.607848903, 4.094004, 5.182916574]] + + +# GRID EMISSIONS FACTORS: REF Grid EFs kg CO2-eq per kwh +# Emissions Factors!B11:K57 +# TODO: Replace this with emissions_factors module once interface is better understood +ef_co2_eq_list = [ + ['World', 'OECD90', 'Eastern Europe', 'Asia (Sans Japan)', 'Middle East and Africa', 'Latin America', 'China', 'India', 'EU', 'USA'], + [None, None, None, None, None, None, None, None, None, None], + [0.617381628, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.613053712, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.605559021, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.599823764, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.596692109, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.592956465, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.589394210, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.585889941, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.582469966, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.579126508, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.576180724, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.572640473, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.569484654, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.566378788, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.563317175, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.560425096, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.557305440, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.554345365, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.551409592, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.548493724, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.545513743, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.542688056, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.539794403, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.536903541, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.533998347, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.530880184, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.528185055, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.525268472, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.522337859, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.519390128, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.516316183, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.513431317, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.510414389, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.507368630, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.504753472, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.503017663, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.501095098, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.499244741, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.497355610, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.495425752, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.493412239, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.491436597, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.489373931, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.487263794, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.485104746, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.483057065, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666]] + +class Cluster: + + def __init__(self): + self.name = name + + def run_cluster(self): + scenario = cluster_model.Scenario(name, assumptions) + scenario.load_pop_data(DATADIR) + scenario.load_tam_mix(current_tam_mix_list) + scenario.load_ref2_tam(ref2_tam_list) + scenario.calc_ref1_tam() + scenario.calc_ref2_demand() + scenario.calc_ref1_demand() + scenario.calc_change_demand() + scenario.calc_addl_units_highed() + scenario.calc_addl_units_lowed() + scenario.calc_emis_diff_highed_comlight(ef_co2_eq_list) + scenario.calc_emis_diff_lowed_comlight() + scenario.calc_emis_alloc_lldc() + scenario.calc_addl_units_mdc() + scenario.calc_emis_diff_mdc_comlight() + scenario.calc_emis_alloc_mdc() + scenario.calc_total_emis() + scenario.print_total_emis() + return scenario + +if __name__ == "__main__": + cluster = Cluster() + cluster.run_cluster() \ No newline at end of file diff --git a/solution/health_and_education/tests/expected_res_light.csv b/solution/health_and_education/tests/expected_res_light.csv new file mode 100644 index 000000000..de5971780 --- /dev/null +++ b/solution/health_and_education/tests/expected_res_light.csv @@ -0,0 +1,240 @@ +ResLight_cluster,,Residential Lighting,Petalumen hours (Plmh),,,,,Sheet Estimates the Emissions Reduction from this Solution due to Health & Education,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,Period Start:,2020,,Total Emissions Avoided due to Health & Education (Gt CO2-eq),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,COPY VALUES FROM SOLUTION MODEL,,,,Period End:,2050,,,,2020-2050,2015-2060,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,TABLE 1: Current TAM Mix,2018,Include in SOL?,Include in CONV?,,,,LLDC,SOLUTION,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,Incandescent,0.191167883,N,Y,,,,,CONVENTIONAL,0.713726052,1.36844983,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,Halogen,0.318613139,N,Y,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +Keywords:,,,,LFL,0.141605839,N,Y,,,,MDC,SOLUTION,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +LLDC,Least and Less Developed Countries,,,CFL,0.318613139,N,Y,,,,,CONVENTIONAL,0.90392758,1.593003871,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +MDC,More Developed Countries,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +LLDC+HighNRR+HigherEd,Least and Less Developed Countries with High Net Reproductive Rates & Higher Educational Attainment.,"NOTE: China, LAC, and EE are considered as LLDC Regions with Low NRR and are accounted for under the _mdc sheet.",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +LLDC+HighNRR+LowEd,"Least and Less Developed Countries with High Net Reproductive Rates & Lower Educational Attainment. This excludes China, LAC, and EE.","NOTE: China, LAC, and EE are considered as LLDC Regions with Low NRR and are accounted for under the _mdc sheet.",,,,,,,,,TOTAL,SOLUTION,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +REF1,Reference Scenario 1 with Higher Population,,,,,,,,,,,CONVENTIONAL,1.617653631,2.961453701,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +REF2,Reference Scenario 2 with Lower Population,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +TAM,Total Addressable Market,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +LAC,Latin American Countries,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +EE,Eastern Europe,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +TWh,Terrawatt-Hours,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +NRR,Net Reproductive Rate,,,Assumptions:,,Use fixed weight?,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,Fixed weighting factor:,,N,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,% impact of educational attainment on uptake of Family Planning:,0.5,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,Twh per TWh,42.34,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,Fuel unit (TJ) per TWh,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,Direct Emissions,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,Indirect Emissions,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +"Table 2: REF2, Residential Lighting TAM Petalumen hours (Plmh)",,,,,,,,,,,,"Table 3: REF1 ,Residential Lighting TAM Petalumen hours (Plmh)",,,,,,,,,,,,Table 3: REF1 Residential Lighting TAM Petalumen hours (Plmh),,,,,,,,,,,,Table 3: REF1 Residential Lighting TAM Petalumen hours (Plmh),,,,,,,,,,,,,,,,,,,,, +COPY TABLES BELOW FROM LATEST ResLight_cluster SOLUTION MODELS,,,,,,,,,,,,(a) FOR POPULATIONS IN REGIONS WITH LOW EDUCATIONAL ATTAINMENT ONLY!,,,,,,,,,,,,(b) FOR REGIONS WITH HIGHER EDUCATIONAL ATTAINMENT,,,,,,,,,,,,(c) FOR ALL REGIONS,,,,,,,,,,,,,,,,,,,,, +,Regions included as LLDC+HighNRR:,N,N,Y,Y,N,,,,,,,Regions included as LLDC+HighNRR:,N,N,Y,Y,N,,,,,,,Regions included as LLDC+HighNRR:,N,N,Y,Y,N,,,,,,,,,,,,,,,,,,CHECK,,,,,,,,, +,World,OECD90,Eastern Europe,Asia (Sans Japan),Middle East and Africa,Latin America,China,India,EU,USA,,,World,OECD90,Eastern Europe,"Asia (Sans Japan, Sans China)",Middle East and Africa,Latin America,China,India,EU,USA,,,World,OECD90,Eastern Europe,Asia (Sans Japan),Middle East and Africa,Latin America,China,India,EU,USA,,,World,OECD90,Eastern Europe,Asia (Sans Japan),Middle East and Africa,Latin America,China,India,EU,USA,,WORLD,,REGIONAL TOTAL,,% error,OECD90,Eastern Europe,Asia (Sans Japan),Middle East and Africa,Latin America +2014,35.4547221,9.794373552,1.964518584,13.19266535,3.581666314,1.56105251,8.641704421,2.530072744,3.871085331,4.030950662,,2014,0,0,0,0,0,0,0,0,0,0,,2014,35.4547221,9.794373552,1.964518584,13.19266535,3.581666314,1.56105251,8.641704421,2.530072744,3.871085331,4.030950662,,2014,35.4547221,9.794373552,1.964518584,13.19266535,3.581666314,1.56105251,8.641704421,2.530072744,3.871085331,4.030950662,,35.4547221,OK,30.09427631,OK,,9.794373552,1.964518584,13.19266535,3.581666314,1.56105251 +2015,35.13686627,10.01766303,1.951154263,13.85151143,3.747134398,1.654489288,8.916478443,2.670750172,3.880729963,4.117565504,,2015,5.327788401,0,0.040635434,2.576262485,2.246232486,0.464657996,0,0,0,0,,2015,29.80907786,10.01766303,1.910518829,11.27524894,1.500901911,1.189831292,8.916478443,2.670750172,3.880729963,4.117565504,,2015,35.13686627,10.01766303,1.951154263,13.85151143,3.747134398,1.654489288,8.916478443,2.670750172,3.880729963,4.117565504,,35.13686627,OK,31.2219524,OK,,10.01766303,1.951154263,13.85151143,3.747134398,1.654489288 +2016,35.59044879,10.05068271,1.96410343,13.92690104,3.835573099,1.667797468,8.945605217,2.70691206,3.891812362,4.1404158,,2016,5.436953464,0,0.041842673,2.613356715,2.311271082,0.470482994,0,0,0,0,,2016,30.19100005,10.05900005,1.923765207,11.32846975,1.528550185,1.199536326,8.95354728,2.710033874,3.894593676,4.144306289,,2016,35.62795351,10.05900005,1.96560788,13.94182646,3.839821267,1.670019321,8.95354728,2.710033874,3.894593676,4.144306289,,35.62795351,OK,31.47627498,OK,,10.05900005,1.96560788,13.94182646,3.839821267,1.670019321 +2017,36.03815483,10.08559572,1.976302369,14.0086474,3.925481129,1.682035514,8.976640258,2.744266293,3.902526858,4.163828968,,2017,5.55354663,0,0.043100082,2.654760292,2.378756322,0.476929935,0,0,0,0,,2017,30.57619467,10.10585733,1.936882109,11.390121,1.557112159,1.210515514,8.995904377,2.751895269,3.909315024,4.173305865,,2017,36.1297413,10.10585733,1.979982191,14.04488129,3.935868481,1.687445449,8.995904377,2.751895269,3.909315024,4.173305865,,36.1297413,OK,31.75403474,OK,,10.10585733,1.979982191,14.04488129,3.935868481,1.687445449 +2018,36.47998439,10.1222983,1.987781847,14.09642286,4.016800375,1.697156622,9.009457738,2.782751518,3.912879003,4.187768353,,2018,5.677086168,0,0.044398943,2.700190625,2.44855759,0.48393901,0,0,0,0,,2018,30.9626798,10.15754461,1.949778589,11.45907213,1.586440969,1.222650791,9.042636893,2.796096993,3.924676102,4.204255097,,2018,36.63976597,10.15754461,1.994177532,14.15926275,4.034998559,1.706589801,9.042636893,2.796096993,3.924676102,4.204255097,,36.63976597,OK,32.05257325,OK,,10.15754461,1.994177532,14.15926275,4.034998559,1.706589801 +2019,36.91593747,10.1606867,1.998572631,14.18989976,4.109472727,1.713113985,9.043931829,2.82230638,3.92287435,4.212197297,,2019,5.80680808,0,0.045724509,2.749195791,2.520469736,0.491418045,0,0,0,0,,2019,31.347109,10.21300424,1.962287444,11.53373515,1.61630263,1.235769084,9.092410348,2.84227614,3.940320403,4.23667535,,2019,37.15391708,10.21300424,2.008011953,14.28293094,4.136772365,1.727187129,9.092410348,2.84227614,3.940320403,4.23667535,,37.15391708,OK,32.36790662,OK,,10.21300424,2.008011953,14.28293094,4.136772365,1.727187129 +2020,37.34601407,10.20065716,2.008705487,14.28875046,4.203440071,1.729860796,9.079936705,2.862869527,3.932518451,4.237079145,,2020,5.942113575,0,0.047065056,2.801415038,2.594338839,0.499294642,0,0,0,0,,2020,31.72694605,10.27141311,1.974289529,11.61286774,1.646508875,1.249731141,9.144190106,2.890144549,3.955979695,4.270198692,,2020,37.66905962,10.27141311,2.021354585,14.41428278,4.240847714,1.749025783,9.144190106,2.890144549,3.955979695,4.270198692,,37.66905962,OK,32.69692398,OK,,10.27141311,2.021354585,14.41428278,4.240847714,1.749025783 +2021,37.77021419,10.24210593,2.018211183,14.39264732,4.298644297,1.74735025,9.117346537,2.904379605,3.941816859,4.262377239,,2021,6.082787493,0,0.048418183,2.856730329,2.670095041,0.50754394,0,0,0,0,,2021,32.10161086,10.33247927,1.98577289,11.69596365,1.67701123,1.264483027,9.197616816,2.939589139,3.971583183,4.304698148,,2021,38.18439836,10.33247927,2.034191072,14.55269398,4.347106271,1.772026967,9.197616816,2.939589139,3.971583183,4.304698148,,38.18439836,OK,33.03849756,OK,,10.33247927,2.034191072,14.55269398,4.347106271,1.772026967 +2022,38.18853783,10.28492925,2.027120484,14.50126268,4.395027292,1.765535541,9.156035497,2.94677526,3.950775126,4.288054923,,2022,6.228883388,0,0.049786503,2.915158439,2.747768132,0.516170314,0,0,0,0,,2022,32.47176343,10.39627125,1.996809708,11.78299719,1.707810215,1.280016038,9.252775523,2.990611577,3.987205994,4.340221,,2022,38.70064681,10.39627125,2.046596211,14.69815563,4.455578347,1.796186352,9.252775523,2.990611577,3.987205994,4.340221,,38.70064681,OK,33.39278779,OK,,10.39627125,2.046596211,14.69815563,4.455578347,1.796186352 +2023,38.60098498,10.32902338,2.035464158,14.61426891,4.492530946,1.784369861,9.195877759,2.989995138,3.959398805,4.314075541,,2023,6.380359103,0,0.051168594,2.976611513,2.827416307,0.525162689,0,0,0,0,,2023,32.83748476,10.46272927,2.007459732,11.87376679,1.738818136,1.296285759,9.309586041,3.043164345,4.002889854,4.376769888,,2023,39.21784386,10.46272927,2.058628326,14.8503783,4.566234442,1.821448448,9.309586041,3.043164345,4.002889854,4.376769888,,39.21784386,OK,33.75941879,OK,,10.46272927,2.058628326,14.8503783,4.566234442,1.821448448 +2024,39.00755566,10.37428456,2.043272971,14.73133834,4.591097146,1.803806406,9.236747494,3.033977886,3.967693448,4.340402435,,2024,6.537233043,0,0.05256378,3.041016004,2.909137367,0.534515893,0,0,0,0,,2024,33.19913671,10.53188627,2.017810915,11.96819473,1.769941536,1.313253853,9.368087052,3.09722567,4.018720559,4.414396972,,2024,39.73636975,10.53188627,2.070374695,15.00921073,4.679078903,1.847769746,9.368087052,3.09722567,4.018720559,4.414396972,,39.73636975,OK,34.13832034,OK,,10.53188627,2.070374695,15.00921073,4.679078903,1.847769746 +2025,39.40824985,10.42060903,2.05057769,14.85214334,4.69066778,1.823798369,9.278518876,3.07866215,3.975664608,4.36699895,,2025,6.699441065,0,0.053971556,3.108271808,2.992978703,0.544218998,0,0,0,0,,2025,33.55685119,10.60369337,2.027931795,12.06611544,1.801097767,1.330877341,9.428255051,3.152744884,4.034749656,4.453109187,,2025,40.25629225,10.60369337,2.081903351,15.17438725,4.79407647,1.875096339,9.428255051,3.152744884,4.034749656,4.453109187,,40.25629225,OK,34.52915678,OK,,10.60369337,2.081903351,15.17438725,4.79407647,1.875096339 +2026,39.80306757,10.46789305,2.057409081,14.97635626,4.791184738,1.844298943,9.321066075,3.123986577,3.983317838,4.39382843,,2026,6.866903457,0,0.055391711,3.178303415,3.078947035,0.554261295,0,0,0,0,,2026,33.91063116,10.67803785,2.037854444,12.16728305,1.832240449,1.349117626,9.48993484,3.209674912,4.05097955,4.492873439,,2026,40.77753461,10.67803785,2.093246156,15.34558646,4.911187485,1.903378921,9.48993484,3.209674912,4.05097955,4.492873439,,40.77753461,OK,34.93143687,OK,,10.67803785,2.093246156,15.34558646,4.911187485,1.903378921 +2027,40.1920088,10.51603285,2.063797912,15.10364945,4.892589907,1.865261324,9.364263266,3.169889813,3.990658689,4.420854216,,2027,7.039319237,0,0.056823782,3.250943848,3.166937616,0.564613992,0,0,0,0,,2027,34.25986836,10.75460115,2.047574903,12.27123387,1.863324313,1.367916969,9.552851631,3.267880895,4.067341188,4.533547924,,2027,41.2991876,10.75460115,2.104398685,15.52217772,5.030261929,1.932530961,9.552851631,3.267880895,4.067341188,4.533547924,,41.2991876,OK,35.34397044,OK,,10.75460115,2.104398685,15.52217772,5.030261929,1.932530961 +2028,40.57507355,10.5649247,2.069774949,15.23369526,4.994825175,1.886638703,9.407984619,3.216310504,3.997692715,4.448039653,,2028,7.216128219,0,0.058266949,3.325885648,3.256749232,0.575226391,0,0,0,0,,2028,34.60338269,10.83288324,2.057083693,12.37734023,1.894274154,1.387190777,9.6167322,3.327119446,4.08372987,4.574901259,,2028,41.81951091,10.83288324,2.115350642,15.70322587,5.151023386,1.962417168,9.6167322,3.327119446,4.08372987,4.574901259,,41.81951091,OK,35.76490031,OK,,10.83288324,2.115350642,15.70322587,5.151023386,1.962417168 +2029,40.95226183,10.61446483,2.075370959,15.36616604,5.097832431,1.908384276,9.452104309,3.263187296,4.004425468,4.475348085,,2029,7.39661616,0,0.059720289,3.402745408,3.348115283,0.58603518,0,0,0,0,,2029,34.93965479,10.91225918,2.066356018,12.48486427,1.925011602,1.406840485,9.681261309,3.387087546,4.100004039,4.616638576,,2029,42.33627095,10.91225918,2.126076307,15.88760968,5.273126885,1.992875666,9.681261309,3.387087546,4.100004039,4.616638576,,42.33627095,OK,36.19194772,OK,,10.91225918,2.126076307,15.88760968,5.273126885,1.992875666 +2030,41.32357362,10.66454948,2.080616708,15.50073416,5.201553564,1.930451237,9.496496506,3.310458837,4.010862501,4.502742854,,2030,7.580215606,0,0.061183717,3.481210997,3.440830326,0.596990566,0,0,0,0,,2030,35.26763324,10.99222942,2.075378206,12.59322354,1.955482024,1.426784833,9.746175999,3.447550361,4.116053788,4.658528115,,2030,42.84784884,10.99222942,2.136561923,16.07443454,5.39631235,2.023775398,9.746175999,3.447550361,4.116053788,4.658528115,,42.84784884,OK,36.62331363,OK,,10.99222942,2.136561923,16.07443454,5.39631235,2.023775398 +2031,41.68900893,10.71507492,2.085542963,15.63707195,5.305930461,1.952792778,9.541035383,3.358063772,4.017009365,4.530187305,,2031,7.76661932,0,0.062656863,3.561091961,3.534807808,0.608062687,0,0,0,0,,2031,35.58690846,11.07250822,2.084158617,12.70203418,1.985643266,1.446966307,9.811238699,3.508384829,4.131826551,4.70045316,,2031,43.35352778,11.07250822,2.146815481,16.26312614,5.520451074,2.055028994,9.811238699,3.508384829,4.131826551,4.70045316,,43.35352778,OK,37.05792991,OK,,11.07250822,2.146815481,16.26312614,5.520451074,2.055028994 +2032,42.04856775,10.76593738,2.090180491,15.77485178,5.410905011,1.975362094,9.585595114,3.405940748,4.022871615,4.55764478,,2032,7.955777837,0,0.064142074,3.642334602,3.630053538,0.619247623,0,0,0,0,,2032,35.89788654,11.15303225,2.092726574,12.81118951,2.015500548,1.467360195,9.876351722,3.569583973,4.147328074,4.742400849,,2032,43.85366437,11.15303225,2.156868648,16.45352411,5.645554086,2.086607817,9.876351722,3.569583973,4.147328074,4.742400849,,43.85366437,OK,37.49558692,OK,,11.15303225,2.156868648,16.45352411,5.645554086,2.086607817 +2033,42.4022501,10.81703311,2.094560058,15.913746,5.516419101,1.998112379,9.630049869,3.454028411,4.028454801,4.585078623,,2033,8.147703845,0,0.065645507,3.724935645,3.726568576,0.630554116,0,0,0,0,,2033,36.2013785,11.23380329,2.101113868,12.92073891,2.045110305,1.487959876,9.941567158,3.631177551,4.162577742,4.78437322,,2033,44.34908235,11.23380329,2.166759374,16.64567456,5.771678881,2.118513992,9.941567158,3.631177551,4.162577742,4.78437322,,44.34908235,OK,37.9364301,OK,,11.23380329,2.166759374,16.64567456,5.771678881,2.118513992 +2034,42.75005597,10.86825836,2.098712431,16.05342695,5.622414622,2.020996826,9.674273822,3.502265408,4.033764477,4.612452179,,2034,8.342537895,0,0.067175491,3.808968079,3.824388916,0.642005409,0,0,0,0,,2034,36.49862471,11.31493508,2.109361418,13.03088351,2.074560999,1.508777798,10.0070359,3.693255074,4.177623228,4.826419635,,2034,44.8411626,11.31493508,2.176536909,16.83985159,5.898949915,2.150783207,10.0070359,3.693255074,4.177623228,4.826419635,,44.8411626,FALSE,38.3810567,OK,,11.31493508,2.176536909,16.83985159,5.898949915,2.150783207 +2035,43.09198536,10.91950937,2.102668378,16.193567,5.72883346,2.04396863,9.718141145,3.550590384,4.038806195,4.639728789,,2035,8.540381125,0,0.06873893,3.894483665,3.923540328,0.653618202,0,0,0,0,,2035,36.79064514,11.39650209,2.117505371,13.14173867,2.103920443,1.529818242,10.07283341,3.755888426,4.192500589,4.868576235,,2035,45.33102627,11.39650209,2.186244301,17.03622233,6.02746077,2.183436444,10.07283341,3.755888426,4.192500589,4.868576235,,45.33102627,OK,38.82986594,OK,,11.39650209,2.186244301,17.03622233,6.02746077,2.183436444 +2036,43.42803826,10.97068239,2.106458664,16.3338385,5.835617504,2.066980984,9.76152601,3.598941987,4.043585508,4.666871797,,2036,8.741127503,0,0.070338504,3.981408913,4.023993437,0.665386649,0,0,0,0,,2036,37.07778562,11.47842776,2.125576552,13.2531731,2.133202505,1.5510564,10.13888751,3.819047934,4.207217202,4.910814362,,2036,45.81891312,11.47842776,2.195915056,17.23458202,6.157195941,2.216443049,10.13888751,3.819047934,4.207217202,4.910814362,,45.81891312,OK,39.28256383,OK,,11.47842776,2.195915056,17.23458202,6.157195941,2.216443049 +2037,43.75821469,11.02167367,2.110114056,16.47391379,5.942708642,2.089987083,9.80430259,3.647258862,4.048107968,4.693844548,,2037,8.944650879,0,0.071975202,4.069659922,4.1257191,0.677296655,0,0,0,0,,2037,37.36014408,11.56058402,2.133592801,13.36495031,2.162395464,1.572457591,10.20498717,3.882701145,4.221756196,4.953094106,,2037,46.30479496,11.56058402,2.205568003,17.43461023,6.288114564,2.249754246,10.20498717,3.882701145,4.221756196,4.953094106,,46.30479496,OK,39.73863107,OK,,11.56058402,2.205568003,17.43461023,6.288114564,2.249754246 +2038,44.08251463,11.07237946,2.113665321,16.61346523,6.050048763,2.112940119,9.846345058,3.695479657,4.052379127,4.720610384,,2038,9.151033207,0,0.073652309,4.159282452,4.228749729,0.689348718,0,0,0,0,,2038,37.63823029,11.64295166,2.141563692,13.47696403,2.191511536,1.594007194,10.2709043,3.946924037,4.236105736,4.99543629,,2038,46.78926349,11.64295166,2.215216001,17.63624648,6.420261264,2.283355912,10.2709043,3.946924037,4.236105736,4.99543629,,46.78926349,OK,40.19803132,OK,,11.64295166,2.215216001,17.63624648,6.420261264,2.283355912 +2039,44.40093809,11.12269599,2.117143226,16.75216517,6.157579755,2.135793287,9.887527585,3.743543017,4.056404539,4.747132649,,2039,9.36041055,0,0.075373064,4.250357668,4.333135458,0.701544359,0,0,0,0,,2039,37.91256931,11.72552657,2.149492798,13.58910063,2.220558841,1.615692572,10.33635119,4.011821645,4.250248237,5.037876604,,2039,47.27297986,11.72552657,2.224865862,17.8394583,6.553694299,2.317236932,10.33635119,4.011821645,4.250248237,5.037876604,,47.27297986,OK,40.66078196,OK,,11.72552657,2.224865862,17.8394583,6.553694299,2.317236932 +2040,44.71348507,11.17251953,2.120578537,16.88968598,6.265243506,2.158499781,9.927724343,3.791387588,4.060189756,4.773374687,,2040,9.572870848,0,0.077140064,4.342934869,4.438912782,0.713883133,0,0,0,0,,2040,38.18363593,11.80830371,2.157393611,13.70122893,2.249542666,1.637498465,10.40106935,4.077468234,4.264178909,5.080444494,,2040,47.75650678,11.80830371,2.234533675,18.0441638,6.688455447,2.351381598,10.40106935,4.077468234,4.264178909,5.080444494,,47.75650678,OK,41.12683823,OK,,11.80830371,2.234533675,18.0441638,6.688455447,2.351381598 +2041,45.02015557,11.22174631,2.124002021,17.02569999,6.372981905,2.181012794,9.966809507,3.838952018,4.06374033,4.79929984,,2041,9.788382797,0,0.078955795,4.43698762,4.546079584,0.726359798,0,0,0,0,,2041,38.45180946,11.89124157,2.165292551,13.81320831,2.278465514,1.659403624,10.46493158,4.143867544,4.277905056,5.123137885,,2041,48.24019225,11.89124157,2.244248346,18.25019593,6.824545098,2.385763422,10.46493158,4.143867544,4.277905056,5.123137885,,48.24019225,OK,41.59599437,OK,,11.89124157,2.244248346,18.25019593,6.824545098,2.385763422 +2042,45.32094959,11.27027258,2.127444444,17.15987956,6.480736839,2.203285521,10.00465725,3.886174952,4.067061815,4.824871453,,2042,10.00685159,0,0.08082136,4.532443071,4.654620001,0.738967162,0,0,0,0,,2042,38.71742139,11.97431283,2.173234525,13.9248719,2.30732812,1.681383494,10.52781946,4.210984449,4.291458795,5.165954222,,2042,48.72427299,11.97431283,2.254055885,18.45731497,6.961948121,2.420350657,10.52781946,4.210984449,4.291458795,5.165954222,,48.72427299,OK,42.06798246,OK,,11.97431283,2.254055885,18.45731497,6.961948121,2.420350657 +2043,45.61586713,11.31799459,2.130936574,17.29189705,6.588450198,2.225271155,10.04114174,3.932995037,4.070159761,4.850052869,,2043,10.22822088,0,0.082736216,4.629244906,4.764540019,0.751699742,0,0,0,0,,2043,38.98082534,12.05754699,2.181276981,14.03602148,2.336128993,1.703414672,10.58948859,4.278802604,4.304894358,5.208922976,,2043,49.20904622,12.05754699,2.264013197,18.66526639,7.100669012,2.455114414,10.58948859,4.278802604,4.304894358,5.208922976,,49.20904622,OK,42.54261,OK,,12.05754699,2.264013197,18.66526639,7.100669012,2.455114414 +2044,45.90490819,11.36480858,2.134509178,17.4214248,6.696063869,2.246922889,10.07613715,3.979350919,4.073039722,4.87480743,,2044,10.45241441,0,0.084698922,4.727319111,4.875845101,0.764551273,0,0,0,0,,2044,39.24235627,12.14099374,2.189489129,14.14643742,2.364863934,1.725472349,10.64966534,4.347291812,4.318282867,5.252081096,,2044,49.69477068,12.14099374,2.274188051,18.87375653,7.240709035,2.490023622,10.64966534,4.347291812,4.318282867,5.252081096,,49.69477068,OK,43.01967098,OK,,12.14099374,2.274188051,18.87375653,7.240709035,2.490023622 +2045,46.18807277,11.41061081,2.138193021,17.54813517,6.803519741,2.268193919,10.10951765,4.025181245,4.075707251,4.899098482,,2045,10.67933327,0,0.086708747,4.826578731,4.988532414,0.777513373,0,0,0,0,,2045,39.50232299,12.22468003,2.197936875,14.25590306,2.393524637,1.747530127,10.70812708,4.416407818,4.33168892,5.295452313,,2045,50.18165626,12.22468003,2.284645622,19.08248179,7.382057051,2.5250435,10.70812708,4.416407818,4.33168892,5.295452313,,50.18165626,OK,43.49890799,OK,,12.22468003,2.284645622,19.08248179,7.382057051,2.5250435 +2046,46.46536087,11.45529752,2.14201887,17.67170052,6.910759702,2.289037438,10.14115742,4.070424661,4.0781679,4.922889366,,2046,10.90887234,0,0.088767294,4.926942592,5.102586428,0.790576028,0,0,0,0,,2046,39.76102039,12.30856941,2.20666598,14.36422884,2.422103379,1.769560729,10.76471631,4.48611514,4.345143453,5.3390308,,2046,50.66989273,12.30856941,2.295433274,19.29117143,7.524689807,2.560136757,10.76471631,4.48611514,4.345143453,5.3390308,,50.66989273,OK,43.98000068,OK,,12.30856941,2.295433274,19.29117143,7.524689807,2.560136757 +2047,46.73677248,11.49876495,2.146017493,17.79179319,7.01772564,2.309406639,10.17093063,4.115019814,4.080427222,4.946143428,,2047,11.14088594,0,0.090876461,5.028302862,5.217981017,0.803725602,0,0,0,0,,2047,40.01869909,12.39260401,2.215721338,14.47122376,2.450584081,1.791534394,10.81937167,4.556345351,4.358675124,5.382796851,,2047,51.15958503,12.39260401,2.3065978,19.49952663,7.668565098,2.595259996,10.81937167,4.556345351,4.358675124,5.382796851,,51.15958503,OK,44.46255353,OK,,12.39260401,2.3065978,19.49952663,7.668565098,2.595259996 +2048,47.00230762,11.54090935,2.150219655,17.90808554,7.124359444,2.329254716,10.19871145,4.158905349,4.082490768,4.968824009,,2048,11.37516712,0,0.093036312,5.130500396,5.334686118,0.816944296,0,0,0,0,,2048,40.27555726,12.47675987,2.225169407,14.57666272,2.478938239,1.813417831,10.8720956,4.626970856,4.372346115,5.426740059,,2048,51.65072439,12.47675987,2.318205719,19.70716312,7.813624357,2.630362127,10.8720956,4.626970856,4.372346115,5.426740059,,51.65072439,OK,44.94611519,OK,,12.47675987,2.318205719,19.70716312,7.813624357,2.630362127 +2049,47.26196627,11.58162697,2.154656125,18.02024992,7.230603002,2.348534864,10.22437406,4.202019913,4.084364092,4.990894454,,2049,11.61146704,0,0.095246658,5.233344522,5.452664796,0.830211061,0,0,0,0,,2049,40.53175987,12.56101043,2.235082638,14.68030978,2.507130649,1.83517507,10.92295346,4.697830972,4.386226679,5.470844997,,2049,52.14322691,12.56101043,2.330329296,19.91365431,7.959795445,2.665386131,10.92295346,4.697830972,4.386226679,5.470844997,,52.14322691,OK,45.43017561,OK,,12.56101043,2.330329296,19.91365431,7.959795445,2.665386131 +2050,47.51574844,11.62081406,2.159357667,18.12795869,7.336398202,2.367200276,10.24779262,4.244302153,4.086052746,5.012318106,,2050,11.84953093,0,0.097508179,5.336642814,5.57187556,0.84350438,0,0,0,0,,2050,40.78747526,12.6453053,2.245527791,14.78193408,2.535129494,1.856769091,10.97199674,4.768775372,4.400375397,5.515085802,,2050,52.63700619,12.6453053,2.34303597,20.1185769,8.107005054,2.700273471,10.97199674,4.768775372,4.400375397,5.515085802,,52.63700619,OK,45.91419669,OK,,12.6453053,2.34303597,20.1185769,8.107005054,2.700273471 +2051,47.76365413,11.65836686,2.164355049,18.23088419,7.441686933,2.385204146,10.26884131,4.285690714,4.087562283,5.033058309,,2051,12.08914897,0,0.099823209,5.440237608,5.692281927,0.856806225,0,0,0,0,,2051,41.04291672,12.7295787,2.256559473,14.88130691,2.562917297,1.878164689,11.01912306,4.839712371,4.414830148,5.559437038,,2051,53.13206569,12.7295787,2.356382682,20.32154452,8.255199224,2.734970914,11.01912306,4.839712371,4.414830148,5.559437038,,53.13206569,OK,46.39767604,OK,,12.7295787,2.356382682,20.32154452,8.255199224,2.734970914 +2052,48.00568334,11.69418162,2.169679038,18.32869878,7.546411082,2.402499667,10.2873943,4.326124244,4.088898255,5.053078405,,2052,12.33008985,0,0.102194974,5.543961358,5.813836707,0.870096808,0,0,0,0,,2052,41.29828512,12.81371682,2.268223451,14.97821466,2.590477291,1.899324247,11.06427002,4.910552243,4.429610197,5.603849243,,2052,53.62837496,12.81371682,2.370418425,20.52217602,8.404313999,2.769421055,11.06427002,4.910552243,4.429610197,5.603849243,,53.62837496,OK,46.88004632,OK,,12.81371682,2.370418425,20.52217602,8.404313999,2.769421055 +2053,48.24183608,11.72815459,2.1753604,18.42107481,7.650512539,2.419040035,10.30332576,4.365541388,4.090066215,5.072341739,,2053,12.57203534,0,0.104626474,5.647588361,5.936471165,0.883349338,0,0,0,0,,2053,41.553715,12.89755056,2.280566589,15.07245805,2.617779257,1.920203864,11.10759018,4.981144266,4.444730246,5.648237132,,2053,54.12575033,12.89755056,2.385193063,20.72004641,8.554250422,2.803553202,11.10759018,4.981144266,4.444730246,5.648237132,,54.12575033,OK,47.36059366,OK,,12.89755056,2.385193063,20.72004641,8.554250422,2.803553202 +2054,48.47211232,11.76018201,2.181429903,18.50768464,7.753933192,2.434778442,10.31650987,4.403880794,4.091071715,5.090811654,,2054,12.81463046,0,0.107121073,5.750869432,6.060105901,0.896534055,0,0,0,0,,2054,41.80931758,12.98086974,2.293631817,15.16384615,2.644790247,1.940756423,11.14931116,5.051322746,4.460194251,5.69249258,,2054,54.62394804,12.98086974,2.400752891,20.91471559,8.704896148,2.837290477,11.14931116,5.051322746,4.460194251,5.69249258,,54.62394804,OK,47.83852484,OK,,12.98086974,2.400752891,20.91471559,8.704896148,2.837290477 +2055,48.69651209,11.79016013,2.187918312,18.58820061,7.856614928,2.449668082,10.32682079,4.441081107,4.091920307,5.108451493,,2055,13.05753217,0,0.109682651,5.853561536,6.184665884,0.909622095,0,0,0,0,,2055,42.06521832,13.06346788,2.307461182,15.25217213,2.671482849,1.960935102,11.18956973,5.120942184,4.476003878,5.736513124,,2055,55.12275048,13.06346788,2.417143833,21.10573367,8.856148733,2.870557197,11.18956973,5.120942184,4.476003878,5.736513124,,55.12275048,OK,48.31305131,OK,,13.06346788,2.417143833,21.10573367,8.856148733,2.870557197 +2056,48.91503538,11.8179852,2.194856394,18.66229509,7.958499636,2.463662149,10.33413271,4.477080973,4.092617545,5.1252246,,2056,13.30045967,0,0.112315008,5.955460562,6.310094917,0.922589187,0,0,0,0,,2056,42.3216248,13.14519631,2.322101656,15.33721361,2.697840341,1.980697192,11.22836833,5.189893533,4.492173015,5.780230527,,2056,55.62208448,13.14519631,2.434416664,21.29267417,9.007935258,2.903286379,11.22836833,5.189893533,4.492173015,5.780230527,,55.62208448,OK,48.78350878,OK,,13.14519631,2.434416664,21.29267417,9.007935258,2.903286379 +2057,49.12768219,11.84355345,2.202274917,18.72964042,8.059529205,2.476713838,10.33831979,4.511819039,4.093168981,5.141094318,,2057,13.5431345,0,0.11502306,6.056361835,6.436337959,0.93541165,0,0,0,0,,2057,42.57872293,13.22589948,2.337596489,15.41871178,2.723852038,1.999999483,11.26553216,5.258097027,4.508707497,5.823580337,,2057,56.12185743,13.22589948,2.452619548,21.47507361,9.160189997,2.935411133,11.26553216,5.258097027,4.508707497,5.823580337,,56.12185743,OK,49.24919377,OK,,13.22589948,2.452619548,21.47507361,9.160189997,2.935411133 +2058,49.33445251,11.86676115,2.210204646,18.78990895,8.159645522,2.488776341,10.33925621,4.545233952,4.093580167,5.156023991,,2058,13.78521109,0,0.117813385,6.156015189,6.563321085,0.948061434,0,0,0,0,,2058,42.83659125,13.30534116,2.353977702,15.49637419,2.749505688,2.018793336,11.30078723,5.325476091,4.525585723,5.866463466,,2058,56.62180235,13.30534116,2.471791086,21.65238938,9.312826773,2.96685477,11.30078723,5.325476091,4.525585723,5.866463466,,56.62180235,FALSE,49.70920317,OK,,13.30534116,2.471791086,21.65238938,9.312826773,2.96685477 +2059,49.53534636,11.88750454,2.218676349,18.84277304,8.258790476,2.499802853,10.33681613,4.577264358,4.093856656,5.169976962,,2059,14.02632399,0,0.12069356,6.254155326,6.690965774,0.96050933,0,0,0,0,,2059,43.09527412,13.38325751,2.371271455,15.56988201,2.7747916,2.037027945,11.33374557,5.39196878,4.542773319,5.908772451,,2059,57.12159811,13.38325751,2.491965015,21.82403734,9.465757374,2.997537275,11.33374557,5.39196878,4.542773319,5.908772451,,57.12159811,OK,50.16255451,OK,,13.38325751,2.491965015,21.82403734,9.465757374,2.997537275 +2060,49.73036372,11.90567986,2.227720792,18.88790505,8.356905956,2.509746568,10.33087373,4.607848903,4.094004,5.182916574,,2060,14.26612405,0,0.123670845,6.350527392,6.819198808,0.972727001,0,0,0,0,,2060,43.35486841,13.45939897,2.389505948,15.63892422,2.79970276,2.054653327,11.36404142,5.457515077,4.560239109,5.950408198,,2060,57.62099246,13.45939897,2.513176793,21.98945161,9.618901568,3.027380328,11.36404142,5.457515077,4.560239109,5.950408198,,57.62099246,OK,50.60830928,OK,,13.45939897,2.513176793,21.98945161,9.618901568,3.027380328 +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +Table 4: Total REF2 Residential Lighting by Economic Development Status Petalumen hours (Plmh),,,,,,,Table 5: Total REF1 Residential Lighting by Economic Development Status Petalumen hours (Plmh),,,,,,,,,,,,,,,"Table 6: Change in Residential Lighting by MDC vs. LLDC Regions, REF1-REF2 Petalumen hours (Plmh)",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,LLDC+HighNRR,China,MDC + LAC + EE,Total Electricity Demand in Countries with Higher Educational Attainment (TWh), --> % LLDC,,,"LLDC with low educational attainment, excluding China","MDC + EE + LAC with low educational attainment, excluding China",China,"LLDC with higher educational attainment, excluding China",MDC + EE + LAC with higher educational attainment,,"Total Electricity Demand in Countries with Low Educational Attainment (TWh), exluding China", --> % LLDC,Total Electricity Demand in Countries with Higher Educational Attainment (TWh), --> % LLDC,Total Electricity Demand (TWh), --> % LLDC,,,LLDC,China,MDC + EE +LAC,Total change in REF1-REF2,% LLDC with higher educational attainment,% LLDC with Low Educational Attainment,% LLDC,% MDC + LAC + EE + China,,"% LLDC with low educational attainment, TWh)","% LLDC with higher educational attainment, TWh)",,,,,,,,,,,,,,,,,,,,,,,,, +2014,8.132627246,8.641704421,13.31994465,30.09427631,0.270238339,,2014,0,0,8.641704421,8.132627246,13.31994465,,0,,30.09427631,0.270238339,30.09427631,0,,,0,0,0,0,0,0,0,0,,0,1,,,,,,,,,,,,,,,,,,,,,,,,, +2015,8.682167383,8.916478443,13.62330658,31.2219524,0.278078939,,2015,4.822494972,0.50529343,8.916478443,3.859672412,13.11801315,,5.327788401,0.905158878,25.894164,0.149055687,31.2219524,0.170642384,,,0,0,0,0,0,0,0,0,,0.555448284,0.444551716,,,,,,,,,,,,,,,,,,,,,,,,, +2016,8.816868927,8.945605217,13.68258361,31.44505776,0.280389656,,2016,4.924627797,0.512325667,8.95354728,3.903472653,13.18230158,,5.436953464,0.905769716,26.03932151,0.14990685,31.47627498,0.172731795,,,0.011231523,0.007942064,0.012043636,0.031217223,0.159084645,0.200701461,0.359786106,0.640213894,,0.557835496,0.442164504,,,,,,,,,,,,,,,,,,,,,,,,, +2017,8.957488275,8.976640258,13.74393361,31.67806214,0.282766295,,2017,5.033516614,0.520030017,8.995904377,3.951328783,13.25325495,,5.55354663,0.906360736,26.20048811,0.150811266,31.75403474,0.174892629,,,0.027357122,0.019264119,0.029351361,0.075972602,0.158360172,0.201731772,0.360091945,0.639908055,,0.560222952,0.439777048,,,,,,,,,,,,,,,,,,,,,,,,, +2018,9.103765496,9.009457738,13.80723677,31.92046001,0.285201576,,2018,5.148748215,0.528337953,9.042636893,4.002876206,13.32997399,,5.677086168,0.906935013,26.37548708,0.151765015,32.05257325,0.177117953,,,0.047858925,0.033179155,0.051075165,0.132113246,0.158449382,0.203807445,0.362256827,0.637743173,,0.562604842,0.437395158,,,,,,,,,,,,,,,,,,,,,,,,, +2019,9.255440658,9.043931829,13.87237332,32.1717458,0.28768848,,2019,5.269665527,0.537142554,9.092410348,4.057627433,13.41106076,,5.80680808,0.907497795,26.56109854,0.152765799,32.36790662,0.179400174,,,0.071852302,0.048478518,0.075830001,0.196160821,0.159347395,0.206945434,0.366292829,0.633707171,,0.564972661,0.435027339,,,,,,,,,,,,,,,,,,,,,,,,, +2020,9.41225383,9.079936705,13.93922344,32.43141398,0.290220273,,2020,5.395753877,0.546359698,9.144190106,4.115186512,13.49543378,,5.942113575,0.908052969,26.7548104,0.153811089,32.69692398,0.181733107,,,0.098686559,0.064253401,0.10257004,0.26551,0.160821158,0.210865628,0.371686786,0.628313214,,0.567320754,0.432679246,,,,,,,,,,,,,,,,,,,,,,,,, +2021,9.573945081,9.117346537,14.00766736,32.69895898,0.292790516,,2021,5.52682537,0.555962123,9.197616816,4.175358066,13.58273519,,6.082787493,0.908600765,26.95571007,0.154896979,33.03849756,0.18411211,,,0.128238356,0.08027028,0.131029952,0.339538588,0.162537302,0.215146886,0.377684188,0.622315812,,0.569647586,0.430352414,,,,,,,,,,,,,,,,,,,,,,,,, +2022,9.740254479,9.156035497,14.07758528,32.97387525,0.295393077,,2022,5.662926571,0.565956817,9.252775523,4.238031883,13.67309699,,6.228883388,0.909139924,27.1639044,0.156017037,33.39278779,0.186533794,,,0.160703975,0.096740025,0.161468535,0.418912536,0.164206462,0.219415324,0.383621786,0.616378214,,0.571957412,0.428042588,,,,,,,,,,,,,,,,,,,,,,,,, +2023,9.910922094,9.195877759,14.1488574,33.25565725,0.298022139,,2023,5.80402782,0.576331283,9.309586041,4.302998886,13.76647476,,6.380359103,0.909671027,27.37905968,0.157163867,33.75941879,0.188994933,,,0.196104613,0.113708282,0.193948642,0.503761536,0.165733623,0.223547016,0.389280639,0.610719361,,0.574256702,0.425743298,,,,,,,,,,,,,,,,,,,,,,,,, +2024,10.08568799,9.236747494,14.22136393,33.54379942,0.300672201,,2024,5.95015337,0.587079673,9.368087052,4.37004921,13.86295103,,6.537233043,0.910194471,27.6010873,0.158328879,34.13832034,0.191492522,,,0.234514587,0.131339557,0.228666775,0.59452092,0.16703244,0.227427333,0.394459774,0.605540226,,0.576553931,0.423446069,,,,,,,,,,,,,,,,,,,,,,,,, +2025,10.26429225,9.278518876,14.29498509,33.83779621,0.303338083,,2025,6.10125051,0.598190555,9.428255051,4.438958158,13.96250251,,6.699441065,0.910710379,27.82971571,0.159504258,34.52915678,0.194022724,,,0.275916423,0.149736175,0.265707973,0.691360571,0.168075645,0.231016283,0.399091927,0.600908073,,0.578854812,0.421145188,,,,,,,,,,,,,,,,,,,,,,,,, +2026,10.44647492,9.321066075,14.36960107,34.13714207,0.306014924,,2026,6.257250451,0.609653006,9.48993484,4.509588655,14.06500992,,6.866903457,0.911218643,28.06453341,0.160686393,34.93143687,0.196582336,,,0.320364185,0.168868765,0.305061851,0.7942948,0.168931619,0.234399971,0.40333159,0.59666841,,0.581159465,0.418840535,,,,,,,,,,,,,,,,,,,,,,,,, +2027,10.63197609,9.364263266,14.44509209,34.44133144,0.308698173,,2027,6.417881463,0.621437774,9.552851631,4.58170655,14.17009303,,7.039319237,0.911719052,28.30465121,0.161871154,35.34397044,0.199166057,,,0.367611928,0.188588365,0.34643871,0.902639003,0.169639252,0.237624257,0.407263509,0.592736491,,0.583465622,0.416534378,,,,,,,,,,,,,,,,,,,,,,,,, +2028,10.82053581,9.407984619,14.52133835,34.74985878,0.311383591,,2028,6.582634879,0.63349334,9.6167322,4.654882179,14.27715771,,7.216128219,0.912211463,28.54877209,0.163050171,35.76490031,0.201765646,,,0.416981248,0.20874758,0.389312702,1.01504153,0.170165315,0.24063684,0.410802155,0.589197845,,0.585773071,0.414226929,,,,,,,,,,,,,,,,,,,,,,,,, +2029,11.01189416,9.452104309,14.59822006,35.06221853,0.314067239,,2029,6.750860691,0.645755469,9.681261309,4.728614568,14.38545568,,7.39661616,0.912695825,28.79533156,0.164214625,36.19194772,0.204371873,,,0.467581095,0.229157,0.43299109,1.129729185,0.170488259,0.243399513,0.413887772,0.586112228,,0.588080948,0.411919052,,,,,,,,,,,,,,,,,,,,,,,,, +2030,11.20579121,9.496496506,14.67561743,35.37790515,0.316745471,,2030,6.922041324,0.658174282,9.746175999,4.802529568,14.49439246,,7.580215606,0.91317209,29.04309802,0.165358722,36.62331363,0.206977874,,,0.518779678,0.249679493,0.476949311,1.245408482,0.170625614,0.24592822,0.416553834,0.583446166,,0.590387605,0.409612395,,,,,,,,,,,,,,,,,,,,,,,,, +2031,11.40196703,9.541035383,14.75341066,35.69641307,0.319414923,,2031,7.095899769,0.67071955,9.811238699,4.87643875,14.60363314,,7.76661932,0.913640733,29.29131059,0.166480729,37.05792991,0.209580496,,,0.570371491,0.270203315,0.520942031,1.361516837,0.170631253,0.248292315,0.418923568,0.581076432,,0.592691207,0.407308793,,,,,,,,,,,,,,,,,,,,,,,,, +2032,11.60016168,9.585595114,14.83147996,36.01723676,0.322072505,,2032,7.272388141,0.683389697,9.876351722,4.950338337,14.71311902,,7.955777837,0.914101461,29.53980908,0.167581934,37.49558692,0.212179045,,,0.6225648,0.290756608,0.565028755,1.478350163,0.170558763,0.250562576,0.421121339,0.578878661,,0.594989028,0.405010972,,,,,,,,,,,,,,,,,,,,,,,,, +2033,11.80011523,9.630049869,14.90970555,36.33987064,0.324715389,,2033,7.451504222,0.696199623,9.941567158,5.02428206,14.82287703,,8.147703845,0.91455266,29.78872625,0.168663877,37.9364301,0.21477255,,,0.675671051,0.311517289,0.609371112,1.596559452,0.170434026,0.252770416,0.423204441,0.576795559,,0.597277322,0.402722678,,,,,,,,,,,,,,,,,,,,,,,,, +2034,12.00156775,9.674273822,14.98796761,36.66380919,0.327340994,,2034,7.633356994,0.7091809,10.0070359,5.098408606,14.9330743,,8.342537895,0.914992187,30.0385188,0.169729028,38.3810567,0.217360818,,,0.730197847,0.332762079,0.654287583,1.717247508,0.170276085,0.254938011,0.425214096,0.574785904,,0.599552115,0.400447885,,,,,,,,,,,,,,,,,,,,,,,,, +2035,12.20425932,9.718141145,15.06614638,36.98854684,0.32994698,,2035,7.818023993,0.722357132,10.07283341,5.172825702,15.04382571,,8.540381125,0.91541863,30.28948481,0.170779587,38.82986594,0.219943616,,,0.786590378,0.354692261,0.700036461,1.841319099,0.170102172,0.257086346,0.427188518,0.572811482,,0.601810057,0.398189943,,,,,,,,,,,,,,,,,,,,,,,,, +2036,12.40792999,9.76152601,15.14412204,37.31357804,0.33253123,,2036,8.00540235,0.735725153,10.13888751,5.247488101,15.15506071,,8.741127503,0.915831779,30.54143632,0.171815367,39.28256383,0.222519272,,,0.844960462,0.377361496,0.746663828,1.968985786,0.169916151,0.259218721,0.429134871,0.570865129,,0.604049538,0.395950462,,,,,,,,,,,,,,,,,,,,,,,,, +2037,12.61231984,9.80430259,15.22177481,37.63839724,0.335091841,,2037,8.195379022,0.749271857,10.20498717,5.322358605,15.26663441,,8.944650879,0.916232409,30.79398019,0.172837632,39.73863107,0.225087041,,,0.905417788,0.400684579,0.794131459,2.100233826,0.169738943,0.261364383,0.431103326,0.568896674,,0.606268538,0.393731462,,,,,,,,,,,,,,,,,,,,,,,,, +2038,12.81716893,9.846345058,15.2989849,37.96249889,0.337627114,,2038,8.388032181,0.763001026,10.2709043,5.39757126,15.37852255,,9.151033207,0.916621325,31.04699811,0.173851631,40.19803132,0.22764879,,,0.968434506,0.424559245,0.842538678,2.235532429,0.169614074,0.263586758,0.433200831,0.566799169,,0.608463185,0.391536815,,,,,,,,,,,,,,,,,,,,,,,,, +2039,13.02221735,9.887527585,15.37563251,38.28537744,0.340135535,,2039,8.583493127,0.776917423,10.33635119,5.473308275,15.49071194,,9.36041055,0.916999642,31.30037141,0.174864004,40.66078196,0.230207342,,,1.034584056,0.448823608,0.891996861,2.375404525,0.169586627,0.265953528,0.435540156,0.564459844,,0.610629181,0.389370819,,,,,,,,,,,,,,,,,,,,,,,,, +2040,13.22720514,9.927724343,15.45159785,38.60652733,0.342615771,,2040,8.781847651,0.791023197,10.40106935,5.549702251,15.60319578,,9.572870848,0.917368237,31.55396738,0.175879698,41.12683823,0.232764571,,,1.104344762,0.473345002,0.942621136,2.520310901,0.169678603,0.268499386,0.438177989,0.561822011,,0.612763289,0.387236711,,,,,,,,,,,,,,,,,,,,,,,,, +2041,13.43187238,9.966809507,15.52676112,38.92544301,0.345066654,,2041,8.983067204,0.805315593,10.46493158,5.62674224,15.71593775,,9.788382797,0.917727411,31.80761157,0.176899238,41.59599437,0.235320322,,,1.177937059,0.498122074,0.994492218,2.670551352,0.169876624,0.271207221,0.441083845,0.558916155,,0.61486546,0.38513454,,,,,,,,,,,,,,,,,,,,,,,,, +2042,13.63595915,10.00465725,15.60100254,39.24161894,0.347487171,,2042,9.187063072,0.819788523,10.52781946,5.704380563,15.82893085,,10.00685159,0.918077278,32.06113087,0.177922001,42.06798246,0.237873342,,,1.255484483,0.52316221,1.047716825,2.826363518,0.170159037,0.274045848,0.444204885,0.555795115,,0.616935691,0.383064309,,,,,,,,,,,,,,,,,,,,,,,,, +2043,13.83920551,10.04114174,15.67420232,39.55454956,0.349876453,,2043,9.393784925,0.834435958,10.58948859,5.782661886,15.94223865,,10.22822088,0.91841827,32.31438912,0.17895006,42.54261,0.240422975,,,1.337241303,0.548346853,1.102472287,2.988060443,0.17052109,0.277007107,0.447528197,0.552471803,,0.618971294,0.381028706,,,,,,,,,,,,,,,,,,,,,,,,, +2044,14.04135152,10.07613715,15.74624065,39.86372932,0.352233766,,2044,9.603164212,0.849250195,10.64966534,5.861636011,16.05595522,,10.45241441,0.918750811,32.56725657,0.179985563,43.01967098,0.242968255,,,1.423448702,0.573528197,1.158964761,3.15594166,0.170957196,0.280080514,0.451037711,0.548962289,,0.620969173,0.379030827,,,,,,,,,,,,,,,,,,,,,,,,, +2045,14.24213726,10.10951765,15.81699775,40.16865267,0.354558501,,2045,9.815111145,0.86422212,10.70812708,5.941300617,16.17014703,,10.67933327,0.919075274,32.81957472,0.181029177,43.49890799,0.245508077,,,1.514274499,0.598609425,1.2173714,3.330255325,0.171455445,0.283246778,0.454702223,0.545297777,,0.622928068,0.377071932,,,,,,,,,,,,,,,,,,,,,,,,, +2046,14.4413028,10.14115742,15.88635383,40.46881405,0.356850161,,2046,10.02952902,0.879343322,10.76471631,6.021615909,16.28479612,,10.90887234,0.919391914,33.07112834,0.182080752,43.98000068,0.248041659,,,1.60984213,0.623558889,1.277785613,3.511186632,0.172003153,0.286486326,0.458489479,0.541510521,,0.6248482,0.3751518,,,,,,,,,,,,,,,,,,,,,,,,, +2047,14.6385882,10.17093063,15.95418908,40.76370791,0.359108358,,2047,10.24628388,0.894602063,10.81937167,6.102436176,16.39985974,,11.14088594,0.919700994,33.32166759,0.183137178,44.46255353,0.250567839,,,1.710131856,0.648441036,1.340272727,3.698845619,0.172576986,0.289765061,0.462342047,0.537657953,,0.626733093,0.373266907,,,,,,,,,,,,,,,,,,,,,,,,, +2048,14.83373353,10.19871145,16.02038372,41.05282871,0.3613328,,2048,10.46518651,0.909980608,10.8720956,6.183505359,16.51534711,,11.37516712,0.92000288,33.57094807,0.184192158,44.94611519,0.253084545,,,1.814958343,0.673384148,1.404943994,3.893286485,0.173142995,0.293033422,0.466176417,0.533823583,,0.628589116,0.371410884,,,,,,,,,,,,,,,,,,,,,,,,, +2049,15.02647887,10.22437406,16.08481796,41.33567089,0.363523285,,2049,10.68600932,0.92545772,10.92295346,6.264486975,16.63126814,,11.61146704,0.920297951,33.81870857,0.185237321,45.43017561,0.255589306,,,1.924017427,0.698579401,1.471907896,4.094504724,0.173664367,0.296237992,0.469902359,0.530097641,,0.630424569,0.369575431,,,,,,,,,,,,,,,,,,,,,,,,, +2050,15.21656427,10.24779262,16.14737201,41.61172889,0.365679694,,2050,10.90851837,0.94101256,10.97199674,6.345066834,16.74760218,,11.84953093,0.920586514,34.06466576,0.186265348,45.91419669,0.258079892,,,2.037020938,0.724204126,1.541242734,4.302467797,0.174114409,0.299339672,0.473454081,0.526545919,,0.632246472,0.367753528,,,,,,,,,,,,,,,,,,,,,,,,, +2051,15.40372981,10.26884131,16.20792606,41.88049718,0.367801981,,2051,11.13251954,0.956629434,11.01912306,6.42510115,16.86430286,,12.08914897,0.920868753,34.30852707,0.187274176,46.39767604,0.260555054,,,2.153890871,0.750281749,1.613006239,4.51717886,0.174490069,0.302332066,0.476822136,0.523177864,,0.634056273,0.365943727,,,,,,,,,,,,,,,,,,,,,,,,, +2052,15.58771556,10.2873943,16.26636033,42.14147019,0.36989017,,2052,11.35779807,0.972291782,11.06427002,6.504421936,16.98126452,,12.33008985,0.921144793,34.54995647,0.188261364,46.88004632,0.263013602,,,2.274504438,0.77687572,1.687195967,4.738576125,0.174788236,0.30520921,0.479997446,0.520002554,,0.635855905,0.364144095,,,,,,,,,,,,,,,,,,,,,,,,, +2053,15.76826159,10.30332576,16.32255503,42.39414238,0.371944347,,2053,11.58405953,0.987975811,11.10759018,6.582647121,17.09832102,,12.57203534,0.921414808,34.78855832,0.189218739,47.36059366,0.2654535,,,2.398445057,0.804264422,1.763741801,4.966451279,0.174987878,0.307941465,0.482929344,0.517070656,,0.63765325,0.36234675,,,,,,,,,,,,,,,,,,,,,,,,, +2054,15.94510796,10.31650987,16.37639035,42.63800818,0.373964654,,2054,11.81097533,1.003655128,11.14931116,6.659325237,17.21525798,,12.81463046,0.921678964,35.02389438,0.19013663,47.83852484,0.267872609,,,2.525192609,0.832801296,1.842522752,5.200516657,0.175066997,0.310498722,0.485565719,0.514434281,,0.639457668,0.360542332,,,,,,,,,,,,,,,,,,,,,,,,, +2055,16.11799475,10.32682079,16.42774652,42.87256206,0.375951284,,2055,12.03822742,1.019304746,11.18956973,6.734085253,17.33186416,,13.05753217,0.921937413,35.25551914,0.191007973,48.31305131,0.27026925,,,2.654317928,0.862748934,1.923422382,5.440489245,0.175015219,0.312866993,0.487882212,0.512117788,,0.641275672,0.358724328,,,,,,,,,,,,,,,,,,,,,,,,, +2056,16.28666201,10.33413271,16.47650374,43.09729846,0.377904476,,2056,12.26555548,1.034904195,11.22836833,6.806685623,17.44799516,,13.30045967,0.922190344,35.48304911,0.19182922,48.78350878,0.272642539,,,2.785579091,0.894235615,2.006395615,5.68621032,0.17483426,0.315048973,0.489883232,0.510116768,,0.643110341,0.356889659,,,,,,,,,,,,,,,,,,,,,,,,, +2057,16.45084983,10.33831979,16.52254221,43.31171183,0.379824512,,2057,12.49269979,1.05043471,11.26553216,6.877031658,17.56349545,,13.5431345,0.922437844,35.70605927,0.19260125,49.24919377,0.274992004,,,2.918881622,0.927212367,2.091387954,5.937481943,0.174538647,0.317063964,0.49160261,0.50839739,,0.644959886,0.355040114,,,,,,,,,,,,,,,,,,,,,,,,, +2058,16.61029827,10.33925621,16.56574214,43.51529661,0.38171171,,2058,12.71933627,1.065874818,11.30078723,6.945092649,17.6781122,,13.78521109,0.922679833,35.92399208,0.193327418,49.70920317,0.27731708,,,3.054130658,0.961531024,2.17824488,6.193906562,0.174148472,0.318937859,0.49308633,0.50691367,,0.64681951,0.35318049,,,,,,,,,,,,,,,,,,,,,,,,, +2059,16.76474739,10.33681613,16.60598374,43.70754726,0.383566419,,2059,12.9451211,1.08120289,11.33374557,7.010928044,17.79155691,,14.02632399,0.922916162,36.13623052,0.194013818,50.16255451,0.279617418,,,3.191301753,0.996929442,2.266776056,6.455007251,0.173688907,0.320702754,0.494391661,0.505608339,,0.64868156,0.35131844,,,,,,,,,,,,,,,,,,,,,,,,, +2060,16.91393727,10.33087373,16.64314722,43.88795822,0.385389021,,2060,13.1697262,1.096397846,11.36404142,7.074585562,17.90355825,,14.26612405,0.923146761,36.34218523,0.194665938,50.60830928,0.281892919,,,3.33037449,1.033167688,2.356808879,6.720351057,0.173180543,0.32238501,0.495565553,0.504434447,,0.650539586,0.349460414,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,Table 7: Difference in FUNCTIONAL & IMPLEMENTATION UNITS between REF1 and REF2 populations in LLDC+HighNRR+HighED,,,,,,,,Table 8: Difference in FUNCTIONAL & IMPLEMENTATION UNITS between REF1 and REF2 populations in LLDC+HighNRR+LowED,,,,,,,,Table 9: Difference in EMISSIONS between REF1 and REF2 populations in LLDC+HighNRR+HighED,,,,,,,,,,,,,Table 10: Difference in EMISSIONS between REF1 and REF2 populations in LLDC+HighNRR+LowED,,,,,,,,,,,,,,,Table 11: EMISSIONS ALLOCATIONS TO (a) Health & Education; (b) Education ONLY; (c) Family Planning (excluding education),,,,,,,,,,,, +,SOLUTION ,,,CONVENTIONAL,,,,,SOLUTION ,,,CONVENTIONAL,,,,,SOLUTION,,,,,CONVENTIONAL,,,,,EMISSION REDUCTIONS,,,SOLUTION ,,,,,CONVENTIONAL,,,,,EMISSION REDCUTIONS ,,,,,"Table 11(a): EMISSIONS ALLOCATION TO HEALTH & EDUCATION in LLDC, ResLight_cluster",,,,"Table 11(b): EMISSIONS ALLOCATION TO Education in LLDC, ResLight_cluster",,,"Table 11(c): EMISSIONS ALLOCATION TO Family Planning in LLDC, ResLight_cluster",,,,% Allocation to Education (Electricity), +,Additional Functional Units in REF2 vs REF1,Annual Functional Units Increase,Annual Implementation Units Increase + Replacement,Additional Functional Units in REF2 vs REF2,Annual Functional Units Increase,Change in TAM,Annual Implementation Units Increase + Replacement,,Additional Functional Units in REF2 vs REF1,Annual Functional Units Increase,Annual Implementation Units Increase + Replacement,Additional Functional Units in REF2 vs REF2,Annual Functional Units Increase,Change in TAM,Annual Implementation Units Increase + Replacement,,Avoided Emissions/ Million Metric Tons CO2,,,,,Avoided Emissions/ Million Metric Tons CO2,,,,,ALL Years,,,Avoided Emissions/ Million Metric Tons CO2,,,,,Avoided Emissions/ Million Metric Tons CO2,,,,,ALL Years,,,,,,,,,,,,,,,,ALL Years, +,TWh,TWh,TW,TWh,TWh,%,TW,,TWh,TWh,TW,TWh,TWh,%,TW,,Grid,Fuel,Other Direct,Indirect,,Grid,Fuel,Other Direct,Indirect,,Conv Total,Solution Total,,Grid,Fuel,Other Direct,Indirect,,Grid,Fuel,Other Direct,Indirect,,Conv Total,Solution Total,,,,,Conv Total,Solution Total,,Conv Total,Solution Total,,Conv Total,Solution Total,,,Conv Total,Solution Total +2014,,,,0,,,Not modeled TBD,,,,,0,,,Not modeled TBD,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2014,0,0,,0,0,,0,0,,,, +2015,,,,0,0,,,,,,,0,0,,,,,,,,,0,,,,,0,0,,,,,,,0,,,,,0,0,,,,2015,0,0,,0,0,,0,0,,,, +2016,,,,0.005787433,0.005787433,0.154312105,,,,,,0.007301435,0.007301435,0.194680417,,,,,,,,0.150222624,,,,,0.150222624,0,,,,,,,0.18952112,,,,,0.18952112,0,,,,2016,0.339743743,0,,0.09476056,0,,0.244983183,0,,,0.278917748, +2017,,,,0.01406854,0.008281107,0.153609367,,,,,,0.017921625,0.010620189,0.195679819,,,,,,,,0.360708493,,,,,0.360708493,0,,,,,,,0.459499143,,,,,0.459499143,0,,,,2017,0.820207636,0,,0.229749572,0,,0.590458064,0,,,0.280111476, +2018,,,,0.024557773,0.010489233,0.1536959,,,,,,0.031587734,0.01366611,0.197693222,,,,,,,,0.623682421,,,,,0.623682421,0,,,,,,,0.802219102,,,,,0.802219102,0,,,,2018,1.425901523,0,,0.401109551,0,,1.024791972,0,,,0.281302421, +2019,,,,0.036783788,0.012226015,0.154566973,,,,,,0.04777133,0.016183596,0.200737071,,,,,,,,0.929303559,,,,,0.929303559,0,,,,,,,1.206892207,,,,,1.206892207,0,,,,2019,2.136195767,0,,0.603446104,0,,1.532749663,0,,,0.282486331, +2020,,,,0.050393983,0.013610195,0.155996523,,,,,,0.066075627,0.018304297,0.204539659,,,,,,,,1.265180091,,,,,1.265180091,0,,,,,,,1.658879947,,,,,1.658879947,0,,,,2020,2.924060038,0,,0.829439973,0,,2.094620065,0,,,0.283660377, +2021,,,,0.065300766,0.014906783,0.157661183,,,,,,0.086437121,0.020361493,0.208692479,,,,,,,,1.629577405,,,,,1.629577405,0,,,,,,,2.157034103,,,,,2.157034103,0,,,,2021,3.786611508,0,,1.078517052,0,,2.708094456,0,,,0.284823793, +2022,,,,0.081568857,0.016268091,0.159280268,,,,,,0.108993622,0.022556502,0.212832864,,,,,,,,2.023444381,,,,,2.023444381,0,,,,,,,2.703759025,,,,,2.703759025,0,,,,2022,4.727203406,0,,1.351879512,0,,3.375323894,0,,,0.285978706, +2023,,,,0.099167229,0.017598372,0.160761615,,,,,,0.133760053,0.02476643,0.216840605,,,,,,,,2.44564023,,,,,2.44564023,0,,,,,,,3.298760773,,,,,3.298760773,0,,,,2023,5.744401002,0,,1.649380386,0,,4.095020616,0,,,0.287128351, +2024,,,,0.118083528,0.018916299,0.162021467,,,,,,0.160779677,0.027019625,0.220604513,,,,,,,,2.895433652,,,,,2.895433652,0,,,,,,,3.942352472,,,,,3.942352472,0,,,,2024,6.837786124,0,,1.971176236,0,,4.866609888,0,,,0.288276966, +2025,,,,0.138259214,0.020175686,0.163033375,,,,,,0.190034254,0.029254577,0.224085794,,,,,,,,3.372901536,,,,,3.372901536,0,,,,,,,4.635979094,,,,,4.635979094,0,,,,2025,8.00888063,0,,2.317989547,0,,5.690891083,0,,,0.289427406, +2026,,,,0.159679747,0.021420532,0.163863671,,,,,,0.221562595,0.031528341,0.227367972,,,,,,,,3.871530887,,,,,3.871530887,0,,,,,,,5.371917539,,,,,5.371917539,0,,,,2026,9.243448427,0,,2.68595877,0,,6.557489657,0,,,0.290579732, +2027,,,,0.182186354,0.022506607,0.164550075,,,,,,0.255199763,0.033637167,0.230495529,,,,,,,,4.392873767,,,,,4.392873767,0,,,,,,,6.153371634,,,,,6.153371634,0,,,,2027,10.5462454,0,,3.076685817,0,,7.469559585,0,,,0.291732811, +2028,,,,0.205407272,0.023220918,0.165060356,,,,,,0.290473747,0.035273985,0.233417735,,,,,,,,4.925764532,,,,,4.925764532,0,,,,,,,6.965699273,,,,,6.965699273,0,,,,2028,11.89146381,0,,3.482849637,0,,8.408614169,0,,,0.292886536, +2029,,,,0.228878586,0.023471315,0.165373611,,,,,,0.326761132,0.036287385,0.236097528,,,,,,,,5.458948645,,,,,5.458948645,0,,,,,,,7.793530493,,,,,7.793530493,0,,,,2029,13.25247914,0,,3.896765246,0,,9.355713891,0,,,0.294040474, +2030,,,,0.252277984,0.023399398,0.165506845,,,,,,0.363616425,0.036855293,0.238550374,,,,,,,,5.986152566,,,,,5.986152566,0,,,,,,,8.628035465,,,,,8.628035465,0,,,,2030,14.61418803,0,,4.314017732,0,,10.3001703,0,,,0.295193802, +2031,,,,0.275498368,0.023220384,0.165512315,,,,,,0.400888621,0.037272196,0.240843546,,,,,,,,6.500745545,,,,,6.500745545,0,,,,,,,9.45949312,,,,,9.45949312,0,,,,2031,15.96023867,0,,4.72974656,0,,11.2304921,0,,,0.296345604, +2032,,,,0.298638795,0.023140427,0.165442,,,,,,0.438720969,0.037832347,0.243045698,,,,,,,,7.009346009,,,,,7.009346009,0,,,,,,,10.29721229,,,,,10.29721229,0,,,,2032,17.3065583,0,,5.148606147,0,,12.15795216,0,,,0.297494514, +2033,,,,0.321852263,0.023213468,0.165321005,,,,,,0.477338547,0.038617579,0.245187303,,,,,,,,7.514182485,,,,,7.514182485,0,,,,,,,11.14427133,,,,,11.14427133,0,,,,2033,18.65845381,0,,5.572135664,0,,13.08631815,0,,,0.298638661, +2034,,,,0.345383488,0.023531224,0.165167803,,,,,,0.517109487,0.03977094,0.24728987,,,,,,,,8.020918198,,,,,8.020918198,0,,,,,,,12.00894961,,,,,12.00894961,0,,,,2034,20.0298678,0,,6.004474803,0,,14.025393,0,,,0.299776058, +2035,,,,0.36943975,0.024056263,0.164999107,,,,,,0.558358042,0.041248555,0.249373756,,,,,,,,8.532969086,,,,,8.532969086,0,,,,,,,12.89642468,,,,,12.89642468,0,,,,2035,21.42939377,0,,6.448212339,0,,14.98118143,0,,,0.300905028, +2036,,,,0.394060805,0.024621055,0.164818666,,,,,,0.601166736,0.042808694,0.251442159,,,,,,,,9.054497577,,,,,9.054497577,0,,,,,,,13.81325594,,,,,13.81325594,0,,,,2036,22.86775352,0,,6.906627969,0,,15.96112555,0,,,0.302024769, +2037,,,,0.419286229,0.025225424,0.164646775,,,,,,0.645617821,0.044451085,0.253523452,,,,,,,,9.582742752,,,,,9.582742752,0,,,,,,,14.75552753,,,,,14.75552753,0,,,,2037,24.33827028,0,,7.377763766,0,,16.96050652,0,,,0.303134269, +2038,,,,0.44532962,0.026043391,0.164525651,,,,,,0.692059262,0.046441441,0.255679155,,,,,,,,10.12345378,,,,,10.12345378,0,,,,,,,15.73223436,,,,,15.73223436,0,,,,2038,25.85568814,0,,7.866117181,0,,17.98957096,0,,,0.304231593, +2039,,,,0.472448081,0.027118461,0.164499028,,,,,,0.740914754,0.048855492,0.257974923,,,,,,,,10.68181016,,,,,10.68181016,0,,,,,,,16.75170473,,,,,16.75170473,0,,,,2039,27.43351489,0,,8.375852365,0,,19.05766253,0,,,0.30531459, +2040,,,,0.500845603,0.028397522,0.164588245,,,,,,0.792537975,0.051623221,0.260444404,,,,,,,,11.25774051,,,,,11.25774051,0,,,,,,,17.81424617,,,,,17.81424617,0,,,,2040,29.07198668,0,,8.907123086,0,,20.1648636,0,,,0.306381644, +2041,,,,0.530598691,0.029753088,0.164780325,,,,,,0.847098285,0.05456031,0.263071005,,,,,,,,11.865967,,,,,11.865967,0,,,,,,,18.94395984,,,,,18.94395984,0,,,,2041,30.80992684,0,,9.471979919,0,,21.33794692,0,,,0.30743273, +2042,,,,0.561733046,0.031134355,0.165054266,,,,,,0.904686647,0.057588362,0.265824473,,,,,,,,12.4928683,,,,,12.4928683,0,,,,,,,20.1201108,,,,,20.1201108,0,,,,2042,32.6129791,0,,10.0600554,0,,22.5529237,0,,,0.308467846, +2043,,,,0.594331429,0.032598383,0.165405457,,,,,,0.965476061,0.060789414,0.268696894,,,,,,,,13.14410606,,,,,13.14410606,0,,,,,,,21.35226091,,,,,21.35226091,0,,,,2043,34.49636698,0,,10.67613046,0,,23.82023652,0,,,0.309485647, +2044,,,,0.628467138,0.034135709,0.16582848,,,,,,1.029622637,0.064146576,0.271678099,,,,,,,,13.820607,,,,,13.820607,0,,,,,,,22.64240875,,,,,22.64240875,0,,,,2044,36.46301574,0,,11.32120437,0,,25.14181137,0,,,0.310484587, +2045,,,,0.664179987,0.035712849,0.166311782,,,,,,1.097234564,0.067611928,0.274749374,,,,,,,,14.51952391,,,,,14.51952391,0,,,,,,,23.98645518,,,,,23.98645518,0,,,,2045,38.50597909,0,,11.99322759,0,,26.5127515,0,,,0.311464034, +2046,,,,0.701496956,0.037316969,0.166843059,,,,,,1.168404659,0.071170094,0.277891736,,,,,,,,15.24961924,,,,,15.24961924,0,,,,,,,25.39957729,,,,,25.39957729,0,,,,2046,40.64919653,0,,12.69978864,0,,27.94940788,0,,,0.3124241, +2047,,,,0.74037739,0.038880434,0.167399677,,,,,,1.243129252,0.074724593,0.281072109,,,,,,,,16.00025523,,,,,16.00025523,0,,,,,,,26.86519817,,,,,26.86519817,0,,,,2047,42.8654534,0,,13.43259908,0,,29.43285431,0,,,0.313366546, +2048,,,,0.780695577,0.040318187,0.167948705,,,,,,1.321277229,0.078147977,0.284242419,,,,,,,,16.77089286,,,,,16.77089286,0,,,,,,,28.38366131,,,,,28.38366131,0,,,,2048,45.15455417,0,,14.19183065,0,,30.96272352,0,,,0.314294558, +2049,,,,0.822270007,0.04157443,0.168454436,,,,,,1.402634405,0.081357176,0.287350852,,,,,,,,17.57294775,,,,,17.57294775,0,,,,,,,29.97606734,,,,,29.97606734,0,,,,2049,47.54901508,0,,14.98803367,0,,32.56098142,0,,,0.315212284, +2050,,,,0.864934222,0.042664215,0.168890976,,,,,,1.487005748,0.084371343,0.290359482,,,,,,,,18.42116825,,,,,18.42116825,0,,,,,,,31.66990318,,,,,31.66990318,0,,,,2050,50.09107143,0,,15.83495159,0,,34.25611984,0,,,0.316123236, +2051,,,,0.908632469,0.043698247,0.169255367,,,,,,1.574351668,0.087345921,0.293262104,,,,,,,,19.27787942,,,,,19.27787942,0,,,,,,,33.40202189,,,,,33.40202189,0,,,,2051,52.67990131,0,,16.70101095,0,,35.97889037,0,,,0.317028137, +2052,,,,0.953296937,0.044664468,0.169544588,,,,,,1.664614352,0.090262683,0.296052934,,,,,,,,20.15081196,,,,,20.15081196,0,,,,,,,35.18665537,,,,,35.18665537,0,,,,2052,55.33746733,0,,17.59332769,0,,37.74413965,0,,,0.317927953, +2053,,,,0.998725263,0.045428326,0.169738242,,,,,,1.757544143,0.092929791,0.298703221,,,,,,,,21.03119307,,,,,21.03119307,0,,,,,,,37.01042877,,,,,37.01042877,0,,,,2053,58.04162184,0,,18.50521439,0,,39.53640745,0,,,0.318826625, +2054,,,,1.044673899,0.045948637,0.169814987,,,,,,1.852833015,0.095288872,0.301183761,,,,,,,,21.91342065,,,,,21.91342065,0,,,,,,,38.86563001,,,,,38.86563001,0,,,,2054,60.77905066,0,,19.432815,0,,41.34623566,0,,,0.319728834, +2055,,,,1.090948833,0.046274933,0.169764762,,,,,,1.950241147,0.097408132,0.303480984,,,,,,,,22.79109302,,,,,22.79109302,0,,,,,,,40.74263253,,,,,40.74263253,0,,,,2055,63.53372555,0,,20.37131627,0,,43.16240928,0,,,0.320637836, +2056,,,,1.137443304,0.046494472,0.169589232,,,,,,2.049657458,0.099416311,0.305597503,,,,,,,,23.66726686,,,,,23.66726686,0,,,,,,,42.64809494,,,,,42.64809494,0,,,,2056,66.3153618,0,,21.32404747,0,,44.99131433,0,,,0.321555171, +2057,,,,1.184131265,0.046687961,0.169302487,,,,,,2.151072898,0.101415439,0.307552045,,,,,,,,24.53530905,,,,,24.53530905,0,,,,,,,44.57042887,,,,,44.57042887,0,,,,2057,69.10573792,0,,22.28521443,0,,46.82052349,0,,,0.322479943, +2058,,,,1.231008413,0.046877147,0.168924018,,,,,,2.254485397,0.1034125,0.309369723,,,,,,,,25.39662561,,,,,25.39662561,0,,,,,,,46.5117224,,,,,46.5117224,0,,,,2058,71.90834801,0,,23.2558612,0,,48.65248681,0,,,0.323409755, +2059,,,,1.278118339,0.047109926,0.168478239,,,,,,2.359943872,0.105458475,0.311081671,,,,,,,,26.25170067,,,,,26.25170067,0,,,,,,,48.47167766,,,,,48.47167766,0,,,,2059,74.72337833,0,,24.23583883,0,,50.4875395,0,,,0.32434078, +2060,,,,1.32550827,0.047389931,0.167985127,,,,,,2.467505811,0.107561939,0.31271346,,,,,,,,27.1101383,,,,,27.1101383,0,,,,,,,50.46699846,,,,,50.46699846,0,,,,2060,77.57713677,0,,25.23349923,0,,52.34363753,0,,,0.325269793, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,Table 12: Difference in FUNCTIONAL & IMPLEMENTATION UNITS between REF1 and REF2 populations in MDC + LAC + EE + China,,,,,,,,,Table 13: Difference in EMISSIONS between REF1 and REF2 populations in MDC + LAC + EE + China,,,,,,,,,,,,,,Table 14: EMISSIONS ALLOCATIONS TO (a) Health & Education; (b) Education ONLY; (c) Family Planning (excluding education),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,SOLUTION ,,,CONVENTIONAL,,,,,,SOLUTION,,,,,CONVENTIONAL,,,,,EMISSION REDUCTIONS,,,,"Table 14(a): EMISSIONS ALLOCATION TO HEALTH & EDUCATION in MDC, ResLight_cluster",,,,"Table 14(b): EMISSIONS ALLOCATION TO Education in MDC, ResLight_cluster",,,"Table 14(c): EMISSIONS ALLOCATION TO Family Planning in MDC, ResLight_cluster",,,,% Allocation to Education (Electricity),,,,,,,,,,,,,,,,,,,,,, +,Additional Functional Units in REF2 vs REF1,Annual Functional Units Increase,Annual Implementation Units Increase + Replacement,Additional Functional Units in REF2 vs REF2,Annual Functional Units Increase,Change in TAM,Annual Implementation Units Increase + Replacement,,,Avoided Emissions/ Million Metric Tons CO2,,,,,Avoided Emissions/ Million Metric Tons CO2,,,,,ALL Years,,,,,,,,,,,,,,,ALL Years,,,,,,,,,,,,,,,,,,,,,, +,TWh,TWh,TW,TWh,TWh,%,TW,,,Grid,Fuel,Other Direct,Indirect,,Grid,Fuel,Other Direct,Indirect,,Conv Total,Solution Total,,,,Conv Total,Solution Total,,Conv Total,Solution Total,,Conv Total,Solution Total,,,Conv Total,Solution Total,,,,,,,,,,,,,,,,,,,,, +2014,,,,0,,,Not modeled TBD,,,,,,,,,,,,,,,,,2014,0,0,,,,,0,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2015,,,,0,0,,,,,,,,,,0,,,,,0,0,,,2015,0,0,,,,,0,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2016,,,,0.023290714,0.023290714,0.621007478,,,,,,,,,0.60454993,,,,,0.60454993,0,,,2016,0.60454993,0,,,,,0.60454993,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2017,,,,0.056848714,0.033558001,0.620710813,,,,,,,,,1.457565159,,,,,1.457565159,0,,,2017,1.457565159,0,,,,,1.457565159,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2018,,,,0.098842621,0.041993906,0.618610878,,,,,,,,,2.510260385,,,,,2.510260385,0,,,2018,2.510260385,0,,,,,2.510260385,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2019,,,,0.146285105,0.047442484,0.614695956,,,,,,,,,3.69573868,,,,,3.69573868,0,,,2019,3.69573868,0,,,,,3.69573868,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2020,,,,0.196884576,0.050599472,0.609463818,,,,,,,,,4.942940216,,,,,4.942940216,0,,,2020,4.942940216,0,,,,,4.942940216,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2021,,,,0.250020756,0.053136179,0.603646337,,,,,,,,,6.239255671,,,,,6.239255671,0,,,2021,6.239255671,0,,,,,6.239255671,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2022,,,,0.306183239,0.056162483,0.597886868,,,,,,,,,7.595359035,,,,,7.595359035,0,,,2022,7.595359035,0,,,,,7.595359035,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2023,,,,0.36542583,0.059242591,0.59239778,,,,,,,,,9.012050833,,,,,9.012050833,0,,,2023,9.012050833,0,,,,,9.012050833,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2024,,,,0.428086461,0.062660631,0.58737402,,,,,,,,,10.49677264,,,,,10.49677264,0,,,2024,10.49677264,0,,,,,10.49677264,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2025,,,,0.494307657,0.066221196,0.582880831,,,,,,,,,12.05887841,,,,,12.05887841,0,,,2025,12.05887841,0,,,,,12.05887841,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2026,,,,0.56399069,0.069683033,0.578768357,,,,,,,,,13.67429133,,,,,13.67429133,0,,,2026,13.67429133,0,,,,,13.67429133,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2027,,,,0.636577317,0.072586627,0.574954396,,,,,,,,,15.34913968,,,,,15.34913968,0,,,2027,15.34913968,0,,,,,15.34913968,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2028,,,,0.711223211,0.074645895,0.57152191,,,,,,,,,17.05547248,,,,,17.05547248,0,,,2028,17.05547248,0,,,,,17.05547248,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2029,,,,0.786849131,0.07562592,0.568528861,,,,,,,,,18.76701997,,,,,18.76701997,0,,,2029,18.76701997,0,,,,,18.76701997,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2030,,,,0.862652562,0.075803431,0.565942781,,,,,,,,,20.46936383,,,,,20.46936383,0,,,2030,20.46936383,0,,,,,20.46936383,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2031,,,,0.938196294,0.075543732,0.563644139,,,,,,,,,22.13797278,,,,,22.13797278,0,,,2031,22.13797278,0,,,,,22.13797278,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2032,,,,1.013583957,0.075387663,0.561512301,,,,,,,,,23.78981159,,,,,23.78981159,0,,,2032,23.78981159,0,,,,,23.78981159,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2033,,,,1.089236466,0.075652508,0.559491692,,,,,,,,,25.43005751,,,,,25.43005751,0,,,2033,25.43005751,0,,,,,25.43005751,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2034,,,,1.165880457,0.076643992,0.557542327,,,,,,,,,27.07550335,,,,,27.07550335,0,,,2034,27.07550335,0,,,,,27.07550335,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2035,,,,1.244071892,0.078191435,0.555627137,,,,,,,,,28.73439306,,,,,28.73439306,0,,,2035,28.73439306,0,,,,,28.73439306,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2036,,,,1.32392107,0.079849178,0.553739175,,,,,,,,,30.42028025,,,,,30.42028025,0,,,2036,30.42028025,0,,,,,30.42028025,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2037,,,,1.405278816,0.081357746,0.551829774,,,,,,,,,32.11749985,,,,,32.11749985,0,,,2037,32.11749985,0,,,,,32.11749985,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2038,,,,1.488157517,0.082878701,0.549795194,,,,,,,,,33.82953471,,,,,33.82953471,0,,,2038,33.82953471,0,,,,,33.82953471,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2039,,,,1.572517685,0.084360168,0.547526049,,,,,,,,,35.55382289,,,,,35.55382289,0,,,2039,35.55382289,0,,,,,35.55382289,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2040,,,,1.658347476,0.085829791,0.544967351,,,,,,,,,37.27545067,,,,,37.27545067,0,,,2040,37.27545067,0,,,,,37.27545067,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2041,,,,1.745738603,0.087391127,0.54214867,,,,,,,,,39.04057249,,,,,39.04057249,0,,,2041,39.04057249,0,,,,,39.04057249,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2042,,,,1.834804001,0.089065398,0.539121261,,,,,,,,,40.80579717,,,,,40.80579717,0,,,2042,40.80579717,0,,,,,40.80579717,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2043,,,,1.925576223,0.090772222,0.535897649,,,,,,,,,42.58562962,,,,,42.58562962,0,,,2043,42.58562962,0,,,,,42.58562962,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2044,,,,2.01807684,0.092500617,0.532493421,,,,,,,,,44.3794834,,,,,44.3794834,0,,,2044,44.3794834,0,,,,,44.3794834,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2045,,,,2.112361433,0.094284592,0.528938844,,,,,,,,,46.1779682,,,,,46.1779682,0,,,2045,46.1779682,0,,,,,46.1779682,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2046,,,,2.208494292,0.09613286,0.525265205,,,,,,,,,48.00975505,,,,,48.00975505,0,,,2046,48.00975505,0,,,,,48.00975505,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2047,,,,2.30662153,0.098127238,0.521528214,,,,,,,,,49.84827153,,,,,49.84827153,0,,,2047,49.84827153,0,,,,,49.84827153,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2048,,,,2.406991463,0.100369933,0.517808876,,,,,,,,,51.70696125,,,,,51.70696125,0,,,2048,51.70696125,0,,,,,51.70696125,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2049,,,,2.509918411,0.102926949,0.514194712,,,,,,,,,53.64012393,,,,,53.64012393,0,,,2049,53.64012393,0,,,,,53.64012393,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2050,,,,2.615680046,0.105761634,0.510749541,,,,,,,,,55.70814634,,,,,55.70814634,0,,,2050,55.70814634,0,,,,,55.70814634,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2051,,,,2.724375067,0.108695021,0.507482528,,,,,,,,,57.80133972,,,,,57.80133972,0,,,2051,57.80133972,0,,,,,57.80133972,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2052,,,,2.836099582,0.111724515,0.504402477,,,,,,,,,59.94953636,,,,,59.94953636,0,,,2052,59.94953636,0,,,,,59.94953636,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2053,,,,2.951127426,0.115027843,0.501558537,,,,,,,,,62.14494914,,,,,62.14494914,0,,,2053,62.14494914,0,,,,,62.14494914,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2054,,,,3.069773727,0.118646301,0.499001253,,,,,,,,,64.39257554,,,,,64.39257554,0,,,2054,64.39257554,0,,,,,64.39257554,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2055,,,,3.192261259,0.122487532,0.496754254,,,,,,,,,66.68976685,,,,,66.68976685,0,,,2055,66.68976685,0,,,,,66.68976685,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2056,,,,3.31873686,0.126475601,0.494813265,,,,,,,,,69.05437009,,,,,69.05437009,0,,,2056,69.05437009,0,,,,,69.05437009,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2057,,,,3.449145824,0.130408964,0.493145468,,,,,,,,,71.46661964,,,,,71.46661964,0,,,2057,71.46661964,0,,,,,71.46661964,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2058,,,,3.583235527,0.134089703,0.491706259,,,,,,,,,73.92483284,,,,,73.92483284,0,,,2058,73.92483284,0,,,,,73.92483284,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2059,,,,3.720601985,0.137366458,0.490440089,,,,,,,,,76.4186904,,,,,76.4186904,0,,,2059,76.4186904,0,,,,,76.4186904,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2060,,,,3.860895791,0.140293806,0.489301413,,,,,,,,,78.96549668,,,,,78.96549668,0,,,2060,78.96549668,0,,,,,78.96549668,0,,,0,,,,,,,,,,,,,,,,,,,,,, diff --git a/solution/health_and_education/tests/test_res_light.py b/solution/health_and_education/tests/test_res_light.py new file mode 100644 index 000000000..5e44a357a --- /dev/null +++ b/solution/health_and_education/tests/test_res_light.py @@ -0,0 +1,101 @@ +import sys +sys.path.append('c:\\Users\\sunishchal.dev\\Documents\\solutions\\solution\\health_and_education') + +import pandas as pd +import numpy as np + +from clusters import res_light + +test_cluster = res_light.Cluster() +test_dfs = test_cluster.run_cluster() + +expected_df = pd.read_csv('expected_res_light.csv', header=None) + +def test_res_light(): + + # Default columns to integers to avoid mismatch between Excel & pandas col names using T.reset_index() + exp_ref2_tam = expected_df.iloc[28:75, 1:11].T.reset_index(drop=True).T.astype(float) + exp_ref2_tam.index = expected_df.iloc[28:75, 0].astype(int).values + test_ref2_tam = test_dfs.ref2_tam.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_ref2_tam, exp_ref2_tam, check_exact=False) + + exp_ref1_tam_low_edu = expected_df.iloc[28:75, 13:23].T.reset_index(drop=True).T.astype(float) + exp_ref1_tam_low_edu.index = expected_df.iloc[28:75, 12].astype(int).values + test_ref1_tam_low_edu = test_dfs.ref1_tam_low_edu.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_ref1_tam_low_edu, exp_ref1_tam_low_edu, check_exact=False) + + exp_ref1_tam_high_edu = expected_df.iloc[28:75, 25:35].T.reset_index(drop=True).T.astype(float) + exp_ref1_tam_high_edu.index = expected_df.iloc[28:75, 24].astype(int).values + test_ref1_tam_high_edu = test_dfs.ref1_tam_high_edu.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_ref1_tam_high_edu, exp_ref1_tam_high_edu, check_exact=False) + + exp_ref1_tam_all_regions = expected_df.iloc[28:75, 37:47].T.reset_index(drop=True).T.astype(float) + exp_ref1_tam_all_regions.index = expected_df.iloc[28:75, 36].astype(int).values + test_ref1_tam_all_regions = test_dfs.ref1_tam_all_regions.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_ref1_tam_all_regions, exp_ref1_tam_all_regions, check_exact=False) + + exp_ref2_demand = expected_df.iloc[79:126, 1:6].T.reset_index(drop=True).T.astype(float) + exp_ref2_demand.index = expected_df.iloc[79:126, 0].astype(int).values + test_ref2_demand = test_dfs.ref2_demand.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_ref2_demand, exp_ref2_demand, check_exact=False, rtol=1e-3) + + exp_ref1_demand = expected_df.iloc[79:126, [8,9,10,11,12,14,15,16,17,18,19]].T.reset_index(drop=True).T.astype(float) + exp_ref1_demand.index = expected_df.iloc[79:126, 7].astype(int).values + test_ref1_demand = test_dfs.ref1_demand.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_ref1_demand, exp_ref1_demand, check_exact=False, rtol=1e-3) + + exp_change_demand = expected_df.iloc[79:126, 22:30].T.reset_index(drop=True).T.astype(float) + exp_change_demand.index = expected_df.iloc[79:126, 7].astype(int).values + test_change_demand = test_dfs.change_demand.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_change_demand, exp_change_demand, check_exact=False, rtol=1e-3) + + exp_addl_func_units_highed = expected_df.iloc[134:181, 4:7].T.reset_index(drop=True).T.astype(float) + exp_addl_func_units_highed.index = expected_df.iloc[134:181, 0].astype(int, errors='ignore').values + test_addl_func_units_highed = test_dfs.addl_func_units_highed.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_addl_func_units_highed, exp_addl_func_units_highed, check_exact=False, rtol=1e-3) + + exp_addl_func_units_lowed = expected_df.iloc[134:181, 12:15].T.reset_index(drop=True).T.astype(float) + exp_addl_func_units_lowed.index = expected_df.iloc[134:181, 0].astype(int, errors='ignore').values + test_addl_func_units_lowed = test_dfs.addl_func_units_lowed.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_addl_func_units_lowed, exp_addl_func_units_lowed, check_exact=False, rtol=1e-3) + + exp_emis_diff_highed = expected_df.iloc[134:181, [22, 23, 24, 25, 27]].T.reset_index(drop=True).T.astype(float) + exp_emis_diff_highed.index = expected_df.iloc[134:181, 0].astype(int, errors='ignore').values + test_emis_diff_highed = test_dfs.emis_diff_highed.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_emis_diff_highed, exp_emis_diff_highed, check_exact=False, rtol=1e-3) + + exp_emis_diff_lowed = expected_df.iloc[134:181, [35, 36, 37, 38, 40]].T.reset_index(drop=True).T.astype(float) + exp_emis_diff_lowed.index = expected_df.iloc[134:181, 0].astype(int, errors='ignore').values + test_emis_diff_lowed = test_dfs.emis_diff_lowed.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_emis_diff_lowed, exp_emis_diff_lowed, check_exact=False, rtol=1e-3) + + exp_emissions_allocations_lldc = expected_df.iloc[134:181, [46, 47, 49, 50, 52, 53, 56, 57]].T.reset_index(drop=True).T.astype(float) + exp_emissions_allocations_lldc.index = expected_df.iloc[134:181, 45].astype(int, errors='ignore').values + test_emissions_allocations_lldc = test_dfs.emissions_allocations_lldc.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_emissions_allocations_lldc, exp_emissions_allocations_lldc, check_exact=False, rtol=1e-2) + + exp_addl_func_units_mdc = expected_df.iloc[193:240, 4:7].T.reset_index(drop=True).T.astype(float) + exp_addl_func_units_mdc.index = expected_df.iloc[193:240, 0].astype(int, errors='ignore').values + test_addl_func_units_mdc = test_dfs.addl_func_units_mdc.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_addl_func_units_mdc, exp_addl_func_units_mdc, check_exact=False, rtol=1e-3) + + exp_emis_diff_mdc = expected_df.iloc[193:240, [15, 16, 17, 18, 20]].T.reset_index(drop=True).T.astype(float) + exp_emis_diff_mdc.index = expected_df.iloc[193:240, 0].astype(int, errors='ignore').values + test_emis_diff_mdc = test_dfs.emis_diff_mdc.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_emis_diff_mdc, exp_emis_diff_mdc, check_exact=False, rtol=1e-3) + + exp_emissions_allocations_mdc = expected_df.iloc[193:240, [25, 26, 28, 29, 31, 32, 35, 36]].T.reset_index(drop=True).T.astype(float) + exp_emissions_allocations_mdc.index = expected_df.iloc[193:240, 24].astype(int, errors='ignore').values + test_emissions_allocations_mdc = test_dfs.emissions_allocations_mdc.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_emissions_allocations_mdc, exp_emissions_allocations_mdc, check_exact=False, rtol=1e-2) + + # Test the final CO2 reduction output + exp_emissions_avoided = expected_df.iloc[[4, 7, 11], [13, 14]].reset_index(drop=True).T.reset_index(drop=True).T.astype(float) + test_emissions_avoided = pd.DataFrame([[test_dfs.emissions_avoided_lldc_period, test_dfs.emissions_avoided_lldc_full], + [test_dfs.emissions_avoided_mdc_period, test_dfs.emissions_avoided_mdc_full], + [test_dfs.emissions_avoided_total_period, test_dfs.emissions_avoided_total_full]]) + pd.testing.assert_frame_equal(test_emissions_avoided, exp_emissions_avoided, check_exact=False, rtol=1e-2) + + print("Test complete: res light cluster") + +test_res_light() \ No newline at end of file From 75d58aa8948b9702a2ae5e6fd313604b37e72f46 Mon Sep 17 00:00:00 2001 From: Sunishchal Date: Wed, 30 Dec 2020 20:32:29 -0800 Subject: [PATCH 21/28] Working water heating cluster implementation --- .../clusters/cluster_model.py | 46 ++++ .../clusters/water_heating.py | 187 ++++++++++++++ .../tests/expected_water_heating.csv | 240 ++++++++++++++++++ .../tests/test_water_heating.py | 101 ++++++++ 4 files changed, 574 insertions(+) create mode 100644 solution/health_and_education/clusters/water_heating.py create mode 100644 solution/health_and_education/tests/expected_water_heating.csv create mode 100644 solution/health_and_education/tests/test_water_heating.py diff --git a/solution/health_and_education/clusters/cluster_model.py b/solution/health_and_education/clusters/cluster_model.py index 1335e5487..6d8e79de3 100644 --- a/solution/health_and_education/clusters/cluster_model.py +++ b/solution/health_and_education/clusters/cluster_model.py @@ -396,6 +396,27 @@ def calc_emis_diff_lowed_spaceheating(self): self.emis_diff_lowed = emis_diff_lowed + def calc_emis_diff_lowed_waterheating(self): + emis_diff_lowed = pd.DataFrame(None, + columns=['Conventional: Grid','Conventional: Fuel', 'Conventional: Other Direct', 'Conventional: Indirect', 'Emission Reductions: Conv Total'], + index=list(range(2014, 2061)), dtype=np.float64) + + if self.assumptions['Grid'] == 'Y': + emis_diff_lowed['Conventional: Grid'] = self.addl_func_units_lowed['Additional Functional Units in REF2 vs REF2'] \ + * (self.current_tam_mix.loc[self.current_tam_mix['Energy Source'] == 'Electricity (Heating & Cooling)', 'Weighting Factor'].values[0] / self.conv_weight_sum) \ + * self.assumptions['Twh_per_TWh'] * self.emissions_factors_ref1_co2eq['World'] + + if self.assumptions['Fuel'] == 'Y': + emis_diff_lowed['Conventional: Fuel'] = self.addl_func_units_lowed['Additional Functional Units in REF2 vs REF2'] \ + * (self.current_tam_mix.loc[self.current_tam_mix['Energy Source'].isin(['Coal', 'Oil Products', 'Natural Gas']), 'Weighting Factor'].sum() / self.conv_weight_sum) \ + * (self.assumptions['Weighted Emission Factor for Space Heating and Cooling'] * self.assumptions['TJ_per_TWh']) / 10**6 + + emis_diff_lowed['Emission Reductions: Conv Total'] = emis_diff_lowed[['Conventional: Grid', 'Conventional: Fuel', 'Conventional: Other Direct', 'Conventional: Indirect']].sum(axis=1, min_count=1) + + # SpaceHeating_cluster!AI131:AM179 + self.emis_diff_lowed = emis_diff_lowed + + def calc_emis_diff_lowed_spacecooling(self): emis_diff_lowed = pd.DataFrame(None, columns=['Conventional: Grid','Conventional: Fuel', 'Conventional: Other Direct', 'Conventional: Indirect', 'Emission Reductions: Conv Total'], @@ -531,6 +552,31 @@ def calc_emis_diff_mdc_spaceheating(self): self.emis_diff_mdc = emis_diff_mdc + def calc_emis_diff_mdc_waterheating(self): + # Table 13: Difference in EMISSIONS between REF1 and REF2 populations in MDC + LAC + EE + China + # CONVENTIONAL Avoided Emissions/ Million Metric Tons CO2 + emis_diff_mdc = pd.DataFrame(None, + columns=['Conventional: Grid','Conventional: Fuel', 'Conventional: Other Direct', 'Conventional: Indirect', 'Emission Reductions: Conv Total'], + index=list(range(2014, 2061)), dtype=np.float64) + # print(self.addl_func_units_mdc['Additional Functional Units in REF2 vs REF2'], + # (self.current_tam_mix.loc[self.current_tam_mix['Energy Source'] == 'Electricity (Heating & Cooling)', 'Weighting Factor'].values[0] / self.conv_weight_sum), + # self.assumptions['Twh_per_TWh'], self.emissions_factors_ref1_co2eq['World']) + if self.assumptions['Grid'] == 'Y': + emis_diff_mdc['Conventional: Grid'] = self.addl_func_units_mdc['Additional Functional Units in REF2 vs REF2'] \ + * (self.current_tam_mix.loc[self.current_tam_mix['Energy Source'] == 'Electricity (Heating & Cooling)', 'Weighting Factor'].values[0] / self.conv_weight_sum) \ + * self.assumptions['Twh_per_TWh'] * self.emissions_factors_ref1_co2eq['World'] + + if self.assumptions['Fuel'] == 'Y': + emis_diff_mdc['Conventional: Fuel'] = self.addl_func_units_mdc['Additional Functional Units in REF2 vs REF2'] \ + * (self.current_tam_mix.loc[self.current_tam_mix['Energy Source'].isin(['Coal', 'Oil Products', 'Natural Gas']), 'Weighting Factor'].sum() / self.conv_weight_sum) \ + * (self.assumptions['Weighted Emission Factor for Space Heating and Cooling'] * self.assumptions['TJ_per_TWh']) / 10**6 + + emis_diff_mdc['Emission Reductions: Conv Total'] = emis_diff_mdc[['Conventional: Grid', 'Conventional: Fuel', 'Conventional: Other Direct', 'Conventional: Indirect']].sum(axis=1, min_count=1) + + # SpaceHeating_cluster!O190:S238 + self.emis_diff_mdc = emis_diff_mdc + + def calc_emis_diff_mdc_spacecooling(self): emis_diff_mdc = pd.DataFrame(None, columns=['Conventional: Grid','Conventional: Fuel', 'Conventional: Other Direct', 'Conventional: Indirect', 'Emission Reductions: Conv Total'], diff --git a/solution/health_and_education/clusters/water_heating.py b/solution/health_and_education/clusters/water_heating.py new file mode 100644 index 000000000..c0167da01 --- /dev/null +++ b/solution/health_and_education/clusters/water_heating.py @@ -0,0 +1,187 @@ +"""Health & Education solution model for Water Heating Cluster + Excel filename: CORE_PopulationChange_29Jan2020 (version 1.5).xlsx + Excel sheet name: WaterHeating_cluster +""" +import pathlib +import numpy as np +import pandas as pd +import sys +__file__ = 'c:\\Users\\sunishchal.dev\\Documents\\solutions\\solution\\health_and_education\\clusters' +repo_path = str(pathlib.Path(__file__).parents[2]) +sys.path.append(repo_path) +# sys.path.append('c:\\Users\\sunishchal.dev\\Documents\\solutions') + +from model import advanced_controls as ac +from solution.health_and_education.clusters import cluster_model + +DATADIR = pathlib.Path(__file__).parents[0].joinpath('data') +THISDIR = pathlib.Path(__file__).parents[0] + +name = 'Health and Education - Water Heating Cluster' +solution_category = ac.SOLUTION_CATEGORY.REDUCTION +period_start = 2020 +period_end = 2050 + +# % impact of educational attainment on uptake of Family Planning: +assumptions = { + 'fixed_weighting_factor': None, + 'pct_impact': 0.50, + 'use_fixed_weight': 'N', + 'Twh_per_TWh': 0.258076042718495, + 'TJ_per_TWh': 4559.9356816308, + 'period_start': 2020, + 'period_end': 2050, + 'Grid': 'Y', + 'Fuel': 'Y', + 'Other Direct': 'N', + 'Indirect': 'N', + 'Weighted Emission Factor for Space Heating and Cooling': 87.04 +} + +# TABLE 1: Current TAM Mix +current_tam_mix_list = [ + ['Energy Source', 'Weighting Factor', 'Include in SOL?', 'Include in CONV?'], + ['Coal', 1.5, 'N', 'Y'], + ['Oil Products', 15.1, 'N', 'Y'], + ['Natural Gas', 25.8, 'N', 'Y'], + ['Electricity (Heating & Cooling)', 13.4, 'N', 'Y'], + ['Biomass, waste and other renewables', 31.6, 'N', 'N'], + ['Commercial heat', 5.5, 'N', 'Y']] + +# Table 2: REF2, Water Heating Demand TAM (TWh Therms) +# WaterHeating_cluster!B28:K75 +# TODO: Replace this with solarpvutil.Scenario.ref_tam_per_region once we resolve the data mismatch +ref2_tam_list = [ + ['World', 'OECD90', 'Eastern Europe', 'Asia (Sans Japan)', 'Middle East and Africa', 'Latin America', 'China', 'India', 'EU', 'USA'], + [4732.065320, 1553.606719, 515.638146, 969.592015, 266.192644, 322.436500, 738.300606, 386.782947, 595.845608, 588.813575], + [4770.336061, 1562.240857, 518.140272, 999.274608, 274.624745, 328.730412, 750.797283, 390.073869, 599.085377, 594.244396], + [4811.547178, 1567.991775, 520.942358, 1021.636272, 282.111567, 333.985407, 760.243168, 394.954269, 601.559342, 598.476773], + [4851.724970, 1573.437489, 523.710128, 1044.200475, 289.639594, 339.217275, 769.422403, 399.508301, 603.868475, 602.507651], + [4890.882691, 1578.589771, 526.443977, 1066.963026, 297.208102, 344.425432, 778.334189, 403.748024, 606.018663, 606.344349], + [4929.033600, 1583.460391, 529.144299, 1089.919741, 304.816368, 349.609291, 786.977729, 407.685494, 608.015793, 609.994188], + [4966.190950, 1588.061119, 531.811490, 1113.066430, 312.463666, 354.768266, 795.352221, 411.332766, 609.865750, 613.464485], + [5002.367998, 1592.403728, 534.445943, 1136.398907, 320.149274, 359.901771, 803.456869, 414.701898, 611.574422, 616.762562], + [5037.577999, 1596.499986, 537.048054, 1159.912984, 327.872467, 365.009220, 811.290873, 417.804945, 613.147695, 619.895737], + [5071.834210, 1600.361665, 539.618217, 1183.604474, 335.632522, 370.090028, 818.853435, 420.653965, 614.591456, 622.871329], + [5105.149887, 1604.000536, 542.156827, 1207.469189, 343.428714, 375.143607, 826.143755, 423.261013, 615.911592, 625.696660], + [5137.538284, 1607.428370, 544.664279, 1231.502942, 351.260319, 380.169373, 833.161034, 425.638146, 617.113989, 628.379046], + [5169.012659, 1610.656936, 547.140967, 1255.701546, 359.126615, 385.166738, 839.904475, 427.797422, 618.204535, 630.925810], + [5199.586266, 1613.698006, 549.587286, 1280.060812, 367.026876, 390.135117, 846.373277, 429.750895, 619.189115, 633.344269], + [5229.272362, 1616.563351, 552.003631, 1304.576554, 374.960379, 395.073925, 852.566643, 431.510622, 620.073616, 635.641743], + [5258.084202, 1619.264741, 554.390397, 1329.244584, 382.926400, 399.982574, 858.483773, 433.088660, 620.863926, 637.825553], + [5286.035043, 1621.813947, 556.747978, 1354.060715, 390.924214, 404.860479, 864.123869, 434.497066, 621.565930, 639.903016], + [5313.138140, 1624.222740, 559.076769, 1379.020760, 398.953099, 409.707054, 869.486132, 435.747895, 622.185516, 641.881454], + [5339.406748, 1626.502890, 561.377165, 1404.120530, 407.012330, 414.521713, 874.569762, 436.853205, 622.728571, 643.768185], + [5364.854125, 1628.666169, 563.649560, 1429.355838, 415.101183, 419.303869, 879.373962, 437.825051, 623.200980, 645.570529], + [5389.493525, 1630.724346, 565.894350, 1454.722498, 423.218934, 424.052938, 883.897933, 438.675491, 623.608630, 647.295805], + [5413.338204, 1632.689193, 568.111928, 1480.216321, 431.364859, 428.768332, 888.140874, 439.416580, 623.957409, 648.951333], + [5436.401419, 1634.572480, 570.302690, 1505.833121, 439.538235, 433.449466, 892.101989, 440.060374, 624.253203, 650.544432], + [5458.696424, 1636.385978, 572.467030, 1531.568709, 447.738337, 438.095754, 895.780477, 440.618932, 624.501899, 652.082422], + [5480.236477, 1638.141458, 574.605343, 1557.418899, 455.964442, 442.706609, 899.175541, 441.104308, 624.709382, 653.572623], + [5501.034832, 1639.850690, 576.718024, 1583.379502, 464.215825, 447.281446, 902.286380, 441.528559, 624.881541, 655.022353], + [5521.104746, 1641.525446, 578.805467, 1609.446332, 472.491763, 451.819679, 905.112198, 441.903742, 625.024262, 656.438933], + [5540.459474, 1643.177495, 580.868068, 1635.615201, 480.791531, 456.320721, 907.652193, 442.241913, 625.143431, 657.829681], + [5559.112272, 1644.818609, 582.906220, 1661.881922, 489.114406, 460.783987, 909.905569, 442.555129, 625.244934, 659.201918], + [5577.076396, 1646.460559, 584.920320, 1688.242306, 497.459664, 465.208891, 911.871526, 442.855446, 625.334660, 660.562963], + [5594.365102, 1648.115114, 586.910760, 1714.692168, 505.826582, 469.594846, 913.549265, 443.154920, 625.418494, 661.920135], + [5610.991645, 1649.794046, 588.877936, 1741.227319, 514.214434, 473.941266, 914.937987, 443.465609, 625.502323, 663.280754], + [5626.969282, 1651.509126, 590.822243, 1767.843572, 522.622497, 478.247566, 916.036894, 443.799567, 625.592034, 664.652139], + [5642.311269, 1653.272124, 592.744076, 1794.536739, 531.050047, 482.513160, 916.845187, 444.168853, 625.693514, 666.041611], + [5657.030860, 1655.094811, 594.643829, 1821.302634, 539.496360, 486.737461, 917.362066, 444.585521, 625.812649, 667.456487], + [5671.141313, 1656.988958, 596.521897, 1848.137068, 547.960713, 490.919883, 917.586734, 445.061630, 625.955325, 668.904088], + [5684.655882, 1658.966335, 598.378674, 1875.035854, 556.442381, 495.059841, 917.518391, 445.609234, 626.127430, 670.391734], + [5697.587823, 1661.038713, 600.214556, 1901.994805, 564.940640, 499.156748, 917.156238, 446.240391, 626.334851, 671.926744], + [5709.950394, 1663.217863, 602.029936, 1929.009734, 573.454767, 503.210018, 916.499477, 446.967157, 626.583473, 673.516436], + [5721.756848, 1665.515555, 603.825211, 1956.076452, 581.984037, 507.219066, 915.547309, 447.801589, 626.879184, 675.168132], + [5733.020442, 1667.943561, 605.600774, 1983.190773, 590.527727, 511.183305, 914.298935, 448.755742, 627.227870, 676.889150], + [5743.754433, 1670.513651, 607.357020, 2010.348509, 599.085113, 515.102150, 912.753556, 449.841674, 627.635418, 678.686810], + [5753.972075, 1673.237595, 609.094344, 2037.545473, 607.655470, 518.975013, 910.910374, 451.071440, 628.107715, 680.568431], + [5763.686624, 1676.127165, 610.813141, 2064.777477, 616.238075, 522.801310, 908.768589, 452.457098, 628.650647, 682.541333], + [5772.911337, 1679.194131, 612.513805, 2092.040334, 624.832204, 526.580454, 906.327403, 454.010703, 629.270101, 684.612836], + [5781.659469, 1682.450264, 614.196732, 2119.329856, 633.437133, 530.311860, 903.586017, 455.744312, 629.971964, 686.790258], + [5789.944276, 1685.907334, 615.862315, 2146.641856, 642.052138, 533.994940, 900.543632, 457.669982, 630.762122, 689.080919]] + + + +# GRID EMISSIONS FACTORS: REF Grid EFs kg CO2-eq per kwh +# Emissions Factors!B11:K57 +# TODO: Replace this with emissions_factors module once interface is better understood +ef_co2_eq_list = [ + ['World', 'OECD90', 'Eastern Europe', 'Asia (Sans Japan)', 'Middle East and Africa', 'Latin America', 'China', 'India', 'EU', 'USA'], + [None, None, None, None, None, None, None, None, None, None], + [0.617381628, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.613053712, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.605559021, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.599823764, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.596692109, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.592956465, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.589394210, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.585889941, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.582469966, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.579126508, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.576180724, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.572640473, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.569484654, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.566378788, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.563317175, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.560425096, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.557305440, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.554345365, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.551409592, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.548493724, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.545513743, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.542688056, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.539794403, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.536903541, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.533998347, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.530880184, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.528185055, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.525268472, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.522337859, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.519390128, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.516316183, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.513431317, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.510414389, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.507368630, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.504753472, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.503017663, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.501095098, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.499244741, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.497355610, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.495425752, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.493412239, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.491436597, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.489373931, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.487263794, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.485104746, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.483057065, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666]] + +class Cluster: + + def __init__(self): + self.name = name + + def run_cluster(self): + scenario = cluster_model.Scenario(name, assumptions) + scenario.load_pop_data(DATADIR) + scenario.load_tam_mix(current_tam_mix_list) + scenario.load_ref2_tam(ref2_tam_list) + scenario.calc_ref1_tam() + scenario.calc_ref2_demand() + scenario.calc_ref1_demand() + scenario.calc_change_demand() + scenario.calc_addl_units_highed() + scenario.calc_addl_units_lowed() + scenario.calc_emis_diff_highed_waterheating(ef_co2_eq_list) + scenario.calc_emis_diff_lowed_waterheating() + scenario.calc_emis_alloc_lldc() + scenario.calc_addl_units_mdc() + scenario.calc_emis_diff_mdc_waterheating() + scenario.calc_emis_alloc_mdc() + scenario.calc_total_emis() + scenario.print_total_emis() + return scenario + +if __name__ == "__main__": + cluster = Cluster() + cluster.run_cluster() \ No newline at end of file diff --git a/solution/health_and_education/tests/expected_water_heating.csv b/solution/health_and_education/tests/expected_water_heating.csv new file mode 100644 index 000000000..1c09ec64f --- /dev/null +++ b/solution/health_and_education/tests/expected_water_heating.csv @@ -0,0 +1,240 @@ +WaterHeating_cluster,,Water Heating,(TWh Therms),,,,,Sheet Estimates the Emissions Reduction from this Solution due to Health & Education,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,Period Start:,2020,,Total Emissions Avoided due to Health & Education (Gt CO2-eq),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,COPY VALUES FROM SOLUTION MODEL,,,,Period End:,2050,,,,2020-2050,2015-2060,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,TABLE 1: Current TAM Mix,2018,Include in SOL?,Include in CONV?,,,,LLDC,SOLUTION,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,Coal,0.015,N,Y,,,,,CONVENTIONAL,0.557297917,1.13850223,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,Oil products,0.151,N,Y,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +Keywords:,,,,Natural gas,0.258,N,Y,,,,MDC,SOLUTION,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +LLDC,Least and Less Developed Countries,,,Electricity,0.134,N,Y,,,,,CONVENTIONAL,1.154902838,2.024614784,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +MDC,More Developed Countries,,,"Biomass, waste and other renewables",0.316,Y,N,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +LLDC+HighNRR+HigherEd,Least and Less Developed Countries with High Net Reproductive Rates & Higher Educational Attainment.,"NOTE: China, LAC, and EE are considered as LLDC Regions with Low NRR and are accounted for under the _mdc sheet.",,Commercial heat,0.055,N,Y,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +LLDC+HighNRR+LowEd,"Least and Less Developed Countries with High Net Reproductive Rates & Lower Educational Attainment. This excludes China, LAC, and EE.","NOTE: China, LAC, and EE are considered as LLDC Regions with Low NRR and are accounted for under the _mdc sheet.",,,,,,,,,TOTAL,SOLUTION,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +REF1,Reference Scenario 1 with Higher Population,,,,,,,,,,,CONVENTIONAL,1.712200755,3.163117014,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +REF2,Reference Scenario 2 with Lower Population,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +TAM,Total Addressable Market,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +LAC,Latin American Countries,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +EE,Eastern Europe,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +TWh,Terrawatt-Hours,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +NRR,Net Reproductive Rate,,,Assumptions:,,Use fixed weight?,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,Fixed weighting factor:,,N,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,% impact of educational attainment on uptake of Family Planning:,0.5,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,Twh per TWh,0.258076043,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,Fuel unit (TJ) per TWh,4559.935682,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,Direct Emissions,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,Indirect Emissions,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +"Table 2: REF2, Water Heating TAM (TWh Therms)",,,,,,,,,,,,"Table 3: REF1 ,Water Heating TAM (TWh Therms)",,,,,,,,,,,,Table 3: REF1 Water Heating TAM (TWh Therms),,,,,,,,,,,,Table 3: REF1 Water Heating TAM (TWh Therms),,,,,,,,,,,,,,,,,,,,, +COPY TABLES BELOW FROM LATEST WaterHeating_cluster SOLUTION MODELS,,,,,,,,,,,,(a) FOR POPULATIONS IN REGIONS WITH LOW EDUCATIONAL ATTAINMENT ONLY!,,,,,,,,,,,,(b) FOR REGIONS WITH HIGHER EDUCATIONAL ATTAINMENT,,,,,,,,,,,,(c) FOR ALL REGIONS,,,,,,,,,,,,,,,,,,,,, +,Regions included as LLDC+HighNRR:,N,N,Y,Y,N,,,,,,,Regions included as LLDC+HighNRR:,N,N,Y,Y,N,,,,,,,Regions included as LLDC+HighNRR:,N,N,Y,Y,N,,,,,,,,,,,,,,,,,,CHECK,,,,,,,,, +,World,OECD90,Eastern Europe,Asia (Sans Japan),Middle East and Africa,Latin America,China,India,EU,USA,,,World,OECD90,Eastern Europe,"Asia (Sans Japan, Sans China)",Middle East and Africa,Latin America,China,India,EU,USA,,,World,OECD90,Eastern Europe,Asia (Sans Japan),Middle East and Africa,Latin America,China,India,EU,USA,,,World,OECD90,Eastern Europe,Asia (Sans Japan),Middle East and Africa,Latin America,China,India,EU,USA,,WORLD,,REGIONAL TOTAL,,% error,OECD90,Eastern Europe,Asia (Sans Japan),Middle East and Africa,Latin America +2014,4732.065320,1553.606719,515.638146,969.592015,266.192644,322.436500,738.300606,386.782947,595.845608,588.813575,,2014,0,0,0,0,0,0,0,0,0,0,,2014,4732.06532,1553.606719,515.6381464,969.5920152,266.1926442,322.4365002,738.3006063,386.7829471,595.845608,588.8135754,,2014,4732.06532,1553.606719,515.6381464,969.5920152,266.1926442,322.4365002,738.3006063,386.7829471,595.845608,588.8135754,,4732.06532,OK,3627.466025,OK,,1553.606719,515.6381464,969.5920152,266.1926442,322.4365002 +2015,4770.336061,1562.240857,518.140272,999.274608,274.624745,328.730412,750.797283,390.073869,599.085377,594.244396,,2015,397.4525807,0,10.79097389,129.7139881,164.6247397,92.32287911,0,0,0,0,,2015,4372.88348,1562.240857,507.3492978,869.5606196,110.0000058,236.4075332,750.7972831,390.0738694,599.0853766,594.2443957,,2015,4770.336061,1562.240857,518.1402717,999.2746077,274.6247454,328.7304123,750.7972831,390.0738694,599.0853766,594.2443957,,4770.336061,OK,3683.010894,OK,,1562.240857,518.1402717,999.2746077,274.6247454,328.7304123 +2016,4811.547178,1567.991775,520.942358,1021.636272,282.111567,333.985407,760.243168,394.954269,601.559342,598.476773,,2016,412.4475366,0,11.09800041,137.1356869,169.997101,94.21674824,0,0,0,0,,2016,4404.169983,1569.289349,510.2433852,885.5954702,112.4269248,240.2135964,760.918125,395.4097595,601.9892512,599.039124,,2016,4816.61752,1569.289349,521.3413856,1022.731157,282.4240258,334.4303447,760.918125,395.4097595,601.9892512,599.039124,,4816.61752,OK,3730.216263,OK,,1569.289349,521.3413856,1022.731157,282.4240258,334.4303447 +2017,4851.724970,1573.437489,523.710128,1044.200475,289.639594,339.217275,769.422403,399.508301,603.868475,602.507651,,2017,428.0853939,0,11.42130361,144.9659931,175.5153046,96.18279256,0,0,0,0,,2017,4435.969629,1576.598469,513.2639587,901.9353449,114.8907151,244.1255079,771.0736048,400.6189222,604.9188614,603.8789615,,2017,4864.055023,1576.598469,524.6852623,1046.901338,290.4060197,340.3083005,771.0736048,400.6189222,604.9188614,603.8789615,,4864.055023,OK,3778.89939,OK,,1576.598469,524.6852623,1046.901338,290.4060197,340.3083005 +2018,4890.882691,1578.589771,526.443977,1066.963026,297.208102,344.425432,778.334189,403.748024,606.018663,606.344349,,2018,444.3481815,0,11.75861232,153.2058627,181.17185,98.21185651,0,0,0,0,,2018,4467.956475,1584.086492,516.3791972,918.5135369,117.3827589,248.1279697,781.200563,405.6843126,607.8457739,608.7314547,,2018,4912.304656,1584.086492,528.1378096,1071.7194,298.5546089,346.3398262,781.200563,405.6843126,607.8457739,608.7314547,,4912.304656,OK,3828.838136,OK,,1584.086492,528.1378096,1071.7194,298.5546089,346.3398262 +2019,4929.033600,1583.460391,529.144299,1089.919741,304.816368,349.609291,786.977729,407.685494,608.015793,609.994188,,2019,461.1918896,0,12.10607151,161.8445579,186.9535292,100.2877309,0,0,0,0,,2019,4499.616861,1591.613653,519.5373931,935.2208656,119.887764,252.1935825,791.1961941,410.570149,610.7197987,613.5390049,,2019,4960.808751,1591.613653,531.6434646,1097.065424,306.8412933,352.4813134,791.1961941,410.570149,610.7197987,613.5390049,,4960.808751,OK,3879.645148,OK,,1591.613653,531.6434646,1097.065424,306.8412933,352.4813134 +2020,4966.190950,1588.061119,531.811490,1113.066430,312.463666,354.768266,795.352221,411.332766,609.865750,613.464485,,2020,478.5828833,0,12.4606308,170.8737158,192.850763,102.3977738,0,0,0,0,,2020,4530.565955,1599.076565,522.6997498,951.9714426,122.3936087,256.300941,800.980464,415.2515998,613.5041839,618.2596911,,2020,5009.148838,1599.076565,535.1603806,1122.845158,315.2443717,358.6987147,800.980464,415.2515998,613.5041839,618.2596911,,5009.148838,OK,3931.02519,OK,,1599.076565,535.1603806,1122.845158,315.2443717,358.6987147 +2021,5002.367998,1592.403728,534.445943,1136.398907,320.149274,359.901771,803.456869,414.701898,611.574422,616.762562,,2021,496.5185675,0,12.82170154,180.2978931,198.8601358,104.538837,0,0,0,0,,2021,4560.704868,1606.454632,525.8559033,968.7378032,124.8984309,260.4455982,810.5306059,419.7292915,616.1926785,622.8863634,,2021,5057.223435,1606.454632,538.6776048,1149.035696,323.7585667,364.9844351,810.5306059,419.7292915,616.1926785,622.8863634,,5057.223435,OK,3982.910935,OK,,1606.454632,538.6776048,1149.035696,323.7585667,364.9844351 +2022,5037.577999,1596.499986,537.048054,1159.912984,327.872467,365.009220,811.290873,417.804945,613.147695,619.895737,,2022,515.0195337,0,13.19001243,190.1301203,204.9856477,106.7137532,0,0,0,0,,2022,4590.112478,1613.783284,529.0177747,985.5317465,127.4039752,264.6322576,819.8627383,424.0202239,618.8016494,627.4370413,,2022,5105.132012,1613.783284,542.2077871,1175.661867,332.389623,371.3460108,819.8627383,424.0202239,618.8016494,627.4370413,,5105.132012,OK,4035.388572,OK,,1613.783284,542.2077871,1175.661867,332.389623,371.3460108 +2023,5071.834210,1600.361665,539.618217,1183.604474,335.632522,370.090028,818.853435,420.653965,614.591456,622.871329,,2023,534.0980838,0,13.56521335,200.3772178,211.233462,108.9221907,0,0,0,0,,2023,4618.786026,1621.077832,532.1940142,1002.349673,129.9053746,268.8581795,828.978669,428.1341901,621.3422857,631.9232135,,2023,5152.88411,1621.077832,545.7592275,1202.726891,341.1388366,377.7803702,828.978669,428.1341901,621.3422857,631.9232135,,5152.88411,OK,4088.483158,OK,,1621.077832,545.7592275,1202.726891,341.1388366,377.7803702 +2024,5105.149887,1604.000536,542.156827,1207.469189,343.428714,375.143607,826.143755,423.261013,615.911592,625.696660,,2024,553.7719101,0,13.94713905,211.0469699,217.6127562,111.165045,0,0,0,0,,2024,4646.762194,1628.367829,535.4007901,1019.198313,132.3972737,273.1217641,837.8908934,432.0845187,623.8326144,636.3634433,,2024,5200.534104,1628.367829,549.3479292,1230.245283,350.0100299,384.2868091,837.8908934,432.0845187,623.8326144,636.3634433,,5200.534104,OK,4142.25788,OK,,1628.367829,549.3479292,1230.245283,350.0100299,384.2868091 +2025,5137.538284,1607.428370,544.664279,1231.502942,351.260319,380.169373,833.161034,425.638146,617.113989,628.379046,,2025,574.0520649,0,14.3356572,222.1453795,224.128995,113.4420332,0,0,0,0,,2025,4674.043027,1635.669998,538.6491883,1036.077229,134.8750768,277.420362,846.6065364,435.8803998,626.2853387,640.7696765,,2025,5248.095091,1635.669998,552.9848455,1258.222609,359.0040717,390.8623952,846.6065364,435.8803998,626.2853387,640.7696765,,5248.095091,OK,4196.743919,OK,,1635.669998,552.9848455,1258.222609,359.0040717,390.8623952 +2026,5169.012659,1610.656936,547.140967,1255.701546,359.126615,385.166738,839.904475,427.797422,618.204535,630.925810,,2026,594.948454,0,14.73069929,233.680184,230.7846361,115.7529346,0,0,0,0,,2026,4700.613056,1642.991158,541.9406676,1052.979689,137.3368689,281.7521731,855.1209349,439.5315465,628.7055236,645.148043,,2026,5295.56151,1642.991158,556.6713669,1286.659873,368.121505,397.5051078,855.1209349,439.5315465,628.7055236,645.148043,,5295.56151,OK,4251.94901,OK,,1642.991158,556.6713669,1286.659873,368.121505,397.5051078 +2027,5199.586266,1613.698006,549.587286,1280.060812,367.026876,390.135117,846.373277,429.750895,619.189115,633.344269,,2027,616.4520675,0,15.13211536,245.652371,237.5738089,118.0937723,0,0,0,0,,2027,4726.368434,1650.306602,545.2671153,1069.879447,139.7807939,286.1113563,863.4185213,443.0358217,631.0871425,649.4890931,,2027,5342.820502,1650.306602,560.3992306,1315.531818,377.3546028,404.2051286,863.4185213,443.0358217,631.0871425,649.4890931,,5342.820502,OK,4307.797381,OK,,1650.306602,560.3992306,1315.531818,377.3546028,404.2051286 +2028,5229.272362,1616.563351,552.003631,1304.576554,374.960379,395.073925,852.566643,431.510622,620.073616,635.641743,,2028,638.5305437,0,15.53964477,258.0514842,244.4834169,120.4559979,0,0,0,0,,2028,4751.123582,1657.564302,548.6189063,1086.734528,142.2027257,290.4864104,871.4836833,446.3771082,633.4186563,653.7707482,,2028,5389.654125,1657.564302,564.1585511,1344.786012,386.6861426,410.9424084,871.4836833,446.3771082,633.4186563,653.7707482,,5389.654125,OK,4364.137417,OK,,1657.564302,564.1585511,1344.786012,386.6861426,410.9424084 +2029,5258.084202,1619.264741,554.390397,1329.244584,382.926400,399.982574,858.483773,433.088660,620.863926,637.825553,,2029,661.136279,0,15.95298152,270.8593959,251.4954636,122.8284381,0,0,0,0,,2029,4774.648402,1664.694059,551.9822511,1103.49248,144.5982722,294.8628771,879.2968705,449.5326424,635.6828524,657.9622402,,2029,5435.784681,1664.694059,567.9352327,1374.351876,396.0937358,417.6913152,879.2968705,449.5326424,635.6828524,657.9622402,,5435.784681,OK,4420.766219,OK,,1664.694059,567.9352327,1374.351876,396.0937358,417.6913152 +2030,5286.035043,1621.813947,556.747978,1354.060715,390.924214,404.860479,864.123869,434.497066,621.565930,639.903016,,2030,684.2330156,0,16.37202583,284.0616305,258.5965664,125.2027929,0,0,0,0,,2030,4796.784493,1671.645953,555.3462183,1120.114463,146.9647989,299.2299313,886.8431961,452.4903014,637.8674915,662.0422905,,2030,5481.017509,1671.645953,571.7182441,1404.176093,405.5613653,424.4327242,886.8431961,452.4903014,637.8674915,662.0422905,,5481.017509,OK,4477.53438,OK,,1671.645953,571.7182441,1404.176093,405.5613653,424.4327242 +2031,5313.138140,1624.222740,559.076769,1379.020760,398.953099,409.707054,869.486132,435.747895,622.185516,641.881454,,2031,707.806284,0,16.79658364,297.6523593,265.782324,127.5750171,0,0,0,0,,2031,4817.46975,1678.403536,558.7056643,1136.579614,149.3005874,303.5817776,894.1100878,455.2538039,639.9692913,666.0063936,,2031,5525.276034,1678.403536,575.5022479,1434.231974,415.0829114,431.1567947,894.1100878,455.2538039,639.9692913,666.0063936,,5525.276034,OK,4534.377464,OK,,1678.403536,575.5022479,1434.231974,415.0829114,431.1567947 +2032,5339.406748,1626.502890,561.377165,1404.120530,407.012330,414.521713,874.569762,436.853205,622.728571,643.768185,,2032,731.8660685,0,17.22717052,311.636952,273.0553474,129.9465986,0,0,0,0,,2032,4836.755266,1684.984647,562.0609878,1152.892244,151.6074615,307.9195775,901.0977907,457.8424333,641.9940606,669.8650145,,2032,5568.621335,1684.984647,579.2881583,1464.529196,424.6628089,437.8661761,901.0977907,457.8424333,641.9940606,669.8650145,,5568.621335,OK,4591.330986,OK,,1684.984647,579.2881583,1464.529196,424.6628089,437.8661761 +2033,5364.854125,1628.666169,563.649560,1429.355838,415.101183,419.303869,879.373962,437.825051,623.200980,645.570529,,2033,756.4308627,0,17.66531395,326.0258058,280.4179658,132.3217772,0,0,0,0,,2033,4854.742053,1691.417155,565.4132013,1169.071082,153.8910823,312.2483701,907.8203563,460.2800871,643.9497662,673.6308366,,2033,5611.172916,1691.417155,583.0785153,1495.096888,434.3090481,444.5701472,907.8203563,460.2800871,643.9497662,673.6308366,,5611.172916,OK,4648.471753,OK,,1691.417155,583.0785153,1495.096888,434.3090481,444.5701472 +2034,5389.493525,1630.724346,565.894350,1454.722498,423.218934,424.052938,883.897933,438.675491,623.608630,647.295805,,2034,781.5334299,0,18.1131203,340.8371775,287.8752115,134.7079206,0,0,0,0,,2034,4871.585613,1697.745812,568.7657299,1185.149208,156.1595067,316.5772699,914.3010117,462.5978598,645.8487882,677.3232678,,2034,5653.119043,1697.745812,586.8788502,1525.986385,444.0347182,451.2851905,914.3010117,462.5978598,645.8487882,677.3232678,,5653.119043,OK,4705.930956,OK,,1697.745812,586.8788502,1525.986385,444.0347182,451.2851905 +2035,5413.338204,1632.689193,568.111928,1480.216321,431.364859,428.768332,888.140874,439.416580,623.957409,648.951333,,2035,807.2038679,0,18.57230864,356.0890368,295.4314229,137.1110995,0,0,0,0,,2035,4887.409047,1704.009326,572.1206784,1201.152449,158.4192229,320.9137394,920.5561983,464.8240059,647.7017415,680.9598535,,2035,5694.612915,1704.009326,590.692987,1557.241486,453.8506458,458.0248389,920.5561983,464.8240059,647.7017415,680.9598535,,5694.612915,OK,4763.819284,OK,,1704.009326,590.692987,1557.241486,453.8506458,458.0248389 +2036,5436.401419,1634.572480,570.302690,1505.833121,439.538235,433.449466,892.101989,440.060374,624.253203,650.544432,,2036,833.4522,0,19.04344887,371.7891693,303.0868577,139.5327242,0,0,0,0,,2036,4902.243315,1710.2238,575.4786676,1217.084409,160.6726388,325.2591938,926.5889062,466.9738134,649.5148451,684.5491111,,2036,5735.695515,1710.2238,594.5221164,1588.873579,463.7594964,464.791918,926.5889062,466.9738134,649.5148451,684.5491111,,5735.695515,OK,4822.17091,OK,,1710.2238,594.5221164,1588.873579,463.7594964,464.791918 +2037,5458.696424,1636.385978,572.467030,1531.568709,447.738337,438.095754,895.780477,440.618932,624.501899,652.082422,,2037,860.2859787,0,19.52663649,387.9449355,310.8418601,141.9725466,0,0,0,0,,2037,4916.088137,1716.397904,578.8367366,1232.939077,162.9202115,329.613039,932.3894476,469.0622999,651.2906229,688.0981185,,2037,5776.374116,1716.397904,598.3633731,1620.884013,473.7620716,471.5855856,932.3894476,469.0622999,651.2906229,688.0981185,,5776.374116,OK,4880.992947,OK,,1716.397904,598.3633731,1620.884013,473.7620716,471.5855856 +2038,5480.236477,1638.141458,574.605343,1557.418899,455.964442,442.706609,899.175541,441.104308,624.709382,653.572623,,2038,887.7343355,0,20.02256914,404.576833,318.7014822,144.4334511,0,0,0,0,,2038,4928.998913,1722.556735,582.189587,1248.722054,165.1641784,333.9789488,937.9466061,471.1175156,653.0324324,691.622509,,2038,5816.733249,1722.556735,602.2121562,1653.298887,483.8656607,478.4123999,937.9466061,471.1175156,653.0324324,691.622509,,5816.733249,OK,4940.345839,OK,,1722.556735,602.2121562,1653.298887,483.8656607,478.4123999 +2039,5501.034832,1639.850690,576.718024,1583.379502,464.215825,447.281446,902.286380,441.528559,624.881541,655.022353,,2039,915.8331552,0,20.531915,421.7104449,326.6721878,146.9186074,0,0,0,0,,2039,4941.032038,1728.727716,585.530173,1264.437721,167.4064478,338.361074,943.243781,473.1704223,654.7428007,695.1399996,,2039,5856.865193,1728.727716,606.062088,1686.148166,494.0786356,485.2796814,943.243781,473.1704223,654.7428007,695.1399996,,5856.865193,OK,5000.296288,OK,,1728.727716,606.062088,1686.148166,494.0786356,485.2796814 +2040,5521.104746,1641.525446,578.805467,1609.446332,472.491763,451.819679,905.112198,441.903742,625.024262,656.438933,,2040,944.6155095,0,21.0551461,439.3700271,334.7594905,149.4308458,0,0,0,0,,2040,4952.233635,1734.938208,588.8540302,1280.088421,169.6486941,342.763079,948.2671363,475.2477633,656.4262841,698.6674588,,2040,5896.849145,1734.938208,609.9091763,1719.458448,504.4081846,492.1939248,948.2671363,475.2477633,656.4262841,698.6674588,,5896.849145,OK,5060.907942,OK,,1734.938208,609.9091763,1719.458448,504.4081846,492.1939248 +2041,5540.459474,1643.177495,580.868068,1635.615201,480.791531,456.320721,907.652193,442.241913,625.143431,657.829681,,2041,974.1045525,0,21.59268197,457.5737308,342.9660709,151.9720689,0,0,0,0,,2041,4962.632599,1741.210326,592.1601245,1295.675645,171.8923636,347.1874446,953.0149139,477.3677563,658.0893524,702.217464,,2041,5936.737152,1741.210326,613.7528065,1753.249376,514.8584345,499.1595135,953.0149139,477.3677563,658.0893524,702.217464,,5936.737152,OK,5122.230456,OK,,1741.210326,613.7528065,1753.249376,514.8584345,499.1595135 +2042,5559.112272,1644.818609,582.906220,1661.881922,489.114406,460.783987,909.905569,442.555129,625.244934,659.201918,,2042,1004.318046,0,22.14453766,476.3360046,351.2936499,154.5438538,0,0,0,0,,2042,4972.249222,1747.568431,595.4524107,1311.198574,174.1387518,351.6360377,957.4862306,479.5442279,659.7423387,705.8026242,,2042,5976.567268,1747.568431,617.5969484,1787.534578,525.4324017,506.1798915,957.4862306,479.5442279,659.7423387,705.8026242,,5976.567268,OK,5184.312251,OK,,1747.568431,617.5969484,1787.534578,525.4324017,506.1798915 +2043,5577.076396,1646.460559,584.920320,1688.242306,497.459664,465.208891,911.871526,442.855446,625.334660,660.562963,,2043,1035.278088,0,22.71024594,495.6739439,359.7456774,157.1482209,0,0,0,0,,2043,4981.106722,1754.045331,598.7382469,1326.653143,176.3889701,356.1110512,961.6688392,481.7933961,661.3990134,709.4400182,,2043,6016.38481,1754.045331,621.4484928,1822.327087,536.1346475,513.2592721,961.6688392,481.7933961,661.3990134,709.4400182,,6016.38481,OK,5247.21483,OK,,1754.045331,621.4484928,1822.327087,536.1346475,513.2592721 +2044,5594.365102,1648.115114,586.910760,1714.692168,505.826582,469.594846,913.549265,443.154920,625.418494,661.920135,,2044,1067.005616,0,23.2890583,515.6037906,368.3256474,159.7871198,0,0,0,0,,2044,4989.224573,1760.676842,602.0282048,1342.033164,178.6439112,360.6144764,965.5479876,484.1301498,663.0757745,713.1478071,,2044,6056.23019,1760.676842,625.3172631,1857.636954,546.9695586,520.4015962,965.5479876,484.1301498,663.0757745,713.1478071,,6056.23019,OK,5311.002214,FALSE,,1760.676842,625.3172631,1857.636954,546.9695586,520.4015962 +2045,5610.991645,1649.794046,588.877936,1741.227319,514.214434,473.941266,914.937987,443.465609,625.502323,663.280754,,2045,1099.520413,0,23.88038293,536.1413601,377.0365145,162.4621552,0,0,0,0,,2045,4996.617338,1767.495594,605.3319407,1357.332691,180.9041441,365.148074,969.1137174,486.5681473,664.7880519,716.9424368,,2045,6096.13775,1767.495594,629.2123237,1893.474051,557.9406586,527.6102292,969.1137174,486.5681473,664.7880519,716.9424368,,6096.13775,OK,5375.732857,OK,,1767.495594,629.2123237,1893.474051,557.9406586,527.6102292 +2046,5626.969282,1651.509126,590.822243,1767.843572,522.622497,478.247566,916.036894,443.799567,625.592034,664.652139,,2046,1132.8434,0,24.48423431,557.3041077,385.8803624,165.1746953,0,0,0,0,,2046,5003.295966,1774.525251,608.653529,1372.548278,183.1702692,369.7135303,972.3621164,489.1224193,666.5461548,720.8364803,,2046,6136.139365,1774.525251,633.1377633,1929.852386,569.0506316,534.8882256,972.3621164,489.1224193,666.5461548,720.8364803,,6136.139365,OK,5441.454258,OK,,1774.525251,633.1377633,1929.852386,569.0506316,534.8882256 +2047,5642.311269,1653.272124,592.744076,1794.536739,531.050047,482.513160,916.845187,444.168853,625.693514,666.041611,,2047,1166.992237,0,25.10067333,579.107537,394.8585632,167.9254632,0,0,0,0,,2047,5009.264441,1781.786727,611.9967344,1387.676617,185.442244,374.3121314,975.2980523,491.8048463,668.360102,724.8408252,,2047,6176.256678,1781.786727,637.0974077,1966.784154,580.3008072,542.2375946,975.2980523,491.8048463,668.360102,724.8408252,,6176.256678,OK,5508.206691,OK,,1781.786727,637.0974077,1966.784154,580.3008072,542.2375946 +2048,5657.030860,1655.094811,594.643829,1821.302634,539.496360,486.737461,917.362066,444.585521,625.812649,667.456487,,2048,1201.978053,0,25.72921737,601.5621227,403.9722821,170.7144304,0,0,0,0,,2048,5014.519746,1789.306188,615.3712031,1402.711757,187.7190739,378.9445542,977.932176,494.6215597,670.245117,728.96783,,2048,6216.497798,1789.306188,641.1004205,2004.27388,591.691356,549.6589846,977.932176,494.6215597,670.245117,728.96783,,6216.497798,OK,5576.030829,OK,,1789.306188,641.1004205,2004.27388,591.691356,549.6589846 +2049,5671.141313,1656.988958,596.521897,1848.137068,547.960713,490.919883,917.586734,445.061630,625.955325,668.904088,,2049,1237.807765,0,26.36927384,624.6752229,413.2222565,173.541012,0,0,0,0,,2049,5019.054394,1797.109821,618.7881764,1417.647322,189.9992431,383.6110524,980.2807614,497.5760115,672.2177272,733.2294078,,2049,6256.862159,1797.109821,645.1574503,2042.322545,603.2214995,557.1520644,980.2807614,497.5760115,672.2177272,733.2294078,,6256.862159,OK,5644.963381,FALSE,,1797.109821,645.1574503,2042.322545,603.2214995,557.1520644 +2050,5684.655882,1658.966335,598.378674,1875.035854,556.442381,495.059841,917.518391,445.609234,626.127430,670.391734,,2050,1274.488517,0,27.0204496,648.454442,422.6089718,176.4046534,0,0,0,0,,2050,5022.860818,1805.220845,622.25724,1432.477762,192.2814782,388.3118044,982.3587547,500.6736714,674.2927491,737.6363303,,2050,6297.349335,1805.220845,649.2776896,2080.932204,614.89045,564.7164578,982.3587547,500.6736714,674.2927491,737.6363303,,6297.349335,FALSE,5715.037646,OK,,1805.220845,649.2776896,2080.932204,614.89045,564.7164578 +2051,5697.587823,1661.038713,600.214556,1901.994805,564.940640,499.156748,917.156238,446.240391,626.334851,671.926744,,2051,1312.034024,0,27.68276992,672.9122025,432.1333891,179.3056623,0,0,0,0,,2051,5025.936049,1813.660804,625.7844997,1447.197371,194.5655805,393.0475217,984.1672635,503.9269713,676.4819198,742.1997115,,2051,6337.970073,1813.660804,653.4672696,2120.109574,626.6989696,572.353184,984.1672635,503.9269713,676.4819198,742.1997115,,6337.970073,OK,5786.289801,OK,,1813.660804,653.4672696,2120.109574,626.6989696,572.353184 +2052,5709.950394,1663.217863,602.029936,1929.009734,573.454767,503.210018,916.499477,446.967157,626.583473,673.516436,,2052,1350.456927,0,28.35646782,698.0605884,441.7957538,182.2441171,0,0,0,0,,2052,5028.274494,1822.444989,629.3734676,1461.802356,196.8513953,397.8185731,985.7109967,507.3491772,678.7942294,746.9277674,,2052,6378.731421,1822.444989,657.7299355,2159.862944,638.6471491,580.0626902,985.7109967,507.3491772,678.7942294,746.9277674,,6378.731421,OK,5858.747707,OK,,1822.444989,657.7299355,2159.862944,638.6471491,580.0626902 +2053,5721.756848,1665.515555,603.825211,1956.076452,581.984037,507.219066,915.547309,447.801589,626.879184,675.168132,,2053,1389.760357,0,29.04167167,723.9051418,451.5947705,185.2187727,0,0,0,0,,2053,5029.862274,1831.581509,633.027797,1476.29193,199.1377352,402.6241803,987.0137603,510.9479253,681.2380831,751.8242875,,2053,6419.622631,1831.581509,662.0694686,2200.197072,650.7325057,587.8429529,987.0137603,510.9479253,681.2380831,751.8242875,,6419.622631,OK,5932.423509,OK,,1831.581509,662.0694686,2200.197072,650.7325057,587.8429529 +2054,5733.020442,1667.943561,605.600774,1983.190773,590.527727,511.183305,914.298935,448.755742,627.227870,676.889150,,2054,1429.943712,0,29.7385696,750.4488148,461.5284236,188.2279035,0,0,0,0,,2054,5030.682734,1841.073385,636.7498685,1490.667337,201.4231919,407.4630636,988.1058085,514.7301193,683.8203614,756.8903992,,2054,6460.626445,1841.073385,666.4884381,2241.116152,662.9516155,595.6909671,988.1058085,514.7301193,683.8203614,756.8903992,,6460.626445,OK,6007.320557,OK,,1841.073385,666.4884381,2241.116152,662.9516155,595.6909671 +2055,5743.754433,1670.513651,607.357020,2010.348509,599.085113,515.102150,912.753556,449.841674,627.635418,678.686810,,2055,1471.008387,0,30.44744761,777.6957046,471.5951197,191.2701153,0,0,0,0,,2055,5030.720973,1850.924938,640.5416236,1504.928693,203.706764,412.3341828,989.0090829,518.7055014,686.5477217,762.1283666,,2055,6501.729361,1850.924938,670.9890712,2282.624397,675.3018838,603.6042981,989.0090829,518.7055014,686.5477217,762.1283666,,6501.729361,OK,6083.444589,OK,,1850.924938,670.9890712,2282.624397,675.3018838,603.6042981 +2056,5753.972075,1673.237595,609.094344,2037.545473,607.655470,518.975013,910.910374,451.071440,628.107715,680.568431,,2056,1512.964076,0,31.1685249,805.6556293,481.7947939,194.3451279,0,0,0,0,,2056,5029.97141,1861.149451,644.4061622,1519.074081,205.9882535,417.2375471,989.7334857,522.8881861,689.4288301,767.545372,,2056,6542.935486,1861.149451,675.5746871,2324.729711,687.7830474,611.582675,989.7334857,522.8881861,689.4288301,767.545372,,6542.935486,OK,6160.819572,OK,,1861.149451,675.5746871,2324.729711,687.7830474,611.582675 +2057,5763.686624,1676.127165,610.813141,2064.777477,616.238075,522.801310,908.768589,452.457098,628.650647,682.541333,,2057,1555.822039,0,31.90228244,834.3392443,492.1275689,197.4529431,0,0,0,0,,2057,5028.425062,1871.759982,648.3453283,1533.098001,208.2679142,422.1732581,990.2732718,527.2958199,692.4712606,773.1494583,,2057,6584.247101,1871.759982,680.2476107,2367.437245,700.3954831,619.6262012,990.2732718,527.2958199,692.4712606,773.1494583,,6584.247101,OK,6239.466522,OK,,1871.759982,680.2476107,2367.437245,700.3954831,619.6262012 +2058,5772.911337,1679.194131,612.513805,2092.040334,624.832204,526.580454,906.327403,454.010703,629.270101,684.612836,,2058,1599.586472,0,32.64961215,863.7518345,502.5922228,200.5928022,0,0,0,0,,2058,5026.06007,1882.758952,652.3576187,1546.992785,210.5458741,427.1404765,990.6141156,531.946907,695.6785181,778.9444339,,2058,6625.646542,1882.758952,685.0072308,2410.74462,713.1380969,627.7332787,990.6141156,531.946907,695.6785181,778.9444339,,6625.646542,FALSE,6319.382178,OK,,1882.758952,685.0072308,2410.74462,713.1380969,627.7332787 +2059,5781.659469,1682.450264,614.196732,2119.329856,633.437133,530.311860,903.586017,455.744312,629.971964,686.790258,,2059,1644.259936,0,33.41162848,893.8971689,513.1872747,203.7638642,0,0,0,0,,2059,5022.850579,1894.145659,656.4396731,1560.748642,212.8224515,432.1381089,990.7319516,536.8619573,699.0522799,784.9333537,,2059,6667.110515,1894.145659,689.8513016,2454.64581,726.0097263,635.9019731,990.7319516,536.8619573,699.0522799,784.9333537,,6667.110515,OK,6400.554471,OK,,1894.145659,689.8513016,2454.64581,726.0097263,635.9019731 +2060,5789.944276,1685.907334,615.862315,2146.641856,642.052138,533.994940,900.543632,457.669982,630.762122,689.080919,,2060,1689.847788,0,34.18929937,924.7811083,523.9117441,206.9656367,0,0,0,0,,2060,5018.776691,1905.922191,660.5884673,1574.356679,215.0981658,437.165447,990.6049963,542.0622244,702.594843,791.1207316,,2060,6708.62448,1905.922191,694.7777667,2499.137787,739.0099099,644.1310836,990.6049963,542.0622244,702.594843,791.1207316,,6708.62448,OK,6482.978739,OK,,1905.922191,694.7777667,2499.137787,739.0099099,644.1310836 +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +Table 4: Total REF2 Water Heating by Economic Development Status (TWh Therms),,,,,,,Table 5: Total REF1 Water Heating by Economic Development Status (TWh Therms),,,,,,,,,,,,,,,"Table 6: Change in Water Heating by MDC vs. LLDC Regions, REF1-REF2 (TWh Therms)",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,LLDC+HighNRR,China,MDC + LAC + EE,Total Electricity Demand in Countries with Higher Educational Attainment (TWh), --> % LLDC,,,"LLDC with low educational attainment, excluding China","MDC + EE + LAC with low educational attainment, excluding China",China,"LLDC with higher educational attainment, excluding China",MDC + EE + LAC with higher educational attainment,,"Total Electricity Demand in Countries with Low Educational Attainment (TWh), exluding China", --> % LLDC,Total Electricity Demand in Countries with Higher Educational Attainment (TWh), --> % LLDC,Total Electricity Demand (TWh), --> % LLDC,,,LLDC,China,MDC + EE +LAC,Total change in REF1-REF2,% LLDC with higher educational attainment,% LLDC with Low Educational Attainment,% LLDC,% MDC + LAC + EE + China,,"% LLDC with low educational attainment, TWh)","% LLDC with higher educational attainment, TWh)",,,,,,,,,,,,,,,,,,,,,,,,, +2014,497.4840532,738.3006063,2391.681366,3627.466025,0.137143684,,2014,0,0,738.3006063,497.4840532,2391.681366,,0,,3627.466025,0.137143684,3627.466025,0,,,0,0,0,0,0,0,0,0,,0,1,,,,,,,,,,,,,,,,,,,,,,,,, +2015,523.10207,750.7972831,2409.111541,3683.010894,0.142031095,,2015,294.3387277,103.113853,750.7972831,228.7633423,2305.997688,,397.4525807,0.740563131,3285.558313,0.069626931,3683.010894,0.107915125,,,0,0,0,0,0,0,0,0,,0.56267934,0.43732066,,,,,,,,,,,,,,,,,,,,,,,,, +2016,543.5046719,760.2431679,2422.919539,3726.667379,0.145842013,,2016,307.1327879,105.3147487,760.918125,237.10427,2319.746331,,412.4475366,0.744659043,3317.768726,0.071464978,3730.216263,0.110569336,,,0.732385958,0.674957083,2.141540237,3.548883279,0.089908253,0.116462569,0.206370822,0.793629178,,0.564336411,0.435663589,,,,,,,,,,,,,,,,,,,,,,,,, +2017,564.4176659,769.422403,2436.364893,3770.204961,0.14970477,,2017,320.4812978,107.6040962,771.0736048,245.7524552,2333.987936,,428.0853939,0.748638712,3350.813996,0.073341121,3778.89939,0.113283088,,,1.816087037,1.651201813,5.227139609,8.69442846,0.090656246,0.118223158,0.208879404,0.791120596,,0.565987626,0.434012374,,,,,,,,,,,,,,,,,,,,,,,,, +2018,585.8369394,778.3341895,2449.45918,3813.630309,0.153616605,,2018,334.3777127,109.9704688,781.200563,254.6957328,2348.593659,,444.3481815,0.752512841,3384.489955,0.075253801,3828.838136,0.116053008,,,3.236506053,2.866373492,9.104947927,15.20782747,0.092015602,0.120802834,0.212818436,0.787181564,,0.567633315,0.432366685,,,,,,,,,,,,,,,,,,,,,,,,, +2019,607.7583799,786.9777286,2462.213981,3856.95009,0.157574862,,2019,348.7980872,112.3938024,791.1961941,263.9124356,2363.344629,,461.1918896,0.756297097,3418.453258,0.077202295,3879.645148,0.118874761,,,4.952142877,4.218465479,13.52445013,22.69505848,0.093986694,0.12421688,0.218203574,0.781796426,,0.5692706,0.4307294,,,,,,,,,,,,,,,,,,,,,,,,, +2020,630.1778748,795.3522215,2474.640875,3900.170971,0.161576987,,2020,363.7244788,114.8584046,800.980464,273.3845874,2378.077256,,478.5828833,0.760003108,3452.442307,0.079185853,3931.02519,0.121745056,,,6.931191357,5.628242468,18.29478506,30.85421889,0.096394793,0.128248436,0.224643229,0.775356771,,0.570898294,0.429101706,,,,,,,,,,,,,,,,,,,,,,,,, +2021,653.0913117,803.4568693,2486.751442,3943.299623,0.165620514,,2021,379.158029,117.3605385,810.5306059,283.1056282,2392.756134,,496.5185675,0.763633132,3486.392368,0.081203031,3982.910935,0.124662232,,,9.172345473,7.073736554,23.3652303,39.61131233,0.098987135,0.132571603,0.231558737,0.768441263,,0.572518248,0.427481752,,,,,,,,,,,,,,,,,,,,,,,,, +2022,676.4945779,811.2908734,2498.55726,3986.342711,0.169703065,,2022,395.1157681,119.9037656,819.8627383,293.0729835,2407.433316,,515.0195337,0.767185985,3520.369038,0.083250642,4035.388572,0.12762576,,,11.69417364,8.571864945,28.77982178,49.04586038,0.101539588,0.136893861,0.238433449,0.761566551,,0.574138661,0.425861339,,,,,,,,,,,,,,,,,,,,,,,,, +2023,700.383561,818.8534347,2510.06991,4029.306906,0.173822342,,2023,411.6106798,122.487404,828.978669,303.2763785,2422.130026,,534.0980838,0.770664963,3554.385074,0.08532457,4088.483158,0.130634777,,,14.50349735,10.12523431,34.54752032,59.17625199,0.103974403,0.141115424,0.245089827,0.754910173,,0.575770221,0.424229779,,,,,,,,,,,,,,,,,,,,,,,,, +2024,724.7541483,826.1437546,2521.30097,4072.198873,0.177976118,,2024,428.6597261,125.112184,837.8908934,313.7046935,2436.890383,,553.7719101,0.774072715,3588.48597,0.087419791,4142.25788,0.13368842,,,17.61027128,11.7471388,40.70159679,70.05900688,0.106219912,0.145143504,0.251363416,0.748636584,,0.577424934,0.422575066,,,,,,,,,,,,,,,,,,,,,,,,, +2025,749.6022274,833.1610342,2532.262021,4115.025282,0.182162241,,2025,446.2743745,127.7776904,846.6065364,324.3457697,2451.739548,,574.0520649,0.777410973,3622.691854,0.089531703,4196.743919,0.136785107,,,21.0179168,13.44550224,47.25521754,81.71863658,0.108252127,0.148946447,0.257198574,0.742801426,,0.579110704,0.420889296,,,,,,,,,,,,,,,,,,,,,,,,, +2026,774.9236857,839.9044747,2542.964641,4157.792801,0.18637862,,2026,464.4648201,130.4836339,855.1209349,335.1956227,2466.683999,,594.948454,0.780680775,3657.000556,0.09165862,4251.94901,0.139923704,,,24.73675705,15.21646021,54.20299175,94.15620901,0.110125153,0.152595249,0.262720402,0.737279598,,0.580827555,0.419172445,,,,,,,,,,,,,,,,,,,,,,,,, +2027,800.7144107,846.3732772,2553.42041,4200.508098,0.190623227,,2027,483.2261799,133.2258876,863.4185213,346.2417196,2481.685073,,616.4520675,0.783882812,3691.345314,0.093798247,4307.797381,0.143101454,,,28.7534887,17.04524407,61.49055091,107.2892837,0.111870096,0.156129537,0.267999633,0.732000367,,0.582573696,0.417426304,,,,,,,,,,,,,,,,,,,,,,,,, +2028,826.9702899,852.566643,2563.640907,4243.17784,0.194894091,,2028,502.534901,135.9956427,871.4836833,357.4535707,2496.669619,,638.5305437,0.787017796,3725.606873,0.095945059,4364.137417,0.146313116,,,33.01818191,18.91704026,69.02435451,120.9595767,0.11345925,0.159509479,0.272968729,0.727031271,,0.584350741,0.415649259,,,,,,,,,,,,,,,,,,,,,,,,, +2029,853.6872106,858.4837732,2573.637712,4285.808696,0.199189295,,2029,522.3548595,138.7814196,879.2968705,368.793882,2511.539187,,661.136279,0.790086516,3759.62994,0.098093134,4420.766219,0.149552418,,,37.46153091,20.81309726,76.6828944,134.9575226,0.11487405,0.162706111,0.277580162,0.722419838,,0.586159005,0.413840995,,,,,,,,,,,,,,,,,,,,,,,,, +2030,880.8610603,864.1238691,2583.422405,4328.407334,0.20350697,,2030,542.6581969,141.5748187,886.8431961,380.2360656,2526.222102,,684.2330156,0.793089758,3793.301364,0.100238823,4477.53438,0.152814687,,,42.03320218,22.71932703,84.3745164,149.1270456,0.116128128,0.16573357,0.281861697,0.718138303,,0.587996067,0.412003933,,,,,,,,,,,,,,,,,,,,,,,,, +2031,908.4877266,869.4861318,2593.006563,4370.980422,0.207845298,,2031,563.4346833,144.3716007,894.1100878,391.770114,2540.690978,,707.806284,0.796029501,3826.57118,0.102381504,4534.377464,0.156097786,,,46.71707067,24.62395599,92.0560154,163.3970421,0.117264409,0.168646951,0.285911361,0.714088639,,0.589857468,0.410142532,,,,,,,,,,,,,,,,,,,,,,,,, +2032,936.5630968,874.5697625,2602.401768,4413.534628,0.212202503,,2032,584.6922994,147.1737691,901.0977907,403.4019147,2554.965212,,731.8660685,0.798906145,3859.464918,0.104522757,4591.330986,0.159401723,,,51.5311172,26.52802825,99.73721328,177.7963587,0.118327665,0.171504577,0.289832242,0.710167758,,0.591737398,0.408262602,,,,,,,,,,,,,,,,,,,,,,,,, +2033,965.0830585,879.3739623,2611.619599,4456.076619,0.216576855,,2033,606.4437716,149.9870911,907.8203563,415.1418078,2569.078726,,756.4308627,0.801717383,3892.040891,0.106664298,4648.471753,0.162726785,,,56.50252093,28.44639397,107.446219,192.3951339,0.11934259,0.174336984,0.293679574,0.706320426,,0.593629926,0.406370074,,,,,,,,,,,,,,,,,,,,,,,,, +2034,994.0434991,883.8979325,2620.671634,4498.613065,0.220966659,,2034,628.712389,152.8210409,914.3010117,427.0077025,2583.088812,,781.5334299,0.804460008,3924.397526,0.108808473,4705.930956,0.166074139,,,61.67659248,30.40307922,115.2382193,207.317891,0.120329057,0.177168628,0.297497684,0.702502316,,0.595529434,0.404470566,,,,,,,,,,,,,,,,,,,,,,,,, +2035,1023.440306,888.1408743,2629.569453,4541.150633,0.225370262,,2035,651.5204597,155.6834082,920.5561983,439.015474,2597.043744,,807.2038679,0.80713248,3956.615416,0.110957328,4763.819284,0.169444687,,,67.09562767,32.41532408,123.1576992,222.6686509,0.121303963,0.180021021,0.301324984,0.698675016,,0.597431446,0.402568554,,,,,,,,,,,,,,,,,,,,,,,,, +2036,1053.269367,892.1019887,2638.324636,4583.695991,0.229786044,,2036,674.8760269,158.5761731,926.5889062,451.1681419,2610.961662,,833.4522,0.809735732,3988.71871,0.113111045,4822.17091,0.172837549,,,72.77480212,34.48691742,131.2131991,238.4749186,0.122270397,0.182897134,0.305167531,0.694832469,,0.59933353,0.40066647,,,,,,,,,,,,,,,,,,,,,,,,, +2037,1083.526569,895.7804771,2646.948762,4626.255808,0.23421242,,2037,698.7867957,161.4991831,932.3894476,463.4698411,2624.84768,,860.2859787,0.812272678,4020.706968,0.115270733,4880.992947,0.176252248,,,78.73006804,36.60897042,139.3981008,254.7371393,0.123244573,0.185819383,0.309063956,0.690936044,,0.601232786,0.398767214,,,,,,,,,,,,,,,,,,,,,,,,, +2038,1114.207799,899.1755406,2655.45341,4668.83675,0.238647839,,2038,723.2783153,164.4560202,937.9466061,475.9396259,2638.725271,,887.7343355,0.814746356,4052.611503,0.11744023,4940.345839,0.179690727,,,85.01014175,38.77106548,147.7278812,271.5090885,0.124262508,0.188839871,0.31310238,0.68689762,,0.603124995,0.396875005,,,,,,,,,,,,,,,,,,,,,,,,, +2039,1145.308946,902.2863804,2663.850161,4711.445487,0.243090777,,2039,748.3826327,167.4505224,943.243781,488.6003881,2652.618963,,915.8331552,0.817160449,4084.463133,0.11962414,5000.296288,0.183155778,,,91.67407456,40.95740065,156.2193253,288.8508005,0.125361168,0.192014012,0.317375179,0.682624821,,0.605006391,0.394993609,,,,,,,,,,,,,,,,,,,,,,,,, +2040,1176.825897,905.1121976,2672.150592,4754.088687,0.247539744,,2040,774.1295176,170.4859919,948.2671363,501.4699789,2666.555317,,944.6155095,0.819518111,4116.292432,0.121825645,5060.907942,0.186649416,,,98.7735997,43.15493868,164.8907168,306.8192552,0.126557786,0.195369857,0.321927643,0.678072357,,0.606875057,0.393124943,,,,,,,,,,,,,,,,,,,,,,,,, +2041,1208.754539,907.6521935,2680.366284,4796.773016,0.251993274,,2041,800.5398016,173.5647509,953.0149139,514.553095,2680.557895,,974.1045525,0.82182123,4148.125904,0.124044715,5122.230456,0.19017195,,,106.3383581,45.36272046,173.7563611,325.4574396,0.127840809,0.198894257,0.326735066,0.673264934,,0.608732511,0.391267489,,,,,,,,,,,,,,,,,,,,,,,,, +2042,1241.090759,909.9055692,2688.508817,4839.505145,0.256449931,,2042,827.6296545,176.6883915,957.4862306,527.8510949,2694.65688,,1004.318046,0.824071277,4179.994205,0.126280341,5184.312251,0.193722522,,,114.3899906,47.58066139,182.8364544,344.8071064,0.129190295,0.202560381,0.331750676,0.668249324,,0.610580161,0.389419839,,,,,,,,,,,,,,,,,,,,,,,,, +2043,1273.830445,911.8715259,2696.589769,4882.29174,0.260908301,,2043,855.4196213,179.8584669,961.6688392,541.3732742,2708.894629,,1035.278088,0.826270382,4211.936742,0.128533097,5247.21483,0.197300496,,,122.9624505,49.79731333,192.1633267,364.9230905,0.13059783,0.206356596,0.336954426,0.663045574,,0.612416933,0.387583067,,,,,,,,,,,,,,,,,,,,,,,,, +2044,1306.969485,913.5492648,2704.62072,4925.139469,0.265367,,2044,883.929438,183.0761782,965.5479876,555.1290875,2723.319523,,1067.005616,0.828420605,4243.996598,0.130803377,5311.002214,0.200904758,,,132.0890407,51.99872284,201.7749813,385.8627448,0.132053362,0.210267949,0.342321311,0.657678689,,0.61424148,0.38575852,,,,,,,,,,,,,,,,,,,,,,,,, +2045,1340.503765,914.9379871,2712.613249,4968.055001,0.269824663,,2045,913.1778746,186.3425381,969.1137174,569.123118,2737.975609,,1099.520413,0.830523803,4276.212444,0.133090469,5375.732857,0.20453405,,,141.7972272,54.17573034,211.7048979,407.6778554,0.13354279,0.21427406,0.347816849,0.652183151,,0.616054283,0.383945717,,,,,,,,,,,,,,,,,,,,,,,,, +2046,1374.429175,916.0368939,2720.578936,5011.045004,0.27427995,,2046,943.1844701,189.6589296,972.3621164,583.356431,2752.892311,,1132.8434,0.832581512,4308.610858,0.135393158,5441.454258,0.208187618,,,152.1117267,56.32522248,221.9723044,430.4092536,0.135053748,0.218358093,0.353411841,0.646588159,,0.61785732,0.38214268,,,,,,,,,,,,,,,,,,,,,,,,, +2047,1408.741599,916.8451865,2728.52936,5054.116146,0.278731545,,2047,973.9661002,193.0261365,975.2980523,597.8208092,2768.095593,,1166.992237,0.834595184,4341.214454,0.137708196,5508.206691,0.211864279,,,163.0453099,58.45286575,232.5923691,454.0905447,0.136566196,0.222492833,0.359059029,0.640940971,,0.619655307,0.380344693,,,,,,,,,,,,,,,,,,,,,,,,, +2048,1443.436928,917.3620661,2736.476101,5097.275095,0.283178149,,2048,1005.534405,196.4436478,977.932176,612.4986553,2783.621946,,1201.978053,0.83656636,4374.052777,0.14003001,5576.030829,0.215561587,,,174.5961323,60.5701099,243.5894927,478.7557349,0.138050625,0.226636666,0.364687292,0.635312708,,0.621454796,0.378545204,,,,,,,,,,,,,,,,,,,,,,,,, +2049,1478.511047,917.5867337,2744.430737,5140.528518,0.287618489,,2049,1037.897479,199.9102858,980.2807614,627.3658036,2799.50905,,1237.807765,0.8384965,4407.155615,0.142351634,5644.963381,0.219276492,,,186.7522361,62.69402773,254.9885987,504.4348625,0.139475733,0.230744983,0.370220716,0.629779284,,0.623263294,0.376736706,,,,,,,,,,,,,,,,,,,,,,,,, +2050,1513.959844,917.5183906,2752.40485,5183.883084,0.29205131,,2050,1071.063414,203.425103,982.3587547,642.4004852,2815.789889,,1274.488517,0.840386869,4440.549129,0.144666902,5715.037646,0.223006146,,,199.5040549,64.84036409,266.8101429,531.1545619,0.140819148,0.234785373,0.375604521,0.624395479,,0.625086653,0.374913347,,,,,,,,,,,,,,,,,,,,,,,,, +2051,1549.779207,917.1562381,2760.410017,5227.345462,0.296475375,,2051,1105.045592,206.9884322,984.1672635,657.5956883,2832.492826,,1312.034024,0.842238518,4474.255777,0.1469732,5786.289801,0.226748758,,,212.8620727,67.01102546,279.0712413,558.9443395,0.142077316,0.238751431,0.380828747,0.619171253,,0.626925969,0.373074031,,,,,,,,,,,,,,,,,,,,,,,,, +2052,1585.965023,916.4994772,2768.457818,5270.922318,0.30088947,,2052,1139.856342,210.6005849,985.7109967,672.9427541,2849.637029,,1350.456927,0.844052349,4508.29078,0.149267824,5858.747707,0.230502659,,,226.834073,69.21151955,291.7797967,587.8253892,0.143247944,0.242638881,0.385886825,0.614113175,,0.628782497,0.371217503,,,,,,,,,,,,,,,,,,,,,,,,, +2053,1622.51318,915.5473091,2776.559832,5314.620322,0.305292398,,2053,1175.499912,214.2604444,987.0137603,688.4159052,2867.233486,,1389.760357,0.845829216,4542.663152,0.151544564,5932.423509,0.234265196,,,241.4026374,71.46645118,304.9340983,617.8031869,0.14431666,0.246426934,0.390743594,0.609256406,,0.630661482,0.369338518,,,,,,,,,,,,,,,,,,,,,,,,, +2054,1659.419565,914.2989351,2784.72764,5358.44614,0.309682979,,2054,1211.977238,217.9664731,988.1058085,703.9847203,2885.286317,,1429.943712,0.847569893,4577.376845,0.15379654,6007.320557,0.238033529,,,256.5423937,73.80687342,318.5251494,648.8744166,0.145269634,0.250095613,0.395365247,0.604634753,,0.632568529,0.367431471,,,,,,,,,,,,,,,,,,,,,,,,, +2055,1696.680065,912.7535563,2792.972821,5402.406442,0.314060055,,2055,1249.290824,221.7175629,989.0090829,719.6263737,2903.800745,,1471.008387,0.84927512,4612.436201,0.156018716,6083.444589,0.241805176,,,272.2371326,76.25552663,332.545487,681.0381462,0.146101792,0.253636657,0.399738449,0.600261551,,0.634506533,0.365493467,,,,,,,,,,,,,,,,,,,,,,,,, +2056,1734.290569,910.9103739,2801.306953,5446.507896,0.318422483,,2056,1287.450423,225.5136528,989.7334857,735.3288492,2922.793161,,1512.964076,0.850945798,4647.855495,0.158208199,6160.819572,0.245578378,,,288.4887036,78.82311181,346.9998605,714.3116759,0.146816266,0.25705324,0.403869506,0.596130494,,0.636475982,0.363524018,,,,,,,,,,,,,,,,,,,,,,,,, +2057,1772.246963,908.7685891,2809.741616,5490.757168,0.322769139,,2057,1326.466813,229.3552255,990.2732718,751.0926433,2942.278568,,1555.822039,0.852582609,4683.644483,0.160364999,6239.466522,0.249351773,,,305.3124936,81.50468275,361.8921776,748.709354,0.147425077,0.260359989,0.407785066,0.592214934,,0.638473575,0.361526425,,,,,,,,,,,,,,,,,,,,,,,,, +2058,1810.545135,906.327403,2818.288391,5535.160928,0.327098915,,2058,1366.344057,233.2424144,990.6141156,766.9245436,2962.257047,,1599.586472,0.854185805,4719.795706,0.162491046,6319.382178,0.25312387,,,322.7234662,84.28671255,377.2110711,784.2212498,0.147944572,0.263576369,0.41152094,0.58847906,,0.640493212,0.359506788,,,,,,,,,,,,,,,,,,,,,,,,, +2059,1849.180972,903.5860169,2826.958855,5579.725844,0.331410722,,2059,1407.084444,237.1754927,990.7319516,782.8391415,2982.723441,,1644.259936,0.855755475,4756.294534,0.164590131,6400.554471,0.256893359,,,340.7426133,87.14593471,392.9400792,820.8286272,0.148394405,0.26672588,0.415120285,0.584879715,,0.642526732,0.357473268,,,,,,,,,,,,,,,,,,,,,,,,, +2060,1888.150362,900.543632,2835.764589,5624.458582,0.335703488,,2060,1448.692852,241.154936,990.6049963,798.8498483,3003.676106,,1689.847788,0.857291918,4793.13095,0.166665559,6482.978739,0.260659159,,,359.3923387,90.06136429,409.0664532,858.5201562,0.14879061,0.269827795,0.418618405,0.581381595,,0.644567443,0.355432557,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,Table 7: Difference in FUNCTIONAL & IMPLEMENTATION UNITS between REF1 and REF2 populations in LLDC+HighNRR+HighED,,,,,,,,Table 8: Difference in FUNCTIONAL & IMPLEMENTATION UNITS between REF1 and REF2 populations in LLDC+HighNRR+LowED,,,,,,,,Table 9: Difference in EMISSIONS between REF1 and REF2 populations in LLDC+HighNRR+HighED,,,,,,,,,,,,,Table 10: Difference in EMISSIONS between REF1 and REF2 populations in LLDC+HighNRR+LowED,,,,,,,,,,,,,,,Table 11: EMISSIONS ALLOCATIONS TO (a) Health & Education; (b) Education ONLY; (c) Family Planning (excluding education),,,,,,,,,,,, +,SOLUTION ,,,CONVENTIONAL,,,,,SOLUTION ,,,CONVENTIONAL,,,,,SOLUTION,,,,,CONVENTIONAL,,,,,EMISSION REDUCTIONS,,,SOLUTION ,,,,,CONVENTIONAL,,,,,EMISSION REDCUTIONS ,,,,,"Table 11(a): EMISSIONS ALLOCATION TO HEALTH & EDUCATION in LLDC, WaterHeating_cluster",,,,"Table 11(b): EMISSIONS ALLOCATION TO Education in LLDC, WaterHeating_cluster",,,"Table 11(c): EMISSIONS ALLOCATION TO Family Planning in LLDC, WaterHeating_cluster",,,,% Allocation to Education (Electricity), +,Additional Functional Units in REF2 vs REF1,Annual Functional Units Increase,Annual Implementation Units Increase + Replacement,Additional Functional Units in REF2 vs REF2,Annual Functional Units Increase,Change in TAM,Annual Implementation Units Increase + Replacement,,Additional Functional Units in REF2 vs REF1,Annual Functional Units Increase,Annual Implementation Units Increase + Replacement,Additional Functional Units in REF2 vs REF2,Annual Functional Units Increase,Change in TAM,Annual Implementation Units Increase + Replacement,,Avoided Emissions/ Million Metric Tons CO2,,,,,Avoided Emissions/ Million Metric Tons CO2,,,,,ALL Years,,,Avoided Emissions/ Million Metric Tons CO2,,,,,Avoided Emissions/ Million Metric Tons CO2,,,,,ALL Years,,,,,,,,,,,,,,,,ALL Years, +,TWh,TWh,TW,TWh,TWh,%,TW,,TWh,TWh,TW,TWh,TWh,%,TW,,Grid,Fuel,Other Direct,Indirect,,Grid,Fuel,Other Direct,Indirect,,Conv Total,Solution Total,,Grid,Fuel,Other Direct,Indirect,,Grid,Fuel,Other Direct,Indirect,,Conv Total,Solution Total,,,,,Conv Total,Solution Total,,Conv Total,Solution Total,,Conv Total,Solution Total,,,Conv Total,Solution Total +2014,,,,0,,,Not modeled TBD,,,,,0,,,Not modeled TBD,,,,,,,,0,,,,0,,,,,,,,,0,,,,0,,,,,2014,0,0,,0,0,,0,0,,,, +2015,,,,0,0,,,,,,,0,0,,,,,,,,,0,0,,,,0,0,,,,,,,0,0,,,,0,0,,,,2015,0,0,,0,0,,0,0,,,, +2016,,,,0.279445604,0.279445604,0.055113759,,,,,,0.361979595,0.361979595,0.071391555,,,,,,,,0.009664688,0.076711555,,,,0.086376243,0,,,,,,,0.012519144,0.099368239,,,,0.111887383,0,,,,2016,0.198263625,0,,0.055943691,0,,0.142319934,0,,,0.282168205, +2017,,,,0.685209174,0.405763569,0.055572279,,,,,,0.893568795,0.531589201,0.072470796,,,,,,,,0.023408396,0.188099081,,,,0.211507477,0,,,,,,,0.030526463,0.245296583,,,,0.275823046,0,,,,2017,0.487330523,0,,0.137911523,0,,0.349419,0,,,0.282993813, +2018,,,,1.208318,0.523108826,0.056405564,,,,,,1.586342278,0.692773483,0.074052137,,,,,,,,0.0408881,0.331699448,,,,0.372587548,0,,,,,,,0.053680009,0.435472167,,,,0.489152176,0,,,,2018,0.861739724,0,,0.244576088,0,,0.617163636,0,,,0.283816658, +2019,,,,1.830688605,0.622370605,0.057613844,,,,,,2.419517224,0.833174946,0.076144947,,,,,,,,0.061624979,0.502548501,,,,0.564173481,0,,,,,,,0.081446238,0.664189831,,,,0.745636069,0,,,,2019,1.309809549,0,,0.372818034,0,,0.936991515,0,,,0.2846353, +2020,,,,2.538381969,0.707693364,0.059090008,,,,,,3.377189867,0.957672643,0.078616291,,,,,,,,0.084912533,0.696819793,,,,0.781732326,0,,,,,,,0.112971866,0.927083777,,,,1.040055643,0,,,,2020,1.821787968,0,,0.520027821,0,,1.301760147,0,,,0.285449147, +2021,,,,3.328579321,0.790197352,0.060679114,,,,,,4.457903514,1.080713647,0.081266393,,,,,,,,0.11067685,0.913739532,,,,1.024416382,0,,,,,,,0.148227418,1.223754124,,,,1.371981542,0,,,,2021,2.396397924,0,,0.685990771,0,,1.710407153,0,,,0.286259124, +2022,,,,4.204816253,0.876236932,0.062243767,,,,,,5.668858261,1.210954747,0.083915937,,,,,,,,0.138980887,1.154278287,,,,1.293259173,0,,,,,,,0.187371552,1.556177394,,,,1.743548947,0,,,,2022,3.03680812,0,,0.871774473,0,,2.165033647,0,,,0.28706933, +2023,,,,5.165821454,0.961005202,0.063736309,,,,,,7.011120651,1.34226239,0.086503755,,,,,,,,0.169748108,1.418087065,,,,1.587835173,0,,,,,,,0.23038436,1.924646369,,,,2.155030728,0,,,,2023,3.742865901,0,,1.077515364,0,,2.665350537,0,,,0.287885111, +2024,,,,6.210734037,1.044912582,0.065112806,,,,,,8.486616892,1.475496241,0.088972968,,,,,,,,0.202912308,1.70492954,,,,1.907841848,0,,,,,,,0.277268196,2.329689817,,,,2.606958012,0,,,,2024,4.514799861,0,,1.303479006,0,,3.211320855,0,,,0.288712467, +2025,,,,7.33638982,1.125655783,0.066358554,,,,,,10.09429776,1.607680872,0.091304172,,,,,,,,0.238469664,2.013937105,,,,2.252406768,0,,,,,,,0.328115579,2.771019713,,,,3.099135292,0,,,,2025,5.35154206,0,,1.549567646,0,,3.801974414,0,,,0.289555352, +2026,,,,8.542897725,1.206507906,0.067506719,,,,,,11.83749186,1.743194096,0.093540887,,,,,,,,0.275981049,2.345139658,,,,2.621120707,0,,,,,,,0.382413969,3.249549802,,,,3.63196377,0,,,,2026,6.253084478,0,,1.815981885,0,,4.437102592,0,,,0.290413778, +2027,,,,9.822483831,1.279586105,0.068576369,,,,,,13.70857719,1.87108533,0.095707406,,,,,,,,0.315569748,2.696403154,,,,3.011972902,0,,,,,,,0.440419381,3.763187744,,,,4.203607125,0,,,,2027,7.215580026,0,,2.101803562,0,,5.113776464,0,,,0.291286848, +2028,,,,11.15463507,1.332151237,0.06955052,,,,,,15.68201828,1.973441089,0.097779311,,,,,,,,0.356413677,3.062096481,,,,3.418510158,0,,,,,,,0.50107294,4.304923711,,,,4.805996651,0,,,,2028,8.224506809,0,,2.402998326,0,,5.821508484,0,,,0.292175371, +2029,,,,12.51327545,1.358640387,0.070417793,,,,,,17.72364066,2.041622378,0.099738846,,,,,,,,0.397663758,3.435061435,,,,3.832725193,0,,,,,,,0.563245776,4.865376354,,,,5.42862213,0,,,,2029,9.261347322,0,,2.714311065,0,,6.547036257,0,,,0.293079502, +2030,,,,13.88012754,1.366852081,0.071186542,,,,,,19.80918083,2.085540171,0.101594678,,,,,,,,0.438836807,3.810280608,,,,4.249117415,0,,,,,,,0.626290907,5.437885018,,,,6.064175925,0,,,,2030,10.31329334,0,,3.032087962,0,,7.281205377,0,,,0.293998034, +2031,,,,15.24912588,1.368998349,0.071883083,,,,,,21.93093885,2.121758023,0.103380581,,,,,,,,0.479435564,4.18608896,,,,4.665524525,0,,,,,,,0.689513099,6.020335966,,,,6.709849065,0,,,,2031,11.37537359,0,,3.354924533,0,,8.020449057,0,,,0.294928734, +2032,,,,16.62604764,1.376921759,0.072534859,,,,,,24.09785792,2.166919074,0.105132305,,,,,,,,0.519949848,4.564072395,,,,5.084022243,0,,,,,,,0.753617327,6.615184227,,,,7.368801554,0,,,,2032,12.4528238,0,,3.684400777,0,,8.76842302,0,,,0.295868699, +2033,,,,18.01994574,1.393898097,0.073157008,,,,,,26.32373722,2.225879297,0.106868571,,,,,,,,0.560557038,4.946716061,,,,5.507273099,0,,,,,,,0.818867958,7.226217858,,,,8.045085816,0,,,,2033,13.55235892,0,,4.022542908,0,,9.529816008,0,,,0.296814963, +2034,,,,19.44546946,1.425523717,0.073761712,,,,,,28.63088297,2.307145748,0.108604369,,,,,,,,0.601702907,5.338041383,,,,5.93974429,0,,,,,,,0.885927982,7.859560216,,,,8.745488198,0,,,,2034,14.68523249,0,,4.372744099,0,,10.31248839,0,,,0.297764717, +2035,,,,20.91539885,1.469929393,0.074359329,,,,,,31.03947601,2.408593042,0.110352886,,,,,,,,0.64367088,5.741556657,,,,6.385227537,0,,,,,,,0.955239103,8.520751213,,,,9.475990316,0,,,,2035,15.86121785,0,,4.737995158,0,,11.12322269,0,,,0.298715723, +2036,,,,22.43261735,1.517218497,0.074951754,,,,,,33.55563982,2.516163811,0.112115943,,,,,,,,0.686787253,6.158053422,,,,6.844840675,0,,,,,,,1.02732487,9.211471824,,,,10.23879669,0,,,,2036,17.08363737,0,,5.119398347,0,,11.96423902,0,,,0.299666765, +2037,,,,24.00020751,1.567590161,0.075548923,,,,,,36.18580243,2.630162604,0.113907282,,,,,,,,0.730862011,6.588377882,,,,7.319239894,0,,,,,,,1.101941653,9.933486628,,,,11.03542828,0,,,,2037,18.35466818,0,,5.517714141,0,,12.83695403,0,,,0.300616393, +2038,,,,25.63194089,1.631733387,0.076172918,,,,,,38.95247636,2.766673936,0.115758841,,,,,,,,0.776371842,7.036310516,,,,7.812682358,0,,,,,,,1.179840651,10.69297562,,,,11.87281627,0,,,,2038,19.68549863,0,,5.936408135,0,,13.74909049,0,,,0.301562498, +2039,,,,27.34428073,1.712339837,0.076846396,,,,,,41.88286645,2.930390089,0.117704589,,,,,,,,0.823755697,7.506370698,,,,8.330126395,0,,,,,,,1.261735505,11.49740688,,,,12.75914239,0,,,,2039,21.08926878,0,,6.379571193,0,,14.70969759,0,,,0.302503195, +2040,,,,29.15022153,1.805940801,0.077579923,,,,,,44.99979636,3.11692991,0.119761722,,,,,,,,0.873032456,8.002125596,,,,8.875158052,0,,,,,,,1.347718153,12.35304582,,,,13.70076397,0,,,,2040,22.57592203,0,,6.850381987,0,,15.72554004,0,,,0.303437529, +2041,,,,31.0548613,1.904639768,0.078366416,,,,,,48.31503833,3.315241965,0.12192218,,,,,,,,0.925353596,8.52497468,,,,9.450328276,0,,,,,,,1.439661701,13.26312407,,,,14.70278577,0,,,,2041,24.15311405,0,,7.351392885,0,,16.80172116,0,,,0.304366256, +2042,,,,33.05978516,2.004923863,0.079193651,,,,,,51.83518389,3.520145565,0.124169514,,,,,,,,0.979655488,9.07535309,,,,10.05500858,0,,,,,,,1.536023968,14.2294511,,,,15.76547507,0,,,,2042,25.82048364,0,,7.882737533,0,,17.93774611,0,,,0.305290081, +2043,,,,35.16948076,2.109695598,0.08005647,,,,,,55.5710179,3.735834009,0.126496593,,,,,,,,1.036357215,9.654492741,,,,10.69084996,0,,,,,,,1.637539824,15.25498749,,,,16.89252731,0,,,,2043,27.58337727,0,,8.446263656,0,,19.13711361,0,,,0.306208467, +2044,,,,37.38738359,2.217902831,0.080948711,,,,,,59.53175525,3.960737351,0.128894253,,,,,,,,1.095495956,10.26333673,,,,11.35883268,0,,,,,,,1.744353064,16.34226285,,,,18.08661592,0,,,,2044,29.4454486,0,,9.043307958,0,,20.40214064,0,,,0.30712074, +2045,,,,39.71489949,2.327515895,0.08186173,,,,,,63.72394013,4.192184882,0.131349998,,,,,,,,1.15680783,10.90227096,,,,12.05907879,0,,,,,,,1.856138473,17.49307366,,,,19.34921213,0,,,,2045,31.40829092,0,,9.674606065,0,,21.73368486,0,,,0.308027141, +2046,,,,42.15314611,2.438246624,0.082787948,,,,,,68.15420327,4.430263134,0.133853511,,,,,,,,1.22096823,11.57160226,,,,12.79257049,0,,,,,,,1.974090302,18.70924013,,,,20.68333043,0,,,,2046,33.47590092,0,,10.34166522,0,,23.13423571,0,,,0.30892866, +2047,,,,44.69928161,2.546135495,0.083715078,,,,,,72.82380325,4.66959998,0.136388106,,,,,,,,1.287109414,12.2705505,,,,13.55765992,0,,,,,,,2.096950988,19.99110776,,,,22.08805875,0,,,,2047,35.64571867,0,,11.04402938,0,,24.60168929,0,,,0.309827654, +2048,,,,47.34490827,2.645626667,0.084625033,,,,,,77.72577744,4.901974188,0.138928276,,,,,,,,1.355154795,12.9968104,,,,14.35196519,0,,,,,,,2.224747366,21.33676522,,,,23.56151259,0,,,,2048,37.91347778,0,,11.7807563,0,,26.13272149,0,,,0.310727398, +2049,,,,50.07832665,2.733418372,0.085498624,,,,,,82.84826604,5.1224886,0.141446675,,,,,,,,1.426005294,13.74717029,,,,15.17317559,0,,,,,,,2.35914564,22.74295684,,,,25.10210248,0,,,,2049,40.27527807,0,,12.55105124,0,,27.72422683,0,,,0.311631647, +2050,,,,52.88900868,2.810682038,0.086322138,,,,,,88.18094553,5.332679494,0.143923434,,,,,,,,1.500861704,14.51874009,,,,16.0196018,0,,,,,,,2.502361218,24.20684867,,,,26.70920989,0,,,,2050,42.72881168,0,,13.35460494,0,,29.37420674,0,,,0.312543327, +2051,,,,55.77306408,2.884055399,0.087093395,,,,,,93.72290556,5.541960033,0.146354627,,,,,,,,1.576655002,15.31045187,,,,16.88710687,0,,,,,,,2.649463326,25.7281908,,,,28.37765413,0,,,,2051,45.264761,0,,14.18882706,0,,31.07593393,0,,,0.313462984, +2052,,,,58.72632371,2.95325963,0.087810989,,,,,,99.47290781,5.750002241,0.148737634,,,,,,,,1.654010752,16.12116112,,,,17.77517188,0,,,,,,,2.801627083,27.3066433,,,,30.10827039,0,,,,2052,47.88344226,0,,15.05413519,0,,32.82930707,0,,,0.314391248, +2053,,,,61.7374728,3.011149088,0.088466112,,,,,,105.4194032,5.946495365,0.151059711,,,,,,,,1.732239284,16.94776181,,,,18.6800011,0,,,,,,,2.957873448,28.9390358,,,,31.89690924,0,,,,2053,50.57691034,0,,15.94845462,0,,34.62845572,0,,,0.315330741, +2054,,,,64.79352241,3.056049612,0.089050286,,,,,,111.5482653,6.128862141,0.153308611,,,,,,,,1.810932165,17.7866883,,,,19.59762046,0,,,,,,,3.117693469,30.62149041,,,,33.73918388,0,,,,2054,53.33680434,0,,16.86959194,0,,36.4672124,0,,,0.316284265, +2055,,,,67.88453656,3.091014147,0.089560398,,,,,,117.8493893,6.301123948,0.155479271,,,,,,,,1.88961266,18.63521301,,,,20.52482567,0,,,,,,,3.280418624,32.35123319,,,,35.63165181,0,,,,2055,56.15647748,0,,17.81582591,0,,38.34065158,0,,,0.317253266, +2056,,,,71.0054217,3.120885146,0.089998371,,,,,,124.3198337,6.47044441,0.157573636,,,,,,,,1.968570719,19.49193771,,,,21.46050843,0,,,,,,,3.446671796,34.1274567,,,,37.57412849,0,,,,2056,59.03463693,0,,18.78706425,0,,40.24757268,0,,,0.318237991, +2057,,,,74.15534048,3.149918778,0.090371572,,,,,,130.9620046,6.642170888,0.159600673,,,,,,,,2.047270737,20.35663254,,,,22.40390327,0,,,,,,,3.615581532,35.95082142,,,,39.56640295,0,,,,2057,61.97030623,0,,19.78320148,0,,42.18710475,0,,,0.319236787, +2058,,,,77.33457485,3.179234363,0.090690022,,,,,,137.7784003,6.816395735,0.161572314,,,,,,,,2.125836497,21.22937488,,,,23.35521138,0,,,,,,,3.787366161,37.8220132,,,,41.60937936,0,,,,2058,64.96459074,0,,20.80468968,0,,44.15990106,0,,,0.320246606, +2059,,,,80.54573639,3.211161547,0.09096577,,,,,,144.7738707,6.995470452,0.163502964,,,,,,,,2.204296924,22.11088167,,,,24.31517859,0,,,,,,,3.962029678,39.74236338,,,,43.70439306,0,,,,2059,68.01957165,0,,21.85219653,0,,46.16737512,0,,,0.321263366, +2060,,,,83.79157562,3.245839232,0.091208644,,,,,,151.9537832,7.179912501,0.165404438,,,,,,,,2.283446335,23.00190794,,,,25.28535427,0,,,,,,,4.140968909,41.71334537,,,,45.85431428,0,,,,2060,71.13966855,0,,22.92715714,0,,48.21251141,0,,,0.322283722, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,Table 12: Difference in FUNCTIONAL & IMPLEMENTATION UNITS between REF1 and REF2 populations in MDC + LAC + EE + China,,,,,,,,,Table 13: Difference in EMISSIONS between REF1 and REF2 populations in MDC + LAC + EE + China,,,,,,,,,,,,,,Table 14: EMISSIONS ALLOCATIONS TO (a) Health & Education; (b) Education ONLY; (c) Family Planning (excluding education),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,SOLUTION ,,,CONVENTIONAL,,,,,,SOLUTION,,,,,CONVENTIONAL,,,,,EMISSION REDUCTIONS,,,,"Table 14(a): EMISSIONS ALLOCATION TO HEALTH & EDUCATION in MDC, WaterHeating_cluster",,,,"Table 14(b): EMISSIONS ALLOCATION TO Education in MDC, WaterHeating_cluster",,,"Table 14(c): EMISSIONS ALLOCATION TO Family Planning in MDC, WaterHeating_cluster",,,,% Allocation to Education (Electricity),,,,,,,,,,,,,,,,,,,,,, +,Additional Functional Units in REF2 vs REF1,Annual Functional Units Increase,Annual Implementation Units Increase + Replacement,Additional Functional Units in REF2 vs REF2,Annual Functional Units Increase,Change in TAM,Annual Implementation Units Increase + Replacement,,,Avoided Emissions/ Million Metric Tons CO2,,,,,Avoided Emissions/ Million Metric Tons CO2,,,,,ALL Years,,,,,,,,,,,,,,,ALL Years,,,,,,,,,,,,,,,,,,,,,, +,TWh,TWh,TW,TWh,TWh,%,TW,,,Grid,Fuel,Other Direct,Indirect,,Grid,Fuel,Other Direct,Indirect,,Conv Total,Solution Total,,,,Conv Total,Solution Total,,Conv Total,Solution Total,,Conv Total,Solution Total,,,Conv Total,Solution Total,,,,,,,,,,,,,,,,,,,,, +2014,,,,0,,,Not modeled TBD,,,,,,,,,0,,,,0,,,,2014,0,0,,,,,0,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2015,,,,0,0,,,,,,,,,,0,0,,,,0,0,,,2015,0,0,,,,,0,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2016,,,,2.466694417,2.466694417,0.486494686,,,,,,,,,0.085311169,0.677140601,,,,0.76245177,0,,,2016,0.76245177,0,,,,,0.76245177,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2017,,,,5.979544854,3.512850438,0.484956925,,,,,,,,,0.204275659,1.641465019,,,,1.845740678,0,,,2017,1.845740678,0,,,,,1.845740678,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2018,,,,10.33700413,4.357459278,0.482542299,,,,,,,,,0.349792402,2.837645857,,,,3.187438259,0,,,2018,3.187438259,0,,,,,3.187438259,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2019,,,,15.22796196,4.890957824,0.479241209,,,,,,,,,0.51260648,4.180279179,,,,4.692885659,0,,,2019,4.692885659,0,,,,,4.692885659,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2020,,,,20.41761374,5.189651784,0.475293701,,,,,,,,,0.68299859,5.604907988,,,,6.287906577,0,,,2020,6.287906577,0,,,,,6.287906577,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2021,,,,25.83990034,5.422286602,0.471054494,,,,,,,,,0.859189012,7.093398165,,,,7.952587177,0,,,2021,7.952587177,0,,,,,7.952587177,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2022,,,,31.53693527,5.697034933,0.466840296,,,,,,,,,1.042383535,8.657310432,,,,9.699693967,0,,,2022,9.699693967,0,,,,,9.699693967,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2023,,,,37.5066464,5.969711127,0.462759936,,,,,,,,,1.232462704,10.29607596,,,,11.52853866,0,,,2023,11.52853866,0,,,,,11.52853866,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2024,,,,43.77317421,6.266527809,0.458914226,,,,,,,,,1.430123356,12.01632164,,,,13.44644499,0,,,2024,13.44644499,0,,,,,13.44644499,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2025,,,,50.34063522,6.567461015,0.455337274,,,,,,,,,1.636324492,13.8191775,,,,15.455502,0,,,2025,15.455502,0,,,,,15.455502,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2026,,,,57.19405631,6.853421086,0.451952394,,,,,,,,,1.847672322,15.70053323,,,,17.54820555,0,,,2026,17.54820555,0,,,,,17.54820555,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2027,,,,64.27152555,7.077469239,0.448716225,,,,,,,,,2.064869686,17.64339318,,,,19.70826286,0,,,2027,19.70826286,0,,,,,19.70826286,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2028,,,,71.47736761,7.205842065,0.445670169,,,,,,,,,2.283849828,19.62149318,,,,21.90534301,0,,,2028,21.90534301,0,,,,,21.90534301,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2029,,,,78.69347699,7.216109373,0.442843361,,,,,,,,,2.500827533,21.60241169,,,,24.10323922,0,,,2029,24.10323922,0,,,,,24.10323922,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2030,,,,85.83494304,7.141466051,0.44021878,,,,,,,,,2.713774224,23.56283961,,,,26.27661384,0,,,2030,26.27661384,0,,,,,26.27661384,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2031,,,,92.86046465,7.025521614,0.437736336,,,,,,,,,2.91955156,25.49143924,,,,28.4109908,0,,,2031,28.4109908,0,,,,,28.4109908,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2032,,,,99.78463599,6.924171341,0.435332836,,,,,,,,,3.120585691,27.39221686,,,,30.51280255,0,,,2032,30.51280255,0,,,,,30.51280255,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2033,,,,106.6497361,6.865100106,0.432974421,,,,,,,,,3.317615995,29.27677864,,,,32.59439463,0,,,2033,32.59439463,0,,,,,32.59439463,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2034,,,,113.5260901,6.876353988,0.43063392,,,,,,,,,3.512847998,31.16442975,,,,34.67727775,0,,,2034,34.67727775,0,,,,,34.67727775,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2035,,,,120.4665227,6.940432638,0.428287785,,,,,,,,,3.707354245,33.06967132,,,,36.77702556,0,,,2035,36.77702556,0,,,,,36.77702556,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2036,,,,127.4790238,7.01250112,0.425932303,,,,,,,,,3.902842332,34.99469664,,,,38.89753898,0,,,2036,38.89753898,0,,,,,38.89753898,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2037,,,,134.5504151,7.071391265,0.423543795,,,,,,,,,4.097372366,36.9358881,,,,41.03326047,0,,,2037,41.03326047,0,,,,,41.03326047,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2038,,,,141.6881038,7.137688733,0.421068241,,,,,,,,,4.291624059,38.8952791,,,,43.18690316,0,,,2038,43.18690316,0,,,,,43.18690316,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2039,,,,148.8968642,7.208760313,0.418449015,,,,,,,,,4.485568348,40.8741802,,,,45.35974855,0,,,2039,45.35974855,0,,,,,45.35974855,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2040,,,,156.1812987,7.284434536,0.415658355,,,,,,,,,4.677540531,42.87385489,,,,47.55139542,0,,,2040,47.55139542,0,,,,,47.55139542,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2041,,,,163.5483171,7.367018435,0.412711404,,,,,,,,,4.873311841,44.89619995,,,,49.7695118,0,,,2041,49.7695118,0,,,,,49.7695118,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2042,,,,171.0049437,7.456626621,0.409636836,,,,,,,,,5.067362987,46.94314367,,,,52.01050666,0,,,2042,52.01050666,0,,,,,52.01050666,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2043,,,,178.5555594,7.550615652,0.406446937,,,,,,,,,5.261588692,49.01588863,,,,54.27747732,0,,,2043,54.27747732,0,,,,,54.27747732,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2044,,,,186.20416,7.64860055,0.403157036,,,,,,,,,5.456009077,51.11553175,,,,56.57154083,0,,,2044,56.57154083,0,,,,,56.57154083,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2045,,,,193.9557226,7.751562656,0.399788271,,,,,,,,,5.649504378,53.24343935,,,,58.89294373,0,,,2045,58.89294373,0,,,,,58.89294373,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2046,,,,201.8139114,7.858188811,0.396358541,,,,,,,,,5.84555121,55.40061726,,,,61.24616847,0,,,2046,61.24616847,0,,,,,61.24616847,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2047,,,,209.7854507,7.971539263,0.392896815,,,,,,,,,6.040742016,57.58891138,,,,63.62965339,0,,,2047,63.62965339,0,,,,,63.62965339,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2048,,,,217.8825474,8.0970967,0.38944669,,,,,,,,,6.236458989,59.81167269,,,,66.04813168,0,,,2048,66.04813168,0,,,,,66.04813168,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2049,,,,226.1202862,8.237738839,0.386054701,,,,,,,,,6.438887774,62.07304216,,,,68.51192993,0,,,2049,68.51192993,0,,,,,68.51192993,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2050,,,,234.5111324,8.390846161,0.382754428,,,,,,,,,6.654856776,64.37644163,,,,71.0312984,0,,,2050,71.0312984,0,,,,,71.0312984,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2051,,,,243.0583494,8.547217024,0.379551978,,,,,,,,,6.871043733,66.72276699,,,,73.59381072,0,,,2051,73.59381072,0,,,,,73.59381072,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2052,,,,251.7635383,8.705188861,0.376451376,,,,,,,,,7.090850795,69.11245774,,,,76.20330853,0,,,2052,76.20330853,0,,,,,76.20330853,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2053,,,,260.634849,8.871310738,0.373474177,,,,,,,,,7.312931739,71.54775116,,,,78.8606829,0,,,2053,78.8606829,0,,,,,78.8606829,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2054,,,,269.680692,9.045843033,0.370641104,,,,,,,,,7.537380611,74.03095603,,,,81.56833664,0,,,2054,81.56833664,0,,,,,81.56833664,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2055,,,,278.904705,9.224012948,0.367960331,,,,,,,,,7.76350386,76.56307092,,,,84.32657478,0,,,2055,84.32657478,0,,,,,84.32657478,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2056,,,,288.309316,9.404611047,0.365427993,,,,,,,,,7.9931541,79.14476241,,,,87.13791651,0,,,2056,87.13791651,0,,,,,87.13791651,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2057,,,,297.886227,9.576910997,0.363027754,,,,,,,,,8.224003173,81.77375254,,,,89.99775571,0,,,2057,89.99775571,0,,,,,89.99775571,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2058,,,,307.6137054,9.727478352,0.360737664,,,,,,,,,8.455938928,84.44407541,,,,92.90001434,0,,,2058,92.90001434,0,,,,,92.90001434,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2059,,,,317.4618842,9.848178796,0.358531266,,,,,,,,,8.687986307,87.14753218,,,,95.83551849,0,,,2059,95.83551849,0,,,,,95.83551849,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2060,,,,327.405606,9.943721805,0.356386918,,,,,,,,,8.922294701,89.87721678,,,,98.79951148,0,,,2060,98.79951148,0,,,,,98.79951148,0,,,0,,,,,,,,,,,,,,,,,,,,,, diff --git a/solution/health_and_education/tests/test_water_heating.py b/solution/health_and_education/tests/test_water_heating.py new file mode 100644 index 000000000..a0da5e908 --- /dev/null +++ b/solution/health_and_education/tests/test_water_heating.py @@ -0,0 +1,101 @@ +import sys +sys.path.append('c:\\Users\\sunishchal.dev\\Documents\\solutions\\solution\\health_and_education') + +import pandas as pd +import numpy as np + +from clusters import water_heating + +test_cluster = water_heating.Cluster() +test_dfs = test_cluster.run_cluster() + +expected_df = pd.read_csv('expected_water_heating.csv', header=None) + +def test_water_heating(): + + # Default columns to integers to avoid mismatch between Excel & pandas col names using T.reset_index() + exp_ref2_tam = expected_df.iloc[28:75, 1:11].T.reset_index(drop=True).T.astype(float) + exp_ref2_tam.index = expected_df.iloc[28:75, 0].astype(int).values + test_ref2_tam = test_dfs.ref2_tam.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_ref2_tam, exp_ref2_tam, check_exact=False) + + exp_ref1_tam_low_edu = expected_df.iloc[28:75, 13:23].T.reset_index(drop=True).T.astype(float) + exp_ref1_tam_low_edu.index = expected_df.iloc[28:75, 12].astype(int).values + test_ref1_tam_low_edu = test_dfs.ref1_tam_low_edu.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_ref1_tam_low_edu, exp_ref1_tam_low_edu, check_exact=False) + + exp_ref1_tam_high_edu = expected_df.iloc[28:75, 25:35].T.reset_index(drop=True).T.astype(float) + exp_ref1_tam_high_edu.index = expected_df.iloc[28:75, 24].astype(int).values + test_ref1_tam_high_edu = test_dfs.ref1_tam_high_edu.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_ref1_tam_high_edu, exp_ref1_tam_high_edu, check_exact=False) + + exp_ref1_tam_all_regions = expected_df.iloc[28:75, 37:47].T.reset_index(drop=True).T.astype(float) + exp_ref1_tam_all_regions.index = expected_df.iloc[28:75, 36].astype(int).values + test_ref1_tam_all_regions = test_dfs.ref1_tam_all_regions.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_ref1_tam_all_regions, exp_ref1_tam_all_regions, check_exact=False) + + exp_ref2_demand = expected_df.iloc[79:126, 1:6].T.reset_index(drop=True).T.astype(float) + exp_ref2_demand.index = expected_df.iloc[79:126, 0].astype(int).values + test_ref2_demand = test_dfs.ref2_demand.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_ref2_demand, exp_ref2_demand, check_exact=False, rtol=1e-3) + + exp_ref1_demand = expected_df.iloc[79:126, [8,9,10,11,12,14,15,16,17,18,19]].T.reset_index(drop=True).T.astype(float) + exp_ref1_demand.index = expected_df.iloc[79:126, 7].astype(int).values + test_ref1_demand = test_dfs.ref1_demand.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_ref1_demand, exp_ref1_demand, check_exact=False, rtol=1e-3) + + exp_change_demand = expected_df.iloc[79:126, 22:30].T.reset_index(drop=True).T.astype(float) + exp_change_demand.index = expected_df.iloc[79:126, 7].astype(int).values + test_change_demand = test_dfs.change_demand.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_change_demand, exp_change_demand, check_exact=False, rtol=1e-3) + + exp_addl_func_units_highed = expected_df.iloc[134:181, 4:7].T.reset_index(drop=True).T.astype(float) + exp_addl_func_units_highed.index = expected_df.iloc[134:181, 0].astype(int, errors='ignore').values + test_addl_func_units_highed = test_dfs.addl_func_units_highed.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_addl_func_units_highed, exp_addl_func_units_highed, check_exact=False, rtol=1e-3) + + exp_addl_func_units_lowed = expected_df.iloc[134:181, 12:15].T.reset_index(drop=True).T.astype(float) + exp_addl_func_units_lowed.index = expected_df.iloc[134:181, 0].astype(int, errors='ignore').values + test_addl_func_units_lowed = test_dfs.addl_func_units_lowed.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_addl_func_units_lowed, exp_addl_func_units_lowed, check_exact=False, rtol=1e-3) + + exp_emis_diff_highed = expected_df.iloc[134:181, [22, 23, 24, 25, 27]].T.reset_index(drop=True).T.astype(float) + exp_emis_diff_highed.index = expected_df.iloc[134:181, 0].astype(int, errors='ignore').values + test_emis_diff_highed = test_dfs.emis_diff_highed.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_emis_diff_highed, exp_emis_diff_highed, check_exact=False, rtol=1e-3) + + exp_emis_diff_lowed = expected_df.iloc[134:181, [35, 36, 37, 38, 40]].T.reset_index(drop=True).T.astype(float) + exp_emis_diff_lowed.index = expected_df.iloc[134:181, 0].astype(int, errors='ignore').values + test_emis_diff_lowed = test_dfs.emis_diff_lowed.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_emis_diff_lowed, exp_emis_diff_lowed, check_exact=False, rtol=1e-3) + + exp_emissions_allocations_lldc = expected_df.iloc[134:181, [46, 47, 49, 50, 52, 53, 56, 57]].T.reset_index(drop=True).T.astype(float) + exp_emissions_allocations_lldc.index = expected_df.iloc[134:181, 45].astype(int, errors='ignore').values + test_emissions_allocations_lldc = test_dfs.emissions_allocations_lldc.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_emissions_allocations_lldc, exp_emissions_allocations_lldc, check_exact=False, rtol=1e-2) + + exp_addl_func_units_mdc = expected_df.iloc[193:240, 4:7].T.reset_index(drop=True).T.astype(float) + exp_addl_func_units_mdc.index = expected_df.iloc[193:240, 0].astype(int, errors='ignore').values + test_addl_func_units_mdc = test_dfs.addl_func_units_mdc.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_addl_func_units_mdc, exp_addl_func_units_mdc, check_exact=False, rtol=1e-3) + + exp_emis_diff_mdc = expected_df.iloc[193:240, [15, 16, 17, 18, 20]].T.reset_index(drop=True).T.astype(float) + exp_emis_diff_mdc.index = expected_df.iloc[193:240, 0].astype(int, errors='ignore').values + test_emis_diff_mdc = test_dfs.emis_diff_mdc.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_emis_diff_mdc, exp_emis_diff_mdc, check_exact=False, rtol=1e-3) + + exp_emissions_allocations_mdc = expected_df.iloc[193:240, [25, 26, 28, 29, 31, 32, 35, 36]].T.reset_index(drop=True).T.astype(float) + exp_emissions_allocations_mdc.index = expected_df.iloc[193:240, 24].astype(int, errors='ignore').values + test_emissions_allocations_mdc = test_dfs.emissions_allocations_mdc.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_emissions_allocations_mdc, exp_emissions_allocations_mdc, check_exact=False, rtol=1e-2) + + # Test the final CO2 reduction output + exp_emissions_avoided = expected_df.iloc[[4, 7, 11], [13, 14]].reset_index(drop=True).T.reset_index(drop=True).T.astype(float) + test_emissions_avoided = pd.DataFrame([[test_dfs.emissions_avoided_lldc_period, test_dfs.emissions_avoided_lldc_full], + [test_dfs.emissions_avoided_mdc_period, test_dfs.emissions_avoided_mdc_full], + [test_dfs.emissions_avoided_total_period, test_dfs.emissions_avoided_total_full]]) + pd.testing.assert_frame_equal(test_emissions_avoided, exp_emissions_avoided, check_exact=False, rtol=1e-2) + + print("Test complete: water heating cluster") + +test_water_heating() \ No newline at end of file From 13da3bead75bdc18dc54a99f43495457a0fd8c51 Mon Sep 17 00:00:00 2001 From: Sunishchal Date: Sat, 2 Jan 2021 02:05:54 -0800 Subject: [PATCH 22/28] Working paper cluster implementation --- .../clusters/cluster_model.py | 62 ++++- .../health_and_education/clusters/paper.py | 128 ++++++++++ .../tests/expected_paper.csv | 240 ++++++++++++++++++ .../health_and_education/tests/test_paper.py | 101 ++++++++ 4 files changed, 527 insertions(+), 4 deletions(-) create mode 100644 solution/health_and_education/clusters/paper.py create mode 100644 solution/health_and_education/tests/expected_paper.csv create mode 100644 solution/health_and_education/tests/test_paper.py diff --git a/solution/health_and_education/clusters/cluster_model.py b/solution/health_and_education/clusters/cluster_model.py index 6d8e79de3..09ac23393 100644 --- a/solution/health_and_education/clusters/cluster_model.py +++ b/solution/health_and_education/clusters/cluster_model.py @@ -357,7 +357,24 @@ def calc_emis_diff_highed_comlight(self, ef_co2_eq_list): emis_diff_highed['Emission Reductions: Conv Total'] = emis_diff_highed[['Conventional: Grid', 'Conventional: Fuel', 'Conventional: Other Direct', 'Conventional: Indirect']].sum(axis=1, min_count=1) - # SpaceHeating_cluster!V131:Z179 + self.emis_diff_highed = emis_diff_highed + + + def calc_emis_diff_highed_paper(self): + emis_diff_highed = pd.DataFrame(None, + columns=['Conventional: Grid','Conventional: Fuel', 'Conventional: Other Direct', 'Conventional: Indirect', 'Emission Reductions: Conv Total'], + index=list(range(2014, 2061)), dtype=np.float64) + + if self.assumptions['Other Direct'] == 'Y': + emis_diff_highed['Conventional: Other Direct'] = self.addl_func_units_highed['Additional Functional Units in REF2 vs REF2'] \ + * self.assumptions['Direct Emissions'] / 10**6 + + if self.assumptions['Indirect'] == 'Y': + emis_diff_highed['Conventional: Indirect'] = self.addl_func_units_highed['Additional Functional Units in REF2 vs REF2'] \ + * self.assumptions['Indirect Emissions'] / 10**6 + + emis_diff_highed['Emission Reductions: Conv Total'] = emis_diff_highed[['Conventional: Grid', 'Conventional: Fuel', 'Conventional: Other Direct', 'Conventional: Indirect']].sum(axis=1, min_count=1) + self.emis_diff_highed = emis_diff_highed @@ -460,6 +477,27 @@ def calc_emis_diff_lowed_comlight(self): # SpaceHeating_cluster!AI131:AM179 self.emis_diff_lowed = emis_diff_lowed + + def calc_emis_diff_lowed_paper(self): + # Table 10: Difference in EMISSIONS between REF1 and REF2 populations in LLDC+HighNRR+LowED + # CONVENTIONAL - Least and Less Developed Countries (sans LAC, EE, China) + emis_diff_lowed = pd.DataFrame(None, + columns=['Conventional: Grid','Conventional: Fuel', 'Conventional: Other Direct', 'Conventional: Indirect', 'Emission Reductions: Conv Total'], + index=list(range(2014, 2061)), dtype=np.float64) + + if self.assumptions['Other Direct'] == 'Y': + emis_diff_lowed['Conventional: Other Direct'] = self.addl_func_units_lowed['Additional Functional Units in REF2 vs REF2'] \ + * self.assumptions['Direct Emissions'] / 10**6 + + if self.assumptions['Indirect'] == 'Y': + emis_diff_lowed['Conventional: Indirect'] = self.addl_func_units_lowed['Additional Functional Units in REF2 vs REF2'] \ + * self.assumptions['Indirect Emissions'] / 10**6 + + emis_diff_lowed['Emission Reductions: Conv Total'] = emis_diff_lowed[['Conventional: Grid', 'Conventional: Fuel', 'Conventional: Other Direct', 'Conventional: Indirect']].sum(axis=1, min_count=1) + + # SpaceHeating_cluster!AI131:AM179 + self.emis_diff_lowed = emis_diff_lowed + def calc_emis_alloc_lldc(self): # Table 11: EMISSIONS ALLOCATIONS TO (a) Health & Education; (b) Education ONLY; (c) Family Planning (excluding education) @@ -558,9 +596,7 @@ def calc_emis_diff_mdc_waterheating(self): emis_diff_mdc = pd.DataFrame(None, columns=['Conventional: Grid','Conventional: Fuel', 'Conventional: Other Direct', 'Conventional: Indirect', 'Emission Reductions: Conv Total'], index=list(range(2014, 2061)), dtype=np.float64) - # print(self.addl_func_units_mdc['Additional Functional Units in REF2 vs REF2'], - # (self.current_tam_mix.loc[self.current_tam_mix['Energy Source'] == 'Electricity (Heating & Cooling)', 'Weighting Factor'].values[0] / self.conv_weight_sum), - # self.assumptions['Twh_per_TWh'], self.emissions_factors_ref1_co2eq['World']) + if self.assumptions['Grid'] == 'Y': emis_diff_mdc['Conventional: Grid'] = self.addl_func_units_mdc['Additional Functional Units in REF2 vs REF2'] \ * (self.current_tam_mix.loc[self.current_tam_mix['Energy Source'] == 'Electricity (Heating & Cooling)', 'Weighting Factor'].values[0] / self.conv_weight_sum) \ @@ -606,6 +642,24 @@ def calc_emis_diff_mdc_comlight(self): self.emis_diff_mdc = emis_diff_mdc + def calc_emis_diff_mdc_paper(self): + emis_diff_mdc = pd.DataFrame(None, + columns=['Conventional: Grid','Conventional: Fuel', 'Conventional: Other Direct', 'Conventional: Indirect', 'Emission Reductions: Conv Total'], + index=list(range(2014, 2061)), dtype=np.float64) + + if self.assumptions['Other Direct'] == 'Y': + emis_diff_mdc['Conventional: Other Direct'] = self.addl_func_units_mdc['Additional Functional Units in REF2 vs REF2'] \ + * self.assumptions['Direct Emissions'] / 10**6 + + if self.assumptions['Indirect'] == 'Y': + emis_diff_mdc['Conventional: Indirect'] = self.addl_func_units_mdc['Additional Functional Units in REF2 vs REF2'] \ + * self.assumptions['Indirect Emissions'] / 10**6 + + emis_diff_mdc['Emission Reductions: Conv Total'] = emis_diff_mdc[['Conventional: Grid', 'Conventional: Fuel', 'Conventional: Other Direct', 'Conventional: Indirect']].sum(axis=1, min_count=1) + + self.emis_diff_mdc = emis_diff_mdc + + def calc_emis_alloc_mdc(self): # Table 14: EMISSIONS ALLOCATIONS TO (a) Health & Education; (b) Education ONLY; (c) Family Planning (excluding education) # More developed countries diff --git a/solution/health_and_education/clusters/paper.py b/solution/health_and_education/clusters/paper.py new file mode 100644 index 000000000..f0615abd3 --- /dev/null +++ b/solution/health_and_education/clusters/paper.py @@ -0,0 +1,128 @@ +"""Health & Education solution model for Paper Cluster + Excel filename: CORE_PopulationChange_29Jan2020 (version 1.5).xlsx + Excel sheet name: Paper_cluster +""" +import pathlib +import numpy as np +import pandas as pd +import sys +__file__ = 'c:\\Users\\sunishchal.dev\\Documents\\solutions\\solution\\health_and_education\\clusters' +repo_path = str(pathlib.Path(__file__).parents[2]) +sys.path.append(repo_path) +# sys.path.append('c:\\Users\\sunishchal.dev\\Documents\\solutions') + +from model import advanced_controls as ac +from solution.health_and_education.clusters import cluster_model + +DATADIR = pathlib.Path(__file__).parents[0].joinpath('data') +THISDIR = pathlib.Path(__file__).parents[0] + +name = 'Health and Education - Paper Cluster' +solution_category = ac.SOLUTION_CATEGORY.REDUCTION +period_start = 2020 +period_end = 2050 + +# % impact of educational attainment on uptake of Family Planning: +assumptions = { + 'fixed_weighting_factor': None, + 'pct_impact': 0.50, + 'use_fixed_weight': 'N', + 'Direct Emissions': 1318973.961, + 'Indirect Emissions': 524550.5, + 'period_start': 2020, + 'period_end': 2050, + 'Grid': 'N', + 'Fuel': 'N', + 'Other Direct': 'Y', + 'Indirect': 'Y', + 'Weighted Emission Factor for Space Heating and Cooling': 87.04 +} + +# TABLE 1: Current TAM Mix +current_tam_mix_list = [ + ['Energy Source', 'Weighting Factor', 'Include in SOL?', 'Include in CONV?'], + ['Virgin Paper', 44.0, 'N', 'Y']] + +# Table 2: REF2, Paper Demand TAM (TWh Therms) +# WaterHeating_cluster!B28:K75 +# TODO: Replace this with solarpvutil.Scenario.ref_tam_per_region once we resolve the data mismatch +ref2_tam_list = [ + ['World', 'OECD90', 'Eastern Europe', 'Asia (Sans Japan)', 'Middle East and Africa', 'Latin America', 'China', 'India', 'EU', 'USA'], + [432.403664, 242.716674, 22.577752, 138.887882, 9.755026, 23.089264, 110.778571, 10.247000, 92.507389, 75.239768], + [440.592298, 248.917271, 23.960729, 144.985455, 10.190211, 23.707307, 113.197545, 10.734412, 93.239345, 74.086896], + [448.865022, 255.307923, 24.931198, 151.805693, 10.585601, 24.327959, 121.559636, 11.495328, 93.696571, 73.532245], + [457.497906, 261.824829, 25.872882, 158.655475, 10.988170, 24.961113, 129.962601, 12.265347, 94.135585, 72.990815], + [466.488656, 268.471125, 26.787807, 165.541254, 11.398145, 25.607156, 138.410661, 13.050637, 94.557354, 72.462605], + [475.834975, 275.249948, 27.677999, 172.469483, 11.815755, 26.266473, 146.908035, 13.857367, 94.962847, 71.947615], + [485.534570, 282.164433, 28.545484, 179.446614, 12.241225, 26.939451, 155.458945, 14.691704, 95.353031, 71.445845], + [495.585143, 289.217715, 29.392287, 186.479101, 12.674784, 27.626475, 164.067609, 15.559816, 95.728875, 70.957296], + [505.984400, 296.412932, 30.220434, 193.573396, 13.116658, 28.327932, 172.738248, 16.467872, 96.091346, 70.481967], + [516.730046, 303.753218, 31.031952, 200.735951, 13.567074, 29.044208, 181.475083, 17.422039, 96.441413, 70.019858], + [527.819784, 311.241709, 31.828865, 207.973221, 14.026259, 29.775688, 190.282334, 18.428485, 96.780043, 69.570969], + [539.251320, 318.881542, 32.613200, 215.291657, 14.494440, 30.522758, 199.164220, 19.493379, 97.108205, 69.135301], + [551.022357, 326.675853, 33.386983, 222.697712, 14.971846, 31.285806, 208.124962, 20.622889, 97.426867, 68.712852], + [563.130602, 334.627776, 34.152240, 230.197839, 15.458702, 32.065216, 217.168781, 21.823181, 97.736997, 68.303625], + [575.573757, 342.740449, 34.910995, 237.798491, 15.955235, 32.861374, 226.299896, 23.100425, 98.039562, 67.907617], + [588.349528, 351.017006, 35.665276, 245.506121, 16.461674, 33.674668, 235.522527, 24.460789, 98.335531, 67.524829], + [601.455620, 359.460585, 36.417108, 253.327182, 16.978245, 34.505482, 244.840896, 25.910440, 98.625871, 67.155262], + [614.889736, 368.074320, 37.168516, 261.268125, 17.505175, 35.354203, 254.259221, 27.455546, 98.911552, 66.798915], + [628.649582, 376.861347, 37.921528, 269.335405, 18.042691, 36.221216, 263.781724, 29.102276, 99.193540, 66.455789], + [642.732861, 385.824803, 38.678168, 277.535474, 18.591020, 37.106909, 273.412624, 30.856798, 99.472805, 66.125882], + [657.137279, 394.967824, 39.440462, 285.874784, 19.150390, 38.011666, 283.156142, 32.725278, 99.750313, 65.809196], + [671.860541, 404.293544, 40.210436, 294.359788, 19.721028, 38.935875, 293.016498, 34.713887, 100.027033, 65.505730], + [686.900350, 413.805101, 40.990116, 302.996940, 20.303160, 39.879920, 302.997911, 36.828790, 100.303933, 65.215484], + [702.254412, 423.505629, 41.781528, 311.792692, 20.897014, 40.844188, 313.104603, 39.076158, 100.581981, 64.938459], + [717.920430, 433.398266, 42.586698, 320.753497, 21.502817, 41.829065, 323.340794, 41.462156, 100.862146, 64.674653], + [733.896110, 443.486146, 43.407652, 329.885808, 22.120796, 42.834937, 333.710703, 43.992955, 101.145394, 64.424068], + [750.179155, 453.772405, 44.246414, 339.196077, 22.751178, 43.862189, 344.218550, 46.674720, 101.432694, 64.186704], + [766.767272, 464.260180, 45.105012, 348.690757, 23.394190, 44.911209, 354.868557, 49.513622, 101.725015, 63.962559], + [783.658163, 474.952607, 45.985471, 358.376301, 24.050060, 45.982382, 365.664943, 52.515827, 102.023323, 63.751635], + [800.849534, 485.852820, 46.889817, 368.259162, 24.719014, 47.076094, 376.611929, 55.687503, 102.328588, 63.553931], + [818.339090, 496.963956, 47.820076, 378.345792, 25.401280, 48.192731, 387.713734, 59.034819, 102.641777, 63.369447], + [836.124534, 508.289152, 48.778273, 388.642645, 26.097085, 49.332679, 398.974579, 62.563943, 102.963859, 63.198183], + [854.203572, 519.831542, 49.766434, 399.156173, 26.806655, 50.496325, 410.398684, 66.281042, 103.295800, 63.040140], + [872.573908, 531.594263, 50.786586, 409.892829, 27.530218, 51.684053, 421.990269, 70.192284, 103.638570, 62.895317], + [891.233246, 543.580450, 51.840754, 420.859066, 28.268001, 52.896251, 433.753555, 74.303839, 103.993136, 62.763714], + [910.179292, 555.793240, 52.930963, 432.061337, 29.020232, 54.133303, 445.692762, 78.621873, 104.360467, 62.645332], + [929.409749, 568.235768, 54.059240, 443.506093, 29.787136, 55.395597, 457.812109, 83.152554, 104.741530, 62.540169], + [948.922322, 580.911171, 55.227611, 455.199789, 30.568942, 56.683518, 470.115817, 87.902051, 105.137294, 62.448227], + [968.714717, 593.822583, 56.438102, 467.148877, 31.365877, 57.997453, 482.608107, 92.876532, 105.548726, 62.369505], + [988.784637, 606.973141, 57.692737, 479.359810, 32.178167, 59.337787, 495.293198, 98.082164, 105.976794, 62.304004], + [1009.129787, 620.365981, 58.993544, 491.839040, 33.006040, 60.704906, 508.175310, 103.525116, 106.422467, 62.251722], + [1029.747871, 634.004239, 60.342547, 504.593021, 33.849722, 62.099196, 521.258665, 109.211556, 106.886713, 62.212661], + [1050.636595, 647.891050, 61.741774, 517.628205, 34.709442, 63.521044, 534.547481, 115.147651, 107.370499, 62.186820], + [1071.793662, 662.029551, 63.193248, 530.951044, 35.585426, 64.970835, 548.045980, 121.339570, 107.874794, 62.174200], + [1093.216778, 676.422877, 64.698998, 544.567993, 36.477900, 66.448955, 561.758381, 127.793481, 108.400566, 62.174799], + [1114.903646, 691.074164, 66.261047, 558.485503, 37.387093, 67.955791, 575.688905, 134.515551, 108.948782, 62.188619], + [1136.851972, 705.986548, 67.881423, 572.710027, 38.313232, 69.491729, 589.841772, 141.511950, 109.520411, 62.215659]] + + +class Cluster: + + def __init__(self): + self.name = name + + def run_cluster(self): + scenario = cluster_model.Scenario(name, assumptions) + scenario.load_pop_data(DATADIR) + scenario.load_tam_mix(current_tam_mix_list) + scenario.load_ref2_tam(ref2_tam_list) + scenario.calc_ref1_tam() + scenario.calc_ref2_demand() + scenario.calc_ref1_demand() + scenario.calc_change_demand() + scenario.calc_addl_units_highed() + scenario.calc_addl_units_lowed() + scenario.calc_emis_diff_highed_paper() + scenario.calc_emis_diff_lowed_paper() + scenario.calc_emis_alloc_lldc() + scenario.calc_addl_units_mdc() + scenario.calc_emis_diff_mdc_paper() + scenario.calc_emis_alloc_mdc() + scenario.calc_total_emis() + scenario.print_total_emis() + return scenario + +if __name__ == "__main__": + cluster = Cluster() + cluster.run_cluster() \ No newline at end of file diff --git a/solution/health_and_education/tests/expected_paper.csv b/solution/health_and_education/tests/expected_paper.csv new file mode 100644 index 000000000..59dc80d78 --- /dev/null +++ b/solution/health_and_education/tests/expected_paper.csv @@ -0,0 +1,240 @@ +Paper_cluster,,Water Heating,(TWh Therms),,,,,Sheet Estimates the Emissions Reduction from this Solution due to Health & Education,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,Period Start:,2020,,Total Emissions Avoided due to Health & Education (Gt CO2-eq),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,COPY VALUES FROM SOLUTION MODEL,,,,Period End:,2050,,,,2020-2050,2015-2060,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,TABLE 1: Current TAM Mix,2018,Include in SOL?,Include in CONV?,,,,LLDC,SOLUTION,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,Virgin Paper,0.44,N,Y,,,,,CONVENTIONAL,0.16,0.37,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +Keywords:,,,,,,,,,,,MDC,SOLUTION,0.00,0.00,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +LLDC,Least and Less Developed Countries,,,,,,,,,,,CONVENTIONAL,0.87,1.81,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +MDC,More Developed Countries,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +LLDC+HighNRR+HigherEd,Least and Less Developed Countries with High Net Reproductive Rates & Higher Educational Attainment.,"NOTE: China, LAC, and EE are considered as LLDC Regions with Low NRR and are accounted for under the _mdc sheet.",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +LLDC+HighNRR+LowEd,"Least and Less Developed Countries with High Net Reproductive Rates & Lower Educational Attainment. This excludes China, LAC, and EE.","NOTE: China, LAC, and EE are considered as LLDC Regions with Low NRR and are accounted for under the _mdc sheet.",,,,,,,,,TOTAL,SOLUTION,0.00,0.00,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +REF1,Reference Scenario 1 with Higher Population,,,,,,,,,,,CONVENTIONAL,1.02,2.18,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +REF2,Reference Scenario 2 with Lower Population,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +TAM,Total Addressable Market,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +LAC,Latin American Countries,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +EE,Eastern Europe,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +TWh,Terrawatt-Hours,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +NRR,Net Reproductive Rate,,,Assumptions:,,Use fixed weight?,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,Fixed weighting factor:,,N,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,% impact of educational attainment on uptake of Family Planning:,0.5,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,Twh per TWh,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,Fuel unit (TJ) per TWh,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,Direct Emissions,1318973.961,t CO2-eq per Million Metric Tonnes of Paper Produced,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,Indirect Emissions,524550.5,t CO2-eq per Million Metric Tonnes of Paper Produced,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +"Table 2: REF2, Water Heating TAM (TWh Therms)",,,,,,,,,,,,"Table 3: REF1 ,Water Heating TAM (TWh Therms)",,,,,,,,,,,,Table 3: REF1 Water Heating TAM (TWh Therms),,,,,,,,,,,,Table 3: REF1 Water Heating TAM (TWh Therms),,,,,,,,,,,,,,,,,,,,, +COPY TABLES BELOW FROM LATEST Paper_cluster SOLUTION MODELS,,,,,,,,,,,,(a) FOR POPULATIONS IN REGIONS WITH LOW EDUCATIONAL ATTAINMENT ONLY!,,,,,,,,,,,,(b) FOR REGIONS WITH HIGHER EDUCATIONAL ATTAINMENT,,,,,,,,,,,,(c) FOR ALL REGIONS,,,,,,,,,,,,,,,,,,,,, +,Regions included as LLDC+HighNRR:,N,N,Y,Y,N,,,,,,,Regions included as LLDC+HighNRR:,N,N,Y,Y,N,,,,,,,Regions included as LLDC+HighNRR:,N,N,Y,Y,N,,,,,,,,,,,,,,,,,,CHECK,,,,,,,,, +,World,OECD90,Eastern Europe,Asia (Sans Japan),Middle East and Africa,Latin America,China,India,EU,USA,,,World,OECD90,Eastern Europe,"Asia (Sans Japan, Sans China)",Middle East and Africa,Latin America,China,India,EU,USA,,,World,OECD90,Eastern Europe,Asia (Sans Japan),Middle East and Africa,Latin America,China,India,EU,USA,,,World,OECD90,Eastern Europe,Asia (Sans Japan),Middle East and Africa,Latin America,China,India,EU,USA,,WORLD,,REGIONAL TOTAL,,% error,OECD90,Eastern Europe,Asia (Sans Japan),Middle East and Africa,Latin America +2014,432.403664,242.716674,22.577752,138.887882,9.755026,23.089264,110.778571,10.247000,92.507389,75.239768,,2014,0,0,0,0,0,0,0,0,0,0,,2014,432.4036638,242.716674,22.57775246,138.8878822,9.755025592,23.08926384,110.7785714,10.247,92.507389,75.23976777,,2014,432.4036638,242.716674,22.57775246,138.8878822,9.755025592,23.08926384,110.7785714,10.247,92.507389,75.23976777,,432.4036638,OK,437.0265982,OK,,242.716674,22.57775246,138.8878822,9.755025592,23.08926384 +2015,440.592298,248.917271,23.960729,144.985455,10.190211,23.707307,113.197545,10.734412,93.239345,74.086896,,2015,29.86011032,0,0.499014672,16.59441795,6.108556761,6.658120932,0,0,0,0,,2015,410.7321879,248.9172715,23.46171401,128.3910369,4.081654314,17.04918608,113.1975449,10.73441221,93.23934493,74.0868959,,2015,440.5922982,248.9172715,23.96072868,144.9854549,10.19021108,23.70730701,113.1975449,10.73441221,93.23934493,74.0868959,,440.5922982,OK,451.7609731,OK,,248.9172715,23.96072868,144.9854549,10.19021108,23.70730701 +2016,448.865022,255.307923,24.931198,151.805693,10.585601,24.327959,121.559636,11.495328,93.696571,73.532245,,2016,29.64087011,0,0.531126793,15.86810711,6.378757981,6.862878232,0,0,0,0,,2016,419.6971593,255.5192004,24.41916764,136.1002754,4.218566903,17.49749055,121.6675588,11.50858515,93.76353233,73.60133892,,2016,449.3380294,255.5192004,24.95029444,151.9683826,10.59732488,24.36036878,121.6675588,11.50858515,93.76353233,73.60133892,,449.3380294,OK,467.395571,OK,,255.5192004,24.95029444,151.9683826,10.59732488,24.36036878 +2017,457.497906,261.824829,25.872882,158.655475,10.988170,24.961113,129.962601,12.265347,94.135585,72.990815,,2017,29.43803425,0,0.564247329,15.1376378,6.658592211,7.077556917,0,0,0,0,,2017,429.2225456,262.3508259,25.35680934,143.9282055,4.358653635,17.96383876,130.2415047,12.29944414,94.29932726,73.15694238,,2017,458.6605798,262.3508259,25.92105667,159.0658433,11.01724585,25.04139568,130.2415047,12.29944414,94.29932726,73.15694238,,458.6605798,OK,483.3963674,FALSE,,262.3508259,25.92105667,159.0658433,11.01724585,25.04139568 +2018,466.488656,268.471125,26.787807,165.541254,11.398145,25.607156,138.410661,13.050637,94.557354,72.462605,,2018,29.24928007,0,0.598330409,14.40107627,6.948071332,7.301802057,0,0,0,0,,2018,439.2825863,269.4059541,26.27566656,151.8781377,4.501713604,18.44768426,138.9203864,13.11322521,94.84243924,72.74788139,,2018,468.5318663,269.4059541,26.87399697,166.279214,11.44978494,25.74948632,138.9203864,13.11322521,94.84243924,72.74788139,,468.5318663,OK,499.7584363,OK,,269.4059541,26.87399697,166.279214,11.44978494,25.74948632 +2019,475.834975,275.249948,27.677999,172.469483,11.815755,26.266473,146.908035,13.857367,94.962847,71.947615,,2019,29.07093773,0,0.633233389,13.65601661,7.246976654,7.534711081,0,0,0,0,,2019,449.831521,276.6672143,27.1754899,159.9442029,4.6472716,18.94753989,147.695512,13.95541723,95.38517182,72.3657191,,2019,478.9024587,276.6672143,27.80872329,173.6002195,11.89424825,26.48225097,147.695512,13.95541723,95.38517182,72.3657191,,478.9024587,OK,516.4526563,OK,,276.6672143,27.80872329,173.6002195,11.89424825,26.48225097 +2020,485.534570,282.164433,28.545484,179.446614,12.241225,26.939451,155.458945,14.691704,95.353031,71.445845,,2020,28.90075815,0,0.668836123,12.90109825,7.555213395,7.775610374,0,0,0,0,,2020,460.8337185,284.1216412,28.05640256,168.1220253,4.794950343,19.46230061,156.5590367,14.83167407,95.92190352,72.00430873,,2020,489.7344766,284.1216412,28.72523868,181.0231235,12.35016374,27.23791099,156.5590367,14.83167407,95.92190352,72.00430873,,489.7344766,OK,533.4580782,OK,,284.1216412,28.72523868,181.0231235,12.35016374,27.23791099 +2021,495.585143,289.217715,29.392287,186.479101,12.674784,27.626475,164.067609,15.559816,95.728875,70.957296,,2021,28.73906171,0,0.705139845,12.1364812,7.872918893,8.02452177,0,0,0,0,,2021,472.2806156,291.7696876,28.91987067,176.4162727,4.944757841,19.99210469,165.512081,15.74844645,96.45176411,71.66182692,,2021,501.0196773,291.7696876,29.62501051,188.5527539,12.81767673,28.01662646,165.512081,15.74844645,96.45176411,71.66182692,,501.0196773,OK,550.7817552,OK,,291.7696876,29.62501051,188.5527539,12.81767673,28.01662646 +2022,505.984400,296.412932,30.220434,193.573396,13.116658,28.327932,172.738248,16.467872,96.091346,70.481967,,2022,28.58766203,0,0.742220179,11.36298858,8.200525603,8.281927669,0,0,0,0,,2022,484.1819982,299.6218216,29.76855932,184.8386772,5.096842498,20.53779527,174.5633507,16.71284847,96.97742323,71.33941083,,2022,512.7696602,299.6218216,30.51077949,196.2016658,13.2973681,28.81972294,174.5633507,16.71284847,96.97742323,71.33941083,,512.7696602,OK,568.4513579,OK,,299.6218216,30.51077949,196.2016658,13.2973681,28.81972294 +2023,516.730046,303.753218,31.031952,200.735951,13.567074,29.044208,181.475083,17.422039,96.441413,70.019858,,2023,28.44776422,0,0.780097913,10.5810231,8.538564419,8.548078793,0,0,0,0,,2023,496.5398302,307.6852053,30.60500628,193.3980357,5.251087585,21.09965737,183.7190473,17.7318442,97.50075012,71.03742206,,2023,524.9875944,307.6852053,31.3851042,203.9790588,13.789652,29.64773616,183.7190473,17.7318442,97.50075012,71.03742206,,524.9875944,OK,586.4867565,OK,,307.6852053,31.3851042,203.9790588,13.789652,29.64773616 +2024,527.819784,311.241709,31.828865,207.973221,14.026259,29.775688,190.282334,18.428485,96.780043,69.570969,,2024,28.32097352,0,0.818806635,9.791133171,8.887704213,8.823329499,0,0,0,0,,2024,509.3605535,315.9699606,31.43223265,202.105018,5.407347562,21.67806723,192.9880044,18.8126547,98.02469752,70.75700464,,2024,537.6815271,315.9699606,32.25103928,211.8961511,14.29505178,30.50139673,192.9880044,18.8126547,98.02469752,70.75700464,,537.6815271,OK,604.9135996,OK,,315.9699606,32.25103928,211.8961511,14.29505178,30.50139673 +2025,539.251320,318.881542,32.613200,215.291657,14.494440,30.522758,199.164220,19.493379,97.108205,69.135301,,2025,28.20868682,0,0.858385024,8.993870519,9.248480947,9.10795033,0,0,0,0,,2025,522.6470045,324.4841147,32.25303103,210.968925,5.565498466,22.2733215,202.37832,19.96245418,98.55139636,70.49853825,,2025,550.8556914,324.4841147,33.11141606,219.9627955,14.81397941,31.38127183,202.37832,19.96245418,98.55139636,70.49853825,,550.8556914,OK,623.7535776,OK,,324.4841147,33.11141606,219.9627955,14.81397941,31.38127183 +2026,551.022357,326.675853,33.386983,222.697712,14.971846,31.285806,208.124962,20.622889,97.426867,68.712852,,2026,28.11238591,0,0.898879154,8.189963416,9.621319691,9.402223652,0,0,0,0,,2026,536.4002162,333.233928,33.06965674,219.9981841,5.725519442,22.88578648,211.8955401,21.18855721,99.08178626,70.26176711,,2026,564.5126022,333.233928,33.9685359,228.1881476,15.34683913,32.28801013,211.8955401,21.18855721,99.08178626,70.26176711,,564.5126022,OK,643.0254607,OK,,333.233928,33.9685359,228.1881476,15.34683913,32.28801013 +2027,563.130602,334.627776,34.152240,230.197839,15.458702,32.065216,217.168781,21.823181,97.736997,68.303625,,2027,28.03278038,0,0.940334032,7.380011667,10.00630441,9.706130267,0,0,0,0,,2027,550.6105134,342.2191922,33.88377717,229.1967033,5.887387929,23.51549995,221.542377,22.49780325,99.61506179,70.0447787,,2027,578.6432938,342.2191922,34.8241112,236.5767149,15.89369234,33.22163022,221.542377,22.49780325,99.61506179,70.0447787,,578.6432938,OK,662.7353409,OK,,342.2191922,34.8241112,236.5767149,15.89369234,33.22163022 +2028,575.573757,342.740449,34.910995,237.798491,15.955235,32.861374,226.299896,23.100425,98.039562,67.907617,,2028,27.96978523,0,0.982791478,6.564523406,10.40320714,10.0192632,0,0,0,0,,2028,565.2568167,351.4333865,34.69693119,238.5633566,6.050980598,24.16201645,231.3211153,23.8962857,100.1495401,69.84439574,,2028,593.2266019,351.4333865,35.67972267,245.12788,16.45418774,34.18127965,231.3211153,23.8962857,100.1495401,69.84439574,,593.2266019,OK,682.8764565,OK,,351.4333865,35.67972267,245.12788,16.45418774,34.18127965 +2029,588.349528,351.017006,35.665276,245.506121,16.461674,33.674668,235.522527,24.460789,98.335531,67.524829,,2029,27.92304623,0,1.026293912,5.744212601,10.81157211,10.3409676,0,0,0,0,,2029,580.3101483,360.8649718,35.51035418,248.0930438,6.21615446,24.82460501,241.2325402,25.38954285,100.6826263,69.65664487,,2029,608.2331946,360.8649718,36.5366481,253.8372564,17.02772657,35.16557262,241.2325402,25.38954285,100.6826263,69.65664487,,608.2331946,OK,703.4321754,OK,,360.8649718,36.5366481,253.8372564,17.02772657,35.16557262 +2030,601.455620,359.460585,36.417108,253.327182,16.978245,34.505482,244.840896,25.910440,98.625871,67.155262,,2030,27.89309567,0,1.070900755,4.920283448,11.23111764,10.67079383,0,0,0,0,,2030,595.748018,370.505404,36.32541818,257.7828348,6.382833958,25.50279295,251.2781911,26.9834337,101.2124927,69.47869045,,2030,623.6411137,370.505404,37.39631893,262.7031183,17.6139516,36.17358677,251.2781911,26.9834337,101.2124927,69.47869045,,623.6411137,OK,724.3923795,OK,,370.505404,37.39631893,262.7031183,17.6139516,36.17358677 +2031,614.889736,368.074320,37.168516,261.268125,17.505175,35.354203,254.259221,27.455546,98.911552,66.798915,,2031,27.8815934,0,1.116669714,4.0943572,11.66193732,11.00862917,0,0,0,0,,2031,611.5588713,380.3525371,37.1438447,267.6340387,6.550977751,26.19650217,261.4598744,28.68457206,101.7387164,69.30953425,,2031,639.4404647,380.3525371,38.26051442,271.7283959,18.21291507,37.20513134,261.4598744,28.68457206,101.7387164,69.30953425,,639.4404647,OK,745.7594939,OK,,380.3525371,38.26051442,271.7283959,18.21291507,37.20513134 +2032,628.649582,376.861347,37.921528,269.335405,18.042691,36.221216,263.781724,29.102276,99.193540,66.455789,,2032,27.89127648,0,1.163710721,3.26830265,12.10443238,11.35483073,0,0,0,0,,2032,627.745508,390.4115931,37.96772062,277.6545638,6.720697048,26.90624238,271.7829258,30.50053609,102.2623126,69.14974796,,2032,655.6367845,390.4115931,39.13143134,280.9228665,18.82512943,38.26107311,271.7829258,30.50053609,102.2623126,69.14974796,,655.6367845,FALSE,767.5520934,OK,,390.4115931,39.13143134,280.9228665,18.82512943,38.26107311 +2033,642.732861,385.824803,38.678168,277.535474,18.591020,37.106909,273.412624,30.856798,99.472805,66.125882,,2033,27.92521979,0,1.212210603,2.443999192,12.55900085,11.71000915,0,0,0,0,,2033,644.3177041,400.6902728,38.7991903,287.8562967,6.892276777,27.63287607,282.2571018,32.43937141,102.7846415,69.0001034,,2033,672.2429239,400.6902728,40.0114009,290.3002958,19.45127763,39.34288521,282.2571018,32.43937141,102.7846415,69.0001034,,672.2429239,OK,789.7961324,OK,,400.6902728,40.0114009,290.3002958,19.45127763,39.34288521 +2034,657.137279,394.967824,39.440462,285.874784,19.150390,38.011666,283.156142,32.725278,99.750313,65.809196,,2034,27.98694975,0,1.262408483,1.623290642,13.02617207,12.07507855,0,0,0,0,,2034,661.2940098,411.2006855,39.64058487,298.2559155,7.066119354,28.37765875,292.8957492,34.50989178,103.3077728,68.86202446,,2034,689.2809596,411.2006855,40.90299335,299.8792062,20.09229142,40.45273731,292.8957492,34.50989178,103.3077728,68.86202446,,689.2809596,OK,812.5279137,OK,,411.2006855,40.90299335,299.8792062,20.09229142,40.45273731 +2035,671.860541,404.293544,40.210436,294.359788,19.721028,38.935875,293.016498,34.713887,100.027033,65.505730,,2035,28.07975173,0,1.314530802,0.807888809,13.50645788,12.45087423,0,0,0,0,,2035,678.6903722,421.9541436,40.49417166,308.8693306,7.242569332,29.14174433,303.7110001,36.72107193,103.8335029,68.73669861,,2035,706.7701239,421.9541436,41.80870246,309.6772194,20.74902722,41.59261857,303.7110001,36.72107193,103.8335029,68.73669861,,706.7701239,OK,835.7817113,OK,,421.9541436,41.80870246,309.6772194,20.74902722,41.59261857 +2036,686.900350,413.805101,40.990116,302.996940,20.303160,39.879920,302.997911,36.828790,100.303933,65.215484,,2036,28.20617921,0,1.368734882,-0.000588169,14.00019493,12.83783757,0,0,0,0,,2036,696.5105872,432.956838,41.3621362,319.7065545,7.421794138,29.92577347,314.7112177,39.08118448,104.3629304,68.62436975,,2036,724.7167664,432.956838,42.73087108,319.7059663,21.42198907,42.76361103,314.7112177,39.08118448,104.3629304,68.62436975,,724.7167664,OK,859.5792755,OK,,432.956838,42.73087108,319.7059663,21.42198907,42.76361103 +2037,702.254412,423.505629,41.781528,311.792692,20.897014,40.844188,313.104603,39.076158,100.581981,64.938459,,2037,28.36865005,0,1.425152326,-0.800501078,14.50772957,13.23626922,0,0,0,0,,2037,714.7545959,444.2131529,42.24642178,330.7757659,7.603874102,30.73021531,325.9006369,41.59864918,104.8965606,68.52512755,,2037,743.123246,444.2131529,43.67157411,329.9752649,22.11160368,43.96648454,325.9006369,41.59864918,104.8965606,68.52512755,,743.123246,OK,883.9380801,OK,,444.2131529,43.67157411,329.9752649,22.11160368,43.96648454 +2038,717.920430,433.398266,42.586698,320.753497,21.502817,41.829065,323.340794,41.462156,100.862146,64.674653,,2038,28.57014191,0,1.483966556,-1.590232781,15.02963612,13.64677202,0,0,0,0,,2038,733.4319453,455.7317674,43.14880225,342.0904028,7.788973822,31.5559487,337.2827509,44.28328575,105.4350296,68.4399016,,2038,762.0020873,455.7317674,44.6327688,340.5001701,22.81860994,45.20272072,337.2827509,44.28328575,105.4350296,68.4399016,,762.0020873,OK,908.8860369,OK,,455.7317674,44.6327688,340.5001701,22.81860994,45.20272072 +2039,733.896110,443.486146,43.407652,329.885808,22.120796,42.834937,333.710703,43.992955,101.145394,64.424068,,2039,28.81368992,0,1.545369102,-2.368249026,15.56657145,14.06999839,0,0,0,0,,2039,752.5539456,467.5223157,44.07091292,353.6651737,7.977246082,32.40392658,348.858801,47.14568175,105.978836,68.36979929,,2039,781.3676355,467.5223157,45.61628202,351.2969247,23.54381753,46.47392497,348.858801,47.14568175,105.978836,68.36979929,,781.3676355,OK,934.4532649,OK,,467.5223157,45.61628202,351.2969247,23.54381753,46.47392497 +2040,750.179155,453.772405,44.246414,339.196077,22.751178,43.862189,344.218550,46.674720,101.432694,64.186704,,2040,29.10224036,0,1.609547202,-3.133064764,16.11916519,14.50659273,0,0,0,0,,2040,772.1311204,479.5948096,45.0145704,365.5145545,8.168835841,33.27508696,360.6305824,50.19657989,106.5288031,68.31581553,,2040,801.2333607,479.5948096,46.6241176,362.3814897,24.28800103,47.78167969,360.6305824,50.19657989,106.5288031,68.31581553,,801.2333607,OK,960.6700976,OK,,479.5948096,46.6241176,362.3814897,24.28800103,47.78167969 +2041,766.767272,464.260180,45.105012,348.690757,23.394190,44.911209,354.868557,49.513622,101.725015,63.962559,,2041,29.43858943,0,1.676694314,-3.883163334,16.68792615,14.9571323,0,0,0,0,,2041,792.1712012,491.9581859,45.98185234,377.6519147,8.363880028,34.1702826,372.6042089,53.4463284,107.0860633,68.27850316,,2041,821.6097907,491.9581859,47.65854665,373.7687514,25.05180618,49.1274149,372.6042089,53.4463284,107.0860633,68.27850316,,821.6097907,OK,987.564705,OK,,491.9581859,47.65854665,373.7687514,25.05180618,49.1274149 +2042,783.658163,474.952607,45.985471,358.376301,24.050060,45.982382,365.664943,52.515827,102.023323,63.751635,,2042,29.8255348,0,1.746982559,-4.616957524,17.27332766,15.4221821,0,0,0,0,,2042,812.6805162,504.6223194,46.97524024,390.0896083,8.562510931,35.09033114,384.786246,56.90513991,107.652381,68.25840435,,2042,842.506051,504.6223194,48.7222228,385.4726507,25.83583859,50.51251324,384.786246,56.90513991,107.652381,68.25840435,,842.506051,OK,1015.165545,OK,,504.6223194,48.7222228,385.4726507,25.83583859,50.51251324 +2043,800.849534,485.852820,46.889817,368.259162,24.719014,47.076094,376.611929,55.687503,102.328588,63.553931,,2043,30.26604006,0,1.82055443,-5.332824414,17.87593888,15.90237117,0,0,0,0,,2043,833.6667146,517.5999302,47.9975237,402.840127,8.764854303,36.03610706,397.1787101,60.5838123,108.2300911,68.25647859,,2043,863.9327546,517.5999302,49.81807813,397.5073026,26.64079318,51.93847823,397.1787101,60.5838123,108.2300911,68.25647859,,863.9327546,OK,1043.504582,OK,,517.5999302,49.81807813,397.5073026,26.64079318,51.93847823 +2044,818.339090,496.963956,47.820076,378.345792,25.401280,48.192731,387.713734,59.034819,102.641777,63.369447,,2044,30.76315555,0,1.897536399,-6.029069601,18.49634497,16.39834379,0,0,0,0,,2044,855.1371764,530.9052273,49.05180866,415.9155426,8.971027219,37.00849082,409.7821869,64.49332834,108.8219753,68.27376853,,2044,885.900332,530.9052273,50.94934506,409.886473,27.46737219,53.40683461,409.7821869,64.49332834,108.8219753,68.27376853,,885.900332,OK,1072.615252,OK,,530.9052273,50.94934506,409.886473,27.46737219,53.40683461 +2045,836.124534,508.289152,48.778273,388.642645,26.097085,49.332679,398.974579,62.563943,102.963859,63.198183,,2045,31.32000326,0,1.978073484,-6.703919443,19.13511791,16.9107313,0,0,0,0,,2045,877.0988037,544.5521144,50.14120018,429.328097,9.181132317,38.00836545,422.5988459,68.6448307,109.4306774,68.31113265,,2045,908.418807,544.5521144,52.11927367,422.6241776,28.31625023,54.91909676,422.5988459,68.6448307,109.4306774,68.31113265,,908.418807,OK,1102.530913,OK,,544.5521144,52.11927367,422.6241776,28.31625023,54.91909676 +2046,854.203572,519.831542,49.766434,399.156173,26.806655,50.496325,410.398684,66.281042,103.295800,63.040140,,2046,31.93978931,0,2.062368248,-7.355539312,19.79279839,17.44016199,0,0,0,0,,2046,899.5584828,558.5522861,51.2684079,443.0912036,9.395275225,39.03663238,435.6332541,73.04996638,110.0580165,68.36904597,,2046,931.4982721,558.5522861,53.33077615,435.7356643,29.18807362,56.47679437,435.6332541,73.04996638,110.0580165,68.36904597,,931.4982721,OK,1133.283594,OK,,558.5522861,53.33077615,435.7356643,29.18807362,56.47679437 +2047,872.573908,531.594263,50.786586,409.892829,27.530218,51.684053,421.990269,70.192284,103.638570,62.895317,,2047,32.62577276,0,2.150637267,-7.981982651,20.46990192,17.98721622,0,0,0,0,,2047,922.5218906,572.9169372,52.43616246,457.2181024,9.613529757,40.09417699,448.8939832,77.72023057,110.7057749,68.4478158,,2047,955.1476633,572.9169372,54.58679973,449.2361198,30.08343168,58.08139321,448.8939832,77.72023057,110.7057749,68.4478158,,955.1476633,OK,1164.904682,OK,,572.9169372,54.58679973,449.2361198,30.08343168,58.08139321 +2048,891.233246,543.580450,51.840754,420.859066,28.268001,52.896251,433.753555,74.303839,103.993136,62.763714,,2048,33.38127955,0,2.243060385,-8.581135136,21.1669436,18.55241071,0,0,0,0,,2048,945.9928213,587.6593034,53.64775571,471.7204387,9.835919999,41.18184379,462.3927386,82.6663911,111.376611,68.54788201,,2048,979.3741009,587.6593034,55.8908161,463.1393036,31.0028636,59.7342545,462.3927386,82.6663911,111.376611,68.54788201,,979.3741009,OK,1197.426541,OK,,587.6593034,55.8908161,463.1393036,31.0028636,59.7342545 +2049,910.179292,555.793240,52.930963,432.061337,29.020232,54.133303,445.692762,78.621873,104.360467,62.645332,,2049,34.20972743,0,2.339815301,-9.150728443,21.88442598,19.13621459,0,0,0,0,,2049,969.9737436,602.793088,54.90670894,486.6091506,10.0624405,42.30045299,476.1446777,87.89874293,112.0734232,68.6696347,,2049,1004.183471,602.793088,57.24652424,477.4584222,31.94686648,61.43666758,476.1446777,87.89874293,112.0734232,68.6696347,,1004.183471,OK,1230.881569,OK,,602.793088,57.24652424,477.4584222,31.94686648,61.43666758 +2050,929.409749,568.235768,54.059240,443.506093,29.787136,55.395597,457.812109,83.152554,104.741530,62.540169,,2050,35.11467666,0,2.441104681,-9.688386438,22.62284746,19.73911096,0,0,0,0,,2050,994.4670581,618.3314468,56.2164984,501.8955676,10.2930956,43.45083672,490.1653609,93.42780928,112.7988505,68.8133499,,2050,1029.581735,618.3314468,58.65760308,492.2071811,32.91594306,63.18994767,490.1653609,93.42780928,112.7988505,68.8133499,,1029.581735,OK,1265.302122,OK,,618.3314468,58.65760308,492.2071811,32.91594306,63.18994767 +2051,948.922322,580.911171,55.227611,455.199789,30.568942,56.683518,470.115817,87.902051,105.137294,62.448227,,2051,36.09991289,0,2.547177912,-10.19169777,23.38274106,20.36169169,0,0,0,0,,2051,1019.476845,634.2873365,57.58038158,517.5923641,10.52794508,44.63390812,504.4643192,99.26536306,113.555039,68.97932944,,2051,1055.576758,634.2873365,60.12755949,507.4006663,33.91068614,64.99559981,504.4643192,99.26536306,113.555039,68.97932944,,1055.576758,OK,1300.721848,OK,,634.2873365,60.12755949,507.4006663,33.91068614,64.99559981 +2052,968.714717,593.822583,56.438102,467.148877,31.365877,57.997453,482.608107,92.876532,105.548726,62.369505,,2052,37.16932248,0,2.658315004,-10.65814258,24.1646108,21.00453926,0,0,0,0,,2052,1045.006629,650.6718181,59.00145756,533.7128124,10.76705086,45.85056554,519.0533433,105.4234776,114.3436894,69.16759989,,2052,1082.175952,650.6718181,61.65977256,523.0546699,34.93166166,66.8551048,519.0533433,105.4234776,114.3436894,69.16759989,,1082.175952,OK,1337.173027,OK,,650.6718181,61.65977256,523.0546699,34.93166166,66.8551048 +2053,988.784637,606.973141,57.692737,479.359810,32.178167,59.337787,495.293198,98.082164,105.976794,62.304004,,2053,38.32678433,0,2.7747989,-11.0849958,24.96888408,21.66809715,0,0,0,0,,2053,1071.056994,667.4934849,60.48291071,550.2694686,11.01041763,47.10159627,533.9551507,111.9131322,115.166415,69.37777571,,2053,1109.383778,667.4934849,63.25770961,539.1844728,35.97930171,68.76969342,533.9551507,111.9131322,115.166415,69.37777571,,1109.383778,OK,1374.684662,OK,,667.4934849,63.25770961,539.1844728,35.97930171,68.76969342 +2054,1009.129787,620.365981,58.993544,491.839040,33.006040,60.704906,508.175310,103.525116,106.422467,62.251722,,2054,39.57625551,0,2.896930921,-11.46938725,25.79595307,22.35275878,0,0,0,0,,2054,1097.627188,684.7589592,62.02787854,567.2749266,11.25803512,48.38774381,549.1978132,118.7449887,116.02458,69.60922776,,2054,1137.203443,684.7589592,64.92480946,555.8055393,37.05398819,70.74050258,549.1978132,118.7449887,116.02458,69.60922776,,1137.203443,OK,1413.283799,OK,,684.7589592,64.92480946,555.8055393,37.05398819,70.74050258 +2055,1029.747871,634.004239,60.342547,504.593021,33.849722,62.099196,521.258665,109.211556,106.886713,62.212661,,2055,40.9218705,0,3.025035501,-11.808363,26.64623701,23.05896099,0,0,0,0,,2055,1124.716746,702.4751079,63.63952657,584.7420284,11.50991282,49.70979298,564.8069519,125.9301623,116.9195161,69.86143422,,2055,1165.638616,702.4751079,66.66456207,572.9336654,38.15614984,72.76875397,564.8069519,125.9301623,116.9195161,69.86143422,,1165.638616,OK,1452.998239,OK,,702.4751079,66.66456207,572.9336654,38.15614984,72.76875397 +2056,1050.636595,647.891050,61.741774,517.628205,34.709442,63.521044,534.547481,115.147651,107.370499,62.186820,,2056,42.36801651,0,3.159444879,-12.09895777,27.52024669,23.78728271,0,0,0,0,,2056,1152.32799,720.6520319,65.32120964,602.6848772,11.76610379,51.06867148,580.8030703,133.4807333,117.8529032,70.13432306,,2056,1194.696007,720.6520319,68.48065452,590.5859194,39.28635048,74.85595419,580.8030703,133.4807333,117.8529032,70.13432306,,1194.696007,OK,1493.86091,OK,,720.6520319,68.48065452,590.5859194,39.28635048,74.85595419 +2057,1071.793662,662.029551,63.193248,530.951044,35.585426,64.970835,548.045980,121.339570,107.874794,62.174200,,2057,43.91927703,0,3.300532887,-12.33811952,28.41851171,24.53835194,0,0,0,0,,2057,1180.46275,739.2997657,67.07623763,621.1171728,12.02668684,52.46534099,597.1985524,141.4097571,118.8262433,70.42789434,,2057,1224.382027,739.2997657,70.37677051,608.7790533,40.44519855,77.00369293,597.1985524,141.4097571,118.8262433,70.42789434,,1224.382027,OK,1535.904481,OK,,739.2997657,70.37677051,608.7790533,40.44519855,77.00369293 +2058,1093.216778,676.422877,64.698998,544.567993,36.477900,66.448955,561.758381,127.793481,108.400566,62.174799,,2058,45.58032529,0,3.448733993,-12.52261771,29.34149176,25.31271725,0,0,0,0,,2058,1209.119001,758.4240579,68.90764537,640.0508433,12.29173423,53.90066836,614.0008349,149.7307147,119.8403432,70.74175567,,2058,1254.699326,758.4240579,72.35637936,627.5282256,41.63322599,79.21338561,614.0008349,149.7307147,119.8403432,70.74175567,,1254.699326,OK,1579.155274,OK,,758.4240579,72.35637936,627.5282256,41.63322599,79.21338561 +2059,1114.903646,691.074164,66.261047,558.485503,37.387093,67.955791,575.688905,134.515551,108.948782,62.188619,,2059,47.35598623,0,3.604528288,-12.64910621,30.28963646,26.11092769,0,0,0,0,,2059,1238.293206,778.0290188,70.81831922,659.4970216,12.56132996,55.37550515,631.210955,158.4578904,120.8956886,71.07544253,,2059,1285.649192,778.0290188,74.42284751,646.8479154,42.85096642,81.48643284,631.210955,158.4578904,120.8956886,71.07544253,,1285.649192,OK,1623.637181,OK,,778.0290188,74.42284751,646.8479154,42.85096642,81.48643284 +2060,1136.851972,705.986548,67.881423,572.710027,38.313232,69.491729,589.841772,141.511950,109.520411,62.215659,,2060,49.25124481,0,3.768404452,-12.71417775,31.26342984,26.93358828,0,0,0,0,,2060,1267.983016,798.1194468,72.81121777,679.4678168,12.83557105,56.89076867,648.8305349,167.6061031,121.9928609,71.42861832,,2060,1317.234261,798.1194468,76.57962222,666.7536391,44.09900089,83.82435694,648.8305349,167.6061031,121.9928609,71.42861832,,1317.234261,OK,1669.376066,OK,,798.1194468,76.57962222,666.7536391,44.09900089,83.82435694 +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +Table 4: Total REF2 Water Heating by Economic Development Status (TWh Therms),,,,,,,Table 5: Total REF1 Water Heating by Economic Development Status (TWh Therms),,,,,,,,,,,,,,,"Table 6: Change in Water Heating by MDC vs. LLDC Regions, REF1-REF2 (TWh Therms)",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,LLDC+HighNRR,China,MDC + LAC + EE,Total Electricity Demand in Countries with Higher Educational Attainment (TWh), --> % LLDC,,,"LLDC with low educational attainment, excluding China","MDC + EE + LAC with low educational attainment, excluding China",China,"LLDC with higher educational attainment, excluding China",MDC + EE + LAC with higher educational attainment,,"Total Electricity Demand in Countries with Low Educational Attainment (TWh), exluding China", --> % LLDC,Total Electricity Demand in Countries with Higher Educational Attainment (TWh), --> % LLDC,Total Electricity Demand (TWh), --> % LLDC,,,LLDC,China,MDC + EE +LAC,Total change in REF1-REF2,% LLDC with higher educational attainment,% LLDC with Low Educational Attainment,% LLDC,% MDC + LAC + EE + China,,"% LLDC with low educational attainment, TWh)","% LLDC with higher educational attainment, TWh)",,,,,,,,,,,,,,,,,,,,,,,,, +2014,37.8643364,110.7785714,288.3836903,437.0265982,0.086640805,,2014,0,0,110.7785714,37.8643364,288.3836903,,0,,437.0265982,0.086640805,437.0265982,0,,,0,0,0,0,0,0,0,0,,0,1,,,,,,,,,,,,,,,,,,,,,,,,, +2015,41.97812106,113.1975449,296.5853072,451.7609731,0.092921088,,2015,22.70297472,7.157135603,113.1975449,19.27514635,289.4281716,,29.86011032,0.760311147,421.9008628,0.045686435,451.7609731,0.066097144,,,0,0,0,0,0,0,0,0,,0.540828749,0.459171251,,,,,,,,,,,,,,,,,,,,,,,,, +2016,40.83165743,121.559636,304.5670798,466.9583732,0.08744175,,2016,22.24686509,7.394005025,121.6675588,18.65128359,297.4358586,,29.64087011,0.750546964,437.7547009,0.042606701,467.395571,0.063417097,,,0.066491256,0.107922755,0.262783814,0.437197826,0.069357211,0.082727846,0.152085057,0.847914943,,0.543957754,0.456042246,,,,,,,,,,,,,,,,,,,,,,,,, +2017,39.6810433,129.9626013,312.6588244,482.302469,0.082274187,,2017,21.79623001,7.641804247,130.2415047,18.04535442,305.671474,,29.43803425,0.740410512,453.9583331,0.039751125,483.3963674,0.060898336,,,0.160541132,0.278903346,0.654453898,1.093898376,0.06647191,0.080288644,0.146760554,0.853239446,,0.54707237,0.45292763,,,,,,,,,,,,,,,,,,,,,,,,, +2018,38.52873838,138.4106611,320.8660887,497.8054881,0.077397175,,2018,21.34914761,7.900132467,138.9203864,17.45946488,314.1293049,,29.24928007,0.729903353,470.5091562,0.037107599,499.7584363,0.058526836,,,0.2798741,0.509725328,1.163348702,1.952948131,0.064472545,0.078835972,0.143308517,0.856691483,,0.550113654,0.449886346,,,,,,,,,,,,,,,,,,,,,,,,, +2019,37.37720238,146.9080354,329.1944204,513.4796583,0.072791983,,2019,20.90299326,8.16794447,147.695512,16.89596251,322.7902441,,29.07093773,0.719034021,487.3817185,0.034666796,516.4526563,0.056289647,,,0.421753388,0.787476511,1.763768094,2.972997994,0.063411365,0.078449945,0.141861309,0.858138691,,0.553004517,0.446995483,,,,,,,,,,,,,,,,,,,,,,,,, +2020,36.228895,155.4589446,337.6493674,529.3372071,0.068441996,,2020,20.45631165,8.444446497,156.5590367,16.35793897,331.6403444,,28.90075815,0.707812285,504.55732,0.032420378,533.4580782,0.05417625,,,0.585355612,1.100092023,2.435423486,4.12087112,0.063116568,0.078930003,0.142046571,0.857953429,,0.555662856,0.444337144,,,,,,,,,,,,,,,,,,,,,,,,, +2021,35.08627595,164.0676088,346.2364773,545.3903621,0.064332409,,2021,20.00940009,8.729661615,165.512081,15.84894956,340.681663,,28.73906171,0.696244028,522.0426935,0.030359489,550.7817552,0.052178674,,,0.772073703,1.444472113,3.174847299,5.391393115,0.063294788,0.079910074,0.143204861,0.856795139,,0.558012298,0.441987702,,,,,,,,,,,,,,,,,,,,,,,,, +2022,33.95180494,172.7382483,354.9612979,561.6513511,0.060449966,,2022,19.56351419,9.024147848,174.5633507,15.37216897,349.9281762,,28.58766203,0.684334178,539.8636959,0.028474167,568.4513579,0.050290428,,,0.983878219,1.825102419,3.991026203,6.80000684,0.063664584,0.081023244,0.144687828,0.855312172,,0.559986593,0.440013407,,,,,,,,,,,,,,,,,,,,,,,,, +2023,32.82794166,181.4750831,363.8293768,578.1324017,0.05678274,,2023,19.11958752,9.328176706,183.7190473,14.93007596,359.389869,,28.44776422,0.672094558,558.0389922,0.026754539,586.4867565,0.048505382,,,1.22172182,2.243964135,4.888668845,8.354354799,0.064122229,0.082115494,0.146237723,0.853762277,,0.561520601,0.438479399,,,,,,,,,,,,,,,,,,,,,,,,, +2024,31.71714582,190.2823336,372.8462619,594.8457414,0.053319951,,2024,18.67883738,9.642136134,192.9880044,14.52436115,369.0802605,,28.32097352,0.659540795,576.592626,0.025189988,604.9135996,0.046818213,,,1.486052707,2.705670741,5.876134701,10.06785815,0.06456754,0.083036119,0.14760366,0.85239634,,0.562561386,0.437438614,,,,,,,,,,,,,,,,,,,,,,,,, +2025,30.62187714,199.1642199,382.0175009,611.803598,0.050051809,,2025,18.24235147,9.966335354,202.37832,14.15610345,379.0104673,,28.20868682,0.646692687,595.5448908,0.023770002,623.7535776,0.045224088,,,1.776577774,3.214100102,6.95930171,11.94997959,0.064958575,0.083709275,0.14866785,0.85133215,,0.56306239,0.43693761,,,,,,,,,,,,,,,,,,,,,,,,, +2026,29.5445953,208.1249623,391.3486415,629.0181991,0.046969381,,2026,17.81128311,10.30110281,211.8955401,13.82816346,389.1893712,,28.11238591,0.633574225,614.9130748,0.022487997,643.0254607,0.043718931,,,2.094851261,3.770577849,8.141832534,14.00726164,0.065363542,0.084191119,0.149554661,0.850445339,,0.56294547,0.43705453,,,,,,,,,,,,,,,,,,,,,,,,, +2027,28.48776003,217.1687808,400.8452314,646.5017723,0.044064473,,2027,17.38631608,10.6464643,221.542377,13.54171425,399.6184693,,28.03278038,0.620213758,634.7025605,0.021335528,662.7353409,0.042298605,,,2.440270294,4.37359611,9.419702218,16.23356862,0.065818096,0.084504384,0.15032248,0.84967752,,0.562154004,0.437845996,,,,,,,,,,,,,,,,,,,,,,,,, +2028,27.45383102,226.2998958,410.5128184,664.2665452,0.04132954,,2028,16.96773055,11.00205468,231.3211153,13.29322184,410.2923341,,27.96978523,0.606645007,654.9066713,0.020297887,682.8764565,0.040958778,,,2.80712137,5.021219486,10.78157043,18.60991128,0.066262001,0.084578125,0.150840126,0.849159874,,0.560713699,0.439286301,,,,,,,,,,,,,,,,,,,,,,,,, +2029,26.44526798,235.5225275,420.3569502,682.3247456,0.038757598,,2029,16.55578471,11.36726151,241.2325402,13.07665807,421.199931,,27.92304623,0.592907542,675.5091292,0.019358226,703.4321754,0.039695435,,,3.1871748,5.710012726,12.2102423,21.10742983,0.066634607,0.084363161,0.150997768,0.849002232,,0.558704688,0.441295312,,,,,,,,,,,,,,,,,,,,,,,,, +2030,25.46453062,244.8408959,430.3831745,700.688601,0.036342151,,2030,16.15140109,11.74169458,251.2781911,12.88747772,432.3336151,,27.89309567,0.57904656,696.4992839,0.018503217,724.3923795,0.038505507,,,3.574348194,6.437295141,13.69213516,23.70377849,0.066921761,0.083870578,0.150792339,0.849207661,,0.556199197,0.443800803,,,,,,,,,,,,,,,,,,,,,,,,, +2031,24.51407863,254.2592214,440.5970391,719.3703391,0.034077133,,2031,15.75629452,12.12529888,261.4598744,12.72514215,443.692884,,27.8815934,0.565114565,717.8779005,0.017726054,745.7594939,0.037386843,,,3.967358033,7.200652948,15.22114373,26.38915471,0.067170204,0.08317027,0.150340474,0.849659526,,0.553212772,0.446787228,,,,,,,,,,,,,,,,,,,,,,,,, +2032,23.59637173,263.7817241,451.0040917,738.3821876,0.031956854,,2032,15.37273503,12.51854145,271.7829258,12.59233509,455.2855561,,27.89127648,0.551166421,739.6608169,0.017024472,767.5520934,0.036337959,,,4.368698395,8.001201654,16.80000579,29.16990584,0.067438421,0.082328891,0.149767312,0.850232688,,0.549712014,0.450287986,,,,,,,,,,,,,,,,,,,,,,,,, +2033,22.71386962,273.4126243,461.6098801,757.736374,0.029975953,,2033,15.00300004,12.92221975,282.2571018,12.49147165,467.1223392,,27.92521979,0.537256292,761.8709126,0.016395785,789.7961324,0.035357504,,,4.780602076,8.844477502,18.43467883,32.05975841,0.06774708,0.08136827,0.149115349,0.850884651,,0.545673334,0.454326666,,,,,,,,,,,,,,,,,,,,,,,,, +2034,21.86903201,283.1561421,472.4199519,777.445126,0.028129358,,2034,14.64946271,13.33748704,292.8957492,12.42628569,479.2189291,,27.98694975,0.523439061,784.540964,0.015838925,812.5279137,0.034444293,,,5.206716386,9.739607145,20.13646419,35.08278772,0.068113107,0.080299169,0.148412276,0.851587724,,0.541054766,0.458945234,,,,,,,,,,,,,,,,,,,,,,,,, +2035,21.06431859,293.0164977,483.439855,797.5206713,0.026412254,,2035,14.31434669,13.76540503,303.7110001,12.40089983,491.5900596,,28.07975173,0.509774689,807.7019595,0.015353312,835.7817113,0.033596992,,,5.65092793,10.69450242,21.91560965,38.26104,0.068557822,0.079136228,0.147694049,0.852305951,,0.535811889,0.464188111,,,,,,,,,,,,,,,,,,,,,,,,, +2036,20.30218909,302.9979113,494.675137,817.9752374,0.024820053,,2036,13.99960676,14.20657245,314.7112177,12.4171309,504.2447477,,28.20617921,0.4963312,831.3730963,0.01493569,859.5792755,0.032813936,,,6.114548575,11.71330641,23.77618313,41.60403812,0.069082968,0.077887106,0.146970074,0.853029926,,0.529952144,0.470047856,,,,,,,,,,,,,,,,,,,,,,,,, +2037,19.58510319,313.1046032,506.1313457,838.8210521,0.023348369,,2037,13.7072285,14.66142155,325.9006369,12.47900312,517.18979,,28.36865005,0.483182262,855.5694301,0.014585611,883.9380801,0.032093481,,,6.601128429,12.79603368,25.7198659,45.11702801,0.069724368,0.076586874,0.146311243,0.853688757,,0.52345174,0.47654826,,,,,,,,,,,,,,,,,,,,,,,,, +2038,18.91552061,323.3407936,517.8140288,860.070343,0.021992993,,2038,13.43940334,15.13073857,337.2827509,12.59662571,530.4365183,,28.57014191,0.4704003,880.315895,0.014309211,908.8860369,0.03143424,,,7.120508433,13.9419574,27.7532281,48.81569393,0.070571771,0.075293377,0.145865148,0.854134852,,0.516184834,0.483815166,,,,,,,,,,,,,,,,,,,,,,,,, +2039,18.29590105,333.7107025,529.7287341,881.7353376,0.020749878,,2039,13.19832243,15.6153675,348.858801,12.78361879,543.9971551,,28.81368992,0.458057349,905.6395749,0.01411557,934.4532649,0.030834811,,,7.686040162,15.14809848,29.88378859,52.71792723,0.071734246,0.074061322,0.145795568,0.854204432,,0.507980613,0.492019387,,,,,,,,,,,,,,,,,,,,,,,,, +2040,17.72870422,344.2185503,541.8810092,903.8282637,0.019615125,,2040,12.98610042,16.11613993,360.6305824,13.05280789,557.884467,,29.10224036,0.446223393,931.5678573,0.014011655,960.6700976,0.030293688,,,8.310204089,16.41203209,32.11959771,56.84183389,0.073286635,0.072912098,0.146198733,0.853801267,,0.498719081,0.501280919,,,,,,,,,,,,,,,,,,,,,,,,, +2041,17.21638983,354.8685572,554.276402,926.361349,0.018584961,,2041,12.80476282,16.63382662,372.6042089,13.4115859,572.1103208,,29.43858943,0.43496523,958.1261156,0.013997725,987.564705,0.029809277,,,8.999958893,17.73565169,34.46774548,61.20335606,0.075226909,0.071823179,0.147050088,0.852949912,,0.488426629,0.511573371,,,,,,,,,,,,,,,,,,,,,,,,, +2042,16.76141757,365.6649433,566.9204601,949.3468209,0.017655737,,2042,12.65637014,17.16916466,384.786246,13.8658732,586.6878908,,29.8255348,0.424346796,985.34001,0.014072171,1015.165545,0.029379972,,,9.760825771,19.12130274,36.93659535,65.81872386,0.077530766,0.070767852,0.148298618,0.851701382,,0.477198327,0.522801673,,,,,,,,,,,,,,,,,,,,,,,,, +2043,16.36624715,376.6119288,579.8187313,972.7969072,0.01682391,,2043,12.54311446,17.7229256,397.1787101,14.42627122,601.6335609,,30.26604006,0.414428661,1013.238542,0.014237784,1043.504582,0.029004223,,,10.60313853,20.56678127,39.53775525,70.70767505,0.080214137,0.069743255,0.149957392,0.850042608,,0.46508714,0.53491286,,,,,,,,,,,,,,,,,,,,,,,,, +2044,16.03333828,387.713734,592.9767633,996.7238356,0.016086039,,2044,12.46727536,18.29588019,409.7821869,15.10438287,616.9655268,,30.76315555,0.405266467,1041.852097,0.014497627,1072.615252,0.028680513,,,11.53831996,22.06845298,42.28464362,75.89141656,0.083289455,0.068747765,0.15203722,0.84796278,,0.452177205,0.547822795,,,,,,,,,,,,,,,,,,,,,,,,, +2045,15.76515066,398.974579,606.4001039,1021.139834,0.015438777,,2045,12.43119847,18.88880479,422.5988459,15.91038346,632.7016801,,31.32000326,0.396909233,1071.210909,0.014852709,1102.530913,0.02840737,,,12.57643127,23.6242669,45.19038092,81.39107909,0.086743547,0.067775,0.154518547,0.845481453,,0.438620487,0.561379513,,,,,,,,,,,,,,,,,,,,,,,,, +2046,15.564144,410.398684,620.0943008,1046.057129,0.014878866,,2046,12.43725908,19.50253023,435.6332541,16.85322471,648.8573264,,31.93978931,0.389397029,1101.343805,0.015302419,1133.283594,0.028183404,,,13.72633979,25.23457007,48.26555576,87.22646561,0.09054468,0.066819713,0.157364393,0.842635607,,0.424617742,0.575382258,,,,,,,,,,,,,,,,,,,,,,,,, +2047,15.43277801,421.9902693,634.0649018,1071.487949,0.014403128,,2047,12.48791927,20.13785349,448.8939832,17.93764898,665.4472766,,32.62577276,0.382762406,1132.278909,0.015842076,1164.904682,0.028007247,,,14.99279024,26.90371387,51.52022839,93.4167325,0.094620364,0.065873263,0.160493627,0.839506373,,0.410441612,0.589558388,,,,,,,,,,,,,,,,,,,,,,,,, +2048,15.37351239,433.7535551,648.3174544,1097.444522,0.014008464,,2048,12.58580846,20.79547109,462.3927386,19.16362016,682.4889029,,33.38127955,0.377031936,1164.045262,0.016462951,1197.426541,0.027877518,,,16.37591624,28.63918345,54.96691954,99.98201923,0.098861079,0.064927534,0.163788613,0.836211387,,0.39641055,0.60358945,,,,,,,,,,,,,,,,,,,,,,,,, +2049,15.38880683,445.6927615,662.8575066,1123.939075,0.013691851,,2049,12.73369753,21.4760299,476.1446777,20.52691342,700.00025,,34.20972743,0.372224466,1196.671841,0.017153335,1230.881569,0.027792867,,,17.87180412,30.45191623,58.61877324,106.9424936,0.103136293,0.063979729,0.167116022,0.832883978,,0.382846171,0.617153829,,,,,,,,,,,,,,,,,,,,,,,,, +2050,15.48112106,457.8121087,677.690606,1150.983836,0.013450338,,2050,12.93446102,22.18021564,490.1653609,22.02330231,717.9987819,,35.11467666,0.368349142,1230.187445,0.017902396,1265.302122,0.02775201,,,19.47664227,32.35325212,62.48839148,114.3182859,0.107333968,0.063038095,0.170372064,0.829627936,,0.370002534,0.629997466,,,,,,,,,,,,,,,,,,,,,,,,, +2051,15.65291478,470.115817,692.8223004,1178.591032,0.01328104,,2051,13.19104329,22.9088696,504.4643192,23.65598998,736.5016262,,36.09991289,0.365403743,1264.621935,0.018705978,1300.721848,0.027753753,,,21.19411849,34.34850212,66.58819536,122.130816,0.111411161,0.062125045,0.173536206,0.826463794,,0.357994718,0.642005282,,,,,,,,,,,,,,,,,,,,,,,,, +2052,15.90664768,482.6081066,708.2581375,1206.772892,0.013181144,,2052,13.50646822,23.66285426,519.0533433,25.42651997,755.5238412,,37.16932248,0.363376767,1300.003704,0.019558806,1337.173027,0.027796943,,,23.02634051,36.44523672,70.92855791,130.4001352,0.115323036,0.061259147,0.176582183,0.823417817,,0.346915787,0.653084213,,,,,,,,,,,,,,,,,,,,,,,,, +2053,16.24477948,495.2931976,724.003665,1235.541642,0.013147901,,2053,13.88388828,24.44289605,533.9551507,27.32473551,775.0779919,,38.32678433,0.362250278,1336.357878,0.020447169,1374.684662,0.027880419,,,24.96384431,38.6619531,75.51722289,139.1430203,0.11896464,0.060446762,0.179411402,0.820588598,,0.336917058,0.663082942,,,,,,,,,,,,,,,,,,,,,,,,, +2054,16.66976987,508.1753102,740.0644307,1264.909511,0.013178626,,2054,14.32656581,25.2496897,549.1978132,29.33514849,795.1745816,,39.57625551,0.361999023,1373.707543,0.021354726,1413.283799,0.028003049,,,26.99194443,41.02250299,80.35984055,148.374288,0.12222584,0.059692097,0.181917937,0.818082063,,0.328126507,0.671873493,,,,,,,,,,,,,,,,,,,,,,,,, +2055,17.18407858,521.2586647,756.4459823,1294.888726,0.013270699,,2055,14.83787401,26.08399649,564.8069519,31.44498933,815.8244275,,40.9218705,0.362590317,1412.076369,0.022268618,1452.998239,0.028163744,,,29.09878476,43.54828718,85.46244165,158.1095136,0.125039746,0.059002214,0.18404196,0.81595804,,0.320591099,0.679408901,,,,,,,,,,,,,,,,,,,,,,,,, +2056,17.79016529,534.5474813,773.1538675,1325.491514,0.013421561,,2056,15.42128892,26.94672759,580.8030703,33.64791066,837.041913,,42.36801651,0.363984208,1451.492894,0.023181588,1493.86091,0.02836142,,,31.27903429,46.25558902,90.83477305,168.3693964,0.127391165,0.05838508,0.185776245,0.814223755,,0.31427635,0.68572365,,,,,,,,,,,,,,,,,,,,,,,,, +2057,18.49048972,548.0459801,790.1936342,1356.730104,0.013628716,,2057,16.08039219,27.83888483,597.1985524,35.94530731,858.8413443,,43.91927703,0.366135175,1491.985204,0.024092268,1535.904481,0.028595058,,,33.53520978,49.15257226,96.48659499,179.174377,0.129315147,0.057850063,0.187165209,0.812834791,,0.309085555,0.690914445,,,,,,,,,,,,,,,,,,,,,,,,, +2058,19.28751157,561.7583814,807.5708299,1388.616723,0.01388973,,2058,16.81887404,28.76145125,614.0008349,38.34174265,881.2323716,,45.58032529,0.368994164,1533.574949,0.025001545,1579.155274,0.028863739,,,35.87310512,52.2424535,102.422993,190.5385516,0.130866608,0.057405554,0.188272162,0.811727838,,0.304907288,0.695092712,,,,,,,,,,,,,,,,,,,,,,,,, +2059,20.18369055,575.6889053,825.2910024,1421.163598,0.014202229,,2059,17.64053025,29.71545598,631.210955,40.84739657,904.2228432,,47.35598623,0.372508983,1576.281195,0.025913775,1623.637181,0.029166606,,,38.30423626,55.52204971,108.6472967,202.4735827,0.132122443,0.057058959,0.189181402,0.810818598,,0.301609772,0.698390228,,,,,,,,,,,,,,,,,,,,,,,,, +2060,21.18148636,589.8417721,843.3596996,1454.382958,0.014563899,,2060,18.54925209,30.70199273,648.8305349,43.47285299,927.8214332,,49.25124481,0.376625041,1620.124821,0.026833027,1669.376066,0.029502786,,,40.84061871,58.98876281,115.1637264,214.9931079,0.133149462,0.056812994,0.189962456,0.810037544,,0.299074855,0.700925145,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,Table 7: Difference in FUNCTIONAL & IMPLEMENTATION UNITS between REF1 and REF2 populations in LLDC+HighNRR+HighED,,,,,,,,Table 8: Difference in FUNCTIONAL & IMPLEMENTATION UNITS between REF1 and REF2 populations in LLDC+HighNRR+LowED,,,,,,,,Table 9: Difference in EMISSIONS between REF1 and REF2 populations in LLDC+HighNRR+HighED,,,,,,,,,,,,,Table 10: Difference in EMISSIONS between REF1 and REF2 populations in LLDC+HighNRR+LowED,,,,,,,,,,,,,,,Table 11: EMISSIONS ALLOCATIONS TO (a) Health & Education; (b) Education ONLY; (c) Family Planning (excluding education),,,,,,,,,,,, +,SOLUTION ,,,CONVENTIONAL,,,,,SOLUTION ,,,CONVENTIONAL,,,,,SOLUTION,,,,,CONVENTIONAL,,,,,EMISSION REDUCTIONS,,,SOLUTION ,,,,,CONVENTIONAL,,,,,EMISSION REDCUTIONS ,,,,,"Table 11(a): EMISSIONS ALLOCATION TO HEALTH & EDUCATION in LLDC, Paper_cluster",,,,"Table 11(b): EMISSIONS ALLOCATION TO Education in LLDC, Paper_cluster",,,"Table 11(c): EMISSIONS ALLOCATION TO Family Planning in LLDC, Paper_cluster",,,,% Allocation to Education (Electricity), +,Additional Functional Units in REF2 vs REF1,Annual Functional Units Increase,Annual Implementation Units Increase + Replacement,Additional Functional Units in REF2 vs REF2,Annual Functional Units Increase,Change in TAM,Annual Implementation Units Increase + Replacement,,Additional Functional Units in REF2 vs REF1,Annual Functional Units Increase,Annual Implementation Units Increase + Replacement,Additional Functional Units in REF2 vs REF2,Annual Functional Units Increase,Change in TAM,Annual Implementation Units Increase + Replacement,,Avoided Emissions/ Million Metric Tons CO2,,,,,Avoided Emissions/ Million Metric Tons CO2,,,,,ALL Years,,,Avoided Emissions/ Million Metric Tons CO2,,,,,Avoided Emissions/ Million Metric Tons CO2,,,,,ALL Years,,,,,,,,,,,,,,,,ALL Years, +,TWh,TWh,TW,TWh,TWh,%,TW,,TWh,TWh,TW,TWh,TWh,%,TW,,Grid,Fuel,Other Direct,Indirect,,Grid,Fuel,Other Direct,Indirect,,Conv Total,Solution Total,,Grid,Fuel,Other Direct,Indirect,,Grid,Fuel,Other Direct,Indirect,,Conv Total,Solution Total,,,,,Conv Total,Solution Total,,Conv Total,Solution Total,,Conv Total,Solution Total,,,Conv Total,Solution Total +2014,,,,0,,,Not modeled TBD,,,,,0,,,Not modeled TBD,,,,,,,,,0,0,,0,,,,,,,,,,0,0,,0,,,,,2014,0,0,,0,0,,0,0,,,, +2015,,,,0,0,,,,,,,0,0,,,,,,,,,,,0,0,,0,0,,,,,,,,,0,0,,0,0,,,,2015,0,0,,0,0,,0,0,,,, +2016,,,,0.01443486,0.01443486,0.030517173,,,,,,0.017217602,0.017217602,0.036400252,,,,,,,,,,0.019039204,0.007571813,,0.026611017,0,,,,,,,,,0.022709568,0.009031502,,0.03174107,0,,,,2016,0.058352086,0,,0.015870535,0,,0.042481552,0,,,0.271978877, +2017,,,,0.034005466,0.019570607,0.02924764,,,,,,0.041073783,0.023856181,0.035327003,,,,,,,,,,0.044852325,0.017837584,,0.062689909,0,,,,,,,,,0.05417525,0.021545273,,0.075720523,0,,,,2017,0.138410432,0,,0.037860262,0,,0.10055017,0,,,0.273536185, +2018,,,,0.057961636,0.023956169,0.02836792,,,,,,0.070874538,0.029800756,0.034687828,,,,,,,,,,0.076449888,0.030403805,,0.106853693,0,,,,,,,,,0.093481671,0.037177275,,0.130658945,0,,,,2018,0.237512639,0,,0.065329473,0,,0.172183166,0,,,0.275056827, +2019,,,,0.085585853,0.027624218,0.027901,,,,,,0.105883315,0.035008776,0.034517976,,,,,,,,,,0.112885512,0.044894102,,0.157779614,0,,,,,,,,,0.139657335,0.055541146,,0.195198481,0,,,,2019,0.352978095,0,,0.09759924,0,,0.255378855,0,,,0.276502258, +2020,,,,0.116636833,0.031050979,0.02777129,,,,,,0.145859414,0.039976099,0.034729201,,,,,,,,,,0.153840945,0.061181909,,0.215022854,0,,,,,,,,,0.192384769,0.076510629,,0.268895398,0,,,,2020,0.483918252,0,,0.134447699,0,,0.349470553,0,,,0.277831428, +2021,,,,0.151350182,0.034713349,0.027849707,,,,,,0.191080572,0.045221157,0.035160432,,,,,,,,,,0.199626949,0.079390814,,0.279017762,0,,,,,,,,,0.252030298,0.100231409,,0.352261708,0,,,,2021,0.63127947,0,,0.176130854,0,,0.455148616,0,,,0.279006149, +2022,,,,0.190071533,0.038721351,0.028012417,,,,,,0.241896062,0.05081549,0.035650227,,,,,,,,,,0.250699403,0.099702118,,0.350401521,0,,,,,,,,,0.319054607,0.1268867,,0.445941307,0,,,,2022,0.796342828,0,,0.222970653,0,,0.573372174,0,,,0.279993297, +2023,,,,0.23297667,0.042905136,0.028213781,,,,,,0.298351986,0.056455925,0.036130817,,,,,,,,,,0.307290161,0.122208028,,0.429498189,0,,,,,,,,,0.393518501,0.156500684,,0.550019185,0,,,,2023,0.979517374,0,,0.275009593,0,,0.704507782,0,,,0.280760301, +2024,,,,0.280169339,0.04719267,0.028409718,,,,,,0.360307587,0.061955601,0.036535893,,,,,,,,,,0.369536063,0.146962967,,0.51649903,0,,,,,,,,,0.475236326,0.188999525,,0.664235851,0,,,,2024,1.180734881,0,,0.332117926,0,,0.848616955,0,,,0.281280693, +2025,,,,0.33167352,0.051504181,0.028581773,,,,,,0.427413161,0.067105573,0.036832081,,,,,,,,,,0.437468736,0.173979511,,0.611448247,0,,,,,,,,,0.56374683,0.224199787,,0.787946617,0,,,,2025,1.399394864,0,,0.393973309,0,,1.005421555,0,,,0.281531195, +2026,,,,0.387978881,0.056305362,0.028759958,,,,,,0.499733874,0.072320713,0.037044092,,,,,,,,,,0.511734042,0.203514516,,0.715248558,0,,,,,,,,,0.659135967,0.262135654,,0.921271621,0,,,,2026,1.636520179,0,,0.46063581,0,,1.175884369,0,,,0.281472735, +2027,,,,0.449246981,0.061268099,0.028959962,,,,,,0.57679182,0.077057946,0.037181929,,,,,,,,,,0.59254507,0.235652728,,0.828197798,0,,,,,,,,,0.760773391,0.302556437,,1.063329829,0,,,,2027,1.891527627,0,,0.531664914,0,,1.359862712,0,,,0.281077002, +2028,,,,0.514673646,0.065426665,0.029155281,,,,,,0.656939593,0.080147773,0.037214375,,,,,,,,,,0.678841137,0.269972318,,0.948813456,0,,,,,,,,,0.866486217,0.344597992,,1.211084209,0,,,,2028,2.159897665,0,,0.605542105,0,,1.55435556,0,,,0.280356849, +2029,,,,0.582973734,0.068300088,0.029319227,,,,,,0.738077541,0.081137948,0.037119791,,,,,,,,,,0.768927175,0.305799164,,1.074726339,0,,,,,,,,,0.973505058,0.387158943,,1.360664001,0,,,,2029,2.43539034,0,,0.680332,0,,1.755058339,0,,,0.279352344, +2030,,,,0.653264628,0.070290894,0.029445575,,,,,,0.818712494,0.080634953,0.036903054,,,,,,,,,,0.861639034,0.342670287,,1.204309322,0,,,,,,,,,1.079860461,0.429456048,,1.509316509,0,,,,2030,2.713625831,0,,0.754658255,0,,1.958967576,0,,,0.278099599, +2031,,,,0.725594083,0.072329455,0.02955489,,,,,,0.898431934,0.079719441,0.036594919,,,,,,,,,,0.957039702,0.380610739,,1.337650441,0,,,,,,,,,1.185008327,0.47127292,,1.656281248,0,,,,2031,2.993931689,0,,0.828140624,0,,2.165791065,0,,,0.276606386, +2032,,,,0.800788721,0.075194638,0.029672905,,,,,,0.977603657,0.079171722,0.036224712,,,,,,,,,,1.056219472,0.420054124,,1.476273596,0,,,,,,,,,1.289433768,0.512802487,,1.802236255,0,,,,2032,3.278509851,0,,0.901118127,0,,2.377391724,0,,,0.274856007, +2033,,,,0.879657048,0.078868326,0.029808715,,,,,,1.056520408,0.078916751,0.035802039,,,,,,,,,,1.160244741,0.461424544,,1.621669285,0,,,,,,,,,1.393522907,0.554198308,,1.947721215,0,,,,2033,3.5693905,0,,0.973860608,0,,2.595529892,0,,,0.272836667, +2034,,,,0.963338604,0.083681556,0.029969767,,,,,,1.135688758,0.07916835,0.035331635,,,,,,,,,,1.270618535,0.505319746,,1.775938281,0,,,,,,,,,1.4979439,0.595726106,,2.093670005,0,,,,2034,3.869608286,0,,1.046835003,0,,2.822773284,0,,,0.270527383, +2035,,,,1.053062987,0.089724383,0.030165442,,,,,,1.215549588,0.07986083,0.03481994,,,,,,,,,,1.388962659,0.552384716,,1.941347375,0,,,,,,,,,1.603278256,0.637617144,,2.2408954,0,,,,2035,4.182242775,0,,1.1204477,0,,3.061795075,0,,,0.267905944, +2036,,,,1.149486929,0.096423942,0.030396506,,,,,,1.295980941,0.080431353,0.034270327,,,,,,,,,,1.516143328,0.602963943,,2.119107271,0,,,,,,,,,1.709365115,0.679807451,,2.389172566,0,,,,2036,4.508279837,0,,1.194586283,0,,3.313693554,0,,,0.264976072, +2037,,,,1.25380361,0.104316681,0.030678722,,,,,,1.377207169,0.081226228,0.033698225,,,,,,,,,,1.653734313,0.65768331,,2.311417624,0,,,,,,,,,1.816500395,0.722414709,,2.538915104,0,,,,2037,4.850332728,0,,1.269457552,0,,3.580875176,0,,,0.26172587, +2038,,,,1.368805077,0.115001467,0.031051579,,,,,,1.460385023,0.083177854,0.033129086,,,,,,,,,,1.805418254,0.718007387,,2.523425641,0,,,,,,,,,1.926209818,0.766045694,,2.692255512,0,,,,2038,5.215681153,0,,1.346127756,0,,3.869553397,0,,,0.258092417, +2039,,,,1.498347016,0.129541939,0.031563068,,,,,,1.54695375,0.086568727,0.032586982,,,,,,,,,,1.976280698,0.785958676,,2.762239375,0,,,,,,,,,2.040391715,0.811455363,,2.851847078,0,,,,2039,5.614086452,0,,1.425923539,0,,4.188162914,0,,,0.253990307, +2040,,,,1.646300008,0.147952992,0.032246119,,,,,,1.637886454,0.090932705,0.032081323,,,,,,,,,,2.171426843,0.863567492,,3.034994335,0,,,,,,,,,2.160329585,0.859154159,,3.019483743,0,,,,2040,6.054478078,0,,1.509741872,0,,4.544736206,0,,,0.249359541, +2041,,,,1.81527861,0.168978602,0.03309984,,,,,,1.73314418,0.095257725,0.031602199,,,,,,,,,,2.394305219,0.952205302,,3.346510521,0,,,,,,,,,2.285972044,0.909121646,,3.19509369,0,,,,2041,6.541604211,0,,1.597546845,0,,4.944057366,0,,,0.244213314, +2042,,,,2.007509591,0.192230981,0.034113537,,,,,,1.832396999,0.099252819,0.031137855,,,,,,,,,,2.647852877,1.05304016,,3.700893037,0,,,,,,,,,2.416883928,0.961184762,,3.378068689,0,,,,2042,7.078961726,0,,1.689034345,0,,5.389927381,0,,,0.238599163, +2043,,,,2.226473083,0.218963492,0.03529422,,,,,,1.935836801,0.103439802,0.030687032,,,,,,,,,,2.936660021,1.167897569,,4.10455759,0,,,,,,,,,2.553318333,1.015444162,,3.568762495,0,,,,2043,7.673320085,0,,1.784381247,0,,5.888938838,0,,,0.23254357, +2044,,,,2.475941164,0.249468081,0.03664736,,,,,,2.043661137,0.107824336,0.030249017,,,,,,,,,,3.265701924,1.298756175,,4.5644581,0,,,,,,,,,2.695535825,1.072003471,,3.767539296,0,,,,2044,8.331997396,0,,1.883769648,0,,6.448227748,0,,,0.226088603, +2045,,,,2.759267113,0.28332595,0.03816716,,,,,,2.155887519,0.112226383,0.029821,,,,,,,,,,3.639401475,1.447374944,,5.086776419,0,,,,,,,,,2.843559501,1.130871876,,3.974431378,0,,,,2045,9.061207796,0,,1.987215689,0,,7.073992108,0,,,0.219310244, +2046,,,,3.0793945,0.320127386,0.039839659,,,,,,2.272516261,0.116628741,0.029400674,,,,,,,,,,4.061641162,1.615297925,,5.676939086,0,,,,,,,,,2.997389775,1.192049541,,4.189439315,0,,,,2046,9.866378402,0,,2.094719658,0,,7.771658744,0,,,0.212308871, +2047,,,,3.437789885,0.358395385,0.04163296,,,,,,2.393337198,0.120820937,0.028984236,,,,,,,,,,4.534355342,1.803294403,,6.337649746,0,,,,,,,,,3.156749445,1.255426224,,4.412175669,0,,,,2047,10.74982541,0,,2.206087834,0,,8.54373758,0,,,0.205220806, +2048,,,,3.834027992,0.396238107,0.043498875,,,,,,2.518018075,0.124680877,0.028568115,,,,,,,,,,5.056983088,2.0111413,,7.068124388,0,,,,,,,,,3.321200275,1.32082764,,4.642027915,0,,,,2048,11.7101523,0,,2.321013957,0,,9.389138345,0,,,0.198205275, +2049,,,,4.265906737,0.431878746,0.045379969,,,,,,2.646319249,0.128301174,0.028151081,,,,,,,,,,5.626619907,2.237683512,,7.864303419,0,,,,,,,,,3.490426182,1.388128085,,4.878554267,0,,,,2049,12.74285769,0,,2.439277134,0,,10.30358055,0,,,0.191423085, +2050,,,,4.730816969,0.464910232,0.047226946,,,,,,2.778446521,0.132127273,0.027736762,,,,,,,,,,6.239824397,2.481552406,,8.721376804,0,,,,,,,,,3.664698614,1.457435512,,5.122134126,0,,,,2050,13.84351093,0,,2.561067063,0,,11.28244387,0,,,0.185001267, +2051,,,,5.228297567,0.497480598,0.049020911,,,,,,2.915401114,0.136954593,0.02733502,,,,,,,,,,6.895988353,2.742506103,,9.638494456,0,,,,,,,,,3.845338155,1.529275112,,5.374613267,0,,,,2051,15.01310772,0,,2.687306634,0,,12.32580109,0,,,0.178997359, +2052,,,,5.757265401,0.528967834,0.050742136,,,,,,3.058236922,0.142835809,0.026954025,,,,,,,,,,7.593683152,3.019976445,,10.6136596,0,,,,,,,,,4.033734868,1.604199707,,5.637934575,0,,,,2052,16.25159417,0,,2.818967287,0,,13.43262688,0,,,0.173457893, +2053,,,,6.312694736,0.555429335,0.052344442,,,,,,3.207524129,0.149287206,0.026596575,,,,,,,,,,8.326279982,3.31132718,,11.63760716,0,,,,,,,,,4.230640806,1.682508385,,5.913149191,0,,,,2053,17.55075635,0,,2.956574596,0,,14.59418176,0,,,0.168458529, +2054,,,,6.887720506,0.57502577,0.05377937,,,,,,3.363793477,0.156269348,0.026264523,,,,,,,,,,9.084723999,3.612957235,,12.69768123,0,,,,,,,,,4.436756007,1.76447955,,6.201235557,0,,,,2054,18.89891679,0,,3.100617778,0,,15.79829901,0,,,0.164063254, +2055,,,,7.476367446,0.588646941,0.055017488,,,,,,3.527856125,0.164062649,0.025960974,,,,,,,,,,9.861133986,3.921732282,,13.78286627,0,,,,,,,,,4.653150368,1.850538694,,6.503689063,0,,,,2055,20.28655533,0,,3.251844531,0,,17.0347108,0,,,0.160295549, +2056,,,,8.074834378,0.598466932,0.056052113,,,,,,3.700804937,0.172948812,0.025689435,,,,,,,,,,10.65049629,4.235658411,,14.8861547,0,,,,,,,,,4.881265348,1.94125908,,6.822524428,0,,,,2056,21.70867912,0,,3.411262214,0,,18.29741691,0,,,0.157138175, +2057,,,,8.682074196,0.607239817,0.056898665,,,,,,3.883988442,0.183183504,0.025454028,,,,,,,,,,11.45142979,4.55418636,,16.00561615,0,,,,,,,,,5.12287962,2.037348079,,7.160227699,0,,,,2057,23.16584385,0,,3.58011385,0,,19.58573,0,,,0.154542777, +2058,,,,9.298376255,0.61630206,0.057581307,,,,,,4.078797891,0.194809449,0.025258444,,,,,,,,,,12.26431616,4.877467914,,17.14178408,0,,,,,,,,,5.379828211,2.139535473,,7.519363684,0,,,,2058,24.66114776,0,,3.759681842,0,,20.90146592,0,,,0.152453644, +2059,,,,9.926100158,0.627723903,0.058133875,,,,,,4.286727792,0.207929902,0.025105942,,,,,,,,,,13.09226764,5.206740801,,18.29900845,0,,,,,,,,,5.654082337,2.248605207,,7.902687544,0,,,,2059,26.20169599,0,,3.951343772,0,,22.25035222,0,,,0.150804886, +2060,,,,10.56783406,0.641733901,0.058585763,,,,,,4.509145466,0.222417674,0.024997717,,,,,,,,,,13.93869795,5.543362639,,19.48206059,0,,,,,,,,,5.947445458,2.365274509,,8.312719966,0,,,,2060,27.79478056,0,,4.156359983,0,,23.63842057,0,,,0.149537428, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,Table 12: Difference in FUNCTIONAL & IMPLEMENTATION UNITS between REF1 and REF2 populations in MDC + LAC + EE + China,,,,,,,,,Table 13: Difference in EMISSIONS between REF1 and REF2 populations in MDC + LAC + EE + China,,,,,,,,,,,,,,Table 14: EMISSIONS ALLOCATIONS TO (a) Health & Education; (b) Education ONLY; (c) Family Planning (excluding education),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,SOLUTION ,,,CONVENTIONAL,,,,,,SOLUTION,,,,,CONVENTIONAL,,,,,EMISSION REDUCTIONS,,,,"Table 14(a): EMISSIONS ALLOCATION TO HEALTH & EDUCATION in MDC, Paper_cluster",,,,"Table 14(b): EMISSIONS ALLOCATION TO Education in MDC, Paper_cluster",,,"Table 14(c): EMISSIONS ALLOCATION TO Family Planning in MDC, Paper_cluster",,,,% Allocation to Education (Electricity),,,,,,,,,,,,,,,,,,,,,, +,Additional Functional Units in REF2 vs REF1,Annual Functional Units Increase,Annual Implementation Units Increase + Replacement,Additional Functional Units in REF2 vs REF2,Annual Functional Units Increase,Change in TAM,Annual Implementation Units Increase + Replacement,,,Avoided Emissions/ Million Metric Tons CO2,,,,,Avoided Emissions/ Million Metric Tons CO2,,,,,ALL Years,,,,,,,,,,,,,,,ALL Years,,,,,,,,,,,,,,,,,,,,,, +,TWh,TWh,TW,TWh,TWh,%,TW,,,Grid,Fuel,Other Direct,Indirect,,Grid,Fuel,Other Direct,Indirect,,Conv Total,Solution Total,,,,Conv Total,Solution Total,,Conv Total,Solution Total,,Conv Total,Solution Total,,,Conv Total,Solution Total,,,,,,,,,,,,,,,,,,,,, +2014,,,,0,,,Not modeled TBD,,,,,,,,,,0,0,,0,,,,2014,0,0,,,,,0,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2015,,,,0,0,,,,,,,,,,,,0,0,,0,0,,,2015,0,0,,,,,0,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2016,,,,0.176470953,0.176470953,0.373082575,,,,,,,,,,,0.232760592,0.092567927,,0.325328518,0,,,2016,0.325328518,0,,,,,0.325328518,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2017,,,,0.436497239,0.260026286,0.375425356,,,,,,,,,,,0.575728492,0.228964845,,0.804693336,0,,,2017,0.804693336,0,,,,,0.804693336,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2018,,,,0.770176507,0.333679269,0.376944253,,,,,,,,,,,1.015842759,0.403996472,,1.419839231,0,,,2018,1.419839231,0,,,,,1.419839231,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2019,,,,1.158223494,0.388046987,0.377581024,,,,,,,,,,,1.52766663,0.607546713,,2.135213343,0,,,2019,2.135213343,0,,,,,2.135213343,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2020,,,,1.585462808,0.427239314,0.377499509,,,,,,,,,,,2.09118416,0.831655309,,2.922839469,0,,,2020,2.922839469,0,,,,,2.922839469,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2021,,,,2.048764283,0.463301475,0.376989861,,,,,,,,,,,2.702266742,1.074680329,,3.776947071,0,,,2021,3.776947071,0,,,,,3.776947071,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2022,,,,2.553546814,0.504782531,0.376337356,,,,,,,,,,,3.368061757,1.339464258,,4.707526015,0,,,2022,4.707526015,0,,,,,4.707526015,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2023,,,,3.101992804,0.54844599,0.375655402,,,,,,,,,,,4.091447737,1.627151877,,5.718599614,0,,,2023,5.718599614,0,,,,,5.718599614,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2024,,,,3.698690058,0.596697253,0.37505439,,,,,,,,,,,4.878475877,1.940149719,,6.818625596,0,,,2024,6.818625596,0,,,,,6.818625596,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2025,,,,4.346836893,0.648146835,0.374586146,,,,,,,,,,,5.733364675,2.280135465,,8.013500141,0,,,2025,8.013500141,0,,,,,8.013500141,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2026,,,,5.047994979,0.701158086,0.374195949,,,,,,,,,,,6.658173933,2.64792829,,9.306102223,0,,,2026,9.306102223,0,,,,,9.306102223,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2027,,,,5.799545774,0.751550796,0.373858109,,,,,,,,,,,7.649449864,3.042154636,,10.6916045,0,,,2027,10.6916045,0,,,,,10.6916045,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2028,,,,6.595638531,0.796092756,0.373630344,,,,,,,,,,,8.69947548,3.459745489,,12.15922097,0,,,2028,12.15922097,0,,,,,12.15922097,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2029,,,,7.427761964,0.832123433,0.373560982,,,,,,,,,,,9.797024621,3.896236252,,13.69326087,0,,,2029,13.69326087,0,,,,,13.69326087,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2030,,,,8.289640313,0.861878349,0.373651371,,,,,,,,,,,10.93381972,4.348334971,,15.28215469,0,,,2030,15.28215469,0,,,,,15.28215469,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2031,,,,9.178294689,0.888654376,0.373850191,,,,,,,,,,,12.1059317,4.814479068,,16.92041077,0,,,2031,16.92041077,0,,,,,16.92041077,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2032,,,,10.09597695,0.917682261,0.374102383,,,,,,,,,,,13.31633071,5.295849757,,18.61218047,0,,,2032,18.61218047,0,,,,,18.61218047,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2033,,,,11.04825012,0.952273175,0.374389246,,,,,,,,,,,14.57235423,5.795365127,,20.36771936,0,,,2033,20.36771936,0,,,,,20.36771936,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2034,,,,12.04419188,0.995941751,0.374698598,,,,,,,,,,,15.88597547,6.317786871,,22.20376234,0,,,2034,22.20376234,0,,,,,22.20376234,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2035,,,,13.09160393,1.047412058,0.375014618,,,,,,,,,,,17.2674847,6.867207389,,24.13469209,0,,,2035,24.13469209,0,,,,,24.13469209,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2036,,,,14.19375533,1.102151392,0.375333167,,,,,,,,,,,18.72119369,7.445341453,,26.16653514,0,,,2036,26.16653514,0,,,,,26.16653514,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2037,,,,15.35127638,1.157521054,0.375623053,,,,,,,,,,,20.24793382,8.0525197,,28.30045352,0,,,2037,28.30045352,0,,,,,28.30045352,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2038,,,,16.56673917,1.215462793,0.375819335,,,,,,,,,,,21.85109759,8.690091316,,30.54118891,0,,,2038,30.54118891,0,,,,,30.54118891,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2039,,,,17.84217064,1.275431471,0.37584995,,,,,,,,,,,23.53335849,9.359119532,,32.89247802,0,,,2039,32.89247802,0,,,,,32.89247802,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2040,,,,19.17966392,1.337493281,0.375672558,,,,,,,,,,,25.2974773,10.0607023,,35.3581796,0,,,2040,35.3581796,0,,,,,35.3581796,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2041,,,,20.58228559,1.402621661,0.375297961,,,,,,,,,,,27.14749875,10.7964482,,37.94394695,0,,,2041,37.94394695,0,,,,,37.94394695,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2042,,,,22.05316408,1.470878491,0.374748608,,,,,,,,,,,29.08754918,11.56799824,,40.65554742,0,,,2042,40.65554742,0,,,,,40.65554742,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2043,,,,23.59430707,1.541142989,0.374018748,,,,,,,,,,,31.12027665,12.37640557,,43.49668222,0,,,2043,43.49668222,0,,,,,43.49668222,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2044,,,,25.20734426,1.613037195,0.373103623,,,,,,,,,,,33.24783071,13.22252504,,46.47035575,0,,,2044,46.47035575,0,,,,,46.47035575,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2045,,,,26.89432541,1.68698115,0.372011839,,,,,,,,,,,35.47291492,14.10743184,,49.58034676,0,,,2045,49.58034676,0,,,,,49.58034676,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2046,,,,28.65775731,1.763431899,0.370759667,,,,,,,,,,,37.79883568,15.03244093,,52.83127661,0,,,2046,52.83127661,0,,,,,52.83127661,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2047,,,,30.50132539,1.843568075,0.369382804,,,,,,,,,,,40.23045397,15.99948548,,56.22993945,0,,,2047,56.22993945,0,,,,,56.22993945,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2048,,,,32.42993003,1.92860464,0.36793301,,,,,,,,,,,42.77423327,17.01113601,,59.78536928,0,,,2048,59.78536928,0,,,,,59.78536928,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2049,,,,34.44961294,2.019682911,0.36646895,,,,,,,,,,,45.43814244,18.07056169,,63.50870413,0,,,2049,63.50870413,0,,,,,63.50870413,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2050,,,,36.56641026,2.116797319,0.365036292,,,,,,,,,,,48.23014298,19.18092878,,67.41107177,0,,,2050,67.41107177,0,,,,,67.41107177,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2051,,,,38.78425283,2.217842577,0.363644069,,,,,,,,,,,51.15541959,20.34429922,,71.49971881,0,,,2051,71.49971881,0,,,,,71.49971881,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2052,,,,41.10744109,2.323188257,0.36230384,,,,,,,,,,,54.21964441,21.56292878,,75.78257319,0,,,2052,75.78257319,0,,,,,75.78257319,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2053,,,,43.54340347,2.435962385,0.361058983,,,,,,,,,,,57.43261537,22.84071406,,80.27332943,0,,,2053,80.27332943,0,,,,,80.27332943,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2054,,,,46.10089485,2.557491374,0.359956108,,,,,,,,,,,60.80587989,24.18224744,,84.98812734,0,,,2054,84.98812734,0,,,,,84.98812734,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2055,,,,48.78770419,2.686809337,0.359021538,,,,,,,,,,,64.34971145,25.59161462,,89.94132607,0,,,2055,89.94132607,0,,,,,89.94132607,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2056,,,,51.61050186,2.822797672,0.358258452,,,,,,,,,,,68.07290808,27.07231455,,95.14522263,0,,,2056,95.14522263,0,,,,,95.14522263,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2057,,,,54.57281794,2.962316084,0.357647308,,,,,,,,,,,71.98012586,28.62619894,,100.6063248,0,,,2057,100.6063248,0,,,,,100.6063248,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2058,,,,57.67514703,3.102329093,0.357160249,,,,,,,,,,,76.07201715,30.25352721,,106.3255444,0,,,2058,106.3255444,0,,,,,106.3255444,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2059,,,,60.91521208,3.240065043,0.356760183,,,,,,,,,,,80.34557857,31.95310495,,112.2986835,0,,,2059,112.2986835,0,,,,,112.2986835,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2060,,,,64.29122762,3.376015539,0.35641652,,,,,,,,,,,84.79845516,33.72399559,,118.5224508,0,,,2060,118.5224508,0,,,,,118.5224508,0,,,0,,,,,,,,,,,,,,,,,,,,,, diff --git a/solution/health_and_education/tests/test_paper.py b/solution/health_and_education/tests/test_paper.py new file mode 100644 index 000000000..ad11c5d81 --- /dev/null +++ b/solution/health_and_education/tests/test_paper.py @@ -0,0 +1,101 @@ +import sys +sys.path.append('c:\\Users\\sunishchal.dev\\Documents\\solutions\\solution\\health_and_education') + +import pandas as pd +import numpy as np + +from clusters import paper + +test_cluster = paper.Cluster() +test_dfs = test_cluster.run_cluster() + +expected_df = pd.read_csv('expected_paper.csv', header=None) + +def test_paper(): + + # Default columns to integers to avoid mismatch between Excel & pandas col names using T.reset_index() + exp_ref2_tam = expected_df.iloc[28:75, 1:11].T.reset_index(drop=True).T.astype(float) + exp_ref2_tam.index = expected_df.iloc[28:75, 0].astype(int).values + test_ref2_tam = test_dfs.ref2_tam.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_ref2_tam, exp_ref2_tam, check_exact=False) + + exp_ref1_tam_low_edu = expected_df.iloc[28:75, 13:23].T.reset_index(drop=True).T.astype(float) + exp_ref1_tam_low_edu.index = expected_df.iloc[28:75, 12].astype(int).values + test_ref1_tam_low_edu = test_dfs.ref1_tam_low_edu.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_ref1_tam_low_edu, exp_ref1_tam_low_edu, check_exact=False, rtol=1e-3) + + exp_ref1_tam_high_edu = expected_df.iloc[28:75, 25:35].T.reset_index(drop=True).T.astype(float) + exp_ref1_tam_high_edu.index = expected_df.iloc[28:75, 24].astype(int).values + test_ref1_tam_high_edu = test_dfs.ref1_tam_high_edu.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_ref1_tam_high_edu, exp_ref1_tam_high_edu, check_exact=False) + + exp_ref1_tam_all_regions = expected_df.iloc[28:75, 37:47].T.reset_index(drop=True).T.astype(float) + exp_ref1_tam_all_regions.index = expected_df.iloc[28:75, 36].astype(int).values + test_ref1_tam_all_regions = test_dfs.ref1_tam_all_regions.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_ref1_tam_all_regions, exp_ref1_tam_all_regions, check_exact=False) + + exp_ref2_demand = expected_df.iloc[79:126, 1:6].T.reset_index(drop=True).T.astype(float) + exp_ref2_demand.index = expected_df.iloc[79:126, 0].astype(int).values + test_ref2_demand = test_dfs.ref2_demand.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_ref2_demand, exp_ref2_demand, check_exact=False, rtol=1e-3) + + exp_ref1_demand = expected_df.iloc[79:126, [8,9,10,11,12,14,15,16,17,18,19]].T.reset_index(drop=True).T.astype(float) + exp_ref1_demand.index = expected_df.iloc[79:126, 7].astype(int).values + test_ref1_demand = test_dfs.ref1_demand.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_ref1_demand, exp_ref1_demand, check_exact=False, rtol=1e-3) + + exp_change_demand = expected_df.iloc[79:126, 22:30].T.reset_index(drop=True).T.astype(float) + exp_change_demand.index = expected_df.iloc[79:126, 7].astype(int).values + test_change_demand = test_dfs.change_demand.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_change_demand, exp_change_demand, check_exact=False, rtol=1e-3) + + exp_addl_func_units_highed = expected_df.iloc[134:181, 4:7].T.reset_index(drop=True).T.astype(float) + exp_addl_func_units_highed.index = expected_df.iloc[134:181, 0].astype(int, errors='ignore').values + test_addl_func_units_highed = test_dfs.addl_func_units_highed.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_addl_func_units_highed, exp_addl_func_units_highed, check_exact=False, rtol=1e-3) + + exp_addl_func_units_lowed = expected_df.iloc[134:181, 12:15].T.reset_index(drop=True).T.astype(float) + exp_addl_func_units_lowed.index = expected_df.iloc[134:181, 0].astype(int, errors='ignore').values + test_addl_func_units_lowed = test_dfs.addl_func_units_lowed.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_addl_func_units_lowed, exp_addl_func_units_lowed, check_exact=False, rtol=1e-3) + + exp_emis_diff_highed = expected_df.iloc[134:181, [22, 23, 24, 25, 27]].T.reset_index(drop=True).T.astype(float) + exp_emis_diff_highed.index = expected_df.iloc[134:181, 0].astype(int, errors='ignore').values + test_emis_diff_highed = test_dfs.emis_diff_highed.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_emis_diff_highed, exp_emis_diff_highed, check_exact=False, rtol=1e-3) + + exp_emis_diff_lowed = expected_df.iloc[134:181, [35, 36, 37, 38, 40]].T.reset_index(drop=True).T.astype(float) + exp_emis_diff_lowed.index = expected_df.iloc[134:181, 0].astype(int, errors='ignore').values + test_emis_diff_lowed = test_dfs.emis_diff_lowed.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_emis_diff_lowed, exp_emis_diff_lowed, check_exact=False, rtol=1e-3) + + exp_emissions_allocations_lldc = expected_df.iloc[134:181, [46, 47, 49, 50, 52, 53, 56, 57]].T.reset_index(drop=True).T.astype(float) + exp_emissions_allocations_lldc.index = expected_df.iloc[134:181, 45].astype(int, errors='ignore').values + test_emissions_allocations_lldc = test_dfs.emissions_allocations_lldc.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_emissions_allocations_lldc, exp_emissions_allocations_lldc, check_exact=False, rtol=1e-2) + + exp_addl_func_units_mdc = expected_df.iloc[193:240, 4:7].T.reset_index(drop=True).T.astype(float) + exp_addl_func_units_mdc.index = expected_df.iloc[193:240, 0].astype(int, errors='ignore').values + test_addl_func_units_mdc = test_dfs.addl_func_units_mdc.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_addl_func_units_mdc, exp_addl_func_units_mdc, check_exact=False, rtol=1e-3) + + exp_emis_diff_mdc = expected_df.iloc[193:240, [15, 16, 17, 18, 20]].T.reset_index(drop=True).T.astype(float) + exp_emis_diff_mdc.index = expected_df.iloc[193:240, 0].astype(int, errors='ignore').values + test_emis_diff_mdc = test_dfs.emis_diff_mdc.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_emis_diff_mdc, exp_emis_diff_mdc, check_exact=False, rtol=1e-3) + + exp_emissions_allocations_mdc = expected_df.iloc[193:240, [25, 26, 28, 29, 31, 32, 35, 36]].T.reset_index(drop=True).T.astype(float) + exp_emissions_allocations_mdc.index = expected_df.iloc[193:240, 24].astype(int, errors='ignore').values + test_emissions_allocations_mdc = test_dfs.emissions_allocations_mdc.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_emissions_allocations_mdc, exp_emissions_allocations_mdc, check_exact=False, rtol=1e-2) + + # Test the final CO2 reduction output + exp_emissions_avoided = expected_df.iloc[[4, 7, 11], [13, 14]].reset_index(drop=True).T.reset_index(drop=True).T.astype(float) + test_emissions_avoided = pd.DataFrame([[test_dfs.emissions_avoided_lldc_period, test_dfs.emissions_avoided_lldc_full], + [test_dfs.emissions_avoided_mdc_period, test_dfs.emissions_avoided_mdc_full], + [test_dfs.emissions_avoided_total_period, test_dfs.emissions_avoided_total_full]]) + pd.testing.assert_frame_equal(test_emissions_avoided, exp_emissions_avoided, check_exact=False, rtol=1e-2) + + print("Test complete: paper cluster") + +test_paper() \ No newline at end of file From 9edcd168df7339566f7c37e6b7fbb4955ae709a3 Mon Sep 17 00:00:00 2001 From: Sunishchal Date: Sat, 2 Jan 2021 02:07:52 -0800 Subject: [PATCH 23/28] Assumptions cleanup --- solution/health_and_education/clusters/paper.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/solution/health_and_education/clusters/paper.py b/solution/health_and_education/clusters/paper.py index f0615abd3..29537bd5a 100644 --- a/solution/health_and_education/clusters/paper.py +++ b/solution/health_and_education/clusters/paper.py @@ -34,8 +34,7 @@ 'Grid': 'N', 'Fuel': 'N', 'Other Direct': 'Y', - 'Indirect': 'Y', - 'Weighted Emission Factor for Space Heating and Cooling': 87.04 + 'Indirect': 'Y' } # TABLE 1: Current TAM Mix From 918c84be4764bbd58f6a94eb793c208d3474e1d4 Mon Sep 17 00:00:00 2001 From: Sunishchal Date: Sun, 3 Jan 2021 03:43:07 -0800 Subject: [PATCH 24/28] Working implementation for water cluster --- .../clusters/cluster_model.py | 47 ++++ .../health_and_education/clusters/water.py | 178 +++++++++++++ .../tests/expected_water.csv | 240 ++++++++++++++++++ .../health_and_education/tests/test_water.py | 101 ++++++++ 4 files changed, 566 insertions(+) create mode 100644 solution/health_and_education/clusters/water.py create mode 100644 solution/health_and_education/tests/expected_water.csv create mode 100644 solution/health_and_education/tests/test_water.py diff --git a/solution/health_and_education/clusters/cluster_model.py b/solution/health_and_education/clusters/cluster_model.py index 09ac23393..3010aee37 100644 --- a/solution/health_and_education/clusters/cluster_model.py +++ b/solution/health_and_education/clusters/cluster_model.py @@ -327,6 +327,25 @@ def calc_emis_diff_highed_spacecooling(self, ef_co2_eq_list): self.emis_diff_highed = emis_diff_highed + def calc_emis_diff_highed_water(self, ef_co2_eq_list): + self.emissions_factors_ref1_co2eq = pd.DataFrame(ef_co2_eq_list[1:], + columns=ef_co2_eq_list[0], + index=list(range(2014, 2061)), dtype=np.float64) + + emis_diff_highed = pd.DataFrame(None, + columns=['Conventional: Grid','Conventional: Fuel', 'Conventional: Other Direct', 'Conventional: Indirect', 'Emission Reductions: Conv Total'], + index=list(range(2014, 2061)), dtype=np.float64) + + if self.assumptions['Grid'] == 'Y': + emis_diff_highed['Conventional: Grid'] = self.addl_func_units_highed['Additional Functional Units in REF2 vs REF2'] \ + * self.assumptions['Twh_per_mm3_water_produced'] * self.emissions_factors_ref1_co2eq['World'] + + emis_diff_highed['Emission Reductions: Conv Total'] = emis_diff_highed[['Conventional: Grid', 'Conventional: Fuel', 'Conventional: Other Direct', 'Conventional: Indirect']].sum(axis=1, min_count=1) + + # SpaceHeating_cluster!V131:Z179 + self.emis_diff_highed = emis_diff_highed + + def calc_emis_diff_highed_cleancookstoves(self): emis_diff_highed = pd.DataFrame(None, columns=['Conventional: Grid','Conventional: Fuel', 'Conventional: Other Direct', 'Conventional: Indirect', 'Emission Reductions: Conv Total'], @@ -449,6 +468,20 @@ def calc_emis_diff_lowed_spacecooling(self): self.emis_diff_lowed = emis_diff_lowed + def calc_emis_diff_lowed_water(self): + emis_diff_lowed = pd.DataFrame(None, + columns=['Conventional: Grid','Conventional: Fuel', 'Conventional: Other Direct', 'Conventional: Indirect', 'Emission Reductions: Conv Total'], + index=list(range(2014, 2061)), dtype=np.float64) + + if self.assumptions['Grid'] == 'Y': + emis_diff_lowed['Conventional: Grid'] = self.addl_func_units_lowed['Additional Functional Units in REF2 vs REF2'] \ + * self.assumptions['Twh_per_mm3_water_produced'] * self.emissions_factors_ref1_co2eq['World'] + + emis_diff_lowed['Emission Reductions: Conv Total'] = emis_diff_lowed[['Conventional: Grid', 'Conventional: Fuel', 'Conventional: Other Direct', 'Conventional: Indirect']].sum(axis=1, min_count=1) + + self.emis_diff_lowed = emis_diff_lowed + + def calc_emis_diff_lowed_cleancookstoves(self): emis_diff_lowed = pd.DataFrame(None, columns=['Conventional: Grid','Conventional: Fuel', 'Conventional: Other Direct', 'Conventional: Indirect', 'Emission Reductions: Conv Total'], @@ -628,6 +661,20 @@ def calc_emis_diff_mdc_spacecooling(self): self.emis_diff_mdc = emis_diff_mdc + def calc_emis_diff_mdc_water(self): + emis_diff_mdc = pd.DataFrame(None, + columns=['Conventional: Grid','Conventional: Fuel', 'Conventional: Other Direct', 'Conventional: Indirect', 'Emission Reductions: Conv Total'], + index=list(range(2014, 2061)), dtype=np.float64) + + if self.assumptions['Grid'] == 'Y': + emis_diff_mdc['Conventional: Grid'] = self.addl_func_units_mdc['Additional Functional Units in REF2 vs REF2'] \ + * self.assumptions['Twh_per_mm3_water_produced'] * self.emissions_factors_ref1_co2eq['World'] + + emis_diff_mdc['Emission Reductions: Conv Total'] = emis_diff_mdc[['Conventional: Grid', 'Conventional: Fuel', 'Conventional: Other Direct', 'Conventional: Indirect']].sum(axis=1, min_count=1) + + self.emis_diff_mdc = emis_diff_mdc + + def calc_emis_diff_mdc_comlight(self): emis_diff_mdc = pd.DataFrame(None, columns=['Conventional: Grid','Conventional: Fuel', 'Conventional: Other Direct', 'Conventional: Indirect', 'Emission Reductions: Conv Total'], diff --git a/solution/health_and_education/clusters/water.py b/solution/health_and_education/clusters/water.py new file mode 100644 index 000000000..efea82332 --- /dev/null +++ b/solution/health_and_education/clusters/water.py @@ -0,0 +1,178 @@ +"""Health & Education solution model for Water Cluster + Excel filename: CORE_PopulationChange_29Jan2020 (version 1.5).xlsx + Excel sheet name: Water_cluster +""" +import pathlib +import numpy as np +import pandas as pd +import sys +__file__ = 'c:\\Users\\sunishchal.dev\\Documents\\solutions\\solution\\health_and_education\\clusters' +repo_path = str(pathlib.Path(__file__).parents[2]) +sys.path.append(repo_path) +# sys.path.append('c:\\Users\\sunishchal.dev\\Documents\\solutions') + +from model import advanced_controls as ac +from solution.health_and_education.clusters import cluster_model + +DATADIR = pathlib.Path(__file__).parents[0].joinpath('data') +THISDIR = pathlib.Path(__file__).parents[0] + +name = 'Health and Education - Water Cluster' +solution_category = ac.SOLUTION_CATEGORY.REDUCTION +period_start = 2020 +period_end = 2050 + +# % impact of educational attainment on uptake of Family Planning: +assumptions = { + 'fixed_weighting_factor': None, + 'pct_impact': 0.50, + 'use_fixed_weight': 'N', + 'Twh_per_mm3_water_produced': 0.00127, + 'period_start': 2020, + 'period_end': 2050, + 'Grid': 'Y', + 'Fuel': 'N', + 'Other Direct': 'N', + 'Indirect': 'N' +} + +# TABLE 1: Current TAM Mix +current_tam_mix_list = [ + ['Energy Source', 'Weighting Factor', 'Include in SOL?', 'Include in CONV?'], + ['No ALC or Pressure Management', 85.0, 'N', 'Y']] + +# Table 2: REF2, Water Demand TAM (TWh Therms) +# SpaceCooling_cluster!B28:K75 +# TODO: Replace this with solarpvutil.Scenario.ref_tam_per_region once we resolve the data mismatch +ref2_tam_list = [ + ['World', 'OECD90', 'Eastern Europe', 'Asia (Sans Japan)', 'Middle East and Africa', 'Latin America', 'China', 'India', 'EU', 'USA'], + [438696.450125, 137774.083575, 40458.669774, 168421.147393, 37663.600616, 62060.414564, 46977.096436, 22776.645123, 67712.398314, 73092.90083], + [449459.895364, 140001.898905, 41491.645606, 173450.743278, 38783.889227, 63482.802912, 50301.46851, 24025.852653, 68179.108035, 73714.670488], + [460420.482029, 142550.343661, 42450.962353, 178659.645751, 39758.115609, 65041.38565, 53610.501861, 25227.205309, 68961.173166, 74873.306643], + [471539.842987, 145123.808735, 43411.942306, 183928.708223, 40758.241949, 66633.219061, 56813.098606, 26485.338054, 69728.984867, 76024.492709], + [482822.415743, 147723.567586, 44375.397639, 189259.281084, 41784.915485, 68258.054042, 59911.17343, 27798.722772, 70482.718803, 77168.310436], + [494272.637805, 150350.893671, 45342.140524, 194652.714726, 42838.783455, 69915.641488, 62906.641016, 29165.831349, 71222.550638, 78304.84157], + [505894.94668, 153007.060446, 46312.983134, 200110.359541, 43920.493096, 71605.732295, 65801.416051, 30585.135671, 71948.656036, 79434.16786], + [517693.779873, 155693.341369, 47288.737644, 205633.565918, 45030.691644, 73328.077359, 68597.413218, 32055.107621, 72661.210661, 80556.371052], + [529673.574893, 158411.009898, 48270.216227, 211223.684251, 46170.026339, 75082.427575, 71296.547201, 33574.219086, 73360.390179, 81671.532895], + [541838.769246, 161161.339488, 49258.231054, 216882.06493, 47339.144417, 76868.533841, 73900.732687, 35140.94195, 74046.370252, 82779.735137], + [554193.800438, 163945.603598, 50253.594301, 222610.058347, 48538.693116, 78686.147051, 76411.884359, 36753.748099, 74719.326546, 83881.059526], + [566743.105978, 166765.075685, 51257.11814, 228409.014893, 49769.319672, 80535.018102, 78831.916901, 38411.109417, 75379.434724, 84975.587808], + [579491.12337, 169621.029205, 52269.614744, 234280.284959, 51031.671324, 82414.89789, 81162.745, 40111.49779, 76026.870452, 86063.401733], + [592442.290123, 172514.737617, 53291.896287, 240225.218937, 52326.395309, 84325.537309, 83406.283339, 41853.385103, 76661.809393, 87144.583047], + [605601.043744, 175447.474377, 54324.774942, 246245.167218, 53654.138865, 86266.687257, 85564.446602, 43635.24324, 77284.427211, 88219.213498], + [618971.821738, 178420.512942, 55369.062882, 252341.480194, 55015.549228, 88238.098629, 87639.149476, 45455.544088, 77894.899571, 89287.374835], + [632559.061613, 181435.126769, 56425.57228, 258515.508255, 56411.273636, 90239.522321, 89632.306643, 47312.75953, 78493.402138, 90349.148804], + [646367.200875, 184492.589317, 57495.115311, 264768.601794, 57841.959327, 92270.709229, 91545.83279, 49205.361453, 79080.110575, 91404.617155], + [660400.677033, 187594.174042, 58578.504146, 271102.111202, 59308.253538, 94331.410249, 93381.642599, 51131.821741, 79655.200547, 92453.861634], + [674663.927591, 190741.1544, 59676.550959, 277517.38687, 60810.803507, 96421.376276, 95141.650758, 53090.61228, 80218.847718, 93496.963989], + [689161.390058, 193934.80385, 60790.067924, 284015.779189, 62350.25647, 98540.358207, 96827.771948, 55080.204954, 80771.227752, 94534.005968], + [703897.501939, 197176.395849, 61919.867213, 290598.638551, 63927.259666, 100688.106937, 98441.920857, 57099.071648, 81312.516315, 95565.069319], + [718876.700743, 200467.203854, 63066.761001, 297267.315347, 65542.460332, 102864.373363, 99986.012167, 59145.684248, 81842.889069, 96590.235789], + [734103.423975, 203808.501321, 64231.56146, 304023.159969, 67196.505705, 105068.90838, 101461.960565, 61218.514639, 82362.52168, 97609.587127], + [749582.109143, 207201.561709, 65415.080763, 310867.522807, 68890.043023, 107301.462884, 102871.680733, 63316.034706, 82871.589811, 98623.20508], + [765317.193753, 210647.658473, 66618.131084, 317801.754254, 70623.719522, 109561.787771, 104217.087358, 65436.716334, 83370.269127, 99631.171395], + [781313.115312, 214148.065073, 67841.524597, 324827.204701, 72398.182442, 111849.633937, 105500.095124, 67579.031408, 83858.735293, 100633.567822], + [797574.311328, 217704.054964, 69086.073473, 331945.224539, 74214.079018, 114164.752277, 106722.618715, 69741.451813, 84337.163972, 101630.476106], + [814105.219306, 221316.901604, 70352.589888, 339157.164159, 76072.056488, 116506.893689, 107886.572816, 71922.449434, 84805.730829, 102621.977997], + [830910.276754, 224987.87845, 71641.886013, 346464.373953, 77972.762091, 118875.809066, 108993.872111, 74120.496157, 85264.611528, 103608.155242], + [847993.921179, 228718.258959, 72954.774022, 353868.204312, 79916.843063, 121271.249307, 110046.431286, 76334.063866, 85713.981734, 104589.089588], + [865360.590086, 232509.316589, 74292.066088, 361370.005628, 81904.946641, 123692.965305, 111046.165025, 78561.624447, 86154.01711, 105564.862784], + [883014.720985, 236362.324797, 75654.574385, 368971.128292, 83937.720063, 126140.707958, 111994.988012, 80801.649785, 86584.893322, 106535.556576], + [900960.75138, 240278.557039, 77043.111086, 376672.922695, 86015.810568, 128614.228161, 112894.814933, 83052.611764, 87006.786033, 107501.252714], + [919203.118779, 244259.286774, 78458.488365, 384476.739229, 88139.865391, 131113.27681, 113747.560472, 85312.98227, 87419.870907, 108462.032945], + [937746.260689, 248305.787457, 79901.518393, 392383.928285, 90310.53177, 133637.6048, 114555.139313, 87581.233189, 87824.32361, 109417.979016], + [956594.614616, 252419.332547, 81373.013345, 400395.840254, 92528.456943, 136186.963029, 115319.466142, 89855.836404, 88220.319805, 110369.172675], + [975752.618068, 256601.195501, 82873.785395, 408513.825528, 94794.288148, 138761.102391, 116042.455642, 92135.263802, 88608.035157, 111315.69567], + [995224.708551, 260852.649775, 84404.646714, 416739.234498, 97108.672621, 141359.773782, 116726.022499, 94417.987266, 88987.645329, 112257.629749], + [1015015.323572, 265174.968828, 85966.409477, 425073.417556, 99472.257601, 143982.728099, 117372.081397, 96702.478684, 89359.325987, 113195.05666], + [1035128.900638, 269569.426116, 87559.885857, 433517.725093, 101885.690324, 146629.716238, 117982.54702, 98987.209938, 89723.252794, 114128.05815], + [1055569.877256, 274037.295096, 89185.888026, 442073.5075, 104349.618028, 149300.489093, 118559.334055, 101270.652916, 90079.601416, 115056.715966], + [1076342.690933, 278579.849225, 90845.228159, 450742.115169, 106864.68795, 151994.797562, 119104.357184, 103551.279501, 90428.547515, 115981.111858], + [1097451.779175, 283198.361962, 92538.718429, 459524.898491, 109431.547328, 154712.39254, 119619.531093, 105827.561579, 90770.266757, 116901.327572], + [1118901.579489, 287894.106762, 94267.171008, 468423.207858, 112050.8434, 157453.024922, 120106.770467, 108097.971035, 91104.934805, 117817.444857], + [1140696.529382, 292668.357084, 96031.39807, 477438.39366, 114723.223402, 160216.445605, 120567.989989, 110360.979754, 91432.727325, 118729.54546], + [1162841.066362, 297522.386384, 97832.211789, 486571.806289, 117449.334573, 163002.405485, 121005.104345, 112615.059621, 91753.81998, 119637.711128]] + +# GRID EMISSIONS FACTORS: REF Grid EFs kg CO2-eq per kwh +# Emissions Factors!B11:K57 +# TODO: Replace this with emissions_factors module once interface is better understood +ef_co2_eq_list = [ + ['World', 'OECD90', 'Eastern Europe', 'Asia (Sans Japan)', 'Middle East and Africa', 'Latin America', 'China', 'India', 'EU', 'USA'], + [None, None, None, None, None, None, None, None, None, None], + [0.617381628, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.613053712, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.605559021, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.599823764, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.596692109, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.592956465, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.589394210, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.585889941, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.582469966, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.579126508, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.576180724, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.572640473, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.569484654, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.566378788, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.563317175, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.560425096, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.557305440, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.554345365, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.551409592, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.548493724, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.545513743, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.542688056, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.539794403, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.536903541, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.533998347, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.530880184, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.528185055, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.525268472, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.522337859, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.519390128, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.516316183, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.513431317, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.510414389, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.507368630, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.504753472, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.503017663, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.501095098, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.499244741, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.497355610, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.495425752, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.493412239, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.491436597, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.489373931, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.487263794, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.485104746, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666], + [0.483057065, 0.454068989, 0.724747956, 0.457658947, 0.282243907, 0.564394712, 0.535962403, 0.787832379, 0.360629290, 0.665071666]] + +class Cluster: + + def __init__(self): + self.name = name + + def run_cluster(self): + scenario = cluster_model.Scenario(name, assumptions) + scenario.load_pop_data(DATADIR) + scenario.load_tam_mix(current_tam_mix_list) + scenario.load_ref2_tam(ref2_tam_list) + scenario.calc_ref1_tam() + scenario.calc_ref2_demand() + scenario.calc_ref1_demand() + scenario.calc_change_demand() + scenario.calc_addl_units_highed() + scenario.calc_addl_units_lowed() + scenario.calc_emis_diff_highed_water(ef_co2_eq_list) + scenario.calc_emis_diff_lowed_water() + scenario.calc_emis_alloc_lldc() + scenario.calc_addl_units_mdc() + scenario.calc_emis_diff_mdc_water() + scenario.calc_emis_alloc_mdc() + scenario.calc_total_emis() + scenario.print_total_emis() + return scenario + +if __name__ == "__main__": + cluster = Cluster() + cluster.run_cluster() \ No newline at end of file diff --git a/solution/health_and_education/tests/expected_water.csv b/solution/health_and_education/tests/expected_water.csv new file mode 100644 index 000000000..b01acf6be --- /dev/null +++ b/solution/health_and_education/tests/expected_water.csv @@ -0,0 +1,240 @@ +Water_cluster,,Water Demand,(Million m3),,,,,Sheet Estimates the Emissions Reduction from this Solution due to Health & Education,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,Period Start:,2020,,Total Emissions Avoided due to Health & Education (Gt CO2-eq),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,COPY VALUES FROM SOLUTION MODEL,,,,Period End:,2050,,,,2020-2050,2015-2060,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,TABLE 1: Current TAM Mix,2018,Include in SOL?,Include in CONV?,,,,LLDC,SOLUTION,0.00,0.00,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,No ALC or Pressure Management,0.85,N,Y,,,,,CONVENTIONAL,0.32,0.67,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +Keywords:,,,,,,,,,,,MDC,SOLUTION,0.00,0.00,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +LLDC,Least and Less Developed Countries,,,,,,,,,,,CONVENTIONAL,0.43,0.85,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +MDC,More Developed Countries,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +LLDC+HighNRR+HigherEd,Least and Less Developed Countries with High Net Reproductive Rates & Higher Educational Attainment.,"NOTE: China, LAC, and EE are considered as LLDC Regions with Low NRR and are accounted for under the _mdc sheet.",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +LLDC+HighNRR+LowEd,"Least and Less Developed Countries with High Net Reproductive Rates & Lower Educational Attainment. This excludes China, LAC, and EE.","NOTE: China, LAC, and EE are considered as LLDC Regions with Low NRR and are accounted for under the _mdc sheet.",,,,,,,,,TOTAL,SOLUTION,0.00,0.00,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +REF1,Reference Scenario 1 with Higher Population,,,,,,,,,,,CONVENTIONAL,0.75,1.52,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +REF2,Reference Scenario 2 with Lower Population,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +TAM,Total Addressable Market,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +LAC,Latin American Countries,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +EE,Eastern Europe,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +TWh,Terrawatt-Hours,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +NRR,Net Reproductive Rate,,,Assumptions:,,Use fixed weight?,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,Fixed weighting factor:,,N,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,% impact of educational attainment on uptake of Family Planning:,0.5,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,Twh per Million m3 of Water produced,0.00127,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,Fuel unit (TJ) per TWh,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,Direct Emissions,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,Indirect Emissions,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +"Table 2: REF2, Water Demand TAM (Million m3)",,,,,,,,,,,,"Table 3: REF1 ,Water Demand TAM (Million m3)",,,,,,,,,,,,Table 3: REF1 Water Demand TAM (Million m3),,,,,,,,,,,,Table 3: REF1 Water Demand TAM (Million m3),,,,,,,,,,,,,,,,,,,,, +COPY TABLES BELOW FROM LATEST Water_cluster SOLUTION MODELS,,,,,,,,,,,,(a) FOR POPULATIONS IN REGIONS WITH LOW EDUCATIONAL ATTAINMENT ONLY!,,,,,,,,,,,,(b) FOR REGIONS WITH HIGHER EDUCATIONAL ATTAINMENT,,,,,,,,,,,,(c) FOR ALL REGIONS,,,,,,,,,,,,,,,,,,,,, +,Regions included as LLDC+HighNRR:,N,N,Y,Y,N,,,,,,,Regions included as LLDC+HighNRR:,N,N,Y,Y,N,,,,,,,Regions included as LLDC+HighNRR:,N,N,Y,Y,N,,,,,,,,,,,,,,,,,,CHECK,,,,,,,,, +,World,OECD90,Eastern Europe,Asia (Sans Japan),Middle East and Africa,Latin America,China,India,EU,USA,,,World,OECD90,Eastern Europe,"Asia (Sans Japan, Sans China)",Middle East and Africa,Latin America,China,India,EU,USA,,,World,OECD90,Eastern Europe,Asia (Sans Japan),Middle East and Africa,Latin America,China,India,EU,USA,,,World,OECD90,Eastern Europe,Asia (Sans Japan),Middle East and Africa,Latin America,China,India,EU,USA,,WORLD,,REGIONAL TOTAL,,% error,OECD90,Eastern Europe,Asia (Sans Japan),Middle East and Africa,Latin America +2014,438696.450125,137774.083575,40458.669774,168421.147393,37663.600616,62060.414564,46977.096436,22776.645123,67712.398314,73092.900830,,2014,0,0,0,0,0,0,0,0,0,0,,2014,438696.4501,137774.0836,40458.66977,168421.1474,37663.60062,62060.41456,46977.09644,22776.64512,67712.39831,73092.90083,,2014,438696.4501,137774.0836,40458.66977,168421.1474,37663.60062,62060.41456,46977.09644,22776.64512,67712.39831,73092.90083,,438696.4501,OK,446377.9159,OK,,137774.0836,40458.66977,168421.1474,37663.60062,62060.41456 +2015,449459.895364,140001.898905,41491.645606,173450.743278,38783.889227,63482.802912,50301.468510,24025.852653,68179.108035,73714.670488,,2015,106230.4905,0,864.1197932,64288.29505,23249.13459,17828.94104,0,0,0,0,,2015,343229.4049,140001.8989,40627.52581,109162.4482,15534.75464,45653.86187,50301.46851,24025.85265,68179.10803,73714.67049,,2015,449459.8954,140001.8989,41491.64561,173450.7433,38783.88923,63482.80291,50301.46851,24025.85265,68179.10803,73714.67049,,449459.8954,OK,457210.9799,OK,,140001.8989,41491.64561,173450.7433,38783.88923,63482.80291 +2016,460420.482029,142550.343661,42450.962353,178659.645751,39758.115609,65041.385650,53610.501861,25227.205309,68961.173166,74873.306643,,2016,108815.2261,0,904.362624,65605.02149,23957.77124,18348.07071,0,0,0,0,,2016,352090.4407,142668.3096,41579.11601,113246.0933,15844.37929,46779.96359,53658.0982,25256.29921,69010.4568,74943.66039,,2016,460905.6668,142668.3096,42483.47864,178851.1148,39802.15053,65128.0343,53658.0982,25256.29921,69010.4568,74943.66039,,460905.6668,OK,468933.0879,OK,,142668.3096,42483.47864,178851.1148,39802.15053,65128.0343 +2017,471539.842987,145123.808735,43411.942306,183928.708223,40758.241949,66633.219061,56813.098606,26485.338054,69728.984867,76024.492709,,2017,111601.7563,0,946.7469629,67062.99555,24698.60955,18893.40418,0,0,0,0,,2017,361136.4464,145415.3573,42546.02722,117341.4511,16167.48419,47954.12743,56935.02109,26558.96648,69850.27344,76197.52485,,2017,472738.2027,145415.3573,43492.77418,184404.4467,40866.09375,66847.53162,56935.02109,26558.96648,69850.27344,76197.52485,,472738.2027,OK,481026.2036,OK,,145415.3573,43492.77418,184404.4467,40866.09375,66847.53162 +2018,482822.415743,147723.567586,44375.397639,189259.281084,41784.915485,68258.054042,59911.173430,27798.722772,70482.718803,77168.310436,,2018,114584.6786,0,991.1654801,68658.72664,25471.21152,19463.57494,0,0,0,0,,2018,370352.4893,148237.9477,43527.00992,121444.2461,16503.01126,49173.87274,60131.80848,27932.03944,70695.22004,77472.11286,,2018,484937.1679,148237.9477,44518.1754,190102.9727,41974.22277,68637.44769,60131.80848,27932.03944,70695.22004,77472.11286,,484937.1679,OK,493470.7663,OK,,148237.9477,44518.1754,190102.9727,41974.22277,68637.44769 +2019,494272.637805,150350.893671,45342.140524,194652.714726,42838.783455,69915.641488,62906.641016,29165.831349,71222.550638,78304.841570,,2019,117751.8869,0,1037.363903,70384.37786,26274.38224,20055.76287,0,0,0,0,,2019,379707.0932,151125.0528,44518.92899,125544.5102,16848.98354,50434.23203,63243.84178,29372.19967,71539.29604,78759.88911,,2019,497458.98,151125.0528,45556.2929,195928.8881,43123.36578,70489.9949,63243.84178,29372.19967,71539.29604,78759.88911,,497458.98,OK,506223.5944,OK,,151125.0528,45556.2929,195928.8881,43123.36578,70489.9949 +2020,505894.946680,153007.060446,46312.983134,200110.359541,43920.493096,71605.732295,65801.416051,30585.135671,71948.656036,79434.167860,,2020,121094.6931,0,1085.138241,72234.31503,27107.47367,20667.7662,0,0,0,0,,2020,389176.2791,154068.3804,45519.48419,129634.0931,17203.88074,51731.28017,66267.05418,30876.52522,72377.89876,80055.07287,,2020,510270.9723,154068.3804,46604.62243,201868.4081,44311.35441,72399.04637,66267.05418,30876.52522,72377.89876,80055.07287,,510270.9723,OK,519251.8117,OK,,154068.3804,46604.62243,201868.4081,44311.35441,72399.04637 +2021,517693.779873,155693.341369,47288.737644,205633.565918,45030.691644,73328.077359,68597.413218,32055.107621,72661.210661,80556.371052,,2021,124613.5545,0,1134.487198,74209.10192,27970.73174,21299.23367,0,0,0,0,,2021,398757.2005,157067.1339,46528.6755,133711.1153,17567.62606,53064.40951,69201.35358,32443.70882,73209.90616,81356.21083,,2021,523370.755,157067.1339,47663.16269,207920.2172,45538.3578,74363.64318,69201.35358,32443.70882,73209.90616,81356.21083,,523370.755,OK,532552.5147,OK,,157067.1339,47663.16269,207920.2172,45538.3578,74363.64318 +2022,529673.574893,158411.009898,48270.216227,211223.684251,46170.026339,75082.427575,71296.547201,33574.219086,73360.390179,81671.532895,,2022,128314.9218,0,1185.526598,76312.89749,28865.46968,21951.02808,0,0,0,0,,2022,408461.5853,160125.9267,47548.44971,137778.7062,17940.64914,54434.87782,72049.84592,34073.67018,74036.86065,82665.10306,,2022,536776.5072,160125.9267,48733.97631,214091.6037,46806.11881,76385.90589,72049.84592,34073.67018,74036.86065,82665.10306,,536776.5072,OK,546143.5314,OK,,160125.9267,48733.97631,214091.6037,46806.11881,76385.90589 +2023,541838.769246,161161.339488,49258.231054,216882.064930,47339.144417,76868.533841,73900.732687,35140.941950,74046.370252,82779.735137,,2023,132202.2761,0,1238.279941,78547.27873,29793.33264,22623.38477,0,0,0,0,,2023,418295.2892,163247.5212,48580.52397,141838.7517,18322.4476,55842.45054,74814.52532,35765.83127,74859.71451,83982.73249,,2023,550497.5653,163247.5212,49818.80391,220386.0304,48115.78024,78465.83531,74814.52532,35765.83127,74859.71451,83982.73249,,550497.5653,OK,560033.9711,FALSE,,163247.5212,49818.80391,220386.0304,48115.78024,78465.83531 +2024,554193.800438,163945.603598,50253.594301,222610.058347,48538.693116,78686.147051,76411.884359,36753.748099,74719.326546,83881.059526,,2024,136280.3153,0,1292.788051,80914.30265,30756.423,23316.80164,0,0,0,0,,2024,428267.9983,166436.1953,49627.36382,145894.776,18712.44418,57287.12653,77498.40351,37519.93467,75680.26554,85311.05138,,2024,564548.3136,166436.1953,50920.15187,226809.0786,49468.86718,80603.92817,77498.40351,37519.93467,75680.26554,85311.05138,,564548.3136,OK,574238.2212,OK,,166436.1953,50920.15187,226809.0786,49468.86718,80603.92817 +2025,566743.105978,166765.075685,51257.118140,228409.014893,49769.319672,80535.018102,78831.916901,38411.109417,75379.434724,84975.587808,,2025,140552.4227,0,1349.096138,83415.42916,31756.35556,24031.54188,0,0,0,0,,2025,438386.6621,169695.0459,50691.05165,149949.3293,19110.15973,58768.6844,80104.1016,39335.40701,76499.69962,86651.17053,,2025,578939.0848,169695.0459,52040.14779,233364.7584,50866.51529,82800.22628,80104.1016,39335.40701,76499.69962,86651.17053,,578939.0848,OK,588766.6937,OK,,169695.0459,52040.14779,233364.7584,50866.51529,82800.22628 +2026,579491.123370,169621.029205,52269.614744,234280.284959,51031.671324,82414.897890,81162.745000,40111.497790,76026.870452,86063.401733,,2026,145022.3779,0,1407.257039,86052.87871,32794.355,24767.88712,0,0,0,0,,2026,448655.9687,173026.2013,51772.81839,154003.4011,19515.48469,60287.07645,82633.16184,41211.72258,77318.2834,88003.42979,,2026,593678.3465,173026.2013,53180.07543,240056.2798,52309.83968,85054.96357,82633.16184,41211.72258,77318.2834,88003.42979,,593678.3465,OK,603627.3598,OK,,173026.2013,53180.07543,240056.2798,52309.83968,85054.96357 +2027,592442.290123,172514.737617,53291.896287,240225.218937,52326.395309,84325.537309,83406.283339,41853.385103,76661.809393,87144.583047,,2027,149689.617,0,1467.317645,88826.49433,33870.49247,25525.31253,0,0,0,0,,2027,459072.8214,176428.4329,52872.98175,158055.4632,19928.30923,61841.37951,85086.01555,43147.20247,78134.90432,89366.01938,,2027,608762.4384,176428.4329,54340.2994,246881.9575,53798.8017,87366.69204,85086.01555,43147.20247,78134.90432,89366.01938,,608762.4384,OK,618816.1835,OK,,176428.4329,54340.2994,246881.9575,53798.8017,87366.69204 +2028,605601.043744,175447.474377,54324.774942,246245.167218,53654.138865,86266.687257,85564.446602,43635.243240,77284.427211,88219.213498,,2028,154547.6819,0,1529.315492,91732.27714,34983.82214,26302.26713,0,0,0,0,,2028,469627.1436,179897.3546,53991.67128,162102.6208,20348.18937,63429.39576,87462.97981,45138.57296,78947.71968,90735.29518,,2028,624174.8254,179897.3546,55520.98677,253834.898,55332.0115,89731.66289,87462.97981,45138.57296,78947.71968,90735.29518,,624174.8254,OK,634316.9138,OK,,179897.3546,55520.98677,253834.898,55332.0115,89731.66289 +2029,618971.821738,178420.512942,55369.062882,252341.480194,55015.549228,88238.098629,87639.149476,45455.544088,77894.899571,89287.374835,,2029,159586.5172,0,1593.284519,94763.99215,36132.69044,27096.55005,0,0,0,0,,2029,480303.872,183426.1936,55128.55224,166140.5779,20774.62764,65048.18293,89763.87472,47181.4497,79754.11339,92106.25212,,2029,639890.3891,183426.1936,56721.83676,260904.57,56907.31808,92144.73298,89763.87472,47181.4497,79754.11339,92106.25212,,639890.3891,OK,650104.6514,FALSE,,183426.1936,56721.83676,260904.57,56907.31808,92144.73298 +2030,632559.061613,181435.126769,56425.572280,258515.508255,56411.273636,90239.522321,89632.306643,47312.759530,78493.402138,90349.148804,,2030,164799.0562,0,1659.280254,97917.18666,37316.08618,27906.50313,0,0,0,0,,2030,491092.7916,187009.9193,56283.50601,170166.2843,21207.36241,66695.48514,91988.89666,49272.05841,80552.0172,93475.03588,,2030,655891.8478,187009.9193,57942.78627,268083.471,58523.4486,94601.98827,91988.89666,49272.05841,80552.0172,93475.03588,,655891.8478,OK,666161.6134,OK,,187009.9193,57942.78627,268083.471,58523.4486,94601.98827 +2031,646367.200875,184492.589317,57495.115311,264768.601794,57841.959327,92270.709229,91545.832790,49205.361453,79080.110575,91404.617155,,2031,170183.6821,0,1727.350457,101190.7004,38534.27989,28731.35132,0,0,0,0,,2031,501991.0497,190646.8902,57456.95109,174178.319,21646.24996,68370.08457,94138.42222,51408.00037,81340.43783,94840.03479,,2031,672174.7319,190646.8902,59184.30155,275369.0194,60180.52985,97101.43589,94138.42222,51408.00037,81340.43783,94840.03479,,672174.7319,OK,682482.1769,OK,,190646.8902,59184.30155,275369.0194,60180.52985,97101.43589 +2032,660400.677033,187594.174042,58578.504146,271102.111202,59308.253538,94331.410249,93381.642599,51131.821741,79655.200547,92453.861634,,2032,175744.9852,0,1797.618326,104587.2626,39788.56313,29571.54119,0,0,0,0,,2032,513005.9328,194339.2201,58649.85958,178178.3181,22091.6496,70072.29558,96214.15632,53588.52221,82119.51091,96201.72108,,2032,688750.918,194339.2201,60447.4779,282765.5807,61880.21273,99643.83677,96214.15632,53588.52221,82119.51091,96201.72108,,688750.918,OK,699076.3281,OK,,194339.2201,60447.4779,282765.5807,61880.21273,99643.83677 +2033,674663.927591,190741.154400,59676.550959,277517.386870,60810.803507,96421.376276,95141.650758,53090.612280,80218.847718,93496.963989,,2033,181489.8838,0,1870.319933,108111.1923,41080.20534,30428.16629,0,0,0,0,,2033,524150.1709,198090.2329,59863.27693,182170.185,22544.48014,71803.33828,98219.3367,55813.50717,82889.64542,97560.89423,,2033,705640.0547,198090.2329,61733.59686,290281.3773,63624.68549,102231.5046,98219.3367,55813.50717,82889.64542,97560.89423,,705640.0547,OK,715961.3971,OK,,198090.2329,61733.59686,290281.3773,63624.68549,102231.5046 +2034,689161.390058,193934.803850,60790.067924,284015.779189,62350.256470,98540.358207,96827.771948,55080.204954,80771.227752,94534.005968,,2034,187428.9956,0,1945.765696,111769.2473,42410.89385,31303.08875,0,0,0,0,,2034,535442.5246,201905.3692,61098.5202,186159.8854,23006.02482,73565.43201,100158.3176,58083.90363,83651.82428,98919.35242,,2034,722871.5203,201905.3692,63044.28589,297929.1327,65416.91868,104868.5208,100158.3176,58083.90363,83651.82428,98919.35242,,722871.5203,OK,733164.2272,OK,,201905.3692,63044.28589,297929.1327,65416.91868,104868.5208 +2035,703897.501939,197176.395849,61919.867213,290598.638551,63927.259666,100688.106937,98441.920857,57099.071648,81312.516315,95565.069319,,2035,193572.2973,0,2024.239993,115567.8738,43782.24347,32197.94005,0,0,0,0,,2035,546899.4143,205789.5764,62356.79043,190152.4789,23477.35702,75360.50236,102034.8495,60400.5867,84406.8163,100278.6685,,2035,740471.7115,205789.5764,64381.03042,305720.3527,67259.60049,107558.4424,102034.8495,60400.5867,84406.8163,100278.6685,,740471.7115,OK,750709.0024,OK,,205789.5764,64381.03042,305720.3527,67259.60049,107558.4424 +2036,718876.700743,200467.203854,63066.761001,297267.315347,65542.460332,102864.373363,99986.012167,59145.684248,81842.889069,96590.235789,,2036,199924.5866,0,2105.914386,119510.0721,45195.29082,33113.30931,0,0,0,0,,2036,558528.9474,209745.2315,63639.14503,194150.3041,23958.96243,77189.12068,103851.2758,62762.94646,85154.82363,101639.1145,,2036,758453.534,209745.2315,65745.05941,313660.3762,69154.25325,110302.43,103851.2758,62762.94646,85154.82363,101639.1145,,758453.534,OK,768607.3504,OK,,209745.2315,65745.05941,313660.3762,69154.25325,110302.43 +2037,734103.423975,203808.501321,64231.561460,304023.159969,67196.505705,105068.908380,101461.960565,61218.514639,82362.521680,97609.587127,,2037,206490.1115,0,2190.914562,123598.6882,46651.10201,34049.40668,0,0,0,0,,2037,570335.6519,213773.8218,64946.251,198153.9544,24451.04209,79051.39892,105608.5322,65170.36653,85895.55638,103000.7419,,2037,776825.7634,213773.8218,67137.16557,321752.6426,71102.14409,113100.8056,105608.5322,65170.36653,85895.55638,103000.7419,,776825.7634,OK,786866.5797,OK,,213773.8218,67137.16557,321752.6426,71102.14409,113100.8056 +2038,749582.109143,207201.561709,65415.080763,310867.522807,68890.043023,107301.462884,102871.680733,63316.034706,82871.589811,98623.205080,,2038,213278.8261,0,2279.439258,127840.7113,48151.47153,35007.20403,0,0,0,0,,2038,582329.0268,217878.8919,66278.4976,202164.8703,24954.0673,80948.48607,107307.3493,67624.12529,86628.81876,104364.8803,,2038,795607.8529,217878.8919,68557.93685,330005.5816,73105.53882,115955.6901,107307.3493,67624.12529,86628.81876,104364.8803,,795607.8529,OK,805503.6393,OK,,217878.8919,68557.93685,330005.5816,73105.53882,115955.6901 +2039,765317.193753,210647.658473,66618.131084,317801.754254,70623.719522,109561.787771,104217.087358,65436.716334,83370.269127,99631.171395,,2039,220302.5123,0,2371.692487,132244.5963,49698.44573,35987.77777,0,0,0,0,,2039,594518.657,222064.3914,67636.04429,206183.964,25468.46829,82881.6945,108947.8038,70126.19697,87354.29021,105733.2045,,2039,814821.1692,222064.3914,70007.73678,338428.5603,75166.91402,118869.4723,108947.8038,70126.19697,87354.29021,105733.2045,,814821.1692,OK,824537.0748,OK,,222064.3914,70007.73678,338428.5603,75166.91402,118869.4723 +2040,781313.115312,214148.065073,67841.524597,324827.204701,72398.182442,111849.633937,105500.095124,67579.031408,83858.735293,100633.567822,,2040,227572.2359,0,2467.864062,136818.2421,51293.97079,36992.159,0,0,0,0,,2040,606913.9381,226334.3899,69019.31205,210212.2058,25994.64812,84852.26894,110530.2451,72678.23388,88071.90595,107107.296,,2040,834486.1741,226334.3899,71487.17611,347030.4478,77288.61891,121844.4279,110530.2451,72678.23388,88071.90595,107107.296,,834486.1741,OK,843985.0607,OK,,226334.3899,71487.17611,347030.4478,77288.61891,121844.4279 +2041,797574.311328,217704.054964,69086.073473,331945.224539,74214.079018,114164.752277,106722.618715,69741.451813,84337.163972,101630.476106,,2041,235096.4894,0,2568.145324,141567.5617,52939.59947,38021.1829,0,0,0,0,,2041,619523.794,230692.3929,70429.10452,214251.3115,26532.98287,86861.20696,112056.4111,75280.78947,88781.84895,108488.1045,,2041,854620.2834,230692.3929,72997.24984,355818.8732,79472.58234,124882.3899,112056.4111,75280.78947,88781.84895,108488.1045,,854620.2834,OK,863863.4882,OK,,230692.3929,72997.24984,355818.8732,79472.58234,124882.3899 +2042,814105.219306,221316.901604,70352.589888,339157.164159,76072.056488,116506.893689,107886.572816,71922.449434,84805.730829,102621.977997,,2042,242882.3896,0,2672.686483,146497.3055,54636.76807,39075.62948,0,0,0,0,,2042,632357.1035,235142.2998,71866.82485,218303.0756,27083.83312,88909.38835,113528.1632,77933.78319,89484.82124,109876.5937,,2042,875239.4931,235142.2998,74539.51133,364800.3811,81720.6012,127985.0178,113528.1632,77933.78319,89484.82124,109876.5937,,875239.4931,OK,884187.8113,OK,,235142.2998,74539.51133,364800.3811,81720.6012,127985.0178 +2043,830910.276754,224987.878450,71641.886013,346464.373953,77972.762091,118875.809066,108993.872111,74120.496157,85264.611528,103608.155242,,2043,250938.2609,0,2781.583742,151613.0477,56387.21311,40156.41637,0,0,0,0,,2043,645423.1322,239689.275,73334.32572,222368.4661,27647.53845,90997.80804,114946.0286,80637.52152,90181.9994,111274.4366,,2043,896361.3931,239689.275,76115.90947,373981.5138,84034.75157,131154.2244,114946.0286,80637.52152,90181.9994,111274.4366,,896361.3931,OK,904975.6742,OK,,239689.275,76115.90947,373981.5138,84034.75157,131154.2244 +2044,847993.921179,228718.258959,72954.774022,353868.204312,79916.843063,121271.249307,110046.431286,76334.063866,85713.981734,104589.089588,,2044,259272.1968,0,2894.900046,156920.1074,58192.7167,41264.47262,0,0,0,0,,2044,658731.2393,244339.0867,74833.91792,226448.2112,28224.41117,93127.44481,116310.2138,83392.10527,90874.9347,112683.5035,,2044,918003.4361,244339.0867,77728.81797,383368.3186,86417.12787,134391.9174,116310.2138,83392.10527,90874.9347,112683.5035,,918003.4361,OK,926245.2686,OK,,244339.0867,77728.81797,383368.3186,86417.12787,134391.9174 +2045,865360.590086,232509.316589,74292.066088,361370.005628,81904.946641,123692.965305,111046.165025,78561.624447,86154.017110,105564.862784,,2045,267892.0922,0,3012.717709,162423.6925,60055.01516,42400.66683,0,0,0,0,,2045,672290.6231,249097.2697,76367.88165,230543.2229,28814.71872,95299.25178,117621.4818,86197.4036,91565.06547,114105.4214,,2045,940182.7153,249097.2697,79380.59936,392966.9154,88869.73389,137699.9186,117621.4818,86197.4036,91565.06547,114105.4214,,940182.7153,OK,948014.437,OK,,249097.2697,79380.59936,392966.9154,88869.73389,137699.9186 +2046,883014.720985,236362.324797,75654.574385,368971.128292,83937.720063,126140.707958,111994.988012,80801.649785,86584.893322,106535.556576,,2046,276806.3052,0,3135.19734,168129.5325,61975.74358,43565.83174,0,0,0,0,,2046,686110.1633,253968.2689,77937.86405,234654.8674,29418.73891,97514.19506,118881.3292,89053.48572,92253.13708,115541.2148,,2046,962916.4685,253968.2689,81073.06139,402784.4,91394.48249,141080.0268,118881.3292,89053.48572,92253.13708,115541.2148,,962916.4685,FALSE,970300.2395,OK,,253968.2689,81073.06139,402784.4,91394.48249,141080.0268 +2047,900960.751380,240278.557039,77043.111086,376672.922695,86015.810568,128614.228161,112894.814933,83052.611764,87006.786033,107501.252714,,2047,286022.4143,0,3262.510823,174042.7942,63956.4568,44760.65244,0,0,0,0,,2047,700198.4076,258956.2464,79545.51432,238784.8284,30036.65103,99773.16661,120092.3501,91959.79573,92939.85489,116991.6346,,2047,986220.8219,258956.2464,82808.02514,412827.6226,93993.10783,144533.819,120092.3501,91959.79573,92939.85489,116991.6346,,986220.8219,FALSE,993118.8211,OK,,258956.2464,82808.02514,412827.6226,93993.10783,144533.819 +2048,919203.118779,244259.286774,78458.488365,384476.739229,88139.865391,131113.276810,113747.560472,85312.982270,87419.870907,108462.032945,,2048,295546.277,0,3394.764064,180167.1761,65998.70769,45985.62917,0,0,0,0,,2048,714563.8506,264066.2338,81193.2993,242934.7684,30668.48106,102076.9229,121257.9018,94914.56273,93626.64967,118457.6588,,2048,1010110.128,264066.2338,84588.06337,423101.9445,96667.18874,148062.552,121257.9018,94914.56273,93626.64967,118457.6588,,1010110.128,OK,1016485.983,OK,,264066.2338,84588.06337,423101.9445,96667.18874,148062.552 +2049,937746.260689,248305.787457,79901.518393,392383.928285,90310.531770,133637.604800,114555.139313,87581.233189,87824.323610,109417.979016,,2049,305382.6854,0,3532.049754,186505.5057,68104.00975,47241.12015,0,0,0,0,,2049,729214.8973,269303.4056,82883.9899,247106.5661,31314.16592,104426.1273,122382.1085,97915.2499,94315.14493,119940.1848,,2049,1034597.583,269303.4056,86416.03966,433612.0718,99418.17567,151667.2475,122382.1085,97915.2499,94315.14493,119940.1848,,1034597.583,OK,1040416.94,OK,,269303.4056,86416.03966,433612.0718,99418.17567,151667.2475 +2050,956594.614616,252419.332547,81373.013345,400395.840254,92528.456943,136186.963029,115319.466142,89855.836404,88220.319805,110369.172675,,2050,315536.5987,0,3674.488248,193060.7515,70273.86377,48527.49513,0,0,0,0,,2050,744159.9925,274672.6267,84620.23949,251302.2703,31973.67615,106821.4405,123469.0098,100959.4238,95006.73362,121439.9095,,2050,1059696.591,274672.6267,88294.72773,444363.0219,102247.5399,155348.9357,123469.0098,100959.4238,95006.73362,121439.9095,,1059696.591,OK,1064926.852,OK,,274672.6267,88294.72773,444363.0219,102247.5399,155348.9357 +2051,975752.618068,256601.195501,82873.785395,408513.825528,94794.288148,138761.102391,116042.455642,92135.263802,88608.035157,111315.695670,,2051,326014.8797,0,3822.259743,199837.3746,72509.87821,49845.36715,0,0,0,0,,2051,759407.7735,280178.6178,86404.31965,255523.5287,32647.15688,109263.6885,124520.9718,104045.8133,95702.37659,122957.5664,,2051,1085422.653,280178.6178,90226.5794,455360.9033,105157.0351,159109.0556,124520.9718,104045.8133,95702.37659,122957.5664,,1085422.653,OK,1090032.191,OK,,280178.6178,90226.5794,455360.9033,105157.0351,159109.0556 +2052,995224.708551,260852.649775,84404.646714,416739.234498,97108.672621,141359.773782,116726.022499,94417.987266,88987.645329,112257.629749,,2052,336824.2299,0,3975.579125,206839.7806,74813.57155,51195.29862,0,0,0,0,,2052,774966.7108,285825.2157,88238.21204,259772.4994,33334.76118,111753.6246,125540.8506,107173.1723,96402.63869,124493.3846,,2052,1111790.941,285825.2157,92213.79116,466612.2799,108148.3327,162948.9232,125540.8506,107173.1723,96402.63869,124493.3846,,1111790.941,OK,1115748.543,OK,,285825.2157,92213.79116,466612.2799,108148.3327,162948.9232 +2053,1015015.323572,265174.968828,85966.409477,425073.417556,99472.257601,143982.728099,117372.081397,96702.478684,89359.325987,113195.056660,,2053,347968.8534,0,4134.653859,214070.486,77186.22588,52577.48764,0,0,0,0,,2053,790844.8912,291615.1507,90123.97266,264052.5892,34036.46635,114291.6971,126533.9959,110338.8914,97107.98753,126046.8153,,2053,1138813.745,291615.1507,94258.62652,478123.0753,111222.6922,166869.1847,126533.9959,110338.8914,97107.98753,126046.8153,,1138813.745,OK,1142088.729,OK,,291615.1507,94258.62652,478123.0753,111222.6922,166869.1847 +2054,1035128.900638,269569.426116,87559.885857,433517.725093,101885.690324,146629.716238,117982.547020,98987.209938,89723.252794,114128.058150,,2054,359452.0153,0,4299.70679,221531.3018,79629.01638,53991.99032,0,0,0,0,,2054,807050.218,297550.2933,92063.53129,268367.8995,34752.20555,116878.2172,127506.7,113539.9364,97818.65589,127616.8062,,2054,1166502.233,297550.2933,96363.23808,489899.2013,114381.2219,170870.2075,127506.7,113539.9364,97818.65589,127616.8062,,1166502.233,OK,1169064.162,OK,,297550.2933,96363.23808,489899.2013,114381.2219,170870.2075 +2055,1055569.877256,274037.295096,89185.888026,442073.507500,104349.618028,149300.489093,118559.334055,101270.652916,90079.601416,115056.715966,,2055,371277.5706,0,4470.982574,229224.4351,82143.20399,55438.94891,0,0,0,0,,2055,823590.6543,303632.6362,94058.80169,272722.2517,35481.97505,119513.5668,128464.3127,116773.6292,98534.82351,129202.4329,,2055,1194868.225,303632.6362,98529.78426,501946.6868,117625.179,174952.5157,128464.3127,116773.6292,98534.82351,129202.4329,,1194868.225,OK,1196686.802,OK,,303632.6362,98529.78426,501946.6868,117625.179,174952.5157 +2056,1076342.690933,278579.849225,90845.228159,450742.115169,106864.687950,151994.797562,119104.357184,103551.279501,90428.547515,115981.111858,,2056,383451.7113,0,4648.724425,237153.8281,84730.33299,56918.82578,0,0,0,0,,2056,840475.1164,309865.5774,96111.9166,277118.6635,36225.90681,122198.439,129410.7236,120038.0603,99256.93677,130803.5483,,2056,1223926.828,309865.5774,100760.641,514272.4916,120956.2398,179117.2647,129410.7236,120038.0603,99256.93677,130803.5483,,1223926.828,OK,1224972.215,OK,,309865.5774,100760.641,514272.4916,120956.2398,179117.2647 +2057,1097451.779175,283198.361962,92538.718429,459524.898491,109431.547328,154712.392540,119619.531093,105827.561579,90770.266757,116901.327572,,2057,395981.1117,0,4833.223343,245323.7085,87392.00567,58432.17421,0,0,0,0,,2057,857711.9092,316252.473,98224.8772,281559.3925,36984.21281,124933.5714,130347.842,123331.9825,99985.26426,132420.1095,,2057,1253693.021,316252.473,103058.1005,526883.101,124376.2185,183365.7456,130347.842,123331.9825,99985.26426,132420.1095,,1253693.021,OK,1253935.639,OK,,316252.473,103058.1005,526883.101,124376.2185,183365.7456 +2058,1118901.579489,287894.106762,94267.171008,468423.207858,112050.843400,157453.024922,120106.770467,108097.971035,91104.934805,117817.444857,,2058,408870.5488,0,5024.844412,253736.7638,90129.60932,59979.33123,0,0,0,0,,2058,875307.5631,322794.8435,100399.2182,286046.6763,37757.08521,127719.4388,131276.4701,126654.2418,100719.462,134051.3033,,2058,1284178.112,322794.8435,105424.0626,539783.4401,127886.6945,187698.77,131276.4701,126654.2418,100719.462,134051.3033,,1284178.112,OK,1283587.811,OK,,322794.8435,105424.0626,539783.4401,127886.6945,187698.77 +2059,1140696.529382,292668.357084,96031.398070,477438.393660,114723.223402,160216.445605,120567.989989,110360.979754,91432.727325,118729.545460,,2059,422124.3936,0,5224.002718,262395.2788,92944.50119,61560.61095,0,0,0,0,,2059,893267.8162,329493.5429,102636.2016,290582.4229,38544.75272,130556.4463,132196.1139,130004.0616,101458.8905,135696.1303,,2059,1315392.21,329493.5429,107860.2043,552977.7017,131489.2539,192117.0572,132196.1139,130004.0616,101458.8905,135696.1303,,1315392.21,OK,1313937.76,OK,,329493.5429,107860.2043,552977.7017,131489.2539,192117.0572 +2060,1162841.066362,297522.386384,97832.211789,486571.806289,117449.334573,163002.405485,121005.104345,112615.059621,91753.819980,119637.711128,,2060,435747.8799,0,5431.108054,271302.1922,95838.14471,63176.43503,0,0,0,0,,2060,911599.1189,336349.7549,104937.1415,295168.6348,39347.48433,133445.1211,133106.5555,133380.7594,102202.9676,137353.7866,,2060,1347346.999,336349.7549,110368.2496,566470.8269,135185.629,196621.5562,133106.5555,133380.7594,102202.9676,137353.7866,,1347346.999,OK,1344996.017,OK,,336349.7549,110368.2496,566470.8269,135185.629,196621.5562 +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +Table 4: Total REF2 Water Demand by Economic Development Status (Million m3),,,,,,,Table 5: Total REF1 Water Demand by Economic Development Status (Million m3),,,,,,,,,,,,,,,"Table 6: Change in Water Demand by MDC vs. LLDC Regions, REF1-REF2 (Million m3)",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,LLDC+HighNRR,China,MDC + LAC + EE,Total Electricity Demand in Countries with Higher Educational Attainment (TWh), --> % LLDC,,,"LLDC with low educational attainment, excluding China","MDC + EE + LAC with low educational attainment, excluding China",China,"LLDC with higher educational attainment, excluding China",MDC + EE + LAC with higher educational attainment,,"Total Electricity Demand in Countries with Low Educational Attainment (TWh), exluding China", --> % LLDC,Total Electricity Demand in Countries with Higher Educational Attainment (TWh), --> % LLDC,Total Electricity Demand (TWh), --> % LLDC,,,LLDC,China,MDC + EE +LAC,Total change in REF1-REF2,% LLDC with higher educational attainment,% LLDC with Low Educational Attainment,% LLDC,% MDC + LAC + EE + China,,"% LLDC with low educational attainment, TWh)","% LLDC with higher educational attainment, TWh)",,,,,,,,,,,,,,,,,,,,,,,,, +2014,159107.6516,46977.09644,240293.1679,446377.9159,0.356441584,,2014,0,0,46977.09644,159107.6516,240293.1679,,0,,446377.9159,0.356441584,446377.9159,0,,,0,0,0,0,0,0,0,0,,0,1,,,,,,,,,,,,,,,,,,,,,,,,, +2015,161933.164,50301.46851,244976.3474,457210.9799,0.354176017,,2015,87537.42964,18693.06083,50301.46851,74395.73436,226283.2866,,106230.4905,0.824032999,350980.4895,0.211965441,457210.9799,0.232344574,,,0,0,0,0,0,0,0,0,,0.540577529,0.459422471,,,,,,,,,,,,,,,,,,,,,,,,, +2016,164807.2595,53610.50186,250042.6917,468460.453,0.351806131,,2016,89562.79273,19252.43333,53658.0982,75432.37437,231027.3893,,108815.2261,0.823072248,360117.8618,0.209465795,468933.0879,0.232048514,,,187.9075983,47.5963343,237.1309176,472.6348502,0.181762863,0.215811709,0.397574572,0.602425428,,0.542820704,0.457179296,,,,,,,,,,,,,,,,,,,,,,,,, +2017,167873.8516,56813.09861,255168.9701,479855.9203,0.349842202,,2017,91761.60511,19840.15114,56935.02109,76573.91423,235915.512,,111601.7563,0.822223666,369424.4473,0.207278957,481026.2036,0.232007644,,,461.6677761,121.9224851,586.6930198,1170.283281,0.179450076,0.215042252,0.394492328,0.605507672,,0.545111367,0.454888633,,,,,,,,,,,,,,,,,,,,,,,,, +2018,171133.0231,59911.17343,260357.0193,491401.2158,0.348255189,,2018,94129.93815,20454.74042,60131.80848,77815.44883,240938.8304,,114584.6786,0.821487998,378886.0877,0.205379536,493470.7663,0.232201554,,,812.3638451,220.6350456,1036.551572,2069.550463,0.177643722,0.214887825,0.392531547,0.607468453,,0.547440904,0.452559096,,,,,,,,,,,,,,,,,,,,,,,,, +2019,174584.8572,62906.64102,265608.6757,503100.1739,0.347018082,,2019,96658.7601,21093.12677,63243.84178,79149.65199,246078.2138,,117751.8869,0.820868036,388471.7076,0.203746246,506223.5944,0.232608452,,,1223.554921,337.2007668,1562.664893,3123.420581,0.176360921,0.215374642,0.391735563,0.608264437,,0.549795991,0.450204009,,,,,,,,,,,,,,,,,,,,,,,,, +2020,178229.4366,65801.41605,270925.7759,514956.6285,0.346105724,,2020,99341.7887,21752.90444,66267.05418,80570.91962,251319.1447,,121094.6931,0.820364511,398157.1185,0.202359611,519251.8117,0.233209958,,,1683.271735,465.638134,2146.273307,4295.183176,0.175504809,0.216392735,0.391897543,0.608102457,,0.552166601,0.447833399,,,,,,,,,,,,,,,,,,,,,,,,, +2021,182066.8443,68597.41322,276310.1564,526974.4139,0.345494657,,2021,102179.8337,22433.72087,69201.35358,82077.38777,256660.2189,,124613.5545,0.81997367,407938.9602,0.201200169,532552.5147,0.233992989,,,2190.37709,603.9403581,2783.783353,5578.100802,0.174916806,0.217757541,0.392674347,0.607325653,,0.554549954,0.445450046,,,,,,,,,,,,,,,,,,,,,,,,, +2022,186097.1634,71296.5472,281763.6537,539157.3643,0.345162982,,2022,105178.3672,23136.55468,72049.84592,83669.50944,262109.2542,,128314.9218,0.81968929,417828.6096,0.200248397,546143.5314,0.234947252,,,2750.713215,753.2987166,3482.155223,6986.167154,0.174446178,0.219290925,0.393737103,0.606262897,,0.556947576,0.443052424,,,,,,,,,,,,,,,,,,,,,,,,, +2023,190320.4767,73900.73269,287288.1044,551509.3137,0.345090231,,2023,108340.6114,23861.66471,74814.52532,85346.67396,267670.4957,,132202.2761,0.8195064,427831.695,0.199486562,560033.9711,0.236061173,,,3366.808672,913.7926309,4244.056046,8524.657349,0.174031152,0.220918291,0.394949443,0.605050557,,0.559358407,0.440641593,,,,,,,,,,,,,,,,,,,,,,,,, +2024,194736.8671,76411.88436,292885.345,564034.0964,0.345257261,,2024,111670.7257,24609.58969,77498.40351,87108.81663,273350.6857,,136280.3153,0.819419337,437957.9058,0.198897692,574238.2212,0.237323658,,,4042.67519,1086.519152,5074.930436,10204.12478,0.17361351,0.222566984,0.396180493,0.603819507,,0.561781783,0.438218217,,,,,,,,,,,,,,,,,,,,,,,,, +2025,199346.4177,78831.9169,298557.2119,576735.5465,0.345646144,,2025,115171.7847,25380.63802,80104.1016,88955.38742,279154.7819,,140552.4227,0.819422266,448214.271,0.19846621,588766.6937,0.238723461,,,4780.754472,1272.184694,5978.208037,12031.1472,0.173165287,0.224199519,0.397364806,0.602635194,,0.564215844,0.435784156,,,,,,,,,,,,,,,,,,,,,,,,, +2026,204149.2113,81162.745,304305.5418,589617.4981,0.346240083,,2026,118847.2337,26175.14416,82633.16184,90885.72398,285086.0961,,145022.3779,0.81950962,458604.9819,0.198178667,603627.3598,0.240251499,,,5583.746409,1470.416836,6955.698425,14009.86167,0.17271133,0.225846953,0.398558283,0.601441717,,0.56665979,0.43334021,,,,,,,,,,,,,,,,,,,,,,,,, +2027,209145.3309,83406.28334,310132.1712,602683.7855,0.347023325,,2027,122696.9868,26992.63017,85086.01555,92897.75685,291142.7941,,149689.617,0.819676002,469126.5665,0.198022801,618816.1835,0.241896739,,,6449.412737,1679.732211,8003.25308,16132.39803,0.172261531,0.227518634,0.399780164,0.600219836,,0.569109361,0.430890639,,,,,,,,,,,,,,,,,,,,,,,,, +2028,214334.8595,85564.4466,316038.9366,615938.2427,0.347981087,,2028,126716.0993,27831.58262,87462.97981,94987.8304,297318.4217,,154547.6819,0.819915884,479769.2319,0.197986499,634316.9138,0.243644271,,,7369.07019,1898.533205,9111.067709,18378.6711,0.171788135,0.229169592,0.400957727,0.599042273,,0.571555495,0.428444505,,,,,,,,,,,,,,,,,,,,,,,,, +2029,219717.8799,87639.14948,322027.6745,629384.7039,0.349099491,,2029,130896.6826,28689.83457,89763.87472,97151.33082,303602.9287,,159586.5172,0.820223944,490518.1343,0.198058592,650104.6514,0.245478196,,,8330.133464,2124.72524,10265.08886,20719.94756,0.171271763,0.230762723,0.402034486,0.597965514,,0.573987384,0.426012616,,,,,,,,,,,,,,,,,,,,,,,,, +2030,225294.4752,89632.30664,328100.2214,643027.0033,0.350365496,,2030,135233.2728,29565.78338,91988.89666,99384.75006,309988.9104,,164799.0562,0.820594947,501362.5571,0.198229303,666161.6134,0.247385999,,,9323.547655,2356.590021,11454.47242,23134.6101,0.170717243,0.232295715,0.403012958,0.596987042,,0.576397632,0.423602368,,,,,,,,,,,,,,,,,,,,,,,,, +2031,231064.7283,91545.83279,334258.4139,656868.975,0.351766847,,2031,139724.9803,30458.70178,94138.42222,101686.1467,316473.9258,,170183.6821,0.821024546,512298.4948,0.198490036,682482.1769,0.249359892,,,10346.39873,2592.589433,12674.21373,25613.2019,0.170149174,0.233798711,0.403947885,0.596052115,,0.578784342,0.421215658,,,,,,,,,,,,,,,,,,,,,,,,, +2032,237028.7221,93381.6426,340504.0884,670914.4532,0.35329202,,2032,144375.8257,31369.15952,96214.15632,104055.8114,323061.3752,,175744.9852,0.821507513,523331.3429,0.198833517,699076.3281,0.251395989,,,11402.91494,2832.513722,13926.44631,28161.87497,0.169595278,0.235310821,0.404906099,0.595093901,,0.581149114,0.418850886,,,,,,,,,,,,,,,,,,,,,,,,, +2033,243186.5396,95141.65076,346839.0816,685167.272,0.354930175,,2033,149191.3976,32298.48622,98219.3367,106495.3285,329756.8481,,181489.8838,0.822036989,534471.5133,0.199253516,715961.3971,0.253491158,,,12500.18646,3077.68594,15216.25272,30794.12512,0.16907173,0.236855908,0.405927637,0.594072363,,0.583492932,0.416507068,,,,,,,,,,,,,,,,,,,,,,,,, +2034,249538.2637,96827.77195,353265.23,699631.2656,0.356671115,,2034,154180.1412,33248.85444,100158.3176,109007.5926,336569.3214,,187428.9956,0.822605599,545735.2316,0.199744466,733164.2272,0.255643945,,,13649.47009,3330.545658,16552.94583,33532.96158,0.168591232,0.238455132,0.407046364,0.592953636,,0.585818112,0.414181888,,,,,,,,,,,,,,,,,,,,,,,,, +2035,256083.9774,98441.92086,359784.37,714310.2682,0.358505245,,2035,159350.1172,34222.18004,102034.8495,111594.9865,343506.8692,,193572.2973,0.823207243,557136.7052,0.200300905,750709.0024,0.257852639,,,14861.12634,3592.928622,17944.67927,36398.73423,0.168162371,0.240124529,0.408286899,0.591713101,,0.588126949,0.411873051,,,,,,,,,,,,,,,,,,,,,,,,, +2036,262823.7635,99986.01217,366398.3382,729208.1139,0.360423531,,2036,164705.3629,35219.2237,103851.2758,114257.9908,350573.4972,,199924.5866,0.823837456,568682.7638,0.200916922,768607.3504,0.26011277,,,16139.59016,3865.2636,19394.38271,39399.23647,0.16778152,0.241860687,0.409642206,0.590357794,,0.590419353,0.409580647,,,,,,,,,,,,,,,,,,,,,,,,, +2037,269757.7051,101461.9606,373108.9712,744328.6368,0.362417475,,2037,170249.7902,36240.32125,105608.5322,116996.4643,357771.4717,,206490.1115,0.824493672,580376.4682,0.201587195,786866.5797,0.262420742,,,17488.54943,4146.57163,20902.82181,42537.94287,0.167454055,0.243674182,0.411128236,0.588871764,,0.592696293,0.407303707,,,,,,,,,,,,,,,,,,,,,,,,, +2038,276885.8851,102871.6807,379918.1054,759675.6712,0.364479074,,2038,175992.1828,37286.64329,107307.3493,119811.5883,365105.8756,,213278.8261,0.825174191,592224.8132,0.202307613,805503.6393,0.264776986,,,18917.886,4435.668554,22474.41354,45827.96809,0.167200326,0.245601872,0.412802199,0.587197801,,0.594962607,0.405037393,,,,,,,,,,,,,,,,,,,,,,,,, +2039,284208.3864,104217.0874,386827.5773,775253.0511,0.366600797,,2039,181943.042,38359.47026,108947.8038,122704.6285,372582.1302,,220302.5123,0.825878199,604234.5625,0.203074495,824537.0748,0.26718327,,,20439.28406,4730.716427,24114.02316,49284.02365,0.167040817,0.247683521,0.414724338,0.585275662,,0.597224465,0.402775535,,,,,,,,,,,,,,,,,,,,,,,,, +2040,291725.292,105500.0951,393839.2236,791064.6107,0.368775556,,2040,188112.2129,39460.02307,110530.2451,125676.6088,380205.9709,,227572.2359,0.826604406,616412.8248,0.203883832,843985.0607,0.269640123,,,22063.52959,5030.150017,25826.77033,52920.44994,0.166981534,0.249937249,0.416918783,0.583081217,,0.599486661,0.400513339,,,,,,,,,,,,,,,,,,,,,,,,, +2041,299436.6848,106722.6187,400954.8807,807114.1843,0.370996683,,2041,194507.1612,40589.32822,112056.4111,128727.8833,387982.7044,,235096.4894,0.827350343,628766.9988,0.204730661,863863.4882,0.272145417,,,23798.35965,5333.792342,27617.15193,56749.30392,0.167009306,0.252350192,0.419359499,0.580640501,,0.601751464,0.398248536,,,,,,,,,,,,,,,,,,,,,,,,, +2042,307342.6478,107886.5728,408176.3852,823405.6058,0.373257901,,2042,201134.0736,41748.31596,113528.1632,131858.7456,395918.513,,242882.3896,0.828113038,641305.4218,0.205609903,884187.8113,0.274695474,,,25650.17133,5641.590363,29490.4438,60782.20549,0.167104401,0.254896925,0.422001326,0.577998674,,0.604019252,0.395980748,,,,,,,,,,,,,,,,,,,,,,,,, +2043,315443.2639,108993.8721,415505.5735,839942.7096,0.375553309,,2043,208000.2608,42938.00011,114946.0286,135069.9759,404021.4088,,250938.2609,0.828890182,654037.4133,0.206517201,904975.6742,0.2772873,,,27626.97285,5952.156468,31453.83534,65032.96465,0.167253621,0.257561286,0.424814907,0.575185093,,0.606290603,0.393709397,,,,,,,,,,,,,,,,,,,,,,,,, +2044,323738.6161,110046.4313,422944.2823,856729.3297,0.377877359,,2044,215112.8241,44159.37266,116310.2138,138362.4086,412300.4495,,259272.1968,0.82967949,666973.0718,0.207448268,926245.2686,0.279917432,,,29736.6166,6263.782481,33515.53983,69515.93892,0.167442726,0.260324159,0.427766884,0.572233116,,0.608565478,0.391434522,,,,,,,,,,,,,,,,,,,,,,,,, +2045,332228.7872,111046.165,430494.348,873769.3003,0.380224834,,2045,222478.7077,45413.38453,117621.4818,141736.4599,420764.4032,,267892.0922,0.830478816,680122.3449,0.208398476,948014.437,0.282582292,,,31986.38029,6575.316772,35683.43973,74245.13679,0.167656594,0.263164625,0.430821218,0.569178782,,0.610844159,0.389155841,,,,,,,,,,,,,,,,,,,,,,,,, +2046,340913.8603,111994.988,438157.6071,891066.4555,0.382590836,,2046,230105.2761,46701.02908,118881.3292,145192.2771,429420.328,,276806.3052,0.831286253,693493.9343,0.209363442,970300.2395,0.285279024,,,34383.69288,6886.341214,37963.74992,79233.78402,0.167884231,0.266068196,0.433952427,0.566047573,,0.613127568,0.386872432,,,,,,,,,,,,,,,,,,,,,,,,, +2047,349793.9183,112894.8149,445935.8963,908624.6295,0.384970765,,2047,237999.251,48023.16326,120092.3501,148729.1293,438274.9274,,286022.4143,0.8321,707096.4068,0.210337838,993118.8211,0.288004223,,,36934.46203,7197.535154,40362.19435,84494.19154,0.168110529,0.269013744,0.437124273,0.562875727,,0.615417081,0.384582919,,,,,,,,,,,,,,,,,,,,,,,,, +2048,358869.0441,113747.5605,453831.0519,926447.6566,0.387360302,,2048,246165.8838,49380.39323,121257.9018,152345.3477,447336.456,,295546.277,0.832918236,720939.7055,0.211314964,1016485.983,0.290752929,,,39642.18733,7510.34133,42885.79728,90038.32594,0.168313452,0.271967805,0.440281257,0.559718743,,0.617713792,0.382286208,,,,,,,,,,,,,,,,,,,,,,,,, +2049,368139.3207,114555.1393,461844.9107,944539.3707,0.389755401,,2049,254609.5155,50773.16991,122382.1085,156038.6235,456613.5228,,305382.6854,0.833739199,735034.2548,0.212287553,1040416.94,0.293519524,,,42508.81825,7826.969176,45541.7821,95877.56953,0.168470656,0.274894966,0.443365622,0.556634378,,0.620018676,0.379981324,,,,,,,,,,,,,,,,,,,,,,,,, +2050,377604.8311,115319.4661,469979.3089,962903.6061,0.392152266,,2050,263334.6153,52201.98338,123469.0098,159806.9367,466114.3067,,315536.5987,0.834561241,749390.2532,0.213249286,1064926.852,0.296298847,,,45536.72094,8149.543647,48336.9812,102023.2458,0.168567005,0.277769716,0.44633672,0.55366328,,0.622332206,0.377667794,,,,,,,,,,,,,,,,,,,,,,,,, +2051,387265.658,116042.4556,478236.0833,981544.197,0.394547346,,2051,272347.2528,53667.62689,124520.9718,163649.7138,475846.6259,,326014.8797,0.835382891,764017.3114,0.214196343,1090032.191,0.299087387,,,48731.30857,8478.51612,51278.16946,108487.9942,0.168600235,0.280585953,0.449186188,0.550813812,,0.624654008,0.375345992,,,,,,,,,,,,,,,,,,,,,,,,, +2052,397121.8846,116726.0225,486617.0703,1000464.977,0.396937318,,2052,281653.3521,55170.87775,125540.8506,167566.4099,485817.0523,,336824.2299,0.836202764,778924.3129,0.215125407,1115748.543,0.301881846,,,52097.87739,8814.828147,54370.85981,115283.5654,0.168570177,0.283340529,0.451910706,0.548089294,,0.626983441,0.373016559,,,,,,,,,,,,,,,,,,,,,,,,, +2053,407173.5938,117372.0814,495124.1064,1019669.782,0.399319075,,2053,291256.7119,56712.1415,126533.9959,171555.0597,496030.8204,,347968.8534,0.837019489,794119.876,0.216031691,1142088.729,0.3046776,,,55638.17788,9161.914454,57618.8555,122418.9478,0.168470316,0.286019604,0.454489921,0.545510079,,0.629320017,0.370679983,,,,,,,,,,,,,,,,,,,,,,,,, +2054,417420.8684,117982.547,503759.0282,1039162.444,0.401689717,,2054,301160.3182,58291.69711,127506.7,175613.405,506492.0417,,359452.0153,0.83783177,809612.1468,0.216910536,1169064.162,0.307469878,,,59352.85485,9524.152965,61024.71065,129901.7185,0.168295331,0.288610517,0.456905848,0.543094152,,0.631662996,0.368337004,,,,,,,,,,,,,,,,,,,,,,,,, +2055,427863.7915,118559.3341,512523.6722,1058946.798,0.404046542,,2055,311367.6391,59909.93148,128464.3127,179739.9141,517205.0046,,371277.5706,0.838638431,825409.2314,0.217758546,1196686.802,0.310254588,,,63243.76173,9904.978614,64591.26389,137740.0042,0.16804497,0.291108215,0.459153186,0.540846814,,0.634011098,0.365988902,,,,,,,,,,,,,,,,,,,,,,,,, +2056,438502.4459,119104.3572,521419.8749,1079026.678,0.406387029,,2056,321884.1611,61567.5502,129410.7236,183933.8467,528175.933,,383451.7113,0.839438583,841520.5033,0.218573221,1224972.215,0.313028905,,,67315.56187,10306.36639,68323.60824,145945.5365,0.167722769,0.293514782,0.461237551,0.538762449,,0.636363586,0.363636414,,,,,,,,,,,,,,,,,,,,,,,,, +2057,449336.9147,119619.5311,530449.4729,1099405.919,0.408708837,,2057,332715.7141,63265.39756,130347.842,188195.7633,539410.9216,,395981.1117,0.840231274,857954.5269,0.219354007,1253935.639,0.315790619,,,71574.56274,10728.31087,72226.84618,154529.7198,0.16733724,0.295839441,0.463176681,0.536823319,,0.63871834,0.36128166,,,,,,,,,,,,,,,,,,,,,,,,, +2058,460367.2808,120106.7705,539614.3027,1120088.354,0.411009791,,2058,343866.3731,65004.17564,131276.4701,192527.2914,550913.5005,,408870.5488,0.841015265,874717.262,0.220102312,1283587.811,0.318537264,,,76026.38373,11169.69961,76303.37346,163499.4568,0.166900132,0.298094585,0.464994718,0.535005282,,0.641070907,0.358929093,,,,,,,,,,,,,,,,,,,,,,,,, +2059,471593.6271,120567.99,548916.2008,1141077.818,0.413287875,,2059,355339.78,66784.61367,132196.1139,196931.0617,562686.1908,,422124.3936,0.841789258,891813.3664,0.220820935,1313937.76,0.321266658,,,80677.21462,11628.12393,80554.60372,172859.9423,0.166425029,0.300295101,0.466720129,0.533279871,,0.64341579,0.35658421,,,,,,,,,,,,,,,,,,,,,,,,, +2060,483016.0365,121005.1043,558357.0037,1162378.145,0.415541224,,2060,367140.3369,68607.54308,133106.5555,201409.5636,574732.0176,,435747.8799,0.842552205,909248.1367,0.221512209,1344996.017,0.323977078,,,85533.86395,12101.45116,84982.55699,182617.8721,0.165922894,0.3024533,0.468376194,0.531623806,,0.645748661,0.354251339,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,Table 7: Difference in FUNCTIONAL & IMPLEMENTATION UNITS between REF1 and REF2 populations in LLDC+HighNRR+HighED,,,,,,,,Table 8: Difference in FUNCTIONAL & IMPLEMENTATION UNITS between REF1 and REF2 populations in LLDC+HighNRR+LowED,,,,,,,,Table 9: Difference in EMISSIONS between REF1 and REF2 populations in LLDC+HighNRR+HighED,,,,,,,,,,,,,Table 10: Difference in EMISSIONS between REF1 and REF2 populations in LLDC+HighNRR+LowED,,,,,,,,,,,,,,,Table 11: EMISSIONS ALLOCATIONS TO (a) Health & Education; (b) Education ONLY; (c) Family Planning (excluding education),,,,,,,,,,,, +,SOLUTION ,,,CONVENTIONAL,,,,,SOLUTION ,,,CONVENTIONAL,,,,,SOLUTION,,,,,CONVENTIONAL,,,,,EMISSION REDUCTIONS,,,SOLUTION ,,,,,CONVENTIONAL,,,,,EMISSION REDCUTIONS ,,,,,"Table 11(a): EMISSIONS ALLOCATION TO HEALTH & EDUCATION in LLDC, Water_cluster",,,,"Table 11(b): EMISSIONS ALLOCATION TO Education in LLDC, Water_cluster",,,"Table 11(c): EMISSIONS ALLOCATION TO Family Planning in LLDC, Water_cluster",,,,% Allocation to Education (Electricity), +,Additional Functional Units in REF2 vs REF1,Annual Functional Units Increase,Annual Implementation Units Increase + Replacement,Additional Functional Units in REF2 vs REF2,Annual Functional Units Increase,Change in TAM,Annual Implementation Units Increase + Replacement,,Additional Functional Units in REF2 vs REF1,Annual Functional Units Increase,Annual Implementation Units Increase + Replacement,Additional Functional Units in REF2 vs REF2,Annual Functional Units Increase,Change in TAM,Annual Implementation Units Increase + Replacement,,Avoided Emissions/ Million Metric Tons CO2,,,,,Avoided Emissions/ Million Metric Tons CO2,,,,,ALL Years,,,Avoided Emissions/ Million Metric Tons CO2,,,,,Avoided Emissions/ Million Metric Tons CO2,,,,,ALL Years,,,,,,,,,,,,,,,,ALL Years, +,TWh,TWh,TW,TWh,TWh,%,TW,,TWh,TWh,TW,TWh,TWh,%,TW,,Grid,Fuel,Other Direct,Indirect,,Grid,Fuel,Other Direct,Indirect,,Conv Total,Solution Total,,Grid,Fuel,Other Direct,Indirect,,Grid,Fuel,Other Direct,Indirect,,Conv Total,Solution Total,,,,,Conv Total,Solution Total,,Conv Total,Solution Total,,Conv Total,Solution Total,,,Conv Total,Solution Total +2014,,,,0,,,Not modeled TBD,,,,,0,,,Not modeled TBD,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2014,0,0,,0,0,,0,0,,,, +2015,,,,0,0,,,,,,,0,0,,,,,,,,,0,,,,,0,0,,,,,,,0,,,,,0,0,,,,2015,0,0,,0,0,,0,0,,,, +2016,,,,74.96028291,74.96028291,0.154498434,,,,,,89.00226645,89.00226645,0.183439953,,,,,,,,0.058362443,,,,,0.058362443,0,,,,,,,0.069295226,,,,,0.069295226,0,,,,2016,0.127657669,0,,0.034647613,0,,0.093010056,0,,,0.271410352, +2017,,,,182.7888729,107.82859,0.152532564,,,,,,219.0432674,130.041001,0.182785915,,,,,,,,0.140575603,,,,,0.140575603,0,,,,,,,0.168457406,,,,,0.168457406,0,,,,2017,0.309033008,0,,0.084228703,0,,0.224804306,0,,,0.272555684, +2018,,,,319.3215796,136.5327067,0.150997164,,,,,,386.2693204,167.226053,0.182654651,,,,,,,,0.243251573,,,,,0.243251573,0,,,,,,,0.294250767,,,,,0.294250767,0,,,,2018,0.537502341,0,,0.147125384,0,,0.390376957,0,,,0.273720452, +2019,,,,477.6543125,158.3327329,0.149906783,,,,,,583.318719,197.0493986,0.183068446,,,,,,,,0.36196595,,,,,0.36196595,0,,,,,,,0.442038329,,,,,0.442038329,0,,,,2019,0.80400428,0,,0.221019165,0,,0.582985115,0,,,0.274897995, +2020,,,,652.8115033,175.1571908,0.149179087,,,,,,804.8991215,221.5804026,0.183933824,,,,,,,,0.491602778,,,,,0.491602778,0,,,,,,,0.606133075,,,,,0.606133075,0,,,,2020,1.097735853,0,,0.303066538,0,,0.794669315,0,,,0.276083301, +2021,,,,844.0486057,191.2371025,0.148679285,,,,,,1050.773526,245.8744043,0.18509391,,,,,,,,0.631796249,,,,,0.631796249,0,,,,,,,0.786536187,,,,,0.786536187,0,,,,2021,1.418332437,0,,0.393268094,0,,1.025064343,0,,,0.277274977, +2022,,,,1053.217479,209.1688736,0.148279251,,,,,,1323.967303,273.1937771,0.186397286,,,,,,,,0.783678299,,,,,0.783678299,0,,,,,,,0.985137888,,,,,0.985137888,0,,,,2022,1.768816187,0,,0.492568944,0,,1.276247243,0,,,0.278473788, +2023,,,,1280.865208,227.6477287,0.147926479,,,,,,1625.953459,301.9861559,0.187780548,,,,,,,,0.947503204,,,,,0.947503204,0,,,,,,,1.202777702,,,,,1.202777702,0,,,,2023,2.150280906,0,,0.601388851,0,,1.548892055,0,,,0.279679203, +2024,,,,1528.030868,247.1656598,0.147571483,,,,,,1958.886855,332.933396,0.189181936,,,,,,,,1.12385244,,,,,1.12385244,0,,,,,,,1.440742997,,,,,1.440742997,0,,,,2024,2.564595437,0,,0.720371498,0,,1.844223938,0,,,0.280890891, +2025,,,,1795.132147,267.1012795,0.147190494,,,,,,2324.182708,365.295853,0.190569591,,,,,,,,1.313587086,,,,,1.313587086,0,,,,,,,1.700719579,,,,,1.700719579,0,,,,2025,3.014306665,0,,0.850359789,0,,2.163946875,0,,,0.282107922, +2026,,,,2082.750053,287.6179055,0.146804631,,,,,,2723.519948,399.3372405,0.19196991,,,,,,,,1.514687059,,,,,1.514687059,0,,,,,,,1.980689145,,,,,1.980689145,0,,,,2026,3.495376204,0,,0.990344572,0,,2.505031631,0,,,0.283329895, +2027,,,,2389.633658,306.8836057,0.146422301,,,,,,3156.167161,432.6472122,0.193390839,,,,,,,,1.728291815,,,,,1.728291815,0,,,,,,,2.282683729,,,,,2.282683729,0,,,,2027,4.010975544,0,,1.141341864,0,,2.869633679,0,,,0.284554681, +2028,,,,2712.142018,322.5083595,0.146019915,,,,,,3618.06408,461.8969194,0.194794153,,,,,,,,1.950846629,,,,,1.950846629,0,,,,,,,2.602477329,,,,,2.602477329,0,,,,2028,4.553323959,0,,1.301238665,0,,3.252085294,0,,,0.285777748, +2029,,,,3045.34593,333.2039116,0.145580999,,,,,,4103.141729,485.0776491,0.196148314,,,,,,,,2.178679497,,,,,2.178679497,0,,,,,,,2.935440165,,,,,2.935440165,0,,,,2029,5.114119662,0,,1.467720082,0,,3.646399579,0,,,0.286993692, +2030,,,,3385.812599,340.4666698,0.145109657,,,,,,4607.090311,503.9485817,0.197451358,,,,,,,,2.409817828,,,,,2.409817828,0,,,,,,,3.27904987,,,,,3.27904987,0,,,,2030,5.688867698,0,,1.639524935,0,,4.049342763,0,,,0.288198816, +2031,,,,3732.460568,346.6479691,0.144626798,,,,,,5128.702348,521.6120374,0.198728904,,,,,,,,2.641753136,,,,,2.641753136,0,,,,,,,3.629982223,,,,,3.629982223,0,,,,2031,6.27173536,0,,1.814991112,0,,4.456744248,0,,,0.289392171, +2032,,,,4086.856965,354.3963966,0.144155987,,,,,,5670.450705,541.748357,0.200014198,,,,,,,,2.877223375,,,,,2.877223375,0,,,,,,,3.992102845,,,,,3.992102845,0,,,,2032,6.869326219,0,,1.996051422,0,,4.873274797,0,,,0.290574557, +2033,,,,4451.609283,364.7523185,0.14371097,,,,,,6236.34689,565.8961849,0.201327521,,,,,,,,3.117418274,,,,,3.117418274,0,,,,,,,4.367252496,,,,,4.367252496,0,,,,2033,7.48467077,0,,2.183626248,0,,5.301044522,0,,,0.291746466, +2034,,,,4830.747518,379.1382345,0.143302547,,,,,,6832.600525,596.2536351,0.202686863,,,,,,,,3.365036066,,,,,3.365036066,0,,,,,,,4.759500906,,,,,4.759500906,0,,,,2034,8.124536972,0,,2.379750453,0,,5.744786519,0,,,0.292909056, +2035,,,,5227.844929,397.0974114,0.142938015,,,,,,7465.010113,632.4095881,0.204105849,,,,,,,,3.621863797,,,,,3.621863797,0,,,,,,,5.171777327,,,,,5.171777327,0,,,,2035,8.793641125,0,,2.585888664,0,,6.207752461,0,,,0.294063475, +2036,,,,5644.222047,416.3771181,0.142614292,,,,,,8136.268058,671.2579445,0.205581584,,,,,,,,3.890075898,,,,,3.890075898,0,,,,,,,5.607628475,,,,,5.607628475,0,,,,2036,9.497704374,0,,2.803814238,0,,6.693890136,0,,,0.295209677, +2037,,,,6080.924613,436.7025659,0.142335947,,,,,,8848.781423,712.5133657,0.207123054,,,,,,,,4.168710324,,,,,4.168710324,0,,,,,,,6.066183816,,,,,6.066183816,0,,,,2037,10.23489414,0,,3.033091908,0,,7.201802232,0,,,0.296348146, +2038,,,,6541.191477,460.2668638,0.142120277,,,,,,9608.407523,759.6260998,0.208761592,,,,,,,,4.460225862,,,,,4.460225862,0,,,,,,,6.551660791,,,,,6.551660791,0,,,,2038,11.01188665,0,,3.275830396,0,,7.736056258,0,,,0.297481304, +2039,,,,7028.806831,487.6153534,0.141984694,,,,,,10422.12109,813.7135686,0.210530993,,,,,,,,4.76678146,,,,,4.76678146,0,,,,,,,7.068052202,,,,,7.068052202,0,,,,2039,11.83483366,0,,3.534026101,0,,8.300807561,0,,,0.298612232, +2040,,,,7547.08108,518.274249,0.141934304,,,,,,11296.43882,874.3177324,0.212446662,,,,,,,,5.088376658,,,,,5.088376658,0,,,,,,,7.616260515,,,,,7.616260515,0,,,,2040,12.70463717,0,,3.808130258,0,,8.896506916,0,,,0.29974333, +2041,,,,8098.126997,551.0459171,0.141957911,,,,,,12236.22772,939.788891,0.214497663,,,,,,,,5.432183255,,,,,5.432183255,0,,,,,,,8.208000607,,,,,8.208000607,0,,,,2041,13.64018386,0,,4.104000303,0,,9.536183559,0,,,0.300875732, +2042,,,,8683.435253,585.3082564,0.142038741,,,,,,13245.49766,1009.269942,0.216662387,,,,,,,,5.792641158,,,,,5.792641158,0,,,,,,,8.835951746,,,,,8.835951746,0,,,,2042,14.6285929,0,,4.417975873,0,,10.21061703,0,,,0.302009626, +2043,,,,9304.895771,621.460518,0.142165578,,,,,,14329.02267,1083.525014,0.218927093,,,,,,,,6.17258015,,,,,6.17258015,0,,,,,,,9.505430592,,,,,9.505430592,0,,,,2043,15.67801074,0,,4.752715296,0,,10.92529545,0,,,0.303145302, +2044,,,,9964.196397,659.3006264,0.142326317,,,,,,15491.39285,1162.370176,0.221275535,,,,,,,,6.572637651,,,,,6.572637651,0,,,,,,,10.21851716,,,,,10.21851716,0,,,,2044,16.79115481,0,,5.109258581,0,,11.68189623,0,,,0.304282739, +2045,,,,10662.75925,698.5628478,0.142508105,,,,,,16736.95603,1245.563184,0.223689931,,,,,,,,6.99180104,,,,,6.99180104,0,,,,,,,10.97478278,,,,,10.97478278,0,,,,2045,17.96658382,0,,5.487391391,0,,12.47919243,0,,,0.305422079, +2046,,,,11402.1069,739.3476571,0.142701596,,,,,,18070.41676,1333.460724,0.226157967,,,,,,,,7.434832432,,,,,7.434832432,0,,,,,,,11.7829557,,,,,11.7829557,0,,,,2046,19.21778813,0,,5.891477851,0,,13.32631028,0,,,0.306563784, +2047,,,,12183.1482,781.0413026,0.142893949,,,,,,19495.71117,1425.294412,0.228661682,,,,,,,,7.897436764,,,,,7.897436764,0,,,,,,,12.6376322,,,,,12.6376322,0,,,,2047,20.53506897,0,,6.318816102,0,,14.21625287,0,,,0.307708541, +2048,,,,13005.74163,822.5934251,0.143066435,,,,,,21015.21268,1519.501513,0.231172634,,,,,,,,8.380355751,,,,,8.380355751,0,,,,,,,13.54132378,,,,,13.54132378,0,,,,2048,21.92167953,0,,6.770661891,0,,15.15101764,0,,,0.308856896, +2049,,,,13869.1149,863.3732675,0.143200058,,,,,,22630.34975,1615.137069,0.233660721,,,,,,,,8.890614542,,,,,8.890614542,0,,,,,,,14.50688945,,,,,14.50688945,0,,,,2049,23.39750399,0,,7.253444725,0,,16.14405927,0,,,0.310009338, +2050,,,,14772.65267,903.5377738,0.143281954,,,,,,24342.8157,1712.465956,0.236104258,,,,,,,,9.437249625,,,,,9.437249625,0,,,,,,,15.55098014,,,,,15.55098014,0,,,,2050,24.98822977,0,,7.775490072,0,,17.2127397,0,,,0.311166103, +2051,,,,15716.83467,944.1819947,0.1433102,,,,,,26156.09063,1813.274921,0.23849806,,,,,,,,10.00204858,,,,,10.00204858,0,,,,,,,16.64549476,,,,,16.64549476,0,,,,2051,26.64754333,0,,8.322747378,0,,18.32479595,0,,,0.312327004, +2052,,,,16702.15178,985.3171126,0.14328465,,,,,,28073.74723,1917.656605,0.24083945,,,,,,,,10.58984603,,,,,10.58984603,0,,,,,,,17.79990176,,,,,17.79990176,0,,,,2052,28.38974779,0,,8.899950879,0,,19.48979691,0,,,0.31349172, +2053,,,,17727.90526,1025.753483,0.143199769,,,,,,30097.45911,2023.711884,0.243116664,,,,,,,,11.19768288,,,,,11.19768288,0,,,,,,,19.01080798,,,,,19.01080798,0,,,,2053,30.20849086,0,,9.505403989,0,,20.70308687,0,,,0.314660008, +2054,,,,18793.09078,1065.185518,0.143051032,,,,,,32228.36662,2130.907503,0.245318939,,,,,,,,11.82443805,,,,,11.82443805,0,,,,,,,20.27778873,,,,,20.27778873,0,,,,2054,32.10222678,0,,10.13889437,0,,21.96333241,0,,,0.315831498, +2055,,,,19897.12867,1104.037892,0.142838225,,,,,,34468.25938,2239.892761,0.247441983,,,,,,,,12.46820825,,,,,12.46820825,0,,,,,,,21.59896752,,,,,21.59896752,0,,,,2055,34.06717577,0,,10.79948376,0,,23.26769201,0,,,0.317005549, +2056,,,,21040.23711,1143.108436,0.142564354,,,,,,36820.40686,2352.147486,0.249487565,,,,,,,,13.13172702,,,,,13.13172702,0,,,,,,,22.98051724,,,,,22.98051724,0,,,,2056,36.11224426,0,,11.49025862,0,,24.62198564,0,,,0.318181793, +2057,,,,22223.23147,1182.994359,0.142236654,,,,,,39288.97334,2468.566474,0.251463525,,,,,,,,13.81184709,,,,,13.81184709,0,,,,,,,24.41828915,,,,,24.41828915,0,,,,2057,38.23013624,0,,12.20914458,0,,26.02099166,0,,,0.31935917, +2058,,,,23446.97383,1223.742361,0.141865112,,,,,,41877.83348,2588.860146,0.253380398,,,,,,,,14.509574,,,,,14.509574,0,,,,,,,25.91505105,,,,,25.91505105,0,,,,2058,40.42462505,0,,12.95752553,0,,27.46709952,0,,,0.320535454, +2059,,,,24712.67357,1265.699745,0.141461274,,,,,,44591.21844,2713.384954,0.255250836,,,,,,,,15.22505876,,,,,15.22505876,0,,,,,,,27.47189286,,,,,27.47189286,0,,,,2059,42.69695162,0,,13.73594643,0,,28.96100519,0,,,0.321707895, +2060,,,,26021.69454,1309.020971,0.14103446,,,,,,47433.76397,2842.545529,0.257085305,,,,,,,,15.96385349,,,,,15.96385349,0,,,,,,,29.09978277,,,,,29.09978277,0,,,,2060,45.06363627,0,,14.54989139,0,,30.51374488,0,,,0.32287433, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,Table 12: Difference in FUNCTIONAL & IMPLEMENTATION UNITS between REF1 and REF2 populations in MDC + LAC + EE + China,,,,,,,,,Table 13: Difference in EMISSIONS between REF1 and REF2 populations in MDC + LAC + EE + China,,,,,,,,,,,,,,Table 14: EMISSIONS ALLOCATIONS TO (a) Health & Education; (b) Education ONLY; (c) Family Planning (excluding education),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,SOLUTION ,,,CONVENTIONAL,,,,,,SOLUTION,,,,,CONVENTIONAL,,,,,EMISSION REDUCTIONS,,,,"Table 14(a): EMISSIONS ALLOCATION TO HEALTH & EDUCATION in MDC, Water_cluster",,,,"Table 14(b): EMISSIONS ALLOCATION TO Education in MDC, Water_cluster",,,"Table 14(c): EMISSIONS ALLOCATION TO Family Planning in MDC, Water_cluster",,,,% Allocation to Education (Electricity),,,,,,,,,,,,,,,,,,,,,, +,Additional Functional Units in REF2 vs REF1,Annual Functional Units Increase,Annual Implementation Units Increase + Replacement,Additional Functional Units in REF2 vs REF2,Annual Functional Units Increase,Change in TAM,Annual Implementation Units Increase + Replacement,,,Avoided Emissions/ Million Metric Tons CO2,,,,,Avoided Emissions/ Million Metric Tons CO2,,,,,ALL Years,,,,,,,,,,,,,,,ALL Years,,,,,,,,,,,,,,,,,,,,,, +,TWh,TWh,TW,TWh,TWh,%,TW,,,Grid,Fuel,Other Direct,Indirect,,Grid,Fuel,Other Direct,Indirect,,Conv Total,Solution Total,,,,Conv Total,Solution Total,,Conv Total,Solution Total,,Conv Total,Solution Total,,,Conv Total,Solution Total,,,,,,,,,,,,,,,,,,,,, +2014,,,,0,,,Not modeled TBD,,,,,,,,,,,,,,,,,2014,0,0,,,,,0,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2015,,,,0,0,,,,,,,,,,0,,,,,0,0,,,2015,0,0,,,,,0,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2016,,,,248.4444828,248.4444828,0.512061614,,,,,,,,,0.193433462,,,,,0.193433462,0,,,2016,0.193433462,0,,,,,0.193433462,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2017,,,,616.7735755,368.3290927,0.514681521,,,,,,,,,0.474335859,,,,,0.474335859,0,,,2017,0.474335859,0,,,,,0.474335859,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2018,,,,1091.948444,475.174869,0.516348185,,,,,,,,,0.831820315,,,,,0.831820315,0,,,2018,0.831820315,0,,,,,0.831820315,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2019,,,,1647.417859,555.4694142,0.517024771,,,,,,,,,1.248411571,,,,,1.248411571,0,,,2019,1.248411571,0,,,,,1.248411571,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2020,,,,2261.911122,614.4932629,0.516887088,,,,,,,,,1.703342825,,,,,1.703342825,0,,,2020,1.703342825,0,,,,,1.703342825,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2021,,,,2930.60674,668.6956182,0.516226805,,,,,,,,,2.19364896,,,,,2.19364896,0,,,2021,2.19364896,0,,,,,2.19364896,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2022,,,,3660.30766,729.7009202,0.515323463,,,,,,,,,2.723562546,,,,,2.723562546,0,,,2022,2.723562546,0,,,,,2.723562546,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2023,,,,4453.157953,792.8502934,0.514292973,,,,,,,,,3.29416507,,,,,3.29416507,0,,,2023,3.29416507,0,,,,,3.29416507,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2024,,,,5314.418487,861.2605337,0.513246581,,,,,,,,,3.90870519,,,,,3.90870519,0,,,2024,3.90870519,0,,,,,3.90870519,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2025,,,,6247.267174,932.8486868,0.512239915,,,,,,,,,4.571434751,,,,,4.571434751,0,,,2025,4.571434751,0,,,,,4.571434751,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2026,,,,7252.869675,1005.602501,0.51122546,,,,,,,,,5.274674137,,,,,5.274674137,0,,,2026,5.274674137,0,,,,,5.274674137,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2027,,,,8326.325194,1073.455519,0.51018686,,,,,,,,,6.021977314,,,,,6.021977314,0,,,2027,6.021977314,0,,,,,6.021977314,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2028,,,,9457.508348,1131.183154,0.509185932,,,,,,,,,6.802795783,,,,,6.802795783,0,,,2028,6.802795783,0,,,,,6.802795783,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2029,,,,10632.29461,1174.786266,0.508270687,,,,,,,,,7.606479794,,,,,7.606479794,0,,,2029,7.606479794,0,,,,,7.606479794,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2030,,,,11839.96535,1207.670738,0.507438985,,,,,,,,,8.42697543,,,,,8.42697543,0,,,2030,8.42697543,0,,,,,8.42697543,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2031,,,,13075.23841,1235.273062,0.506644298,,,,,,,,,9.254364903,,,,,9.254364903,0,,,2031,9.254364903,0,,,,,9.254364903,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2032,,,,14340.39719,1265.158771,0.505829816,,,,,,,,,10.09590655,,,,,10.09590655,0,,,2032,10.09590655,0,,,,,10.09590655,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2033,,,,15641.75185,1301.354665,0.504961508,,,,,,,,,10.95376524,,,,,10.95376524,0,,,2033,10.95376524,0,,,,,10.95376524,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2034,,,,16990.26262,1348.510774,0.50401059,,,,,,,,,11.83519658,,,,,11.83519658,0,,,2034,11.83519658,0,,,,,11.83519658,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2035,,,,18395.22312,1404.960497,0.502956135,,,,,,,,,12.74425572,,,,,12.74425572,0,,,2035,12.74425572,0,,,,,12.74425572,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2036,,,,19859.81817,1464.595044,0.501804125,,,,,,,,,13.68766135,,,,,13.68766135,0,,,2036,13.68766135,0,,,,,13.68766135,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2037,,,,21384.28244,1524.464275,0.500540999,,,,,,,,,14.6597573,,,,,14.6597573,0,,,2037,14.6597573,0,,,,,14.6597573,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2038,,,,22972.28321,1588.000769,0.499118131,,,,,,,,,15.66405326,,,,,15.66405326,0,,,2038,15.66405326,0,,,,,15.66405326,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2039,,,,24627.45123,1655.16802,0.497484313,,,,,,,,,16.70179317,,,,,16.70179317,0,,,2039,16.70179317,0,,,,,16.70179317,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2040,,,,26353.58002,1726.128796,0.495619034,,,,,,,,,17.76805364,,,,,17.76805364,0,,,2040,17.76805364,0,,,,,17.76805364,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2041,,,,28154.72154,1801.141511,0.493544426,,,,,,,,,18.88604698,,,,,18.88604698,0,,,2041,18.88604698,0,,,,,18.88604698,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2042,,,,30035.19977,1880.478238,0.491298873,,,,,,,,,20.03621025,,,,,20.03621025,0,,,2042,20.03621025,0,,,,,20.03621025,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2043,,,,31999.53048,1964.330705,0.488907329,,,,,,,,,21.22749911,,,,,21.22749911,0,,,2043,21.22749911,0,,,,,21.22749911,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2044,,,,34052.4984,2052.967922,0.486398148,,,,,,,,,22.46189499,,,,,22.46189499,0,,,2044,22.46189499,0,,,,,22.46189499,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2045,,,,36199.09116,2146.592761,0.483801964,,,,,,,,,23.73652423,,,,,23.73652423,0,,,2045,23.73652423,0,,,,,23.73652423,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2046,,,,38443.9617,2244.870535,0.481140437,,,,,,,,,25.06768404,,,,,25.06768404,0,,,2046,25.06768404,0,,,,,25.06768404,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2047,,,,40792.20056,2348.238866,0.478444368,,,,,,,,,26.44257617,,,,,26.44257617,0,,,2047,26.44257617,0,,,,,26.44257617,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2048,,,,43250.0032,2457.80264,0.475760931,,,,,,,,,27.8684925,,,,,27.8684925,0,,,2048,27.8684925,0,,,,,27.8684925,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2049,,,,45824.15909,2574.155887,0.473139221,,,,,,,,,29.37497729,,,,,29.37497729,0,,,2049,29.37497729,0,,,,,29.37497729,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2050,,,,48521.21169,2697.052601,0.470613788,,,,,,,,,30.99692364,,,,,30.99692364,0,,,2050,30.99692364,0,,,,,30.99692364,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2051,,,,51346.60456,2825.392869,0.46819174,,,,,,,,,32.67650541,,,,,32.67650541,0,,,2051,32.67650541,0,,,,,32.67650541,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2052,,,,54305.39831,2958.793747,0.4658759,,,,,,,,,34.43183936,,,,,34.43183936,0,,,2052,34.43183936,0,,,,,34.43183936,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2053,,,,57403.29354,3097.89523,0.463683568,,,,,,,,,36.2583096,,,,,36.2583096,0,,,2053,36.2583096,0,,,,,36.2583096,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2054,,,,60645.87538,3242.581848,0.461630029,,,,,,,,,38.15782112,,,,,38.15782112,0,,,2054,38.15782112,0,,,,,38.15782112,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2055,,,,64038.20743,3392.332044,0.459719792,,,,,,,,,40.12848886,,,,,40.12848886,0,,,2055,40.12848886,0,,,,,40.12848886,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2056,,,,67585.87229,3547.664858,0.457948081,,,,,,,,,42.18199731,,,,,42.18199731,0,,,2056,42.18199731,0,,,,,42.18199731,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2057,,,,71292.85062,3706.978337,0.456299821,,,,,,,,,44.30885547,,,,,44.30885547,0,,,2057,44.30885547,0,,,,,44.30885547,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2058,,,,75160.24521,3867.394584,0.45475449,,,,,,,,,46.51104008,,,,,46.51104008,0,,,2058,46.51104008,0,,,,,46.51104008,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2059,,,,79187.43641,4027.191201,0.45328789,,,,,,,,,48.78603557,,,,,48.78603557,0,,,2059,48.78603557,0,,,,,48.78603557,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2060,,,,83374.5841,4187.147691,0.451880235,,,,,,,,,51.14884595,,,,,51.14884595,0,,,2060,51.14884595,0,,,,,51.14884595,0,,,0,,,,,,,,,,,,,,,,,,,,,, diff --git a/solution/health_and_education/tests/test_water.py b/solution/health_and_education/tests/test_water.py new file mode 100644 index 000000000..5c982d8d0 --- /dev/null +++ b/solution/health_and_education/tests/test_water.py @@ -0,0 +1,101 @@ +import sys +sys.path.append('c:\\Users\\sunishchal.dev\\Documents\\solutions\\solution\\health_and_education') + +import pandas as pd +import numpy as np + +from clusters import water + +test_cluster = water.Cluster() +test_dfs = test_cluster.run_cluster() + +expected_df = pd.read_csv('expected_water.csv', header=None) + +def test_water(): + + # Default columns to integers to avoid mismatch between Excel & pandas col names using T.reset_index() + exp_ref2_tam = expected_df.iloc[28:75, 1:11].T.reset_index(drop=True).T.astype(float) + exp_ref2_tam.index = expected_df.iloc[28:75, 0].astype(int).values + test_ref2_tam = test_dfs.ref2_tam.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_ref2_tam, exp_ref2_tam, check_exact=False) + + exp_ref1_tam_low_edu = expected_df.iloc[28:75, 13:23].T.reset_index(drop=True).T.astype(float) + exp_ref1_tam_low_edu.index = expected_df.iloc[28:75, 12].astype(int).values + test_ref1_tam_low_edu = test_dfs.ref1_tam_low_edu.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_ref1_tam_low_edu, exp_ref1_tam_low_edu, check_exact=False) + + exp_ref1_tam_high_edu = expected_df.iloc[28:75, 25:35].T.reset_index(drop=True).T.astype(float) + exp_ref1_tam_high_edu.index = expected_df.iloc[28:75, 24].astype(int).values + test_ref1_tam_high_edu = test_dfs.ref1_tam_high_edu.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_ref1_tam_high_edu, exp_ref1_tam_high_edu, check_exact=False) + + exp_ref1_tam_all_regions = expected_df.iloc[28:75, 37:47].T.reset_index(drop=True).T.astype(float) + exp_ref1_tam_all_regions.index = expected_df.iloc[28:75, 36].astype(int).values + test_ref1_tam_all_regions = test_dfs.ref1_tam_all_regions.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_ref1_tam_all_regions, exp_ref1_tam_all_regions, check_exact=False) + + exp_ref2_demand = expected_df.iloc[79:126, 1:6].T.reset_index(drop=True).T.astype(float) + exp_ref2_demand.index = expected_df.iloc[79:126, 0].astype(int).values + test_ref2_demand = test_dfs.ref2_demand.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_ref2_demand, exp_ref2_demand, check_exact=False, rtol=1e-3) + + exp_ref1_demand = expected_df.iloc[79:126, [8,9,10,11,12,14,15,16,17,18,19]].T.reset_index(drop=True).T.astype(float) + exp_ref1_demand.index = expected_df.iloc[79:126, 7].astype(int).values + test_ref1_demand = test_dfs.ref1_demand.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_ref1_demand, exp_ref1_demand, check_exact=False, rtol=1e-3) + + exp_change_demand = expected_df.iloc[79:126, 22:30].T.reset_index(drop=True).T.astype(float) + exp_change_demand.index = expected_df.iloc[79:126, 7].astype(int).values + test_change_demand = test_dfs.change_demand.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_change_demand, exp_change_demand, check_exact=False, rtol=1e-3) + + exp_addl_func_units_highed = expected_df.iloc[134:181, 4:7].T.reset_index(drop=True).T.astype(float) + exp_addl_func_units_highed.index = expected_df.iloc[134:181, 0].astype(int, errors='ignore').values + test_addl_func_units_highed = test_dfs.addl_func_units_highed.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_addl_func_units_highed, exp_addl_func_units_highed, check_exact=False, rtol=1e-3) + + exp_addl_func_units_lowed = expected_df.iloc[134:181, 12:15].T.reset_index(drop=True).T.astype(float) + exp_addl_func_units_lowed.index = expected_df.iloc[134:181, 0].astype(int, errors='ignore').values + test_addl_func_units_lowed = test_dfs.addl_func_units_lowed.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_addl_func_units_lowed, exp_addl_func_units_lowed, check_exact=False, rtol=1e-3) + + exp_emis_diff_highed = expected_df.iloc[134:181, [22, 23, 24, 25, 27]].T.reset_index(drop=True).T.astype(float) + exp_emis_diff_highed.index = expected_df.iloc[134:181, 0].astype(int, errors='ignore').values + test_emis_diff_highed = test_dfs.emis_diff_highed.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_emis_diff_highed, exp_emis_diff_highed, check_exact=False, rtol=1e-3) + + exp_emis_diff_lowed = expected_df.iloc[134:181, [35, 36, 37, 38, 40]].T.reset_index(drop=True).T.astype(float) + exp_emis_diff_lowed.index = expected_df.iloc[134:181, 0].astype(int, errors='ignore').values + test_emis_diff_lowed = test_dfs.emis_diff_lowed.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_emis_diff_lowed, exp_emis_diff_lowed, check_exact=False, rtol=1e-3) + + exp_emissions_allocations_lldc = expected_df.iloc[134:181, [46, 47, 49, 50, 52, 53, 56, 57]].T.reset_index(drop=True).T.astype(float) + exp_emissions_allocations_lldc.index = expected_df.iloc[134:181, 45].astype(int, errors='ignore').values + test_emissions_allocations_lldc = test_dfs.emissions_allocations_lldc.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_emissions_allocations_lldc, exp_emissions_allocations_lldc, check_exact=False, rtol=1e-2) + + exp_addl_func_units_mdc = expected_df.iloc[193:240, 4:7].T.reset_index(drop=True).T.astype(float) + exp_addl_func_units_mdc.index = expected_df.iloc[193:240, 0].astype(int, errors='ignore').values + test_addl_func_units_mdc = test_dfs.addl_func_units_mdc.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_addl_func_units_mdc, exp_addl_func_units_mdc, check_exact=False, rtol=1e-3) + + exp_emis_diff_mdc = expected_df.iloc[193:240, [15, 16, 17, 18, 20]].T.reset_index(drop=True).T.astype(float) + exp_emis_diff_mdc.index = expected_df.iloc[193:240, 0].astype(int, errors='ignore').values + test_emis_diff_mdc = test_dfs.emis_diff_mdc.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_emis_diff_mdc, exp_emis_diff_mdc, check_exact=False, rtol=1e-3) + + exp_emissions_allocations_mdc = expected_df.iloc[193:240, [25, 26, 28, 29, 31, 32, 35, 36]].T.reset_index(drop=True).T.astype(float) + exp_emissions_allocations_mdc.index = expected_df.iloc[193:240, 24].astype(int, errors='ignore').values + test_emissions_allocations_mdc = test_dfs.emissions_allocations_mdc.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_emissions_allocations_mdc, exp_emissions_allocations_mdc, check_exact=False, rtol=1e-2) + + # Test the final CO2 reduction output + exp_emissions_avoided = expected_df.iloc[[4, 7, 11], [13, 14]].reset_index(drop=True).T.reset_index(drop=True).T.astype(float) + test_emissions_avoided = pd.DataFrame([[test_dfs.emissions_avoided_lldc_period, test_dfs.emissions_avoided_lldc_full], + [test_dfs.emissions_avoided_mdc_period, test_dfs.emissions_avoided_mdc_full], + [test_dfs.emissions_avoided_total_period, test_dfs.emissions_avoided_total_full]]) + pd.testing.assert_frame_equal(test_emissions_avoided, exp_emissions_avoided, check_exact=False, rtol=1e-2) + + print("Test complete: water cluster") + +test_water() \ No newline at end of file From ee179593fb9892bb048f560366f42f0114c976ba Mon Sep 17 00:00:00 2001 From: Sunishchal Date: Sun, 17 Jan 2021 17:32:42 -0800 Subject: [PATCH 25/28] Working implementation of plastics cluster --- .../clusters/cluster_model.py | 42 ++- .../health_and_education/clusters/plastics.py | 118 +++++++++ .../tests/expected_plastics.csv | 240 ++++++++++++++++++ .../tests/test_plastics.py | 46 ++++ 4 files changed, 434 insertions(+), 12 deletions(-) create mode 100644 solution/health_and_education/clusters/plastics.py create mode 100644 solution/health_and_education/tests/expected_plastics.csv create mode 100644 solution/health_and_education/tests/test_plastics.py diff --git a/solution/health_and_education/clusters/cluster_model.py b/solution/health_and_education/clusters/cluster_model.py index 3010aee37..51bb353a7 100644 --- a/solution/health_and_education/clusters/cluster_model.py +++ b/solution/health_and_education/clusters/cluster_model.py @@ -79,6 +79,19 @@ def calc_ref1_tam(self): # SpaceHeating_cluster!AL28:AU75 self.ref1_tam_all_regions = ref1_tam_all_regions + + + def calc_ref1_tam_plastics(self): + # Table 3: REF1 TAM FOR REGIONS WITH HIGHER EDUCATIONAL ATTAINMENT + ref1_tam_high_edu = ((self.ref2_tam / self.ref2_population) * self.ref1_population) + + self.ref1_tam_high_edu = ref1_tam_high_edu + + # Table 3: REF1 TAM FOR ALL REGIONS + ref1_tam_all_regions = ref1_tam_high_edu.copy() + + # SpaceHeating_cluster!AL28:AU75 + self.ref1_tam_all_regions = ref1_tam_all_regions def calc_ref2_demand(self): @@ -729,35 +742,40 @@ def calc_emis_alloc_mdc(self): self.emissions_allocations_mdc = emissions_allocations_mdc - def calc_total_emis(self, mdc=True): + def calc_total_emis(self, mdc=True, lldc=True): # Total Emissions Avoided due to Health & Education (Gt CO2-eq) - emissions_avoided_lldc_period = self.emissions_allocations_lldc.loc[self.assumptions['period_start']:self.assumptions['period_end'], 'Health & Education: Conv Total'].sum() - emissions_avoided_lldc_full = self.emissions_allocations_lldc.loc[:, 'Health & Education: Conv Total'].sum() + if lldc: + emissions_avoided_lldc_period = self.emissions_allocations_lldc.loc[self.assumptions['period_start']:self.assumptions['period_end'], 'Health & Education: Conv Total'].sum() + emissions_avoided_lldc_full = self.emissions_allocations_lldc.loc[:, 'Health & Education: Conv Total'].sum() + + self.emissions_avoided_lldc_period = round(emissions_avoided_lldc_period/1000, 2) + self.emissions_avoided_lldc_full = round(emissions_avoided_lldc_full/1000, 2) + else: + self.emissions_avoided_lldc_period = 0 + self.emissions_avoided_lldc_full = 0 if mdc: emissions_avoided_mdc_period = self.emissions_allocations_mdc.loc[self.assumptions['period_start']:self.assumptions['period_end'], 'Health & Education: Conv Total'].sum() emissions_avoided_mdc_full = self.emissions_allocations_mdc.loc[:, 'Health & Education: Conv Total'].sum() - # Electricity_cluster!N4:O12 - self.emissions_avoided_lldc_period = round(emissions_avoided_lldc_period/1000, 2) - self.emissions_avoided_lldc_full = round(emissions_avoided_lldc_full/1000, 2) - - if mdc: self.emissions_avoided_mdc_period = round(emissions_avoided_mdc_period/1000, 2) self.emissions_avoided_mdc_full = round(emissions_avoided_mdc_full/1000, 2) else: self.emissions_avoided_mdc_period = 0 self.emissions_avoided_mdc_full = 0 - self.emissions_avoided_total_period = round(self.emissions_avoided_lldc_period + self.emissions_avoided_mdc_period, 2) self.emissions_avoided_total_full = round(self.emissions_avoided_lldc_full + self.emissions_avoided_mdc_full, 2) - def print_total_emis(self, mdc=True): + def print_total_emis(self, mdc=True, lldc=True): # To avoid the hard coded 2015 - 2060 date range in Excel, infer the min/max years from the dataframe - min_range = min(self.emissions_allocations_lldc.index) - max_range = max(self.emissions_allocations_lldc.index) + if lldc: + min_range = min(self.emissions_allocations_lldc.index) + max_range = max(self.emissions_allocations_lldc.index) + else: + min_range = min(self.emissions_allocations_mdc.index) + max_range = max(self.emissions_allocations_mdc.index) print('\n', self.name) print('Total Emissions Avoided due to Health & Education (Gt CO2-eq)') diff --git a/solution/health_and_education/clusters/plastics.py b/solution/health_and_education/clusters/plastics.py new file mode 100644 index 000000000..68a5c1348 --- /dev/null +++ b/solution/health_and_education/clusters/plastics.py @@ -0,0 +1,118 @@ +"""Health & Education solution model for Plastics Cluster + Excel filename: CORE_PopulationChange_29Jan2020 (version 1.5).xlsx + Excel sheet name: Plastics_cluster +""" +import pathlib +import numpy as np +import pandas as pd +import sys +__file__ = 'c:\\Users\\sunishchal.dev\\Documents\\solutions\\solution\\health_and_education\\clusters' +repo_path = str(pathlib.Path(__file__).parents[2]) +sys.path.append(repo_path) +# sys.path.append('c:\\Users\\sunishchal.dev\\Documents\\solutions') + +from model import advanced_controls as ac +from solution.health_and_education.clusters import cluster_model + +DATADIR = pathlib.Path(__file__).parents[0].joinpath('data') +THISDIR = pathlib.Path(__file__).parents[0] + +name = 'Health and Education - Plastics Cluster' +solution_category = ac.SOLUTION_CATEGORY.REDUCTION +period_start = 2020 +period_end = 2050 + +# % impact of educational attainment on uptake of Family Planning: +assumptions = { + 'fixed_weighting_factor': 1.0, + 'pct_impact': 0.50, + 'use_fixed_weight': 'Y', + 'Direct Emissions': 2449285.71429, # t CO2-eq per MMt of Plastic Produced Annually + 'period_start': 2020, + 'period_end': 2050, + 'Grid': 'N', + 'Fuel': 'N', + 'Other Direct': 'Y', + 'Indirect': 'N' +} + +# TABLE 1: Current TAM Mix +current_tam_mix_list = [ + ['Energy Source', 'Weighting Factor', 'Include in SOL?', 'Include in CONV?'], + ['Conventional plastic', 99.46, 'N', 'Y']] + +# Table 2: REF2, Plastics Demand TAM (TWh Therms) +# WaterHeating_cluster!B28:K75 +# TODO: Replace this with solarpvutil.Scenario.ref_tam_per_region once we resolve the data mismatch +ref2_tam_list = [ + ['World'], + [311], + [318.4319049], + [325.9923898], + [333.9539254], + [342.3106818], + [351.0568292], + [360.1865377], + [369.6939775], + [379.5733188], + [389.8187316], + [400.4243862], + [411.3844527], + [422.6931012], + [434.344502], + [446.3328251], + [458.6522408], + [471.2969191], + [484.2610303], + [497.5387444], + [511.1242317], + [525.0116623], + [539.1952064], + [553.669034], + [568.4273155], + [583.4642208], + [598.7739202], + [614.3505839], + [630.1883819], + [646.2814845], + [662.6240618], + [679.2102839], + [696.034321], + [713.0903433], + [730.3725209], + [747.8750239], + [765.5920226], + [783.5176871], + [801.6461875], + [819.971694], + [838.4883767], + [857.1904058], + [876.0719515], + [895.1271839], + [914.3502732], + [933.7353894], + [953.2767029], + [972.9683837]] + + +class Cluster: + + def __init__(self): + self.name = name + + def run_cluster(self): + scenario = cluster_model.Scenario(name, assumptions) + scenario.load_pop_data(DATADIR) + scenario.load_tam_mix(current_tam_mix_list) + scenario.load_ref2_tam(ref2_tam_list) + scenario.calc_ref1_tam_plastics() + scenario.calc_addl_units_mdc() + scenario.calc_emis_diff_mdc_paper() + scenario.calc_emis_alloc_mdc() + scenario.calc_total_emis(lldc=False) + scenario.print_total_emis(lldc=False) + return scenario + +if __name__ == "__main__": + cluster = Cluster() + cluster.run_cluster() \ No newline at end of file diff --git a/solution/health_and_education/tests/expected_plastics.csv b/solution/health_and_education/tests/expected_plastics.csv new file mode 100644 index 000000000..59fa3368d --- /dev/null +++ b/solution/health_and_education/tests/expected_plastics.csv @@ -0,0 +1,240 @@ +Plastics_cluster,,Plastics Demand,(MMt),,,,,Sheet Estimates the Emissions Reduction from this Solution due to Health & Education,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,Period Start:,2020,,Total Emissions Avoided due to Health & Education (Gt CO2-eq),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,COPY VALUES FROM SOLUTION MODEL,,,,Period End:,2050,,,,2020-2050,2015-2060,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,TABLE 1: Current TAM Mix,2018,Include in SOL?,Include in CONV?,,,,,SOLUTION,0,0,,Turn off LLDC - MDC breakdown,Y,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,Conventional plastic,0.994646509,,Y,,,,,CONVENTIONAL,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +Keywords:,,,,,,,,,,,All,SOLUTION,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +LLDC,Least and Less Developed Countries,,,,,,,,,,,CONVENTIONAL,2.520660777,5.465925476,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +MDC,More Developed Countries,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +LLDC+HighNRR+HigherEd,Least and Less Developed Countries with High Net Reproductive Rates & Higher Educational Attainment.,"NOTE: China, LAC, and EE are considered as LLDC Regions with Low NRR and are accounted for under the _mdc sheet.",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +LLDC+HighNRR+LowEd,"Least and Less Developed Countries with High Net Reproductive Rates & Lower Educational Attainment. This excludes China, LAC, and EE.","NOTE: China, LAC, and EE are considered as LLDC Regions with Low NRR and are accounted for under the _mdc sheet.",,,,,,,,,TOTAL,SOLUTION,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +REF1,Reference Scenario 1 with Higher Population,,,,,,,,,,,CONVENTIONAL,2.520660777,5.465925476,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +REF2,Reference Scenario 2 with Lower Population,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +TAM,Total Addressable Market,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +LAC,Latin American Countries,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +EE,Eastern Europe,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +TWh,Terrawatt-Hours,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +NRR,Net Reproductive Rate,,,Assumptions:,,Use fixed weight?,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,Fixed weighting factor:,1,Y,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,% impact of educational attainment on uptake of Family Planning:,0.5,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,Twh per TWh,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,Fuel unit (TJ) per TWh,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,Direct Emissions,2449285.714,t CO2-eq per MMt of Plastic Produced Annually,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,Indirect Emissions,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +"Table 2: REF2, Plastics Demand TAM (MMt)",,,,,,,,,,,,"Table 3: REF1 ,Plastics Demand TAM (MMt)",,,,,,,,,,,,Table 3: REF1 Plastics Demand TAM (MMt),,,,,,,,,,,,Table 3: REF1 Plastics Demand TAM (MMt),,,,,,,,,,,,,,,,,,,,, +COPY TABLES BELOW FROM LATEST Plastics_cluster SOLUTION MODELS,,,,,,,,,,,,(a) FOR POPULATIONS IN REGIONS WITH LOW EDUCATIONAL ATTAINMENT ONLY!,,,,,,,,,,,,(b) FOR REGIONS WITH HIGHER EDUCATIONAL ATTAINMENT,,,,,,,,,,,,(c) FOR ALL REGIONS,,,,,,,,,,,,,,,,,,,,, +,Regions included as LLDC+HighNRR:,N,N,N,N,N,,,,,,,Regions included as LLDC+HighNRR:,N,N,N,N,N,,,,,,,Regions included as LLDC+HighNRR:,N,N,N,N,N,,,,,,,,,,,,,,,,,,CHECK,,,,,,,,, +,World,OECD90,Eastern Europe,Asia (Sans Japan),Middle East and Africa,Latin America,China,India,EU,USA,,,World,OECD90,Eastern Europe,"Asia (Sans Japan, Sans China)",Middle East and Africa,Latin America,China,India,EU,USA,,,World,OECD90,Eastern Europe,Asia (Sans Japan),Middle East and Africa,Latin America,China,India,EU,USA,,,World,OECD90,Eastern Europe,Asia (Sans Japan),Middle East and Africa,Latin America,China,India,EU,USA,,WORLD,,REGIONAL TOTAL,,% error,OECD90,Eastern Europe,Asia (Sans Japan),Middle East and Africa,Latin America +2014,311,,,,,,,,,,,2014,,,,,,,,,,,,2014,311,0,0,0,0,0,0,0,0,0,,2014,311,0,0,0,0,0,0,0,0,0,,311,OK,0,OK,,0,0,0,0,0 +2015,318.4319049,,,,,,,,,,,2015,,,,,,,,,,,,2015,318.4319049,0,0,0,0,0,0,0,0,0,,2015,318.4319049,0,0,0,0,0,0,0,0,0,,318.4319049,OK,0,OK,,0,0,0,0,0 +2016,325.9923898,,,,,,,,,,,2016,,,,,,,,,,,,2016,326.3359161,0,0,0,0,0,0,0,0,0,,2016,326.3359161,0,0,0,0,0,0,0,0,0,,326.3359161,OK,0,OK,,0,0,0,0,0 +2017,333.9539254,,,,,,,,,,,2017,,,,,,,,,,,,2017,334.8026277,0,0,0,0,0,0,0,0,0,,2017,334.8026277,0,0,0,0,0,0,0,0,0,,334.8026277,OK,0,OK,,0,0,0,0,0 +2018,342.3106818,,,,,,,,,,,2018,,,,,,,,,,,,2018,343.8099955,0,0,0,0,0,0,0,0,0,,2018,343.8099955,0,0,0,0,0,0,0,0,0,,343.8099955,OK,0,OK,,0,0,0,0,0 +2019,351.0568292,,,,,,,,,,,2019,,,,,,,,,,,,2019,353.3199268,0,0,0,0,0,0,0,0,0,,2019,353.3199268,0,0,0,0,0,0,0,0,0,,353.3199268,OK,0,OK,,0,0,0,0,0 +2020,360.1865377,,,,,,,,,,,2020,,,,,,,,,,,,2020,363.3021757,0,0,0,0,0,0,0,0,0,,2020,363.3021757,0,0,0,0,0,0,0,0,0,,363.3021757,OK,0,OK,,0,0,0,0,0 +2021,369.6939775,,,,,,,,,,,2021,,,,,,,,,,,,2021,373.7480025,0,0,0,0,0,0,0,0,0,,2021,373.7480025,0,0,0,0,0,0,0,0,0,,373.7480025,OK,0,OK,,0,0,0,0,0 +2022,379.5733188,,,,,,,,,,,2022,,,,,,,,,,,,2022,384.6634039,0,0,0,0,0,0,0,0,0,,2022,384.6634039,0,0,0,0,0,0,0,0,0,,384.6634039,OK,0,OK,,0,0,0,0,0 +2023,389.8187316,,,,,,,,,,,2023,,,,,,,,,,,,2023,396.0481878,0,0,0,0,0,0,0,0,0,,2023,396.0481878,0,0,0,0,0,0,0,0,0,,396.0481878,OK,0,OK,,0,0,0,0,0 +2024,400.4243862,,,,,,,,,,,2024,,,,,,,,,,,,2024,407.9058838,0,0,0,0,0,0,0,0,0,,2024,407.9058838,0,0,0,0,0,0,0,0,0,,407.9058838,OK,0,OK,,0,0,0,0,0 +2025,411.3844527,,,,,,,,,,,2025,,,,,,,,,,,,2025,420.2372045,0,0,0,0,0,0,0,0,0,,2025,420.2372045,0,0,0,0,0,0,0,0,0,,420.2372045,OK,0,OK,,0,0,0,0,0 +2026,422.6931012,,,,,,,,,,,2026,,,,,,,,,,,,2026,433.0415623,0,0,0,0,0,0,0,0,0,,2026,433.0415623,0,0,0,0,0,0,0,0,0,,433.0415623,OK,0,OK,,0,0,0,0,0 +2027,434.344502,,,,,,,,,,,2027,,,,,,,,,,,,2027,446.309493,0,0,0,0,0,0,0,0,0,,2027,446.309493,0,0,0,0,0,0,0,0,0,,446.309493,OK,0,OK,,0,0,0,0,0 +2028,446.3328251,,,,,,,,,,,2028,,,,,,,,,,,,2028,460.0218512,0,0,0,0,0,0,0,0,0,,2028,460.0218512,0,0,0,0,0,0,0,0,0,,460.0218512,OK,0,OK,,0,0,0,0,0 +2029,458.6522408,,,,,,,,,,,2029,,,,,,,,,,,,2029,474.1527005,0,0,0,0,0,0,0,0,0,,2029,474.1527005,0,0,0,0,0,0,0,0,0,,474.1527005,OK,0,OK,,0,0,0,0,0 +2030,471.2969191,,,,,,,,,,,2030,,,,,,,,,,,,2030,488.6813357,0,0,0,0,0,0,0,0,0,,2030,488.6813357,0,0,0,0,0,0,0,0,0,,488.6813357,OK,0,OK,,0,0,0,0,0 +2031,484.2610303,,,,,,,,,,,2031,,,,,,,,,,,,2031,503.5961412,0,0,0,0,0,0,0,0,0,,2031,503.5961412,0,0,0,0,0,0,0,0,0,,503.5961412,OK,0,OK,,0,0,0,0,0 +2032,497.5387444,,,,,,,,,,,2032,,,,,,,,,,,,2032,518.8975101,0,0,0,0,0,0,0,0,0,,2032,518.8975101,0,0,0,0,0,0,0,0,0,,518.8975101,OK,0,OK,,0,0,0,0,0 +2033,511.1242317,,,,,,,,,,,2033,,,,,,,,,,,,2033,534.5916924,0,0,0,0,0,0,0,0,0,,2033,534.5916924,0,0,0,0,0,0,0,0,0,,534.5916924,OK,0,OK,,0,0,0,0,0 +2034,525.0116623,,,,,,,,,,,2034,,,,,,,,,,,,2034,550.692456,0,0,0,0,0,0,0,0,0,,2034,550.692456,0,0,0,0,0,0,0,0,0,,550.692456,OK,0,OK,,0,0,0,0,0 +2035,539.1952064,,,,,,,,,,,2035,,,,,,,,,,,,2035,567.211556,0,0,0,0,0,0,0,0,0,,2035,567.211556,0,0,0,0,0,0,0,0,0,,567.211556,OK,0,OK,,0,0,0,0,0 +2036,553.669034,,,,,,,,,,,2036,,,,,,,,,,,,2036,584.1505714,0,0,0,0,0,0,0,0,0,,2036,584.1505714,0,0,0,0,0,0,0,0,0,,584.1505714,OK,0,OK,,0,0,0,0,0 +2037,568.4273155,,,,,,,,,,,2037,,,,,,,,,,,,2037,601.507865,0,0,0,0,0,0,0,0,0,,2037,601.507865,0,0,0,0,0,0,0,0,0,,601.507865,OK,0,OK,,0,0,0,0,0 +2038,583.4642208,,,,,,,,,,,2038,,,,,,,,,,,,2038,619.2900155,0,0,0,0,0,0,0,0,0,,2038,619.2900155,0,0,0,0,0,0,0,0,0,,619.2900155,OK,0,OK,,0,0,0,0,0 +2039,598.7739202,,,,,,,,,,,2039,,,,,,,,,,,,2039,637.5051675,0,0,0,0,0,0,0,0,0,,2039,637.5051675,0,0,0,0,0,0,0,0,0,,637.5051675,OK,0,OK,,0,0,0,0,0 +2040,614.3505839,,,,,,,,,,,2040,,,,,,,,,,,,2040,656.1608377,0,0,0,0,0,0,0,0,0,,2040,656.1608377,0,0,0,0,0,0,0,0,0,,656.1608377,OK,0,OK,,0,0,0,0,0 +2041,630.1883819,,,,,,,,,,,2041,,,,,,,,,,,,2041,675.2621867,0,0,0,0,0,0,0,0,0,,2041,675.2621867,0,0,0,0,0,0,0,0,0,,675.2621867,OK,0,OK,,0,0,0,0,0 +2042,646.2814845,,,,,,,,,,,2042,,,,,,,,,,,,2042,694.8132323,0,0,0,0,0,0,0,0,0,,2042,694.8132323,0,0,0,0,0,0,0,0,0,,694.8132323,OK,0,OK,,0,0,0,0,0 +2043,662.6240618,,,,,,,,,,,2043,,,,,,,,,,,,2043,714.8192094,0,0,0,0,0,0,0,0,0,,2043,714.8192094,0,0,0,0,0,0,0,0,0,,714.8192094,OK,0,OK,,0,0,0,0,0 +2044,679.2102839,,,,,,,,,,,2044,,,,,,,,,,,,2044,735.2851935,0,0,0,0,0,0,0,0,0,,2044,735.2851935,0,0,0,0,0,0,0,0,0,,735.2851935,OK,0,OK,,0,0,0,0,0 +2045,696.034321,,,,,,,,,,,2045,,,,,,,,,,,,2045,756.2159005,0,0,0,0,0,0,0,0,0,,2045,756.2159005,0,0,0,0,0,0,0,0,0,,756.2159005,OK,0,OK,,0,0,0,0,0 +2046,713.0903433,,,,,,,,,,,2046,,,,,,,,,,,,2046,777.6160677,0,0,0,0,0,0,0,0,0,,2046,777.6160677,0,0,0,0,0,0,0,0,0,,777.6160677,OK,0,OK,,0,0,0,0,0 +2047,730.3725209,,,,,,,,,,,2047,,,,,,,,,,,,2047,799.4894192,0,0,0,0,0,0,0,0,0,,2047,799.4894192,0,0,0,0,0,0,0,0,0,,799.4894192,OK,0,OK,,0,0,0,0,0 +2048,747.8750239,,,,,,,,,,,2048,,,,,,,,,,,,2048,821.8380905,0,0,0,0,0,0,0,0,0,,2048,821.8380905,0,0,0,0,0,0,0,0,0,,821.8380905,OK,0,OK,,0,0,0,0,0 +2049,765.5920226,,,,,,,,,,,2049,,,,,,,,,,,,2049,844.6630919,0,0,0,0,0,0,0,0,0,,2049,844.6630919,0,0,0,0,0,0,0,0,0,,844.6630919,OK,0,OK,,0,0,0,0,0 +2050,783.5176871,,,,,,,,,,,2050,,,,,,,,,,,,2050,867.9653946,0,0,0,0,0,0,0,0,0,,2050,867.9653946,0,0,0,0,0,0,0,0,0,,867.9653946,OK,0,OK,,0,0,0,0,0 +2051,801.6461875,,,,,,,,,,,2051,,,,,,,,,,,,2051,891.7474733,0,0,0,0,0,0,0,0,0,,2051,891.7474733,0,0,0,0,0,0,0,0,0,,891.7474733,OK,0,OK,,0,0,0,0,0 +2052,819.971694,,,,,,,,,,,2052,,,,,,,,,,,,2052,916.011322,0,0,0,0,0,0,0,0,0,,2052,916.011322,0,0,0,0,0,0,0,0,0,,916.011322,OK,0,OK,,0,0,0,0,0 +2053,838.4883767,,,,,,,,,,,2053,,,,,,,,,,,,2053,940.7563275,0,0,0,0,0,0,0,0,0,,2053,940.7563275,0,0,0,0,0,0,0,0,0,,940.7563275,OK,0,OK,,0,0,0,0,0 +2054,857.1904058,,,,,,,,,,,2054,,,,,,,,,,,,2054,965.9806833,0,0,0,0,0,0,0,0,0,,2054,965.9806833,0,0,0,0,0,0,0,0,0,,965.9806833,OK,0,OK,,0,0,0,0,0 +2055,876.0719515,,,,,,,,,,,2055,,,,,,,,,,,,2055,991.6828437,0,0,0,0,0,0,0,0,0,,2055,991.6828437,0,0,0,0,0,0,0,0,0,,991.6828437,OK,0,OK,,0,0,0,0,0 +2056,895.1271839,,,,,,,,,,,2056,,,,,,,,,,,,2056,1017.863719,0,0,0,0,0,0,0,0,0,,2056,1017.863719,0,0,0,0,0,0,0,0,0,,1017.863719,OK,0,OK,,0,0,0,0,0 +2057,914.3502732,,,,,,,,,,,2057,,,,,,,,,,,,2057,1044.523849,0,0,0,0,0,0,0,0,0,,2057,1044.523849,0,0,0,0,0,0,0,0,0,,1044.523849,OK,0,OK,,0,0,0,0,0 +2058,933.7353894,,,,,,,,,,,2058,,,,,,,,,,,,2058,1071.660431,0,0,0,0,0,0,0,0,0,,2058,1071.660431,0,0,0,0,0,0,0,0,0,,1071.660431,OK,0,OK,,0,0,0,0,0 +2059,953.2767029,,,,,,,,,,,2059,,,,,,,,,,,,2059,1099.269364,0,0,0,0,0,0,0,0,0,,2059,1099.269364,0,0,0,0,0,0,0,0,0,,1099.269364,OK,0,OK,,0,0,0,0,0 +2060,972.9683837,,,,,,,,,,,2060,,,,,,,,,,,,2060,1127.347554,0,0,0,0,0,0,0,0,0,,2060,1127.347554,0,0,0,0,0,0,0,0,0,,1127.347554,OK,0,OK,,0,0,0,0,0 +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +Table 4: Total REF2 Plastics Demand by Economic Development Status (MMt),,,,,,,Table 5: Total REF1 Plastics Demand by Economic Development Status (MMt),,,,,,,,,,,,,,,"Table 6: Change in Plastics Demand by MDC vs. LLDC Regions, REF1-REF2 (MMt)",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,LLDC+HighNRR,China,MDC + LAC + EE,Total Electricity Demand in Countries with Higher Educational Attainment (TWh), --> % LLDC,,,"LLDC with low educational attainment, excluding China","MDC + EE + LAC with low educational attainment, excluding China",China,"LLDC with higher educational attainment, excluding China",MDC + EE + LAC with higher educational attainment,,"Total Electricity Demand in Countries with Low Educational Attainment (TWh), exluding China", --> % LLDC,Total Electricity Demand in Countries with Higher Educational Attainment (TWh), --> % LLDC,Total Electricity Demand (TWh), --> % LLDC,,,LLDC,China,MDC + EE +LAC,Total change in REF1-REF2,% LLDC with higher educational attainment,% LLDC with Low Educational Attainment,% LLDC,% MDC + LAC + EE + China,,"% LLDC with low educational attainment, TWh)","% LLDC with higher educational attainment, TWh)",,,,,,,,,,,,,,,,,,,,,,,,, +2014,0,0,0,0,,,2014,0,0,0,0,0,,0,,0,,0,,,,0,0,0,0,0,,,,,#DIV/0!,#DIV/0!,,,,,,,,,,,,,,,,,,,,,,,,, +2015,0,0,0,0,,,2015,0,0,0,0,0,,0,,0,,0,,,,0,0,0,0,0,,,,,#DIV/0!,#DIV/0!,,,,,,,,,,,,,,,,,,,,,,,,, +2016,0,0,0,0,,,2016,0,0,0,0,0,,0,,0,,0,,,,0,0,0,0,,,,,,#DIV/0!,#DIV/0!,,,,,,,,,,,,,,,,,,,,,,,,, +2017,0,0,0,0,,,2017,0,0,0,0,0,,0,,0,,0,,,,0,0,0,0,,,,,,#DIV/0!,#DIV/0!,,,,,,,,,,,,,,,,,,,,,,,,, +2018,0,0,0,0,,,2018,0,0,0,0,0,,0,,0,,0,,,,0,0,0,0,,,,,,#DIV/0!,#DIV/0!,,,,,,,,,,,,,,,,,,,,,,,,, +2019,0,0,0,0,,,2019,0,0,0,0,0,,0,,0,,0,,,,0,0,0,0,,,,,,#DIV/0!,#DIV/0!,,,,,,,,,,,,,,,,,,,,,,,,, +2020,0,0,0,0,,,2020,0,0,0,0,0,,0,,0,,0,,,,0,0,0,0,,,,,,#DIV/0!,#DIV/0!,,,,,,,,,,,,,,,,,,,,,,,,, +2021,0,0,0,0,,,2021,0,0,0,0,0,,0,,0,,0,,,,0,0,0,0,,,,,,#DIV/0!,#DIV/0!,,,,,,,,,,,,,,,,,,,,,,,,, +2022,0,0,0,0,,,2022,0,0,0,0,0,,0,,0,,0,,,,0,0,0,0,,,,,,#DIV/0!,#DIV/0!,,,,,,,,,,,,,,,,,,,,,,,,, +2023,0,0,0,0,,,2023,0,0,0,0,0,,0,,0,,0,,,,0,0,0,0,,,,,,#DIV/0!,#DIV/0!,,,,,,,,,,,,,,,,,,,,,,,,, +2024,0,0,0,0,,,2024,0,0,0,0,0,,0,,0,,0,,,,0,0,0,0,,,,,,#DIV/0!,#DIV/0!,,,,,,,,,,,,,,,,,,,,,,,,, +2025,0,0,0,0,,,2025,0,0,0,0,0,,0,,0,,0,,,,0,0,0,0,,,,,,#DIV/0!,#DIV/0!,,,,,,,,,,,,,,,,,,,,,,,,, +2026,0,0,0,0,,,2026,0,0,0,0,0,,0,,0,,0,,,,0,0,0,0,,,,,,#DIV/0!,#DIV/0!,,,,,,,,,,,,,,,,,,,,,,,,, +2027,0,0,0,0,,,2027,0,0,0,0,0,,0,,0,,0,,,,0,0,0,0,,,,,,#DIV/0!,#DIV/0!,,,,,,,,,,,,,,,,,,,,,,,,, +2028,0,0,0,0,,,2028,0,0,0,0,0,,0,,0,,0,,,,0,0,0,0,,,,,,#DIV/0!,#DIV/0!,,,,,,,,,,,,,,,,,,,,,,,,, +2029,0,0,0,0,,,2029,0,0,0,0,0,,0,,0,,0,,,,0,0,0,0,,,,,,#DIV/0!,#DIV/0!,,,,,,,,,,,,,,,,,,,,,,,,, +2030,0,0,0,0,,,2030,0,0,0,0,0,,0,,0,,0,,,,0,0,0,0,,,,,,#DIV/0!,#DIV/0!,,,,,,,,,,,,,,,,,,,,,,,,, +2031,0,0,0,0,,,2031,0,0,0,0,0,,0,,0,,0,,,,0,0,0,0,,,,,,#DIV/0!,#DIV/0!,,,,,,,,,,,,,,,,,,,,,,,,, +2032,0,0,0,0,,,2032,0,0,0,0,0,,0,,0,,0,,,,0,0,0,0,,,,,,#DIV/0!,#DIV/0!,,,,,,,,,,,,,,,,,,,,,,,,, +2033,0,0,0,0,,,2033,0,0,0,0,0,,0,,0,,0,,,,0,0,0,0,,,,,,#DIV/0!,#DIV/0!,,,,,,,,,,,,,,,,,,,,,,,,, +2034,0,0,0,0,,,2034,0,0,0,0,0,,0,,0,,0,,,,0,0,0,0,,,,,,#DIV/0!,#DIV/0!,,,,,,,,,,,,,,,,,,,,,,,,, +2035,0,0,0,0,,,2035,0,0,0,0,0,,0,,0,,0,,,,0,0,0,0,,,,,,#DIV/0!,#DIV/0!,,,,,,,,,,,,,,,,,,,,,,,,, +2036,0,0,0,0,,,2036,0,0,0,0,0,,0,,0,,0,,,,0,0,0,0,,,,,,#DIV/0!,#DIV/0!,,,,,,,,,,,,,,,,,,,,,,,,, +2037,0,0,0,0,,,2037,0,0,0,0,0,,0,,0,,0,,,,0,0,0,0,,,,,,#DIV/0!,#DIV/0!,,,,,,,,,,,,,,,,,,,,,,,,, +2038,0,0,0,0,,,2038,0,0,0,0,0,,0,,0,,0,,,,0,0,0,0,,,,,,#DIV/0!,#DIV/0!,,,,,,,,,,,,,,,,,,,,,,,,, +2039,0,0,0,0,,,2039,0,0,0,0,0,,0,,0,,0,,,,0,0,0,0,,,,,,#DIV/0!,#DIV/0!,,,,,,,,,,,,,,,,,,,,,,,,, +2040,0,0,0,0,,,2040,0,0,0,0,0,,0,,0,,0,,,,0,0,0,0,,,,,,#DIV/0!,#DIV/0!,,,,,,,,,,,,,,,,,,,,,,,,, +2041,0,0,0,0,,,2041,0,0,0,0,0,,0,,0,,0,,,,0,0,0,0,,,,,,#DIV/0!,#DIV/0!,,,,,,,,,,,,,,,,,,,,,,,,, +2042,0,0,0,0,,,2042,0,0,0,0,0,,0,,0,,0,,,,0,0,0,0,,,,,,#DIV/0!,#DIV/0!,,,,,,,,,,,,,,,,,,,,,,,,, +2043,0,0,0,0,,,2043,0,0,0,0,0,,0,,0,,0,,,,0,0,0,0,,,,,,#DIV/0!,#DIV/0!,,,,,,,,,,,,,,,,,,,,,,,,, +2044,0,0,0,0,,,2044,0,0,0,0,0,,0,,0,,0,,,,0,0,0,0,,,,,,#DIV/0!,#DIV/0!,,,,,,,,,,,,,,,,,,,,,,,,, +2045,0,0,0,0,,,2045,0,0,0,0,0,,0,,0,,0,,,,0,0,0,0,,,,,,#DIV/0!,#DIV/0!,,,,,,,,,,,,,,,,,,,,,,,,, +2046,0,0,0,0,,,2046,0,0,0,0,0,,0,,0,,0,,,,0,0,0,0,,,,,,#DIV/0!,#DIV/0!,,,,,,,,,,,,,,,,,,,,,,,,, +2047,0,0,0,0,,,2047,0,0,0,0,0,,0,,0,,0,,,,0,0,0,0,,,,,,#DIV/0!,#DIV/0!,,,,,,,,,,,,,,,,,,,,,,,,, +2048,0,0,0,0,,,2048,0,0,0,0,0,,0,,0,,0,,,,0,0,0,0,,,,,,#DIV/0!,#DIV/0!,,,,,,,,,,,,,,,,,,,,,,,,, +2049,0,0,0,0,,,2049,0,0,0,0,0,,0,,0,,0,,,,0,0,0,0,,,,,,#DIV/0!,#DIV/0!,,,,,,,,,,,,,,,,,,,,,,,,, +2050,0,0,0,0,,,2050,0,0,0,0,0,,0,,0,,0,,,,0,0,0,0,,,,,,#DIV/0!,#DIV/0!,,,,,,,,,,,,,,,,,,,,,,,,, +2051,0,0,0,0,,,2051,0,0,0,0,0,,0,,0,,0,,,,0,0,0,0,,,,,,#DIV/0!,#DIV/0!,,,,,,,,,,,,,,,,,,,,,,,,, +2052,0,0,0,0,,,2052,0,0,0,0,0,,0,,0,,0,,,,0,0,0,0,,,,,,#DIV/0!,#DIV/0!,,,,,,,,,,,,,,,,,,,,,,,,, +2053,0,0,0,0,,,2053,0,0,0,0,0,,0,,0,,0,,,,0,0,0,0,,,,,,#DIV/0!,#DIV/0!,,,,,,,,,,,,,,,,,,,,,,,,, +2054,0,0,0,0,,,2054,0,0,0,0,0,,0,,0,,0,,,,0,0,0,0,,,,,,#DIV/0!,#DIV/0!,,,,,,,,,,,,,,,,,,,,,,,,, +2055,0,0,0,0,,,2055,0,0,0,0,0,,0,,0,,0,,,,0,0,0,0,,,,,,#DIV/0!,#DIV/0!,,,,,,,,,,,,,,,,,,,,,,,,, +2056,0,0,0,0,,,2056,0,0,0,0,0,,0,,0,,0,,,,0,0,0,0,,,,,,#DIV/0!,#DIV/0!,,,,,,,,,,,,,,,,,,,,,,,,, +2057,0,0,0,0,,,2057,0,0,0,0,0,,0,,0,,0,,,,0,0,0,0,,,,,,#DIV/0!,#DIV/0!,,,,,,,,,,,,,,,,,,,,,,,,, +2058,0,0,0,0,,,2058,0,0,0,0,0,,0,,0,,0,,,,0,0,0,0,,,,,,#DIV/0!,#DIV/0!,,,,,,,,,,,,,,,,,,,,,,,,, +2059,0,0,0,0,,,2059,0,0,0,0,0,,0,,0,,0,,,,0,0,0,0,,,,,,#DIV/0!,#DIV/0!,,,,,,,,,,,,,,,,,,,,,,,,, +2060,0,0,0,0,,,2060,0,0,0,0,0,,0,,0,,0,,,,0,0,0,0,,,,,,#DIV/0!,#DIV/0!,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,Table 7: Difference in FUNCTIONAL & IMPLEMENTATION UNITS between REF1 and REF2 populations in LLDC+HighNRR+HighED,,,,,,,,Table 8: Difference in FUNCTIONAL & IMPLEMENTATION UNITS between REF1 and REF2 populations in LLDC+HighNRR+LowED,,,,,,,,Table 9: Difference in EMISSIONS between REF1 and REF2 populations in LLDC+HighNRR+HighED,,,,,,,,,,,,,Table 10: Difference in EMISSIONS between REF1 and REF2 populations in LLDC+HighNRR+LowED,,,,,,,,,,,,,,,Table 11: EMISSIONS ALLOCATIONS TO (a) Health & Education; (b) Education ONLY; (c) Family Planning (excluding education),,,,,,,,,,,, +,SOLUTION ,,,CONVENTIONAL,,,,,SOLUTION ,,,CONVENTIONAL,,,,,SOLUTION,,,,,CONVENTIONAL,,,,,EMISSION REDUCTIONS,,,SOLUTION ,,,,,CONVENTIONAL,,,,,EMISSION REDCUTIONS ,,,,,"Table 11(a): EMISSIONS ALLOCATION TO HEALTH & EDUCATION in LLDC, Plastics_cluster",,,,"Table 11(b): EMISSIONS ALLOCATION TO Education in LLDC, Plastics_cluster",,,"Table 11(c): EMISSIONS ALLOCATION TO Family Planning in LLDC, Plastics_cluster",,,,% Allocation to Education (Electricity), +,Additional Functional Units in REF2 vs REF1,Annual Functional Units Increase,Annual Implementation Units Increase + Replacement,Additional Functional Units in REF2 vs REF2,Annual Functional Units Increase,Change in TAM,Annual Implementation Units Increase + Replacement,,Additional Functional Units in REF2 vs REF1,Annual Functional Units Increase,Annual Implementation Units Increase + Replacement,Additional Functional Units in REF2 vs REF2,Annual Functional Units Increase,Change in TAM,Annual Implementation Units Increase + Replacement,,Avoided Emissions/ Million Metric Tons CO2,,,,,Avoided Emissions/ Million Metric Tons CO2,,,,,ALL Years,,,Avoided Emissions/ Million Metric Tons CO2,,,,,Avoided Emissions/ Million Metric Tons CO2,,,,,ALL Years,,,,,,,,,,,,,,,,ALL Years, +,TWh,TWh,TW,TWh,TWh,%,TW,,TWh,TWh,TW,TWh,TWh,%,TW,,Grid,Fuel,Other Direct,Indirect,,Grid,Fuel,Other Direct,Indirect,,Conv Total,Solution Total,,Grid,Fuel,Other Direct,Indirect,,Grid,Fuel,Other Direct,Indirect,,Conv Total,Solution Total,,,,,Conv Total,Solution Total,,Conv Total,Solution Total,,Conv Total,Solution Total,,,Conv Total,Solution Total +2014,,,,,,,Not modeled TBD,,,,,,,,Not modeled TBD,,,,,,,N,N,Y,N,,,,,N,N,N,N,,N,N,Y,N,,,,,,,2014,0,0,,0,0,,0,0,,,, +2015,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,,,,,,,,,,,,0,0,,,,2015,0,0,,0,0,,0,0,,,, +2016,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,,,,,,,,,,,,0,0,,,,2016,0,0,,0,0,,0,0,,,, +2017,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,,,,,,,,,,,,0,0,,,,2017,0,0,,0,0,,0,0,,,, +2018,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,,,,,,,,,,,,0,0,,,,2018,0,0,,0,0,,0,0,,,, +2019,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,,,,,,,,,,,,0,0,,,,2019,0,0,,0,0,,0,0,,,, +2020,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,,,,,,,,,,,,0,0,,,,2020,0,0,,0,0,,0,0,,,, +2021,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,,,,,,,,,,,,0,0,,,,2021,0,0,,0,0,,0,0,,,, +2022,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,,,,,,,,,,,,0,0,,,,2022,0,0,,0,0,,0,0,,,, +2023,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,,,,,,,,,,,,0,0,,,,2023,0,0,,0,0,,0,0,,,, +2024,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,,,,,,,,,,,,0,0,,,,2024,0,0,,0,0,,0,0,,,, +2025,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,,,,,,,,,,,,0,0,,,,2025,0,0,,0,0,,0,0,,,, +2026,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,,,,,,,,,,,,0,0,,,,2026,0,0,,0,0,,0,0,,,, +2027,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,,,,,,,,,,,,0,0,,,,2027,0,0,,0,0,,0,0,,,, +2028,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,,,,,,,,,,,,0,0,,,,2028,0,0,,0,0,,0,0,,,, +2029,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,,,,,,,,,,,,0,0,,,,2029,0,0,,0,0,,0,0,,,, +2030,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,,,,,,,,,,,,0,0,,,,2030,0,0,,0,0,,0,0,,,, +2031,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,,,,,,,,,,,,0,0,,,,2031,0,0,,0,0,,0,0,,,, +2032,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,,,,,,,,,,,,0,0,,,,2032,0,0,,0,0,,0,0,,,, +2033,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,,,,,,,,,,,,0,0,,,,2033,0,0,,0,0,,0,0,,,, +2034,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,,,,,,,,,,,,0,0,,,,2034,0,0,,0,0,,0,0,,,, +2035,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,,,,,,,,,,,,0,0,,,,2035,0,0,,0,0,,0,0,,,, +2036,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,,,,,,,,,,,,0,0,,,,2036,0,0,,0,0,,0,0,,,, +2037,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,,,,,,,,,,,,0,0,,,,2037,0,0,,0,0,,0,0,,,, +2038,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,,,,,,,,,,,,0,0,,,,2038,0,0,,0,0,,0,0,,,, +2039,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,,,,,,,,,,,,0,0,,,,2039,0,0,,0,0,,0,0,,,, +2040,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,,,,,,,,,,,,0,0,,,,2040,0,0,,0,0,,0,0,,,, +2041,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,,,,,,,,,,,,0,0,,,,2041,0,0,,0,0,,0,0,,,, +2042,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,,,,,,,,,,,,0,0,,,,2042,0,0,,0,0,,0,0,,,, +2043,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,,,,,,,,,,,,0,0,,,,2043,0,0,,0,0,,0,0,,,, +2044,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,,,,,,,,,,,,0,0,,,,2044,0,0,,0,0,,0,0,,,, +2045,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,,,,,,,,,,,,0,0,,,,2045,0,0,,0,0,,0,0,,,, +2046,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,,,,,,,,,,,,0,0,,,,2046,0,0,,0,0,,0,0,,,, +2047,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,,,,,,,,,,,,0,0,,,,2047,0,0,,0,0,,0,0,,,, +2048,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,,,,,,,,,,,,0,0,,,,2048,0,0,,0,0,,0,0,,,, +2049,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,,,,,,,,,,,,0,0,,,,2049,0,0,,0,0,,0,0,,,, +2050,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,,,,,,,,,,,,0,0,,,,2050,0,0,,0,0,,0,0,,,, +2051,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,,,,,,,,,,,,0,0,,,,2051,0,0,,0,0,,0,0,,,, +2052,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,,,,,,,,,,,,0,0,,,,2052,0,0,,0,0,,0,0,,,, +2053,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,,,,,,,,,,,,0,0,,,,2053,0,0,,0,0,,0,0,,,, +2054,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,,,,,,,,,,,,0,0,,,,2054,0,0,,0,0,,0,0,,,, +2055,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,,,,,,,,,,,,0,0,,,,2055,0,0,,0,0,,0,0,,,, +2056,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,,,,,,,,,,,,0,0,,,,2056,0,0,,0,0,,0,0,,,, +2057,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,,,,,,,,,,,,0,0,,,,2057,0,0,,0,0,,0,0,,,, +2058,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,,,,,,,,,,,,0,0,,,,2058,0,0,,0,0,,0,0,,,, +2059,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,,,,,,,,,,,,0,0,,,,2059,0,0,,0,0,,0,0,,,, +2060,,,,,,,,,,,,,,,,,,,,,,,,,,,0,0,,,,,,,,,,,,0,0,,,,2060,0,0,,0,0,,0,0,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,Table 12: Difference in FUNCTIONAL & IMPLEMENTATION UNITS between REF1 and REF2 populations in MDC + LAC + EE + China,,,,,,,,,Table 13: Difference in EMISSIONS between REF1 and REF2 populations in MDC + LAC + EE + China,,,,,,,,,,,,,,Table 14: EMISSIONS ALLOCATIONS TO (a) Health & Education; (b) Education ONLY; (c) Family Planning (excluding education),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +,SOLUTION ,,,CONVENTIONAL,,,,,,SOLUTION,,,,,CONVENTIONAL,,,,,EMISSION REDUCTIONS,,,,"Table 14(a): EMISSIONS ALLOCATION TO HEALTH & EDUCATION in MDC, Plastics_cluster",,,,"Table 14(b): EMISSIONS ALLOCATION TO Education in MDC, Plastics_cluster",,,"Table 14(c): EMISSIONS ALLOCATION TO Family Planning in MDC, Plastics_cluster",,,,% Allocation to Education (Electricity),,,,,,,,,,,,,,,,,,,,,, +,Additional Functional Units in REF2 vs REF1,Annual Functional Units Increase,Annual Implementation Units Increase + Replacement,Additional Functional Units in REF2 vs REF2,Annual Functional Units Increase,Change in TAM,Annual Implementation Units Increase + Replacement,,,Avoided Emissions/ Million Metric Tons CO2,,,,,Avoided Emissions/ Million Metric Tons CO2,,,,,ALL Years,,,,,,,,,,,,,,,ALL Years,,,,,,,,,,,,,,,,,,,,,, +,TWh,TWh,TW,TWh,TWh,%,TW,,,Grid,Fuel,Other Direct,Indirect,,Grid,Fuel,Other Direct,Indirect,,Conv Total,Solution Total,,,,Conv Total,Solution Total,,Conv Total,Solution Total,,Conv Total,Solution Total,,,Conv Total,Solution Total,,,,,,,,,,,,,,,,,,,,, +2014,,,,0,,,Not modeled TBD,,,,,,,,,,0,,,0,0,,,2014,0,0,,,,,0,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2015,,,,0,0,,,,,,,,,,,,0,,,0,0,,,2015,0,0,,,,,0,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2016,,,,0.341687212,0.341687212,0.994646509,,,,,,,,,,,0.836889608,,,0.836889608,0,,,2016,0.836889608,0,,,,,0.836889608,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2017,,,,0.844158706,0.502471494,0.994646509,,,,,,,,,,,2.06758586,,,2.06758586,0,,,2017,2.06758586,0,,,,,2.06758586,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2018,,,,1.491287126,0.64712842,0.994646509,,,,,,,,,,,3.652588254,,,3.652588254,0,,,2018,3.652588254,0,,,,,3.652588254,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2019,,,,2.250982082,0.759694955,0.994646509,,,,,,,,,,,5.513298256,,,5.513298256,0,,,2019,5.513298256,0,,,,,5.513298256,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2020,,,,3.098958428,0.847976347,0.994646509,,,,,,,,,,,7.590234608,,,7.590234608,0,,,2020,7.590234608,0,,,,,7.590234608,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2021,,,,4.032321803,0.933363375,0.994646509,,,,,,,,,,,9.876308187,,,9.876308187,0,,,2021,9.876308187,0,,,,,9.876308187,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2022,,,,5.062835391,1.030513588,0.994646509,,,,,,,,,,,12.4003304,,,12.4003304,0,,,2022,12.4003304,0,,,,,12.4003304,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2023,,,,6.196106866,1.133271475,0.994646509,,,,,,,,,,,15.17603603,,,15.17603603,0,,,2023,15.17603603,0,,,,,15.17603603,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2024,,,,7.441445467,1.245338602,0.994646509,,,,,,,,,,,18.22622608,,,18.22622608,0,,,2024,18.22622608,0,,,,,18.22622608,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2025,,,,8.805358733,1.363913266,0.994646509,,,,,,,,,,,21.56683935,,,21.56683935,0,,,2025,21.56683935,0,,,,,21.56683935,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2026,,,,10.29306071,1.487701975,0.994646509,,,,,,,,,,,25.21064655,,,25.21064655,0,,,2026,25.21064655,0,,,,,25.21064655,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2027,,,,11.90093652,1.607875809,0.994646509,,,,,,,,,,,29.1487938,,,29.1487938,0,,,2027,29.1487938,0,,,,,29.1487938,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2028,,,,13.61574196,1.714805446,0.994646509,,,,,,,,,,,33.34884228,,,33.34884228,0,,,2028,33.34884228,0,,,,,33.34884228,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2029,,,,15.41747816,1.801736201,0.994646509,,,,,,,,,,,37.76180902,,,37.76180902,0,,,2029,37.76180902,0,,,,,37.76180902,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2030,,,,17.29134927,1.873871106,0.994646509,,,,,,,,,,,42.35145475,,,42.35145475,0,,,2030,42.35145475,0,,,,,42.35145475,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2031,,,,19.2316006,1.940251328,0.994646509,,,,,,,,,,,47.10368461,,,47.10368461,0,,,2031,47.10368461,0,,,,,47.10368461,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2032,,,,21.24442171,2.012821116,0.994646509,,,,,,,,,,,52.03365861,,,52.03365861,0,,,2032,52.03365861,0,,,,,52.03365861,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2033,,,,23.34182778,2.097406072,0.994646509,,,,,,,,,,,57.17080534,,,57.17080534,0,,,2033,57.17080534,0,,,,,57.17080534,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2034,,,,25.54331181,2.201484023,0.994646509,,,,,,,,,,,62.56286871,,,62.56286871,0,,,2034,62.56286871,0,,,,,62.56286871,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2035,,,,27.86636432,2.323052509,0.994646509,,,,,,,,,,,68.25268803,,,68.25268803,0,,,2035,68.25268803,0,,,,,68.25268803,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2036,,,,30.31835476,2.451990443,0.994646509,,,,,,,,,,,74.25831319,,,74.25831319,0,,,2036,74.25831319,0,,,,,74.25831319,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2037,,,,32.90345311,2.585098353,0.994646509,,,,,,,,,,,80.58995766,,,80.58995766,0,,,2037,80.58995766,0,,,,,80.58995766,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2038,,,,35.63400159,2.730548479,0.994646509,,,,,,,,,,,87.27785104,,,87.27785104,0,,,2038,87.27785104,0,,,,,87.27785104,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2039,,,,38.52389986,2.889898273,0.994646509,,,,,,,,,,,94.3560376,,,94.3560376,0,,,2039,94.3560376,0,,,,,94.3560376,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2040,,,,41.58642302,3.062523154,0.994646509,,,,,,,,,,,101.8570318,,,101.8570318,0,,,2040,101.8570318,0,,,,,101.8570318,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2041,,,,44.83250259,3.246079567,0.994646509,,,,,,,,,,,109.8076081,,,109.8076081,0,,,2041,109.8076081,0,,,,,109.8076081,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2042,,,,48.27193352,3.439430934,0.994646509,,,,,,,,,,,118.2317572,,,118.2317572,0,,,2042,118.2317572,0,,,,,118.2317572,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2043,,,,51.91572139,3.643787868,0.994646509,,,,,,,,,,,127.1564347,,,127.1564347,0,,,2043,127.1564347,0,,,,,127.1564347,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2044,,,,55.77471307,3.858991678,0.994646509,,,,,,,,,,,136.6082079,,,136.6082079,0,,,2044,136.6082079,0,,,,,136.6082079,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2045,,,,59.85939791,4.084684848,0.994646509,,,,,,,,,,,146.6127682,,,146.6127682,0,,,2045,146.6127682,0,,,,,146.6127682,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2046,,,,64.18028651,4.320888595,0.994646509,,,,,,,,,,,157.1958589,,,157.1958589,0,,,2046,157.1958589,0,,,,,157.1958589,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2047,,,,68.74688159,4.566595086,0.994646509,,,,,,,,,,,168.380755,,,168.380755,0,,,2047,168.380755,0,,,,,168.380755,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2048,,,,73.56710588,4.820224287,0.994646509,,,,,,,,,,,180.1868615,,,180.1868615,0,,,2048,180.1868615,0,,,,,180.1868615,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2049,,,,78.64776299,5.08065711,0.994646509,,,,,,,,,,,192.6308424,,,192.6308424,0,,,2049,192.6308424,0,,,,,192.6308424,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2050,,,,83.99561743,5.347854433,0.994646509,,,,,,,,,,,205.7292658,,,205.7292658,0,,,2050,205.7292658,0,,,,,205.7292658,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2051,,,,89.61892938,5.623311954,0.994646509,,,,,,,,,,,219.5023635,,,219.5023635,0,,,2051,219.5023635,0,,,,,219.5023635,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2052,,,,95.52548073,5.906551352,0.994646509,,,,,,,,,,,233.9691953,,,233.9691953,0,,,2052,233.9691953,0,,,,,233.9691953,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2053,,,,101.7204602,6.194979443,0.994646509,,,,,,,,,,,249.14247,,,249.14247,0,,,2053,249.14247,0,,,,,249.14247,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2054,,,,108.2078697,6.487409538,0.994646509,,,,,,,,,,,265.0319895,,,265.0319895,0,,,2054,265.0319895,0,,,,,265.0319895,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2055,,,,114.9919703,6.784100547,0.994646509,,,,,,,,,,,281.64819,,,281.64819,0,,,2055,281.64819,0,,,,,281.64819,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2056,,,,122.0794664,7.087496131,0.994646509,,,,,,,,,,,299.007493,,,299.007493,0,,,2056,299.007493,0,,,,,299.007493,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2057,,,,129.4766924,7.397225993,0.994646509,,,,,,,,,,,317.125413,,,317.125413,0,,,2057,317.125413,0,,,,,317.125413,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2058,,,,137.1866615,7.709969094,0.994646509,,,,,,,,,,,336.0093301,,,336.0093301,0,,,2058,336.0093301,0,,,,,336.0093301,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2059,,,,145.2110911,8.024429607,0.994646509,,,,,,,,,,,355.6634509,,,355.6634509,0,,,2059,355.6634509,0,,,,,355.6634509,0,,,0,,,,,,,,,,,,,,,,,,,,,, +2060,,,,153.5527027,8.341611585,0.994646509,,,,,,,,,,,376.094441,,,376.094441,0,,,2060,376.094441,0,,,,,376.094441,0,,,0,,,,,,,,,,,,,,,,,,,,,, diff --git a/solution/health_and_education/tests/test_plastics.py b/solution/health_and_education/tests/test_plastics.py new file mode 100644 index 000000000..6b7c706b1 --- /dev/null +++ b/solution/health_and_education/tests/test_plastics.py @@ -0,0 +1,46 @@ +import sys +sys.path.append('c:\\Users\\sunishchal.dev\\Documents\\solutions\\solution\\health_and_education') + +import pandas as pd +import numpy as np + +from clusters import plastics + +test_cluster = plastics.Cluster() +test_dfs = test_cluster.run_cluster() + +expected_df = pd.read_csv('expected_plastics.csv', header=None) + +def test_plastics(): + + # Default columns to integers to avoid mismatch between Excel & pandas col names using T.reset_index() + exp_ref2_tam = expected_df.iloc[28:75, 1:2].T.reset_index(drop=True).T.astype(float) + exp_ref2_tam.index = expected_df.iloc[28:75, 0].astype(int).values + test_ref2_tam = test_dfs.ref2_tam.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_ref2_tam, exp_ref2_tam, check_exact=False) + + exp_addl_func_units_mdc = expected_df.iloc[193:240, 4:7].T.reset_index(drop=True).T.astype(float) + exp_addl_func_units_mdc.index = expected_df.iloc[193:240, 0].astype(int, errors='ignore').values + test_addl_func_units_mdc = test_dfs.addl_func_units_mdc.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_addl_func_units_mdc, exp_addl_func_units_mdc, check_exact=False, rtol=1e-3) + + exp_emis_diff_mdc = expected_df.iloc[193:240, [15, 16, 17, 18, 20]].T.reset_index(drop=True).T.astype(float) + exp_emis_diff_mdc.index = expected_df.iloc[193:240, 0].astype(int, errors='ignore').values + test_emis_diff_mdc = test_dfs.emis_diff_mdc.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_emis_diff_mdc, exp_emis_diff_mdc, check_exact=False, rtol=1e-3) + + exp_emissions_allocations_mdc = expected_df.iloc[193:240, [25, 26, 28, 29, 31, 32, 35, 36]].T.reset_index(drop=True).T.astype(float) + exp_emissions_allocations_mdc.index = expected_df.iloc[193:240, 24].astype(int, errors='ignore').values + test_emissions_allocations_mdc = test_dfs.emissions_allocations_mdc.T.reset_index(drop=True).T + pd.testing.assert_frame_equal(test_emissions_allocations_mdc, exp_emissions_allocations_mdc, check_exact=False, rtol=1e-2) + + # Test the final CO2 reduction output + exp_emissions_avoided = expected_df.iloc[[4, 7, 11], [13, 14]].reset_index(drop=True).T.reset_index(drop=True).T.astype(float) + test_emissions_avoided = pd.DataFrame([[test_dfs.emissions_avoided_lldc_period, test_dfs.emissions_avoided_lldc_full], + [test_dfs.emissions_avoided_mdc_period, test_dfs.emissions_avoided_mdc_full], + [test_dfs.emissions_avoided_total_period, test_dfs.emissions_avoided_total_full]]) + pd.testing.assert_frame_equal(test_emissions_avoided, exp_emissions_avoided, check_exact=False, rtol=1e-2) + + print("Test complete: plastics cluster") + +test_plastics() \ No newline at end of file From af2ebaacb1ed610bca088d48420d17dde4e7ce54 Mon Sep 17 00:00:00 2001 From: Sunishchal Date: Fri, 19 Mar 2021 19:53:03 -0700 Subject: [PATCH 26/28] Modified test spreadsheet --- solution/health_and_education/tests/expected_elec_cluster.csv | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/solution/health_and_education/tests/expected_elec_cluster.csv b/solution/health_and_education/tests/expected_elec_cluster.csv index da5ad5186..8d806768d 100644 --- a/solution/health_and_education/tests/expected_elec_cluster.csv +++ b/solution/health_and_education/tests/expected_elec_cluster.csv @@ -76,7 +76,7 @@ COPY TABLES BELOW FROM LATEST ELECTRICITY SOLUTION MODELS,,,,,,,,,,,,(a) FOR POP Table 4: Total REF2 Electricity Generation by Economic Development Status (TWh),,,,,,,Table 5: Total REF1 Electricity Generation by Economic Development Status (TWh),,,,,,,,,,,,,,,"Table 6: Change in Electricity Generation by MDC vs. LLDC Regions, REF1-REF2 (TWh)",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,LLDC+HighNRR,China,MDC + LAC + EE,Total Electricity Demand in Countries with Higher Educational Attainment (TWh),Total Electricity Demand in Countries with Higher Educational Attainment (TWh) % LLDC,,,"LLDC with low educational attainment, excluding China","MDC + EE + LAC with low educational attainment, excluding China",China,"LLDC with higher educational attainment, excluding China",MDC + EE + LAC with higher educational attainment,"Total Electricity Demand in Countries with Low Educational Attainment (TWh), exluding China","Total Electricity Demand in Countries with Low Educational Attainment (TWh), exluding China % LLDC",Total Electricity Demand in Countries with Higher Educational Attainment (TWh),Total Electricity Demand in Countries with Higher Educational Attainment (TWh) % LLDC,Total Electricity Demand (TWh),Total Electricity Demand (TWh) % LLDC,,,,LLDC,China,MDC + EE +LAC,Total change in REF1-REF2,% LLDC with higher educational attainment,% LLDC with Low Educational Attainment,% LLDC,% MDC + LAC + EE + China,,"% LLDC with low educational attainment, TWh)","% LLDC with higher educational attainment, TWh)",,,,,,,,,,,,,,,,,,,,,,,,, 2014,4555.598,5262.773,13334.33,23152.701,0.19676,,2014,0,0,5262.773,4555.598,13334.33,0,,23152.701,0.19676,23152.701,0,,,,0,0,0,0,0,0,0,0,,0%,100%,,,,,,,,,,,,,,,,,,,,,,,,, -2015,4754.218,5577.466,13461.522,23793.206,0.19981,,2015,2622.263,528.301,5577.466,2131.955,12933.221,3150.565,0.83232,20642.642,0.10328,23793.206,0.13241,,,,0,0,0,0,0,0,0,1,,55%,45%,,,,,,,,,,,,,,,,,,,,,,,,, +2015,4754.218,5577.466,13461.522,23793.206,0.19981,,2015,2622.263,528.301,5577.466,2131.955,12933.221,3150.565,0.83232,20642.642,0.10328,23793.206,0.13241,,,,0,0,0,0,0,0,0,0,,55%,45%,,,,,,,,,,,,,,,,,,,,,,,,, 2016,4990.643,5868.272,13579.414,24438.33,0.20421,,2016,2765.394,546.916,5873.482,2231.744,13044.507,3312.31,0.83488,21149.734,0.10552,24462.044,0.13541,,,,6.495,5.21,12.01,23.715,0.12232,0.15157,0.27389,0.72611,,55%,45%,,,,,,,,,,,,,,,,,,,,,,,,, 2017,5234.883,6148.152,13704.65,25087.685,0.20866,,2017,2915.838,566.854,6161.346,2335.411,13167.239,3482.692,0.83724,21663.995,0.1078,25146.688,0.1385,,,,16.366,13.194,29.443,59.003,0.12336,0.15401,0.27737,0.72263,,56%,44%,,,,,,,,,,,,,,,,,,,,,,,,, 2018,5487.154,6417.387,13837.014,25741.555,0.21316,,2018,3073.751,588.075,6441.02,2442.987,13300.495,3661.826,0.8394,22184.502,0.11012,25846.329,0.14168,,,,29.584,23.633,51.556,104.774,0.12504,0.15732,0.28236,0.71764,,56%,44%,,,,,,,,,,,,,,,,,,,,,,,,, From b5ff5fb1f536e80441d8c4433b7fb4fda5ff4fc4 Mon Sep 17 00:00:00 2001 From: Sunishchal Date: Fri, 19 Mar 2021 19:53:30 -0700 Subject: [PATCH 27/28] Removing old init --- solution/health_and_education/__init__.py | 23 ----------------------- 1 file changed, 23 deletions(-) diff --git a/solution/health_and_education/__init__.py b/solution/health_and_education/__init__.py index 0a0be0998..e69de29bb 100644 --- a/solution/health_and_education/__init__.py +++ b/solution/health_and_education/__init__.py @@ -1,23 +0,0 @@ -"""Health & Education solution model - Excel filename: CORE_PopulationChange_29Jan2020 (version 1.4).xlsx -""" -import pathlib - -import numpy as np -import pandas as pd - -# import solarpvutil -import electricity_cluster - -DATADIR = pathlib.Path(__file__).parents[0].joinpath('data') -THISDIR = pathlib.Path(__file__).parents[0] - - -class Scenario: - # name = name - # solution_category = solution_category - - def __init__(self, scenario=None): - - self.elec = electricity_cluster.Scenario() - From aeb111da4b0b47fb7d0ba421a0c140082de524f9 Mon Sep 17 00:00:00 2001 From: Sunishchal Date: Fri, 19 Mar 2021 19:55:42 -0700 Subject: [PATCH 28/28] Changing to use newer version of python --- Pipfile | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Pipfile b/Pipfile index 74d5b7da3..0263f6366 100644 --- a/Pipfile +++ b/Pipfile @@ -4,6 +4,7 @@ url = "https://pypi.org/simple" verify_ssl = true [dev-packages] +black = "*" [packages] altair = ">=3.1.0" @@ -34,4 +35,7 @@ mock = ">=4.0.2" Jinja2 = ">=2.11.2" [requires] -python_version = "3.7" +python_version = "3.8" + +[pipenv] +allow_prereleases = true