Exemple #1
0
def _test2():
    append=0
    for fpart in ['dxc-op','dxc-cl']:
	g1 = vutils.opendss('anninputs.dss')
	g2 = vutils.opendss('annoutputs.dss')
	g1.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'))
	print 'Built outputs'
	print 'Dumping patterns'
	if append:
	    dump_patterns(inputs,outputs,'junk',0.75,365,1)
	else:
	    dump_patterns(inputs,outputs,'junk',0.75,365,append)
	    append = 1
Exemple #2
0
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)
Exemple #3
0
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()
Exemple #4
0
def _test1():
    g=vutils.opendss('/delta2/ann/hydrologies/sim809anndv.dss')
    refs = vutils.findpath(g,'//ndo/flow-ndo///')
    tw = vutils.timewindow('01jan1974 0000 - 01jan1992 0000')
    inps = []
    for i in range(len(refs)):
	inps.append(vutils.interpolate(DataReference.create(refs[i],tw).getData(),'1day'))
    print 'Got data for ',tw
    scaling = 8.99649e-07
    shift = 0.233677
    crush(inps[0],scaling,shift)
    print 'Crushed data'
    inputs = buildinput(inps[0],8,10,7)
    print 'Built inputs'
    outputs = inps[:]
    print 'Dumping patterns'
    dump_patterns(inputs,outputs,'junk',0.75)
Exemple #5
0
        print "IN prep DOC"
        infile = sys.argv[1]
        config.setConfigVars(infile)
        tw = prepro_window()
        print "Expanding seasonal DICU DOC drainage values"
        expand_seasonal_bst.prep_dicu(
            config.getAttr('DICUFILE_DOC'),  # original DICU DSS file for EC
            config.getAttr(
                'DICUFILE_DOCE'
            ),  # processed DICU DSS file (will be input for DSM2)
            "DRAIN-DOC",
            tw)
        print "Expanding seasonal boundary DOC values"
#        expand_seasonal_bst.prep_dicu(
#            config.getAttr('TSFILE_DOC'),        # original DICU DSS file for EC
#            config.getAttr('DICUFILE_DOCE'),       # processed DICU DSS file (will be input for DSM2)
#            "DOC",tw)

    f = opendss(config.getAttr("TSFILE_DOC"))  # open DOC boundary file
    outfile = config.getAttr("BOUNDARYFILE")
    f2 = find(f, 'DOC', 'c')
    for ref in f2:
        path = ref.getPathname()
        daily = vutils.interpolate(ref.getData(), "1DAY")
        path.setPart(Pathname.E_PART, '1DAY')
        path.setPart(Pathname.F_PART, config.getAttr('DSM2MODIFIER'))
        mod_path = path.toString()
        writedss(outfile, mod_path, daily)

    sys.exit()
Exemple #6
0
import sys
    else:
        print "IN prep DOC"
        infile = sys.argv[1]
        config.setConfigVars(infile)
        tw=prepro_window()
        print "Expanding seasonal DICU DOC drainage values"
        expand_seasonal_bst.prep_dicu(
            config.getAttr('DICUFILE_DOC'),        # original DICU DSS file for EC
            config.getAttr('DICUFILE_DOCE'),       # processed DICU DSS file (will be input for DSM2)
            "DRAIN-DOC",tw)
        print "Expanding seasonal boundary DOC values"
#        expand_seasonal_bst.prep_dicu(
#            config.getAttr('TSFILE_DOC'),        # original DICU DSS file for EC
#            config.getAttr('DICUFILE_DOCE'),       # processed DICU DSS file (will be input for DSM2)
#            "DOC",tw)
    
    f=opendss(config.getAttr("TSFILE_DOC"))           # open DOC boundary file
    outfile=config.getAttr("BOUNDARYFILE")
    f2=find(f,'DOC','c')
    for ref in f2:
        path = ref.getPathname()
        daily = vutils.interpolate(ref.getData(),"1DAY")
        path.setPart(Pathname.E_PART, '1DAY')
        path.setPart(Pathname.F_PART, config.getAttr('DSM2MODIFIER'))
        mod_path = path.toString()
        writedss(outfile, mod_path, daily)

    sys.exit()