<div dir="auto">Thank you so much Dr. Ben. I didn't consider this before. I re-arranged it and it works now.<div dir="auto"><br></div><div dir="auto">Cheers,</div><div dir="auto"><br></div><div dir="auto">Yusak</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Sep 14, 2017 4:41 PM, "Yusak Tanoto" <<a href="mailto:yusak.tanoto@gmail.com">yusak.tanoto@gmail.com</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>Hi Dr. Ben</div><div><br></div><div><br></div>I developed a scenario with PV as a candidate as follows and I found that PV capacity is existed in the simulation results but with no energy supplied (only surplus) and no LCOE, so there would be large unused energy. <br><pre style="background-color:rgb(255,255,255);color:rgb(0,0,0);font-family:"Courier New";font-size:9pt"><span style="color:rgb(128,128,128);font-style:italic">#yusak add JAMALI-PV with polygon<br></span><span style="color:rgb(0,0,128);font-weight:bold">def </span>jamali_pv(context):<br>    result = []<br>    <span style="color:rgb(0,0,128);font-weight:bold">for </span>poly <span style="color:rgb(0,0,128);font-weight:bold">in </span><span style="color:rgb(0,0,128)">range</span>(<span style="color:rgb(0,0,255)">1</span>, <span style="color:rgb(0,0,255)">7</span>):<br>        result.append(generators.<wbr>Black_Coal(poly, <span style="color:rgb(0,0,255)">0</span>, <span style="color:rgb(102,0,153)">label</span>=<span style="color:rgb(0,128,0);font-weight:bold">'polygon %d Black_Coal' </span>% poly))<br>    <span style="color:rgb(0,0,128);font-weight:bold">for </span>poly <span style="color:rgb(0,0,128);font-weight:bold">in </span><span style="color:rgb(0,0,128)">range</span>(<span style="color:rgb(0,0,255)">1</span>, <span style="color:rgb(0,0,255)">7</span>):<br>        result.append(generators.OCGT(<wbr>poly, <span style="color:rgb(0,0,255)">0</span>, <span style="color:rgb(102,0,153)">label</span>=<span style="color:rgb(0,128,0);font-weight:bold">'polygon %d OCGT' </span>% poly))<br>    <span style="color:rgb(0,0,128);font-weight:bold">for </span>poly <span style="color:rgb(0,0,128);font-weight:bold">in </span><span style="color:rgb(0,0,128)">range</span>(<span style="color:rgb(0,0,255)">1</span>, <span style="color:rgb(0,0,255)">7</span>):<br>        result.append(generators.CCGT(<wbr>poly, <span style="color:rgb(0,0,255)">0</span>, <span style="color:rgb(102,0,153)">label</span>=<span style="color:rgb(0,128,0);font-weight:bold">'polygon %d CCGT' </span>% poly))<br>    <span style="color:rgb(128,128,128);font-style:italic">#for poly in range(1, 7):<br></span><span style="color:rgb(128,128,128);font-style:italic">        #result.append(generators.<wbr>Diesel(poly, 0, label='polygon %d Diesel' % poly))<br></span><span style="color:rgb(128,128,128);font-style:italic">    </span><span style="color:rgb(0,0,128);font-weight:bold">for </span>poly <span style="color:rgb(0,0,128);font-weight:bold">in </span><span style="color:rgb(0,0,128)">range</span>(<span style="color:rgb(0,0,255)">1</span>, <span style="color:rgb(0,0,255)">7</span>):<br>        result.append(generators.<wbr>Geothermal2(poly, <span style="color:rgb(0,0,255)">0</span>, <span style="color:rgb(102,0,153)">label</span>=<span style="color:rgb(0,128,0);font-weight:bold">'polygon %d Geothermal2' </span>% poly))<br>    <span style="color:rgb(0,0,128);font-weight:bold">for </span>poly <span style="color:rgb(0,0,128);font-weight:bold">in </span><span style="color:rgb(0,0,128)">range</span>(<span style="color:rgb(0,0,255)">1</span>, <span style="color:rgb(0,0,255)">7</span>):<br>        result.append(generators.<wbr>Hydro(poly, <span style="color:rgb(0,0,255)">0</span>, <span style="color:rgb(102,0,153)">label</span>=<span style="color:rgb(0,128,0);font-weight:bold">'polygon %d Hydro' </span>% poly))<br>    <span style="color:rgb(0,0,128);font-weight:bold">for </span>poly <span style="color:rgb(0,0,128);font-weight:bold">in </span><span style="color:rgb(0,0,128)">range</span>(<span style="color:rgb(0,0,255)">1</span>, <span style="color:rgb(0,0,255)">7</span>):<br>            result.append(generators.<wbr>PumpedHydro(poly, <span style="color:rgb(0,0,255)">0</span>,<span style="color:rgb(0,0,255)">1000</span>, <span style="color:rgb(102,0,153)">label</span>=<span style="color:rgb(0,128,0);font-weight:bold">'polygon %d PumpedHydro' </span>% poly))<br>    <span style="color:rgb(0,0,128);font-weight:bold">for </span>poly <span style="color:rgb(0,0,128);font-weight:bold">in </span><span style="color:rgb(0,0,128)">range</span>(<span style="color:rgb(0,0,255)">1</span>, <span style="color:rgb(0,0,255)">7</span>):<br>        result.append(generators.<wbr>PV1Axis(poly, <span style="color:rgb(0,0,255)">0</span>,<br>                    configfile.get(<span style="color:rgb(0,128,0);font-weight:bold">'generation'</span>, <span style="color:rgb(0,128,0);font-weight:bold">'pv1axis-trace'</span>),<br>                    poly - <span style="color:rgb(0,0,255)">1</span>,<br>                    <span style="color:rgb(102,0,153)">build_limit</span>=polygons.pv_limit[<wbr>poly],<br>                    <span style="color:rgb(102,0,153)">label</span>=<span style="color:rgb(0,128,0);font-weight:bold">'polygon %d PV' </span>% poly))<br><br>    context.generators = result<br><br><br>        polygon 3 PumpedHydro (JAVA:3), 0.78 GW<br>           supplied 0.03433 TWh, CF 0.5%, capcost $3,555,962,795, opcost $37,602,927, LCOE $7833, ran 123 hours<br>        polygon 4 PumpedHydro (JAVA:4), 0.00 GW<br>           supplied 0 TWh, ran 0 hours<br>        polygon 5 PumpedHydro (JAVA:5), 2.00 GW<br>           supplied 0.01144 TWh, CF 0.1%, capcost $9,154,000,000, opcost $96,800,000, LCOE $60522, ran 37 hours<br>        polygon 6 PumpedHydro (BALI:6), 2.00 GW<br>           supplied 0.001403 TWh, CF 0.0%, capcost $9,154,000,000, opcost $96,800,000, LCOE $493403, ran 8 hours<br>        <b>polygon 1 PV (JAVA:1), 0.00 GW<br>           supplied 0 TWh<br>        polygon 2 PV (JAVA:2), 0.04 GW<br>           supplied 0 TWh, surplus 0.1 TWh, capcost $30,476,905, opcost $425,655<br>        polygon 3 PV (JAVA:3), 2.02 GW<br>           supplied 0 TWh, surplus 3.2 TWh, capcost $1,449,516,607, opcost $20,244,645<br>        polygon 4 PV (JAVA:4), 2.50 GW<br>           supplied 0 TWh, surplus 4.0 TWh, capcost $1,790,997,772, opcost $25,013,935<br>        polygon 5 PV (JAVA:5), 0.34 GW<br>           supplied 0 TWh, surplus 0.6 TWh, capcost $245,586,521, opcost $3,429,979<br>        polygon 6 PV (BALI:6), 3.32 GW<br>           supplied 0 TWh, surplus 5.4 TWh, capcost $2,374,415,086, opcost $33,162,221</b><br>Timesteps: 8760 h<br>Demand energy: 166.6 TWh<br>Unused surplus energy: 13.2 TWh<br>Timesteps with unused surplus energy: 4732<br>No unserved energy<br>No Loss of Load<br>Score: 82.64 $/MWh<br>Total emissions: 70.64 MtCO2<br>Done<br><br>        polygon 1 Geothermal2 (JAVA:1), 1.38 GW<br>           supplied 12.13 TWh, CF 100.0%, capcost $5,918,042,682, opcost $198,052,914, LCOE $48, ran 8,760 hours<br>        polygon 2 Geothermal2 (JAVA:2), 0.15 GW<br>           supplied 1.271 TWh, CF 100.0%, capcost $620,053,353, opcost $20,750,673, LCOE $48, ran 8,760 hours<br>        polygon 3 Geothermal2 (JAVA:3), 2.00 GW<br>           supplied 17.52 TWh, CF 100.0%, capcost $8,546,000,000, opcost $286,000,000, LCOE $48, ran 8,760 hours<br>        polygon 4 Geothermal2 (JAVA:4), 2.00 GW<br>           supplied 17.46 TWh, CF 99.7%, capcost $8,546,000,000, opcost $286,000,000, LCOE $48, ran 8,756 hours<br>        polygon 5 Geothermal2 (JAVA:5), 0.77 GW<br>           supplied 6.661 TWh, CF 99.0%, capcost $3,281,744,283, opcost $109,826,686, LCOE $48, ran 8,689 hours<br>        polygon 6 Geothermal2 (BALI:6), 2.00 GW<br>           supplied 17.15 TWh, CF 97.9%, capcost $8,546,000,000, opcost $286,000,000, LCOE $49, ran 8,656 hours<br>        polygon 1 Hydro (JAVA:1), 2.00 GW<br>           supplied 15.68 TWh, CF 89.5%, opcost $80,000,000, LCOE $5, ran 8,416 hours<br>        polygon 2 Hydro (JAVA:2), 2.00 GW<br>           supplied 11.58 TWh, CF 66.1%, opcost $80,000,000, LCOE $6, ran 7,023 hours<br>        polygon 3 Hydro (JAVA:3), 0.60 GW<br>           supplied 2.532 TWh, CF 48.0%, opcost $24,077,864, LCOE $9, ran 4,552 hours<br>        polygon 4 Hydro (JAVA:4), 0.00 GW<br>           supplied 0 TWh, ran 0 hours<br>        polygon 5 Hydro (JAVA:5), 2.00 GW<br>           supplied 5.606 TWh, CF 32.0%, opcost $80,000,000, LCOE $14, ran 3,908 hours<br>        polygon 6 Hydro (BALI:6), 2.00 GW<br>           supplied 1.129 TWh, CF 6.4%, opcost $80,000,000, LCOE $70, ran 1,495 hours<br>        polygon 1 PumpedHydro (JAVA:1), 0.00 GW<br>           supplied 0 TWh, ran 0 hours<br>        polygon 2 PumpedHydro (JAVA:2), 0.00 GW<br>           supplied 0 TWh, ran 0 hours<br>        polygon 3 PumpedHydro (JAVA:3), 0.06 GW<br>           supplied 0.002553 TWh, CF 0.5%, capcost $283,623,022, opcost $2,999,203, LCOE $8401, ran 48 hours<br>        polygon 4 PumpedHydro (JAVA:4), 0.78 GW<br>           supplied 0.00541 TWh, CF 0.1%, capcost $3,551,330,561, opcost $37,553,943, LCOE $49646, ran 34 hours<br>        polygon 5 PumpedHydro (JAVA:5), 0.00 GW<br>           supplied 0 TWh, ran 0 hours<br>        polygon 6 PumpedHydro (BALI:6), 0.00 GW<br>           supplied 0 TWh, ran 0 hours<br>        <b>polygon 1 PV (JAVA:1), 4.44 GW<br>           supplied 0 TWh, surplus 6.8 TWh, capcost $3,181,657,027, opcost $44,436,550<br>        polygon 2 PV (JAVA:2), 0.00 GW<br>           supplied 0 TWh<br>        polygon 3 PV (JAVA:3), 4.69 GW<br>           supplied 0 TWh, surplus 7.5 TWh, capcost $3,360,305,785, opcost $46,931,645<br>        polygon 4 PV (JAVA:4), 0.00 GW<br>           supplied 0 TWh<br>        polygon 5 PV (JAVA:5), 0.71 GW<br>           supplied 0 TWh, surplus 1.2 TWh, capcost $510,190,867, opcost $7,125,570<br>        polygon 6 PV (BALI:6), 0.00 GW<br>           supplied 0 TWh</b><br>Timesteps: 8760 h<br>Demand energy: 166.6 TWh<br>Unused surplus energy: 15.4 TWh<br>Timesteps with unused surplus energy: 4616<br>No unserved energy<br>No Loss of Load<br>Score: 65.59 $/MWh<br>Total emissions: 42.8 MtCO2<br>Done<br><br></pre><pre style="background-color:rgb(255,255,255);color:rgb(0,0,0);font-family:"Courier New";font-size:9pt">To check it, I developed another scenario with PV but this time using wildcard and it ran well.<br></pre><pre style="background-color:rgb(255,255,255);color:rgb(0,0,0);font-family:"Courier New";font-size:9pt"><span style="color:rgb(128,128,128);font-style:italic">#yusak add JAMALI-PV without polygon<br></span><span style="color:rgb(0,0,128);font-weight:bold">def </span>jamali_pvnopolygon(context):<br>    black_coal = generators.Black_Coal(<wbr>polygons.wildcard, <span style="color:rgb(0,0,255)">0</span>)<br>    ocgt = generators.OCGT(polygons.<wbr>wildcard, <span style="color:rgb(0,0,255)">0</span>) <span style="color:rgb(128,128,128);font-style:italic"><br></span><span style="color:rgb(128,128,128);font-style:italic">    </span>ccgt = generators.CCGT(polygons.<wbr>wildcard, <span style="color:rgb(0,0,255)">0</span>)<br>    diesel = generators.Diesel(polygons.<wbr>wildcard, <span style="color:rgb(0,0,255)">0</span>)<br>    hydro = generators.Hydro(polygons.<wbr>wildcard, <span style="color:rgb(0,0,255)">0</span>)<br>    pumpedhydro = generators.PumpedHydro(<wbr>polygons.wildcard, <span style="color:rgb(0,0,255)">0</span>, <span style="color:rgb(0,0,255)">1000</span>)<br>    geothermal2 = generators.Geothermal2(<wbr>polygons.wildcard, <span style="color:rgb(0,0,255)">0</span>)<span style="color:rgb(128,128,128);font-style:italic"><br></span><span style="color:rgb(128,128,128);font-style:italic">    </span>pv = generators.PV1Axis(polygons.<wbr>wildcard, <span style="color:rgb(0,0,255)">0</span>,configfile.get(<span style="color:rgb(0,128,0);font-weight:bold">'generation'</span>, <span style="color:rgb(0,128,0);font-weight:bold">'pv1axis-trace'</span>),polygons.<wbr>wildcard - <span style="color:rgb(0,0,255)">1</span>,<br>                    <span style="color:rgb(102,0,153)">build_limit</span>=polygons.pv_limit[<wbr>polygons.wildcard],<br>                    <span style="color:rgb(102,0,153)">label</span>=<span style="color:rgb(0,128,0);font-weight:bold">'polygon %d PV' </span>% polygons.wildcard)<br>    context.generators = [black_coal] + [ocgt] + [ccgt] + [diesel] + [hydro] + [pumpedhydro] + [geothermal2] + [pv]<br></pre><pre style="background-color:rgb(255,255,255);color:rgb(0,0,0);font-family:"Courier New";font-size:9pt"><br></pre><pre style="background-color:rgb(255,255,255);color:rgb(0,0,0);font-family:"Courier New";font-size:9pt">Cheers,<br><br></pre><pre style="background-color:rgb(255,255,255);color:rgb(0,0,0);font-family:"Courier New";font-size:9pt">Yusak<br></pre><br><br><br></div>
</blockquote></div></div>