-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathGAMSAuxFuncs.py
More file actions
38 lines (31 loc) · 1.31 KB
/
GAMSAuxFuncs.py
File metadata and controls
38 lines (31 loc) · 1.31 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#Michael Craig
#October 4, 2016
#Helper functions for Python-GAMS interaction
def createGenSymbol(row,headers):
(orisCol,unitCol) = (headers.index('ORIS Plant Code'),headers.index('Unit ID'))
return str(row[orisCol]) + '+' + row[unitCol]
def createTechSymbol(row,headers):
techCol = headers.index('TechnologyType')
return row[techCol]
def createHourSymbol(hour):
return 'h' + str(hour)
def extract0dVarResultsFromGAMSModel(gamsModel,varName):
for rec in gamsModel.out_db[varName]: varValue = rec.level
return varValue
def extract1dVarResultsFromGAMSModel(modelResults,varName):
varResults = []
for rec in modelResults.out_db[varName]:
varResults.append((rec.key(0),rec.level))
return varResults
def extract2dVarResultsIntoDict(modelResults,varName):
varResultsDict = dict()
for rec in modelResults.out_db[varName]:
varResultsDict[(rec.key(0),rec.key(1))] = rec.level
return varResultsDict
def extract2dVarResultsIntoDictNoLA(modelResults,varName,hoursOpt):
varResultsDict = dict()
hoursOptSet = set(hoursOpt)
for rec in modelResults.out_db[varName]:
(gen,hour) = (rec.key(0),rec.key(1)) #Vars are indexed as egu,h
if hour in hoursOptSet: varResultsDict[(gen,hour)] = rec.level
return varResultsDict