##// END OF EJS Templates
Cambio en la lectura de archivos, se incluyó detección de cambio de experimento
Cambio en la lectura de archivos, se incluyó detección de cambio de experimento

File last commit:

r1370:81f892b894eb merge
r1373:fa4c334951aa
Show More
amisr_esf_proc_online_v3.py
233 lines | 11.0 KiB | text/x-python | PythonLexer
/ schainpy / scripts / amisr_esf_proc_online_v3.py
#!/usr/bin/env python
import os, sys
import time
import datetime
'''
ESF 10 BEAM ONLINE
'''
path = os.path.dirname(os.getcwd())
path = os.path.dirname(path)
sys.path.insert(0, path)
from schainpy.controller import Project
def main():
desc = "AMISR ESF 10 Beam Experiment"
filename = "amisr_esf_reader.xml"
#path = os.path.join(os.environ['HOME'],'amisr')
inPath = '/mnt/data_amisr'
#path= '/home/soporte/dataAMISR/'
#inPath= '/home/soporte/dataAMISR_test/'
outPath = '/home/soporte/Data/ESF'
remotefolder = "/home/wmaster/graficos"
xmin = '16'
xmax = '07'
xrange = (int(xmax)+24)-int(xmin)
dbmin = '60' #'60'#'55' #'40' #noise esf eej
dbmax = '75' #'70' #'55'
showSPC = '1' #view plot Spectra
showRTI = '1' #view plot RTI
showNOISE = '0' #view plot NOISE
# # 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'
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
localtime='0' #para ajustar el horario en las gráficas '0' para dejar en utc
dty = datetime.date.today() #ONLINE
str1 = dty + datetime.timedelta(days=1)
str2 = dty - datetime.timedelta(days=1)
today = dty.strftime("%Y/%m/%d")
tomorrow = str1.strftime("%Y/%m/%d")
yesterday = str2.strftime("%Y/%m/%d")
startDate=today
endDate=tomorrow
#startDate='2019/12/17'
#endDate='2019/12/18'
##.......................................................................................
##.......................................................................................
l = startDate.split('/') #adding day of the year to outPath
datelist = datetime.date(int(l[0]),int(l[1]),int(l[2]))
DOY = datelist.timetuple().tm_yday
outPath= outPath+"/ESF"+l[0]+str(DOY)
if os.path.exists(outPath):
print("outPath", outPath)
else :
os.mkdir(outPath)
print("Creating...", outPath)
##.......................................................................................
##.......................................................................................
controllerObj = Project()
controllerObj.setup(id = '191', name='esf_proc', description=desc)
##.......................................................................................
##.......................................................................................
readUnitConfObj = controllerObj.addReadUnit(datatype='AMISRReader',
path=inPath,
startDate=startDate,#'2016/07/12',
endDate=endDate,#'2016/07/13',
startTime='19:01:30',#'07:00:00',
endTime='07:00:00',#'15:00:00',
walk=0,
code = code,
nCode = nCode,
nBaud = nBaud,
timezone='lt',
online=1)
#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='int') #changed on Dec 3, 15:40h
#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')
##.......................................................................................
##.......................................................................................
#Spectra Unit Processing, getting spectras with nProfiles and nFFTPoints
procUnitConfObjSpectraBeam0 = controllerObj.addProcUnit(datatype='SpectraProc', inputId=procUnitConfObjBeam0.getId())
procUnitConfObjSpectraBeam0.addParameter(name='nFFTPoints', value=16, format='int')
#
opObj11 = procUnitConfObjSpectraBeam0.addOperation(name='IncohInt', optype='other')
opObj11.addParameter(name='n', value='60', format='int')
#opObj11.addParameter(name='timeInterval', value='30', format='int')
# # #RemoveDc
#opObj11 = procUnitConfObjSpectraBeam0.addOperation(name='removeDC')
##Noise Estimation
opObj11 = procUnitConfObjSpectraBeam0.addOperation(name='getNoise', optype='self')
opObj11.addParameter(name='minHei', value='100', format='int')
opObj11.addParameter(name='maxHei', value='280', format='int')
#opObj11.addParameter(name='minHei', value='15', format='int')
#opObj11.addParameter(name='maxHei', value='20', format='int')
#---
# opObj11 = procUnitConfObjSpectraBeam0.addOperation(name='selectChannels')
# opObj11.addParameter(name='channelList', value='7,8,9', format='intlist')
##.......................................................................................
##.......................................................................................
#SpectraPlot
opObj11 = procUnitConfObjSpectraBeam0.addOperation(name='SpectraPlot', optype='external')
opObj11.addParameter(name='id', value='1', format='int')
opObj11.addParameter(name='wintitle', value='ESF AMISR', format='str')
opObj11.addParameter(name='showprofile', value='1', format='int')
#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=outPath+'/plots', format='str')
# opObj11.addParameter(name='ftp', value='1', format='int')
# opObj11.addParameter(name='wr_period', value='2', format='int')
# opObj11.addParameter(name='exp_code', value='21', format='int')
# opObj11.addParameter(name='sub_exp_code', value='4', format='int')
# opObj11.addParameter(name='ftp_wei', value='0', format='int')
# opObj11.addParameter(name='plot_pos', value='0', format='int')
opObj11.addParameter(name='localtime', value=localtime,format='int')
opObj11.addParameter(name='show', value = showSPC, format='int')
opObj11.addParameter(name='colormap', value='jet', format='str')
#RTIPlot
#title0 = 'RTI AMISR Beam 0'
opObj11 = procUnitConfObjSpectraBeam0.addOperation(name='RTIPlot', optype='external')
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='int')
opObj11.addParameter(name='xrange', value=xrange,format='int')
opObj11.addParameter(name='zmin', value=dbmin, format='int')
opObj11.addParameter(name='zmax', value=dbmax, format='int')
opObj11.addParameter(name='save', value=outPath+'/plots', format='str')
#opObj11.addParameter(name='ftp', value='1', format='int')
#opObj11.addParameter(name='wr_period', value='2', format='int')
# opObj11.addParameter(name='exp_code', value='21', format='int')
# opObj11.addParameter(name='sub_exp_code', value='4', format='int')
# opObj11.addParameter(name='ftp_wei', value='0', format='int')
# opObj11.addParameter(name='plot_pos', value='0', format='int')
opObj11.addParameter(name='localtime', value=localtime,format='int')
opObj11.addParameter(name='show', value = showRTI, format='int')
opObj11.addParameter(name='colormap', value='jet', format='str')
# # #
# #Noise
#title0 = 'RTI AMISR Beam 0'
# opObj11 = procUnitConfObjSpectraBeam0.addOperation(name='NoisePlot', optype='external')
# 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='int')
# opObj11.addParameter(name='xmin', value=xmin, format='int')
# opObj11.addParameter(name='xrange', value='16',format='int')
# #opObj11.addParameter(name='ymin', value=dbmin, format='int')
# #opObj11.addParameter(name='ymax', value=dbmax, format='int')
# opObj11.addParameter(name='save', value=outPath+'/plots', format='str')
# opObj11.addParameter(name='show', value = showNOISE, format='int')
# opObj11.addParameter(name='localtime', value=localtime,format='int')
#
# #Generate *.pdata from AMISR data
# opObj11 = procUnitConfObjSpectraBeam0.addOperation(name='SpectraWriter', optype='external')
# opObj11.addParameter(name='path', value=outPath, format='str')
# opObj11.addParameter(name='blocksPerFile', value='10', format='int')
#
# ##.......................................................................................
# ##.......................................................................................
#
# #generate moments
# procUnitConfObj2 = controllerObj.addProcUnit(datatype='ParametersProc', inputId=procUnitConfObjSpectraBeam0.getId())
# opObj20 = procUnitConfObj2.addOperation(name='SpectralMoments', optype='other')
#
# opObj12 = procUnitConfObj2.addOperation(name='ParamWriter', optype='external')
# opObj12.addParameter(name='path', value=outPath)
# opObj12.addParameter(name='blocksPerFile', value='10', format='int')
# opObj12.addParameter(name='metadataList',value='type,inputUnit,heightList',format='list')
# opObj12.addParameter(name='dataList',value='moments,data_SNR,utctime',format='list')
# opObj12.addParameter(name='mode',value='1',format='int')
#
#----
# print "Escribiendo el archivo XML"
# controllerObj.writeXml(filename)
controllerObj.start()
# print "Leyendo el archivo XML"
# controllerObj.readXml(filename)
if __name__ == '__main__':
import time
start_time = time.time()
main()
print("--- %s seconds ---" % (time.time() - start_time))