@@ -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, |
|
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, |
|
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