我正在设计一个安装在阿姆斯特丹的光伏系统。PVsystem代码如下所示。利用retrieve_sam
实现的变频器和代码中指定的模块,取得了很好的效果。
import pvlib
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from pvlib.temperature import TEMPERATURE_MODEL_PARAMETERS
from pandas.plotting import register_matplotlib_converters
from pvlib.modelchain import ModelChain
# Define location for the Netherlands
location = pvlib.location.Location(latitude=52.53, longitude=5.15, tz='UTC', altitude=50, name='amsterdam')
#import the database
module_database = pvlib.pvsystem.retrieve_sam(name='SandiaMod')
inverter_database = pvlib.pvsystem.retrieve_sam(name='cecinverter')
module = module_database.Canadian_Solar_CS5P_220M___2009_
# module = module_database.DMEGC_Solar_320_M6_120BB_ (I want to add this module)
inverter = inverter_database.ABB__PVI_3_0_OUTD_S_US__208V_
temperature_model_parameters = pvlib.temperature.TEMPERATURE_MODEL_PARAMETERS['sapm']['open_rack_glass_glass']
modules_per_string = 10
inverter_per_string = 1
# Define a PV system characteristics
surface_tilt = 12.5
surface_azimuth = 180
system = pvlib.pvsystem.PVSystem(surface_tilt=surface_tilt, surface_azimuth=surface_azimuth, albedo=0.25,
module=module, module_parameters=module,
temperature_model_parameters=temperature_model_parameters,
modules_per_string=modules_per_string, inverter_per_string=inverter_per_string,
inverter=inverter, inverter_parameters=inverter, racking_model='open_rack')
# Define a weather file
def importPSMData():
df = pd.read_csv('/Users/laxmikantradkar/Desktop/PVLIB/solcast_data1.csv', delimiter=';')
# Rename the columns for input to PVLIB
df.rename(columns={'Dhi': 'dhi', 'Dni': 'dni', 'Ghi': 'ghi', 'AirTemp': 'temp_air', 'WindSpeed10m': 'wind_speed',
}, inplace=True)
df.rename(columns={'Year': 'year', 'Month': 'month', 'Day': 'day', 'Hour': 'hour',
'Minute': 'minute'}, inplace=True)
df['dt'] = pd.to_datetime(df[['year', 'month', 'day', 'hour', 'minute']])
df.set_index(df['dt'], inplace=True)
# Rename data parameters to run to datetime
# df.rename(columns={'PeriodEnd': 'period_end'}, inplace=True)
# Drop unnecessary columns
df = df.drop('PeriodStart', 1)
df = df.drop('Period', 1)
df = df.drop('Azimuth', 1)
df = df.drop('CloudOpacity', 1)
df = df.drop('DewpointTemp', 1)
df = df.drop('Ebh', 1)
df = df.drop('PrecipitableWater', 1)
df = df.drop('SnowDepth', 1)
df = df.drop('SurfacePressure', 1)
df = df.drop('WindDirection10m', 1)
df = df.drop('Zenith', 1)
return df
mc = ModelChain(system=system, location=location)
weatherData = importPSMData()
mc.run_model(weather=weatherData)
ac_energy = mc.ac
# ac_energy.to_csv('/Users/laxmikantradkar/Desktop/ac_energy_netherlands.csv')
plt.plot(ac_energy)
plt.show()
现在,我想要改变的模块和逆变器,这是不存在的图书馆。有人能告诉我怎么做吗?
是否可以访问该库并手动添加逆变器和模块的行/列?如果是,图书馆在哪里?
是../Desktop/PVLIB/venv/lib/python3.8/site-packages/pvlib/data/sam-library-sandia-modules-2015-6-30.csv
吗?
当我更改时,尝试从上面的路径更改模块/逆变器参数,我会收到一个错误作为DataFrame' object has no attribute 'Module name'
。
我两天前就开始研究PVLIB_python了,所以我对这门语言很陌生。我真的很感激你的帮助。随时可以纠正我。
发布于 2020-01-30 18:52:27
我两天前就开始研究PVLIB_python了,所以我对这门语言很陌生。我真的很感激你的帮助。随时可以纠正我。
欢迎来到社区!如果您还没有,我鼓励您深入研究pvlib-python文档,并通过使用文档中的示例继续学习Python基础知识。我鼓励您查看熊猫教程和其他高度评价的熊猫学习材料,您可以找到用Python运行数据科学的方法。
当我更改尝试更改上述路径的模块/逆变器参数时,我会收到一个错误,因为DataFrame‘object’对象没有属性'Module‘
这是因为您要求在DataFrame表中有一个不存在的列。不用担心,你可以做你自己的模块。
现在,我想要改变的模块和逆变器,这是不存在的图书馆。有人能告诉我怎么做吗?是否可以访问该库并手动添加逆变器和模块的行/列?如果是,图书馆在哪里?
没有必要改变图书馆。您可以自己构建一个模块,因为它是来自熊猫图书馆的系列。下面是一个示例,演示如何将模块输出为字典、更改几个参数并创建自己的模块。
my_new_module = module.copy() # create your own copy of the module
print("Before:", my_new_module, sep="\n") # show module before
my_new_module["Notes"] = "This is how to change a field in the module. Do this for every field in the module."
my_new_module.name = "DMEGC_Solar_320_M6_120BB_" # rename the Series appropriately
print("\nAfter:", my_new_module, sep="\n") # show module after
然后只需将"my_new_module“插入到PVSystem中:
system = pvlib.pvsystem.PVSystem(
surface_tilt=surface_tilt,
surface_azimuth=surface_azimuth,
albedo=0.25,
module=my_new_module, # HERE'S THE NEW MODULE!
module_parameters=module,
temperature_model_parameters=temperature_model_parameters,
modules_per_string=modules_per_string,
inverter_per_string=inverter_per_string,
inverter=inverter,
inverter_parameters=inverter,
racking_model='open_rack')
困难的部分是有正确的系数,你可以信任。您可能更容易使用module_database = pvlib.pvsystem.retrieve_sam(name='CECMod')
并替换这些参数,因为它们可以更容易地被模块规范表中的数据所替代。
这应该同样适用于逆变器。
https://stackoverflow.com/questions/59708281
复制相似问题