From f15cf5631d3c3003971d98a23121e709ca7bc48c 2017-08-31 22:53:02 From: Juan C. Espinoza Date: 2017-08-31 22:53:02 Subject: [PATCH] BLTR ok --- diff --git a/schainpy/model/data/jrodata.py b/schainpy/model/data/jrodata.py index f316790..73bf497 100644 --- a/schainpy/model/data/jrodata.py +++ b/schainpy/model/data/jrodata.py @@ -1201,7 +1201,7 @@ class Parameters(Spectra): time1 = self.utctimeInit - self.timeZone*60 else: time1 = self.utctimeInit - print 'interval',interval + datatime.append(time1) datatime.append(time1 + interval) datatime = numpy.array(datatime) diff --git a/schainpy/model/data/jrodata.pyc b/schainpy/model/data/jrodata.pyc index 69da734985aea1ca9d8a4ba00ae348c46365f8cd..9cbc4c4fec7415c5633db87a2e73eea9ed5481a2 100644 GIT binary patch delta 88 zc%0k&lyU7-Mt0`Uyj=N?OE$9WYo;5_2Yh%_-p%017ZLu`zKniZgLCZLZAyz{JR~IjbO;2>_n)7+nAW delta 105 zc${1NlyUDx}A12HG#=FHp=OpJ`1qY8qV E03Ajeng9R* diff --git a/schainpy/model/graphics/jroplot_parameters.py b/schainpy/model/graphics/jroplot_parameters.py index 6194c16..b18b6a7 100644 --- a/schainpy/model/graphics/jroplot_parameters.py +++ b/schainpy/model/graphics/jroplot_parameters.py @@ -658,13 +658,8 @@ class WindProfilerPlot(Figure): # tmax = None x = dataOut.getTimeRange1(dataOut.paramInterval) - y = dataOut.heightList - z = dataOut.data_output.copy() - print ' ' - print 'Xvel',z[0] - print ' ' - print 'Yvel',z[1] - print ' ' + y = dataOut.heightList + z = dataOut.data_output.copy() nplots = z.shape[0] #Number of wind dimensions estimated nplotsw = nplots diff --git a/schainpy/model/graphics/jroplot_parameters.pyc b/schainpy/model/graphics/jroplot_parameters.pyc index 2d9cd01a01aaedd9667cdf72ad82998927cbd5fa..eaf42211c6c62c0fafb3482e09a6c8f5ce0ae1cb 100644 GIT binary patch delta 2729 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 diff --git a/schainpy/model/io/__init__.pyc b/schainpy/model/io/__init__.pyc index 6df1d42be95a2f4faa920602ba350cd47082a59f..a8a3f768dd6a114b649557b749c93291f0c66f6c 100644 GIT binary patch delta 100 zc${0ra)3pe`7NF*ZwY?>2& delta 72 zc$_=HvWP{R`7E!v5$qZ1y1jG(NT%0#iI&b3SR7UQJKc`P##MmMs0u*Iq;$j3t HCIkrpTh$F> diff --git a/schainpy/model/io/bltrIO_param.py b/schainpy/model/io/bltrIO_param.py index 629e8c0..676b275 100644 --- a/schainpy/model/io/bltrIO_param.py +++ b/schainpy/model/io/bltrIO_param.py @@ -10,6 +10,7 @@ import sys import time import glob import datetime + import numpy from schainpy.model.proc.jroproc_base import ProcessingUnit @@ -241,7 +242,7 @@ class BLTRParamReader(JRODataReader, ProcessingUnit): self.buffer = numpy.empty((self.nmodes, 3, self.nranges)) for mode in range(self.nmodes): - self.readHeader() + self.readHeader() data = self.readData() self.height[mode] = (data[0] - self.correction) / 1000. self.buffer[mode] = data[1] @@ -272,14 +273,14 @@ class BLTRParamReader(JRODataReader, ProcessingUnit): self.imode = self.header_rec['dmode_index'][0] self.antenna = self.header_rec['antenna_coord'] self.rx_gains = self.header_rec['rx_gains'] - self.time1 = self.header_rec['time'][0] + self.time = self.header_rec['time'][0] tseconds = self.header_rec['time'][0] local_t1 = time.localtime(tseconds) self.year = local_t1.tm_year self.month = local_t1.tm_mon self.day = local_t1.tm_mday self.t = datetime.datetime(self.year, self.month, self.day) - self.datatime = datetime.datetime.utcfromtimestamp(self.time1) + self.datatime = datetime.datetime.utcfromtimestamp(self.time) def readData(self): ''' @@ -306,7 +307,7 @@ class BLTRParamReader(JRODataReader, ProcessingUnit): winds = numpy.array((data['zonal'], data['meridional'], data['vertical'])) snr = data['rx_snr'].T - winds[numpy.where(winds == -9999.)] = numpy.nan + winds[numpy.where(winds == -9999.)] = numpy.nan winds[:, numpy.where(data['status'] != self.status_value)] = numpy.nan snr[numpy.where(snr == -9999.)] = numpy.nan snr[:, numpy.where(data['status'] != self.status_value)] = numpy.nan @@ -318,12 +319,11 @@ class BLTRParamReader(JRODataReader, ProcessingUnit): ''' Storing data from databuffer to dataOut object ''' - - self.dataOut.time1 = self.time1 + self.dataOut.data_SNR = self.snr - self.dataOut.height= self.height + self.dataOut.height = self.height self.dataOut.data_output = self.buffer - self.dataOut.utctimeInit = self.time1 + self.dataOut.utctimeInit = self.time self.dataOut.utctime = self.dataOut.utctimeInit self.dataOut.counter_records = self.counter_records self.dataOut.nrecords = self.nrecords @@ -334,7 +334,7 @@ class BLTRParamReader(JRODataReader, ProcessingUnit): self.dataOut.nrecords = self.nrecords self.dataOut.sizeOfFile = self.sizeOfFile self.dataOut.lat = self.lat - self.dataOut.lon = self.lon + self.dataOut.lon = self.lon self.dataOut.channelList = range(self.nchannels) self.dataOut.kchan = self.kchan # self.dataOut.nHeights = self.nranges @@ -355,7 +355,7 @@ class BLTRParamReader(JRODataReader, ProcessingUnit): print 'No file left to process' return 0 - if not(self.readNextBlock()): + if not self.readNextBlock(): self.dataOut.flagNoData = True return 0 diff --git a/schainpy/model/io/io_bltr_block.pyc b/schainpy/model/io/io_bltr_block.pyc deleted file mode 100644 index 93fad43b2dcd5805b8f37a01372f5a1589afb2d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 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 HO_u);*=R9o diff --git a/schainpy/model/proc/__init__.py b/schainpy/model/proc/__init__.py index d7f53e6..af598f5 100644 --- a/schainpy/model/proc/__init__.py +++ b/schainpy/model/proc/__init__.py @@ -12,5 +12,4 @@ from jroproc_correlation import * from jroproc_parameters import * from jroproc_spectra_lags import * from jroproc_spectra_acf import * -from jroproc_bltr import * - +from bltrproc_parameters import * diff --git a/schainpy/model/proc/__init__.pyc b/schainpy/model/proc/__init__.pyc index 8f1ca2e3fb7dcce858147d897acd53bb65964c39..98262a246b14021048e72a9076c94a249a3e98eb 100644 GIT binary patch delta 104 zc%0k7a)m{j`7= limit_sec1) - t2 = numpy.where(self.dataOut.time[0, :] < limit_sec2) - time_select = [] - for val_sec in t1[0]: - if val_sec in t2[0]: - time_select.append(val_sec) - - time_select = numpy.array(time_select, dtype='int') - valid_data = valid_data + len(time_select) - - - if len(time_select) > 0: - self.f_timesec = self.dataOut.time[:, time_select] - snr = self.dataOut.data_SNR[time_select, :, :, :] - zon = self.dataOut.data_output[0][time_select, :, :] - mer = self.dataOut.data_output[1][time_select, :, :] - ver = self.dataOut.data_output[2][time_select, :, :] - - if valid_data > 0: - self.timesec1 = self.f_timesec[0, :] - self.f_height = self.dataOut.height - self.f_zon = zon - self.f_mer = mer - self.f_ver = ver - self.f_snr = snr - self.f_timedate = [] - self.f_time = [] - - for valuet in self.timesec1: - time_t = time.gmtime(valuet) - year = time_t.tm_year - month = time_t.tm_mon - day = time_t.tm_mday - hour = time_t.tm_hour - minute = time_t.tm_min - second = time_t.tm_sec - f_timedate_0 = datetime.datetime(year, month, day, hour, minute, second) - self.f_timedate.append(f_timedate_0) - - return self.f_timedate, self.f_timesec, self.f_height, self.f_zon, self.f_mer, self.f_ver, self.f_snr - - else: - self.f_timesec = None - self.f_timedate = None - self.f_height = None - self.f_zon = None - self.f_mer = None - self.f_ver = None - self.f_snr = None - print 'Invalid time' - - return self.f_timedate, self.f_height, self.f_zon, self.f_mer, self.f_ver, self.f_snr - - def SnrFilter(self, snr_val,modetofilter): + if snr_threshold is not None: + SNRavg = numpy.average(self.dataOut.data_SNR, axis=0) + SNRavgdB = 10*numpy.log10(SNRavg) + for i in range(3): + self.dataOut.data_output[i][SNRavgdB <= snr_threshold] = numpy.nan + +# TODO +class OutliersFilter(Operation): + + def __init__(self, **kwargs): ''' - Inputs: snr_val - Threshold value - ''' - if modetofilter!=2 and modetofilter!=1 : - raise ValueError,'Mode to filter should be "1" or "2". {} is not valid, check "Modetofilter" value.'.format(modetofilter) - m = modetofilter-1 - - print ' SNR filter [mode {}]: SNR <= {}: data_output = NA'.format(modetofilter,snr_val) - for k in range(self.dataOut.nchannels): - for r in range(self.dataOut.nranges): - if self.dataOut.data_SNR[r,k,m] <= snr_val: - self.dataOut.data_output[2][r,m] = numpy.nan - self.dataOut.data_output[1][r,m] = numpy.nan - self.dataOut.data_output[0][r,m] = numpy.nan - + Operation.__init__(self, **kwargs) - - def OutliersFilter(self,modetofilter,svalue,svalue2,method,factor,filter,npoints): + def run(self, svalue2, method, factor, filter, npoints=9): ''' Inputs: svalue - string to select array velocity svalue2 - string to choose axis filtering method - 0 for SMOOTH or 1 for MEDIAN - factor - number used to set threshold + factor - number used to set threshold filter - 1 for data filtering using the standard deviation criteria else 0 npoints - number of points for mask filter - - ''' - if modetofilter!=2 and modetofilter!=1 : - raise ValueError,'Mode to filter should be "1" or "2". {} is not valid, check "Modetofilter" value.'.format(modetofilter) - - m = modetofilter-1 - - print ' Outliers Filter [mode {}]: {} {} / threshold = {}'.format(modetofilter,svalue,svalue,factor) - - npoints = 9 - novalid = 0.1 - if svalue == 'zonal': - value = self.dataOut.data_output[0] - - elif svalue == 'meridional': - value = self.dataOut.data_output[1] - - elif svalue == 'vertical': - value = self.dataOut.data_output[2] - - else: - print 'value is not defined' - return + ''' + + print ' Outliers Filter {} {} / threshold = {}'.format(svalue, svalue, factor) + - if svalue2 == 'inTime': - yaxis = self.dataOut.height - xaxis = numpy.array([[self.dataOut.time1],[self.dataOut.time1]]) - - elif svalue2 == 'inHeight': - yaxis = numpy.array([[self.dataOut.time1],[self.dataOut.time1]]) - xaxis = self.dataOut.height - - else: - print 'svalue2 is required, either inHeight or inTime' - return + yaxis = self.dataOut.heightList + xaxis = numpy.array([[self.dataOut.utctime]]) - output_array = value + # Zonal + value_temp = self.dataOut.data_output[0] - value_temp = value[:,m] - error = numpy.zeros(len(self.dataOut.time[m,:])) - if svalue2 == 'inHeight': - value_temp = numpy.transpose(value_temp) - error = numpy.zeros(len(self.dataOut.height)) + # Zonal + value_temp = self.dataOut.data_output[1] - htemp = yaxis[m,:] + # Vertical + value_temp = numpy.transpose(self.dataOut.data_output[2]) + + htemp = yaxis std = value_temp for h in range(len(htemp)): - if filter: #standard deviation filtering - std[h] = numpy.std(value_temp[h],ddof = npoints) - value_temp[numpy.where(std[h] > 5),h] = numpy.nan - error[numpy.where(std[h] > 5)] = error[numpy.where(std[h] > 5)] + 1 - - nvalues_valid = len(numpy.where(numpy.isfinite(value_temp[h]))[0]) - minvalid = novalid*len(xaxis[m,:]) - if minvalid <= npoints: - minvalid = npoints + minvalid = npoints #only if valid values greater than the minimum required (10%) if nvalues_valid > minvalid: @@ -491,74 +388,6 @@ class BLTRParametersProc(ProcessingUnit): return startDTList, data_fHeigths_List, data_fZonal_List, data_fMeridional_List, data_fVertical_List - - - def prePlot(self,modeselect=None): - ''' - Inputs: - - self.dataOut.data_output - Zonal, Meridional and Vertical velocity array - self.dataOut.height - height array - self.dataOut.time - Time array (seconds) - self.dataOut.data_SNR - SNR array - - ''' - - m = modeselect -1 - - print ' [Plotting mode {}]'.format(modeselect) - if not (m ==1 or m==0): - raise IndexError("'Mode' must be egual to : 1 or 2") -# - if self.flagfirstmode==0: - #copy of the data - self.data_output_copy = self.dataOut.data_output.copy() - self.data_height_copy = self.dataOut.height.copy() - self.data_time_copy = self.dataOut.time.copy() - self.data_SNR_copy = self.dataOut.data_SNR.copy() - self.flagfirstmode = 1 - - else: - self.dataOut.data_output = self.data_output_copy - self.dataOut.height = self.data_height_copy - self.dataOut.time = self.data_time_copy - self.dataOut.data_SNR = self.data_SNR_copy - self.flagfirstmode = 0 - - - #select data for mode m - #self.dataOut.data_output = self.dataOut.data_output[:,:,m] - self.dataOut.heightList = self.dataOut.height[0,:] - - data_SNR = self.dataOut.data_SNR[:,:,m] - self.dataOut.data_SNR= transpose(data_SNR) - - if m==1 and self.dataOut.counter_records%2==0: - print '*********' - print 'MODO 2' - #print 'Zonal', self.dataOut.data_output[0] - #print 'Meridional', self.dataOut.data_output[1] - #print 'Vertical', self.dataOut.data_output[2] - - print '*********' - - Vx=self.dataOut.data_output[0,:,m] - Vy=self.dataOut.data_output[1,:,m] - - Vmag=numpy.sqrt(Vx**2+Vy**2) - Vang=numpy.arctan2(Vy,Vx) - #print 'Vmag', Vmag - #print 'Vang', Vang - - self.dataOut.data_output[0,:,m]=Vmag - self.dataOut.data_output[1,:,m]=Vang - - prin= self.dataOut.data_output[0,:,m][~numpy.isnan(self.dataOut.data_output[0,:,m])] - print ' ' - print 'VmagAverage',numpy.mean(prin) - print ' ' - self.dataOut.data_output = self.dataOut.data_output[:,:,m] - \ No newline at end of file diff --git a/schainpy/model/proc/jroproc_base.pyc b/schainpy/model/proc/jroproc_base.pyc index c39d0e35de47f5247f0c67cdc99a492d807e6c51..626e3f46a9fe01b491fb55cf9692cc73efb69eb7 100644 GIT binary patch delta 16 Xc%1td@-2j&`7J(Mg7wnR#zZP}KY*iPhIBT@08BQ^ARFc8iGa7f^Q zI_E$l9Wd#HP9|-dr_5xMO!D06OPWp}+UBL1Xu`wam^W6QYXikdO5wU)Rz!~9b&6a~JL9%U7;uv#(Y(F=IN?eIC)z95{*U^0s?Z@Y^j7>^Bfj#gnrntar6}gc~Vadp(L49OKKz3wCL2qO- z!W{#xKcu}J1Cfc4M7|F#&>5gCgT{rkR?1h7?^Px>9^c3Q3D1 zqEoq?z#MihPE|h1DbH;;&FKiIqnu_q&0+~?o>IGp!J=odYqtJ*JJ{;P(KUOu9eBM; z`sw9;kZQGr&2oCQEth@To^sg%(c=-EXQK42P8=tJO?}1Vl&Li<^_m|>ajWfmd}J6N zdCeN{{^o;9SdX}U6olpbm1dlxJpJu>s+P0Mj7;0#XuF)PRjP42R9U}Cr-G4#t+pS; zQ4I1%wC|m$ta?J94}3Rnl&}^~qU)4gYP4J4r429I@`LsVl}iuW;byc|sd|^9YNO%@ z`p?$RCCtBhX^RffrH!zSzva8lI9%G=aWL{_^f-rpQJ z!5dDSv}uX3#5I=KNNCU=9f5#(#aan1SDD_Wq`5sH`r851G~U_roKZvJYI|#kZ-O&s zR{ZN-c8rr0b^`PlVMHOP)G9%SQM1aA66#E=wMr~bXA&lp6nhEANoh{EC*<6&{FKcS zXf}JG8w+&W7{PVg7{yg0iqiGbmDWII5;vM|lkPr)J4KvlW6ac~fk2m?zTdD!%@Xt7 zgxE}RCj?yuTC84HJArojgQTW4O_@HYnfVn&m#0%M ziY^aVo)O&%&diD~FR46-eL-g4WR8mM54oQyasB-rv76^(b4+yeypcq%NwINU>>lCF z39&oHnUi97nlq=wZh#5SdGnOz^>&eDKZ)!r|?JZC+7-mU#kAzeO4buV<*JpuB-)P{28B+Q+JWyv)?WdXk*7l~ z(42{jMdB|=kzmzAl|hDdPXSTWMK`f?5;Hx8#5Sj+w>Vl^N0W&LXwz2ah6q@`{3HZ0 zsPHb0pf20n==&~fATP)_WsyE9{sE?NHmho_+etX}cZTrc zP1sJd>DIpq@?keY4%`H(Zo;U!3F0owzdr!B6u89TEQ9}e04x=l%~u*NC)VhIyW@;!NsULE@tC09#U)cUBcd*c@^!x6 zr1k}0z!h;PxQFZVv09CZ{y;gNOx{c;E1)5g9h<`!s_Q7Ld87`a>rtFC-B>Bm1`kMk zOli{G`ZM|)p3xZeKY$MQ!aPT{!v2gM=oFgY1k}Fmf0uMb(Q;C^x&Hn?NT`9Nz<<+1 z$K$MLPKkMU66!uF>`L)l0dN99Wb#@aoOh2vwWW@z0477K=ELFhw5_v`gsud9`4kZ8 zq?v}ACXNhNI1P;-^Upnuas{Zb1xy=^^ka)MR0Eo@)(Rc`my#GR^#;P8OXx8`N7Ch| zdP|>XOQ)cWvcw!I!{~(F7ijq9!G==@8tw^8H_-$w4lk^zX%7-(1hR={pik2UDv(0G zpU_2U))tOVeed)S(tjrQ9V9Gj0tUvuqq@?+wwII2{^;G@mEf}j z*Y?&hn3@Ks2Ci)|3|9NxE3cJiz=6Im4~n2czmBb3D#$HTAr7@Rt~4dBr{DLQ?W!N| zJfz|BftJ-qyB(2+zfEFD@o54KwN#!P)$p=Svcg`wdF$4@Z$XA#;quMbufP4;>QE!) z<57)BYradOsuOvxnrloZgOR1ft&~vXR;p`Avi`iN4`Y`^aV2mop=-O|eP0>*_VfU*50L|36WuicYV~cO#w~WuU48Y8`X)@({#O>A9(I6>ji!Q6_s1~ z!CP#Fu+!L_C2A9T_d0&)(aJnB`)INT5hT#

De_tripG+4(rxP7y_@3Z7dhEj{c6 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