##// END OF EJS Templates
update WeatherRadar
avaldezp -
r1508:6520a1ac8270
parent child
Show More
@@ -1255,7 +1255,7 class SpectralMoments(Operation):
1255
1255
1256 '''
1256 '''
1257
1257
1258 def run(self, dataOut):
1258 def run(self, dataOut,wradar=False):
1259
1259
1260 data = dataOut.data_pre[0]
1260 data = dataOut.data_pre[0]
1261 absc = dataOut.abscissaList[:-1]
1261 absc = dataOut.abscissaList[:-1]
@@ -1264,7 +1264,7 class SpectralMoments(Operation):
1264 data_param = numpy.zeros((nChannel, 4, data.shape[2]))
1264 data_param = numpy.zeros((nChannel, 4, data.shape[2]))
1265
1265
1266 for ind in range(nChannel):
1266 for ind in range(nChannel):
1267 data_param[ind,:,:] = self.__calculateMoments( data[ind,:,:] , absc , noise[ind] )
1267 data_param[ind,:,:] = self.__calculateMoments( data[ind,:,:] , absc , noise[ind],wradar=wradar )
1268
1268
1269 dataOut.moments = data_param[:,1:,:]
1269 dataOut.moments = data_param[:,1:,:]
1270 dataOut.data_snr = data_param[:,0]
1270 dataOut.data_snr = data_param[:,0]
@@ -1274,7 +1274,7 class SpectralMoments(Operation):
1274 return dataOut
1274 return dataOut
1275
1275
1276 def __calculateMoments(self, oldspec, oldfreq, n0,
1276 def __calculateMoments(self, oldspec, oldfreq, n0,
1277 nicoh = None, graph = None, smooth = None, type1 = None, fwindow = None, snrth = None, dc = None, aliasing = None, oldfd = None, wwauto = None):
1277 nicoh = None, graph = None, smooth = None, type1 = None, fwindow = None, snrth = None, dc = None, aliasing = None, oldfd = None, wwauto = None,wradar=None):
1278
1278
1279 if (nicoh is None): nicoh = 1
1279 if (nicoh is None): nicoh = 1
1280 if (graph is None): graph = 0
1280 if (graph is None): graph = 0
@@ -1347,11 +1347,14 class SpectralMoments(Operation):
1347 snr = 1.e-20
1347 snr = 1.e-20
1348
1348
1349 # vec_power[ind] = power #D. ScipiΓ³n replaced with the line below
1349 # vec_power[ind] = power #D. ScipiΓ³n replaced with the line below
1350 vec_power[ind] = total_power
1350 if wradar ==False:
1351 vec_power[ind] = total_power
1352 else:
1353 vec_power[ind] = signal_power
1354
1351 vec_fd[ind] = fd
1355 vec_fd[ind] = fd
1352 vec_w[ind] = w
1356 vec_w[ind] = w
1353 vec_snr[ind] = snr
1357 vec_snr[ind] = snr
1354
1355 return numpy.vstack((vec_snr, vec_power, vec_fd, vec_w))
1358 return numpy.vstack((vec_snr, vec_power, vec_fd, vec_w))
1356
1359
1357 #------------------ Get SA Parameters --------------------------
1360 #------------------ Get SA Parameters --------------------------
@@ -3973,11 +3976,10 class WeatherRadar(Operation):
3973 data_param[:,3,:] = dataOut.dataPP_SNR
3976 data_param[:,3,:] = dataOut.dataPP_SNR
3974 if type == "Spectra":
3977 if type == "Spectra":
3975 factor = dataOut.normFactor
3978 factor = dataOut.normFactor
3976 data_param[:,0,:] = dataOut.data_POW/(factor)
3979 data_param[:,0,:] = dataOut.data_pow/(factor)
3977 data_param[:,1,:] = dataOut.data_DOP
3980 data_param[:,1,:] = dataOut.data_dop
3978 data_param[:,2,:] = dataOut.data_WIDTH
3981 data_param[:,2,:] = dataOut.data_width
3979 data_param[:,3,:] = dataOut.data_SNR
3982 data_param[:,3,:] = dataOut.data_snr
3980
3981 return data_param
3983 return data_param
3982
3984
3983 def getCoeficienteCorrelacionROhv_R(self,dataOut):
3985 def getCoeficienteCorrelacionROhv_R(self,dataOut):
@@ -3985,8 +3987,8 class WeatherRadar(Operation):
3985 nHeis = dataOut.nHeights
3987 nHeis = dataOut.nHeights
3986 data_RhoHV_R = numpy.zeros((nHeis))
3988 data_RhoHV_R = numpy.zeros((nHeis))
3987 if type == "Voltage":
3989 if type == "Voltage":
3988 powa = dataOut.dataPP_POWER[0]
3990 powa = dataOut.data_param[0,0,:]
3989 powb = dataOut.dataPP_POWER[1]
3991 powb = dataOut.data_param[1,0,:]
3990 ccf = dataOut.dataPP_CCF
3992 ccf = dataOut.dataPP_CCF
3991 avgcoherenceComplex = ccf / numpy.sqrt(powa * powb)
3993 avgcoherenceComplex = ccf / numpy.sqrt(powa * powb)
3992 data_RhoHV_R = numpy.abs(avgcoherenceComplex)
3994 data_RhoHV_R = numpy.abs(avgcoherenceComplex)
@@ -4000,8 +4002,8 class WeatherRadar(Operation):
4000 nHeis = dataOut.nHeights
4002 nHeis = dataOut.nHeights
4001 data_PhiD_P = numpy.zeros((nHeis))
4003 data_PhiD_P = numpy.zeros((nHeis))
4002 if type == "Voltage":
4004 if type == "Voltage":
4003 powa = dataOut.dataPP_POWER[0]
4005 powa = dataOut.data_param[0,0,:]
4004 powb = dataOut.dataPP_POWER[1]
4006 powb = dataOut.data_param[1,0,:]
4005 ccf = dataOut.dataPP_CCF
4007 ccf = dataOut.dataPP_CCF
4006 avgcoherenceComplex = ccf / numpy.sqrt(powa * powb)
4008 avgcoherenceComplex = ccf / numpy.sqrt(powa * powb)
4007 if phase:
4009 if phase:
@@ -4041,9 +4043,9 class WeatherRadar(Operation):
4041 #print("Pr last10",10*numpy.log10(Pr[0,-20:]))
4043 #print("Pr last10",10*numpy.log10(Pr[0,-20:]))
4042 #print("LCTE",10*numpy.log10(self.lambda_**4/( numpy.pi**5 * self.Km**2)))
4044 #print("LCTE",10*numpy.log10(self.lambda_**4/( numpy.pi**5 * self.Km**2)))
4043 if self.Pt<0.3:
4045 if self.Pt<0.3:
4044 factor=-31
4046 factor=10.072
4045 else:
4047 else:
4046 factor=-18
4048 factor=23.072
4047
4049
4048 dBZeh = 10*numpy.log10(Zeh) + factor
4050 dBZeh = 10*numpy.log10(Zeh) + factor
4049 if type=='N':
4051 if type=='N':
General Comments 0
You need to be logged in to leave comments. Login now