diff --git a/schainpy/scripts/schain_paralel.py b/schainpy/scripts/schain_paralel.py deleted file mode 100644 index d1e2e98..0000000 --- a/schainpy/scripts/schain_paralel.py +++ /dev/null @@ -1,93 +0,0 @@ -from mpi4py import MPI -import datetime -import os, sys -#import timeit - -path = os.path.split(os.getcwd())[0] -sys.path.append(path) - -from controller import * - -def conversion(x1,x2): - a=[x1,x2] - for x in a: - m,s = divmod(x,60) - h,m = divmod(m,60) - if x==x1: - startime= str("%02d:%02d:%02d" % (h, m, s)) - if x==x2: - endtime =str("%02d:%02d:%02d" % (h, m, s)) - return startime,endtime - - - -def loop(startime,endtime,rank): - desc = "HF_EXAMPLE"+str(rank) - path= "/home/alex/Documents/hysell_data/pdata/sp1_f0" - figpath= "/home/alex/Pictures/pdata_plot"+str(rank) - - filename = "hf_test"+str(rank)+".xml" - - controllerObj = Project() - - controllerObj.setup(id = '191', name='test01'+str(rank), description=desc) - - readUnitConfObj = controllerObj.addReadUnit(datatype='SpectraReader', - path=path, - startDate='2015/09/26', - endDate='2015/09/26', - startTime=startime, - endTime=endtime, - online=0, - #set=1426485881, - delay=10, - walk=1 - #timezone=-5*3600 - ) - - #opObj11 = readUnitConfObj.addOperation(name='printNumberOfBlock') - - procUnitConfObj1 = controllerObj.addProcUnit(datatype='SpectraProc', inputId=readUnitConfObj.getId()) - - opObj11 = procUnitConfObj1.addOperation(name='SpectraPlot', optype='other') - opObj11.addParameter(name='id', value='1000', format='int') - opObj11.addParameter(name='wintitle', value='HF_Jicamarca_Spc', format='str') - #opObj11.addParameter(name='channelList', value='0', format='intlist') - opObj11.addParameter(name='zmin', value='-120', format='float') - opObj11.addParameter(name='zmax', value='-70', format='float') - opObj11.addParameter(name='save', value='1', format='int') - opObj11.addParameter(name='figpath', value=figpath, format='str') - - - print "Escribiendo el archivo XML" - controllerObj.writeXml(filename) - print "Leyendo el archivo XML" - controllerObj.readXml(filename) - - controllerObj.createObjects() - controllerObj.connectObjects() - - #timeit.timeit('controllerObj.run()', number=2) - - controllerObj.run() - - - -def parallel(): - - comm = MPI.COMM_WORLD - rank = comm.Get_rank() - size = comm.Get_size() - totalStartTime = time.time() - print "Hello world from process %d/%d"%(rank,size) - # First just for one day :D! - num_hours = 4/size - time1,time2 = rank*num_hours*3600,(rank+1)*num_hours*3600-60 - #print time1,time2 - startime,endtime =conversion(time1,time2) - print startime,endtime - loop(startime,endtime,rank) - print "Total time %f seconds" %(time.time() -totalStartTime) - -if __name__=='__main__': - parallel() \ No newline at end of file diff --git a/schainpy/scripts/testPlotter.py b/schainpy/scripts/testPlotter.py new file mode 100644 index 0000000..57ca1fe --- /dev/null +++ b/schainpy/scripts/testPlotter.py @@ -0,0 +1,76 @@ +#!/usr/bin/env python +''' +Created on Jul 7, 2014 + +@author: roj-idl71 +''' +import os, sys +from Queue import Queue +from time import sleep + +from schainpy.controller_api import ControllerThread +from schainpy.model.graphics.jroplotter import PlotManager + +def main(): + desc = "Segundo Test" + filename = "schain.xml" + + controllerObj = ControllerThread() + + controllerObj.setup(id = '191', name='test01', description=desc) + + readUnitConfObj = controllerObj.addReadUnit(datatype='Spectra', + path='../data/pdata/', + startDate='2010/12/18', + endDate='2015/12/22', + startTime='00:00:00', + endTime='23:59:59', + online=0, + walk=0, + expLabel='') + + procUnitConfObj1 = controllerObj.addProcUnit(datatype='Spectra', inputId=readUnitConfObj.getId()) + + opObj10 = procUnitConfObj1.addOperation(name='selectChannels') + opObj10.addParameter(name='channelList', value='0,1', format='intlist') + + opObj10 = procUnitConfObj1.addOperation(name='selectHeights') + opObj10.addParameter(name='minHei', value='90', format='float') + opObj10.addParameter(name='maxHei', value='180', format='float') + + opObj10 = procUnitConfObj1.addOperation(name='removeDC') + + opObj12 = procUnitConfObj1.addOperation(name='IncohInt', optype='other') + opObj12.addParameter(name='n', value='1', format='int') + + opObj11 = procUnitConfObj1.addOperation(name='SpectraPlot', optype='other') + opObj11.addParameter(name='id', value='1', format='int') + opObj11.addParameter(name='wintitle', value='SpectraPlot0', format='str') + opObj11.addParameter(name='showprofile', value='1', format='int') + opObj11.addParameter(name='save', value='0', format='int') + opObj11.addParameter(name='figpath', value='/Users/miguel/Data/JULIA/pdata/graphs') + + opObj11 = procUnitConfObj1.addOperation(name='RTIPlot', optype='other') + opObj11.addParameter(name='id', value='10', format='int') + opObj11.addParameter(name='wintitle', value='RTI', format='str') + opObj11.addParameter(name='xmin', value='21', format='float') + opObj11.addParameter(name='xmax', value='22', format='float') + opObj11.addParameter(name='zmin', value='12', format='int') + opObj11.addParameter(name='zmax', value='32', format='int') + opObj11.addParameter(name='showprofile', value='1', format='int') + opObj11.addParameter(name='timerange', value=str(2*60*60), format='int') + + ######################################## + #Configure use of external plotter before start + plotterObj = controllerObj.useExternalPlotter() + ######################################## + + controllerObj.start() + + plotterObj.start() + +if __name__ == '__main__': + import time + start_time = time.time() + main() + print("--- %s seconds ---" % (time.time() - start_time)) diff --git a/schainpy/scripts/testProcData.py b/schainpy/scripts/testProcData.py new file mode 100644 index 0000000..c39be23 --- /dev/null +++ b/schainpy/scripts/testProcData.py @@ -0,0 +1,66 @@ +#!/usr/bin/env python +''' +Created on Jul 7, 2014 + +@author: roj-idl71 +''' +import os, sys + +from schainpy.controller import Project + +def main(): + desc = "Segundo Test" + filename = "schain.xml" + + controllerObj = Project() + + controllerObj.setup(id = '191', name='test01', description=desc) + + readUnitConfObj = controllerObj.addReadUnit(datatype='Spectra', + path='../data/pdata/', + startDate='2010/12/18', + endDate='2015/12/22', + startTime='00:00:00', + endTime='23:59:59', + online=0, + walk=0, + expLabel='') + + procUnitConfObj1 = controllerObj.addProcUnit(datatype='Spectra', inputId=readUnitConfObj.getId()) + + opObj10 = procUnitConfObj1.addOperation(name='selectChannels') + opObj10.addParameter(name='channelList', value='0,1', format='intlist') + + opObj10 = procUnitConfObj1.addOperation(name='selectHeights') + opObj10.addParameter(name='minHei', value='90', format='float') + opObj10.addParameter(name='maxHei', value='180', format='float') + + opObj10 = procUnitConfObj1.addOperation(name='removeDC') + + opObj12 = procUnitConfObj1.addOperation(name='IncohInt', optype='other') + opObj12.addParameter(name='n', value='1', format='int') + + opObj11 = procUnitConfObj1.addOperation(name='SpectraPlot', optype='other') + opObj11.addParameter(name='id', value='1', format='int') + opObj11.addParameter(name='wintitle', value='SpectraPlot0', format='str') + opObj11.addParameter(name='showprofile', value='1', format='int') + opObj11.addParameter(name='save', value='0', format='int') + opObj11.addParameter(name='figpath', value='/Users/miguel/Data/JULIA/pdata/graphs') + + opObj11 = procUnitConfObj1.addOperation(name='RTIPlot', optype='other') + opObj11.addParameter(name='id', value='10', format='int') + opObj11.addParameter(name='wintitle', value='RTI', format='str') +# opObj11.addParameter(name='xmin', value='21', format='float') +# opObj11.addParameter(name='xmax', value='22', format='float') + opObj11.addParameter(name='zmin', value='12', format='int') + opObj11.addParameter(name='zmax', value='32', format='int') + opObj11.addParameter(name='showprofile', value='1', format='int') + opObj11.addParameter(name='timerange', value=str(2*60*60), format='int') + + controllerObj.start() + +if __name__ == '__main__': + import time + start_time = time.time() + main() + print("--- %s seconds ---" % (time.time() - start_time)) diff --git a/schainpy/scripts/testUSRPData.py b/schainpy/scripts/testUSRPData.py new file mode 100644 index 0000000..2601444 --- /dev/null +++ b/schainpy/scripts/testUSRPData.py @@ -0,0 +1,118 @@ +#!/usr/bin/env python +''' +Created on Jul 7, 2014 + +@author: roj-idl71 +''' +import os, sys + +from schainpy.controller import Project + +def main(): + + desc = "Testing USRP data reader" + filename = "schain.xml" + figpath = "./" + remotefolder = "/home/wmaster/graficos" + + #this controller object save all user configuration and then execute each module + #with their parameters. + controllerObj = Project() + + controllerObj.setup(id = '191', name='test01', description=desc) + + #Creating a reader object with its parameters + #schainpy.model.io.jroIO_usrp.USRPReader.setup() + readUnitConfObj = controllerObj.addReadUnit(datatype='USRP', + path='../data/haystack/', + startDate='2000/07/03', + endDate='2015/07/03', + startTime='00:00:00', + endTime='23:59:59', + online=0, + ippKm = 60) + + procUnitConfObj0 = controllerObj.addProcUnit(datatype='Voltage', + inputId=readUnitConfObj.getId()) + +# opObj10 = procUnitConfObj0.addOperation(name='selectHeights') +# opObj10.addParameter(name='minHei', value='0', format='float') +# opObj10.addParameter(name='maxHei', value='8', format='float') + +# opObj10 = procUnitConfObj0.addOperation(name='setH0') +# opObj10.addParameter(name='h0', value='5.4', format='float') + +# opObj10 = procUnitConfObj0.addOperation(name='Decoder', optype='external') +# opObj10.addParameter(name='code', value='1,-1', format='intlist') +# opObj10.addParameter(name='nCode', value='2', format='float') +# opObj10.addParameter(name='nBaud', value='1', format='float') + + opObj10 = procUnitConfObj0.addOperation(name='CohInt', optype='external') + opObj10.addParameter(name='n', value='1', format='float') + +# opObj11 = procUnitConfObj0.addOperation(name='Scope', optype='external') +# opObj11.addParameter(name='id', value='121', format='int') +# opObj11.addParameter(name='wintitle', value='Scope', format='str') + + procUnitConfObj1 = controllerObj.addProcUnit(datatype='Spectra', + inputId=procUnitConfObj0.getId()) + + #Creating a processing object with its parameters + #schainpy.model.proc.jroproc_spectra.SpectraProc.run() + #If you need to add more parameters can use the "addParameter method" + procUnitConfObj1.addParameter(name='nFFTPoints', value='8', format='int') + procUnitConfObj1.addParameter(name='pairsList', value='(0,1)', format='pairslist') + +# opObj10 = procUnitConfObj1.addOperation(name='IncohInt', optype='external') +# opObj10.addParameter(name='n', value='2', format='float') +# + #Using internal methods + #schainpy.model.proc.jroproc_spectra.SpectraProc.selectChannels() +# opObj10 = procUnitConfObj1.addOperation(name='selectChannels') +# opObj10.addParameter(name='channelList', value='0,1', format='intlist') + + #Using internal methods + #schainpy.model.proc.jroproc_spectra.SpectraProc.selectHeights() +# opObj10 = procUnitConfObj1.addOperation(name='selectHeights') +# opObj10.addParameter(name='minHei', value='90', format='float') +# opObj10.addParameter(name='maxHei', value='180', format='float') + + #Using external methods (new modules) +# #schainpy.model.proc.jroproc_spectra.IncohInt.setup() +# opObj12 = procUnitConfObj1.addOperation(name='IncohInt', optype='other') +# opObj12.addParameter(name='n', value='1', format='int') + + #Using external methods (new modules) + #schainpy.model.graphics.jroplot_spectra.SpectraPlot.setup() + opObj11 = procUnitConfObj1.addOperation(name='SpectraPlot', optype='external') + opObj11.addParameter(name='id', value='11', format='int') + opObj11.addParameter(name='wintitle', value='SpectraPlot', format='str') +# opObj11.addParameter(name='zmin', value='0', format='int') +# opObj11.addParameter(name='zmax', value='90', format='int') +# opObj11.addParameter(name='save', value='1', format='int') +# opObj11.addParameter(name='xmin', value='-20', format='float') +# opObj11.addParameter(name='xmax', value='20', format='float') + + #Using external methods (new modules) + #schainpy.model.graphics.jroplot_spectra.RTIPlot.setup() + opObj11 = procUnitConfObj1.addOperation(name='RTIPlot', optype='other') + opObj11.addParameter(name='id', value='30', format='int') + opObj11.addParameter(name='wintitle', value='RTI', format='str') +# opObj11.addParameter(name='zmin', value='0', format='int') +# opObj11.addParameter(name='zmax', value='90', format='int') + opObj11.addParameter(name='showprofile', value='1', format='int') + opObj11.addParameter(name='timerange', value=str(2*60*60), format='int') +# opObj11.addParameter(name='xmin', value='19.5', format='float') +# opObj11.addParameter(name='xmax', value='20', format='float') + + opObj11 = procUnitConfObj1.addOperation(name='CrossSpectraPlot', optype='other') + opObj11.addParameter(name='id', value='3', format='int') + opObj11.addParameter(name='wintitle', value='CrossSpectraPlot', format='str') +# opObj11.addParameter(name='zmin', value='30', format='int') +# opObj11.addParameter(name='zmax', value='120', format='int') +# opObj11.addParameter(name='pairsList', value='(0,1)', format='pairslist') + + controllerObj.start() + +if __name__ == '__main__': + main() diff --git a/schainpy/scripts/zerorpc_client.py b/schainpy/scripts/zerorpc_client.py new file mode 100644 index 0000000..e77f37a --- /dev/null +++ b/schainpy/scripts/zerorpc_client.py @@ -0,0 +1,133 @@ +#!/usr/bin/env python +''' +Created on Jul 11, 2014 + +@author: roj-idl71 +''' +import time +from gevent import sleep + +import os, sys + +path = os.path.dirname(os.getcwd()) +path = os.path.join(path, 'source') +sys.path.insert(0, path) + +import zerorpc +from schainpy.model import * +from schainpy.model.serializer.data import serial2Obj, serial2Dict +# import schainpy.model.io.jroIO_usrp + +def createObjVolt(): + ''' + This function creates a processing object "VoltProc" with some operations. + such as: "CohInt", "Scope", etc + These class are found inside schainpy.model.proc and schainpy.model.graphics + ''' + procObj = VoltageProc() + + opObj = CohInt() + procObj.addOperation(opObj, 1) + + opObj = Scope() + procObj.addOperation(opObj, 2) + + return procObj + +def createObjSpec(): + ''' + This function creates a processing object "SpecProc" with some operation objects + such as: "IncohInt", "SpectraPlot", "RTIPlot", etc + These class are found inside schainpy.model.proc and schainpy.model.graphics + ''' + + procObj = SpectraProc() + + opObj = IncohInt() + procObj.addOperation(opObj, objId = 1) + + opObj = SpectraPlot() + procObj.addOperation(opObj, objId = 2) + + opObj = RTIPlot() + procObj.addOperation(opObj, objId = 3) + + opObj = SpectraPlot() + procObj.addOperation(opObj, objId = 4) + + opObj = RTIPlot() + procObj.addOperation(opObj, objId = 5) + + return procObj + +def processingSpec(procObj, dataInObj): + + procObj.setInput(dataInObj) + procObj.run(nFFTPoints = 16) + + procObj.call(opType = "external", + opId = 1, + n=1) + + procObj.call(opType = "external", + opId = 2, + id=191, +# zmin=-100, +# zmax=-40 + ) + + procObj.call(opType = "external", + opId = 3, + id=192, +# zmin=-100, +# zmax=-40, + timerange=10*60) + +def printSpeed(deltaTime, mySerial): + + #################### + size = len(mySerial)/1024. + vel = 1.0*size / deltaTime + + print "Index [", replayerObj.getProfileIndex(), "]: ", + print "Total time %5.2f ms, Data size %5.2f KB, Speed %5.2f MB/s" %(deltaTime, size, vel) + #################### + +if __name__ == '__main__': + + procObj = createObjSpec() + + replayerObj = zerorpc.Client() + replayerObj.connect("tcp://127.0.0.1:4242") + + serializer = replayerObj.getSerializer() + + ini = time.time() + mySerialMetadata = replayerObj.getSerialMetaData() + deltaTime = (time.time() - ini)*1024 + + printSpeed(deltaTime, mySerialMetadata) + + myMetaDict = serial2Dict(mySerialMetadata, + serializer = serializer) +# print myMetaDict + while True: + ini = time.time() + mySerialData = replayerObj.getSerialData() + deltaTime = (time.time() - ini)*1024 + + if not mySerialData: + print "No more data" + break + +# myDataDict = SERIALIZER.loads(mySerialData) +# print myDataDict +# continue + + printSpeed(deltaTime, mySerialData) + + dataInObj = serial2Obj(mySerialData, + metadataDict=myMetaDict, + serializer = serializer) + processingSpec(procObj, dataInObj) + sleep(1e-1) \ No newline at end of file diff --git a/schainpy/scripts/zerorpc_server.py b/schainpy/scripts/zerorpc_server.py new file mode 100644 index 0000000..ccbdbf2 --- /dev/null +++ b/schainpy/scripts/zerorpc_server.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python +''' +Created on Jul 11, 2014 + +@author: roj-idl71 +''' +# import sys +import datetime +import zerorpc + +import os, sys + +path = os.path.dirname(os.getcwd()) +path = os.path.join(path, 'source') +sys.path.insert(0, path) + +# from gevent import sleep + +from schainpy.model.io.jroIO_usrp_api import USRPReaderAPI +# from schainpy.serializer.DataTranslate import serial2Obj + +if __name__ == '__main__': + + replayerObj = USRPReaderAPI(serializer='msgpack') + + replayerObj.setup(path='../data/haystack/', + startDate=datetime.date(2000,1,1), + endDate=datetime.date(2016,1,1), + startTime=datetime.time(0,0,0), + endTime=datetime.time(23,59,59), + online=0, + nSamples=50, + buffer_size = 8, + channelList = [0]) + + replayerObj.start() + + print "\nInitializing 'zerorpc' server" + s = zerorpc.Server(replayerObj) + s.bind("tcp://0.0.0.0:4242") + s.run() + + print "End" \ No newline at end of file