diff --git a/PV/pv_total.py b/PV/pv_total.py index 8fcf86b..faac729 100644 --- a/PV/pv_total.py +++ b/PV/pv_total.py @@ -3,8 +3,8 @@ import math from scipy.optimize import fsolve # 默认文件路径 -TILT_EXCEL_PATH = r"D:/A_software/research/Git/git_home/PV/peak_sunshine.xlsx" #各地区峰值小时数(注意城市名 -PV_EXCEL_PATH = r"D:/A_software/research/Git/git_home/PV/pv_product.xlsx" #部分光伏组件数值 +TILT_EXCEL_PATH = r"./peak_sunshine.xlsx" #各地区峰值小时数和倾角(注意城市名 +PV_EXCEL_PATH = r"./pv_product.xlsx" #部分光伏组件数值 def calculate_pv_metrics(city, component_name, electricity_price, pv_number, q, longitude, latitude, @@ -49,23 +49,24 @@ def calculate_pv_metrics(city, component_name, electricity_price, pv_number, q, # 1. 获取城市的倾角和峰值日照小时数 def get_tilt_and_peak_hours(city, excel_path=TILT_EXCEL_PATH): - """从Excel获取城市的倾角和峰值日照小时数""" - try: - df = pd.read_excel(excel_path) - if len(df.columns) < 5: - raise ValueError("Excel文件需包含至少5列:城市、倾角、峰值日照小时数等") - row = df[df.iloc[:, 1] == city] - if row.empty: - raise ValueError(f"未找到城市:{city}") - return {"city": city, "tilt": row.iloc[0, 2], "peak_sunshine_hours": row.iloc[0, 14]} - except FileNotFoundError: - raise FileNotFoundError(f"未找到Excel文件:{excel_path}") - except Exception as e: - raise Exception(f"读取Excel出错:{e}") + """从Excel获取城市的倾角和峰值日照小时数""" + try: + df = pd.read_excel(excel_path) + if len(df.columns) < 5: + raise ValueError("Excel文件需包含至少5列:城市、倾角、峰值日照小时数等") + row = df[df.iloc[:, 2] == city] + if row.empty: + raise ValueError(f"未找到城市:{city}") + return {"city": city, "tilt": row.iloc[0, 3], "peak_sunshine_hours": row.iloc[0, 4]} + except FileNotFoundError: + raise FileNotFoundError(f"未找到Excel文件:{excel_path}") + except Exception as e: + raise Exception(f"读取Excel出错:{e}") # 2. 计算倾角和方位角 - def get_tilt_and_azimuth(is_fixed, optimize, longitude, city, excel_path=TILT_EXCEL_PATH, - peak_load_hour=peak_load_hour): + def get_tilt_and_azimuth(is_fixed=True, optimize=True, longitude=116, city=None, excel_path=TILT_EXCEL_PATH, + peak_load_hour=16): + """计算光伏系统的倾角和方位角""" if optimize and not city: raise ValueError("优化模式下需提供城市名称")