##// END OF EJS Templates
Add SkyMapPlotData, operation can access parent kwargs, fix server plot for multiple ReceiverData
Add SkyMapPlotData, operation can access parent kwargs, fix server plot for multiple ReceiverData

File last commit:

r745:44a69f51bdb6
r937:6cdcc42f2694
Show More
amisr_esf_proc_offline.py
197 lines | 8.4 KiB | text/x-python | PythonLexer
/ schainpy / scripts / amisr_esf_proc_offline.py
import os, sys
import time
import datetime
path = os.path.dirname(os.getcwd())
path = os.path.dirname(path)
sys.path.insert(0, path)
from schainpy.controller import Project
desc = "AMISR Experiment"
filename = "amisr_reader.xml"
controllerObj = Project()
controllerObj.setup(id = '191', name='esf_proc', description=desc)
path = os.path.join(os.environ['HOME'],'amisr')
# path = '/media/signalchain/HD-PXU2/AMISR_JULIA_MODE'
# path = '/media/soporte/E9F4-F053/AMISR/Data/NoiseTest/EEJ'
# path = '/media/soporte/E9F4-F053/AMISR/Data/ESF'
path = '/mnt/data_amisr'
#path = '/media/soporte/AMISR_104'
#figpath = os.path.join(os.environ['HOME'],'Pictures/amisr/test/proc/esf')
#figpath = '/media/soporte/E9F4-F053/AMISR/Data/JULIA/ESF'
figpath = '/home/soporte/Data/ESF'
remotefolder = "/home/wmaster/graficos"
xmin = '18'
xmax = '31'
dbmin = '60' #'60'#'55' #'40' #noise esf eej
dbmax = '75' #'70' #'55'
show = '0'
code = '1,-1,-1,-1,1,1,1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,1,-1,1,1,-1,1'
nCode = '1'
nBaud = '28'
nosamp = '2' # oversample
str = datetime.date.today()
str1 = str + datetime.timedelta(days=1)
str2 = str - datetime.timedelta(days=1)
today = str.strftime("%Y/%m/%d")
tomorrow = str1.strftime("%Y/%m/%d")
yesterday = str2.strftime("%Y/%m/%d")
readUnitConfObj = controllerObj.addReadUnit(datatype='AMISRReader',
path=path,
startDate=yesterday, #'2014/10/07',
endDate=today, #'2014/10/07',
startTime='18:01:30',#'07:00:00',
endTime='07:00:00',#'15:00:00',
walk=0,
code = code,
nCode = nCode,
nBaud = nBaud,
timezone='lt',
online=0)
#AMISR Processing Unit
#Voltage Processing Unit
procUnitConfObjBeam0 = controllerObj.addProcUnit(datatype='VoltageProc', inputId=readUnitConfObj.getId())
opObj10 = procUnitConfObjBeam0.addOperation(name='setRadarFrequency')
opObj10.addParameter(name='frequency', value='445e6', format='float') #chaned on Dec 3, 15:40h
#opObj10.addParameter(name='frequency', value='435e6', format='float')
# opObj12 = procUnitConfObjBeam0.addOperation(name='selectHeights')
# opObj12.addParameter(name='minHei', value='0', format='float')
# code = '1,1,-1,1,1,-1,1,-1,-1,1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,-1,1,1,1,1,-1,-1,-1'
# code = '1,1,0,1,1,0,1,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,1,1,1,0,0,0'
#Noise--> no code
opObj11 = procUnitConfObjBeam0.addOperation(name='Decoder', optype='other')
opObj11.addParameter(name='code', value=code, format='floatlist')
opObj11.addParameter(name='nCode', value=nCode, format='int')
opObj11.addParameter(name='nBaud', value=nBaud, format='int')
opObj11.addParameter(name='osamp', value=nosamp, format='int')
# opObj12 = procUnitConfObjBeam0.addOperation(name='selectHeights')
# opObj12.addParameter(name='minHei', value='50', format='float')
# opObj12.addParameter(name='maxHei', value='150', format='float')
#Coherent Integration
# opObj11 = procUnitConfObjBeam0.addOperation(name='CohInt', optype='other')
# opObj11.addParameter(name='n', value='2', format='int')
# opObj11 = procUnitConfObjBeam0.addOperation(name='Scope', optype='other')
# opObj11.addParameter(name='id', value='121', format='int')
#Spectra Unit Processing, getting spectras with nProfiles and nFFTPoints
procUnitConfObjSpectraBeam0 = controllerObj.addProcUnit(datatype='SpectraProc', inputId=procUnitConfObjBeam0.getId())
procUnitConfObjSpectraBeam0.addParameter(name='nFFTPoints', value=32, format='int')
#
opObj11 = procUnitConfObjSpectraBeam0.addOperation(name='IncohInt', optype='other')
opObj11.addParameter(name='n', value='60', format='int')
#opObj11.addParameter(name='timeInterval', value='30', format='float')
# # #RemoveDc
# # opObj11 = procUnitConfObjSpectraBeam0.addOperation(name='removeDC')
#Noise Estimation
opObj11 = procUnitConfObjSpectraBeam0.addOperation(name='getNoise')
opObj11.addParameter(name='minHei', value='650', format='float')
opObj11.addParameter(name='maxHei', value='800', format='float')
#opObj11.addParameter(name='minHei', value='15', format='float')
#opObj11.addParameter(name='maxHei', value='20', format='float')
# #SpectraPlot
# opObj11 = procUnitConfObjSpectraBeam0.addOperation(name='SpectraPlot', optype='other')
# opObj11.addParameter(name='id', value='1', format='int')
# opObj11.addParameter(name='wintitle', value='AMISR Beam 0', format='str')
# #opObj11.addParameter(name='zmin', value='38', format='int')
# opObj11.addParameter(name='zmin', value=dbmin, format='int')
# opObj11.addParameter(name='zmax', value=dbmax, format='int')
# opObj11.addParameter(name='save', value='1', format='bool')
# opObj11.addParameter(name='figpath', value = figpath, format='str')
# #RTIPlot
# #title0 = 'RTI AMISR Beam 0'
opObj11 = procUnitConfObjSpectraBeam0.addOperation(name='RTIPlot', optype='other')
opObj11.addParameter(name='id', value='2', format='int')
opObj11.addParameter(name='wintitle', value='ESF AMISR', format='str')
opObj11.addParameter(name='showprofile', value='0', format='int')
opObj11.addParameter(name='xmin', value=xmin, format='float')
opObj11.addParameter(name='xmax', value=xmax, format='float')
opObj11.addParameter(name='zmin', value=dbmin, format='int')
opObj11.addParameter(name='zmax', value=dbmax, format='int')
opObj11.addParameter(name='save', value='1', format='bool')
opObj11.addParameter(name='figpath', value = figpath+'/plots', format='str')
opObj11.addParameter(name='show', value = show, format='bool')
# # #
# # #
# #Noise
#title0 = 'RTI AMISR Beam 0'
opObj11 = procUnitConfObjSpectraBeam0.addOperation(name='Noise', optype='other')
opObj11.addParameter(name='id', value='3', format='int')
opObj11.addParameter(name='wintitle', value='ESF AMISR', format='str')
opObj11.addParameter(name='showprofile', value='0', format='int')
opObj11.addParameter(name='xmin', value=xmin, format='float')
opObj11.addParameter(name='xmax', value=xmax, format='float')
opObj11.addParameter(name='ymin', value=dbmin, format='int')
opObj11.addParameter(name='ymax', value=dbmax, format='int')
opObj11.addParameter(name='save', value='1', format='bool')
opObj11.addParameter(name='figpath', value = figpath+'/plots', format='str')
opObj11.addParameter(name='show', value = show, format='bool')
#Generate *.pdata from AMISR data
opObj11 = procUnitConfObjSpectraBeam0.addOperation(name='SpectraWriter', optype='other')
opObj11.addParameter(name='path', value=figpath)
opObj11.addParameter(name='blocksPerFile', value='10', format='int')
opObj11.addParameter(name='datatype', value="4", format="int") #size of data to be saved
#generate moments
procUnitConfObj2 = controllerObj.addProcUnit(datatype='ParametersProc', inputId=procUnitConfObjSpectraBeam0.getId())
opObj20 = procUnitConfObj2.addOperation(name='GetMoments')
opObj12 = procUnitConfObj2.addOperation(name='HDF5Writer', optype='other')
opObj12.addParameter(name='path', value=figpath+'/param')
opObj12.addParameter(name='blocksPerFile', value='10', format='int')
opObj12.addParameter(name='metadataList',value='type,inputUnit,heightList',format='list')
opObj12.addParameter(name='dataList',value='data_param,data_SNR,utctime',format='list')
opObj12.addParameter(name='mode',value='1',format='int')
# procUnitConfObj2 = controllerObj.addProcUnit(name='SendToServer')
# procUnitConfObj2.addParameter(name='server', value='jro-app.igp.gob.pe', format='str')
# procUnitConfObj2.addParameter(name='username', value='wmaster', format='str')
# procUnitConfObj2.addParameter(name='password', value='mst2010vhf', format='str')
# procUnitConfObj2.addParameter(name='localfolder', value=pathFigure, format='str')
# procUnitConfObj2.addParameter(name='remotefolder', value=remotefolder, format='str')
# procUnitConfObj2.addParameter(name='ext', value='.png', format='str')
# procUnitConfObj2.addParameter(name='period', value=5, format='int')
# procUnitConfObj2.addParameter(name='protocol', value='ftp', format='str')
#-----------------------------------------------------------------------------------------------
print "Escribiendo el archivo XML"
controllerObj.writeXml(filename)
print "Leyendo el archivo XML"
controllerObj.readXml(filename)
controllerObj.createObjects()
controllerObj.connectObjects()
controllerObj.run()
#21 3 pm