@@ -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_ |
|
3979 | data_param[:,0,:] = dataOut.data_pow/(factor) | |
3977 |
data_param[:,1,:] = dataOut.data_ |
|
3980 | data_param[:,1,:] = dataOut.data_dop | |
3978 |
data_param[:,2,:] = dataOut.data_ |
|
3981 | data_param[:,2,:] = dataOut.data_width | |
3979 |
data_param[:,3,:] = dataOut.data_ |
|
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.data |
|
3990 | powa = dataOut.data_param[0,0,:] | |
3989 |
powb = dataOut.data |
|
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.data |
|
4005 | powa = dataOut.data_param[0,0,:] | |
4004 |
powb = dataOut.data |
|
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= |
|
4046 | factor=10.072 | |
4045 | else: |
|
4047 | else: | |
4046 |
factor= |
|
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