I am receiving an error at the end of my code when trying to load the information into PSSE. My goal is once all the data was organized how I wanted, the next step was to use that organized data and import it to PSSE. Everything before that works but once I use a PSSE API, nothing works. I get this error: psspy.bsys(1,0,[0.0,0.0],0,[],1,[bus],0,[],0,[]) File ".\psspy.py", line 46020, in bsys TypeError: an integer is required.
import os, sys
PSSE_LOCATION = r"C:\Program Files (x86)\PTI\PSSE33\PSSBIN"
sys.path.append(PSSE_LOCATION)
os.environ['PATH'] = os.environ['PATH'] + ';' + PSSE_LOCATION
import psspy
import redirect
import csv
psspy.throwPsseExceptions = True
from Tkinter import *
import tkFileDialog
import tkSimpleDialog
import tkMessageBox
STUDY_CASE = 'C:\Users\RoszkowskiM\Documents\Cases\Final\ceii_Case1_SUM_2017_5050_MMWG16PF_FINAL.sav'
LOAD_GEN_DATAFILE = 'C:\Users\RoszkowskiM\Documents\CSV Files\ASTECOR_TLA.csv'
psspy.psseinit(10000)
psspy.case(STUDY_CASE)
data = list(csv.reader(open(LOAD_GEN_DATAFILE)))
mydict = {}
for row in data:
year,location,bus,change,isload = row[0:5]
# convert the types from string to Python numbers
change= float(change)
bus = int(bus)
#If this is a year not seen before, add it to the dictionary
if year not in mydict:
mydict[year] = {}
busses_in_year = mydict[year]
if location not in busses_in_year:
busses_in_year[location] = []
#Add the bus to the list of busses that stop at this location
busses_in_year[location].append((bus, change,isload))
# assume CSV has columns as described in the doc string
year = raw_input("Select Year of Study: ")
location = raw_input(" Select the number associated to the TLA Pocket Location:")
if year in mydict and location in mydict[year]:
busses_in_year = mydict[year]
print("Here are all the busses at that location for that year: ")
for bus in busses_in_year[location]:
print(bus)
else:
print("Invalid Year or Location")
if isload.isdigit() and int(isload):
psspy.bsys(1,0,[0.0,0.0],0,[],1,[bus],0,[],0,[])
psspy.scal_2(1,0,1,[0,0,0,0,0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0])
psspy.scal_2(0,1,2,[0,1,0,1,0],[change,0.0,0,-.0,0.0,-.0,0])
What does this print? From the previous code I think
bus
is actually atuple
:When you call
bsys
with[bus]
it is using the last value ofbus
after looping throughbusses_in_year[location]
. The functionbsys
expects an integer, but you're giving it the fulltuple
.I'm not sure how to fix your code as it might not make sense to just take the last bus in the year, so you probably need to fix that first.
But if you want to properly unpack the
tuple
(bus, change, isload)
you can do the following: