def _test4(): from ANN import fnet_cccec sac = vutils.RegularTimeSeries('inp1','31jan1990 2400', '1mon', [10000.0, 11000.0, 12000.0, 15000.0]) sac = sac*5.40394e-06+0.178546 sjr = vutils.RegularTimeSeries('inp1','31jan1990 2400', '1mon', [1000.0, 1100.0, 1200.0, 1500.0]) sjr = sjr*1.34396e-05+0.199247 exp = vutils.RegularTimeSeries('inp1','31jan1990 2400', '1mon', [5000.0, 6000.0, 7000.0, 8000.0]) exp = exp*-4.86697e-05+0.178537 dxc = vutils.RegularTimeSeries('inp1','31jan1990 2400', '1mon', [0.0, 0.0, 0.0, 0.0]) dxc = (1.-dxc/31)*0.6+0.2 inps = [dxc,exp,sac,sjr] inps = map(lambda x: vutils.interpolate(x,'1day'), inps) inputs = [] for i in range(len(inps)): print 'Building inputs for ',inps[i] inputs=inputs+buildinput(inps[i],7,10,7) # weekly averages print 'Built inputs' #outputs = [] #ccc_ref = vutils.findpath(g2,'//ccc/ec///%s/'%fpart)[0] #outputs.append(vutils.interpolate(DataReference.create(ccc_ref,tw).getData(),'1day')) mi = MultiIterator(inputs) import jarray ninps = len(inputs) input = jarray.zeros(ninps,'f') output = jarray.zeros(1,'f') ann = fnet_cccec() ndata = len(inputs[0]) for input_no in range(31+28+31+1): mi.advance() outdata = jarray.zeros(ndata,'f') fh = open('junk.out','w',15000) while input_no < ndata: el = mi.getElement() i=0 while i < ninps: input[i] = el.getY(i) i=i+1 ann.engine(input,output,0) fh.write('Input #: %d\n'%input_no) i=0 while i < ninps: fh.write('%13.6f'%input[i]) if i%5 == 4: fh.write('\n') i = i+1 fh.write('\nOutput #: %d\n'%input_no) fh.write('%13.6f\n'%output[0]) outdata[input_no] = output[0] mi.advance() input_no=input_no+1 fh.close()
def _test3(): from ANN import fnet_cccec fpart = 'dxc-op' g1 = vutils.opendss('anninputs.dss') g2 = vutils.opendss('annoutputs.dss') g1.filterBy(fpart) g2.filterBy(fpart) refs = g1[:] tw = vutils.timewindow('01oct1975 0000 - 01sep1991 0000') #tw = vutils.timewindow('01oct1975 0000 - 01oct1976 0000') inps = [] for i in range(len(refs)): inps.append(vutils.interpolate(DataReference.create(refs[i],tw).getData(),'1day')) inputs = [] for i in range(len(inps)): print 'Building inputs for ',inps[i] inputs=inputs+buildinput(inps[i],7,10,7) # weekly averages print 'Built inputs' outputs = [] ccc_ref = vutils.findpath(g2,'//ccc/ec///%s/'%fpart)[0] outputs.append(vutils.interpolate(DataReference.create(ccc_ref,tw).getData(),'1day')) mi = MultiIterator(inputs) import jarray ninps = len(inputs) input = jarray.zeros(ninps,'f') output = jarray.zeros(1,'f') ann = fnet_cccec() ndata = len(inputs[0]) for input_no in range(365): mi.advance() outdata = jarray.zeros(ndata,'f') while input_no < ndata: el = mi.getElement() i=0 while i < ninps: input[i] = el.getY(i) i=i+1 ann.engine(input,output,0) outdata[input_no] = output[0] mi.advance() input_no=input_no+1 # stime = inputs[0].getStartTime() ti = inputs[0].getTimeInterval() rtsout = vutils.RegularTimeSeries('/ann/ccc_out/ec///annutils/',str(stime),\ str(ti),outdata) vutils.plot(rtsout,outputs[0]) rtsout = (rtsout-0.140516)/0.000396563 vutils.writedss('annout.dss','/ann/ccc_out/ec///annutils/',rtsout)