@@ -0,0 +1,122 | |||
|
1 | # Ing. AVP | |
|
2 | # 04/01/2022 | |
|
3 | # ARCHIVO DE LECTURA | |
|
4 | #---- DATA RHI --- 23 DE NOVIEMBRE DEL 2021 --- 23/11/2021--- | |
|
5 | #---- PEDESTAL ---------------------------------------------- | |
|
6 | #------- HORA 143826 /DATA_RM/TEST_PEDESTAL/P20211123-143826 14:38-15:10 | |
|
7 | #---- RADAR ---------------------------------------------- | |
|
8 | #------- 14:26-15:00 | |
|
9 | #------- /DATA_RM/DRONE/2MHZ_5V_ELEVACION/ | |
|
10 | #------- /DATA_RM/DRONE/2MHZ_5V_ELEVACION/ch0/2021-11-23T19-00-00 | |
|
11 | ||
|
12 | import os, sys | |
|
13 | import datetime | |
|
14 | import time | |
|
15 | import numpy | |
|
16 | from ext_met import getfirstFilefromPath,getDatavaluefromDirFilename | |
|
17 | from schainpy.controller import Project | |
|
18 | #----------------------------------------------------------------------------------------- | |
|
19 | print("[SETUP]-RADAR METEOROLOGICO-") | |
|
20 | path_ped = "/DATA_RM/TEST_PEDESTAL/P20211123-143826" | |
|
21 | print("PATH PEDESTAL :",path_ped) | |
|
22 | path_adq = "/DATA_RM/DRONE/2MHZ_5V_ELEVACION/" | |
|
23 | print("PATH DATA :",path_adq) | |
|
24 | figpath_pp_rti = "/home/soporte/Pictures/TEST_PP_RHI" | |
|
25 | print("PATH PP RTI :",figpath_pp_rti) | |
|
26 | figpath_pp_rhi = "/home/soporte/Pictures/TEST_PP_RHI" | |
|
27 | print("PATH PP RHI :",figpath_pp_rhi) | |
|
28 | path_pp_save_int = "/DATA_RM/TEST_SAVE_PP_INT_RHI" | |
|
29 | print("PATH SAVE PP INT :",path_pp_save_int) | |
|
30 | print(" ") | |
|
31 | #------------------------------------------------------------------------------------------- | |
|
32 | print("SELECCIONAR MODO: PPI (0) O RHI (1)") | |
|
33 | mode_wr = 1 | |
|
34 | if mode_wr==0: | |
|
35 | print("[ ON ] MODE PPI") | |
|
36 | list_ped = getfirstFilefromPath(path=path_ped,meta="PE",ext=".hdf5") | |
|
37 | ff_pedestal = list_ped[2] | |
|
38 | azi_vel = getDatavaluefromDirFilename(path=path_ped,file=ff_pedestal,value="azi_vel") | |
|
39 | V = round(azi_vel[0]) | |
|
40 | print("VELOCIDAD AZI :", int(numpy.mean(azi_vel)),"°/seg") | |
|
41 | else: | |
|
42 | print("[ ON ] MODE RHI") | |
|
43 | list_ped = getfirstFilefromPath(path=path_ped,meta="PE",ext=".hdf5") | |
|
44 | ff_pedestal = list_ped[2] | |
|
45 | ele_vel = getDatavaluefromDirFilename(path=path_ped,file=ff_pedestal,value="ele_vel") | |
|
46 | V = round(ele_vel[0]) | |
|
47 | V = 10.0 | |
|
48 | print("VELOCIDAD ELE :", int(numpy.mean(ele_vel)),"°/seg") | |
|
49 | print(" ") | |
|
50 | #--------------------------------------------------------------------------------------- | |
|
51 | print("SELECCIONAR MODO: PULSE PAIR (0) O FREQUENCY (1)") | |
|
52 | mode_proc = 0 | |
|
53 | if mode_proc==0: | |
|
54 | print("[ ON ] MODE PULSEPAIR") | |
|
55 | else: | |
|
56 | print("[ ON ] MODE FREQUENCY") | |
|
57 | ipp = 60.0 | |
|
58 | print("IPP(Km.) : %1.2f"%ipp) | |
|
59 | ipp_sec = (ipp*1.0e3/150.0)*1.0e-6 | |
|
60 | print("IPP(useg.) : %1.2f"%(ipp_sec*(1.0e6))) | |
|
61 | VEL=V | |
|
62 | n= int(1/(VEL*ipp_sec)) | |
|
63 | print("N° Profiles : ", n) | |
|
64 | #-------------------------------------------- | |
|
65 | plot_rti = 0 | |
|
66 | plot_rhi = 1 | |
|
67 | integration = 1 | |
|
68 | save = 0 | |
|
69 | #---------------------------RANGO DE PLOTEO---------------------------------- | |
|
70 | dBmin = '1' | |
|
71 | dBmax = '85' | |
|
72 | xmin = '17' | |
|
73 | xmax = '17.25' | |
|
74 | ymin = '0' | |
|
75 | ymax = '600' | |
|
76 | #---------------------------------------------------------------------------- | |
|
77 | time.sleep(3) | |
|
78 | #---------------------SIGNAL CHAIN ------------------------------------ | |
|
79 | desc = "USRP_WEATHER_RADAR" | |
|
80 | filename = "USRP_processing.xml" | |
|
81 | controllerObj = Project() | |
|
82 | controllerObj.setup(id = '191', name='Test_USRP', description=desc) | |
|
83 | #---------------------UNIDAD DE LECTURA-------------------------------- | |
|
84 | readUnitConfObj = controllerObj.addReadUnit(datatype='DigitalRFReader', | |
|
85 | path=path_adq, | |
|
86 | startDate="2021/11/10",#today, | |
|
87 | endDate="2021/12/30",#today, | |
|
88 | startTime='17:10:25', | |
|
89 | endTime='23:59:59', | |
|
90 | delay=0, | |
|
91 | #set=0, | |
|
92 | online=0, | |
|
93 | walk=1, | |
|
94 | ippKm=ipp) | |
|
95 | ||
|
96 | procUnitConfObjA = controllerObj.addProcUnit(datatype='VoltageProc',inputId=readUnitConfObj.getId()) | |
|
97 | ||
|
98 | opObj11 = procUnitConfObjA.addOperation(name='selectHeights') | |
|
99 | opObj11.addParameter(name='minIndex', value='1', format='int') | |
|
100 | # opObj11.addParameter(name='maxIndex', value='10000', format='int') | |
|
101 | opObj11.addParameter(name='maxIndex', value='400', format='int') | |
|
102 | ||
|
103 | if mode_proc==0: | |
|
104 | opObj11 = procUnitConfObjA.addOperation(name='PulsePair', optype='other') | |
|
105 | opObj11.addParameter(name='n', value=int(n), format='int') | |
|
106 | procUnitConfObjB= controllerObj.addProcUnit(datatype='ParametersProc',inputId=procUnitConfObjA.getId()) | |
|
107 | ||
|
108 | if integration==1: | |
|
109 | opObj11 = procUnitConfObjB.addOperation(name='PedestalInformation') | |
|
110 | opObj11.addParameter(name='path_ped', value=path_ped) | |
|
111 | opObj11.addParameter(name='t_Interval_p', value='0.01', format='float') | |
|
112 | ||
|
113 | if plot_rhi==1: | |
|
114 | opObj11 = procUnitConfObjB.addOperation(name='Block360') | |
|
115 | opObj11.addParameter(name='n', value='10', format='int') | |
|
116 | opObj11.addParameter(name='mode', value=mode_proc, format='int') | |
|
117 | # este bloque funciona bien con divisores de 360 no olvidar 0 10 20 30 40 60 90 120 180 | |
|
118 | opObj11= procUnitConfObjB.addOperation(name='WeatherRHIPlot',optype='other') | |
|
119 | opObj11.addParameter(name='save', value=figpath_pp_rhi) | |
|
120 | opObj11.addParameter(name='save_period', value=1) | |
|
121 | ||
|
122 | controllerObj.start() |
@@ -0,0 +1,57 | |||
|
1 | import numpy as np | |
|
2 | import matplotlib.pyplot as plt | |
|
3 | import wradlib as wrl | |
|
4 | import warnings | |
|
5 | # libreia nueva | |
|
6 | from mpl_toolkits.axisartist.grid_finder import FixedLocator, DictFormatter | |
|
7 | warnings.filterwarnings('ignore') | |
|
8 | # lectura de gaMIC hdf5 file | |
|
9 | filename = wrl.util.get_wradlib_data_file("/home/soporte/Downloads/2014-06-09--185000.rhi.mvol") | |
|
10 | data1, metadata = wrl.io.read_gamic_hdf5(filename) | |
|
11 | print(data1) | |
|
12 | data1 = data1['SCAN0']['ZH']['data'] | |
|
13 | print(data1) | |
|
14 | print("SHAPE Data",np.array(data1).shape) | |
|
15 | r = metadata['SCAN0']['r'] | |
|
16 | print("r",r) | |
|
17 | print("longitud r",len(r)) | |
|
18 | th = metadata['SCAN0']['el'] | |
|
19 | print("th",th) | |
|
20 | print("longitud th",len(th)) | |
|
21 | az = metadata['SCAN0']['az'] | |
|
22 | print("az",az) | |
|
23 | site = (metadata['VOL']['Longitude'], metadata['VOL']['Latitude'], | |
|
24 | metadata['VOL']['Height']) | |
|
25 | ||
|
26 | print("Longitud,Latitud,Altura",site) | |
|
27 | ma1 = np.array(data1) | |
|
28 | ''' | |
|
29 | mask_ind = np.where(data1 <= np.nanmin(data1)) | |
|
30 | data1[mask_ind] = np.nan | |
|
31 | ma1 = np.ma.array(data1, mask=np.isnan(data1)) | |
|
32 | ''' | |
|
33 | #cgax, pm = wrl.vis.plot_rhi(ma1,r=r,th=th,rf=1e3) | |
|
34 | fig = plt.figure(figsize=(10,8)) | |
|
35 | cgax, pm = wrl.vis.plot_rhi(ma1,r=r,th=th,rf=1e3,fig=fig, ax=111,proj='cg') | |
|
36 | caax = cgax.parasites[0] | |
|
37 | paax = cgax.parasites[1] | |
|
38 | cgax.set_ylim(0, 14) | |
|
39 | #caax = cgax.parasites[0] | |
|
40 | #paax = cgax.parasites[1] | |
|
41 | #cgax, pm = wrl.vis.plot_rhi(ma1, r=r, th=th, rf=1e3, fig=fig, ax=111, proj='cg') | |
|
42 | txt = plt.title('Simple RHI',y=1.05) | |
|
43 | #cbar = plt.gcf().colorbar(pm, pad=0.05, ax=paax) | |
|
44 | cbar = plt.gcf().colorbar(pm, pad=0.05) | |
|
45 | cbar.set_label('reflectivity [dBZ]') | |
|
46 | caax.set_xlabel('x_range [km]') | |
|
47 | caax.set_ylabel('y_range [km]') | |
|
48 | plt.text(1.0, 1.05, 'azimuth', transform=caax.transAxes, va='bottom',ha='right') | |
|
49 | gh = cgax.get_grid_helper() | |
|
50 | ||
|
51 | # set theta to some nice values | |
|
52 | locs = [0., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10., 11., 12., 13., 14., | |
|
53 | 15., 16., 17., 18., 20., 22., 25., 30., 35., 40., 50., 60., 70., 80., 90.] | |
|
54 | gh.grid_finder.grid_locator1 = FixedLocator(locs) | |
|
55 | gh.grid_finder.tick_formatter1 = DictFormatter(dict([(i, r"${0:.0f}^\circ$".format(i)) for i in locs])) | |
|
56 | ||
|
57 | plt.show() |
@@ -399,15 +399,10 class WeatherPlot(Plot): | |||
|
399 | 399 | meta = {} |
|
400 | 400 | if hasattr(dataOut, 'dataPP_POWER'): |
|
401 | 401 | factor = 1 |
|
402 | ||
|
403 | 402 | if hasattr(dataOut, 'nFFTPoints'): |
|
404 | 403 | factor = dataOut.normFactor |
|
405 | ||
|
406 | ####print("factor",factor) | |
|
407 | 404 | data['weather'] = 10*numpy.log10(dataOut.data_360[1]/(factor)) |
|
408 | ####print("weather",data['weather']) | |
|
409 | 405 | data['azi'] = dataOut.data_azi |
|
410 | ||
|
411 | 406 | data['ele'] = dataOut.data_ele |
|
412 | 407 | return data, meta |
|
413 | 408 | |
@@ -428,7 +423,6 class WeatherPlot(Plot): | |||
|
428 | 423 | return ang_ |
|
429 | 424 | return ang_ |
|
430 | 425 | |
|
431 | ||
|
432 | 426 | def fixData360HL(self,angulos): |
|
433 | 427 | vec = numpy.where(angulos>=360) |
|
434 | 428 | angulos[vec]=angulos[vec]-360 |
@@ -466,7 +460,6 class WeatherPlot(Plot): | |||
|
466 | 460 | c=c+1 |
|
467 | 461 | return ang_new,ang_new2 |
|
468 | 462 | |
|
469 | ||
|
470 | 463 | def globalCheckPED(self,angulos): |
|
471 | 464 | l1,l2 = self.get2List(angulos) |
|
472 | 465 | if len(l1)>0: |
@@ -476,7 +469,6 class WeatherPlot(Plot): | |||
|
476 | 469 | ang1_,ang2_ = self.fixDataComp(ang_=angulos2,list1_=l1,list2_=l2) |
|
477 | 470 | ang1_ = self.fixData360HL(ang1_) |
|
478 | 471 | ang2_ = self.fixData360HL(ang2_) |
|
479 | ||
|
480 | 472 | else: |
|
481 | 473 | ang1_= angulos |
|
482 | 474 | ang2_= angulos |
@@ -512,7 +504,6 class WeatherPlot(Plot): | |||
|
512 | 504 | position=list1[i]+1 |
|
513 | 505 | for j in range(list2[i]): |
|
514 | 506 | new_data_azi[position+j]=new_data_azi[position+j-1]+1 |
|
515 | ||
|
516 | 507 | return new_data_azi |
|
517 | 508 | |
|
518 | 509 | def fixDATA(self,data_azi): |
@@ -542,17 +533,14 class WeatherPlot(Plot): | |||
|
542 | 533 | |
|
543 | 534 | def const_ploteo(self,data_weather,data_azi,step,res): |
|
544 | 535 | if self.ini==0: |
|
545 |
#------- |
|
|
536 | #------- | |
|
546 | 537 | n = (360/res)-len(data_azi) |
|
547 | 538 | #--------------------- new ------------------------- |
|
548 | ####data_azi_old = data_azi | |
|
549 | 539 | data_azi_new ,data_azi_old= self.globalCheckPED(data_azi) |
|
550 | 540 | #------------------------ |
|
551 | ####data_azi_new = self.fixDATA(data_azi) | |
|
552 | #ata_azi_new = self.fixDATANEW(data_azi) | |
|
553 | 541 | start = data_azi_new[-1] + res |
|
554 | 542 | end = data_azi_new[0] - res |
|
555 |
# |
|
|
543 | #------ new | |
|
556 | 544 | self.last_data_azi = end |
|
557 | 545 | if start>end: |
|
558 | 546 | end = end + 360 |
@@ -571,30 +559,16 class WeatherPlot(Plot): | |||
|
571 | 559 | start_azi = self.res_azi[0] |
|
572 | 560 | #-----------new------------ |
|
573 | 561 | data_azi ,data_azi_old= self.globalCheckPED(data_azi) |
|
574 | print("---------------------------------------------------") | |
|
575 | print("data_azi",data_azi) | |
|
576 | print("data_azi_old",data_azi_old) | |
|
577 | 562 | data_weather = self.replaceNAN(data_weather=data_weather,data_azi=data_azi_old,val=self.val_mean) |
|
578 | 563 | #-------------------------- |
|
579 | ####data_azi_old = data_azi | |
|
580 | ### weather ### | |
|
581 | ####data_weather = self.replaceNAN(data_weather=data_weather,data_azi=data_azi_old,val=self.val_mean) | |
|
582 | ||
|
583 | ####if numpy.isnan(data_azi[0]): | |
|
584 | #### data_azi[0]=self.last_data_azi+1 | |
|
585 | ####data_azi = self.fixDATA(data_azi) | |
|
586 | 564 | start = data_azi[0] |
|
587 | 565 | end = data_azi[-1] |
|
588 | 566 | self.last_data_azi= end |
|
589 | ####print("start",start) | |
|
590 | ####print("end",end) | |
|
591 | 567 | if start< start_azi: |
|
592 | 568 | start = start +360 |
|
593 | 569 | if end <start_azi: |
|
594 | 570 | end = end +360 |
|
595 | ####print("start",start) | |
|
596 | ####print("end",end) | |
|
597 | #### AQUI SERA LA MAGIA | |
|
571 | ||
|
598 | 572 | pos_ini = int((start-start_azi)/res) |
|
599 | 573 | len_azi = len(data_azi) |
|
600 | 574 | if (360-pos_ini)<len_azi: |
@@ -604,11 +578,7 class WeatherPlot(Plot): | |||
|
604 | 578 | flag=1 |
|
605 | 579 | dif= 360-pos_ini |
|
606 | 580 | comp= len_azi-dif |
|
607 | ||
|
608 | 581 | #----------------- |
|
609 | ####print(pos_ini) | |
|
610 | ####print(len_azi) | |
|
611 | ####print("shape",self.res_azi.shape) | |
|
612 | 582 | if flag==0: |
|
613 | 583 | # AZIMUTH |
|
614 | 584 | self.res_azi[pos_ini:pos_ini+len_azi] = data_azi |
@@ -628,28 +598,13 class WeatherPlot(Plot): | |||
|
628 | 598 | return data_weather,data_azi |
|
629 | 599 | |
|
630 | 600 | def plot(self): |
|
631 | #print("--------------------------------------",self.ini,"-----------------------------------") | |
|
632 | #numpy.set_printoptions(suppress=True) | |
|
633 | ####print("times: ",self.data.times) | |
|
634 | 601 | thisDatetime = datetime.datetime.utcfromtimestamp(self.data.times[-1]).strftime('%Y-%m-%d %H:%M:%S') |
|
635 | #print("times: ",thisDatetime) | |
|
636 | 602 | data = self.data[-1] |
|
637 | ####ALTURA altura_tmp_h | |
|
638 | ###print("Y RANGES",self.data.yrange,len(self.data.yrange)) | |
|
639 | ###altura_h = (data['weather'].shape[1])/10.0 | |
|
640 | ###stoprange = float(altura_h*0.3)#stoprange = float(33*1.5) por ahora 400 | |
|
641 | ###rangestep = float(0.03) | |
|
642 | ###r = numpy.arange(0, stoprange, rangestep) | |
|
643 | ###print("r",r,len(r)) | |
|
644 | #-----------------------------update---------------------- | |
|
645 | 603 |
r= |
|
646 | 604 | delta_height = r[1]-r[0] |
|
647 | #print("1",r) | |
|
648 | 605 | r_mask= numpy.where(r>=0)[0] |
|
649 | 606 | r = numpy.arange(len(r_mask))*delta_height |
|
650 | #print("2",r) | |
|
651 | 607 | self.y = 2*r |
|
652 | ######self.y = self.data.yrange | |
|
653 | 608 | # RADAR |
|
654 | 609 | #data_weather = data['weather'] |
|
655 | 610 | # PEDESTAL |
@@ -657,18 +612,10 class WeatherPlot(Plot): | |||
|
657 | 612 | res = 1 |
|
658 | 613 | # STEP |
|
659 | 614 | step = (360/(res*data['weather'].shape[0])) |
|
660 | #print("shape wr_data", wr_data.shape) | |
|
661 | #print("shape wr_azi",wr_azi.shape) | |
|
662 | #print("step",step) | |
|
663 | ####print("Time---->",self.data.times[-1],thisDatetime) | |
|
664 | #print("alturas", len(self.y))numpy.where(r>=0) | |
|
615 | ||
|
665 | 616 | self.res_weather, self.res_azi = self.const_ploteo(data_weather=data['weather'][:,r_mask],data_azi=data['azi'],step=step,res=res) |
|
666 | #numpy.set_printoptions(suppress=True) | |
|
667 | #print("resultado",self.res_azi) | |
|
668 | 617 |
self.res_ele |
|
669 | ###########################/DATA_RM/10_tmp/ch0############################### | |
|
670 | 618 | ################# PLOTEO ################### |
|
671 | ########################################################## | |
|
672 | 619 | |
|
673 | 620 | for i,ax in enumerate(self.axes): |
|
674 | 621 | if ax.firsttime: |
@@ -685,3 +632,76 class WeatherPlot(Plot): | |||
|
685 | 632 | plt.text(1.0, 1.05, 'Azimuth '+str(thisDatetime)+" Step "+str(self.ini)+ " Elev: "+str(round(self.res_ele,2)), transform=caax.transAxes, va='bottom',ha='right') |
|
686 | 633 | |
|
687 | 634 | self.ini= self.ini+1 |
|
635 | ||
|
636 | ||
|
637 | class WeatherRHIPlot(Plot): | |
|
638 | CODE = 'weather' | |
|
639 | plot_name = 'weather' | |
|
640 | plot_type = 'rhistyle' | |
|
641 | buffering = False | |
|
642 | ||
|
643 | def setup(self): | |
|
644 | self.ncols = 1 | |
|
645 | self.nrows = 1 | |
|
646 | self.nplots= 1 | |
|
647 | self.ylabel= 'Range [Km]' | |
|
648 | self.titles= ['Weather'] | |
|
649 | self.colorbar=False | |
|
650 | self.width =8 | |
|
651 | self.height =8 | |
|
652 | self.ini =0 | |
|
653 | self.len_azi =0 | |
|
654 | self.buffer_ini = None | |
|
655 | self.buffer_azi = None | |
|
656 | self.plots_adjust.update({'wspace': 0.4, 'hspace':0.4, 'left': 0.1, 'right': 0.9, 'bottom': 0.08}) | |
|
657 | self.flag =0 | |
|
658 | self.indicador= 0 | |
|
659 | self.last_data_azi = None | |
|
660 | self.val_mean = None | |
|
661 | ||
|
662 | def update(self, dataOut): | |
|
663 | ||
|
664 | data = {} | |
|
665 | meta = {} | |
|
666 | if hasattr(dataOut, 'dataPP_POWER'): | |
|
667 | factor = 1 | |
|
668 | if hasattr(dataOut, 'nFFTPoints'): | |
|
669 | factor = dataOut.normFactor | |
|
670 | data['weather'] = 10*numpy.log10(dataOut.data_360[1]/(factor)) | |
|
671 | data['azi'] = dataOut.data_azi | |
|
672 | data['ele'] = dataOut.data_ele | |
|
673 | return data, meta | |
|
674 | ||
|
675 | def plot(self): | |
|
676 | thisDatetime = datetime.datetime.utcfromtimestamp(self.data.times[-1]).strftime('%Y-%m-%d %H:%M:%S') | |
|
677 | data = self.data[-1] | |
|
678 | r = self.data.yrange | |
|
679 | delta_height = r[1]-r[0] | |
|
680 | r_mask = numpy.where(r>=0)[0] | |
|
681 | r = numpy.arange(len(r_mask))*delta_height | |
|
682 | self.y = 2*r | |
|
683 | ###self.res_weather, self.res_ele = self.const_ploteo(data_weather=data['weather'][:,r_mask],data_azi=data['ele'],step=step,res=res) | |
|
684 | ###self.res_azi = numpy.mean(data['azi']) | |
|
685 | #------------- | |
|
686 | # 90 angulos en el axis 0 | |
|
687 | # 1000 step en el axis 1 | |
|
688 | self.res_weather = numpy.ones([90,1000]) | |
|
689 | r = numpy.linspace(0,1999,1000) | |
|
690 | self.res_ele = numpy.arange(0,90) | |
|
691 | self.res_azi = 240 | |
|
692 | #------------- | |
|
693 | for i,ax in enumerate(self.axes): | |
|
694 | if ax.firsttime: | |
|
695 | plt.clf() | |
|
696 | cgax, pm = wrl.vis.plot_rhi(self.res_weather,r=r,th=self.res_ele,fig=self.figures[0], proj='cg') | |
|
697 | else: | |
|
698 | plt.clf() | |
|
699 | cgax, pm = wrl.vis.plot_rhi(self.res_weather,r=r,th=self.res_ele,fig=self.figures[0], proj='cg') | |
|
700 | caax = cgax.parasites[0] | |
|
701 | paax = cgax.parasites[1] | |
|
702 | cbar = plt.gcf().colorbar(pm, pad=0.075) | |
|
703 | caax.set_xlabel('x_range [km]') | |
|
704 | caax.set_ylabel('y_range [km]') | |
|
705 | plt.text(1.0, 1.05, 'Elevacion '+str(thisDatetime)+" Step "+str(self.ini)+ " Azi: "+str(round(self.res_azi,2)), transform=caax.transAxes, va='bottom',ha='right') | |
|
706 | ||
|
707 | self.ini= self.ini+1 |
@@ -3949,7 +3949,8 class WeatherRadar(Operation): | |||
|
3949 | 3949 | nHeis = dataOut.nHeights |
|
3950 | 3950 | data_param = numpy.zeros((nCh,4,nHeis)) |
|
3951 | 3951 | if type == "Voltage": |
|
3952 | data_param[:,0,:] = dataOut.dataPP_POW/(dataOut.nCohInt**2) | |
|
3952 | factor = dataOut.normFactor | |
|
3953 | data_param[:,0,:] = dataOut.dataPP_POW/(factor) | |
|
3953 | 3954 | data_param[:,1,:] = dataOut.dataPP_DOP |
|
3954 | 3955 | data_param[:,2,:] = dataOut.dataPP_WIDTH |
|
3955 | 3956 | data_param[:,3,:] = dataOut.dataPP_SNR |
@@ -3957,7 +3958,6 class WeatherRadar(Operation): | |||
|
3957 | 3958 | data_param[:,0,:] = dataOut.data_POW |
|
3958 | 3959 | data_param[:,1,:] = dataOut.data_DOP |
|
3959 | 3960 | data_param[:,2,:] = dataOut.data_WIDTH |
|
3960 | def setMoments(self,dataOut,i): | |
|
3961 | 3961 | data_param[:,3,:] = dataOut.data_SNR |
|
3962 | 3962 | |
|
3963 | 3963 | return data_param[:,i,:] |
@@ -95,7 +95,7 if mode_proc==0: | |||
|
95 | 95 | opObj11 = procUnitConfObjA.addOperation(name='PulsePair', optype='other') |
|
96 | 96 | opObj11.addParameter(name='n', value=int(n), format='int') |
|
97 | 97 | procUnitConfObjB= controllerObj.addProcUnit(datatype='ParametersProc',inputId=procUnitConfObjA.getId()) |
|
98 | ||
|
98 | # REVISAR EL test_sim00013.py | |
|
99 | 99 | if plot_rti==1: |
|
100 | 100 | opObj11 = procUnitConfObjB.addOperation(name='GenericRTIPlot',optype='external') |
|
101 | 101 | opObj11.addParameter(name='attr_data', value='dataPP_POW') |
General Comments 0
You need to be logged in to leave comments.
Login now