update pv yield code

This commit is contained in:
Hanzhang Ma
2024-05-13 16:48:16 +02:00
parent 4f1a47d505
commit c8c37b756c
2 changed files with 3 additions and 50 deletions

48
main.py
View File

@@ -1,9 +1,5 @@
#!/usr/bin/env python
# coding: utf-8
# In[ ]:
import os
import glob
import shutil
@@ -28,9 +24,6 @@ folder_path = 'plots'
clear_folder_make_ess_pv(folder_path)
# In[ ]:
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
@@ -38,10 +31,6 @@ import pandas as pd
from EnergySystem import EnergySystem
from config import pv_config, grid_config, ess_config
# In[ ]:
import json
print("Version 0.0.5")
@@ -49,9 +38,6 @@ print("Version 0.0.5")
with open('config.json', 'r') as f:
js_data = json.load(f)
time_interval = js_data["time_interval"]["numerator"] / js_data["time_interval"]["denominator"]
print(time_interval)
@@ -132,9 +118,6 @@ plt.savefig('plots/demand.png')
plt.close()
# In[ ]:
def draw_results(results, filename, title_benefit, annot_benefit=False, figure_size=(10, 10)):
df=results
df = df.astype(float)
@@ -220,10 +203,6 @@ def draw_roi(costs, results, filename, title_roi, days=365, annot_roi=False, fig
plt.ylabel('PV Capacity (MW)')
plt.savefig(filename)
# In[ ]:
def draw_cost(costs, filename, title_cost, annot_cost=False, figure_size=(10, 10)):
df = costs
df = df.astype(int)
@@ -255,9 +234,6 @@ def draw_cost(costs, filename, title_cost, annot_cost=False, figure_size=(10, 10
plt.savefig(filename)
# In[ ]:
def draw_overload(overload_cnt, filename, title_unmet, annot_unmet=False, figure_size=(10, 10), days=365, granularity=15):
df = overload_cnt
print(days, granularity)
@@ -305,18 +281,10 @@ def draw_overload(overload_cnt, filename, title_unmet, annot_unmet=False, figure
plt.ylabel('PV Capacity (MW)')
plt.savefig(filename)
# In[ ]:
def cal_profit(es: EnergySystem, saved_money, days):
profit = saved_money - es.ess.get_cost_per_year() / 365 * days - es.pv.get_cost_per_year() / 365 * days
return profit
# In[ ]:
def generate_data(pv_capacity, pv_cost_per_kW, pv_lifetime, pv_loss, ess_capacity, ess_cost_per_kW, ess_lifetime, ess_loss, grid_capacity, grid_loss, sell_price, time_interval, data, days):
pv = pv_config(capacity=pv_capacity,
cost_per_kW=pv_cost_per_kW,
@@ -341,9 +309,6 @@ def generate_data(pv_capacity, pv_cost_per_kW, pv_lifetime, pv_loss, ess_capacit
return (results, overload_cnt, costs, netto_benefit, gen_energy, energySystem.generated)
# In[ ]:
months_results = []
months_costs = []
months_overload = []
@@ -434,17 +399,11 @@ draw_overload(overload_cnt=annual_overload,
figure_size=figure_size)
# In[ ]:
def save_data(data, filename):
data.to_csv(filename+'.csv')
data.to_json(filename + '.json')
# In[ ]:
if not os.path.isdir('data'):
os.makedirs('data')
@@ -452,15 +411,8 @@ save_data(annual_result, f'data/{pv_begin}-{pv_end}-{pv_groups}-{ess_begin}-{ess
save_data(annual_costs, f'data/{pv_begin}-{pv_end}-{pv_groups}-{ess_begin}-{ess_end}-{ess_groups}-costs')
save_data(annual_overload, f'data/{pv_begin}-{pv_end}-{pv_groups}-{ess_begin}-{ess_end}-{ess_groups}-overload_cnt')
# In[ ]:
draw_results(annual_result, 'plots/test.png', 'test', False)
# In[ ]:
draw_roi(annual_costs, annual_nettos, 'plots/annual_roi.png', title_roi, 365, annot_benefit, figure_size)