##// 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 1260 data = dataOut.data_pre[0]
1261 1261 absc = dataOut.abscissaList[:-1]
@@ -1264,7 +1264,7 class SpectralMoments(Operation):
1264 1264 data_param = numpy.zeros((nChannel, 4, data.shape[2]))
1265 1265
1266 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 1269 dataOut.moments = data_param[:,1:,:]
1270 1270 dataOut.data_snr = data_param[:,0]
@@ -1274,7 +1274,7 class SpectralMoments(Operation):
1274 1274 return dataOut
1275 1275
1276 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 1279 if (nicoh is None): nicoh = 1
1280 1280 if (graph is None): graph = 0
@@ -1347,11 +1347,14 class SpectralMoments(Operation):
1347 1347 snr = 1.e-20
1348 1348
1349 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 1355 vec_fd[ind] = fd
1352 vec_w[ind] = w
1356 vec_w[ind] = w
1353 1357 vec_snr[ind] = snr
1354
1355 1358 return numpy.vstack((vec_snr, vec_power, vec_fd, vec_w))
1356 1359
1357 1360 #------------------ Get SA Parameters --------------------------
@@ -3973,11 +3976,10 class WeatherRadar(Operation):
3973 3976 data_param[:,3,:] = dataOut.dataPP_SNR
3974 3977 if type == "Spectra":
3975 3978 factor = dataOut.normFactor
3976 data_param[:,0,:] = dataOut.data_POW/(factor)
3977 data_param[:,1,:] = dataOut.data_DOP
3978 data_param[:,2,:] = dataOut.data_WIDTH
3979 data_param[:,3,:] = dataOut.data_SNR
3980
3979 data_param[:,0,:] = dataOut.data_pow/(factor)
3980 data_param[:,1,:] = dataOut.data_dop
3981 data_param[:,2,:] = dataOut.data_width
3982 data_param[:,3,:] = dataOut.data_snr
3981 3983 return data_param
3982 3984
3983 3985 def getCoeficienteCorrelacionROhv_R(self,dataOut):
@@ -3985,8 +3987,8 class WeatherRadar(Operation):
3985 3987 nHeis = dataOut.nHeights
3986 3988 data_RhoHV_R = numpy.zeros((nHeis))
3987 3989 if type == "Voltage":
3988 powa = dataOut.dataPP_POWER[0]
3989 powb = dataOut.dataPP_POWER[1]
3990 powa = dataOut.data_param[0,0,:]
3991 powb = dataOut.data_param[1,0,:]
3990 3992 ccf = dataOut.dataPP_CCF
3991 3993 avgcoherenceComplex = ccf / numpy.sqrt(powa * powb)
3992 3994 data_RhoHV_R = numpy.abs(avgcoherenceComplex)
@@ -4000,8 +4002,8 class WeatherRadar(Operation):
4000 4002 nHeis = dataOut.nHeights
4001 4003 data_PhiD_P = numpy.zeros((nHeis))
4002 4004 if type == "Voltage":
4003 powa = dataOut.dataPP_POWER[0]
4004 powb = dataOut.dataPP_POWER[1]
4005 powa = dataOut.data_param[0,0,:]
4006 powb = dataOut.data_param[1,0,:]
4005 4007 ccf = dataOut.dataPP_CCF
4006 4008 avgcoherenceComplex = ccf / numpy.sqrt(powa * powb)
4007 4009 if phase:
@@ -4041,9 +4043,9 class WeatherRadar(Operation):
4041 4043 #print("Pr last10",10*numpy.log10(Pr[0,-20:]))
4042 4044 #print("LCTE",10*numpy.log10(self.lambda_**4/( numpy.pi**5 * self.Km**2)))
4043 4045 if self.Pt<0.3:
4044 factor=-31
4046 factor=10.072
4045 4047 else:
4046 factor=-18
4048 factor=23.072
4047 4049
4048 4050 dBZeh = 10*numpy.log10(Zeh) + factor
4049 4051 if type=='N':
General Comments 0
You need to be logged in to leave comments. Login now