Я хочу загрузить данные из файла JSON в свою модель Pyomo. Я начинаю с
m = AbstractModel()
m.T = RangeSet(1,48,1)
m.TS = Param(m.T)
dp = DataPortal()
Позже я хочу загрузить свой файл json, чтобы заполнить свой параметр TS с помощью
dp.load(param = m.TS, filename = data.json)
Данные представляют собой таймсерии, индексированные целыми числами 1,2, ..., 48 Таким образом, это выглядит так:
{
"1" : 0.0001,
"2" : 0.1 ,
....,
"48" : 0
}
тогда я создаю
create_instance(dp)
Я получаю следующую ошибку:
RuntimeError: Failed to set value for param=TS, index=1, value=35.676187.
source error message="Index '1' is not valid for indexed component 'TS'"
ConcreteModel
вместоAbstractModel
,1 in m.T
возвращает True, а если я используюAbstractModel
, этого не происходит. Я предполагаю, что вам нужно создать экземпляр перед использованием портала данных, посколькуm.T.display()
показывает, что RangeSet не создан. - person V. Brunelle   schedule 18.06.2019RangeSet()
генерирует набор с числами, возможно, он не найдет строку"1"
в вашем наборе чисел, и это также объяснит вашу ошибку. - person V. Brunelle   schedule 18.06.2019AbstractModel
. - person V. Brunelle   schedule 27.06.2019