GAMS utility functions¶
This module has the utility functions used to populate the GAMS databases used in the GAMS model.
-
addGeneratorSets(db, genFleet)¶ Add generator sets to database
Add gen sets & subsets
- Parameters
db – gams database object
genFleet – 2d list ith generator fleet data
- Returns
list with gams sets created
-
isolateGenSymbols(genFleet, genPlantType)¶ Gen symbols: g1, g2, etc., where # = row in gen fleet
- Parameters
genFleet – 2d list with generator fleet data
genPlantType – string with PlantType
- Returns
list with generator symbols
-
addHourSet(db, hours)¶ Add set with simulation hours to database
Add all hours
- Parameters
db – GAMS database object
hours – 1d list with hours to be included on set
- Returns
list with: gams set with simulation hours and list with hour symbols
-
addHourSeasonSubsets(db, repHrsBySeason)¶ Define season subsets of hours
Inputs: GAMS db, dict of (season:rep hrs)
- Parameters
db – GAMS database object
repHrsBySeason – dict of (season:rep hrs)
-
addHourSpecialSubset(db, specialHrs)¶ Define special subsets of hours
Inputs: GAMS db, 1d list of special hours
- Parameters
db – GAMS database object
specialHrs – 1d list of special hours
-
addPeakHourSubset(db, peakDemandHourZonal, genparam)¶ Define peak demand hour subset
- Parameters
db – GAMS database object
peakDemandHourZonal –
- Returns
list with: gams set with peak hours and list with peak hour symbols
-
addZoneSets(db, ipmZoneNums)¶ Add sets with zones to database
- Parameters
db – GAMS database object
ipmZoneNums –
- Returns
list with: gams set with zones and list with zone symbols
-
addLineSets(db, lines)¶ Add line sets
- Parameters
db – GAMS database object
lines – list with line names
- Returns
gams set with line names
-
addCellSet(db, cellsToZones)¶ ADD CELLS FOR NEW TECHS SET
- Parameters
db – GAMS database object
cellsToZones – (dict) dictionary mapping cells to zones
- Returns
gams set with cell names
-
addNewTechsSets(db, newTechsCE, plantTypesCurtailed, blocksWind=None, blocksSolar=None)¶ Add set with new techs to database
- Parameters
db – GAMS database object
newTechsCE – (2d list) new techs
plantTypesCurtailed – (list) types of plants that have climate-induced capacity deratings
- Returns
list with all gams sets and lists with symbols created
-
isolateTechSymbols(newTechsCE, ptCurtailed, blocksWind=None, blocksSolar=None)¶ Takes in new techs (2d list), and returns tech types as: all types, renew (wind or solar) types, or types that can be curtailed
- Parameters
newTechsCE – 2d list with new techs data
ptCurtailed – 1-d list with plant types that are curtailed
blocksWind – 1-d list with indexes of blocks of wind
blocksSolar – 1-d list with indexes of blocks of solar
- Returns
lists with symbols created for each set (techSymbols, techCurtailedSymbols, techRenewSymbols, techNotCurtailedSymbols)
-
addSet(db, setSymbols, setName, setDescription, setDim)¶ Generic function to add set to gams database
- Parameters
db – GAMS database object
setSymbols – (list) list with symbols of each element
setName – (string) name of set
setDescription – (string) description of set
setDim – (int) dimension of set
- Returns
gams set created
-
addDemandParam(db, demandCEZonal, zoneSet, hourSet, gcmSet, hoursForCE, ipmZones, ipmZoneNums, scaleMWtoGW)¶ Add hourly demand parameters (either dict of gcm:zone:hourly demand or dict of zone:demand) for both CE and UC models
- Parameters
db – gams data base object
demandCEZonal – (dict) nested dictionary with hourly demand by gcm/zone
zoneSet – gams set object with zone names
hourSet – gams set object with hours of simulation
gcmSet – gams set object with gcm names
hourSymbols – list with hours of simulation
ipmZones – list with zone names
ipmZoneNums – list with zone numbers
scaleMWtoGW – (float) scaling factor MW to GW
-
createDictIndexedByZone(dataDict, ipmZones, ipmZoneNums, *args)¶ creates a dictionary indexed by zone names used in GAMS (z1, z2,…)
Inputs: dictionary of zone:list, optional scalar. Outputs: dictionary of zone symbol:list.
- Parameters
dataDict – dictionary with data indexed by zone (using actual zone names)
ipmZones – list with zones names
ipmZoneNums – list with zone numbers
args – additional arguments (scaling factors)
- Returns
dictionary indexed by zone names used in GAMS (z1, z2,…)
-
addEguParams(db, genFleet, genSet, genSymbols, ipmZones, ipmZoneNums, scaleLbToShortTon, scaleMWtoGW)¶ ADD EXISTING GENERATOR PARAMETERS
- Parameters
db – data base object
genFleet – 2d list with gen fleet
genSet – gams set object with existing generators
genSymbols – list with symbols of generators
ipmZones – symbols of ipm zones (symbols follow gams model nomenclature)
ipmZoneNums – indexes of ipm zones
scaleLbToShortTon – (float) conversion factor (pounds to short tons)
scaleMWtoGW – (float) conversions factor (MW to GW)
-
getEguParamZoneDict(genFleet, zoneCol, ipmZones, ipmZoneNums)¶ Create a dictionary mapping generator to ipm zone
- Parameters
genFleet – 2d list with gen fleet
zoneCol – (int) column with zone name
ipmZones – list with ipm zone names
ipmZoneNums – list with ipm zone numbers
- Returns
dict of {genSymbol:zone num}
-
addEguOpCostParam(db, genFleet, genSet, genSymbols, scaleLbToShortTon, scaleMWtoGW, scaleDollarsToThousands, *co2Price)¶ Add op cost parameter for existing gens
- Parameters
db – data base object
genFleet – 2d list with gen fleet
genSet – gams set object with existing generators
genSymbols – list with symbols of generators
scaleLbToShortTon – (float) conversion factor lb to short ton
scaleMWtoGW – (float) conversion factor MW to GW (1/1000)
scaleDollarsToThousands – (float) conversion factor dollars to thousand dollars
co2Price – (float) value of CO2 price
-
addEguHourlyParams(db, hourlyCapacsCE, gcmSet, genSet, hourSet, hoursForCE, scaleMWtoGW)¶ Add existing generator hourly capacities to gdx database
Add hourly HR & capac param
- Parameters
db – gams data base object
hourlyCapacsCE – (dict) hourly capacities of existing generators
gcmSet – gams set object with gcm names
genSet – gams set object with existing generators
hourSet – gams set object with hours of simulation
hoursForCE – list with hours of simulation
scaleMWtoGW – (float) conversion factor MW to GW (1/1000)
-
getHourly2dParamDict(hourlyParam, hoursForCE, scalar)¶ Creates dictionary of (key,hourSymbol)
for capac or HR, key=gen; for demand or wind & solar gen, key=zone
- Parameters
hourlyParam – (dict) nested dictionary with hourly parameters
hoursForCE – (list) hours of simulation (considering all gcms)
scalar – (float) scaling factor
- Returns
dictionary with tuples (key,hourSymbol) as keys
-
addExistingRenewableMaxGenParams(db, gcmSet, zoneSet, ipmZones, ipmZoneNums, hourSet, hoursForCE, hourlySolarGenCEZonal, hourlyWindGenCEZonal, scaleMWtoGW)¶ Add existing renewable combined maximum generation values to database
Converts 1d list of param vals to hour-indexed dicts, then adds dicts to GAMS db
- Parameters
db – gams data base object
zoneSet – gams set object with zones
ipmZones – list with ipm zones
ipmZoneNums – list with ipm zone numbers
hourSet – gams set object with hours of simulation
hourSymbols – list with symbols of hours of simulation
hourlySolarGenCEZonal – (dict) hourly solar generation by zone
hourlyWindGenCEZonal – (dict) hourly wind generation by zone
scaleMWtoGW – (float) scaling factors MW to GW
-
getParamIndexedByHourDict(paramVals, hourSymbols, *scalar)¶ Stores set of values into dictionary keyed by hour
- Parameters
paramVals – set of param values (1d list)
hourSymbols – hour symbols (1d list)
scalar – optional scalar
- Returns
dictionary of (hour symbol:param val)
-
addLineSourceAndSink(db, lineSet, lines, ipmZones, ipmZoneNums)¶ Add zone and line constraints
Add parameter mapping lines to zone sources & sinks (pLinesources(l),pLinesinks(l))
- Parameters
db – gams data base object
lineSet – gams set object with lines names
lines – list with lines names
ipmZones – list with zone names
ipmZoneNums – list with zone numbers
-
addLineCapacs(db, lineCapacs, lineSet, lines, scaleMWtoGW)¶ Add line capacities (pLinecapacs(l)). lineCapacs already a dict of line:capac;
convert to GW
- Parameters
db – gams data base object
lineCapacs – (dict) capacities of transmission lines
lineSet – gams set with lines names
lines – list with lines names
scaleMWtoGW – (float) scaling factor MW to GW
-
addPumpHydroParams(db, genFleetForCE, phEff, phMaxSoc, phInitSoc, pumpHydroGenSet, pumpHydroGenSymbols, scaleMWtoGW)¶ ADD PUMPED HYDRO PARAMETERS
- Parameters
db – gams data base object
genFleetForCE – 2d list with gen fleet
phEff – (float) pumped hydro efficiency (%)
phMaxSoc – (float) pumped hydro maximum state of charge (multiplier of capacity)
phInitSoc – (float) pumped hydro initial state of charge (% of maxsoc)
pumpHydroGenSet – gams set with pumped hydro generators
pumpHydroGenSymbols – list with pumped hydro generators symbols
scaleMWtoGW – (float) scaling factor MW to GW
-
getSocDict(genFleetForCE, phMaxSoc, pumpHydroGenSymbols, scaleMWtoGW)¶ Get state of charge for pumped hydro. phMaxSoc equals multiple of capacity
- Parameters
genFleetForCE – 2d list with gen fleet
phMaxSoc – (float) pumped hydro maximum state of charge (multiplier of capacity)
pumpHydroGenSymbols – list with pumped hydro generators symbols
scaleMWtoGW – (float) scaling factor MW to GW
- Returns
(dict) {pumped hydro symbol: max state of charge (in MW)}
-
addTechParams(db, newTechsCE, scaleMWtoGW, scaleDollarsToThousands, scaleLbToShortTon, ptCurtailed)¶ Add new tech parameters to gdx database for CE
- Parameters
db – gams data base object
newTechsCE – 2d list with parameters of new techs
scaleMWtoGW – (float) scaling factor MW to GW
scaleDollarsToThousands – (float) scaling factor dollars to thousands
scaleLbToShortTon – (float) scaling factor lb to short tons
ptCurtailed – (list) list of techs that have climate-induced capacity derating
-
getTechParamDict(newTechsCE, techSymbols, paramColName, ptCurtailed, *scalar)¶ Creates dict of (techSymbol:paramVal) for given parameter name
- Parameters
newTechsCE – 2d list with parameters of new techs
techSymbols – (list) names of new techs
paramColName – (int) index of column of desired parameter in newTechsCE
ptCurtailed – (list) list of techs that have climate-induced capacity derating
scalar – (float) scaling factor
- Returns
dict of (techSymbol:paramVal) for given parameter name
-
getTechOpCostDict(newTechs, ptCurtailed, scalar)¶ Takes in techs and returns dictionary of (tech:opCost)
- Parameters
newTechs – 2d list with parameters of new techs
ptCurtailed – (list) list of techs that have climate-induced capacity derating
scalar – (float) scaling factor
- Returns
dictionary of {tech:opCost}
-
addTechCurtailedHourlyCapac(db, hourlyCurtailedTechCapacsCE, gcmSet, cellSet, techCurtailedSet, hourSet, hoursForCE, scaleMWtoGW)¶ Add hourly curtailed tech capac.
Input capacs: (tech,loc):[capacs]. Output dict added to db: idxed by (loc,tech,hr)
- Parameters
db – gams data base object
hourlyCurtailedTechCapacsCE –
cellSet – gams set with grid cell names
techCurtailedSet – gams set with names of techs that have climate-induced capacity deratings
hourSet – gams set with hours of simulation
hoursForCE – list with hours of simulation
scaleMWtoGW – (float) scaling factor MW to GW
-
getHourlyTechParamDict(hourlyParam, hoursForCE, scalar)¶ Creates dictionary of (gcm, locSymbol, techSymbol, hourSymbol):capac or HR
- Parameters
hourlyParam – (dict) dictionary with hourly values for (tech, cell) tuples
hoursForCE – list with hours of simulation
scalar – (float) scaling factor
- Returns
(dict) {(gcm, locSymbol, techSymbol, hourSymbol): value}
-
addCellsToZones(db, cellSet, cellsToZones, ipmZones, ipmZoneNums)¶ ADD MAP FROM CELLS TO ZONES
- Parameters
db – gams data base object
cellSet – gams set with grid cell names
cellsToZones – (dict) dictionary mapping cells to zones
ipmZones – list with ipm zone names
ipmZoneNums – list with ipm zone numbers
-
addPlanningReserveParam(db, planningReserveZonal, ipmZones, ipmZoneNums, zoneSet, zoneSymbols, scaleMWtoGW)¶ Add planning reserve margin fraction parameters
Add zonal planning reserve
- Parameters
db – gams data base object
planningReserveZonal – (dict) dictionary with planning reserve margin (in MW) for each zone
ipmZones – list with ipm zone names
ipmZoneNums – list with ipm zone numbers
zoneSet – gams set with zone names
zoneSymbols – list with zone names
scaleMWtoGW – (float) scaling factor MW to GW
-
addPeakHourToZoneParam(db, peakDemandHourZonal, peakHourSet, peakHrSymbols, ipmZones, ipmZoneNums)¶ Add map of peak hour to zone
- Parameters
db – gams data base object
peakDemandHourZonal – (dict) hours of peak demand in each zone
peakHourSet – gams set with peak hours
peakHrSymbols – list with peak hours
ipmZones – list with ipm zone names
ipmZoneNums – list with ipm zone numbers
-
addDiscountRateParam(db, discountRate)¶ Add discount rate parameter to gdx database
- Parameters
db – gams data base object
discountRate – (float) annual discount rate
-
addExistingPlantFirmFractions(db, genFleet, genSet, genSymbols, firmCapacityCreditsExistingGens)¶ Add firm fraction for existing generators
Firm fraction goes towards meeting planning reserve margin
- Parameters
db – gams data base object
genFleet – 2d list with gen fleet
genSet – gams set object with existing generators
genSymbols – list with symbols of generators
firmCapacityCreditsExistingGens –
-
getFirmCreditExistingGenDict(genFleet, firmCapacityCreditsExistingGens)¶ Returns dict of (genSymbol:capacCredit) based on plant type of each generator
- Parameters
genFleet – 2d list with gen fleet
firmCapacityCreditsExistingGens –
- Returns
-
addRenewTechCFParams(db, renewTechSet, renewTechSymbols, gcmSet, zoneSet, hourSet, hoursForCE, newWindCFsCEZonal, newSolarCFsCEZonal, ipmZones, ipmZoneNums)¶ Add hourly capacity factors for new renewable techs
Add CFs for new renew builds. Input: CFs as zone:[CF]
Output: dict added to GAMS file as (z,tech,h):[CFs]
- Parameters
db – gams data base object
renewTechSet – gams set with renewable techs
renewTechSymbols – list with renewable tech names
zoneSet – gams set with zone names
hourSet – gams set with hours of simulation
hourSymbols – list with hours of simulation
newWindCFsCEZonal – dict with CFs for new wind gens
newSolarCFsCEZonal – dict with CFs for new solar gens
ipmZones – list with ipm zone names
ipmZoneNums – list with ipm zone numbers
-
addCppEmissionsCap(db, co2CppSercCurrYearLimit)¶ Add co2 emission caps for CE model
- Parameters
db – gams data base object
co2CppSercCurrYearLimit – annual co2 upper bound (in short tons)
-
addSeasonDemandWeights(db, seasonDemandWeights)¶ Add weights to scale representative seasonal demand up to complete season period
- Parameters
db – gams data base object
seasonDemandWeights – dictionary with season weights
-
addMaxNumNewRenew(db, newWindCFsCEZonal, newSolarCFsCEZonal, ipmZones, ipmZoneNums)¶ Add limit on max number of new renewable builds (Wind and Solar) per zone and aggregated block
- Parameters
db – GAMS database object
-
addMaxNumNewBuilds(db, newTechsCE, zoneSet, ipmZones, ipmZoneNums, typeSet, maxAddedZonalCapacPerTech, ptCurtailed)¶ Add limit of max number of new builds per plant type in each zone
- Parameters
db – gams data base object
newTechsCE – 2d list with parameters of new techs
zoneSet – gams set object with zone names
ipmZones – list with ipm zone names
ipmZoneNums – list with ipm zone numbers
typeSet – gams set object with types of new techs (no cooling info)
maxAddedZonalCapacPerTech – (numeric or dict) maximum of each type per zone
ptCurtailed – list with techs that have climate-induced capacity deratings
-
addHydroMaxGenPerSeason(db, hydroGenSet, gcmSet, hydroPotPerSeason, scaleMWtoGW)¶ Add max hydro generation per time block
hydroPotPerSeason is a dict of season:genSymbol:gen (MWh), so just need to scale it. Note that sesaon can be ‘special’!
- Parameters
db – gams data base object
hydroGenSet – gams set object with hydro generators
hydroGenSymbols – list with names of hydro generators
hydroPotPerSeason – (dict) {season:genSymbol:gen (MWh)}
scaleMWtoGW – (float) scaling factor MW to GW
-
addHydroMaxGenUC(db, hydroGenSet, hydroPot, scaleMWtoGW)¶ Add max hydro gen for days in UC run
- Parameters
db – gams data base object
hydroGenSet – gams set object with hydro generators
hydroPot – dict of genSymbol:gen (MWh)
scaleMWtoGW – (float) scaling factor MW to GW
-
addEguUCParams(db, fleetUC, genSet, genSymbols, scaleMWtoGW, scaleDollarsToThousands)¶ Add UC parameters
- Parameters
db – gams data base object
fleetUC – 2d list with gen fleet
genSet – gams set object with existing generators
genSymbols – list with symbols of generators
scaleMWtoGW – (float) scaling factor MW to GW
scaleDollarsToThousands – (float) scaling factor dollars to thousands
-
addRegReserveParameters(db, regUp, regDown, rrToRegTime, hourSet, hourSymbols, zoneSet, modelName, genparam)¶ Add reg reserve parameters
- Parameters
db – gams data base object
regUp – (2d list) hourly values of regulated up reserve by zone
regDown – (2d list) hourly values of regulated down reserve by zone
rrToRegTime – (float) scaling factor for reserve time frame
hourSet – gams set with hours of simulation
hourSymbols – list with simulation hours
zoneSet – gams set with zones
modelName – (string) name of model
genparam – object of class
Generalparameters
-
addFlexReserveParameters(db, flexRes, rrToFlexTime, hourSet, hourSymbols, zoneSet, modelName, genparam)¶ Add reserve parameter quantities
- Parameters
db – gams data base object
flexRes – (2d list) hourly values of flexibility reserve by zone
rrToFlexTime – (float) scaling factor for flexibility reserve time frame
hourSet – gams set with hours of simulation
hourSymbols – list with simulation hours
zoneSet – gams set with zones
modelName – (string) name of model
genparam – object of class
Generalparameters
-
addContReserveParameters(db, contRes, rrToContTime, hourSet, hourSymbols, zoneSet, genparam)¶ - Parameters
db – gams data base object
contRes – (2d list) hourly values of contigency reserve by zone
rrToContTime – (float) scaling factor for contigency reserve time frame
hourSet – gams set with hours of simulation
hourSymbols – list with simulation hours
zoneSet – gams set with zones
genparam – object of class
Generalparameters
-
addEguInitialConditions(db, genSet, genSymbols, fleetUC, onOffInitial, genAboveMinInitial, mdtCarriedInitial, scaleMWtoGW)¶ Add initial conditions
- Parameters
db – gams data base object
genSet – gams set object with existing generators
genSymbols – list with symbols of generators
fleetUC – 2d list with gen fleet
onOffInitial – (list) initial status of generator (on/off)
genAboveMinInitial – (list) initial state of generation above minimum for each generator
mdtCarriedInitial – (list) initial state of min down time for each generator
scaleMWtoGW – (float) scaling factor MW to GW
-
getInitialCondsDict(fleetUC, initialCondValues, *scalar)¶ Create dictionary with initial conditions for individual generators for UC run
- Parameters
fleetUC – 2d list with gen fleet
initialCondValues – (1d list) values of intial conditions (same order of gen fleet)
scalar – (float) scaling factor
- Returns
(dict) {gen symbol: value}
-
addEguEligibleToProvideRes(db, fleetUC, genSet, genSymbols, *stoMarket)¶ Which generators are eligible to provide reserves
Add parameter for which existing generators can provide flex, cont, or reg reserves
- Parameters
db – gams data base object
fleetUC – 2d list with gen fleet
genSet – gams set object with existing generators
genSymbols – list with symbols of generators
stoMarket –
-
getEligibleSpinDict(fleetOrTechsData, fleetOrTechsFlag, *stoMktOrPtCurt)¶ Returns dict of whether units can provide spin reserves or not based on the plant type
- Parameters
fleetOrTechsData –
fleetOrTechsFlag –
stoMktOrPtCurt –
- Returns
-
addCostNonservedEnergy(db, cnse, scaleMWtoGW, scaleDollarsToThousands)¶ Add cost of CNSE
- Parameters
db – GAMS database object
cnse – value of cost of non served energy ($/MWh)
scaleMWtoGW – conversion factor MW to GW
scaleDollarsToThousands – conversion factor to thousands dollars
-
addCo2Price(db, co2Price, scaleDollarsToThousands)¶ Add CO2 price
- Parameters
db – GAMS database object
co2Price – value of CO2 price ($/MWh)
scaleDollarsToThousands – conversion factor to thousands dollars
-
add0dParam(db, paramName, paramDescrip, paramValue)¶ Generic function to add a scalar (0-dimension) parameter to database
- Parameters
db – gams database object
paramName – (string) name of parameter
paramDescrip – (string) description of parameter
paramValue – (float) value of parameter
-
add1dParam(db, paramDict, idxSet, setSymbols, paramName, paramDescrip)¶ Generic function to add a 1-dimensional (vector) parameter to database
- Parameters
db – gams database object
paramDict – simple dictionary with data.
idxSet – gams set object of domain of parameter array
setSymbols – (list) list with symbol names
paramName – (string) name of parameter
paramDescrip – (string) description of parameter
- Returns
gams parameter object created
-
add2dParam(db, param2dDict, idxSet1, idxSet2, paramName, paramDescrip)¶ Generic function to add a 2-dimensional (matrix) parameter to database
- Parameters
db – gams database object
param2dDict – dictionary with data. keys are a tuple (key1, key2)
idxSet1 – gams set object of first domain of parameter array
idxSet2 – gams set object of second domain of parameter array
paramName – (string) name of parameter
paramDescrip – (string) description of parameter
- Returns
gams parameter object created
-
add_NdParam(db, paramDict, list_idxSet, paramName, paramDescrip)¶ Generic function to add a N-dimensional parameter to database
paramDict is a simple dictionary (it MUST NOT BE a nested dictionary). See function ‘nested_dict_to_dict()’ to convert a nested dictionary into a simple dictionary where the key is a tuple with combination of nested keys
- Parameters
db – gams database object
paramDict – simple dictionary with data. keys must be a tuple with N values
list_idxSet – 1d list of size N with GAMS sets for domain of parameters (must be in the correct orders)
paramName – (string) name of parameter
paramDescrip – (string) description of parameter
- Returns
gams parameter object
-
createGenSymbol(row, headers)¶ Create gen symbols
- Parameters
row – row of genFleet 2d list with data of single generator
headers – list of headers
- Returns
string with gen code
-
createTechSymbol(row, headers, ptCurtailed)¶ Create cooling tech symbols
- Parameters
row – row of genFleet 2d list with data of single generator
headers – 1-d list with header
ptCurtailed – 1-d list with curtailed technologies
- Returns
string with symbol
-
separateGenSymbol(genSymbol)¶ Split generator symbol into plant code and unit code
- Parameters
genSymbol – string with gen symbol
- Returns
tuple with strings of plant code and unit code
-
getTechFromTechSymbol(techSymbol)¶ Get tech type from tech symbol
- Parameters
techSymbol – string with tech symbol
- Returns
string with tech type
-
getTechAndCoolFromTechSymbol(techSymbol)¶ Get tech and cooling types from tech symbol
- Parameters
techSymbol – string with tech symbol
- Returns
tuple with string of tech name and cooling type
-
createZoneSymbol(zoneNum)¶ create zone symbol for GAMS (z1, z2,, …)
- Parameters
zoneNum – number of zone
- Returns
string with zone symbol
-
getZoneNumFromSymbol(symbol)¶ Get zone number from zone symbol
note that this function only works for up to 9 zones (it assumes zone number is one digit)
- Parameters
symbol – string with zone symbol (z1, z2, …)
- Returns
integer with number of zone
-
createHourSymbol(hour)¶ create hour of the year symbol for GAMS (h1, h2, h744, h8760, …)
- Parameters
hour – integer with hour of the year
- Returns
string with hour symbol
-
createTechAndLocLabel(tech, loc)¶ create tech and location symbol for GAMS
if modify this function, modify next function!
- Parameters
tech –
loc –
- Returns
-
splitTechAndLocLabel(label)¶ split string with label of tech and location into tuple
if modify this function, modify prior function!
- Parameters
label – label if tech and location candidate
- Returns
tuple with strings of tech and location
-
extract0dVarResultsFromGAMSModel(gamsModel, varName)¶ Extract results from GAMS of variable of dimension 0 (scalar)
Reads resulting GAMS model and extracts values of variable varName
- Parameters
gamsModel – GAMS model object
varName – string with variable name
- Returns
value of variable
-
extract1dVarResultsFromGAMSModel(modelResults, varName)¶ Extract results from GAMS of variable of dimension 1 (vector)
Reads resulting GAMS model and extracts values of variable varName
- Parameters
modelResults – GAMS model object
varName – string with variable name
- Returns
list with value of variable
-
extract2dVarResultsIntoDict(modelResults, varName)¶ Extract results from GAMS of variable of dimension 2 (2d array)
Reads resulting GAMS model and extracts values of variable varName and saves to dictionary
- Parameters
modelResults – GAMS model object
varName – string with variable name
- Returns
dict with value of variable
-
extract2dVarResultsIntoList(modelResults, varName)¶ Extract results from GAMS of variable of dimension 2 (2d array)
Reads resulting GAMS model and extracts values of variable varName and saves to 2d list
- Parameters
modelResults – GAMS model object
varName – string with variable name
- Returns
2d list with value of variable
-
extractTechBuildResults(modelResults, varName)¶ Extracts Tech build results
- Parameters
modelResults – GAMS model object
varName – string with variable name
- Returns
2d list with value of variable
-
extract2dVarResultsIntoDictNoLA(modelResults, varName, hoursOpt)¶ Extract results of 2d variable
- Parameters
modelResults – GAMS model object
varName – string with variable name
hoursOpt – list with hours of optimization simulation
- Returns
dictionary with results {(gen,hour): value}