##// END OF EJS Templates
2 canales plot
avaldezp -
r1435:23d43cc1bb72
parent child
Show More
@@ -377,12 +377,12 class WeatherPlot(Plot):
377 def setup(self):
377 def setup(self):
378 self.ncols = 1
378 self.ncols = 1
379 self.nrows = 1
379 self.nrows = 1
380 self.width =8
381 self.height =8
380 self.nplots= 1
382 self.nplots= 1
381 self.ylabel= 'Range [Km]'
383 self.ylabel= 'Range [Km]'
382 self.titles= ['Weather']
384 self.titles= ['Weather']
383 self.colorbar=False
385 self.colorbar=False
384 self.width =8
385 self.height =8
386 self.ini =0
386 self.ini =0
387 self.len_azi =0
387 self.len_azi =0
388 self.buffer_ini = None
388 self.buffer_ini = None
@@ -643,11 +643,26 class WeatherRHIPlot(Plot):
643 data_ele_tmp = None
643 data_ele_tmp = None
644
644
645 def setup(self):
645 def setup(self):
646 print("********************")
647 print("********************")
648 print("********************")
649 print("SETUP WEATHER PLOT")
646 self.ncols = 1
650 self.ncols = 1
647 self.nrows = 1
651 self.nrows = 1
648 self.nplots= 1
652 self.nplots= 1
649 self.ylabel= 'Range [Km]'
653 self.ylabel= 'Range [Km]'
650 self.titles= ['Weather']
654 self.titles= ['Weather']
655 if self.channels is not None:
656 self.nplots = len(self.channels)
657 self.nrows = len(self.channels)
658 else:
659 self.nplots = self.data.shape(self.CODE)[0]
660 self.nrows = self.nplots
661 self.channels = list(range(self.nplots))
662 print("channels",self.channels)
663 print("que saldra", self.data.shape(self.CODE)[0])
664 self.titles = ['{} Channel {}'.format(self.CODE.upper(), x) for x in range(self.nrows)]
665 print("self.titles",self.titles)
651 self.colorbar=False
666 self.colorbar=False
652 self.width =8
667 self.width =8
653 self.height =8
668 self.height =8
@@ -669,9 +684,16 class WeatherRHIPlot(Plot):
669 factor = 1
684 factor = 1
670 if hasattr(dataOut, 'nFFTPoints'):
685 if hasattr(dataOut, 'nFFTPoints'):
671 factor = dataOut.normFactor
686 factor = dataOut.normFactor
672 data['weather'] = 10*numpy.log10(dataOut.data_360[1]/(factor))
687 print("dataOut",dataOut.data_360.shape)
688 #
689 data['weather'] = 10*numpy.log10(dataOut.data_360/(factor))
690 #
691 #data['weather'] = 10*numpy.log10(dataOut.data_360[1]/(factor))
673 data['azi'] = dataOut.data_azi
692 data['azi'] = dataOut.data_azi
674 data['ele'] = dataOut.data_ele
693 data['ele'] = dataOut.data_ele
694 print("UPDATE")
695 print("data[weather]",data['weather'].shape)
696 print("data[azi]",data['azi'])
675 return data, meta
697 return data, meta
676
698
677 def get2List(self,angulos):
699 def get2List(self,angulos):
@@ -788,10 +810,11 class WeatherRHIPlot(Plot):
788 return 3
810 return 3
789
811
790
812
791 def const_ploteo(self,data_weather,data_ele,step,res,ang_max,ang_min):
813 def const_ploteo(self,val_ch,data_weather,data_ele,step,res,ang_max,ang_min):
792 ang_max= ang_max
814 ang_max= ang_max
793 ang_min= ang_min
815 ang_min= ang_min
794 data_weather=data_weather
816 data_weather=data_weather
817 val_ch=val_ch
795 ##print("*********************DATA WEATHER**************************************")
818 ##print("*********************DATA WEATHER**************************************")
796 ##print(data_weather)
819 ##print(data_weather)
797 if self.ini==0:
820 if self.ini==0:
@@ -805,6 +828,7 class WeatherRHIPlot(Plot):
805 #print("data_ele",data_ele)
828 #print("data_ele",data_ele)
806 #----------------------------------------------------------
829 #----------------------------------------------------------
807 tipo_case = self.check_case(data_ele,ang_max,ang_min)
830 tipo_case = self.check_case(data_ele,ang_max,ang_min)
831 print("check_case",tipo_case)
808 #--------------------- new -------------------------
832 #--------------------- new -------------------------
809 data_ele_new ,data_ele_old= self.globalCheckPED(data_ele,tipo_case)
833 data_ele_new ,data_ele_old= self.globalCheckPED(data_ele,tipo_case)
810
834
@@ -845,7 +869,9 class WeatherRHIPlot(Plot):
845 self.end_data_ele = data_ele_new[-1]
869 self.end_data_ele = data_ele_new[-1]
846
870
847 n1= round(self.start_data_ele)- start
871 n1= round(self.start_data_ele)- start
848 n2= end - round(self.end_data_ele)
872 n2= end - round(self.end_data_ele)-1
873 print(self.start_data_ele)
874 print(self.end_data_ele)
849 if n1>0:
875 if n1>0:
850 ele1= numpy.linspace(ang_min+1,self.start_data_ele-1,n1)
876 ele1= numpy.linspace(ang_min+1,self.start_data_ele-1,n1)
851 ele1_nan= numpy.ones(n1)*numpy.nan
877 ele1_nan= numpy.ones(n1)*numpy.nan
@@ -861,7 +887,7 class WeatherRHIPlot(Plot):
861 val_mean = numpy.mean(data_weather[:,-1])
887 val_mean = numpy.mean(data_weather[:,-1])
862 self.val_mean = val_mean
888 self.val_mean = val_mean
863 data_weather = self.replaceNAN(data_weather=data_weather,data_ele=data_ele_old,val=self.val_mean)
889 data_weather = self.replaceNAN(data_weather=data_weather,data_ele=data_ele_old,val=self.val_mean)
864 self.data_ele_tmp= data_ele_old
890 self.data_ele_tmp[val_ch]= data_ele_old
865 else:
891 else:
866 #print("**********************************************")
892 #print("**********************************************")
867 #print("****************VARIABLE**********************")
893 #print("****************VARIABLE**********************")
@@ -897,13 +923,13 class WeatherRHIPlot(Plot):
897 #print(data_ele,len(data_ele))
923 #print(data_ele,len(data_ele))
898 #print(data_ele_old,len(data_ele_old))
924 #print(data_ele_old,len(data_ele_old))
899 if new_i_ele< 2:
925 if new_i_ele< 2:
900 self.data_ele_tmp = numpy.ones(ang_max-ang_min)*numpy.nan
926 self.data_ele_tmp[val_ch] = numpy.ones(ang_max-ang_min)*numpy.nan
901 self.res_weather = self.replaceNAN(data_weather=self.res_weather,data_ele=self.data_ele_tmp,val=self.val_mean)
927 self.res_weather[val_ch] = self.replaceNAN(data_weather=self.res_weather[val_ch],data_ele=self.data_ele_tmp[val_ch],val=self.val_mean)
902 self.data_ele_tmp[new_i_ele:new_i_ele+len(data_ele)]=data_ele_old
928 self.data_ele_tmp[val_ch][new_i_ele:new_i_ele+len(data_ele)]=data_ele_old
903 self.res_ele[new_i_ele:new_i_ele+len(data_ele)]= data_ele
929 self.res_ele[new_i_ele:new_i_ele+len(data_ele)]= data_ele
904 self.res_weather[new_i_ele:new_i_ele+len(data_ele),:]= data_weather
930 self.res_weather[val_ch][new_i_ele:new_i_ele+len(data_ele),:]= data_weather
905 data_ele = self.res_ele
931 data_ele = self.res_ele
906 data_weather = self.res_weather
932 data_weather = self.res_weather[val_ch]
907
933
908 elif tipo_case==1 : #BAJADA
934 elif tipo_case==1 : #BAJADA
909 data_ele = data_ele[::-1] # reversa
935 data_ele = data_ele[::-1] # reversa
@@ -927,13 +953,13 class WeatherRHIPlot(Plot):
927 if new_i_ele <= 1:
953 if new_i_ele <= 1:
928 new_i_ele = 1
954 new_i_ele = 1
929 if round(data_ele[-1])>=ang_max-1:
955 if round(data_ele[-1])>=ang_max-1:
930 self.data_ele_tmp = numpy.ones(ang_max-ang_min)*numpy.nan
956 self.data_ele_tmp[val_ch] = numpy.ones(ang_max-ang_min)*numpy.nan
931 self.res_weather = self.replaceNAN(data_weather=self.res_weather,data_ele=self.data_ele_tmp,val=self.val_mean)
957 self.res_weather[val_ch] = self.replaceNAN(data_weather=self.res_weather[val_ch],data_ele=self.data_ele_tmp[val_ch],val=self.val_mean)
932 self.data_ele_tmp[new_i_ele-1:new_i_ele+len(data_ele)-1]=data_ele_old
958 self.data_ele_tmp[val_ch][new_i_ele-1:new_i_ele+len(data_ele)-1]=data_ele_old
933 self.res_ele[new_i_ele-1:new_i_ele+len(data_ele)-1]= data_ele
959 self.res_ele[new_i_ele-1:new_i_ele+len(data_ele)-1]= data_ele
934 self.res_weather[new_i_ele-1:new_i_ele+len(data_ele)-1,:]= data_weather
960 self.res_weather[val_ch][new_i_ele-1:new_i_ele+len(data_ele)-1,:]= data_weather
935 data_ele = self.res_ele
961 data_ele = self.res_ele
936 data_weather = self.res_weather
962 data_weather = self.res_weather[val_ch]
937
963
938 elif tipo_case==2: #bajada
964 elif tipo_case==2: #bajada
939 vec = numpy.where(data_ele<ang_max)
965 vec = numpy.where(data_ele<ang_max)
@@ -959,11 +985,11 class WeatherRHIPlot(Plot):
959 data_ele = numpy.hstack((data_ele,ele2))
985 data_ele = numpy.hstack((data_ele,ele2))
960 data_ele_old = numpy.hstack((data_ele_old,ele2_nan))
986 data_ele_old = numpy.hstack((data_ele_old,ele2_nan))
961
987
962 self.data_ele_tmp = data_ele_old
988 self.data_ele_tmp[val_ch] = data_ele_old
963 self.res_ele = data_ele
989 self.res_ele = data_ele
964 self.res_weather = self.replaceNAN(data_weather=data_weather,data_ele=data_ele_old,val=self.val_mean)
990 self.res_weather[val_ch] = self.replaceNAN(data_weather=data_weather,data_ele=data_ele_old,val=self.val_mean)
965 data_ele = self.res_ele
991 data_ele = self.res_ele
966 data_weather = self.res_weather
992 data_weather = self.res_weather[val_ch]
967
993
968 elif tipo_case==3:#subida
994 elif tipo_case==3:#subida
969 vec = numpy.where(0<data_ele)
995 vec = numpy.where(0<data_ele)
@@ -996,11 +1022,11 class WeatherRHIPlot(Plot):
996 data_ele = numpy.hstack((data_ele,ele2))
1022 data_ele = numpy.hstack((data_ele,ele2))
997 data_ele_old = numpy.hstack((data_ele_old,ele2_nan))
1023 data_ele_old = numpy.hstack((data_ele_old,ele2_nan))
998
1024
999 self.data_ele_tmp = data_ele_old
1025 self.data_ele_tmp[val_ch] = data_ele_old
1000 self.res_ele = data_ele
1026 self.res_ele = data_ele
1001 self.res_weather = self.replaceNAN(data_weather=data_weather,data_ele=data_ele_old,val=self.val_mean)
1027 self.res_weather[val_ch] = self.replaceNAN(data_weather=data_weather,data_ele=data_ele_old,val=self.val_mean)
1002 data_ele = self.res_ele
1028 data_ele = self.res_ele
1003 data_weather = self.res_weather
1029 data_weather = self.res_weather[val_ch]
1004 #print("self.data_ele_tmp",self.data_ele_tmp)
1030 #print("self.data_ele_tmp",self.data_ele_tmp)
1005 return data_weather,data_ele
1031 return data_weather,data_ele
1006
1032
@@ -1026,22 +1052,31 class WeatherRHIPlot(Plot):
1026 ##print('weather',data['weather'].shape)
1052 ##print('weather',data['weather'].shape)
1027 ##print('ele',data['ele'].shape)
1053 ##print('ele',data['ele'].shape)
1028
1054
1029 self.res_weather, self.res_ele = self.const_ploteo(data_weather=data['weather'][:,r_mask],data_ele=data['ele'],step=step,res=res,ang_max=ang_max,ang_min=ang_min)
1055 ###self.res_weather, self.res_ele = self.const_ploteo(data_weather=data['weather'][:,r_mask],data_ele=data['ele'],step=step,res=res,ang_max=ang_max,ang_min=ang_min)
1030 self.res_azi = numpy.mean(data['azi'])
1056 ###self.res_azi = numpy.mean(data['azi'])
1031 ###print("self.res_ele",self.res_ele)
1057 ###print("self.res_ele",self.res_ele)
1058 plt.clf()
1059 subplots = [121, 122]
1060 if self.ini==0:
1061 self.data_ele_tmp = numpy.ones([self.nplots,int(var_ang)])*numpy.nan
1062 self.res_weather= numpy.ones([self.nplots,int(var_ang),len(r_mask)])*numpy.nan
1063 print("SHAPE",self.data_ele_tmp.shape)
1064
1032 for i,ax in enumerate(self.axes):
1065 for i,ax in enumerate(self.axes):
1066 self.res_weather[i], self.res_ele = self.const_ploteo(val_ch=i, data_weather=data['weather'][i][:,r_mask],data_ele=data['ele'],step=step,res=res,ang_max=ang_max,ang_min=ang_min)
1067 self.res_azi = numpy.mean(data['azi'])
1033 if ax.firsttime:
1068 if ax.firsttime:
1034 plt.clf()
1069 #plt.clf()
1035 cgax, pm = wrl.vis.plot_rhi(self.res_weather,r=r,th=self.res_ele,fig=self.figures[0], proj='cg',vmin=20, vmax=80)
1070 cgax, pm = wrl.vis.plot_rhi(self.res_weather[i],r=r,th=self.res_ele,ax=subplots[i], proj='cg',vmin=20, vmax=80)
1071 #fig=self.figures[0]
1036 else:
1072 else:
1037 plt.clf()
1073 #plt.clf()
1038 cgax, pm = wrl.vis.plot_rhi(self.res_weather,r=r,th=self.res_ele,fig=self.figures[0], proj='cg',vmin=20, vmax=80)
1074 cgax, pm = wrl.vis.plot_rhi(self.res_weather[i],r=r,th=self.res_ele,ax=subplots[i], proj='cg',vmin=20, vmax=80)
1039 caax = cgax.parasites[0]
1075 caax = cgax.parasites[0]
1040 paax = cgax.parasites[1]
1076 paax = cgax.parasites[1]
1041 cbar = plt.gcf().colorbar(pm, pad=0.075)
1077 cbar = plt.gcf().colorbar(pm, pad=0.075)
1042 caax.set_xlabel('x_range [km]')
1078 caax.set_xlabel('x_range [km]')
1043 caax.set_ylabel('y_range [km]')
1079 caax.set_ylabel('y_range [km]')
1044 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')
1080 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')
1045
1081 print("***************************self.ini****************************",self.ini)
1046 #print("***************************self.ini****************************",self.ini)
1047 self.ini= self.ini+1
1082 self.ini= self.ini+1
General Comments 0
You need to be logged in to leave comments. Login now