Pyomo负载数据按3组索引

问题描述

我对使用数据门户加载数据有疑问。我需要加载由3组索引的以下参数:

model_ex = AbstractModel()

# Sets:
model_ex.YEAR = Set(ordered = True)
model_ex.STREAM_INTM = Set(ordered = True)
model_ex.TPU_E = Set(ordered = True) 
model_ex.TPU_N = Set(ordered = True) 
model_ex.TPU = model.TPU_E | model.TPU_N

# Parameter:
model_ex.IntmStreamGWI = Param(model_ex.STREAM_INTM,model_ex.TPU,model_ex.YEAR)

根据文档“ Pyomo假定参数值定义在最右边的列”。因此,我认为索引必须位于参数之前的列中。基于此,我将xlsx文件结构如下:

Load approach v1 (works well)

这种方法效果很好,我可以按以下方式加载数据:

model_ex_data = DataPortal(model=model_ex)

model_ex_data.load(filename='Sets.xlsx',range='A1:A7',format='set',set='YEAR')
model_ex_data.load(filename='Sets.xlsx',range='C1:C5',set='STREAM_INTM')
model_ex_data.load(filename='Sets.xlsx',range='D1:D4',set='TPU_E')
model_ex_data.load(filename='Sets.xlsx',range='E1:E3',set='TPU_N')

model_ex_data.load(filename='IntmStreamGWI 2.xlsx',range=('A1:D73'),param=model_ex.IntmStreamGWI,index=[model_ex.STREAM_INTM,model_ex.YEAR])

但是,如图1所示的数据组织尚不清楚,我希望将YEAR设置为下图所示的行:

Load approach v2 (doesn't work

我按如下方式加载这个新的xlsx文件

model_ex_data = DataPortal(model=model_ex)

model_ex_data.load(filename='Sets.xlsx',set='TPU_N')

model_ex_data.load(filename='IntmStreamGWI.xlsx',range=('A1:H13'),model_ex.YEAR])

当然,这种方法行不通,因为加载过程将最后一个值作为参数,将所有其他先前参数作为索引作为错误指示:

Constructing component 'IntmStreamGWI' from data={('REJ_MRFRES_E','INC_E',236.3792011453357,238.96274914822806,241.54629715112034,244.12984515401305,246.71339315690528): 249.29694115979748,

我尝试使用Data Portal支持的所有格式,但没有找到任何解决方案。我将不胜感激。

最诚挚的问候,

罗伯特

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)