##// 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 452 tmax = None
453 453
454 454 x = dataOut.getTimeRange1()
455 # y = dataOut.heightRange
455 456 y = dataOut.heightRange
456 457
457 458 z = dataOut.winds
@@ -1127,6 +1127,19 class WindProfiler(Operation):
1127 1127 def __init__(self):
1128 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 1143 def __calculateAngles(self, theta_x, theta_y, azimuth):
1131 1144
1132 1145 dir_cosw = numpy.sqrt(1-theta_x**2-theta_y**2)
@@ -1423,9 +1436,14 class WindProfiler(Operation):
1423 1436
1424 1437 if technique == 'DBS':
1425 1438
1439 if kwargs.has_key('dirCosx') and kwargs.has_key('dirCosy'):
1426 1440 theta_x = numpy.array(kwargs['dirCosx'])
1427 1441 theta_y = numpy.array(kwargs['dirCosy'])
1428 azimuth = kwargs['azimuth']
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 1447 if kwargs.has_key('horizontalOnly'):
1430 1448 horizontalOnly = kwargs['horizontalOnly']
1431 1449 else: horizontalOnly = False
@@ -111,7 +111,7 opObj21.addParameter(name='zmax', value='90', format='int')
111 111
112 112 opObj22 = procUnitConfObj2.addOperation(name='WindProfiler', optype='other')
113 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 115 opObj22.addParameter(name='correctFactor', value='-1', format='float')
116 116 opObj22.addParameter(name='dirCosx', value='0.041016, 0, -0.054688', format='floatlist')
117 117 opObj22.addParameter(name='dirCosy', value='-0.041016, 0.025391, -0.023438', format='floatlist')
@@ -19,8 +19,8 path = '/home/soporte/Data/AMISR'
19 19 figpath = os.path.join(os.environ['HOME'],'Pictures/amisr')
20 20
21 21 pathFigure = '/home/soporte/workspace/Graficos/DBS/amisr/'
22 xmin = '12.0'
23 xmax = '14.0'
22 xmin = '16.0'
23 xmax = '17.0'
24 24
25 25 readUnitConfObj = controllerObj.addReadUnit(datatype='AMISRReader',
26 26 path=path,
@@ -46,6 +46,12 opObj11 = procUnitAMISRBeam0.addOperation(name='ProfileToChannels', optype='othe
46 46
47 47 #Voltage Processing Unit
48 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 55 #Coherent Integration
50 56 opObj11 = procUnitConfObjBeam0.addOperation(name='CohInt', optype='other')
51 57 opObj11.addParameter(name='n', value='8', format='int')
@@ -53,6 +59,10 opObj11.addParameter(name='n', value='8', format='int')
53 59 procUnitConfObjSpectraBeam0 = controllerObj.addProcUnit(datatype='SpectraProc', inputId=procUnitConfObjBeam0.getId())
54 60 procUnitConfObjSpectraBeam0.addParameter(name='nFFTPoints', value=32, format='int')
55 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 66 #RemoveDc
57 67 opObj11 = procUnitConfObjSpectraBeam0.addOperation(name='removeDC')
58 68
@@ -67,19 +77,20 opObj11.addParameter(name='id', value='100', format='int')
67 77 opObj11.addParameter(name='wintitle', value='AMISR Beam 0', format='str')
68 78 opObj11.addParameter(name='zmin', value='30', format='int')
69 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 82 #RTIPlot
72 83 #title0 = 'RTI AMISR Beam 0'
73 #opObj11 = procUnitConfObjSpectraBeam0.addOperation(name='RTIPlot', optype='other')
74 #opObj11.addParameter(name='id', value='200', format='int')
84 opObj11 = procUnitConfObjSpectraBeam0.addOperation(name='RTIPlot', optype='other')
85 opObj11.addParameter(name='id', value='200', format='int')
75 86 #opObj11.addParameter(name='wintitle', value=title0, format='str')
76 #opObj11.addParameter(name='showprofile', value='0', format='int')
77 ##Setting RTI time using xmin,xmax
78 #opObj11.addParameter(name='xmin', value='15', format='int')
79 #opObj11.addParameter(name='xmax', value='23', format='int')
87 opObj11.addParameter(name='showprofile', value='0', format='int')
88 #Setting RTI time using xmin,xmax
89 opObj11.addParameter(name='xmin', value=xmin, format='float')
90 opObj11.addParameter(name='xmax', value=xmax, format='float')
80 91 #Setting dB range with zmin, zmax
81 #opObj11.addParameter(name='zmin', value='45', format='int')
82 #opObj11.addParameter(name='zmax', value='70', format='int')
92 opObj11.addParameter(name='zmin', value='45', format='int')
93 opObj11.addParameter(name='zmax', value='70', format='int')
83 94 #Save RTI
84 95 #figfile0 = 'amisr_rti_beam0.png'
85 96 #opObj11.addParameter(name='figpath', value=figpath, format='str')
@@ -89,20 +100,20 opObj11.addParameter(name='zmax', value='80', format='int')
89 100 procUnitConfObj2 = controllerObj.addProcUnit(datatype='ParametersProc', inputId=procUnitConfObjSpectraBeam0 .getId())
90 101 opObj20 = procUnitConfObj2.addOperation(name='GetMoments')
91 102
92 # opObj21 = procUnitConfObj2.addOperation(name='MomentsPlot', optype='other')
93 # opObj21.addParameter(name='id', value='3', format='int')
94 # opObj21.addParameter(name='wintitle', value='Moments Plot', format='str')
95 # opObj21.addParameter(name='save', value='1', format='bool')
96 # opObj21.addParameter(name='figpath', value=pathFigure, format='str')
97 # opObj21.addParameter(name='zmin', value='5', format='int')
98 # opObj21.addParameter(name='zmax', value='90', format='int')
103 opObj21 = procUnitConfObj2.addOperation(name='MomentsPlot', optype='other')
104 opObj21.addParameter(name='id', value='3', format='int')
105 opObj21.addParameter(name='wintitle', value='Moments Plot', format='str')
106 opObj21.addParameter(name='save', value='1', format='bool')
107 opObj21.addParameter(name='figpath', value=pathFigure, format='str')
108 opObj21.addParameter(name='zmin', value='30', format='int')
109 opObj21.addParameter(name='zmax', value='80', format='int')
99 110
100 111 opObj22 = procUnitConfObj2.addOperation(name='WindProfiler', optype='other')
101 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 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')
105 opObj22.addParameter(name='dirCosy', value=' 0,-0.96858316,0,0.96858316,0', format='floatlist')
115 opObj22.addParameter(name='azimuth', value='0,180,90,0,-90', format='floatlist')
116 opObj22.addParameter(name='elevation', value='74.53,75.60,75.60,90.0,75.60', format='floatlist')
106 117 # opObj22.addParameter(name='horizontalOnly', value='1', format='bool')
107 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 122 opObj23.addParameter(name='wintitle', value='Wind Profiler', format='str')
112 123 opObj23.addParameter(name='save', value='1', format='bool')
113 124 opObj23.addParameter(name='figpath', value = pathFigure, format='str')
114 opObj23.addParameter(name='zmin', value='-10', format='int')
115 opObj23.addParameter(name='zmax', value='10', format='int')
116 opObj23.addParameter(name='zmin_ver', value='-80', format='float')
117 opObj23.addParameter(name='zmax_ver', value='80', format='float')
125 opObj23.addParameter(name='zmin', value='-20', format='int')
126 opObj23.addParameter(name='zmax', value='20', format='int')
127 opObj23.addParameter(name='zmin_ver', value='-100', format='float')
128 opObj23.addParameter(name='zmax_ver', value='100', format='float')
118 129 opObj23.addParameter(name='SNRmin', value='-10', format='int')
119 130 opObj23.addParameter(name='SNRmax', value='60', format='int')
120 131 opObj23.addParameter(name='SNRthresh', value='0', format='float')
@@ -129,3 +140,7 controllerObj.readXml(filename)
129 140 controllerObj.createObjects()
130 141 controllerObj.connectObjects()
131 142 controllerObj.run()
143
144 #21 3 pm
145
146
General Comments 0
You need to be logged in to leave comments. Login now