##// END OF EJS Templates
Changes to meteor detection and phase correction because of relocation of antenna
Changes to meteor detection and phase correction because of relocation of antenna

File last commit:

r745:44a69f51bdb6
r819:c63b6bff3798
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