更新 PV/pv_total.py
This commit is contained in:
parent
37bae4baa0
commit
04a4f39759
|
@ -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("优化模式下需提供城市名称")
|
||||
|
||||
|
|
Loading…
Reference in New Issue