##// END OF EJS Templates
-Modifications to DBS module to accept azimuth and elevation angles as inputs....
Julio Valdez -
r503:ea980322a40d
parent child
Show More
@@ -452,6 +452,7 class WindProfilerPlot(Figure):
452 tmax = None
452 tmax = None
453
453
454 x = dataOut.getTimeRange1()
454 x = dataOut.getTimeRange1()
455 # y = dataOut.heightRange
455 y = dataOut.heightRange
456 y = dataOut.heightRange
456
457
457 z = dataOut.winds
458 z = dataOut.winds
@@ -1127,6 +1127,19 class WindProfiler(Operation):
1127 def __init__(self):
1127 def __init__(self):
1128 Operation.__init__(self)
1128 Operation.__init__(self)
1129
1129
1130 def __calculateCosDir(self, elev, azim):
1131 zen = (90 - elev)*numpy.pi/180
1132 azim = azim*numpy.pi/180
1133 cosDirX = numpy.sqrt((1-numpy.cos(zen)**2)/((1+numpy.tan(azim)**2)))
1134 cosDirY = numpy.sqrt(1-numpy.cos(zen)**2-cosDirX**2)
1135
1136 signX = numpy.sign(numpy.cos(azim))
1137 signY = numpy.sign(numpy.sin(azim))
1138
1139 cosDirX = numpy.copysign(cosDirX, signX)
1140 cosDirY = numpy.copysign(cosDirY, signY)
1141 return cosDirX, cosDirY
1142
1130 def __calculateAngles(self, theta_x, theta_y, azimuth):
1143 def __calculateAngles(self, theta_x, theta_y, azimuth):
1131
1144
1132 dir_cosw = numpy.sqrt(1-theta_x**2-theta_y**2)
1145 dir_cosw = numpy.sqrt(1-theta_x**2-theta_y**2)
@@ -1423,9 +1436,14 class WindProfiler(Operation):
1423
1436
1424 if technique == 'DBS':
1437 if technique == 'DBS':
1425
1438
1426 theta_x = numpy.array(kwargs['dirCosx'])
1439 if kwargs.has_key('dirCosx') and kwargs.has_key('dirCosy'):
1427 theta_y = numpy.array(kwargs['dirCosy'])
1440 theta_x = numpy.array(kwargs['dirCosx'])
1428 azimuth = kwargs['azimuth']
1441 theta_y = numpy.array(kwargs['dirCosy'])
1442 else:
1443 elev = numpy.array(kwargs['elevation'])
1444 azim = numpy.array(kwargs['azimuth'])
1445 theta_x, theta_y = self.__calculateCosDir(elev, azim)
1446 azimuth = kwargs['correctAzimuth']
1429 if kwargs.has_key('horizontalOnly'):
1447 if kwargs.has_key('horizontalOnly'):
1430 horizontalOnly = kwargs['horizontalOnly']
1448 horizontalOnly = kwargs['horizontalOnly']
1431 else: horizontalOnly = False
1449 else: horizontalOnly = False
@@ -111,7 +111,7 opObj21.addParameter(name='zmax', value='90', format='int')
111
111
112 opObj22 = procUnitConfObj2.addOperation(name='WindProfiler', optype='other')
112 opObj22 = procUnitConfObj2.addOperation(name='WindProfiler', optype='other')
113 opObj22.addParameter(name='technique', value='DBS', format='str')
113 opObj22.addParameter(name='technique', value='DBS', format='str')
114 opObj22.addParameter(name='azimuth', value='51.06', format='float')
114 opObj22.addParameter(name='correctAzimuth', value='51.06', format='float')
115 opObj22.addParameter(name='correctFactor', value='-1', format='float')
115 opObj22.addParameter(name='correctFactor', value='-1', format='float')
116 opObj22.addParameter(name='dirCosx', value='0.041016, 0, -0.054688', format='floatlist')
116 opObj22.addParameter(name='dirCosx', value='0.041016, 0, -0.054688', format='floatlist')
117 opObj22.addParameter(name='dirCosy', value='-0.041016, 0.025391, -0.023438', format='floatlist')
117 opObj22.addParameter(name='dirCosy', value='-0.041016, 0.025391, -0.023438', format='floatlist')
@@ -19,8 +19,8 path = '/home/soporte/Data/AMISR'
19 figpath = os.path.join(os.environ['HOME'],'Pictures/amisr')
19 figpath = os.path.join(os.environ['HOME'],'Pictures/amisr')
20
20
21 pathFigure = '/home/soporte/workspace/Graficos/DBS/amisr/'
21 pathFigure = '/home/soporte/workspace/Graficos/DBS/amisr/'
22 xmin = '12.0'
22 xmin = '16.0'
23 xmax = '14.0'
23 xmax = '17.0'
24
24
25 readUnitConfObj = controllerObj.addReadUnit(datatype='AMISRReader',
25 readUnitConfObj = controllerObj.addReadUnit(datatype='AMISRReader',
26 path=path,
26 path=path,
@@ -46,6 +46,12 opObj11 = procUnitAMISRBeam0.addOperation(name='ProfileToChannels', optype='othe
46
46
47 #Voltage Processing Unit
47 #Voltage Processing Unit
48 procUnitConfObjBeam0 = controllerObj.addProcUnit(datatype='VoltageProc', inputId=procUnitAMISRBeam0.getId())
48 procUnitConfObjBeam0 = controllerObj.addProcUnit(datatype='VoltageProc', inputId=procUnitAMISRBeam0.getId())
49 opObj10 = procUnitConfObjBeam0.addOperation(name='setRadarFrequency')
50 opObj10.addParameter(name='frequency', value='445e6', format='float')
51
52 opObj12 = procUnitConfObjBeam0.addOperation(name='selectHeights')
53 opObj12.addParameter(name='minHei', value='0', format='float')
54 opObj12.addParameter(name='maxHei', value='10', format='float')
49 #Coherent Integration
55 #Coherent Integration
50 opObj11 = procUnitConfObjBeam0.addOperation(name='CohInt', optype='other')
56 opObj11 = procUnitConfObjBeam0.addOperation(name='CohInt', optype='other')
51 opObj11.addParameter(name='n', value='8', format='int')
57 opObj11.addParameter(name='n', value='8', format='int')
@@ -53,6 +59,10 opObj11.addParameter(name='n', value='8', format='int')
53 procUnitConfObjSpectraBeam0 = controllerObj.addProcUnit(datatype='SpectraProc', inputId=procUnitConfObjBeam0.getId())
59 procUnitConfObjSpectraBeam0 = controllerObj.addProcUnit(datatype='SpectraProc', inputId=procUnitConfObjBeam0.getId())
54 procUnitConfObjSpectraBeam0.addParameter(name='nFFTPoints', value=32, format='int')
60 procUnitConfObjSpectraBeam0.addParameter(name='nFFTPoints', value=32, format='int')
55 procUnitConfObjSpectraBeam0.addParameter(name='nProfiles', value=32, format='int')
61 procUnitConfObjSpectraBeam0.addParameter(name='nProfiles', value=32, format='int')
62
63 opObj11 = procUnitConfObjSpectraBeam0.addOperation(name='IncohInt', optype='other')
64 opObj11.addParameter(name='n', value='16', format='int')
65
56 #RemoveDc
66 #RemoveDc
57 opObj11 = procUnitConfObjSpectraBeam0.addOperation(name='removeDC')
67 opObj11 = procUnitConfObjSpectraBeam0.addOperation(name='removeDC')
58
68
@@ -67,42 +77,43 opObj11.addParameter(name='id', value='100', format='int')
67 opObj11.addParameter(name='wintitle', value='AMISR Beam 0', format='str')
77 opObj11.addParameter(name='wintitle', value='AMISR Beam 0', format='str')
68 opObj11.addParameter(name='zmin', value='30', format='int')
78 opObj11.addParameter(name='zmin', value='30', format='int')
69 opObj11.addParameter(name='zmax', value='80', format='int')
79 opObj11.addParameter(name='zmax', value='80', format='int')
70
80 opObj11.addParameter(name='save', value='1', format='bool')
81 opObj11.addParameter(name='figpath', value = pathFigure, format='str')
71 #RTIPlot
82 #RTIPlot
72 #title0 = 'RTI AMISR Beam 0'
83 #title0 = 'RTI AMISR Beam 0'
73 #opObj11 = procUnitConfObjSpectraBeam0.addOperation(name='RTIPlot', optype='other')
84 opObj11 = procUnitConfObjSpectraBeam0.addOperation(name='RTIPlot', optype='other')
74 #opObj11.addParameter(name='id', value='200', format='int')
85 opObj11.addParameter(name='id', value='200', format='int')
75 #opObj11.addParameter(name='wintitle', value=title0, format='str')
86 # opObj11.addParameter(name='wintitle', value=title0, format='str')
76 #opObj11.addParameter(name='showprofile', value='0', format='int')
87 opObj11.addParameter(name='showprofile', value='0', format='int')
77 ##Setting RTI time using xmin,xmax
88 #Setting RTI time using xmin,xmax
78 #opObj11.addParameter(name='xmin', value='15', format='int')
89 opObj11.addParameter(name='xmin', value=xmin, format='float')
79 #opObj11.addParameter(name='xmax', value='23', format='int')
90 opObj11.addParameter(name='xmax', value=xmax, format='float')
80 #Setting dB range with zmin, zmax
91 # Setting dB range with zmin, zmax
81 #opObj11.addParameter(name='zmin', value='45', format='int')
92 opObj11.addParameter(name='zmin', value='45', format='int')
82 #opObj11.addParameter(name='zmax', value='70', format='int')
93 opObj11.addParameter(name='zmax', value='70', format='int')
83 #Save RTI
94 # Save RTI
84 #figfile0 = 'amisr_rti_beam0.png'
95 # figfile0 = 'amisr_rti_beam0.png'
85 #opObj11.addParameter(name='figpath', value=figpath, format='str')
96 # opObj11.addParameter(name='figpath', value=figpath, format='str')
86 #opObj11.addParameter(name='figfile', value=figfile0, format='str')
97 # opObj11.addParameter(name='figfile', value=figfile0, format='str')
87
98
88 #-----------------------------------------------------------------------------------------------
99 #-----------------------------------------------------------------------------------------------
89 procUnitConfObj2 = controllerObj.addProcUnit(datatype='ParametersProc', inputId=procUnitConfObjSpectraBeam0 .getId())
100 procUnitConfObj2 = controllerObj.addProcUnit(datatype='ParametersProc', inputId=procUnitConfObjSpectraBeam0 .getId())
90 opObj20 = procUnitConfObj2.addOperation(name='GetMoments')
101 opObj20 = procUnitConfObj2.addOperation(name='GetMoments')
91
102
92 # opObj21 = procUnitConfObj2.addOperation(name='MomentsPlot', optype='other')
103 opObj21 = procUnitConfObj2.addOperation(name='MomentsPlot', optype='other')
93 # opObj21.addParameter(name='id', value='3', format='int')
104 opObj21.addParameter(name='id', value='3', format='int')
94 # opObj21.addParameter(name='wintitle', value='Moments Plot', format='str')
105 opObj21.addParameter(name='wintitle', value='Moments Plot', format='str')
95 # opObj21.addParameter(name='save', value='1', format='bool')
106 opObj21.addParameter(name='save', value='1', format='bool')
96 # opObj21.addParameter(name='figpath', value=pathFigure, format='str')
107 opObj21.addParameter(name='figpath', value=pathFigure, format='str')
97 # opObj21.addParameter(name='zmin', value='5', format='int')
108 opObj21.addParameter(name='zmin', value='30', format='int')
98 # opObj21.addParameter(name='zmax', value='90', format='int')
109 opObj21.addParameter(name='zmax', value='80', format='int')
99
110
100 opObj22 = procUnitConfObj2.addOperation(name='WindProfiler', optype='other')
111 opObj22 = procUnitConfObj2.addOperation(name='WindProfiler', optype='other')
101 opObj22.addParameter(name='technique', value='DBS', format='str')
112 opObj22.addParameter(name='technique', value='DBS', format='str')
102 opObj22.addParameter(name='azimuth', value='51.06', format='float')
113 opObj22.addParameter(name='correctAzimuth', value='51.06', format='float')
103 opObj22.addParameter(name='correctFactor', value='-1', format='float')
114 opObj22.addParameter(name='correctFactor', value='-1', format='float')
104 opObj22.addParameter(name='dirCosx', value='9.63770247e-01, 5.93066547e-17, 1, 5.93066547e-17,-9.68583161e-01', format='floatlist')
115 opObj22.addParameter(name='azimuth', value='0,180,90,0,-90', format='floatlist')
105 opObj22.addParameter(name='dirCosy', value=' 0,-0.96858316,0,0.96858316,0', format='floatlist')
116 opObj22.addParameter(name='elevation', value='74.53,75.60,75.60,90.0,75.60', format='floatlist')
106 # opObj22.addParameter(name='horizontalOnly', value='1', format='bool')
117 # opObj22.addParameter(name='horizontalOnly', value='1', format='bool')
107 # opObj22.addParameter(name='channelList', value='1,2', format='intlist')
118 # opObj22.addParameter(name='channelList', value='1,2', format='intlist')
108
119
@@ -111,10 +122,10 opObj23.addParameter(name='id', value='4', format='int')
111 opObj23.addParameter(name='wintitle', value='Wind Profiler', format='str')
122 opObj23.addParameter(name='wintitle', value='Wind Profiler', format='str')
112 opObj23.addParameter(name='save', value='1', format='bool')
123 opObj23.addParameter(name='save', value='1', format='bool')
113 opObj23.addParameter(name='figpath', value = pathFigure, format='str')
124 opObj23.addParameter(name='figpath', value = pathFigure, format='str')
114 opObj23.addParameter(name='zmin', value='-10', format='int')
125 opObj23.addParameter(name='zmin', value='-20', format='int')
115 opObj23.addParameter(name='zmax', value='10', format='int')
126 opObj23.addParameter(name='zmax', value='20', format='int')
116 opObj23.addParameter(name='zmin_ver', value='-80', format='float')
127 opObj23.addParameter(name='zmin_ver', value='-100', format='float')
117 opObj23.addParameter(name='zmax_ver', value='80', format='float')
128 opObj23.addParameter(name='zmax_ver', value='100', format='float')
118 opObj23.addParameter(name='SNRmin', value='-10', format='int')
129 opObj23.addParameter(name='SNRmin', value='-10', format='int')
119 opObj23.addParameter(name='SNRmax', value='60', format='int')
130 opObj23.addParameter(name='SNRmax', value='60', format='int')
120 opObj23.addParameter(name='SNRthresh', value='0', format='float')
131 opObj23.addParameter(name='SNRthresh', value='0', format='float')
@@ -129,3 +140,7 controllerObj.readXml(filename)
129 controllerObj.createObjects()
140 controllerObj.createObjects()
130 controllerObj.connectObjects()
141 controllerObj.connectObjects()
131 controllerObj.run()
142 controllerObj.run()
143
144 #21 3 pm
145
146
General Comments 0
You need to be logged in to leave comments. Login now