mirror of
https://github.com/ANL-CEEESA/UnitCommitment.jl.git
synced 2025-12-06 08:18:51 -06:00
Allow v0.3 to read v0.2 instance files
This commit is contained in:
@@ -20,6 +20,7 @@ include("model/formulations/WanHob2016/structs.jl")
|
||||
|
||||
include("import/egret.jl")
|
||||
include("instance/read.jl")
|
||||
include("instance/migrate.jl")
|
||||
include("model/build.jl")
|
||||
include("model/formulations/ArrCon2000/ramp.jl")
|
||||
include("model/formulations/base/bus.jl")
|
||||
|
||||
38
src/instance/migrate.jl
Normal file
38
src/instance/migrate.jl
Normal file
@@ -0,0 +1,38 @@
|
||||
# UnitCommitment.jl: Optimization Package for Security-Constrained Unit Commitment
|
||||
# Copyright (C) 2020, UChicago Argonne, LLC. All rights reserved.
|
||||
# Released under the modified BSD license. See COPYING.md for more details.
|
||||
|
||||
using DataStructures
|
||||
using JSON
|
||||
|
||||
function _migrate(json)
|
||||
version = json["Parameters"]["Version"]
|
||||
if version === nothing
|
||||
error(
|
||||
"The provided input file cannot be loaded because it does not " *
|
||||
"specify what version of UnitCommitment.jl it was written for. " *
|
||||
"Please modify the \"Parameters\" section of the file and include " *
|
||||
"a \"Version\" entry. For example: {\"Parameters\":{\"Version\":\"0.3\"}}",
|
||||
)
|
||||
end
|
||||
version = VersionNumber(version)
|
||||
version >= v"0.3" || _migrate_to_v03(json)
|
||||
return
|
||||
end
|
||||
|
||||
function _migrate_to_v03(json)
|
||||
# Migrate reserves
|
||||
if json["Reserves"] !== nothing &&
|
||||
json["Reserves"]["Spinning (MW)"] !== nothing
|
||||
amount = json["Reserves"]["Spinning (MW)"]
|
||||
json["Reserves"] = DefaultOrderedDict(nothing)
|
||||
json["Reserves"]["r1"] = DefaultOrderedDict(nothing)
|
||||
json["Reserves"]["r1"]["Type"] = "spinning"
|
||||
json["Reserves"]["r1"]["Amount (MW)"] = amount
|
||||
for (gen_name, gen) in json["Generators"]
|
||||
if gen["Provides spinning reserves?"] == true
|
||||
gen["Reserve eligibility"] = ["r1"]
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -80,6 +80,7 @@ function _read_json(path::String)::OrderedDict
|
||||
end
|
||||
|
||||
function _from_json(json; repair = true)
|
||||
_migrate(json)
|
||||
units = Unit[]
|
||||
buses = Bus[]
|
||||
contingencies = Contingency[]
|
||||
|
||||
Reference in New Issue
Block a user