diff --git a/doc/20160829_pyrad_architecture_fvj.pptx b/doc/20160829_pyrad_architecture_fvj.pptx index f0ce782..49faf7a 100755 Binary files a/doc/20160829_pyrad_architecture_fvj.pptx and b/doc/20160829_pyrad_architecture_fvj.pptx differ diff --git a/doc/pyrad_user_manual.docx b/doc/pyrad_user_manual.docx index 8d9f3c8..2739580 100755 Binary files a/doc/pyrad_user_manual.docx and b/doc/pyrad_user_manual.docx differ diff --git a/doc/pyrad_user_manual.pdf b/doc/pyrad_user_manual.pdf index ad5e3d1..8cc87ee 100755 Binary files a/doc/pyrad_user_manual.pdf and b/doc/pyrad_user_manual.pdf differ diff --git a/docs/_modules/builtins.html b/docs/_modules/builtins.html index 2ca633e..8c07409 100644 --- a/docs/_modules/builtins.html +++ b/docs/_modules/builtins.html @@ -14,7 +14,6 @@ - @@ -77,7 +76,7 @@

Navigation

\ No newline at end of file diff --git a/docs/_modules/index.html b/docs/_modules/index.html index c934697..4489ed3 100644 --- a/docs/_modules/index.html +++ b/docs/_modules/index.html @@ -14,7 +14,6 @@ - @@ -113,7 +112,7 @@

Navigation

\ No newline at end of file diff --git a/docs/_modules/pyrad/flow/flow_control.html b/docs/_modules/pyrad/flow/flow_control.html index 8376c85..87a0f37 100644 --- a/docs/_modules/pyrad/flow/flow_control.html +++ b/docs/_modules/pyrad/flow/flow_control.html @@ -14,7 +14,6 @@ - @@ -550,7 +549,7 @@

Navigation

\ No newline at end of file diff --git a/docs/_modules/pyrad/graph/plots.html b/docs/_modules/pyrad/graph/plots.html index eea8f2b..7ebabe6 100644 --- a/docs/_modules/pyrad/graph/plots.html +++ b/docs/_modules/pyrad/graph/plots.html @@ -14,7 +14,6 @@ - @@ -733,7 +732,7 @@

Navigation

\ No newline at end of file diff --git a/docs/_modules/pyrad/graph/plots_aux.html b/docs/_modules/pyrad/graph/plots_aux.html index aac6102..113765e 100644 --- a/docs/_modules/pyrad/graph/plots_aux.html +++ b/docs/_modules/pyrad/graph/plots_aux.html @@ -14,7 +14,6 @@ - @@ -200,7 +199,7 @@

Navigation

\ No newline at end of file diff --git a/docs/_modules/pyrad/graph/plots_grid.html b/docs/_modules/pyrad/graph/plots_grid.html index 55da2f0..de03eec 100644 --- a/docs/_modules/pyrad/graph/plots_grid.html +++ b/docs/_modules/pyrad/graph/plots_grid.html @@ -14,7 +14,6 @@ - @@ -316,7 +315,7 @@

Navigation

\ No newline at end of file diff --git a/docs/_modules/pyrad/graph/plots_timeseries.html b/docs/_modules/pyrad/graph/plots_timeseries.html index 387aafc..4bfc30e 100644 --- a/docs/_modules/pyrad/graph/plots_timeseries.html +++ b/docs/_modules/pyrad/graph/plots_timeseries.html @@ -14,7 +14,6 @@ - @@ -840,7 +839,7 @@

Navigation

\ No newline at end of file diff --git a/docs/_modules/pyrad/graph/plots_vol.html b/docs/_modules/pyrad/graph/plots_vol.html index 69c3f6c..47e2aed 100644 --- a/docs/_modules/pyrad/graph/plots_vol.html +++ b/docs/_modules/pyrad/graph/plots_vol.html @@ -14,7 +14,6 @@ - @@ -1406,7 +1405,7 @@

Navigation

\ No newline at end of file diff --git a/docs/_modules/pyrad/io/config.html b/docs/_modules/pyrad/io/config.html index b48cb8b..4346b54 100644 --- a/docs/_modules/pyrad/io/config.html +++ b/docs/_modules/pyrad/io/config.html @@ -14,7 +14,6 @@ - @@ -470,7 +469,7 @@

Navigation

\ No newline at end of file diff --git a/docs/_modules/pyrad/io/io_aux.html b/docs/_modules/pyrad/io/io_aux.html index cfd2c6f..51a5ff6 100644 --- a/docs/_modules/pyrad/io/io_aux.html +++ b/docs/_modules/pyrad/io/io_aux.html @@ -14,7 +14,6 @@ - @@ -86,8 +85,6 @@

Source code for pyrad.io.io_aux

     find_hzt_file
     find_rad4alpcosmo_file
     _get_datetime
-    find_date_in_file_name
-
 
 """
 
@@ -382,392 +379,60 @@ 

Source code for pyrad.io.io_aux

         corresponding Py-ART field name
 
     """
-    if datatype == 'dBZ':
-        field_name = 'reflectivity'
-        datatype_odim = 'DBZH'
-    elif datatype == 'dBuZ':
-        field_name = 'unfiltered_reflectivity'
+    if datatype == 'udBZ':
         datatype_odim = 'TH'
-    elif datatype == 'dBZc':
-        field_name = 'corrected_reflectivity'
-        datatype_odim = 'DBZHC'
-    elif datatype == 'dBuZc':
-        field_name = 'corrected_unfiltered_reflectivity'
-        datatype_odim = 'THC'
+        field_name = 'uncorrected_reflectivity'
+    elif datatype == 'udBZv':
+        datatype_odim = 'TV'
+        field_name = 'uncorrected_reflectivity_vv'
+    elif datatype == 'dBZ':
+        datatype_odim = 'DBZH'
+        field_name = 'reflectivity'
     elif datatype == 'dBZv':
-        field_name = 'reflectivity_vv'
         datatype_odim = 'DBZV'
+        field_name = 'reflectivity_vv'
+    elif datatype == 'dBZc':
+        datatype_odim = 'DBZH'
+        field_name = 'corrected_reflectivity'
     elif datatype == 'dBZvc':
+        datatype_odim = 'DBZV'
         field_name = 'corrected_reflectivity_vv'
-        datatype_odim = 'DBZVC'
-    elif datatype == 'dBuZv':
-        field_name = 'unfiltered_reflectivity_vv'
-        datatype_odim = 'TV'
-    elif datatype == 'dBuZvc':
-        field_name = 'corrected_unfiltered_reflectivity_vv'
-        datatype_odim = 'TVC'
-    elif datatype == 'dBZ_bias':
-        field_name = 'reflectivity_bias'
-        datatype_odim = 'ZBIAS'
-    elif datatype == 'eta_h':
-        field_name = 'volumetric_reflectivity'
-        datatype_odim = 'etah'
-    elif datatype == 'eta_v':
-        field_name = 'volumetric_reflectivity_vv'
-        datatype_odim = 'etav'
-    elif datatype == 'rcs_h':
-        field_name = 'radar_cross_section_hh'
-        datatype_odim = 'RCSH'
-    elif datatype == 'rcs_v':
-        field_name = 'radar_cross_section_vv'
-        datatype_odim = 'RCSV'
-
     elif datatype == 'ZDR':
-        field_name = 'differential_reflectivity'
         datatype_odim = 'ZDR'
-    elif datatype == 'ZDRu':
-        field_name = 'unfiltered_differential_reflectivity'
-        datatype_odim = 'ZDRU'
-    elif datatype == 'ZDRc':
-        field_name = 'corrected_differential_reflectivity'
-        datatype_odim = 'ZDRC'
-    elif datatype == 'ZDRuc':
-        field_name = 'corrected_unfiltered_differential_reflectivity'
-        datatype_odim = 'ZDRUC'
-    elif datatype == 'ZDR_prec':
-        field_name = 'differential_reflectivity_in_precipitation'
-        datatype_odim = 'ZDRPREC'
-    elif datatype == 'ZDR_snow':
-        field_name = 'differential_reflectivity_in_snow'
-        datatype_odim = 'ZDRSNOW'
-
-    elif datatype == 'dBm':
-        field_name = 'signal_power_hh'
-        datatype_odim = 'DBMH'
-    elif datatype == 'dBmv':
-        field_name = 'signal_power_vv'
-        datatype_odim = 'DBMV'
-    elif datatype == 'Nh':
-        field_name = 'noisedBZ_hh'
-        datatype_odim = 'NDBZH'
-    elif datatype == 'Nv':
-        field_name = 'noisedBZ_vv'
-        datatype_odim = 'NDBZV'
-    elif datatype == 'SNRh':
-        field_name = 'signal_to_noise_ratio_hh'
-        datatype_odim = 'SNRH'
-    elif datatype == 'SNRv':
-        field_name = 'signal_to_noise_ratio_vv'
-        datatype_odim = 'SNRV'
-    elif datatype == 'SQI':
-        field_name = 'normalized_coherent_power'
-        datatype_odim = 'SQIH'
-    elif datatype == 'SQIv':
-        field_name = 'normalized_coherent_power_vv'
-        datatype_odim = 'SQIV'
-
-    elif datatype == 'dBm_sun_hit':
-        field_name = 'sun_hit_power_h'
-        datatype_odim = 'DBM_SUNHIT'
-    elif datatype == 'dBmv_sun_hit':
-        field_name = 'sun_hit_power_v'
-        datatype_odim = 'DBMV_SUNHIT'
-    elif datatype == 'ZDR_sun_hit':
-        field_name = 'sun_hit_differential_reflectivity'
-        datatype_odim = 'ZDR_SUNHIT'
-    elif datatype == 'dBm_sun_est':
-        field_name = 'sun_est_power_h'
-        datatype_odim = 'DBM_SUNEST'
-    elif datatype == 'dBmv_sun_est':
-        field_name = 'sun_est_power_v'
-        datatype_odim = 'DBMV_SUNEST'
-    elif datatype == 'ZDR_sun_est':
-        field_name = 'sun_est_differential_reflectivity'
-        datatype_odim = 'ZDR_SUNEST'
-    elif datatype == 'sun_pos_h':
-        field_name = 'sun_hit_h'
-        datatype_odim = 'POSH_SUNHIT'
-    elif datatype == 'sun_pos_v':
-        field_name = 'sun_hit_v'
-        datatype_odim = 'POSV_SUNHIT'
-    elif datatype == 'sun_pos_zdr':
-        field_name = 'sun_hit_zdr'
-        datatype_odim = 'POSZDR_SUNHIT'
-
+        field_name = 'differential_reflectivity'
     elif datatype == 'RhoHV':
-        field_name = 'cross_correlation_ratio'
         datatype_odim = 'RHOHV'
-    elif datatype == 'uRhoHV':
-        field_name = 'uncorrected_cross_correlation_ratio'
-        datatype_odim = 'URHOHV'
-    elif datatype == 'RhoHVc':
-        field_name = 'corrected_cross_correlation_ratio'
-        datatype_odim = 'RHOHVC'
-    elif datatype == 'RhoHV_rain':
-        field_name = 'cross_correlation_ratio_in_rain'
-        datatype_odim = 'RHOHVRAIN'
-    elif datatype == 'L':
-        field_name = 'logarithmic_cross_correlation_ratio'
-        datatype_odim = 'LRHOHV'
-    elif datatype == 'CDR':
-        field_name = 'circular_depolarization_ratio'
-        datatype_odim = 'CDR'
+        field_name = 'cross_correlation_ratio'
     elif datatype == 'LDR':
-        field_name = 'linear_polarization_ratio'
         datatype_odim = 'LDR'
-
+        field_name = 'linear_polarization_ratio'
     elif datatype == 'PhiDP':
-        field_name = 'differential_phase'
         datatype_odim = 'PHIDP'
-    elif datatype == 'uPhiDP':
-        field_name = 'uncorrected_differential_phase'
-        datatype_odim = 'UPHIDP'
-    elif datatype == 'PhiDPc':
-        field_name = 'corrected_differential_phase'
-        datatype_odim = 'PHIDPC'
-    elif datatype == 'PhiDP0':
-        field_name = 'system_differential_phase'
-        datatype_odim = 'PHIDP0'
-    elif datatype == 'PhiDP0_bin':
-        field_name = 'first_gate_differential_phase'
-        datatype_odim = 'PHIDP0_BIN'
+        field_name = 'differential_phase'
     elif datatype == 'KDP':
-        field_name = 'specific_differential_phase'
         datatype_odim = 'KDP'
-    elif datatype == 'KDPc':
-        field_name = 'corrected_specific_differential_phase'
-        datatype_odim = 'KDPC'
-
+        field_name = 'specific_differential_phase'
+    elif datatype == 'SQI':
+        datatype_odim = 'SQI'
+        field_name = 'normalized_coherent_power'
+    elif datatype == 'SNR':
+        datatype_odim = 'SNR'
+        field_name = 'signal_to_noise_ratio'
     elif datatype == 'V':
+        datatype_odim = 'VRAD'
         field_name = 'velocity'
-        datatype_odim = 'VRADH'
     elif datatype == 'Vh':
-        field_name = 'velocity'
         datatype_odim = 'VRADH'
-    elif datatype == 'dealV':
-        field_name = 'dealiased_velocity'
-        datatype_odim = 'VRADDH'
-    elif datatype == 'Vc':
-        field_name = 'corrected_velocity'
-        datatype_odim = 'VRADHC'
-    elif datatype == 'dealVc':
-        field_name = 'dealiased_corrected_velocity'
-        datatype_odim = 'VRADDHC'
-    elif datatype == 'estV':
-        field_name = 'retrieved_velocity'
-        datatype_odim = 'VRADEST'
-    elif datatype == 'stdV':
-        field_name = 'retrieved_velocity_std'
-        datatype_odim = 'sd_vvp'
-    elif datatype == 'diffV':
-        field_name = 'velocity_difference'
-        datatype_odim = 'VDIFF'
+        field_name = 'velocity'
     elif datatype == 'Vv':
-        field_name = 'velocity_vv'
         datatype_odim = 'VRADV'
-    elif datatype == 'dealVv':
-        field_name = 'dealiased_velocity_vv'
-        datatype_odim = 'VRADDV'
+        field_name = 'velocity_vv'
     elif datatype == 'W':
+        datatype_odim = 'WRAD'
         field_name = 'spectrum_width'
-        datatype_odim = 'WRADH'
-    elif datatype == 'Wc':
-        field_name = 'corrected_spectrum_width'
-        datatype_odim = 'WRADHC'
-    elif datatype == 'Wv':
-        field_name = 'spectrum_width_vv'
-        datatype_odim = 'WRADV'
-    elif datatype == 'wind_vel_h_az':
-        field_name = 'azimuthal_horizontal_wind_component'
-        datatype_odim = 'AHWND'
-    elif datatype == 'wind_vel_v':
-        field_name = 'vertical_wind_component'
-        datatype_odim = 'w'
-    elif datatype == 'wind_vel_h_u':
-        field_name = 'eastward_wind_component'
-        datatype_odim = 'UWND'
-    elif datatype == 'wind_vel_h_v':
-        field_name = 'northward_wind_component'
-        datatype_odim = 'VWND'
-    elif datatype == 'windshear_v':
-        field_name = 'vertical_wind_shear'
-        datatype_odim = 'VSHR'
-    elif datatype == 'WIND_SPEED':
-        field_name = 'wind_speed'
-        datatype_odim = 'ff'
-    elif datatype == 'WIND_DIRECTION':
-        field_name = 'wind_direction'
-        datatype_odim = 'dd'
-
-    elif datatype == 'Ah':
-        field_name = 'specific_attenuation'
-        datatype_odim = 'AH'
-    elif datatype == 'Ahc':
-        field_name = 'corrected_specific_attenuation'
-        datatype_odim = 'AHC'
-    elif datatype == 'PIA':
-        field_name = 'path_integrated_attenuation'
-        datatype_odim = 'PIA'
-    elif datatype == 'PIAc':
-        field_name = 'corrected_path_integrated_attenuation'
-        datatype_odim = 'PIAC'
-    elif datatype == 'Adp':
-        field_name = 'specific_differential_attenuation'
-        datatype_odim = 'ADP'
-    elif datatype == 'Adpc':
-        field_name = 'corrected_specific_differential_attenuation'
-        datatype_odim = 'ADPC'
-    elif datatype == 'PIDA':
-        field_name = 'path_integrated_differential_attenuation'
-        datatype_odim = 'PIDA'
-    elif datatype == 'PIDAc':
-        field_name = 'corrected_path_integrated_differential_attenuation'
-        datatype_odim = 'PIDAC'
-
-    elif datatype == 'TEMP':
-        field_name = 'temperature'
-        datatype_odim = 'TEMP'
-    elif datatype == 'ISO0':
-        field_name = 'iso0'
-        datatype_odim = 'ISO0'
-    elif datatype == 'H_ISO0':
-        field_name = 'height_over_iso0'
-        datatype_odim = 'HISO0'
-    elif datatype == 'cosmo_index':
-        field_name = 'cosmo_index'
-        datatype_odim = 'COSMOIND'
-    elif datatype == 'hzt_index':
-        field_name = 'hzt_index'
-        datatype_odim = 'HZTIND'
-    elif datatype == 'ml':
-        field_name = 'melting_layer'
-        datatype_odim = 'ML'
-
-    elif datatype == 'VIS':
-        field_name = 'visibility'
-        datatype_odim = 'VIS'
-
-    elif datatype == 'echoID':
-        field_name = 'radar_echo_id'
-        datatype_odim = 'ECHOID'
-    elif datatype == 'CLT':
-        field_name = 'clutter_exit_code'
-        datatype_odim = 'CLT'
-    elif datatype == 'occurrence':
-        field_name = 'occurrence'
-        datatype_odim = 'OCC'
-    elif datatype == 'freq_occu':
-        field_name = 'frequency_of_occurrence'
-        datatype_odim = 'OCCFREQ'
-    elif datatype == 'RR':
-        field_name = 'radar_estimated_rain_rate'
-        datatype_odim = 'RATE'
-
-    elif datatype == 'hydro':
-        field_name = 'radar_echo_classification'
-        datatype_odim = 'CLASS'
-    elif datatype == 'entropy':
-        field_name = 'hydroclass_entropy'
-        datatype_odim = 'ENTROPY'
-    elif datatype == 'propAG':
-        field_name = 'proportion_AG'
-        datatype_odim = 'propAG'
-    elif datatype == 'propCR':
-        field_name = 'proportion_CR'
-        datatype_odim = 'propCR'
-    elif datatype == 'propLR':
-        field_name = 'proportion_LR'
-        datatype_odim = 'propLR'
-    elif datatype == 'propRP':
-        field_name = 'proportion_RP'
-        datatype_odim = 'propRP'
-    elif datatype == 'propRN':
-        field_name = 'proportion_RN'
-        datatype_odim = 'propRN'
-    elif datatype == 'propVI':
-        field_name = 'proportion_VI'
-        datatype_odim = 'propVI'
-    elif datatype == 'propWS':
-        field_name = 'proportion_WS'
-        datatype_odim = 'propWS'
-    elif datatype == 'propMH':
-        field_name = 'proportion_MH'
-        datatype_odim = 'propMH'
-    elif datatype == 'propIH':
-        field_name = 'proportion_IH'
-        datatype_odim = 'propIH'
-
-    elif datatype == 'time_avg_flag':
-        field_name = 'time_avg_flag'
-        datatype_odim = 'TAFLAG'
-    elif datatype == 'colocated_gates':
-        field_name = 'colocated_gates'
-        datatype_odim = 'COLGATES'
-    elif datatype == 'nsamples':
-        field_name = 'number_of_samples'
-        datatype_odim = 'ns'
-    elif datatype == 'bird_density':
-        field_name = 'bird_density'
-        datatype_odim = 'dens'
-    elif datatype == 'std':
-        field_name = 'standard_deviation'
-        datatype_odim = 'STD'
-    elif datatype == 'sum':
-        field_name = 'sum'
-        datatype_odim = 'SUM'
-    elif datatype == 'sum2':
-        field_name = 'sum_squared'
-        datatype_odim = 'SUM2'
-
-    # vol2bird field names
-    elif datatype == 'ff':
-        field_name = 'wind_speed'
-        datatype_odim = 'ff'
-    elif datatype == 'dd':
-        field_name = 'wind_direction'
-        datatype_odim = 'dd'
-    elif datatype == 'u':
-        field_name = 'eastward_wind_component'
-        datatype_odim = 'UWND'
-    elif datatype == 'v':
-        field_name = 'northward_wind_component'
-        datatype_odim = 'VWND'
-    elif datatype == 'w':
-        field_name = 'vertical_wind_component'
-        datatype_odim = 'w'
-    elif datatype == 'width':
-        field_name = 'height_resolution'
-        datatype_odim = 'width'
-    elif datatype == 'gap':
-        field_name = 'gap'
-        datatype_odim = 'gap'
-    elif datatype == 'dbz':
-        field_name = 'bird_reflectivity'
-        datatype_odim = 'eta'
-    elif datatype == 'eta':
-        field_name = 'volumetric_reflectivity'
-        datatype_odim = 'etah'
-    elif datatype == 'dens':
-        field_name = 'bird_density'
-        datatype_odim = 'dens'
-    elif datatype == 'n':
-        field_name = 'number_of_samples_velocity'
-        datatype_odim = 'n'
-    elif datatype == 'n_dbz':
-        field_name = 'number_of_samples_reflectivity'
-        datatype_odim = 'n_dbz'
-    elif datatype == 'sd_vvp':
-        field_name = 'retrieved_velocity_std'
-        datatype_odim = 'sd_vvp'
-    elif datatype == 'DBZH':
-        field_name = 'reflectivity'
-        datatype_odim = 'DBZH'
-    elif datatype == 'n_all':
-        field_name = 'number_of_samples_velocity_all'
-        datatype_odim = 'n_all'
-    elif datatype == 'n_dbz_all':
-        field_name = 'number_of_samples_reflectivity_all'
-        datatype_odim = 'n_dbz_all'
+    elif datatype == 'QIND':
+        datatype_odim = 'QIND'
+        field_name = 'signal_quality_index'
     else:
         raise ValueError(
             'ERROR: ODIM fields do not contain datatype '+datatype)
@@ -1001,12 +666,6 @@ 

Source code for pyrad.io.io_aux

         field_name = 'number_of_samples'
     elif datatype == 'bird_density':
         field_name = 'bird_density'
-    elif datatype == 'std':
-        field_name = 'standard_deviation'
-    elif datatype == 'sum':
-        field_name = 'sum'
-    elif datatype == 'sum2':
-        field_name = 'sum_squared'
 
     # vol2bird field names
     elif datatype == 'ff':
@@ -1107,7 +766,7 @@ 

Source code for pyrad.io.io_aux

         datadescriptor)
     ind_rad = int(radarnr[5:8])-1
 
-    if datatype in ('Nh', 'Nv'):
+    if (datatype == 'Nh') or (datatype == 'Nv'):
         datatype = 'dBZ'
 
     t_filelist = []
@@ -1204,7 +863,7 @@ 

Source code for pyrad.io.io_aux

                     starttime+datetime.timedelta(days=i)).strftime(
                         fpath_strf)
                 datapath = (cfg['datapath'][ind_rad] + daydir+'/')
-                dayfilelist = glob.glob(datapath+'*'+scan+'*.h5')
+                dayfilelist = glob.glob(datapath+'*'+scan)
             else:
                 dayinfo = (starttime+datetime.timedelta(days=i)).strftime('%y%j')
                 basename = ('M'+cfg['RadarRes'][ind_rad] +
@@ -1227,11 +886,7 @@ 

Source code for pyrad.io.io_aux

                 continue
             for filename in dayfilelist:
                 t_filelist.append(filename)
-        elif datagroup in ('CFRADIAL', 'ODIMPYRAD'):
-            termination = '.nc'
-            if datagroup == 'ODIMPYRAD':
-                termination = '.h5'
-
+        elif datagroup == 'CFRADIAL':
             daydir = (
                 starttime+datetime.timedelta(days=i)).strftime('%Y-%m-%d')
             dayinfo = (starttime+datetime.timedelta(days=i)).strftime('%Y%m%d')
@@ -1241,7 +896,7 @@ 

Source code for pyrad.io.io_aux

             if not os.path.isdir(datapath):
                 warn("WARNING: Unknown datapath '%s'" % datapath)
                 continue
-            dayfilelist = glob.glob(datapath+dayinfo+'*'+datatype+termination)
+            dayfilelist = glob.glob(datapath+dayinfo+'*'+datatype+'.nc')
             for filename in dayfilelist:
                 t_filelist.append(filename)
         elif datagroup == 'MXPOL':
@@ -1274,9 +929,8 @@ 

Source code for pyrad.io.io_aux

     for filename in t_filelist:
         filenamestr = str(filename)
         fdatetime = get_datetime(filenamestr, datadescriptor)
-        if fdatetime is not None:
-            if (fdatetime >= starttime) and (fdatetime <= endtime):
-                filelist.append(filenamestr)
+        if (fdatetime >= starttime) and (fdatetime <= endtime):
+            filelist.append(filenamestr)
 
     return sorted(filelist)
@@ -1424,7 +1078,7 @@

Source code for pyrad.io.io_aux

             product = None
         else:
             datagroup = descrfields[1]
-            if datagroup in ('CFRADIAL', 'ODIMPYRAD'):
+            if datagroup == 'CFRADIAL':
                 descrfields2 = descrfields[2].split(',')
                 datatype = descrfields2[0]
                 dataset = descrfields2[1]
@@ -1447,7 +1101,7 @@ 

Source code for pyrad.io.io_aux

     else:
         radarnr = 'RADAR001'
         datagroup = descrfields[0]
-        if datagroup in ('CFRADIAL', 'ODIMPYRAD'):
+        if datagroup == 'CFRADIAL':
             descrfields2 = descrfields[1].split(',')
             datatype = descrfields2[0]
             dataset = descrfields2[1]
@@ -1770,7 +1424,7 @@ 

Source code for pyrad.io.io_aux

 
     """
     bfile = os.path.basename(fname)
-    if datagroup in ('RAINBOW', 'CFRADIAL', 'ODIMPYRAD'):
+    if datagroup == 'RAINBOW' or datagroup == 'CFRADIAL':
         datetimestr = bfile[0:14]
         fdatetime = datetime.datetime.strptime(datetimestr, '%Y%m%d%H%M%S')
     elif datagroup == 'RAD4ALP':
@@ -1782,8 +1436,19 @@ 

Source code for pyrad.io.io_aux

             datetimestr = bfile[3:12]
             fdatetime = datetime.datetime.strptime(datetimestr, '%y%j%H%M')
         else:
-            return find_date_in_file_name(
-                bfile, date_format=ftime_format[ftime_format.find("F")+2:-1])
+            fdate_strf = ftime_format[ftime_format.find("F")+2:-1]
+            today = datetime.datetime.now()
+            len_datestr = len(today.strftime(fdate_strf))
+            count = 0
+            while True:
+                try:
+                    fdatetime = datetime.datetime.strptime(
+                        os.path.basename(bfile)[count:count+len_datestr], fdate_strf)
+                except ValueError:
+                    count = count + 1
+                else:
+                    # No error, stop the loop
+                    break
     elif datagroup == 'MXPOL':
         datetimestr = re.findall(r"([0-9]{8}-[0-9]{6})", bfile)[0]
         fdatetime = datetime.datetime.strptime(datetimestr, '%Y%m%d-%H%M%S')
@@ -1792,46 +1457,6 @@ 

Source code for pyrad.io.io_aux

         return None
 
     return fdatetime
-
-
-def find_date_in_file_name(filename, date_format='%Y%m%d%H%M%S'):
-    """
-    Find a date with date format defined in date_format in a file name.
-    If no date is found returns None
-
-    Parameters
-    ----------
-    filename : str
-        file name
-    date_format : str
-        The time format
-
-    Returns
-    -------
-    fdatetime : datetime object
-        date and time in file name
-
-    """
-    today = datetime.datetime.now()
-    len_datestr = len(today.strftime(date_format))
-    count = 0
-    bfile = os.path.basename(filename)
-    while True:
-        try:
-            fdatetime = datetime.datetime.strptime(
-                bfile[count:count+len_datestr], date_format)
-        except ValueError:
-            count = count + 1
-            if count+len_datestr >= len(bfile):
-                warn('Unable to find date from string name. ' +
-                     'date format '+date_format+'. File name ' +
-                     bfile)
-                return None
-        else:
-            # No error, stop the loop
-            break
-
-    return fdatetime
 
@@ -1854,7 +1479,7 @@

Navigation

\ No newline at end of file diff --git a/docs/_modules/pyrad/io/read_data_cosmo.html b/docs/_modules/pyrad/io/read_data_cosmo.html index 2615a2b..27b1b6d 100644 --- a/docs/_modules/pyrad/io/read_data_cosmo.html +++ b/docs/_modules/pyrad/io/read_data_cosmo.html @@ -14,7 +14,6 @@ - @@ -580,7 +579,7 @@

Navigation

\ No newline at end of file diff --git a/docs/_modules/pyrad/io/read_data_hzt.html b/docs/_modules/pyrad/io/read_data_hzt.html index 3160f56..d26d315 100644 --- a/docs/_modules/pyrad/io/read_data_hzt.html +++ b/docs/_modules/pyrad/io/read_data_hzt.html @@ -14,7 +14,6 @@ - @@ -375,7 +374,7 @@

Navigation

\ No newline at end of file diff --git a/docs/_modules/pyrad/io/read_data_other.html b/docs/_modules/pyrad/io/read_data_other.html index 0749f1a..94477fb 100644 --- a/docs/_modules/pyrad/io/read_data_other.html +++ b/docs/_modules/pyrad/io/read_data_other.html @@ -14,7 +14,6 @@ - @@ -1572,7 +1571,7 @@

Navigation

\ No newline at end of file diff --git a/docs/_modules/pyrad/io/read_data_radar.html b/docs/_modules/pyrad/io/read_data_radar.html index 966dc97..242a79a 100644 --- a/docs/_modules/pyrad/io/read_data_radar.html +++ b/docs/_modules/pyrad/io/read_data_radar.html @@ -14,7 +14,6 @@ - @@ -73,7 +72,7 @@

Source code for pyrad.io.read_data_radar

     merge_scans_dem_rad4alp
     merge_scans_hydro_rad4alp
     merge_fields_rainbow
-    merge_fields_pyrad
+    merge_fields_cfradial
     merge_fields_dem
     merge_fields_cosmo
     get_data_rainbow
@@ -100,12 +99,13 @@ 

Source code for pyrad.io.read_data_radar

     _WRADLIB_AVAILABLE = False
 
 import pyart
+from pyart.aux_io.odim_h5 import read_odim_h5 as read_odim
 
 from .read_data_other import read_status, read_rad4alp_cosmo, read_rad4alp_vis
 from .read_data_mxpol import pyrad_MXPOL, pyrad_MCH
 
 from .io_aux import get_datatype_metranet, get_fieldname_pyart, get_file_list
-from .io_aux import get_datatype_odim, find_date_in_file_name
+from .io_aux import get_datatype_odim
 from .io_aux import get_datatype_fields, get_datetime, map_hydro, map_Doppler
 from .io_aux import find_cosmo_file, find_rad4alpcosmo_file
 
@@ -137,9 +137,6 @@ 

Source code for pyrad.io.read_data_radar

     datatype_cfradial = list()
     dataset_cfradial = list()
     product_cfradial = list()
-    datatype_odimpyrad = list()
-    dataset_odimpyrad = list()
-    product_odimpyrad = list()
     datatype_cosmo = list()
     datatype_rad4alpcosmo = list()
     datatype_dem = list()
@@ -161,10 +158,6 @@ 

Source code for pyrad.io.read_data_radar

             datatype_cfradial.append(datatype)
             dataset_cfradial.append(dataset)
             product_cfradial.append(product)
-        elif datagroup == 'ODIMPYRAD':
-            datatype_odimpyrad.append(datatype)
-            dataset_odimpyrad.append(dataset)
-            product_odimpyrad.append(product)
         elif datagroup == 'COSMO':
             datatype_cosmo.append(datatype)
         elif datagroup == 'RAD4ALPCOSMO':
@@ -186,7 +179,6 @@ 

Source code for pyrad.io.read_data_radar

     ndatatypes_rad4alp = len(datatype_rad4alp)
     ndatatypes_odim = len(datatype_odim)
     ndatatypes_cfradial = len(datatype_cfradial)
-    ndatatypes_odimpyrad = len(datatype_odimpyrad)
     ndatatypes_cosmo = len(datatype_cosmo)
     ndatatypes_rad4alpcosmo = len(datatype_rad4alpcosmo)
     ndatatypes_dem = len(datatype_dem)
@@ -224,16 +216,10 @@ 

Source code for pyrad.io.read_data_radar

             datatype_mxpol, cfg)
 
     if ndatatypes_cfradial > 0:
-        radar_aux = merge_fields_pyrad(
+        radar_aux = merge_fields_cfradial(
             cfg['loadbasepath'][ind_rad], cfg['loadname'][ind_rad], voltime,
             datatype_cfradial, dataset_cfradial, product_cfradial,
-            rmax=cfg['rmax'])
-        radar = add_field(radar, radar_aux)
-    if ndatatypes_odimpyrad > 0:
-        radar_aux = merge_fields_pyrad(
-            cfg['loadbasepath'][ind_rad], cfg['loadname'][ind_rad], voltime,
-            datatype_odimpyrad, dataset_odimpyrad, product_odimpyrad,
-            rmax=cfg['rmax'], termination='.h5')
+            cfg['rmax'])
         radar = add_field(radar, radar_aux)
 
     # add COSMO files to the radar field
@@ -612,7 +598,7 @@ 

Source code for pyrad.io.read_data_radar

     radar = None
     dayinfo = voltime.strftime('%y%j')
     timeinfo = voltime.strftime('%H%M')
-    if radar_name is not None and radar_res is not None:
+    if (radar_name != None) or (radar_res != None):
         basename = 'M'+radar_res+radar_name+dayinfo
     if cfg['path_convention'] == 'LTE':
         yy = dayinfo[0:2]
@@ -636,13 +622,7 @@ 

Source code for pyrad.io.read_data_radar

         fpath_strf = dataset_list[0][dataset_list[0].find("D")+2:dataset_list[0].find("F")-2]
         fdate_strf = dataset_list[0][dataset_list[0].find("F")+2:-1]
         datapath = (basepath+voltime.strftime(fpath_strf)+'/')
-        filenames = glob.glob(datapath+'*'+scan_list[0]+'*')
-        filename = []
-        for filename_aux in filenames:
-            fdatetime = find_date_in_file_name(
-                filename_aux, date_format=fdate_strf)
-            if fdatetime == voltime:
-                filename = [filename_aux]
+        filename = glob.glob(datapath+'*'+scan_list[0]+'*')
     else:
         datapath = basepath+'M'+radar_res+radar_name+'/'
         filename = glob.glob(
@@ -663,14 +643,7 @@ 

Source code for pyrad.io.read_data_radar

     # merge the elevations into a single radar instance
     for scan in scan_list[1:]:
         if cfg['path_convention'] == 'ODIM':
-            filenames = glob.glob(datapath+'*'+scan+'*')
-            filename = []
-            for filename_aux in filenames:
-                fdatetime = find_date_in_file_name(
-                    filename_aux, date_format=fdate_strf)
-                if fdatetime == voltime:
-                    filename = [filename_aux]
-                    break
+            filename = glob.glob(datapath+'*'+scan+'*')
         else:
             filename = glob.glob(datapath+basename+timeinfo+'*'+scan+'*')
         if not filename:
@@ -688,7 +661,6 @@ 

Source code for pyrad.io.read_data_radar

 
     return radar
 
-
 def merge_scans_mxpol(basepath, scan_list, voltime, datatype_list, cfg):
     """
     merge rad4alp data.
@@ -1406,7 +1378,7 @@ 

Source code for pyrad.io.read_data_radar

 
     # add other fields in the same scan
     for datatype in datatype_list[1:]:
-        if datatype not in ('Nh', 'Nv'):
+        if (datatype != 'Nh') and (datatype != 'Nv'):
             filename = glob.glob(datapath+fdatetime+datatype+'.*')
         elif datatype == 'Nh':
             filename = glob.glob(datapath+fdatetime+'dBZ.*')
@@ -1433,12 +1405,10 @@ 

Source code for pyrad.io.read_data_radar

     return radar
 
 
-def merge_fields_pyrad(basepath, loadname, voltime, datatype_list,
-                       dataset_list, product_list, rmax=0.,
-                       termination='.nc'):
+def merge_fields_cfradial(basepath, loadname, voltime, datatype_list,
+                          dataset_list, product_list, rmax=0.):
     """
-    merge fields from Pyrad-generated files into a single radar object.
-    Accepted file types are CFRadial and ODIM.
+    merge CF/Radial fields into a single radar object.
 
     Parameters
     ----------
@@ -1457,8 +1427,6 @@ 

Source code for pyrad.io.read_data_radar

         list of products. Used to get path
     rmax : float
         maximum range that will be kept.
-    termination : str
-        file termination type. Can be '.nc' or '.h5'
 
     Returns
     -------
@@ -1469,7 +1437,7 @@ 

Source code for pyrad.io.read_data_radar

     datapath = (basepath+loadname+'/'+voltime.strftime('%Y-%m-%d')+'/' +
                 dataset_list[0]+'/'+product_list[0]+'/')
     fdatetime = voltime.strftime('%Y%m%d%H%M%S')
-    filename = glob.glob(datapath+fdatetime+'*'+datatype_list[0]+termination)
+    filename = glob.glob(datapath+fdatetime+'*'+datatype_list[0]+'.nc')
 
     # create radar object
     radar = None
@@ -1477,10 +1445,7 @@ 

Source code for pyrad.io.read_data_radar

         warn('No file found in '+datapath+fdatetime+'*'+datatype_list[0] +
              '.nc')
     else:
-        if termination == '.nc':
-            radar = pyart.io.read_cfradial(filename[0])
-        else:
-            radar = pyart.aux_io.read_odim_h5(filename[0])
+        radar = pyart.io.read_cfradial(filename[0])
         if rmax > 0.:
             radar.range['data'] = radar.range['data'][
                 radar.range['data'] < rmax]
@@ -1500,16 +1465,13 @@ 

Source code for pyrad.io.read_data_radar

                 basepath+loadname+'/'+voltime.strftime('%Y-%m-%d')+'/' +
                 dataset+'/'+product_list[i]+'/')
             filename = glob.glob(
-                datapath+fdatetime+'*'+datatype_list[i]+termination)
+                datapath+fdatetime+'*'+datatype_list[i]+'.nc')
             if not filename:
                 warn('No file found in '+datapath+fdatetime+'*' +
                      datatype_list[i]+'.nc')
                 continue
 
-            if termination == '.nc':
-                radar_aux = pyart.io.read_cfradial(filename[0])
-            else:
-                radar_aux = pyart.aux_io.read_odim_h5(filename[0])
+            radar_aux = pyart.io.read_cfradial(filename[0])
             if rmax > 0.:
                 radar_aux.range['data'] = radar_aux.range['data'][
                     radar_aux.range['data'] < rmax]
@@ -1661,7 +1623,7 @@ 

Source code for pyrad.io.read_data_radar

     if radar is None:
         return None
 
-    if datatype in ('Nh', 'Nv'):
+    if (datatype == 'Nh') or (datatype == 'Nv'):
         try:
             with open(filename, 'rb') as fid:
                 rbf = wrl.io.read_rainbow(fid, loaddata=True)
@@ -1721,7 +1683,7 @@ 

Source code for pyrad.io.read_data_radar

     """
     metranet_field_names = dict()
     for datatype in datatype_list:
-        if datatype not in ('Nh', 'Nv'):
+        if (datatype != 'Nh') and (datatype != 'Nv'):
             metranet_field_names.update(get_datatype_metranet(datatype))
 
     if cfg['path_convention'] == 'LTE':
@@ -1833,10 +1795,10 @@ 

Source code for pyrad.io.read_data_radar

     """
     odim_field_names = dict()
     for datatype in datatype_list:
-        if datatype not in ('Nh', 'Nv'):
+        if (datatype != 'Nh') and (datatype != 'Nv'):
             odim_field_names.update(get_datatype_odim(datatype))
         try:
-            radar = pyart.aux_io.read_odim_h5(
+            radar = read_odim(
                 filename, field_names=odim_field_names)
         except ValueError as ee:
             warn("Unable to read file '"+filename+": (%s)" % str(ee))
@@ -1935,7 +1897,7 @@ 

Source code for pyrad.io.read_data_radar

     """
     field_names = dict()
     for datatype in datatype_list:
-        if datatype not in ('Nh', 'Nv'):
+        if (datatype != 'Nh') and (datatype != 'Nv'):
             field_names.update(get_datatype_metranet(datatype))
     radar = pyrad_MXPOL(filename, field_names=field_names)
 
@@ -2113,7 +2075,7 @@ 

Navigation

\ No newline at end of file diff --git a/docs/_modules/pyrad/io/read_data_sensor.html b/docs/_modules/pyrad/io/read_data_sensor.html index c24636f..550df88 100644 --- a/docs/_modules/pyrad/io/read_data_sensor.html +++ b/docs/_modules/pyrad/io/read_data_sensor.html @@ -14,7 +14,6 @@ - @@ -1305,7 +1304,7 @@

Navigation

\ No newline at end of file diff --git a/docs/_modules/pyrad/io/read_data_sun.html b/docs/_modules/pyrad/io/read_data_sun.html index f3913cf..d691419 100644 --- a/docs/_modules/pyrad/io/read_data_sun.html +++ b/docs/_modules/pyrad/io/read_data_sun.html @@ -14,7 +14,6 @@ - @@ -487,7 +486,7 @@

Navigation

\ No newline at end of file diff --git a/docs/_modules/pyrad/io/timeseries.html b/docs/_modules/pyrad/io/timeseries.html index 3f56ac2..c43f40a 100644 --- a/docs/_modules/pyrad/io/timeseries.html +++ b/docs/_modules/pyrad/io/timeseries.html @@ -14,7 +14,6 @@ - @@ -317,7 +316,7 @@

Navigation

\ No newline at end of file diff --git a/docs/_modules/pyrad/io/trajectory.html b/docs/_modules/pyrad/io/trajectory.html index 0a573c0..5daead7 100644 --- a/docs/_modules/pyrad/io/trajectory.html +++ b/docs/_modules/pyrad/io/trajectory.html @@ -14,7 +14,6 @@ - @@ -751,7 +750,7 @@

Navigation

\ No newline at end of file diff --git a/docs/_modules/pyrad/io/write_data.html b/docs/_modules/pyrad/io/write_data.html index 20bf96e..c795177 100644 --- a/docs/_modules/pyrad/io/write_data.html +++ b/docs/_modules/pyrad/io/write_data.html @@ -14,7 +14,6 @@ - @@ -1908,7 +1907,7 @@

Navigation

\ No newline at end of file diff --git a/docs/_modules/pyrad/proc/process_Doppler.html b/docs/_modules/pyrad/proc/process_Doppler.html index 9275b03..c53f117 100644 --- a/docs/_modules/pyrad/proc/process_Doppler.html +++ b/docs/_modules/pyrad/proc/process_Doppler.html @@ -14,7 +14,6 @@ - @@ -551,7 +550,7 @@

Navigation

\ No newline at end of file diff --git a/docs/_modules/pyrad/proc/process_aux.html b/docs/_modules/pyrad/proc/process_aux.html index ce660ef..a824368 100644 --- a/docs/_modules/pyrad/proc/process_aux.html +++ b/docs/_modules/pyrad/proc/process_aux.html @@ -14,7 +14,6 @@ - @@ -265,9 +264,6 @@

Source code for pyrad.proc.process_aux

     elif dataset_type == 'OCCURRENCE':
         func_name = 'process_occurrence'
         dsformat = 'OCCURRENCE'
-    elif dataset_type == 'TIMEAVG_STD':
-        func_name = 'process_time_avg_std'
-        dsformat = 'OCCURRENCE'
     elif dataset_type == 'OCCURRENCE_PERIOD':
         func_name = 'process_occurrence_period'
         dsformat = 'OCCURRENCE'
@@ -756,7 +752,7 @@ 

Source code for pyrad.proc.process_aux

     delta_azi = dscfg.get('delta_azi', None)
     avg_type = dscfg.get('avg_type', 'mean')
     nvalid_min = dscfg.get('nvalid_min', 1)
-    if avg_type not in ('mean', 'median'):
+    if avg_type != 'mean' and avg_type != 'median':
         warn('Unsuported statistics '+avg_type)
         return None, None
 
@@ -851,7 +847,7 @@ 

Navigation

\ No newline at end of file diff --git a/docs/_modules/pyrad/proc/process_calib.html b/docs/_modules/pyrad/proc/process_calib.html index c3b169c..9ba6407 100644 --- a/docs/_modules/pyrad/proc/process_calib.html +++ b/docs/_modules/pyrad/proc/process_calib.html @@ -14,7 +14,6 @@ - @@ -67,7 +66,6 @@

Source code for pyrad.proc.process_calib

     process_correct_noise_rhohv
     process_gc_monitoring
     process_occurrence
-    process_time_avg_std
     process_occurrence_period
     process_sun_hits
 
@@ -319,7 +317,7 @@ 

Source code for pyrad.proc.process_calib

 
         # filter wet or dry volumes
         filter_prec = dscfg.get('filter_prec', 'None')
-        if filter_prec in ('keep_wet', 'keep_dry'):
+        if filter_prec == 'keep_wet' or filter_prec == 'keep_dry':
             if echoid_field not in radar.fields:
                 warn('Unable to determine if there is precipitation ' +
                      'close to the radar. Missing echoID field.')
@@ -516,7 +514,7 @@ 

Source code for pyrad.proc.process_calib

                 mask, radar.fields[field_name]['data'] < val_min)
 
         filter_prec = dscfg.get('filter_prec', 'None')
-        if filter_prec in ('keep_wet', 'keep_dry'):
+        if filter_prec == 'keep_wet' or filter_prec == 'keep_dry':
             if echoid_field not in radar.fields:
                 warn('Unable to determine if there is precipitation ' +
                      'close to the radar. Missing echoID field.')
@@ -657,253 +655,6 @@ 

Source code for pyrad.proc.process_calib

         return new_dataset, ind_rad
-
[docs]def process_time_avg_std(procstatus, dscfg, radar_list=None): - """ - computes the average and standard deviation of data. It looks only for - gates where data is present. - - Parameters - ---------- - procstatus : int - Processing status: 0 initializing, 1 processing volume, - 2 post-processing - dscfg : dictionary of dictionaries - data set configuration. Accepted Configuration Keywords:: - - datatype : list of string. Dataset keyword - The input data types - regular_grid : Boolean. Dataset keyword - Whether the radar has a Boolean grid or not. Default False - rmin, rmax : float. Dataset keyword - minimum and maximum ranges where the computation takes place. If - -1 the whole range is considered. Default is -1 - val_min : Float. Dataset keyword - Minimum reflectivity value to consider that the gate has signal. - Default None - filter_prec : str. Dataset keyword - Give which type of volume should be filtered. None, no filtering; - keep_wet, keep wet volumes; keep_dry, keep dry volumes. - rmax_prec : float. Dataset keyword - Maximum range to consider when looking for wet gates [m] - percent_prec_max : float. Dataset keyword - Maxim percentage of wet gates to consider the volume dry - lin_trans : Boolean. Dataset keyword - If True the data will be transformed into linear units. Default - False - radar_list : list of Radar objects - Optional. list of radar objects - - Returns - ------- - new_dataset : dict - dictionary containing the output - ind_rad : int - radar index - - """ - echoid_field = None - refl_field = None - for datatypedescr in dscfg['datatype']: - radarnr, _, datatype, _, _ = get_datatype_fields(datatypedescr) - if datatype == 'echoID': - echoid_field = get_fieldname_pyart(datatype) - elif (datatype in ('dBZ', 'dBZc', 'dBZv', 'dBZvc', 'dBuZ', 'dBuZc') and - refl_field is None): - refl_field = get_fieldname_pyart(datatype) - else: - field_name = get_fieldname_pyart(datatype) - ind_rad = int(radarnr[5:8])-1 - - lin_trans = dscfg.get('lin_trans', 0) - - if procstatus == 0: - return None, None - - if procstatus == 1: - if radar_list[ind_rad] is None: - warn('No valid radar') - return None, None - radar = radar_list[ind_rad] - - if field_name not in radar.fields: - warn(field_name+' not available.') - return None, None - - # filter out low reflectivity values - val_min = dscfg.get('val_min', None) - mask = np.ma.getmaskarray(radar.fields[field_name]['data']) - if val_min is not None and refl_field is not None: - mask = np.logical_or( - mask, radar.fields[refl_field]['data'] < val_min) - - filter_prec = dscfg.get('filter_prec', 'None') - if filter_prec in ('keep_wet', 'keep_dry'): - if echoid_field not in radar.fields: - warn('Unable to determine if there is precipitation ' + - 'close to the radar. Missing echoID field.') - return None, None - - # Put invalid values to noise - echoid = deepcopy(radar.fields[echoid_field]['data']) - echoid[mask] = 1 - - rmax_prec = dscfg.get('rmax_prec', 0.) - percent_prec_max = dscfg.get('percent_prec_max', 10.) - - ngates = radar.ngates - if rmax_prec > 0.: - ngates = len( - radar.range['data'][radar.range['data'] < rmax_prec]) - ngates_total = ngates*radar.nrays - - prec_field = echoid[:, :ngates] - ngates_prec = np.size(prec_field[prec_field == 3]) - - percent_prec = ngates_prec/ngates_total*100. - warn('Percent gates with precipitation: '+str(percent_prec)+'\n') - if percent_prec > percent_prec_max: - if filter_prec == 'keep_dry': - warn('Radar volume is precipitation contaminated.\n' + - 'Maximum percentage allowed: '+str(percent_prec_max)) - return None, None - else: - if filter_prec == 'keep_wet': - warn('Radar volume has not enough precipitation.\n' + - 'Minimum percentage required: ' + - str(percent_prec_max)) - return None, None - - # filter out out of range data - rmin = dscfg.get('rmin', -1.) - rmax = dscfg.get('rmax', -1.) - if rmin >= 0.: - ind_min = np.where(radar.range['data'] < rmin)[0] - if ind_min: - ind_min = ind_min[-1] - mask[:, 0:ind_min+1] = 1 - if rmax >= 0.: - ind_max = np.where(radar.range['data'] > rmax)[0] - if ind_max: - ind_max = ind_max[0] - mask[:, ind_max:radar.ngates] = 1 - - # prepare field number of samples and values sum - field = deepcopy(radar.fields[field_name]['data']) - if lin_trans: - field = np.ma.power(10., 0.1*field) - - field = np.ma.masked_where(mask, field) - field = np.ma.asarray(field) - - radar_aux = deepcopy(radar) - radar_aux.fields = dict() - - sum_dict = pyart.config.get_metadata('sum') - sum_dict['data'] = field - radar_aux.add_field('sum', sum_dict) - - sum2_dict = pyart.config.get_metadata('sum_squared') - sum2_dict['data'] = field*field - radar_aux.add_field('sum_squared', sum2_dict) - - npoints_dict = pyart.config.get_metadata('number_of_samples') - npoints_dict['data'] = np.ma.asarray(np.logical_not(mask), dtype=int) - radar_aux.add_field('number_of_samples', npoints_dict) - - # first volume: initialize radar object - if dscfg['initialized'] == 0: - new_dataset = { - 'radar_out': radar_aux, - 'starttime': dscfg['timeinfo'], - 'endtime': dscfg['timeinfo'], - 'occu_final': False} - - dscfg['global_data'] = new_dataset - dscfg['initialized'] = 1 - - return new_dataset, ind_rad - - # accumulate data - regular_grid = False - if 'regular_grid' in dscfg: - regular_grid = dscfg['regular_grid'] - - if not regular_grid: - sum_interp = interpol_field( - dscfg['global_data']['radar_out'], radar_aux, 'sum') - sum2_interp = interpol_field( - dscfg['global_data']['radar_out'], radar_aux, 'sum_squared') - npoints_interp = interpol_field( - dscfg['global_data']['radar_out'], radar_aux, - 'number_of_samples') - else: - if radar_aux.nrays != dscfg['global_data']['radar_out'].nrays: - warn('Unable to accumulate radar object. ' + - 'Number of rays of current radar different from ' + - 'reference. nrays current: '+str(radar_aux.nrays) + - ' nrays ref: ' + - str(dscfg['global_data']['radar_out'].nrays)) - return None, None - sum_interp = radar_aux.fields['sum'] - sum2_interp = radar_aux.fields['sum_squared'] - npoints_interp = radar_aux.fields['number_of_samples'] - - valid = np.logical_not(np.ma.getmaskarray(sum_interp)) - - dscfg['global_data']['radar_out'].fields['sum']['data'][valid] += ( - np.ma.asarray(sum_interp['data'][valid])) - dscfg['global_data']['radar_out'].fields['sum_squared'][ - 'data'][valid] += np.ma.asarray(sum2_interp['data'][valid]) - dscfg['global_data']['radar_out'].fields['number_of_samples'][ - 'data'][valid] += np.ma.asarray(npoints_interp['data'][valid]) - dscfg['global_data']['endtime'] = dscfg['timeinfo'] - - new_dataset = { - 'radar_out': dscfg['global_data']['radar_out'], - 'starttime': dscfg['global_data']['starttime'], - 'endtime': dscfg['global_data']['endtime'], - 'occu_final': False} - - return new_dataset, ind_rad - - # no more files to process. Compute mean and standard deviation - if procstatus == 2: - if dscfg['initialized'] == 0: - return None, None - if 'radar_out' not in dscfg['global_data']: - return None, None - - field_mean = ( - dscfg['global_data']['radar_out'].fields['sum']['data'] / - dscfg['global_data']['radar_out'].fields[ - 'number_of_samples']['data']) - field_std = np.ma.sqrt( - dscfg['global_data']['radar_out'].fields['sum_squared']['data'] / - dscfg['global_data']['radar_out'].fields[ - 'number_of_samples']['data']-field_mean*field_mean) - if lin_trans: - field_mean = 10.*np.ma.log10(field_mean) - field_std = 10.*np.ma.log10(field_std) - - radar = dscfg['global_data']['radar_out'] - - mean_dict = pyart.config.get_metadata(field_name) - mean_dict['data'] = field_mean - radar.add_field(field_name, mean_dict) - - std_dict = pyart.config.get_metadata('standard_deviation') - std_dict['data'] = field_std - radar.add_field('standard_deviation', std_dict) - - new_dataset = { - 'radar_out': radar, - 'starttime': dscfg['global_data']['starttime'], - 'endtime': dscfg['global_data']['endtime'], - 'occu_final': True} - - return new_dataset, ind_rad
- -
[docs]def process_occurrence_period(procstatus, dscfg, radar_list=None): """ computes the frequency of occurrence over a long period of time by adding @@ -1478,7 +1229,7 @@

Navigation

\ No newline at end of file diff --git a/docs/_modules/pyrad/proc/process_cosmo.html b/docs/_modules/pyrad/proc/process_cosmo.html index fe06b66..cf767c0 100644 --- a/docs/_modules/pyrad/proc/process_cosmo.html +++ b/docs/_modules/pyrad/proc/process_cosmo.html @@ -14,7 +14,6 @@ - @@ -880,7 +879,7 @@

Navigation

\ No newline at end of file diff --git a/docs/_modules/pyrad/proc/process_echoclass.html b/docs/_modules/pyrad/proc/process_echoclass.html index 696924c..366b061 100644 --- a/docs/_modules/pyrad/proc/process_echoclass.html +++ b/docs/_modules/pyrad/proc/process_echoclass.html @@ -14,7 +14,6 @@ - @@ -146,7 +145,7 @@

Source code for pyrad.proc.process_echoclass

warn('Unable to create radar_echo_id dataset. Missing data')
         return None, None
 
-    echo_id = np.ma.zeros((radar.nrays, radar.ngates), dtype=np.uint8)+3
+    echo_id = np.zeros((radar.nrays, radar.ngates), dtype=np.uint8)+3
 
     # look for clutter
     gatefilter = pyart.filters.moment_and_texture_based_gate_filter(
@@ -166,7 +165,6 @@ 

Source code for pyrad.proc.process_echoclass

id_field = pyart.config.get_metadata('radar_echo_id')
     id_field['data'] = echo_id
-    id_field.update({'_FillValue': 0})
 
     # prepare for exit
     new_dataset = {'radar_out': deepcopy(radar)}
@@ -525,7 +523,7 @@ 

Source code for pyrad.proc.process_echoclass

for datatypedescr in dscfg['datatype']:
         radarnr, _, datatype, _, _ = get_datatype_fields(datatypedescr)
-        if datatype in ('SNRh', 'SNRv'):
+        if (datatype == 'SNRh') or (datatype == 'SNRv'):
             snr_field = get_fieldname_pyart(datatype)
             break
 
@@ -549,7 +547,7 @@ 

Source code for pyrad.proc.process_echoclass

for datatypedescr in dscfg['datatype']:
         radarnr, _, datatype, _, _ = get_datatype_fields(datatypedescr)
 
-        if datatype in ('SNRh', 'SNRv'):
+        if (datatype == 'SNRh') or (datatype == 'SNRv'):
             continue
 
         field_name = get_fieldname_pyart(datatype)
@@ -733,7 +731,9 @@ 

Source code for pyrad.proc.process_echoclass

radar_aux.fields[field_name]['data'] = np.ma.masked_where(
             is_lowVIS, radar_aux.fields[field_name]['data'])
 
-        if datatype in ('dBZ', 'dBZc', 'dBuZ', 'dBZv', 'dBZvc', 'dBuZv'):
+        if ((datatype == 'dBZ') or (datatype == 'dBZc') or
+                (datatype == 'dBuZ') or (datatype == 'dBZv') or
+                (datatype == 'dBZvc') or (datatype == 'dBuZv')):
             radar_field = pyart.correct.correct_visibility(
                 radar_aux, vis_field=vis_field, field_name=field_name)
         else:
@@ -930,8 +930,6 @@ 

Source code for pyrad.proc.process_echoclass

zdr_field = 'corrected_differential_reflectivity'
             if datatype == 'RhoHV':
                 rhv_field = 'cross_correlation_ratio'
-            if datatype == 'uRhoHV':
-                rhv_field = 'uncorrected_cross_correlation_ratio'
             if datatype == 'RhoHVc':
                 rhv_field = 'corrected_cross_correlation_ratio'
             if datatype == 'KDP':
@@ -1217,18 +1215,17 @@ 

Source code for pyrad.proc.process_echoclass

radar = radar_list[ind_rad]
 
         # Check which should be the reference field for temperature
-        if iso0_field is not None:
-            if iso0_field not in radar.fields:
-                warn('Unable to detect melting layer. ' +
-                     'Missing height over iso0 field')
-                return None, None
+        if iso0_field is not None and (iso0_field not in radar.fields):
+            warn('Unable to detect melting layer. ' +
+                 'Missing height over iso0 field')
+            return None, None
+        else:
             temp_ref = 'height_over_iso0'
 
-        if temp_field is not None:
-            if temp_field not in radar.fields:
-                warn('Unable to detect melting layer. ' +
-                     'Missing temperature field')
-                return None, None
+        if temp_field is not None and (temp_field not in radar.fields):
+            warn('Unable to detect melting layer. Missing temperature field')
+            return None, None
+        else:
             temp_ref = 'temperature'
             iso0_field = 'height_over_iso0'
 
@@ -1425,6 +1422,7 @@ 

Source code for pyrad.proc.process_echoclass

if procstatus != 1:
         return None, None
 
+    temp_ref = None
     temp_field = None
     iso0_field = None
     for datatypedescr in dscfg['datatype']:
@@ -1453,13 +1451,15 @@ 

Source code for pyrad.proc.process_echoclass

warn('Unable to detect melting layer. ' +
              'Missing height over iso0 field')
         return None, None
-    temp_ref = 'height_over_iso0'
+    else:
+        temp_ref = 'height_over_iso0'
 
     if temp_field is not None and (temp_field not in radar.fields):
         warn('Unable to detect melting layer. Missing temperature field')
         return None, None
-    temp_ref = 'temperature'
-    iso0_field = 'height_over_iso0'
+    else:
+        temp_ref = 'temperature'
+        iso0_field = 'height_over_iso0'
 
     if ((zdr_field not in radar.fields) or
             (rhv_field not in radar.fields)):
@@ -1595,7 +1595,7 @@ 

Navigation

\ No newline at end of file diff --git a/docs/_modules/pyrad/proc/process_intercomp.html b/docs/_modules/pyrad/proc/process_intercomp.html index f38bd52..0ccf31d 100644 --- a/docs/_modules/pyrad/proc/process_intercomp.html +++ b/docs/_modules/pyrad/proc/process_intercomp.html @@ -14,7 +14,6 @@ - @@ -530,7 +529,7 @@

Source code for pyrad.proc.process_intercomp

hydro_field = radar.fields[hydro_name]
                 # check where is no rain
                 is_not_rain = np.logical_and(
-                    hydro_field['data'] != 4, hydro_field['data'] != 6)
+                    hydro_field['data'] != 3, hydro_field['data'] != 5)
                 # where is no rain should be precip
                 is_not_rain = np.logical_and(
                     is_not_rain, echo_field['data'] == 3)
@@ -1603,7 +1602,7 @@ 

Navigation

\ No newline at end of file diff --git a/docs/_modules/pyrad/proc/process_monitoring.html b/docs/_modules/pyrad/proc/process_monitoring.html index 7d2fd29..be24dd7 100644 --- a/docs/_modules/pyrad/proc/process_monitoring.html +++ b/docs/_modules/pyrad/proc/process_monitoring.html @@ -14,7 +14,6 @@ - @@ -219,7 +218,7 @@

Source code for pyrad.proc.process_monitoring

warn('Unable to retrieve PhiDP and KDP using self-consistency. ' + 'No selfconsistency files for the radar elevations.') - return None, None + return None zdr_kdpzh_dict = {'zdr_kdpzh': zdr_kdpzh_list, 'elev': el_list} @@ -406,7 +405,7 @@

Source code for pyrad.proc.process_monitoring

warn('Unable to retrieve PhiDP and KDP using self-consistency. ' + 'No selfconsistency files for the radar elevations.') - return None, None + return None zdr_kdpzh_dict = {'zdr_kdpzh': zdr_kdpzh_list, 'elev': el_list} @@ -920,7 +919,7 @@

Source code for pyrad.proc.process_monitoring

Default None hydroclass : list of ints. Dataset keyword list of hydrometeor classes to keep for the analysis - Default [2] (dry snow) + Default [1] (dry snow) radar_list : list of Radar objects Optional. list of radar objects @@ -980,24 +979,53 @@

Source code for pyrad.proc.process_monitoring

(rhohv_field not in radar.fields) or (zdr_field not in radar.fields) or (phidp_field not in radar.fields) or + (snr_field not in radar.fields) or (hydro_field not in radar.fields)): warn('Unable to estimate ZDR in snow. Missing data') return None, None - # User defined values - rmin = dscfg.get('rmin', 1000.) - rmax = dscfg.get('rmax', 50000.) - zmin = dscfg.get('Zmin', 0.) - zmax = dscfg.get('Zmax', 30.) - snrmin = dscfg.get('SNRmin', 10.) - snrmax = dscfg.get('SNRmax', 50.) - rhohvmin = dscfg.get('RhoHVmin', 0.97) - phidpmax = dscfg.get('PhiDPmax', 10.) - elmax = dscfg.get('elmax', None) - kdpmax = dscfg.get('KDPmax', None) - tempmin = dscfg.get('TEMPmin', None) - tempmax = dscfg.get('TEMPmax', None) - hydroclass = dscfg.get('hydroclass', [2]) + # default values + rmin = 1000. + rmax = 50000. + zmin = 0. + zmax = 30. + snrmin = 10. + snrmax = 50. + rhohvmin = 0.97 + phidpmax = 10. + elmax = None + kdpmax = None + tempmin = None + tempmax = None + hydroclass = [1] + + # user defined values + if 'rmin' in dscfg: + rmin = dscfg['rmin'] + if 'rmax' in dscfg: + rmax = dscfg['rmax'] + if 'Zmin' in dscfg: + zmin = dscfg['Zmin'] + if 'Zmax' in dscfg: + zmax = dscfg['Zmax'] + if 'SNRmin' in dscfg: + snrmin = dscfg['SNRmin'] + if 'SNRmax' in dscfg: + snrmax = dscfg['SNRmax'] + if 'RhoHVmin' in dscfg: + rhohvmin = dscfg['RhoHVmin'] + if 'PhiDPmax' in dscfg: + phidpmax = dscfg['PhiDPmax'] + if 'KDPmax' in dscfg: + kdpmax = dscfg['KDPmax'] + if 'TEMPmin' in dscfg: + tempmin = dscfg['TEMPmin'] + if 'TEMPmax' in dscfg: + tempmax = dscfg['TEMPmax'] + if 'elmax' in dscfg: + elmax = dscfg['elmax'] + if 'hydroclass' in dscfg: + hydroclass = dscfg['hydroclass'] ind_rmin = np.where(radar.range['data'] > rmin)[0][0] ind_rmax = np.where(radar.range['data'] < rmax)[0][-1] @@ -1159,7 +1187,7 @@

Navigation

\ No newline at end of file diff --git a/docs/_modules/pyrad/proc/process_phase.html b/docs/_modules/pyrad/proc/process_phase.html index 47e1f78..8fb2cdd 100644 --- a/docs/_modules/pyrad/proc/process_phase.html +++ b/docs/_modules/pyrad/proc/process_phase.html @@ -14,7 +14,6 @@ - @@ -1224,7 +1223,7 @@

Navigation

\ No newline at end of file diff --git a/docs/_modules/pyrad/proc/process_retrieve.html b/docs/_modules/pyrad/proc/process_retrieve.html index 93eb964..d9cc725 100644 --- a/docs/_modules/pyrad/proc/process_retrieve.html +++ b/docs/_modules/pyrad/proc/process_retrieve.html @@ -14,7 +14,6 @@ - @@ -1058,7 +1057,7 @@

Navigation

\ No newline at end of file diff --git a/docs/_modules/pyrad/proc/process_timeseries.html b/docs/_modules/pyrad/proc/process_timeseries.html index 5e1e031..3a55fb1 100644 --- a/docs/_modules/pyrad/proc/process_timeseries.html +++ b/docs/_modules/pyrad/proc/process_timeseries.html @@ -14,7 +14,6 @@ - @@ -71,13 +70,18 @@

Source code for pyrad.proc.process_timeseries

process_time_height """ +from copy import deepcopy from warnings import warn import numpy as np +from scipy.interpolate import interp1d from netCDF4 import num2date import pyart from ..io.io_aux import get_datatype_fields, get_fieldname_pyart +from ..util.radar_utils import find_nearest_gate, find_neighbour_gates +from ..util.radar_utils import project_to_vertical, compute_directional_stats +from ..util.radar_utils import get_target_elevations
[docs]def process_point_measurement(procstatus, dscfg, radar_list=None): @@ -330,11 +334,10 @@

Source code for pyrad.proc.process_timeseries

return None, None if procstatus == 1: - field_names = [] for datatypedescr in dscfg['datatype']: radarnr, _, datatype, _, _ = get_datatype_fields(datatypedescr) - field_names.append(get_fieldname_pyart(datatype)) - + break + field_name = get_fieldname_pyart(datatype) ind_rad = int(radarnr[5:8])-1 if (radar_list is None) or (radar_list[ind_rad] is None): @@ -343,6 +346,10 @@

Source code for pyrad.proc.process_timeseries

radar = radar_list[ind_rad] + if field_name not in radar.fields: + warn('Field name '+field_name+' not available in radar object') + return None, None + # default parameters angle = dscfg.get('angle', 0) ang_tol = dscfg.get('ang_tol', 1.) @@ -355,7 +362,7 @@

Source code for pyrad.proc.process_timeseries

# initialize dataset if not dscfg['initialized']: qvp = pyart.retrieve.compute_qvp( - radar, field_names, ref_time=dscfg['timeinfo'], + radar, [field_name], ref_time=dscfg['timeinfo'], angle=angle, ang_tol=ang_tol, hmax=hmax, hres=hres, avg_type=avg_type, nvalid_min=nvalid_min, interp_kind=interp_kind, qvp=None) @@ -371,7 +378,7 @@

Source code for pyrad.proc.process_timeseries

dscfg['initialized'] = 1 else: qvp = pyart.retrieve.compute_qvp( - radar, field_names, ref_time=dscfg['timeinfo'], + radar, [field_name], ref_time=dscfg['timeinfo'], angle=angle, ang_tol=ang_tol, hmax=hmax, hres=hres, avg_type=avg_type, nvalid_min=nvalid_min, interp_kind=interp_kind, @@ -391,15 +398,14 @@

Source code for pyrad.proc.process_timeseries

return new_dataset, ind_rad if procstatus == 2: - if not dscfg['initialized']: - return None, None - for datatypedescr in dscfg['datatype']: radarnr, _, datatype, _, _ = get_datatype_fields(datatypedescr) break ind_rad = int(radarnr[5:8])-1 + print(dscfg['global_data']) + qvp = dscfg['global_data']['radar_out'] new_dataset = dict() @@ -477,11 +483,10 @@

Source code for pyrad.proc.process_timeseries

return None, None if procstatus == 1: - field_names = [] for datatypedescr in dscfg['datatype']: radarnr, _, datatype, _, _ = get_datatype_fields(datatypedescr) - field_names.append(get_fieldname_pyart(datatype)) - + break + field_name = get_fieldname_pyart(datatype) ind_rad = int(radarnr[5:8])-1 if (radar_list is None) or (radar_list[ind_rad] is None): @@ -490,19 +495,23 @@

Source code for pyrad.proc.process_timeseries

radar = radar_list[ind_rad] + if field_name not in radar.fields: + warn('Field name '+field_name+' not available in radar object') + return None, None + # default parameters hmax = dscfg.get('hmax', 10000.) hres = dscfg.get('hres', 2.) avg_type = dscfg.get('avg_type', 'mean') nvalid_min = dscfg.get('nvalid_min', 30) interp_kind = dscfg.get('interp_kind', 'nearest') - rmax = dscfg.get('rmax', 50000.) + rmax = dscfg.get('rmax', 50000.)/1000. # [Km] weight_power = dscfg.get('weight_power', 2.) # initialize dataset if not dscfg['initialized']: qvp = pyart.retrieve.compute_rqvp( - radar, field_names, ref_time=dscfg['timeinfo'], + radar, [field_name], ref_time=dscfg['timeinfo'], hmax=hmax, hres=hres, avg_type=avg_type, nvalid_min=nvalid_min, interp_kind=interp_kind, rmax=rmax, weight_power=weight_power, qvp=None) @@ -513,12 +522,12 @@

Source code for pyrad.proc.process_timeseries

global_dict = dict() global_dict.update({'start_time': dscfg['timeinfo']}) - global_dict.update({'radar_out': qvp}) + global_dict.update({'radar_out': qvp_aux}) dscfg['global_data'] = global_dict dscfg['initialized'] = 1 else: qvp = pyart.retrieve.compute_rqvp( - radar, field_names, ref_time=dscfg['timeinfo'], + radar, [field_name], ref_time=dscfg['timeinfo'], hmax=hmax, hres=hres, avg_type=avg_type, nvalid_min=nvalid_min, interp_kind=interp_kind, rmax=rmax, weight_power=weight_power, @@ -538,9 +547,6 @@

Source code for pyrad.proc.process_timeseries

return new_dataset, ind_rad if procstatus == 2: - if not dscfg['initialized']: - return None, None - for datatypedescr in dscfg['datatype']: radarnr, _, datatype, _, _ = get_datatype_fields(datatypedescr) break @@ -612,22 +618,15 @@

Source code for pyrad.proc.process_timeseries

ind_rad : int radar index - Reference - --------- - Kaltenboeck R., Ryzhkov A. 2016: A freezing rain storm explored with a - C-band polarimetric weather radar using the QVP methodology. Meteorologische - Zeitschrift vol. 26 pp 207-222 - """ if procstatus == 0: return None, None if procstatus == 1: - field_names = [] for datatypedescr in dscfg['datatype']: radarnr, _, datatype, _, _ = get_datatype_fields(datatypedescr) - field_names.append(get_fieldname_pyart(datatype)) - + break + field_name = get_fieldname_pyart(datatype) ind_rad = int(radarnr[5:8])-1 if (radar_list is None) or (radar_list[ind_rad] is None): @@ -636,6 +635,10 @@

Source code for pyrad.proc.process_timeseries

radar = radar_list[ind_rad] + if field_name not in radar.fields: + warn('Field name '+field_name+' not available in radar object') + return None, None + # default parameters lon = dscfg['lon'] lat = dscfg['lat'] @@ -647,59 +650,117 @@

Source code for pyrad.proc.process_timeseries

avg_type = dscfg.get('avg_type', 'mean') nvalid_min = dscfg.get('nvalid_min', 1) interp_kind = dscfg.get('interp_kind', 'none') + if avg_type != 'mean' and avg_type != 'median': + warn('Unsuported statistics '+avg_type) + return None, None - # initialize dataset - if not dscfg['initialized']: - qvp = pyart.retrieve.compute_evp( - radar, field_names, lon, lat, ref_time=dscfg['timeinfo'], - latlon_tol=latlon_tol, delta_rng=delta_rng, - delta_azi=delta_azi, hmax=hmax, hres=hres, avg_type=avg_type, - nvalid_min=nvalid_min, interp_kind=interp_kind, qvp=None) + radar_aux = deepcopy(radar) + # transform radar into ppi over the required elevation + if radar_aux.scan_type == 'rhi': + target_elevations, el_tol = get_target_elevations(radar_aux) + radar_ppi = pyart.util.cross_section_rhi( + radar_aux, target_elevations, el_tol=el_tol) + elif radar_aux.scan_type == 'ppi': + radar_ppi = radar_aux + else: + warn('Error: unsupported scan type.') + return None, None - if qvp is None: - warn('Unable to compute QVP') - return None, None + radar_aux = radar_ppi.extract_sweeps([0]) + + # initialize dataset + if dscfg['initialized'] == 0: + evp_aux = pyart.retrieve._create_qvp_object( + radar_aux, [field_name], qvp_type='evp', + start_time=dscfg['timeinfo'], hmax=hmax, hres=hres) global_dict = dict() global_dict.update({'start_time': dscfg['timeinfo']}) - global_dict.update({'radar_out': qvp}) + global_dict.update({'radar_out': evp_aux}) dscfg['global_data'] = global_dict dscfg['initialized'] = 1 - else: - qvp = pyart.retrieve.compute_evp( - radar, field_names, lon, lat, ref_time=dscfg['timeinfo'], - latlon_tol=latlon_tol, delta_rng=delta_rng, - delta_azi=delta_azi, hmax=hmax, hres=hres, avg_type=avg_type, - nvalid_min=nvalid_min, interp_kind=interp_kind, - qvp=dscfg['global_data']['radar_out']) - if qvp is None: - warn('Unable to compute QVP') - return None, None + # modify metadata + evp = dscfg['global_data']['radar_out'] + + start_time = num2date(0, evp.time['units'], evp.time['calendar']) + evp.time['data'] = np.append( + evp.time['data'], (dscfg['timeinfo'] - start_time).total_seconds()) + evp.sweep_end_ray_index['data'][0] += 1 + evp.rays_per_sweep[0] += 1 + evp.nrays += 1 + + evp.azimuth['data'] = np.ones((evp.nrays, ), dtype='float64')*0. + evp.elevation['data'] = np.ones((evp.nrays, ), dtype='float64')*90. + + evp.gate_longitude['data'] = ( + np.ones((evp.nrays, evp.ngates), dtype='float64') * lon) + evp.gate_latitude['data'] = ( + np.ones((evp.nrays, evp.ngates), dtype='float64') * lat) + evp.gate_altitude['data'] = np.broadcast_to( + evp.range['data'], (evp.nrays, evp.ngates)) + + values = np.ma.array([], dtype=float) + height = np.array([], dtype=float) + for sweep in range(radar_ppi.nsweeps): + radar_aux = deepcopy(radar_ppi) + radar_aux = radar_aux.extract_sweeps([sweep]) + + # find nearest gate to lat lon point + ind_ray, _, azi, rng = find_nearest_gate( + radar_aux, lat, lon, latlon_tol=latlon_tol) + + if ind_ray is None: + continue + + # find neighbouring gates to be selected + inds_ray, inds_rng = find_neighbour_gates( + radar_aux, azi, rng, delta_azi=delta_azi, delta_rng=delta_rng) + + # keep only data we are interested in + field = radar_aux.fields[field_name]['data'][:, inds_rng] + field = field[inds_ray, :] + + vals, _ = compute_directional_stats( + field, avg_type=avg_type, nvalid_min=nvalid_min, axis=0) + values = np.ma.append(values, vals) + + height = np.append( + height, + radar_aux.gate_altitude['data'][ind_ray, inds_rng]) + + # Project to vertical grid: + evp_data = project_to_vertical( + values, height, evp.range['data'], interp_kind=interp_kind) + + # Put data in radar object + if np.size(evp.fields[field_name]['data']) == 0: + evp.fields[field_name]['data'] = evp_data.reshape(1, evp.ngates) + else: + evp.fields[field_name]['data'] = np.ma.concatenate( + (evp.fields[field_name]['data'], + evp_data.reshape(1, evp.ngates))) - dscfg['global_data']['radar_out'] = qvp + dscfg['global_data']['radar_out'] = evp new_dataset = dict() - new_dataset.update({'radar_out': qvp}) + new_dataset.update({'radar_out': evp}) new_dataset.update({'radar_type': 'temporal'}) new_dataset.update({'start_time': dscfg['global_data']['start_time']}) return new_dataset, ind_rad if procstatus == 2: - if not dscfg['initialized']: - return None, None - for datatypedescr in dscfg['datatype']: radarnr, _, datatype, _, _ = get_datatype_fields(datatypedescr) break ind_rad = int(radarnr[5:8])-1 - qvp = dscfg['global_data']['radar_out'] + evp = dscfg['global_data']['radar_out'] new_dataset = dict() - new_dataset.update({'radar_out': qvp}) + new_dataset.update({'radar_out': evp}) new_dataset.update({'radar_type': 'final'}) new_dataset.update({'start_time': dscfg['global_data']['start_time']}) @@ -727,7 +788,7 @@

Source code for pyrad.proc.process_timeseries

Default 0. ang_tol : float If the radar object contains an RHI volume, the tolerance in the - elevation angle for the conversion into PPI. Default 1. + elevation angle for the conversion into PPI lat, lon : float latitude and longitude of the point of interest [deg] latlon_tol : float @@ -768,22 +829,15 @@

Source code for pyrad.proc.process_timeseries

ind_rad : int radar index - Reference - --------- - Bukovcic P., Zrnic D., Zhang G. 2017: Winter Precipitation Liquid-Ice - Phase Transitions Revealed with Polarimetric Radar and 2DVD Observations - in Central Oklahoma. JTECH vol. 56 pp 1345-1363 - """ if procstatus == 0: return None, None if procstatus == 1: - field_names = [] for datatypedescr in dscfg['datatype']: radarnr, _, datatype, _, _ = get_datatype_fields(datatypedescr) - field_names.append(get_fieldname_pyart(datatype)) - + break + field_name = get_fieldname_pyart(datatype) ind_rad = int(radarnr[5:8])-1 if (radar_list is None) or (radar_list[ind_rad] is None): @@ -792,6 +846,10 @@

Source code for pyrad.proc.process_timeseries

radar = radar_list[ind_rad] + if field_name not in radar.fields: + warn('Field name '+field_name+' not available in radar object') + return None, None + # default parameters angle = dscfg.get('angle', 0) ang_tol = dscfg.get('ang_tol', 1.) @@ -805,51 +863,97 @@

Source code for pyrad.proc.process_timeseries

avg_type = dscfg.get('avg_type', 'mean') nvalid_min = dscfg.get('nvalid_min', 1) interp_kind = dscfg.get('interp_kind', 'none') + if avg_type != 'mean' and avg_type != 'median': + warn('Unsuported statistics '+avg_type) + return None, None - # initialize dataset - if not dscfg['initialized']: - qvp = pyart.retrieve.compute_svp( - radar, field_names, lon, lat, angle, - ref_time=dscfg['timeinfo'], ang_tol=ang_tol, - latlon_tol=latlon_tol, delta_rng=delta_rng, - delta_azi=delta_azi, hmax=hmax, hres=hres, avg_type=avg_type, - nvalid_min=nvalid_min, interp_kind=interp_kind, qvp=None) + radar_aux = deepcopy(radar) + # transform radar into ppi over the required elevation + if radar_aux.scan_type == 'rhi': + radar_aux = pyart.util.cross_section_rhi( + radar_aux, [angle], el_tol=ang_tol) + elif radar_aux.scan_type == 'ppi': + radar_aux = radar_aux.extract_sweeps([int(angle)]) + else: + warn('Error: unsupported scan type.') + return None, None - if qvp is None: - warn('Unable to compute QVP') - return None, None + # initialize dataset + if dscfg['initialized'] == 0: + svp_aux = pyart.retrieve._create_qvp_object( + radar_aux, [field_name], qvp_type='svp', + start_time=dscfg['timeinfo'], hmax=hmax, hres=hres) global_dict = dict() global_dict.update({'start_time': dscfg['timeinfo']}) - global_dict.update({'radar_out': qvp}) + global_dict.update({'radar_out': svp_aux}) dscfg['global_data'] = global_dict dscfg['initialized'] = 1 + + # modify metadata + svp = dscfg['global_data']['radar_out'] + + start_time = num2date(0, svp.time['units'], svp.time['calendar']) + svp.time['data'] = np.append( + svp.time['data'], (dscfg['timeinfo'] - start_time).total_seconds()) + svp.sweep_end_ray_index['data'][0] += 1 + svp.rays_per_sweep[0] += 1 + svp.nrays += 1 + + svp.azimuth['data'] = np.ones((svp.nrays, ), dtype='float64')*0. + svp.elevation['data'] = np.ones((svp.nrays, ), dtype='float64')*90. + + svp.gate_longitude['data'] = ( + np.ones((svp.nrays, svp.ngates), dtype='float64') * lon) + svp.gate_latitude['data'] = ( + np.ones((svp.nrays, svp.ngates), dtype='float64') * lat) + svp.gate_altitude['data'] = np.broadcast_to( + svp.range['data'], (svp.nrays, svp.ngates)) + + # find nearest gate to lat lon point + ind_ray, _, azi, rng = find_nearest_gate( + radar_aux, lat, lon, latlon_tol=latlon_tol) + + if ind_ray is None: + values = np.ma.array([], dtype=float) + height = np.array([], dtype=float) else: - qvp = pyart.retrieve.compute_svp( - radar, field_names, lon, lat, angle, - ref_time=dscfg['timeinfo'], ang_tol=ang_tol, - latlon_tol=latlon_tol, delta_rng=delta_rng, - delta_azi=delta_azi, hmax=hmax, hres=hres, avg_type=avg_type, - nvalid_min=nvalid_min, interp_kind=interp_kind, - qvp=dscfg['global_data']['radar_out']) + # find neighbouring gates to be selected + inds_ray, inds_rng = find_neighbour_gates( + radar_aux, azi, rng, delta_azi=delta_azi, delta_rng=delta_rng) - if qvp is None: - warn('Unable to compute QVP') - return None, None + # keep only data we are interested in + field = radar_aux.fields[field_name]['data'][:, inds_rng] + field = field[inds_ray, :] + + # compute values + values, _ = compute_directional_stats( + field, avg_type=avg_type, nvalid_min=nvalid_min, axis=0) + + height = radar_aux.gate_altitude['data'][ind_ray, inds_rng] + + # Project to vertical grid: + svp_data = project_to_vertical( + values, height, svp.range['data'], interp_kind=interp_kind) + + # Put data in radar object + if np.size(svp.fields[field_name]['data']) == 0: + svp.fields[field_name]['data'] = svp_data.reshape(1, svp.ngates) + else: + svp.fields[field_name]['data'] = np.ma.concatenate( + (svp.fields[field_name]['data'], + svp_data.reshape(1, svp.ngates))) - dscfg['global_data']['radar_out'] = qvp + dscfg['global_data']['radar_out'] = svp new_dataset = dict() - new_dataset.update({'radar_out': qvp}) + new_dataset.update({'radar_out': svp}) new_dataset.update({'radar_type': 'temporal'}) new_dataset.update({'start_time': dscfg['global_data']['start_time']}) return new_dataset, ind_rad if procstatus == 2: - if not dscfg['initialized']: - return None, None - for datatypedescr in dscfg['datatype']: radarnr, _, datatype, _, _ = get_datatype_fields(datatypedescr) break @@ -918,11 +1022,10 @@

Source code for pyrad.proc.process_timeseries

return None, None if procstatus == 1: - field_names = [] for datatypedescr in dscfg['datatype']: radarnr, _, datatype, _, _ = get_datatype_fields(datatypedescr) - field_names.append(get_fieldname_pyart(datatype)) - + break + field_name = get_fieldname_pyart(datatype) ind_rad = int(radarnr[5:8])-1 if (radar_list is None) or (radar_list[ind_rad] is None): @@ -931,6 +1034,10 @@

Source code for pyrad.proc.process_timeseries

radar = radar_list[ind_rad] + if field_name not in radar.fields: + warn('Field name '+field_name+' not available in radar object') + return None, None + # default parameters lon = dscfg['lon'] lat = dscfg['lat'] @@ -939,56 +1046,112 @@

Source code for pyrad.proc.process_timeseries

hres = dscfg.get('hres', 50.) interp_kind = dscfg.get('interp_kind', 'none') + radar_aux = deepcopy(radar) + # transform radar into ppi over the required elevation + if radar_aux.scan_type == 'rhi': + target_elevations, el_tol = get_target_elevations(radar_aux) + radar_ppi = pyart.util.cross_section_rhi( + radar_aux, target_elevations, el_tol=el_tol) + elif radar_aux.scan_type == 'ppi': + radar_ppi = radar_aux + else: + warn('Error: unsupported scan type.') + return None, None + # initialize dataset - if not dscfg['initialized']: - qvp = pyart.retrieve.compute_vp( - radar, field_names, lon, lat, ref_time=dscfg['timeinfo'], - latlon_tol=latlon_tol, hmax=hmax, hres=hres, - interp_kind=interp_kind, qvp=None) + if dscfg['initialized'] == 0: + th_aux = pyart.retrieve._create_qvp_object( + radar_aux, [field_name], qvp_type='time_height', + start_time=dscfg['timeinfo'], hmax=hmax, hres=hres) - if qvp is None: - warn('Unable to compute QVP') - return None, None + th_aux.sweep_number['data'] = np.array([0], dtype='int32') + th_aux.nsweeps = 1 + + if radar_aux.rays_are_indexed is not None: + th_aux.rays_are_indexed['data'] = np.array( + [radar_aux.rays_are_indexed['data'][0]]) + + if radar_aux.ray_angle_res is not None: + th_aux.ray_angle_res['data'] = np.array( + [radar_aux.ray_angle_res['data'][0]]) global_dict = dict() global_dict.update({'start_time': dscfg['timeinfo']}) - global_dict.update({'radar_out': qvp}) + global_dict.update({'radar_out': th_aux}) dscfg['global_data'] = global_dict dscfg['initialized'] = 1 - else: - qvp = pyart.retrieve.compute_vp( - radar, field_names, lon, lat, ref_time=dscfg['timeinfo'], - latlon_tol=latlon_tol, hmax=hmax, hres=hres, - interp_kind=interp_kind, - qvp=dscfg['global_data']['radar_out']) - if qvp is None: - warn('Unable to compute QVP') - return None, None + # modify metadata + th = dscfg['global_data']['radar_out'] + + start_time = num2date(0, th.time['units'], th.time['calendar']) + th.time['data'] = np.append( + th.time['data'], (dscfg['timeinfo'] - start_time).total_seconds()) + th.sweep_end_ray_index['data'][0] += 1 + th.rays_per_sweep[0] += 1 + th.nrays += 1 + + th.azimuth['data'] = np.ones((th.nrays, ), dtype='float64')*0. + th.elevation['data'] = np.ones((th.nrays, ), dtype='float64')*90. + + th.gate_longitude['data'] = ( + np.ones((th.nrays, th.ngates), dtype='float64')*lon) + th.gate_latitude['data'] = ( + np.ones((th.nrays, th.ngates), dtype='float64')*lat) + th.gate_altitude['data'] = np.broadcast_to( + th.range['data'], (th.nrays, th.ngates)) + + values = np.ma.array([], dtype=float) + height = np.array([], dtype=float) + for sweep in range(radar_ppi.nsweeps): + radar_aux = deepcopy(radar_ppi.extract_sweeps([sweep])) + + # find nearest gate to lat lon point + ind_ray, ind_rng, _, _ = find_nearest_gate( + radar_aux, lat, lon, latlon_tol=latlon_tol) + + if ind_ray is None: + continue + + values = np.ma.append( + values, + radar_aux.fields[field_name]['data'][ind_ray, ind_rng]) + height = np.append( + height, + radar_aux.gate_altitude['data'][ind_ray, ind_rng]) + + # Project to vertical grid: + th_data = project_to_vertical( + values, height, th.range['data'], interp_kind=interp_kind) + + # Put data in radar object + if np.size(th.fields[field_name]['data']) == 0: + th.fields[field_name]['data'] = th_data.reshape(1, th.ngates) + else: + th.fields[field_name]['data'] = np.ma.concatenate( + (th.fields[field_name]['data'], + th_data.reshape(1, th.ngates))) - dscfg['global_data']['radar_out'] = qvp + dscfg['global_data']['radar_out'] = th new_dataset = dict() - new_dataset.update({'radar_out': qvp}) + new_dataset.update({'radar_out': th}) new_dataset.update({'radar_type': 'temporal'}) new_dataset.update({'start_time': dscfg['global_data']['start_time']}) return new_dataset, ind_rad if procstatus == 2: - if not dscfg['initialized']: - return None, None - for datatypedescr in dscfg['datatype']: radarnr, _, datatype, _, _ = get_datatype_fields(datatypedescr) break ind_rad = int(radarnr[5:8])-1 - qvp = dscfg['global_data']['radar_out'] + th = dscfg['global_data']['radar_out'] new_dataset = dict() - new_dataset.update({'radar_out': qvp}) + new_dataset.update({'radar_out': th}) new_dataset.update({'radar_type': 'final'}) new_dataset.update({'start_time': dscfg['global_data']['start_time']}) @@ -1015,7 +1178,7 @@

Navigation

\ No newline at end of file diff --git a/docs/_modules/pyrad/proc/process_traj.html b/docs/_modules/pyrad/proc/process_traj.html index 8ea199f..158ae58 100644 --- a/docs/_modules/pyrad/proc/process_traj.html +++ b/docs/_modules/pyrad/proc/process_traj.html @@ -14,7 +14,6 @@ - @@ -95,7 +94,7 @@

Source code for pyrad.proc.process_traj

 from ..io.read_data_other import read_antenna_pattern
 
 from ..util.stat_utils import quantiles_weighted
-from ..util.radar_utils import belongs_roi_indices, find_nearest_gate
+from ..util.radar_utils import belongs_roi_indices
 
 
 
[docs]def process_trajectory(procstatus, dscfg, radar_list=None, trajectory=None): @@ -216,13 +215,10 @@

Source code for pyrad.proc.process_traj

     time_tol = dscfg.get('TimeTol', 100.)
     alt_min = dscfg.get('alt_min', None)
     alt_max = dscfg.get('alt_max', None)
-    cell_center = dscfg.get('cell_center', False)
-    latlon_tol = dscfg.get('latlon_tol', 0.01)  # aprox. 1 km
 
     inds_ray, inds_rng, lat, lon, alt = _get_gates_trt(
         radar, trajectory, dscfg['timeinfo'], time_tol=time_tol,
-        alt_min=alt_min, alt_max=alt_max, cell_center=cell_center,
-        latlon_tol=latlon_tol)
+        alt_min=alt_min, alt_max=alt_max)
 
     if inds_ray is None:
         return None, None
@@ -1412,7 +1408,7 @@ 

Source code for pyrad.proc.process_traj

 
 
 def _get_gates_trt(radar, trajectory, voltime, time_tol=100., alt_min=None,
-                   alt_max=None, cell_center=False, latlon_tol=0.0005):
+                   alt_max=None):
     """
     Find the gates of the radar object that belong to a TRT cell
 
@@ -1440,105 +1436,55 @@ 

Source code for pyrad.proc.process_traj

         dt[i] = np.abs((voltime - time_traj).total_seconds())
     if dt.min() > time_tol:
         warn('No TRT data for radar volume time')
-        return None, None, None, None, None
+        return None, None
     ind = np.argmin(dt)
+    lon_roi = trajectory.cell_contour[ind]['lon']
+    lat_roi = trajectory.cell_contour[ind]['lat']
+
+    roi_dict = {
+        'lon': lon_roi,
+        'lat': lat_roi,
+        'alt_min': alt_min,
+        'alt_max': alt_max}
+
+    # extract the data within the ROI boundaries
+    inds_ray, inds_rng = np.indices(np.shape(radar.gate_longitude['data']))
+
+    mask = np.logical_and(
+        np.logical_and(
+            radar.gate_latitude['data'] >= roi_dict['lat'].min(),
+            radar.gate_latitude['data'] <= roi_dict['lat'].max()),
+        np.logical_and(
+            radar.gate_longitude['data'] >= roi_dict['lon'].min(),
+            radar.gate_longitude['data'] <= roi_dict['lon'].max()))
+
+    if alt_min is not None:
+        mask[radar.gate_altitude['data'] < alt_min] = 0
+    if alt_max is not None:
+        mask[radar.gate_altitude['data'] > alt_max] = 0
+
+    if np.all(mask == 0):
+        warn('No values within ROI')
+        return None, None, None, None, None
 
-    if not cell_center:
-        lon_roi = trajectory.cell_contour[ind]['lon']
-        lat_roi = trajectory.cell_contour[ind]['lat']
-
-        roi_dict = {
-            'lon': lon_roi,
-            'lat': lat_roi,
-            'alt_min': alt_min,
-            'alt_max': alt_max}
-
-        # extract the data within the ROI boundaries
-        inds_ray, inds_rng = np.indices(np.shape(radar.gate_longitude['data']))
-
-        mask = np.logical_and(
-            np.logical_and(
-                radar.gate_latitude['data'] >= roi_dict['lat'].min(),
-                radar.gate_latitude['data'] <= roi_dict['lat'].max()),
-            np.logical_and(
-                radar.gate_longitude['data'] >= roi_dict['lon'].min(),
-                radar.gate_longitude['data'] <= roi_dict['lon'].max()))
-
-        if alt_min is not None:
-            mask[radar.gate_altitude['data'] < alt_min] = 0
-        if alt_max is not None:
-            mask[radar.gate_altitude['data'] > alt_max] = 0
-
-        if np.all(mask == 0):
-            warn('No values within ROI')
-            return None, None, None, None, None
-
-        inds_ray = inds_ray[mask]
-        inds_rng = inds_rng[mask]
-
-        # extract the data inside the ROI
-        lat = radar.gate_latitude['data'][mask]
-        lon = radar.gate_longitude['data'][mask]
-        inds, is_roi = belongs_roi_indices(lat, lon, roi_dict)
-
-        if is_roi == 'None':
-            warn('No values within ROI')
-            return None, None, None, None, None
-
-        inds_ray = inds_ray[inds]
-        inds_rng = inds_rng[inds]
-
-        lat = lat[inds]
-        lon = lon[inds]
-        alt = radar.gate_altitude['data'][inds_ray, inds_rng]
-    else:
-        radar_aux = deepcopy(radar)
-        # transform radar into ppi over the required elevation
-        if radar_aux.scan_type == 'rhi':
-            target_elevations, el_tol = get_target_elevations(radar_aux)
-            radar_ppi = cross_section_rhi(
-                radar_aux, target_elevations, el_tol=el_tol)
-        elif radar_aux.scan_type == 'ppi':
-            radar_ppi = radar_aux
-        else:
-            warn('Error: unsupported scan type.')
-            return None, None, None, None, None
-
-        inds_ray = np.array([], dtype=int)
-        inds_rng = np.array([], dtype=int)
-        lat = np.array([])
-        lon = np.array([])
-        alt = np.array([])
-        for sweep in range(radar_ppi.nsweeps):
-            radar_aux = deepcopy(radar_ppi.extract_sweeps([sweep]))
-
-            # find nearest gate to lat lon point
-            ind_ray, ind_rng, _, _ = find_nearest_gate(
-                radar_aux, trajectory.wgs84_lat_deg[ind],
-                trajectory.wgs84_lon_deg[ind], latlon_tol=latlon_tol)
-
-            if ind_ray is None:
-                continue
+    inds_ray = inds_ray[mask]
+    inds_rng = inds_rng[mask]
 
-            if alt_min is not None:
-                if radar_aux.gate_altitude['data'][ind_ray][ind_rng] < alt_min:
-                    continue
-            if alt_max is not None:
-                if radar_aux.gate_altitude['data'][ind_ray][ind_rng] > alt_max:
-                    continue
+    # extract the data inside the ROI
+    lat = radar.gate_latitude['data'][mask]
+    lon = radar.gate_longitude['data'][mask]
+    inds, is_roi = belongs_roi_indices(lat, lon, roi_dict)
+
+    if is_roi == 'None':
+        warn('No values within ROI')
+        return None, None, None, None, None
 
-            inds_ray = np.append(inds_ray, ind_ray)
-            inds_rng = np.append(inds_rng, ind_rng)
-            lat = np.append(
-                lat, radar_aux.gate_latitude['data'][ind_ray][ind_rng])
-            lon = np.append(
-                lon, radar_aux.gate_longitude['data'][ind_ray][ind_rng])
-            alt = np.append(
-                alt, radar_aux.gate_altitude['data'][ind_ray][ind_rng])
+    inds_ray = inds_ray[inds]
+    inds_rng = inds_rng[inds]
 
-        if inds_ray.size == 0:
-            warn('No values in center of cell')
-            return None, None, None, None, None
+    lat = lat[inds]
+    lon = lon[inds]
+    alt = radar.gate_altitude['data'][inds_ray, inds_rng]
 
     return inds_ray, inds_rng, lat, lon, alt
 
@@ -1773,7 +1719,7 @@ 

Navigation

\ No newline at end of file diff --git a/docs/_modules/pyrad/prod/process_grid_products.html b/docs/_modules/pyrad/prod/process_grid_products.html index fa1b594..3e760e7 100644 --- a/docs/_modules/pyrad/prod/process_grid_products.html +++ b/docs/_modules/pyrad/prod/process_grid_products.html @@ -14,7 +14,6 @@ - @@ -371,7 +370,7 @@

Navigation

\ No newline at end of file diff --git a/docs/_modules/pyrad/prod/process_intercomp_products.html b/docs/_modules/pyrad/prod/process_intercomp_products.html index 01022c6..8c2fa5b 100644 --- a/docs/_modules/pyrad/prod/process_intercomp_products.html +++ b/docs/_modules/pyrad/prod/process_intercomp_products.html @@ -14,7 +14,6 @@ - @@ -406,7 +405,7 @@

Navigation

\ No newline at end of file diff --git a/docs/_modules/pyrad/prod/process_monitoring_products.html b/docs/_modules/pyrad/prod/process_monitoring_products.html index 8b148ea..220d8c9 100644 --- a/docs/_modules/pyrad/prod/process_monitoring_products.html +++ b/docs/_modules/pyrad/prod/process_monitoring_products.html @@ -14,7 +14,6 @@ - @@ -772,7 +771,7 @@

Navigation

\ No newline at end of file diff --git a/docs/_modules/pyrad/prod/process_product.html b/docs/_modules/pyrad/prod/process_product.html index 5f4cb74..9052d74 100644 --- a/docs/_modules/pyrad/prod/process_product.html +++ b/docs/_modules/pyrad/prod/process_product.html @@ -14,7 +14,6 @@ - @@ -621,7 +620,7 @@

Navigation

\ No newline at end of file diff --git a/docs/_modules/pyrad/prod/process_timeseries_products.html b/docs/_modules/pyrad/prod/process_timeseries_products.html index 7842a72..6398a8a 100644 --- a/docs/_modules/pyrad/prod/process_timeseries_products.html +++ b/docs/_modules/pyrad/prod/process_timeseries_products.html @@ -14,7 +14,6 @@ - @@ -613,7 +612,7 @@

Navigation

\ No newline at end of file diff --git a/docs/_modules/pyrad/prod/process_traj_products.html b/docs/_modules/pyrad/prod/process_traj_products.html index be7be1a..65b4e41 100644 --- a/docs/_modules/pyrad/prod/process_traj_products.html +++ b/docs/_modules/pyrad/prod/process_traj_products.html @@ -14,7 +14,6 @@ - @@ -69,7 +68,6 @@

Source code for pyrad.prod.process_traj_products

from ..io.io_aux import get_save_dir, make_filename from ..io.timeseries import TimeSeries -from ..graph.plots_vol import plot_pos
[docs]def generate_traj_product(traj, prdcfg): @@ -179,40 +177,6 @@

Source code for pyrad.prod.process_traj_products

return None - elif prdcfg['type'] == 'TRAJ_MAP': #Trajectory on a map - - timeinfo = traj.time_vector[0] - - savedir = get_save_dir(prdcfg['basepath'], prdcfg['procname'], - dssavedir, prdcfg['prdname'], - timeinfo=timeinfo) - - - fname = make_filename('ts', prdcfg['dstype'], 'TRAJ', - prdcfg['imgformat'], - prdcfginfo="MAP", timeinfo=timeinfo, - timeformat='%Y%m%d%H%M%S', - runinfo=prdcfg['runinfo']) - - title = "Trajectory Starting at %s" % \ - traj.time_vector[0].strftime("%Y-%m-%d") - - fname_list=fname - for i,fname in enumerate(fname_list): - fname_list[i] = savedir+fname - - # Get traj - lat=traj.wgs84_lat_deg - lon=traj.wgs84_lon_deg - alt=traj.wgs84_alt_m - - fig=plot_pos( - lat, lon, - alt, - fname_list,cb_label='Altitude [m]', - titl=title,save_fig=True) - - else: raise Exception("ERROR: Unsupported product type: '%s' of dataset '%s'" % (prdcfg['type'], prdcfg['dsname']))
@@ -238,7 +202,7 @@

Navigation

\ No newline at end of file diff --git a/docs/_modules/pyrad/prod/process_vol_products.html b/docs/_modules/pyrad/prod/process_vol_products.html index 564512a..870ab91 100644 --- a/docs/_modules/pyrad/prod/process_vol_products.html +++ b/docs/_modules/pyrad/prod/process_vol_products.html @@ -14,7 +14,6 @@ - @@ -151,7 +150,7 @@

Source code for pyrad.prod.process_vol_products

< return fname_list - if prdcfg['type'] == 'PSEUDOPPI_IMAGE': + elif prdcfg['type'] == 'PSEUDOPPI_IMAGE': field_name = get_fieldname_pyart(prdcfg['voltype']) if field_name not in dataset['radar_out'].fields: warn( @@ -284,7 +283,7 @@

Source code for pyrad.prod.process_vol_products

< return fname_list - if prdcfg['type'] == 'PSEUDOPPI_CONTOUR_OVERPLOT': + elif prdcfg['type'] == 'PSEUDOPPI_CONTOUR_OVERPLOT': field_name = get_fieldname_pyart(prdcfg['voltype']) if field_name not in dataset['radar_out'].fields: warn( @@ -378,7 +377,7 @@

Source code for pyrad.prod.process_vol_products

< return fname_list - if prdcfg['type'] == 'PSEUDOPPI_CONTOUR': + elif prdcfg['type'] == 'PSEUDOPPI_CONTOUR': field_name = get_fieldname_pyart(prdcfg['voltype']) if field_name not in dataset['radar_out'].fields: warn( @@ -420,7 +419,7 @@

Source code for pyrad.prod.process_vol_products

< return None - if prdcfg['type'] == 'RHI_IMAGE': + elif prdcfg['type'] == 'RHI_IMAGE': field_name = get_fieldname_pyart(prdcfg['voltype']) if field_name not in dataset['radar_out'].fields: warn( @@ -456,7 +455,7 @@

Source code for pyrad.prod.process_vol_products

< return fname_list - if prdcfg['type'] == 'PSEUDORHI_IMAGE': + elif prdcfg['type'] == 'PSEUDORHI_IMAGE': field_name = get_fieldname_pyart(prdcfg['voltype']) if field_name not in dataset['radar_out'].fields: warn( @@ -499,7 +498,7 @@

Source code for pyrad.prod.process_vol_products

< prdcfg['type']) return None - if prdcfg['type'] == 'RHI_CONTOUR_OVERPLOT': + elif prdcfg['type'] == 'RHI_CONTOUR_OVERPLOT': field_name = get_fieldname_pyart(prdcfg['voltype']) if field_name not in dataset['radar_out'].fields: warn( @@ -551,7 +550,7 @@

Source code for pyrad.prod.process_vol_products

< return fname_list - if prdcfg['type'] == 'PSEUDORHI_CONTOUR_OVERPLOT': + elif prdcfg['type'] == 'PSEUDORHI_CONTOUR_OVERPLOT': field_name = get_fieldname_pyart(prdcfg['voltype']) if field_name not in dataset['radar_out'].fields: warn( @@ -610,7 +609,7 @@

Source code for pyrad.prod.process_vol_products

< prdcfg['type']) return None - if prdcfg['type'] == 'RHI_CONTOUR': + elif prdcfg['type'] == 'RHI_CONTOUR': field_name = get_fieldname_pyart(prdcfg['voltype']) if field_name not in dataset['radar_out'].fields: warn( @@ -645,7 +644,7 @@

Source code for pyrad.prod.process_vol_products

< return fname_list - if prdcfg['type'] == 'PSEUDORHI_CONTOUR': + elif prdcfg['type'] == 'PSEUDORHI_CONTOUR': field_name = get_fieldname_pyart(prdcfg['voltype']) if field_name not in dataset['radar_out'].fields: warn( @@ -687,7 +686,7 @@

Source code for pyrad.prod.process_vol_products

< prdcfg['type']) return None - if prdcfg['type'] == 'RHI_PROFILE': + elif prdcfg['type'] == 'RHI_PROFILE': field_name = get_fieldname_pyart(prdcfg['voltype']) if field_name not in dataset['radar_out'].fields: warn( @@ -835,7 +834,7 @@

Source code for pyrad.prod.process_vol_products

< return fname - if prdcfg['type'] == 'PROFILE_STATS': + elif prdcfg['type'] == 'PROFILE_STATS': field_name = get_fieldname_pyart(prdcfg['voltype']) if field_name not in dataset['radar_out'].fields: warn( @@ -847,7 +846,7 @@

Source code for pyrad.prod.process_vol_products

< # mask unclassified data field = deepcopy(dataset['radar_out'].fields[field_name]['data']) if prdcfg['voltype'] == 'hydro': - field = np.ma.masked_equal(field, 1) + field = np.ma.masked_equal(field, 0) # user defined parameters heightResolution = prdcfg.get('heightResolution', 100.) @@ -963,7 +962,7 @@

Source code for pyrad.prod.process_vol_products

< return fname - if prdcfg['type'] == 'WIND_PROFILE': + elif prdcfg['type'] == 'WIND_PROFILE': # user defined parameters heightResolution = prdcfg.get('heightResolution', 100.) hmin_user = prdcfg.get('heightMin', None) @@ -1288,7 +1287,7 @@

Source code for pyrad.prod.process_vol_products

< return fname - if prdcfg['type'] == 'PSEUDOPPI_MAP': + elif prdcfg['type'] == 'PSEUDOPPI_MAP': field_name = get_fieldname_pyart(prdcfg['voltype']) if field_name not in dataset['radar_out'].fields: warn( @@ -1327,7 +1326,7 @@

Source code for pyrad.prod.process_vol_products

< return None - if prdcfg['type'] == 'CAPPI_IMAGE': + elif prdcfg['type'] == 'CAPPI_IMAGE': field_name = get_fieldname_pyart(prdcfg['voltype']) if field_name not in dataset['radar_out'].fields: warn( @@ -1356,7 +1355,7 @@

Source code for pyrad.prod.process_vol_products

< return fname_list - if prdcfg['type'] == 'PLOT_ALONG_COORD': + elif prdcfg['type'] == 'PLOT_ALONG_COORD': field_name = get_fieldname_pyart(prdcfg['voltype']) if field_name not in dataset['radar_out'].fields: warn( @@ -1624,7 +1623,7 @@

Source code for pyrad.prod.process_vol_products

< return fname_list - if prdcfg['type'] == 'BSCOPE_IMAGE': + elif prdcfg['type'] == 'BSCOPE_IMAGE': field_name = get_fieldname_pyart(prdcfg['voltype']) if field_name not in dataset['radar_out'].fields: warn( @@ -1657,7 +1656,7 @@

Source code for pyrad.prod.process_vol_products

< return fname_list - if prdcfg['type'] == 'TIME_RANGE': + elif prdcfg['type'] == 'TIME_RANGE': field_name = get_fieldname_pyart(prdcfg['voltype']) if field_name not in dataset['radar_out'].fields: warn( @@ -1690,7 +1689,7 @@

Source code for pyrad.prod.process_vol_products

< return fname_list - if prdcfg['type'] == 'HISTOGRAM': + elif prdcfg['type'] == 'HISTOGRAM': field_name = get_fieldname_pyart(prdcfg['voltype']) if field_name not in dataset['radar_out'].fields: warn( @@ -1747,7 +1746,7 @@

Source code for pyrad.prod.process_vol_products

< return fname_list - if prdcfg['type'] == 'QUANTILES': + elif prdcfg['type'] == 'QUANTILES': field_name = get_fieldname_pyart(prdcfg['voltype']) if field_name not in dataset['radar_out'].fields: warn( @@ -1759,7 +1758,7 @@

Source code for pyrad.prod.process_vol_products

< # mask unclassified data field = deepcopy(dataset['radar_out'].fields[field_name]['data']) if prdcfg['voltype'] == 'hydro': - field = np.ma.masked_equal(field, 1) + field = np.ma.masked_equal(field, 0) # user defined variables quantiles = prdcfg.get('quantiles', None) @@ -1817,7 +1816,7 @@

Source code for pyrad.prod.process_vol_products

< return fname_list - if prdcfg['type'] == 'FIELD_COVERAGE': + elif prdcfg['type'] == 'FIELD_COVERAGE': field_name = get_fieldname_pyart(prdcfg['voltype']) if field_name not in dataset['radar_out'].fields: warn( @@ -1977,7 +1976,7 @@

Source code for pyrad.prod.process_vol_products

< return fname - if prdcfg['type'] == 'CDF': + elif prdcfg['type'] == 'CDF': field_name = get_fieldname_pyart(prdcfg['voltype']) if field_name not in dataset['radar_out'].fields: warn( @@ -2162,7 +2161,7 @@

Source code for pyrad.prod.process_vol_products

< return fname - if prdcfg['type'] == 'SAVEVOL': + elif prdcfg['type'] == 'SAVEVOL': field_name = get_fieldname_pyart(prdcfg['voltype']) if field_name not in dataset['radar_out'].fields: warn( @@ -2171,11 +2170,6 @@

Source code for pyrad.prod.process_vol_products

< prdcfg['type']) return None - file_type = prdcfg.get('file_type', 'nc') - physical = prdcfg.get('physical', True) - compression = prdcfg.get('compression', 'gzip') - compression_opts = prdcfg.get('compression_opts', 6) - new_dataset = deepcopy(dataset['radar_out']) new_dataset.fields = dict() new_dataset.add_field( @@ -2186,77 +2180,33 @@

Source code for pyrad.prod.process_vol_products

< prdcfg['prdname'], timeinfo=prdcfg['timeinfo']) fname = make_filename( - 'savevol', prdcfg['dstype'], prdcfg['voltype'], [file_type], + 'savevol', prdcfg['dstype'], prdcfg['voltype'], ['nc'], timeinfo=prdcfg['timeinfo'], runinfo=prdcfg['runinfo'])[0] fname = savedir+fname - if file_type == 'nc': - pyart.io.write_cfradial(fname, new_dataset, physical=physical) - elif file_type == 'h5': - pyart.aux_io.write_odim_h5( - fname, new_dataset, physical=physical, - compression=compression, compression_opts=compression_opts) - else: - warn('Data could not be saved. ' + - 'Unknown saving file type '+file_type) - return None - + pyart.io.cfradial.write_cfradial(fname, new_dataset) print('saved file: '+fname) return fname - if prdcfg['type'] == 'SAVEALL': - file_type = prdcfg.get('file_type', 'nc') - datatypes = prdcfg.get('datatypes', None) - physical = prdcfg.get('physical', True) - compression = prdcfg.get('compression', 'gzip') - compression_opts = prdcfg.get('compression_opts', 6) - + elif prdcfg['type'] == 'SAVEALL': savedir = get_save_dir( prdcfg['basepath'], prdcfg['procname'], dssavedir, prdcfg['prdname'], timeinfo=prdcfg['timeinfo']) fname = make_filename( - 'savevol', prdcfg['dstype'], 'all_fields', [file_type], + 'savevol', prdcfg['dstype'], 'all_fields', ['nc'], timeinfo=prdcfg['timeinfo'], runinfo=prdcfg['runinfo'])[0] fname = savedir+fname - field_names = None - if datatypes is not None: - field_names = [] - for datatype in datatypes: - field_names.append(get_fieldname_pyart(datatype)) - - if file_type == 'nc': - if field_names is not None: - radar_aux = deepcopy(dataset['radar_out']) - radar_aux.fields = dict() - for field_name in field_names: - if field_name not in dataset['radar_out'].fields: - warn(field_name+' not in radar object') - else: - radar_aux.add_field( - field_name, - dataset['radar_out'].fields[field_name]) - else: - radar_aux = dataset['radar_out'] - pyart.io.write_cfradial(fname, radar_aux, physical=physical) - elif file_type == 'h5': - pyart.aux_io.write_odim_h5( - fname, dataset['radar_out'], field_names=field_names, - physical=physical, compression=compression, - compression_opts=compression_opts) - else: - warn('Data could not be saved. ' + - 'Unknown saving file type '+file_type) - + pyart.io.cfradial.write_cfradial(fname, dataset['radar_out']) print('saved file: '+fname) return fname - if prdcfg['type'] == 'SAVESTATE': + elif prdcfg['type'] == 'SAVESTATE': if prdcfg['lastStateFile'] is None: warn('Unable to save last state file. File name not specified') return None @@ -2279,8 +2229,9 @@

Source code for pyrad.prod.process_vol_products

< return prdcfg['lastStateFile'] - warn(' Unsupported product type: ' + prdcfg['type']) - return None
+ else: + warn(' Unsupported product type: ' + prdcfg['type']) + return None
@@ -2303,7 +2254,7 @@

Navigation

\ No newline at end of file diff --git a/docs/_modules/pyrad/prod/product_aux.html b/docs/_modules/pyrad/prod/product_aux.html index b4cb23c..782981f 100644 --- a/docs/_modules/pyrad/prod/product_aux.html +++ b/docs/_modules/pyrad/prod/product_aux.html @@ -14,7 +14,6 @@ - @@ -154,7 +153,7 @@

Navigation

\ No newline at end of file diff --git a/docs/_modules/pyrad/util/radar_utils.html b/docs/_modules/pyrad/util/radar_utils.html index 75f318c..c188126 100644 --- a/docs/_modules/pyrad/util/radar_utils.html +++ b/docs/_modules/pyrad/util/radar_utils.html @@ -14,7 +14,6 @@ - @@ -1509,7 +1508,7 @@

Navigation

\ No newline at end of file diff --git a/docs/_modules/pyrad/util/stat_utils.html b/docs/_modules/pyrad/util/stat_utils.html index b87b582..8a19127 100644 --- a/docs/_modules/pyrad/util/stat_utils.html +++ b/docs/_modules/pyrad/util/stat_utils.html @@ -14,7 +14,6 @@ - @@ -165,7 +164,7 @@

Navigation

\ No newline at end of file diff --git a/docs/flow.html b/docs/flow.html index dbe2fef..63a4d22 100644 --- a/docs/flow.html +++ b/docs/flow.html @@ -14,7 +14,6 @@ - @@ -203,7 +202,7 @@

Navigation

\ No newline at end of file diff --git a/docs/genindex.html b/docs/genindex.html index db5f5c1..daed2ef 100644 --- a/docs/genindex.html +++ b/docs/genindex.html @@ -15,7 +15,6 @@ - @@ -142,6 +141,12 @@

_

+
  • __init_subclass__() (pyrad.io.TimeSeries method) + +
  • __le__ (pyrad.io.TimeSeries attribute) @@ -649,8 +654,6 @@

    P

  • process_time_avg() (in module pyrad.proc)
  • process_time_avg_flag() (in module pyrad.proc) -
  • -
  • process_time_avg_std() (in module pyrad.proc)
  • process_time_height() (in module pyrad.proc)
  • @@ -892,7 +895,7 @@

    Navigation

    \ No newline at end of file diff --git a/docs/graph.html b/docs/graph.html index 7cc2d55..97b3204 100644 --- a/docs/graph.html +++ b/docs/graph.html @@ -14,7 +14,6 @@ - @@ -1823,7 +1822,7 @@

    Navigation

    \ No newline at end of file diff --git a/docs/index.html b/docs/index.html index cc865cc..409d18b 100644 --- a/docs/index.html +++ b/docs/index.html @@ -14,7 +14,6 @@ - @@ -151,7 +150,7 @@

    Navigation

    \ No newline at end of file diff --git a/docs/io.html b/docs/io.html index 656c457..f87ce10 100644 --- a/docs/io.html +++ b/docs/io.html @@ -14,7 +14,6 @@ - @@ -498,7 +497,7 @@

    TimeSeries
    -__dict__ = mappingproxy({'add_dataseries': <function TimeSeries.add_dataseries>, '__weakref__': <attribute '__weakref__' of 'TimeSeries' objects>, 'plot': <function TimeSeries.plot>, '__doc__': "\n Holding timeseries data and metadata.\n\n Attributes\n ----------\n description : array of str\n Description of the data of the time series.\n time_vector : array of datetime objects\n timeformat : how to print the time (default:\n 'Date, UTC [seconds since midnight]'\n dataseries : List of _dataSeries object holding the\n data\n\n Methods:\n --------\n add_dataseries : Add a data series to the object\n write : Write time series to a file\n plot : Plot a figure of a time series\n\n ", 'write': <function TimeSeries.write>, '__module__': 'pyrad.io.timeseries', 'plot_hist': <function TimeSeries.plot_hist>, '__dict__': <attribute '__dict__' of 'TimeSeries' objects>, '__init__': <function TimeSeries.__init__>, 'add_timesample': <function TimeSeries.add_timesample>})¶
    +__dict__ = mappingproxy({'__module__': 'pyrad.io.timeseries', '__doc__': "\n Holding timeseries data and metadata.\n\n Attributes\n ----------\n description : array of str\n Description of the data of the time series.\n time_vector : array of datetime objects\n timeformat : how to print the time (default:\n 'Date, UTC [seconds since midnight]'\n dataseries : List of _dataSeries object holding the\n data\n\n Methods:\n --------\n add_dataseries : Add a data series to the object\n write : Write time series to a file\n plot : Plot a figure of a time series\n\n ", '__init__': <function TimeSeries.__init__>, 'add_dataseries': <function TimeSeries.add_dataseries>, 'add_timesample': <function TimeSeries.add_timesample>, 'write': <function TimeSeries.write>, 'plot': <function TimeSeries.plot>, 'plot_hist': <function TimeSeries.plot_hist>, '__dict__': <attribute '__dict__' of 'TimeSeries' objects>, '__weakref__': <attribute '__weakref__' of 'TimeSeries' objects>})¶
    @@ -569,6 +568,14 @@

    TimeSeries +
    +__init_subclass__()¶
    +

    This method is called when a class is subclassed.

    +

    The default implementation does nothing. It may be +overridden to extend subclasses.

    +

    +
    __le__($self, value, /)¶
    @@ -789,7 +796,7 @@

    TimeSeries
    -__dict__ = mappingproxy({'calculate_velocities': <function Trajectory.calculate_velocities>, 'get_end_time': <function Trajectory.get_end_time>, '__weakref__': <attribute '__weakref__' of 'Trajectory' objects>, '__doc__': "\n A class for reading and handling trajectory data from a file.\n\n Attributes\n ----------\n filename : str\n Path and name of the trajectory definition file\n starttime : datetime\n Start time of trajectory processing.\n endtime : datetime\n End time of trajectory processing.\n trajtype : str\n Type of trajectory. Can be 'plane' or 'lightning'\n time_vector : Array of datetime objects\n Array containing the trajectory time samples\n wgs84_lat_deg : Array of floats\n WGS84 latitude samples in radian\n wgs84_lon_deg : Array of floats\n WGS84 longitude samples in radian\n wgs84_alt_m : Array of floats\n WGS84 altitude samples in m\n nsamples : int\n Number of samples in the trajectory\n _swiss_grid_done : Bool\n Indicates that convertion to Swiss coordinates has been performed\n swiss_chy, swiss_chx, swiss_chh : Array of floats\n Swiss coordinates in m\n radar_list : list\n List of radars for which trajectories are going to be computed\n flashnr : int\n For 'lightning' only. Number of flash for which trajectory data\n is going to be computed. If 0 all all flashes are going to be\n considered.\n time_in_flash : array of floats\n For 'lightning' only. Time within flash (sec)\n flashnr_vec : array of ints\n For 'lightning' only. Flash number of each data sample\n dBm : array of floats\n For 'lightning' only. Lightning power (dBm)\n\n\n Methods:\n --------\n add_radar : Add a radar\n calculate_velocities : Computes velocities\n get_start_time : Return time of first trajectory sample\n get_end_time : Return time of last trajectory sample\n get_samples_in_period : Get indices of samples within period\n _convert_traj_to_swissgrid : convert data from WGS84 to Swiss coordinates\n _read_traj : Read plane trajectory from file\n _read_traj_lightning : Read lightning trajectory from file\n _get_total_seconds : Get the total time of the trajectory in seconds\n\n ", 'get_start_time': <function Trajectory.get_start_time>, '_read_traj': <function Trajectory._read_traj>, '__dict__': <attribute '__dict__' of 'Trajectory' objects>, '_convert_traj_to_swissgrid': <function Trajectory._convert_traj_to_swissgrid>, '_get_total_seconds': <function Trajectory._get_total_seconds>, '__init__': <function Trajectory.__init__>, 'get_samples_in_period': <function Trajectory.get_samples_in_period>, '__module__': 'pyrad.io.trajectory', '_read_traj_trt': <function Trajectory._read_traj_trt>, '_read_traj_lightning': <function Trajectory._read_traj_lightning>, 'add_radar': <function Trajectory.add_radar>})¶
    +__dict__ = mappingproxy({'__module__': 'pyrad.io.trajectory', '__doc__': "\n A class for reading and handling trajectory data from a file.\n\n Attributes\n ----------\n filename : str\n Path and name of the trajectory definition file\n starttime : datetime\n Start time of trajectory processing.\n endtime : datetime\n End time of trajectory processing.\n trajtype : str\n Type of trajectory. Can be 'plane' or 'lightning'\n time_vector : Array of datetime objects\n Array containing the trajectory time samples\n wgs84_lat_deg : Array of floats\n WGS84 latitude samples in radian\n wgs84_lon_deg : Array of floats\n WGS84 longitude samples in radian\n wgs84_alt_m : Array of floats\n WGS84 altitude samples in m\n nsamples : int\n Number of samples in the trajectory\n _swiss_grid_done : Bool\n Indicates that convertion to Swiss coordinates has been performed\n swiss_chy, swiss_chx, swiss_chh : Array of floats\n Swiss coordinates in m\n radar_list : list\n List of radars for which trajectories are going to be computed\n flashnr : int\n For 'lightning' only. Number of flash for which trajectory data\n is going to be computed. If 0 all all flashes are going to be\n considered.\n time_in_flash : array of floats\n For 'lightning' only. Time within flash (sec)\n flashnr_vec : array of ints\n For 'lightning' only. Flash number of each data sample\n dBm : array of floats\n For 'lightning' only. Lightning power (dBm)\n\n\n Methods:\n --------\n add_radar : Add a radar\n calculate_velocities : Computes velocities\n get_start_time : Return time of first trajectory sample\n get_end_time : Return time of last trajectory sample\n get_samples_in_period : Get indices of samples within period\n _convert_traj_to_swissgrid : convert data from WGS84 to Swiss coordinates\n _read_traj : Read plane trajectory from file\n _read_traj_lightning : Read lightning trajectory from file\n _get_total_seconds : Get the total time of the trajectory in seconds\n\n ", '__init__': <function Trajectory.__init__>, 'add_radar': <function Trajectory.add_radar>, 'calculate_velocities': <function Trajectory.calculate_velocities>, 'get_samples_in_period': <function Trajectory.get_samples_in_period>, 'get_start_time': <function Trajectory.get_start_time>, 'get_end_time': <function Trajectory.get_end_time>, '_convert_traj_to_swissgrid': <function Trajectory._convert_traj_to_swissgrid>, '_read_traj': <function Trajectory._read_traj>, '_read_traj_lightning': <function Trajectory._read_traj_lightning>, '_read_traj_trt': <function Trajectory._read_traj_trt>, '_get_total_seconds': <function Trajectory._get_total_seconds>, '__dict__': <attribute '__dict__' of 'Trajectory' objects>, '__weakref__': <attribute '__weakref__' of 'Trajectory' objects>})¶

    @@ -868,6 +875,14 @@

    TimeSeries +
    +__init_subclass__()¶
    +

    This method is called when a class is subclassed.

    +

    The default implementation does nothing. It may be +overridden to extend subclasses.

    +

    +
    __le__($self, value, /)¶
    @@ -4082,7 +4097,7 @@

    Navigation

    \ No newline at end of file diff --git a/docs/objects.inv b/docs/objects.inv index 04fbd59..210ef42 100644 Binary files a/docs/objects.inv and b/docs/objects.inv differ diff --git a/docs/proc.html b/docs/proc.html index ecc679f..44c0620 100644 --- a/docs/proc.html +++ b/docs/proc.html @@ -14,7 +14,6 @@ - @@ -231,37 +230,34 @@

    Monitoring, calibration and noise correctionprocess_selfconsistency_bias(procstatus, dscfg) Estimates the reflectivity bias by means of the selfconsistency algorithm by Gourley -process_time_avg_std(procstatus, dscfg[, â€¦]) -computes the average and standard deviation of data. - -process_occurrence(procstatus, dscfg[, â€¦]) +process_occurrence(procstatus, dscfg[, â€¦]) computes the frequency of occurrence of data. -process_occurrence_period(procstatus, dscfg) +process_occurrence_period(procstatus, dscfg) computes the frequency of occurrence over a long period of time by adding together shorter periods -process_monitoring(procstatus, dscfg[, â€¦]) +process_monitoring(procstatus, dscfg[, â€¦]) computes monitoring statistics -process_gc_monitoring(procstatus, dscfg[, â€¦]) +process_gc_monitoring(procstatus, dscfg[, â€¦]) computes ground clutter monitoring statistics -process_time_avg(procstatus, dscfg[, radar_list]) +process_time_avg(procstatus, dscfg[, radar_list]) computes the temporal mean of a field -process_weighted_time_avg(procstatus, dscfg) +process_weighted_time_avg(procstatus, dscfg) computes the temporal mean of a field weighted by the reflectivity -process_time_avg_flag(procstatus, dscfg[, â€¦]) +process_time_avg_flag(procstatus, dscfg[, â€¦]) computes a flag field describing the conditions of the data used while averaging -process_colocated_gates(procstatus, dscfg[, â€¦]) +process_colocated_gates(procstatus, dscfg[, â€¦]) Find colocated gates within two radars -process_intercomp(procstatus, dscfg[, â€¦]) +process_intercomp(procstatus, dscfg[, â€¦]) intercomparison between two radars -process_intercomp_time_avg(procstatus, dscfg) +process_intercomp_time_avg(procstatus, dscfg) intercomparison between the average reflectivity of two radars @@ -3931,7 +3927,7 @@

    COSMO data: float

    If the radar object contains an RHI volume, the tolerance in the -elevation angle for the conversion into PPI. Default 1.

    +elevation angle for the conversion into PPI

    lat, lon : float

    latitude and longitude of the point of interest [deg]

    @@ -4093,73 +4089,6 @@

    COSMO data -
    -pyrad.proc.process_time_avg_std(procstatus, dscfg, radar_list=None)[source]¶
    -

    computes the average and standard deviation of data. It looks only for -gates where data is present.

    - --- - - - - - -
    Parameters:
    -
    procstatus : int
    -

    Processing status: 0 initializing, 1 processing volume, -2 post-processing

    -
    -
    dscfg : dictionary of dictionaries
    -

    data set configuration. Accepted Configuration Keywords:

    -
    -
    datatype : list of string. Dataset keyword
    -

    The input data types

    -
    -
    regular_grid : Boolean. Dataset keyword
    -

    Whether the radar has a Boolean grid or not. Default False

    -
    -
    rmin, rmax : float. Dataset keyword
    -

    minimum and maximum ranges where the computation takes place. If --1 the whole range is considered. Default is -1

    -
    -
    val_min : Float. Dataset keyword
    -

    Minimum reflectivity value to consider that the gate has signal. -Default None

    -
    -
    filter_prec : str. Dataset keyword
    -

    Give which type of volume should be filtered. None, no filtering; -keep_wet, keep wet volumes; keep_dry, keep dry volumes.

    -
    -
    rmax_prec : float. Dataset keyword
    -

    Maximum range to consider when looking for wet gates [m]

    -
    -
    percent_prec_max : float. Dataset keyword
    -

    Maxim percentage of wet gates to consider the volume dry

    -
    -
    lin_trans : Boolean. Dataset keyword
    -

    If True the data will be transformed into linear units. Default -False

    -
    -
    -
    -
    radar_list : list of Radar objects
    -

    Optional. list of radar objects

    -
    -
    -
    Returns:
    -
    new_dataset : dict
    -

    dictionary containing the output

    -
    -
    ind_rad : int
    -

    radar index

    -
    -
    -
    -
    -
    pyrad.proc.process_time_height(procstatus, dscfg, radar_list=None)[source]¶
    @@ -4958,7 +4887,7 @@

    COSMO data: list of ints. Dataset keyword

    list of hydrometeor classes to keep for the analysis -Default [2] (dry snow)

    +Default [1] (dry snow)

    @@ -5005,7 +4934,7 @@

    Navigation

    \ No newline at end of file diff --git a/docs/prod.html b/docs/prod.html index 6db87ee..d3f5021 100644 --- a/docs/prod.html +++ b/docs/prod.html @@ -14,7 +14,6 @@ - @@ -559,7 +558,7 @@

    Navigation

    \ No newline at end of file diff --git a/docs/py-modindex.html b/docs/py-modindex.html index 4fae876..3e4b8f9 100644 --- a/docs/py-modindex.html +++ b/docs/py-modindex.html @@ -14,7 +14,6 @@ - @@ -124,7 +123,7 @@

    Navigation

    \ No newline at end of file diff --git a/docs/search.html b/docs/search.html index ded57a7..b239294 100644 --- a/docs/search.html +++ b/docs/search.html @@ -15,7 +15,6 @@ - @@ -92,7 +91,7 @@

    Navigation

    \ No newline at end of file diff --git a/docs/searchindex.js b/docs/searchindex.js index b98cc86..17a29fa 100644 --- a/docs/searchindex.js +++ b/docs/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["flow","graph","index","io","proc","prod","util"],envversion:{"sphinx.domains.c":1,"sphinx.domains.changeset":1,"sphinx.domains.cpp":1,"sphinx.domains.javascript":1,"sphinx.domains.math":1,"sphinx.domains.python":1,"sphinx.domains.rst":1,"sphinx.domains.std":1,"sphinx.ext.intersphinx":1,"sphinx.ext.todo":1,"sphinx.ext.viewcode":1,sphinx:55},filenames:["flow.rst","graph.rst","index.rst","io.rst","proc.rst","prod.rst","util.rst"],objects:{"pyrad.flow":{main:[0,1,1,""],main_rt:[0,1,1,""]},"pyrad.graph":{get_colobar_label:[1,1,1,""],get_field_name:[1,1,1,""],plot_along_coord:[1,1,1,""],plot_antenna_pattern:[1,1,1,""],plot_bscope:[1,1,1,""],plot_cappi:[1,1,1,""],plot_density:[1,1,1,""],plot_field_coverage:[1,1,1,""],plot_histogram2:[1,1,1,""],plot_histogram:[1,1,1,""],plot_intercomp_scores_ts:[1,1,1,""],plot_latitude_slice:[1,1,1,""],plot_latlon_slice:[1,1,1,""],plot_longitude_slice:[1,1,1,""],plot_ml_ts:[1,1,1,""],plot_monitoring_ts:[1,1,1,""],plot_pos:[1,1,1,""],plot_ppi:[1,1,1,""],plot_ppi_contour:[1,1,1,""],plot_ppi_map:[1,1,1,""],plot_quantiles:[1,1,1,""],plot_rhi:[1,1,1,""],plot_rhi_contour:[1,1,1,""],plot_rhi_profile:[1,1,1,""],plot_scatter:[1,1,1,""],plot_scatter_comp:[1,1,1,""],plot_sun_hits:[1,1,1,""],plot_sun_retrieval_ts:[1,1,1,""],plot_surface:[1,1,1,""],plot_time_range:[1,1,1,""],plot_timeseries:[1,1,1,""],plot_timeseries_comp:[1,1,1,""],plot_traj:[1,1,1,""]},"pyrad.io":{TimeSeries:[3,2,1,""],Trajectory:[3,2,1,""],add_field:[3,1,1,""],cosmo2radar_coord:[3,1,1,""],cosmo2radar_data:[3,1,1,""],find_hzt_file:[3,1,1,""],find_raw_cosmo_file:[3,1,1,""],generate_field_name_str:[3,1,1,""],get_cosmo_fields:[3,1,1,""],get_data:[3,1,1,""],get_dataset_fields:[3,1,1,""],get_datatype_fields:[3,1,1,""],get_datetime:[3,1,1,""],get_field_unit:[3,1,1,""],get_fieldname_cosmo:[3,1,1,""],get_fieldname_pyart:[3,1,1,""],get_file_list:[3,1,1,""],get_iso0_field:[3,1,1,""],get_new_rainbow_file_name:[3,1,1,""],get_save_dir:[3,1,1,""],get_sensor_data:[3,1,1,""],get_trtfile_list:[3,1,1,""],hzt2radar_coord:[3,1,1,""],hzt2radar_data:[3,1,1,""],interpol_field:[3,1,1,""],make_filename:[3,1,1,""],map_Doppler:[3,1,1,""],map_hydro:[3,1,1,""],read_antenna_pattern:[3,1,1,""],read_colocated_data:[3,1,1,""],read_colocated_gates:[3,1,1,""],read_config:[3,1,1,""],read_cosmo_coord:[3,1,1,""],read_cosmo_data:[3,1,1,""],read_disdro_scattering:[3,1,1,""],read_excess_gates:[3,1,1,""],read_histogram:[3,1,1,""],read_histogram_ts:[3,1,1,""],read_hzt_data:[3,1,1,""],read_intercomp_scores_ts:[3,1,1,""],read_last_state:[3,1,1,""],read_lightning:[3,1,1,""],read_lightning_all:[3,1,1,""],read_lightning_traj:[3,1,1,""],read_meteorage:[3,1,1,""],read_ml_ts:[3,1,1,""],read_monitoring_ts:[3,1,1,""],read_profile_ts:[3,1,1,""],read_quantiles:[3,1,1,""],read_quantiles_ts:[3,1,1,""],read_rad4alp_cosmo:[3,1,1,""],read_rad4alp_vis:[3,1,1,""],read_rhi_profile:[3,1,1,""],read_selfconsistency:[3,1,1,""],read_smn2:[3,1,1,""],read_smn:[3,1,1,""],read_solar_flux:[3,1,1,""],read_status:[3,1,1,""],read_sun_hits:[3,1,1,""],read_sun_hits_multiple_days:[3,1,1,""],read_sun_retrieval:[3,1,1,""],read_timeseries:[3,1,1,""],read_trt_cell_lightning:[3,1,1,""],read_trt_data:[3,1,1,""],read_trt_scores:[3,1,1,""],read_trt_traj_data:[3,1,1,""],read_ts_cum:[3,1,1,""],send_msg:[3,1,1,""],write_alarm_msg:[3,1,1,""],write_cdf:[3,1,1,""],write_colocated_data:[3,1,1,""],write_colocated_data_time_avg:[3,1,1,""],write_colocated_gates:[3,1,1,""],write_excess_gates:[3,1,1,""],write_field_coverage:[3,1,1,""],write_histogram:[3,1,1,""],write_intercomp_scores_ts:[3,1,1,""],write_last_state:[3,1,1,""],write_monitoring_ts:[3,1,1,""],write_quantiles:[3,1,1,""],write_rhi_profile:[3,1,1,""],write_smn:[3,1,1,""],write_sun_hits:[3,1,1,""],write_sun_retrieval:[3,1,1,""],write_trt_cell_data:[3,1,1,""],write_trt_cell_lightning:[3,1,1,""],write_trt_cell_scores:[3,1,1,""],write_ts_cum:[3,1,1,""],write_ts_lightning:[3,1,1,""],write_ts_polar_data:[3,1,1,""]},"pyrad.io.TimeSeries":{__class__:[3,3,1,""],__delattr__:[3,3,1,""],__dict__:[3,3,1,""],__dir__:[3,4,1,""],__eq__:[3,3,1,""],__format__:[3,4,1,""],__ge__:[3,3,1,""],__getattribute__:[3,3,1,""],__gt__:[3,3,1,""],__hash__:[3,3,1,""],__init__:[3,4,1,""],__le__:[3,3,1,""],__lt__:[3,3,1,""],__module__:[3,3,1,""],__ne__:[3,3,1,""],__new__:[3,4,1,""],__reduce__:[3,4,1,""],__reduce_ex__:[3,4,1,""],__repr__:[3,3,1,""],__setattr__:[3,3,1,""],__sizeof__:[3,4,1,""],__str__:[3,3,1,""],__subclasshook__:[3,4,1,""],__weakref__:[3,3,1,""],add_dataseries:[3,4,1,""],add_timesample:[3,4,1,""],plot:[3,4,1,""],plot_hist:[3,4,1,""],write:[3,4,1,""]},"pyrad.io.Trajectory":{__class__:[3,3,1,""],__delattr__:[3,3,1,""],__dict__:[3,3,1,""],__dir__:[3,4,1,""],__eq__:[3,3,1,""],__format__:[3,4,1,""],__ge__:[3,3,1,""],__getattribute__:[3,3,1,""],__gt__:[3,3,1,""],__hash__:[3,3,1,""],__init__:[3,4,1,""],__le__:[3,3,1,""],__lt__:[3,3,1,""],__module__:[3,3,1,""],__ne__:[3,3,1,""],__new__:[3,4,1,""],__reduce__:[3,4,1,""],__reduce_ex__:[3,4,1,""],__repr__:[3,3,1,""],__setattr__:[3,3,1,""],__sizeof__:[3,4,1,""],__str__:[3,3,1,""],__subclasshook__:[3,4,1,""],__weakref__:[3,3,1,""],_convert_traj_to_swissgrid:[3,4,1,""],_get_total_seconds:[3,4,1,""],_read_traj:[3,4,1,""],_read_traj_lightning:[3,4,1,""],_read_traj_trt:[3,4,1,""],add_radar:[3,4,1,""],calculate_velocities:[3,4,1,""],get_end_time:[3,4,1,""],get_samples_in_period:[3,4,1,""],get_start_time:[3,4,1,""]},"pyrad.proc":{get_process_func:[4,1,1,""],process_attenuation:[4,1,1,""],process_azimuthal_average:[4,1,1,""],process_bird_density:[4,1,1,""],process_birds_id:[4,1,1,""],process_cdf:[4,1,1,""],process_cdr:[4,1,1,""],process_clt_to_echo_id:[4,1,1,""],process_colocated_gates:[4,1,1,""],process_correct_bias:[4,1,1,""],process_correct_noise_rhohv:[4,1,1,""],process_correct_phidp0:[4,1,1,""],process_cosmo:[4,1,1,""],process_cosmo_coord:[4,1,1,""],process_cosmo_lookup_table:[4,1,1,""],process_dealias_fourdd:[4,1,1,""],process_dealias_region_based:[4,1,1,""],process_dealias_unwrap_phase:[4,1,1,""],process_echo_filter:[4,1,1,""],process_echo_id:[4,1,1,""],process_estimate_phidp0:[4,1,1,""],process_evp:[4,1,1,""],process_filter_snr:[4,1,1,""],process_filter_vel_diff:[4,1,1,""],process_filter_visibility:[4,1,1,""],process_gc_monitoring:[4,1,1,""],process_grid:[4,1,1,""],process_hydroclass:[4,1,1,""],process_hzt:[4,1,1,""],process_hzt_coord:[4,1,1,""],process_hzt_lookup_table:[4,1,1,""],process_intercomp:[4,1,1,""],process_intercomp_time_avg:[4,1,1,""],process_kdp_leastsquare_double_window:[4,1,1,""],process_kdp_leastsquare_single_window:[4,1,1,""],process_l:[4,1,1,""],process_melting_layer:[4,1,1,""],process_monitoring:[4,1,1,""],process_occurrence:[4,1,1,""],process_occurrence_period:[4,1,1,""],process_outlier_filter:[4,1,1,""],process_phidp_kdp_Kalman:[4,1,1,""],process_phidp_kdp_Maesaka:[4,1,1,""],process_phidp_kdp_Vulpiani:[4,1,1,""],process_phidp_kdp_lp:[4,1,1,""],process_point_measurement:[4,1,1,""],process_qvp:[4,1,1,""],process_rainrate:[4,1,1,""],process_raw:[4,1,1,""],process_rcs:[4,1,1,""],process_rcs_pr:[4,1,1,""],process_rhohv_rain:[4,1,1,""],process_roi:[4,1,1,""],process_rqvp:[4,1,1,""],process_save_radar:[4,1,1,""],process_selfconsistency_bias:[4,1,1,""],process_selfconsistency_kdp_phidp:[4,1,1,""],process_signal_power:[4,1,1,""],process_smooth_phidp_double_window:[4,1,1,""],process_smooth_phidp_single_window:[4,1,1,""],process_snr:[4,1,1,""],process_sun_hits:[4,1,1,""],process_svp:[4,1,1,""],process_time_avg:[4,1,1,""],process_time_avg_flag:[4,1,1,""],process_time_avg_std:[4,1,1,""],process_time_height:[4,1,1,""],process_traj_antenna_pattern:[4,1,1,""],process_traj_atplane:[4,1,1,""],process_traj_lightning:[4,1,1,""],process_traj_trt:[4,1,1,""],process_trajectory:[4,1,1,""],process_vad:[4,1,1,""],process_vol_refl:[4,1,1,""],process_weighted_time_avg:[4,1,1,""],process_wind_vel:[4,1,1,""],process_windshear:[4,1,1,""],process_zdr_column:[4,1,1,""],process_zdr_precip:[4,1,1,""],process_zdr_snow:[4,1,1,""]},"pyrad.prod":{generate_colocated_gates_products:[5,1,1,""],generate_cosmo_coord_products:[5,1,1,""],generate_grid_products:[5,1,1,""],generate_intercomp_products:[5,1,1,""],generate_ml_products:[5,1,1,""],generate_monitoring_products:[5,1,1,""],generate_occurrence_products:[5,1,1,""],generate_qvp_products:[5,1,1,""],generate_sun_hits_products:[5,1,1,""],generate_time_avg_products:[5,1,1,""],generate_timeseries_products:[5,1,1,""],generate_traj_product:[5,1,1,""],generate_vol_products:[5,1,1,""],get_prodgen_func:[5,1,1,""]},"pyrad.util":{belongs_roi_indices:[6,1,1,""],compute_1d_stats:[6,1,1,""],compute_2d_hist:[6,1,1,""],compute_2d_stats:[6,1,1,""],compute_directional_stats:[6,1,1,""],compute_histogram:[6,1,1,""],compute_histogram_sweep:[6,1,1,""],compute_profile_stats:[6,1,1,""],compute_quantiles:[6,1,1,""],compute_quantiles_from_hist:[6,1,1,""],compute_quantiles_sweep:[6,1,1,""],create_sun_hits_field:[6,1,1,""],create_sun_retrieval_field:[6,1,1,""],find_colocated_indexes:[6,1,1,""],find_neighbour_gates:[6,1,1,""],find_ray_index:[6,1,1,""],find_rng_index:[6,1,1,""],get_ROI:[6,1,1,""],get_closest_solar_flux:[6,1,1,""],get_range_bins_to_avg:[6,1,1,""],get_target_elevations:[6,1,1,""],join_time_series:[6,1,1,""],project_to_vertical:[6,1,1,""],quantiles_weighted:[6,1,1,""],rainfall_accumulation:[6,1,1,""],time_avg_range:[6,1,1,""],time_series_statistics:[6,1,1,""]},pyrad:{flow:[0,0,0,"-"],graph:[1,0,0,"-"],io:[3,0,0,"-"],proc:[4,0,0,"-"],prod:[5,0,0,"-"],util:[6,0,0,"-"]}},objnames:{"0":["py","module","Python module"],"1":["py","function","Python function"],"2":["py","class","Python class"],"3":["py","attribute","Python attribute"],"4":["py","method","Python method"]},objtypes:{"0":"py:module","1":"py:function","2":"py:class","3":"py:attribute","4":"py:method"},terms:{"10log10":4,"25th":1,"3x3x3":3,"4dd":4,"75th":1,"abstract":3,"boolean":[0,1,3,4,6],"byte":3,"case":4,"class":[3,4],"default":[1,3,4,6],"final":4,"float":[1,3,4,6],"function":[0,1,2,6],"int":[0,1,3,4,6],"long":[3,4],"new":[0,1,3,4,6],"return":[0,1,3,4,5,6],"short":[3,4],"true":[0,1,3,4,6],"var":4,"while":4,For:3,One:4,RCS:4,The:[0,1,3,4,6],Use:4,Used:4,__class__:3,__delattr__:3,__dict__:3,__dir__:3,__doc__:3,__eq__:3,__format__:3,__ge__:3,__getattribute__:3,__gt__:3,__hash__:3,__init__:3,__le__:3,__lt__:3,__module__:3,__ne__:3,__new__:3,__reduce__:3,__reduce_ex__:3,__repr__:3,__setattr__:3,__sizeof__:3,__str__:3,__subclasscheck__:3,__subclasshook__:3,__weakref__:3,_convert_traj_to_swissgrid:3,_dataseri:3,_get_total_second:3,_read_traj:3,_read_traj_lightn:3,_read_traj_trt:3,_swiss_grid_don:3,abc:3,abcmeta:3,about:[0,3],abov:4,abs:4,accept:4,accord:4,accordingli:3,accumul:[1,3,6],accur:3,acquisit:3,across:4,actual:[0,3,4],add:[1,3],add_dataseri:3,add_field:3,add_radar:3,add_timesampl:3,added:[0,4],adding:4,addit:3,address:3,adiff:3,after:[0,4,6],alarm:3,alber:4,albi:4,algorithm:[3,4],alia:3,alitud:3,all:[0,3,4,6],allow:4,along:[1,4,6],alpha:[1,4],alphaa:4,alphakdp:4,alphaz:4,alphazr:4,alt:[1,3,4],alt_max:4,alt_min:4,alt_tol:4,altitud:[1,3,4,6],altorig:4,amper:3,amplifi:4,amplitud:3,analys:4,analysi:4,ang_tol:[3,4],angl:[1,3,4,6],anglenr:4,ani:[4,6],anoth:4,antenna:[1,3,4],antenna_gain:4,antennatyp:4,antpattern:1,appli:4,arbitrari:4,area:3,area_flash_max_list:3,ared:4,arg:3,arrai:[1,3,4,6],array2:1,art:[3,4],artifact:4,asr:4,asr_highbeam_antenna:4,asr_lowbeam_antenna:4,associ:4,assum:4,att_method:4,attenu:[1,2,3],attg:4,attribut:3,auxiliari:2,averag:[3,4,5,6],avg_endtim:6,avg_rad1:6,avg_rad2:6,avg_rad_lim:6,avg_starttim:6,avg_tim:6,avg_typ:[4,6],avg_valu:3,axes:1,axi:[1,3,6],az_bias_h:3,az_bias_v:3,az_tol:4,az_width_co:4,az_width_cross:4,az_width_h:3,az_width_v:3,azi:[4,6],azi_start:3,azi_stop:3,azi_tol:[4,6],azi_traj:1,azi_vec:6,azimuth:[1,4,5,6],azitol:4,azrad1max:4,azrad1min:4,azrad2max:4,azrad2min:4,bandwidth:4,bar:1,barn:4,base:[3,4,6],base_tim:6,basepath:3,beam:4,beamwidth:4,beamwidthh:4,beamwidthv:4,been:[0,3,4],befor:[0,4,6],being:3,belong:6,belongs_roi_indic:6,below:4,bergen:4,beta:4,betaa:4,betakdp:4,betaz:4,betazr:4,better:4,between:[1,4],bia:[1,4],bin:[1,3,4,6],bin_cent:[1,6],bin_edg:[1,3,6],bin_edges1:[1,6],bin_edges2:[1,6],binari:3,bins_edg:6,bird:4,bool:[0,1,3,4],box:3,builtin:3,cach:3,calcul:3,calculate_veloc:3,calibr:2,can:[0,1,3,4,6],canada:3,cappi:1,cartesian:1,cb_label:1,cell:[3,4],cell_contour:3,cell_contour_lon:3,cell_id:3,cell_tim:3,celsiu:3,center:[1,3,4,6],centigrad:3,central:[1,4,6],central_quantil:3,centroid:4,certain:3,cfg:3,cfgfile:0,cfgfile_list:0,cfradial:3,cg_n:3,cg_p:3,cg_percent_p:3,ch1903:3,chang:4,channel:4,check:[3,6],chx0:3,chy0:3,circular:4,classif:[2,3],classifi:4,close:[1,4],closest:[4,6],cloud:3,clt_max:4,clutter:4,code:[1,4],coeff_band:4,coeffici:[1,4],colect:3,collect:4,colloc:4,coloc:[3,4,5],coloc_data:3,coloc_data_dir:4,coloc_g:3,coloc_radars_nam:4,color:[1,3],color_ref:1,colorbar:1,column:[3,4],combin:4,come:5,compar:6,comparison:1,compon:4,compromis:4,comput:[1,3,4,6],compute_1d_stat:6,compute_2d_hist:6,compute_2d_stat:6,compute_directional_stat:6,compute_histogram:6,compute_histogram_sweep:6,compute_profile_stat:6,compute_quantil:6,compute_quantiles_from_hist:6,compute_quantiles_sweep:6,condit:4,config:[0,3,4],configur:[1,2,4,5,6],connect:4,consid:[1,3,4,6],consist:[3,4],constant:[1,4],contain:[1,3,4,5],contamin:4,content:[2,3],contin:4,continu:4,contour:1,contour_valu:1,control:[1,2,3,4],convent:4,convers:4,convert:[3,4],convolut:4,coord1:1,coord2:1,coord:1,coordin:[1,3,4,5,6],corr_min:1,corr_vec:[1,3],correct:2,correl:1,correspond:[0,3,4,6],cosmo2radar_coord:3,cosmo2radar_data:3,cosmo:[2,5],cosmo_coord:3,cosmo_data:3,cosmo_field:3,cosmo_ind:3,cosmo_ind_field:3,cosmo_nam:3,cosmo_typ:4,cosmo_vari:4,cosmopath:4,could:4,coverag:[1,3],cquant:1,creat:[1,3,4,5,6],create_dir:3,create_sun_hits_field:6,create_sun_retrieval_field:6,cressman:4,criteria:6,cronjob:0,cronjob_control:0,croo:1,cross:[1,4],csv:[3,4],cum_tim:6,cumul:[1,3,4],current:[0,3,4,6],curti:4,custom:3,cut:3,dai:[3,4],data:[0,1,2,5,6],data_height:6,data_in:6,data_is_log:[4,6],data_list:1,data_ma:3,data_out:6,data_typ:1,datadescriptor:3,datagroup:3,datapath:3,dataseri:3,dataset:[0,2,3,5],dataset_typ:4,datasetdescr:3,datatyp:[3,4],datatypesdescr:3,date1:1,date2:1,date:[1,3,6],date_last:3,date_vec:[1,3],datetim:[0,1,3,6],datetime_arr:3,datetime_last:3,datetime_vec:3,datset:4,dazim_max:4,dbm:[3,4],dbm_sun_est:3,dbmv_sun_est:3,dbz:[3,4],dbzc:3,dealias:4,decim:3,defin:[3,4,6],definit:3,deg:[1,3,4,6],degre:[3,4,6],delattr:3,delev_max:4,delta_azi:[4,6],delta_rng:[4,6],deltaco:3,densiti:[1,3,4],depend:4,depolar:4,deprec:3,deriv:4,desc:3,describ:[0,4,6],descript:3,descriptor:3,desir:4,dest:3,destin:3,det:3,detect:[3,4],determin:[0,3,4,6],develop:4,deviat:[3,4,6],diamet:4,dict:[1,3,4,5,6],dictionari:[1,3,4,5,6],differ:4,differenti:4,dimens:[3,6],dimension:[4,6],dir:3,directori:[3,4],disabl:4,disdromet:3,displai:4,dist_beam:4,distanc:4,distribut:[3,4],doe:[1,4],doppler:[2,3],doppler_data:3,doppler_data_bin:3,dot:1,down:0,dphidp_max:4,dphidp_min:4,dpi:1,drao:3,dropnan:6,dry:4,dscfg:4,dsformat:[4,5],dsname:[3,4,5],dstype:[3,5],dt_ml:3,dt_ml_arr:1,dummi:4,dvel_i:3,dvel_x:3,dx50:4,each:[0,1,3,4,6],earli:3,east:3,ecc:3,eccentr:3,echo:[2,3],echo_typ:4,echotop:3,edg:[1,3,6],either:[0,4],ekyword:4,el0:3,el_bias_h:3,el_bias_v:3,el_tol:6,el_width_co:4,el_width_cross:4,el_width_h:3,el_width_v:3,ele:[4,6],ele_start:3,ele_stop:3,ele_tol:[4,6],ele_traj:1,ele_vec:6,element:[3,6],eletol:4,elev:[1,3,4,6],elimin:4,ell_:3,ell_l:3,ell_or:3,ellips:3,ellipsi:3,elmax:4,elmin:4,email:3,end:[0,3,6],end_proc:0,endtim:[0,3],enhanc:4,entir:4,estim:4,et15:3,et15m:3,et45:3,et45m:3,etc:[3,4,5],evalu:4,event:3,eventu:3,evolut:4,evp:4,examin:4,exceed:[0,3],excess:4,excess_dict:3,excessgates_fnam:4,excessgatespath:4,execut:0,exist:3,exit:[3,4],expon:4,ext_list:3,extend:[1,6],extens:[1,3],extract:4,factor:4,fals:[0,1,3,4,6],fdatetim:3,feed:4,field1:6,field2:6,field:[1,3,4,6],field_dest:3,field_dict:1,field_list:3,field_nam2:6,field_nam:[1,3,6],field_name1:[1,6],field_name2:[1,6],field_str:3,fieldnam:6,fig:1,figur:[1,3],file:[0,1,2,4,5,6],filelist:3,filenam:[3,5],fill:[3,6],fill_valu:[3,6],filt:4,filter:[2,3,6],filter_data:3,filter_prec:4,filterprec:3,find:[3,4,6],find_colocated_index:6,find_hzt_fil:3,find_neighbour_g:6,find_raw_cosmo_fil:3,find_ray_index:6,find_rng_index:6,finish:[0,4],first:[1,3,4,6],first_hit_tim:3,fix:4,flag:4,flash:[0,3],flash_den:3,flash_dens:3,flash_density_max:3,flash_density_max_rank:3,flash_density_max_tim:3,flashnr:[0,3],flashnr_vec:3,flow:2,flux:[3,6],flux_datetim:3,flux_datetime_closest_list:6,flux_datetime_list:6,flux_valu:3,flux_value_closest_list:6,flux_value_list:6,fname:3,fname_list:[1,3],fold:4,follow:[3,4],forc:0,forecast:3,format:[1,3,4,5],formatt:3,free:4,freez:4,freq:4,frequenc:[3,4],from:[0,1,3,4,5,6],func:5,func_nam:4,further:4,fzl:4,gain:4,gap:4,gas:4,gaseou:4,gate:[3,4,5,6],gate_altitud:6,gatefilt:4,gaug:3,gener:[0,2,3,4],generate_colocated_gates_product:5,generate_cosmo_coord_product:5,generate_field_name_str:3,generate_grid_product:5,generate_intercomp_product:5,generate_ml_product:5,generate_monitoring_product:5,generate_occurrence_product:5,generate_qvp_product:5,generate_sun_hits_product:5,generate_time_avg_product:5,generate_timeseries_product:5,generate_traj_product:5,generate_vol_product:5,geograph:1,get:[3,4,6],get_closest_solar_flux:6,get_colobar_label:1,get_cosmo_field:3,get_data:3,get_dataset_field:3,get_datatype_field:3,get_datetim:3,get_end_tim:3,get_field_nam:1,get_field_unit:3,get_fieldname_cosmo:3,get_fieldname_pyart:3,get_file_list:3,get_histogram_bin:4,get_iso0_field:3,get_new_rainbow_file_nam:3,get_phidp:4,get_process_func:4,get_prodgen_func:5,get_range_bins_to_avg:6,get_roi:6,get_samples_in_period:3,get_save_dir:3,get_sensor_data:3,get_start_tim:3,get_target_elev:6,get_trtfile_list:3,getattr:3,give:4,given:[0,3,4,6],global:4,going:[3,4],good:4,gourlei:4,graph:2,graphic:1,grid:[1,3,4,5,6],grid_height:6,gridconfig:4,grng:4,ground:[3,4],group:[3,5],h_re:6,h_tol:4,h_vec:6,half:4,handl:[1,3],has:[0,3,4,6],hash:3,have:[3,4],hbin_edg:3,heigh:6,height:[1,3,4,6],height_over_iso0:3,help:3,helper:3,high:[1,4],high_quantil:3,highbeam:4,higher:[3,4],highest_on_top:1,hist:[1,3,6],hist_2d:[1,6],hist_obj:1,hist_typ:1,histogram:[1,3,4,5,6],hit:[1,3,4,5,6],hit_datetime_list:6,hmax:[1,4],hmin:[1,4],hold:[3,4],horizont:[3,4],houz:4,how:3,hquant:1,hre:[3,4],hvec:[1,3],hybrid:4,hydro:[3,4],hydro_data_op:3,hydro_data_pi:3,hydro_method:4,hydroclass:4,hydrometeor:[3,4],hzt2radar_coord:3,hzt2radar_data:3,hzt:[3,4],hzt_coord:3,hzt_data:3,hzt_field:3,hzt_ind:3,hzt_ind_field:3,identifi:[3,4],imgcfg:6,implement:3,inch:1,incl:3,inclin:3,includ:3,include_nan:6,ind:6,ind_az:1,ind_el:1,ind_rad:[3,4],ind_rai:6,ind_ray_rad1:6,ind_ray_rad2:6,ind_rng:6,ind_rng_aux:6,ind_rng_rad1:6,ind_rng_rad2:6,ind_sweep:1,independ:4,index:[1,2,3,4,6],indic:[1,3,4,6],individu:[3,4],inds_ray_aux:6,inear:1,info:3,inform:[0,3,4],infostr:0,infostr_list:0,init:3,initi:[4,5],input:[2,4,6],insid:4,instantan:[1,4],inted:0,integr:[3,4],inten:3,intend:4,intercep:1,intercep_slope1_vec:[1,3],intercep_vec:[1,3],intercompar:3,intercomparison:[1,3,4,5],interest:[4,6],interp:4,interp_kind:[4,6],interpol:[3,4,6],interpol_field:3,interv:[4,6],interval_limit:4,interval_split:4,intra:3,invert:1,invert_xaxi:1,invok:3,is_roi:6,iso0:[3,4],iso0_field:3,iso:3,issubclass:3,iter:4,its:[4,5],join:[4,6],join_time_seri:6,kalman:4,kdp:[3,4],kdpc:3,kdpmax:4,kdpzh:3,keep:[1,3,4,6],keep_dri:4,keep_in_memori:4,keep_wet:4,kei:[4,5],kelvin:3,kept:3,keyboard:4,keyowrd:4,keyword:[4,5],ki2:3,kilo:3,kind:3,km2:3,kw2:4,kwarg:3,labe:1,label1:1,label2:1,label:[1,3],label_nr:3,labelmeanv:1,labelx:1,lant:6,larger:[0,3,4],largest:4,last:[0,3,4],last_hit_tim:3,last_stat:3,lat:[1,3,4,6],latitud:[1,3,4,6],latlon:4,latlon_tol:4,latorig:4,law:4,layer:[1,3,4,5],ldr:3,least:4,legend:1,lema:4,length:[3,4,6],level:[0,1,3,4,6],lightn:[0,3,4],limit:[1,3,6],lin_regr:1,lin_regr_slope1:1,lin_tran:4,line:[0,1],linear:[1,3,4,6],linestyl:[1,3],linewidth:1,liquid:3,list:[0,1,3,4,6],lma:3,load:4,local:3,locat:[3,4,6],log:4,lon:[1,3,4,6],longer:4,longitud:[1,3,4,6],lonorig:4,look:[3,4,6],lookup_t:4,loss:4,low:[1,4],low_quantil:3,lowbeam:4,lower:[1,4],lowest_on_top:1,lquant:1,lradomeh:4,lradomev:4,lrxh:4,lrxv:4,ltxh:4,ltxv:4,lwc:3,maesaka:4,mai:4,main:0,main_rt:0,major:3,make:3,make_filenam:3,make_linear:6,mani:3,map:[1,3,4,5],map_doppl:3,map_hydro:3,mappingproxi:3,marker:1,mask:[3,4,6],master:3,master_datadescriptor:3,master_fnam:3,match:4,max:[3,4,6],max_altitud:4,max_phidp:4,max_std_pwr:4,max_std_zdr:4,maxh:3,maxhm:3,maxim:[3,4],maximum:[1,3,4,6],maxlength:3,mean:[0,1,3,4,6],meanbias_vec:[1,3],measur:[1,3,4,6],median:[1,3,4,6],medianbias_vec:[1,3],melt:[1,3,4,5],member:3,memori:[3,4],messag:3,metadata:[1,3,4,5],meteorag:3,meter:4,method:[3,4,6],metranet:3,mflossh:4,mflossv:4,midnight:[3,4],min:[3,6],min_rhohv:4,minim:1,minimum:[1,3,4,6],minor:3,ml_filter:4,ml_thick:4,ml_top_avg:3,ml_top_avg_arr:1,ml_top_std:3,ml_top_std_arr:1,mode:[1,3,6],modebias_vec:[1,3],model:3,moder:4,modul:2,moment:4,monitor:[1,2,3,5],monoton:4,more:4,mort:4,mp_factor:4,msl:[1,3,4,6],multi:4,multipl:[0,3,4,6],multipli:4,multiprocessing_dset:0,multiprocessing_prod:0,must:3,mxpol:3,n_iter:4,name:[1,3,4,5,6],nan:[4,6],nan_valu:[3,4],nb_min:4,nbins_min:4,nblock:3,ncdf:3,nclut:3,ndai:4,ndarrai:[1,3,6],nearest:[3,4,6],nearest_neighbour:4,necessari:4,need:4,neg:4,neighbour:[3,4,6],netcdf:3,nevent:3,new_dataset:4,new_endtim:6,new_fnam:3,new_starttim:6,nfile:3,nflash:3,nflashes_max_list:3,ngate:3,nhits_h:3,nhits_v:3,nhits_zdr:3,nice:[1,3],nnan:3,nois:[2,3],nomin:4,non:[3,4],non_rain_max:4,none:[0,1,3,4,5,6],normal:3,north:3,notimpl:3,noutlier:3,np_field:6,np_last:3,np_ma:3,np_min:1,np_radar:3,np_sensor:3,np_t:[1,3],np_trend:3,np_vec:[1,3,6],nph:3,nprec_filt:3,npv:3,nrays_tot:3,nrays_total_arr:1,nrays_valid:3,nrays_valid_arr:1,nrng:3,nsampl:3,ntot:3,num_el:3,number:[1,3,4,6],numpi:3,nval:3,nvalh:3,nvalid:6,nvalid_min:[3,4,6],nvalid_vec:3,nvalv:3,nvalzdr:3,nyquist:4,nyquist_vel:3,nzdr:3,object:[0,1,3,4,5,6],observ:3,observatori:3,obtain:[3,4],occurr:[3,4,5],odim:3,off:0,offset:4,often:4,one:[3,4,6],ones:[3,6],onli:[3,4],oper:3,option:[3,4],order:4,orient:3,orig:3,origin:[3,4],other:2,otherwis:[3,4,5],out:[3,4,6],outcom:3,outlier:4,output:[2,4,6],output_typ:4,outsid:[4,6],over:[0,3,4,6],overrid:3,page:2,par:[4,6],par_azimuth_antenna:4,par_elevation_antenna:4,parallel:[0,4],param_name_unit:3,paramet:[0,1,3,4,5,6],particular:[1,3,6],pass:4,path:[0,3,4],pattern:[1,3,4],pattern_thr:4,per:[1,3],percent:4,percent_prec_max:4,percentag:4,percentil:[1,3,4],percentile_max:4,percentile_min:4,perform:[3,4],period1:1,period2:1,period:[0,1,3,4,6],ph_std:3,phase:2,phi:4,phi_avg_max:4,phi_excess_max:4,phidp:4,phidpmax:4,philin:4,pickl:3,piecewis:4,pixel:[1,3],place:[3,4],plain:4,plan:1,plane:[0,3,4],plot:[0,2,3,4],plot_along_coord:1,plot_antenna_pattern:1,plot_bscop:1,plot_cappi:1,plot_dens:1,plot_field_coverag:1,plot_hist:3,plot_histogram2:1,plot_histogram:1,plot_intercomp_scores_t:1,plot_latitude_slic:1,plot_latlon_slic:1,plot_longitude_slic:1,plot_ml_t:1,plot_monitoring_t:1,plot_po:1,plot_ppi:1,plot_ppi_contour:1,plot_ppi_map:1,plot_quantil:1,plot_rhi:1,plot_rhi_contour:1,plot_rhi_profil:1,plot_scatt:1,plot_scatter_comp:1,plot_sun_hit:1,plot_sun_retrieval_t:1,plot_surfac:1,plot_time_rang:1,plot_timeseri:1,plot_timeseries_comp:1,plot_traj:1,plot_typ:1,plotabl:1,png:3,poh:3,point:[1,3,4,6],pol_vals_dict:3,pol_vals_label:3,pol_values_label:3,polar:[3,4],polarimetr:[3,4,5],poor:4,posit:[1,3,4,6],possibl:4,post:4,potenti:4,power:[3,4,6],ppi:[1,3,4],prdcfg:[1,5],prdcfginfo:3,prdname:3,prdtype:3,pre:4,precip:[3,4],precipit:[3,4],preciptyp:3,precomput:3,present:4,pressur:3,previou:3,print:3,prior:3,proc:2,proc_finish:0,proc_period:0,process:[2,3,5],process_attenu:4,process_azimuthal_averag:4,process_bird_dens:4,process_birds_id:4,process_cdf:4,process_cdr:4,process_clt_to_echo_id:4,process_colocated_g:4,process_correct_bia:4,process_correct_noise_rhohv:4,process_correct_phidp0:4,process_cosmo:4,process_cosmo_coord:4,process_cosmo_lookup_t:4,process_dealias_fourdd:4,process_dealias_region_bas:4,process_dealias_unwrap_phas:4,process_echo_filt:4,process_echo_id:4,process_estimate_phidp0:4,process_evp:4,process_filter_snr:4,process_filter_vel_diff:4,process_filter_vis:4,process_gc_monitor:4,process_grid:4,process_hydroclass:4,process_hzt:4,process_hzt_coord:4,process_hzt_lookup_t:4,process_intercomp:4,process_intercomp_time_avg:4,process_kdp_leastsquare_double_window:4,process_kdp_leastsquare_single_window:4,process_l:4,process_melting_lay:4,process_monitor:4,process_occurr:4,process_occurrence_period:4,process_outlier_filt:4,process_phidp_kdp_kalman:4,process_phidp_kdp_lp:4,process_phidp_kdp_maesaka:4,process_phidp_kdp_vulpiani:4,process_point_measur:4,process_qvp:4,process_rainr:4,process_raw:4,process_rc:4,process_rcs_pr:4,process_rhohv_rain:4,process_roi:4,process_rqvp:4,process_save_radar:4,process_selfconsistency_bia:4,process_selfconsistency_kdp_phidp:4,process_signal_pow:4,process_smooth_phidp_double_window:4,process_smooth_phidp_single_window:4,process_snr:4,process_sun_hit:4,process_svp:4,process_time_avg:4,process_time_avg_flag:4,process_time_avg_std:4,process_time_height:4,process_traj_antenna_pattern:4,process_traj_atplan:4,process_traj_lightn:4,process_traj_trt:4,process_trajectori:4,process_vad:4,process_vol_refl:4,process_weighted_time_avg:4,process_wind_vel:4,process_windshear:4,process_zdr_column:4,process_zdr_precip:4,process_zdr_snow:4,proclevel:3,procnam:3,procstatu:4,prod:2,produc:4,product:[0,1,2,3],profil:[1,3,4,5,6],profile_multiprocess:0,program:[0,4],project:[4,6],project_to_vert:6,propos:4,provid:3,puls:4,pulse_width:4,put:4,pv_std:3,pyart:3,qbin_edg:3,qmax:3,qmin:3,quant25bias_vec:[1,3],quant75bias_vec:[1,3],quant:1,quantil:[1,3,4,6],quantiles_weight:6,quantiti:[3,6],quantitit:3,quasi:[4,5],qvp:4,rad1_azi:[3,6],rad1_el:[3,6],rad1_nam:[1,3],rad1_ray_ind:3,rad1_rng:[3,6],rad1_rng_ind:3,rad1_tim:3,rad1_val:3,rad2_azi:[3,6],rad2_el:[3,6],rad2_nam:[1,3],rad2_ray_ind:3,rad2_rng:[3,6],rad2_rng_ind:3,rad2_tim:3,rad2_val:3,rad4alp:[3,4],rad_alt:1,rad_az:[3,6],rad_el:[3,6],rad_tstart:1,radar001:[1,3],radar002:[1,3],radar1:[3,6],radar2:[3,6],radar:[0,1,2,4,5],radar_dest:3,radar_in:6,radar_list:[3,4],radar_nam:3,radar_orig:3,radar_out:5,radar_valu:3,radarcentroid:4,radarnr:3,radconsth:4,radconstv:4,radial:4,radian:3,radiu:4,radom:4,rai:[3,4,6],rain:[3,4],rainbow:3,rainfal:[4,6],rainfall_accumul:6,rang:[1,3,4,6],range_al:4,rank:3,rank_max:3,rank_max_tim:3,rankr:3,rate:4,ratio:4,raw:[3,4],ray_end:6,ray_start:6,rcell:4,reach:3,read:[2,6],read_antenna_pattern:3,read_colocated_data:3,read_colocated_g:3,read_config:3,read_cosmo_coord:3,read_cosmo_data:3,read_disdro_scatt:3,read_excess_g:3,read_histogram:3,read_histogram_t:3,read_hzt_data:3,read_intercomp_scores_t:3,read_last_st:3,read_lightn:3,read_lightning_al:3,read_lightning_traj:3,read_meteorag:3,read_ml_t:3,read_monitoring_t:3,read_profile_t:3,read_quantil:3,read_quantiles_t:3,read_rad4alp_cosmo:3,read_rad4alp_vi:3,read_rhi_profil:3,read_selfconsist:3,read_smn2:3,read_smn:3,read_solar_flux:3,read_statu:3,read_sun_hit:3,read_sun_hits_multiple_dai:3,read_sun_retriev:3,read_timeseri:3,read_trt_cell_lightn:3,read_trt_data:3,read_trt_scor:3,read_trt_traj_data:3,read_ts_cum:3,real:[0,4],receiv:[3,4],receiver_list:3,ref_tim:3,ref_valu:1,refer:[1,3,4],reflect:[3,4],regardless:4,region:[4,6],regress:[1,6],regression_mean:6,regular:[4,6],regular_grid:4,rel_altitud:1,relat:4,remov:6,repr:3,repres:[1,4],represent:1,resolut:[3,4,6],respect:[3,4,6],result:[1,4,6],retriev:[1,2,3,6],rewrit:3,rhi:[1,3,4,6],rhi_resolut:4,rhohv:[3,4],rhohvc:3,rhohvmin:4,right:3,rmax:4,rmax_prec:4,rmin:4,rng:[4,6],rng_tol:[4,6],rng_traj:1,rng_vec:6,rngtol:4,roi:[4,6],roi_flag:6,roif_func:4,root:3,round:0,rr_method:4,rsmooth:4,run01:3,run57:0,runinfo:3,rwind:4,rwindl:4,same:[0,1,3],sampl:[1,3,4,6],san:4,save:[1,3,4],save_fig:1,savedir:3,scan:[1,3,4],scatter:[1,3],schneeb:4,scope:1,score:[1,3],search:[2,3,4,6],sec:3,second:[0,1,3,6],section:[1,4],sector:[3,6],see:3,seem:4,segment:4,select:[0,4],self:3,selfconsist:4,semi:3,semisupervis:4,send:3,send_msg:3,sender:3,sensor:[1,3],sensor_valu:3,sensord:3,sensorvalu:3,seri:[1,2,3,5,6],set:[0,3,4,6],setattr:3,sf_h:3,sf_ref:3,sf_v:3,shear:4,shift:4,shorter:4,should:[3,4],shut:0,side:4,sigma_bird:4,sign:4,signal:4,signatur:3,similar:4,simultan:0,sinc:3,sind:3,singl:[0,4],size:[3,6],skip:4,skip_along_rai:4,skip_between_rai:4,slant:4,slice:1,slice_xi:3,slice_z:3,slope:1,slope_vec:[1,3],smn_id:3,smooth:4,snow:4,snr:4,snrh:4,snrmax:4,snrmin:4,snrv:4,solar:[3,6],solid:4,some:[4,5,6],sort:[1,3],sort_altitud:1,sort_by_d:3,sound:4,sourc:[0,1,3,4,5,6],south:3,space:3,speci:3,specif:4,specifi:[1,3,4,6],specyf:4,speed:3,split:[3,4],squar:4,stamp:3,standard:[3,4,6],start:[0,1,3,4,6],start_averag:4,start_tim:3,startim:3,starttim:[0,3],stat:[3,6],state:[3,4,5],station:3,statist:[3,4,6],statu:[3,4,5],std_dbm_sun_est:3,std_dbmv_sun_est:3,std_field:6,std_valu:3,std_zdr_sun_est:3,step1:6,step2:6,step:[1,3,4,6],store:[1,3,4],str:[0,1,3,4,5,6],string:[0,1,3,4],stroke:3,stroke_tim:3,structur:4,style:1,subject:3,substitut:4,successfulli:0,suitabl:4,sum:4,sun:[1,3,4,5,6],sun_az:[3,6],sun_el:[3,6],sun_hit:[3,4],sun_hits_dict:4,sun_retriev:[1,3,4],superior:4,surfac:1,surface_alt:1,surround:4,svp:4,sweep:[1,3,4,6],swiss:3,swiss_chh:3,swiss_chi:3,swiss_chx:3,swissmetnet:3,synthet:4,system:4,t_in_vec:6,t_out_vec:6,t_re:3,tabl:[3,4],take:[4,6],taken:3,target:[3,4,6],target_elev:6,target_radar_po:4,tbin_edg:3,techniqu:4,temp:[3,4],temperatur:[3,4],tempmax:4,tempmin:4,tempor:4,test:3,text:3,than:[0,3,4],thei:3,them:3,theoret:6,therefor:[0,4],thi:[0,3,4],thick:4,thick_avg:3,thick_avg_arr:1,thick_std:3,thick_std_arr:1,thresh:4,threshold:[3,4],time:[0,1,2,3,5,6],time_avg_rang:6,time_data:3,time_flash:3,time_in_flash:3,time_index:3,time_ref:3,time_seri:6,time_series_statist:6,time_tol:4,time_traj:1,time_vector:3,timedelta:3,timeformat:[1,3],timeinfo:[3,6],timeseri:[2,4],timevec:3,titl:1,togeth:4,tol_ab:3,tol_trend:3,toler:[3,4,6],top:[3,4],total:3,toward:4,traj:[3,5],traj_id:3,trajectori:[0,1,2,5],trajfil:0,trajtyp:[0,3],transform:[4,6],transmit:4,transmitt:4,transpar:1,transpos:4,trend:3,trt:[3,4],truealt:4,ts011:3,tupl:[1,5],tuppl:[1,3],tvec:1,two:[1,3,4,6],twowai:[1,3],txpwrh:4,txpwrv:4,type:[0,1,3,4,6],undefin:3,under:4,unfold:4,unit:[1,3,4],unit_nam:3,unwrap:4,unwrap_unit:4,upper:1,use:[3,4,6],use_nan:[3,4],used:[1,3,4,5,6],user:[0,4],using:[1,3,4],utc:[1,3,4],util:2,vad:4,val1:6,val1_out_vec:6,val2:6,val2_out_vec:6,val:[3,6],val_at_flash:3,val_in_vec:6,val_max:3,val_mean:3,val_min:[3,4],val_out_vec:6,val_valid:6,valid:[1,3,4,6],vals_list:3,valu:[0,1,3,4,5,6],value1:1,value2:1,value_avg_vec:3,value_last:3,value_std_vec:3,value_trend:3,variabl:3,vector:[3,4,6],vel_i:3,vel_x:3,veloc:[3,4],veloctii:3,vert_proj:4,vertic:[1,3,4,5,6],view:4,vil:3,visibl:[3,4],vismin:[3,4],vmax:[1,6],vmin:[1,6],vol:[4,5],vol_d_tol:4,voltim:3,volum:[0,3,4,5,6],volumetr:4,vre:4,vulpiani:4,wai:[1,3,4],want:4,water:4,wdir:3,weak:3,weight:[4,6],weight_pow:4,weight_threshold:6,weight_vector:6,west:3,wet:4,wfunc:4,wgs84:3,wgs84_alt_m:3,wgs84_lat_deg:3,wgs84_lon_deg:3,what:1,when:[3,4],where:[1,3,4,6],whether:[1,3,4,6],which:[1,3,4,6],whole:4,wich:[3,4,6],width:[1,4],wind:4,window:[4,6],within:[3,4,6],would:4,write:[1,2,6],write_alarm_msg:3,write_cdf:3,write_colocated_data:3,write_colocated_data_time_avg:3,write_colocated_g:3,write_excess_g:3,write_field_coverag:3,write_histogram:3,write_intercomp_scores_t:3,write_last_st:3,write_monitoring_t:3,write_quantil:3,write_rhi_profil:3,write_smn:3,write_sun_hit:3,write_sun_retriev:3,write_trt_cell_data:3,write_trt_cell_lightn:3,write_trt_cell_scor:3,write_ts_cum:3,write_ts_lightn:3,write_ts_polar_data:3,written:3,wspeed:3,xedg:6,xlabel:1,xmax:4,xmeanval:1,xmin:4,xml:3,xval_list:1,yedg:6,yes:4,ylabel:1,ymax:[1,3,4],ymeanval:1,ymin:[1,3,4],yval_list:1,yyyymmddhhmm:3,z_radar:3,zdr:[3,4],zdr_std:3,zdr_sun_est:3,zdrc:3,zero:6,zkdp:4,zmax:4,zmin:[3,4],zone:3,zphi:4,zpoli:4,zthr:4},titles:["processing flow control (pyrad.flow)","Plotting (pyrad.graph)","Welcome to pyrad\u2019s documentation!","Input and output (pyrad.io)","Dataset processing (pyrad.proc)","Products generation (pyrad.prod)","Utilities (pyrad.util)"],titleterms:{"function":[3,4,5],attenu:4,auxiliari:[3,4,5],calibr:4,classif:4,configur:3,control:0,correct:4,cosmo:[3,4],data:[3,4],dataset:4,document:2,doppler:4,echo:4,file:3,filter:4,flow:0,gener:5,graph:1,indic:2,input:3,monitor:4,nois:4,other:3,output:3,phase:4,plot:1,proc:4,process:[0,4],prod:5,product:5,pyrad:[0,1,2,3,4,5,6],radar:[3,6],read:3,retriev:4,seri:4,tabl:2,time:4,timeseri:3,trajectori:[3,4],util:6,welcom:2,write:3}}) \ No newline at end of file +Search.setIndex({docnames:["flow","graph","index","io","proc","prod","util"],envversion:{"sphinx.domains.c":1,"sphinx.domains.changeset":1,"sphinx.domains.cpp":1,"sphinx.domains.javascript":1,"sphinx.domains.math":2,"sphinx.domains.python":1,"sphinx.domains.rst":1,"sphinx.domains.std":1,"sphinx.ext.intersphinx":1,"sphinx.ext.todo":1,"sphinx.ext.viewcode":1,sphinx:55},filenames:["flow.rst","graph.rst","index.rst","io.rst","proc.rst","prod.rst","util.rst"],objects:{"pyrad.flow":{main:[0,1,1,""],main_rt:[0,1,1,""]},"pyrad.graph":{get_colobar_label:[1,1,1,""],get_field_name:[1,1,1,""],plot_along_coord:[1,1,1,""],plot_antenna_pattern:[1,1,1,""],plot_bscope:[1,1,1,""],plot_cappi:[1,1,1,""],plot_density:[1,1,1,""],plot_field_coverage:[1,1,1,""],plot_histogram2:[1,1,1,""],plot_histogram:[1,1,1,""],plot_intercomp_scores_ts:[1,1,1,""],plot_latitude_slice:[1,1,1,""],plot_latlon_slice:[1,1,1,""],plot_longitude_slice:[1,1,1,""],plot_ml_ts:[1,1,1,""],plot_monitoring_ts:[1,1,1,""],plot_pos:[1,1,1,""],plot_ppi:[1,1,1,""],plot_ppi_contour:[1,1,1,""],plot_ppi_map:[1,1,1,""],plot_quantiles:[1,1,1,""],plot_rhi:[1,1,1,""],plot_rhi_contour:[1,1,1,""],plot_rhi_profile:[1,1,1,""],plot_scatter:[1,1,1,""],plot_scatter_comp:[1,1,1,""],plot_sun_hits:[1,1,1,""],plot_sun_retrieval_ts:[1,1,1,""],plot_surface:[1,1,1,""],plot_time_range:[1,1,1,""],plot_timeseries:[1,1,1,""],plot_timeseries_comp:[1,1,1,""],plot_traj:[1,1,1,""]},"pyrad.io":{TimeSeries:[3,2,1,""],Trajectory:[3,2,1,""],add_field:[3,1,1,""],cosmo2radar_coord:[3,1,1,""],cosmo2radar_data:[3,1,1,""],find_hzt_file:[3,1,1,""],find_raw_cosmo_file:[3,1,1,""],generate_field_name_str:[3,1,1,""],get_cosmo_fields:[3,1,1,""],get_data:[3,1,1,""],get_dataset_fields:[3,1,1,""],get_datatype_fields:[3,1,1,""],get_datetime:[3,1,1,""],get_field_unit:[3,1,1,""],get_fieldname_cosmo:[3,1,1,""],get_fieldname_pyart:[3,1,1,""],get_file_list:[3,1,1,""],get_iso0_field:[3,1,1,""],get_new_rainbow_file_name:[3,1,1,""],get_save_dir:[3,1,1,""],get_sensor_data:[3,1,1,""],get_trtfile_list:[3,1,1,""],hzt2radar_coord:[3,1,1,""],hzt2radar_data:[3,1,1,""],interpol_field:[3,1,1,""],make_filename:[3,1,1,""],map_Doppler:[3,1,1,""],map_hydro:[3,1,1,""],read_antenna_pattern:[3,1,1,""],read_colocated_data:[3,1,1,""],read_colocated_gates:[3,1,1,""],read_config:[3,1,1,""],read_cosmo_coord:[3,1,1,""],read_cosmo_data:[3,1,1,""],read_disdro_scattering:[3,1,1,""],read_excess_gates:[3,1,1,""],read_histogram:[3,1,1,""],read_histogram_ts:[3,1,1,""],read_hzt_data:[3,1,1,""],read_intercomp_scores_ts:[3,1,1,""],read_last_state:[3,1,1,""],read_lightning:[3,1,1,""],read_lightning_all:[3,1,1,""],read_lightning_traj:[3,1,1,""],read_meteorage:[3,1,1,""],read_ml_ts:[3,1,1,""],read_monitoring_ts:[3,1,1,""],read_profile_ts:[3,1,1,""],read_quantiles:[3,1,1,""],read_quantiles_ts:[3,1,1,""],read_rad4alp_cosmo:[3,1,1,""],read_rad4alp_vis:[3,1,1,""],read_rhi_profile:[3,1,1,""],read_selfconsistency:[3,1,1,""],read_smn2:[3,1,1,""],read_smn:[3,1,1,""],read_solar_flux:[3,1,1,""],read_status:[3,1,1,""],read_sun_hits:[3,1,1,""],read_sun_hits_multiple_days:[3,1,1,""],read_sun_retrieval:[3,1,1,""],read_timeseries:[3,1,1,""],read_trt_cell_lightning:[3,1,1,""],read_trt_data:[3,1,1,""],read_trt_scores:[3,1,1,""],read_trt_traj_data:[3,1,1,""],read_ts_cum:[3,1,1,""],send_msg:[3,1,1,""],write_alarm_msg:[3,1,1,""],write_cdf:[3,1,1,""],write_colocated_data:[3,1,1,""],write_colocated_data_time_avg:[3,1,1,""],write_colocated_gates:[3,1,1,""],write_excess_gates:[3,1,1,""],write_field_coverage:[3,1,1,""],write_histogram:[3,1,1,""],write_intercomp_scores_ts:[3,1,1,""],write_last_state:[3,1,1,""],write_monitoring_ts:[3,1,1,""],write_quantiles:[3,1,1,""],write_rhi_profile:[3,1,1,""],write_smn:[3,1,1,""],write_sun_hits:[3,1,1,""],write_sun_retrieval:[3,1,1,""],write_trt_cell_data:[3,1,1,""],write_trt_cell_lightning:[3,1,1,""],write_trt_cell_scores:[3,1,1,""],write_ts_cum:[3,1,1,""],write_ts_lightning:[3,1,1,""],write_ts_polar_data:[3,1,1,""]},"pyrad.io.TimeSeries":{__class__:[3,3,1,""],__delattr__:[3,3,1,""],__dict__:[3,3,1,""],__dir__:[3,4,1,""],__eq__:[3,3,1,""],__format__:[3,4,1,""],__ge__:[3,3,1,""],__getattribute__:[3,3,1,""],__gt__:[3,3,1,""],__hash__:[3,3,1,""],__init__:[3,4,1,""],__init_subclass__:[3,4,1,""],__le__:[3,3,1,""],__lt__:[3,3,1,""],__module__:[3,3,1,""],__ne__:[3,3,1,""],__new__:[3,4,1,""],__reduce__:[3,4,1,""],__reduce_ex__:[3,4,1,""],__repr__:[3,3,1,""],__setattr__:[3,3,1,""],__sizeof__:[3,4,1,""],__str__:[3,3,1,""],__subclasshook__:[3,4,1,""],__weakref__:[3,3,1,""],add_dataseries:[3,4,1,""],add_timesample:[3,4,1,""],plot:[3,4,1,""],plot_hist:[3,4,1,""],write:[3,4,1,""]},"pyrad.io.Trajectory":{__class__:[3,3,1,""],__delattr__:[3,3,1,""],__dict__:[3,3,1,""],__dir__:[3,4,1,""],__eq__:[3,3,1,""],__format__:[3,4,1,""],__ge__:[3,3,1,""],__getattribute__:[3,3,1,""],__gt__:[3,3,1,""],__hash__:[3,3,1,""],__init__:[3,4,1,""],__init_subclass__:[3,4,1,""],__le__:[3,3,1,""],__lt__:[3,3,1,""],__module__:[3,3,1,""],__ne__:[3,3,1,""],__new__:[3,4,1,""],__reduce__:[3,4,1,""],__reduce_ex__:[3,4,1,""],__repr__:[3,3,1,""],__setattr__:[3,3,1,""],__sizeof__:[3,4,1,""],__str__:[3,3,1,""],__subclasshook__:[3,4,1,""],__weakref__:[3,3,1,""],_convert_traj_to_swissgrid:[3,4,1,""],_get_total_seconds:[3,4,1,""],_read_traj:[3,4,1,""],_read_traj_lightning:[3,4,1,""],_read_traj_trt:[3,4,1,""],add_radar:[3,4,1,""],calculate_velocities:[3,4,1,""],get_end_time:[3,4,1,""],get_samples_in_period:[3,4,1,""],get_start_time:[3,4,1,""]},"pyrad.proc":{get_process_func:[4,1,1,""],process_attenuation:[4,1,1,""],process_azimuthal_average:[4,1,1,""],process_bird_density:[4,1,1,""],process_birds_id:[4,1,1,""],process_cdf:[4,1,1,""],process_cdr:[4,1,1,""],process_clt_to_echo_id:[4,1,1,""],process_colocated_gates:[4,1,1,""],process_correct_bias:[4,1,1,""],process_correct_noise_rhohv:[4,1,1,""],process_correct_phidp0:[4,1,1,""],process_cosmo:[4,1,1,""],process_cosmo_coord:[4,1,1,""],process_cosmo_lookup_table:[4,1,1,""],process_dealias_fourdd:[4,1,1,""],process_dealias_region_based:[4,1,1,""],process_dealias_unwrap_phase:[4,1,1,""],process_echo_filter:[4,1,1,""],process_echo_id:[4,1,1,""],process_estimate_phidp0:[4,1,1,""],process_evp:[4,1,1,""],process_filter_snr:[4,1,1,""],process_filter_vel_diff:[4,1,1,""],process_filter_visibility:[4,1,1,""],process_gc_monitoring:[4,1,1,""],process_grid:[4,1,1,""],process_hydroclass:[4,1,1,""],process_hzt:[4,1,1,""],process_hzt_coord:[4,1,1,""],process_hzt_lookup_table:[4,1,1,""],process_intercomp:[4,1,1,""],process_intercomp_time_avg:[4,1,1,""],process_kdp_leastsquare_double_window:[4,1,1,""],process_kdp_leastsquare_single_window:[4,1,1,""],process_l:[4,1,1,""],process_melting_layer:[4,1,1,""],process_monitoring:[4,1,1,""],process_occurrence:[4,1,1,""],process_occurrence_period:[4,1,1,""],process_outlier_filter:[4,1,1,""],process_phidp_kdp_Kalman:[4,1,1,""],process_phidp_kdp_Maesaka:[4,1,1,""],process_phidp_kdp_Vulpiani:[4,1,1,""],process_phidp_kdp_lp:[4,1,1,""],process_point_measurement:[4,1,1,""],process_qvp:[4,1,1,""],process_rainrate:[4,1,1,""],process_raw:[4,1,1,""],process_rcs:[4,1,1,""],process_rcs_pr:[4,1,1,""],process_rhohv_rain:[4,1,1,""],process_roi:[4,1,1,""],process_rqvp:[4,1,1,""],process_save_radar:[4,1,1,""],process_selfconsistency_bias:[4,1,1,""],process_selfconsistency_kdp_phidp:[4,1,1,""],process_signal_power:[4,1,1,""],process_smooth_phidp_double_window:[4,1,1,""],process_smooth_phidp_single_window:[4,1,1,""],process_snr:[4,1,1,""],process_sun_hits:[4,1,1,""],process_svp:[4,1,1,""],process_time_avg:[4,1,1,""],process_time_avg_flag:[4,1,1,""],process_time_height:[4,1,1,""],process_traj_antenna_pattern:[4,1,1,""],process_traj_atplane:[4,1,1,""],process_traj_lightning:[4,1,1,""],process_traj_trt:[4,1,1,""],process_trajectory:[4,1,1,""],process_vad:[4,1,1,""],process_vol_refl:[4,1,1,""],process_weighted_time_avg:[4,1,1,""],process_wind_vel:[4,1,1,""],process_windshear:[4,1,1,""],process_zdr_column:[4,1,1,""],process_zdr_precip:[4,1,1,""],process_zdr_snow:[4,1,1,""]},"pyrad.prod":{generate_colocated_gates_products:[5,1,1,""],generate_cosmo_coord_products:[5,1,1,""],generate_grid_products:[5,1,1,""],generate_intercomp_products:[5,1,1,""],generate_ml_products:[5,1,1,""],generate_monitoring_products:[5,1,1,""],generate_occurrence_products:[5,1,1,""],generate_qvp_products:[5,1,1,""],generate_sun_hits_products:[5,1,1,""],generate_time_avg_products:[5,1,1,""],generate_timeseries_products:[5,1,1,""],generate_traj_product:[5,1,1,""],generate_vol_products:[5,1,1,""],get_prodgen_func:[5,1,1,""]},"pyrad.util":{belongs_roi_indices:[6,1,1,""],compute_1d_stats:[6,1,1,""],compute_2d_hist:[6,1,1,""],compute_2d_stats:[6,1,1,""],compute_directional_stats:[6,1,1,""],compute_histogram:[6,1,1,""],compute_histogram_sweep:[6,1,1,""],compute_profile_stats:[6,1,1,""],compute_quantiles:[6,1,1,""],compute_quantiles_from_hist:[6,1,1,""],compute_quantiles_sweep:[6,1,1,""],create_sun_hits_field:[6,1,1,""],create_sun_retrieval_field:[6,1,1,""],find_colocated_indexes:[6,1,1,""],find_neighbour_gates:[6,1,1,""],find_ray_index:[6,1,1,""],find_rng_index:[6,1,1,""],get_ROI:[6,1,1,""],get_closest_solar_flux:[6,1,1,""],get_range_bins_to_avg:[6,1,1,""],get_target_elevations:[6,1,1,""],join_time_series:[6,1,1,""],project_to_vertical:[6,1,1,""],quantiles_weighted:[6,1,1,""],rainfall_accumulation:[6,1,1,""],time_avg_range:[6,1,1,""],time_series_statistics:[6,1,1,""]},pyrad:{flow:[0,0,0,"-"],graph:[1,0,0,"-"],io:[3,0,0,"-"],proc:[4,0,0,"-"],prod:[5,0,0,"-"],util:[6,0,0,"-"]}},objnames:{"0":["py","module","Python module"],"1":["py","function","Python function"],"2":["py","class","Python class"],"3":["py","attribute","Python attribute"],"4":["py","method","Python method"]},objtypes:{"0":"py:module","1":"py:function","2":"py:class","3":"py:attribute","4":"py:method"},terms:{"10log10":4,"25th":1,"3x3x3":3,"4dd":4,"75th":1,"abstract":3,"boolean":[0,1,3,4,6],"byte":3,"case":4,"class":[3,4],"default":[1,3,4,6],"final":4,"float":[1,3,4,6],"function":[0,1,2,6],"int":[0,1,3,4,6],"long":[3,4],"new":[0,1,3,4,6],"return":[0,1,3,4,5,6],"short":[3,4],"true":[0,1,3,4,6],"var":4,"while":4,For:3,One:4,RCS:4,The:[0,1,3,4,6],Use:4,Used:4,__class__:3,__delattr__:3,__dict__:3,__dir__:3,__doc__:3,__eq__:3,__format__:3,__ge__:3,__getattribute__:3,__gt__:3,__hash__:3,__init__:3,__init_subclass__:3,__le__:3,__lt__:3,__module__:3,__ne__:3,__new__:3,__reduce__:3,__reduce_ex__:3,__repr__:3,__setattr__:3,__sizeof__:3,__str__:3,__subclasscheck__:3,__subclasshook__:3,__weakref__:3,_convert_traj_to_swissgrid:3,_dataseri:3,_get_total_second:3,_read_traj:3,_read_traj_lightn:3,_read_traj_trt:3,_swiss_grid_don:3,abc:3,abcmeta:3,about:[0,3],abov:4,abs:4,accept:4,accord:4,accordingli:3,accumul:[1,3,6],accur:3,acquisit:3,across:4,actual:[0,3,4],add:[1,3],add_dataseri:3,add_field:3,add_radar:3,add_timesampl:3,added:[0,4],adding:4,addit:3,address:3,adiff:3,after:[0,4,6],alarm:3,alber:4,albi:4,algorithm:[3,4],alia:3,alitud:3,all:[0,3,4,6],allow:4,along:[1,4,6],alpha:[1,4],alphaa:4,alphakdp:4,alphaz:4,alphazr:4,alt:[1,3,4],alt_max:4,alt_min:4,alt_tol:4,altitud:[1,3,4,6],altorig:4,amper:3,amplifi:4,amplitud:3,analys:4,analysi:4,ang_tol:[3,4],angl:[1,3,4,6],anglenr:4,ani:[4,6],anoth:4,antenna:[1,3,4],antenna_gain:4,antennatyp:4,antpattern:1,appli:4,arbitrari:4,area:3,area_flash_max_list:3,ared:4,arg:3,arrai:[1,3,4,6],array2:1,art:[3,4],artifact:4,asr:4,asr_highbeam_antenna:4,asr_lowbeam_antenna:4,associ:4,assum:4,att_method:4,attenu:[1,2,3],attg:4,attribut:3,auxiliari:2,averag:[3,4,5,6],avg_endtim:6,avg_rad1:6,avg_rad2:6,avg_rad_lim:6,avg_starttim:6,avg_tim:6,avg_typ:[4,6],avg_valu:3,axes:1,axi:[1,3,6],az_bias_h:3,az_bias_v:3,az_tol:4,az_width_co:4,az_width_cross:4,az_width_h:3,az_width_v:3,azi:[4,6],azi_start:3,azi_stop:3,azi_tol:[4,6],azi_traj:1,azi_vec:6,azimuth:[1,4,5,6],azitol:4,azrad1max:4,azrad1min:4,azrad2max:4,azrad2min:4,bandwidth:4,bar:1,barn:4,base:[3,4,6],base_tim:6,basepath:3,beam:4,beamwidth:4,beamwidthh:4,beamwidthv:4,been:[0,3,4],befor:[0,4,6],being:3,belong:6,belongs_roi_indic:6,below:4,bergen:4,beta:4,betaa:4,betakdp:4,betaz:4,betazr:4,better:4,between:[1,4],bia:[1,4],bin:[1,3,4,6],bin_cent:[1,6],bin_edg:[1,3,6],bin_edges1:[1,6],bin_edges2:[1,6],binari:3,bins_edg:6,bird:4,bool:[0,1,3,4],box:3,builtin:3,cach:3,calcul:3,calculate_veloc:3,calibr:2,call:3,can:[0,1,3,4,6],canada:3,cappi:1,cartesian:1,cb_label:1,cell:[3,4],cell_contour:3,cell_contour_lon:3,cell_id:3,cell_tim:3,celsiu:3,center:[1,3,4,6],centigrad:3,central:[1,4,6],central_quantil:3,centroid:4,certain:3,cfg:3,cfgfile:0,cfgfile_list:0,cfradial:3,cg_n:3,cg_p:3,cg_percent_p:3,ch1903:3,chang:4,channel:4,check:[3,6],chx0:3,chy0:3,circular:4,classif:[2,3],classifi:4,close:[1,4],closest:[4,6],cloud:3,clt_max:4,clutter:4,code:[1,4],coeff_band:4,coeffici:[1,4],colect:3,collect:4,colloc:4,coloc:[3,4,5],coloc_data:3,coloc_data_dir:4,coloc_g:3,coloc_radars_nam:4,color:[1,3],color_ref:1,colorbar:1,column:[3,4],combin:4,come:5,compar:6,comparison:1,compon:4,compromis:4,comput:[1,3,4,6],compute_1d_stat:6,compute_2d_hist:6,compute_2d_stat:6,compute_directional_stat:6,compute_histogram:6,compute_histogram_sweep:6,compute_profile_stat:6,compute_quantil:6,compute_quantiles_from_hist:6,compute_quantiles_sweep:6,condit:4,config:[0,3,4],configur:[1,2,4,5,6],connect:4,consid:[1,3,4,6],consist:[3,4],constant:[1,4],contain:[1,3,4,5],contamin:4,content:[2,3],contin:4,continu:4,contour:1,contour_valu:1,control:[1,2,3,4],convent:4,convers:4,convert:[3,4],convolut:4,coord1:1,coord2:1,coord:1,coordin:[1,3,4,5,6],corr_min:1,corr_vec:[1,3],correct:2,correl:1,correspond:[0,3,4,6],cosmo2radar_coord:3,cosmo2radar_data:3,cosmo:[2,5],cosmo_coord:3,cosmo_data:3,cosmo_field:3,cosmo_ind:3,cosmo_ind_field:3,cosmo_nam:3,cosmo_typ:4,cosmo_vari:4,cosmopath:4,could:4,coverag:[1,3],cquant:1,creat:[1,3,4,5,6],create_dir:3,create_sun_hits_field:6,create_sun_retrieval_field:6,cressman:4,criteria:6,cronjob:0,cronjob_control:0,croo:1,cross:[1,4],csv:[3,4],cum_tim:6,cumul:[1,3,4],current:[0,3,4,6],curti:4,custom:3,cut:3,dai:[3,4],data:[0,1,2,5,6],data_height:6,data_in:6,data_is_log:[4,6],data_list:1,data_ma:3,data_out:6,data_typ:1,datadescriptor:3,datagroup:3,datapath:3,dataseri:3,dataset:[0,2,3,5],dataset_typ:4,datasetdescr:3,datatyp:[3,4],datatypesdescr:3,date1:1,date2:1,date:[1,3,6],date_last:3,date_vec:[1,3],datetim:[0,1,3,6],datetime_arr:3,datetime_last:3,datetime_vec:3,datset:4,dazim_max:4,dbm:[3,4],dbm_sun_est:3,dbmv_sun_est:3,dbz:[3,4],dbzc:3,dealias:4,decim:3,defin:[3,4,6],definit:3,deg:[1,3,4,6],degre:[3,4,6],delattr:3,delev_max:4,delta_azi:[4,6],delta_rng:[4,6],deltaco:3,densiti:[1,3,4],depend:4,depolar:4,deprec:3,deriv:4,desc:3,describ:[0,4,6],descript:3,descriptor:3,desir:4,dest:3,destin:3,det:3,detect:[3,4],determin:[0,3,4,6],develop:4,deviat:[3,4,6],diamet:4,dict:[1,3,4,5,6],dictionari:[1,3,4,5,6],differ:4,differenti:4,dimens:[3,6],dimension:[4,6],dir:3,directori:[3,4],disabl:4,disdromet:3,displai:4,dist_beam:4,distanc:4,distribut:[3,4],doe:[1,3,4],doppler:[2,3],doppler_data:3,doppler_data_bin:3,dot:1,down:0,dphidp_max:4,dphidp_min:4,dpi:1,drao:3,dropnan:6,dry:4,dscfg:4,dsformat:[4,5],dsname:[3,4,5],dstype:[3,5],dt_ml:3,dt_ml_arr:1,dummi:4,dvel_i:3,dvel_x:3,dx50:4,each:[0,1,3,4,6],earli:3,east:3,ecc:3,eccentr:3,echo:[2,3],echo_typ:4,echotop:3,edg:[1,3,6],either:[0,4],ekyword:4,el0:3,el_bias_h:3,el_bias_v:3,el_tol:6,el_width_co:4,el_width_cross:4,el_width_h:3,el_width_v:3,ele:[4,6],ele_start:3,ele_stop:3,ele_tol:[4,6],ele_traj:1,ele_vec:6,element:[3,6],eletol:4,elev:[1,3,4,6],elimin:4,ell_:3,ell_l:3,ell_or:3,ellips:3,ellipsi:3,elmax:4,elmin:4,email:3,end:[0,3,6],end_proc:0,endtim:[0,3],enhanc:4,entir:4,estim:4,et15:3,et15m:3,et45:3,et45m:3,etc:[3,4,5],evalu:4,event:3,eventu:3,evolut:4,evp:4,examin:4,exceed:[0,3],excess:4,excess_dict:3,excessgates_fnam:4,excessgatespath:4,execut:0,exist:3,exit:[3,4],expon:4,ext_list:3,extend:[1,3,6],extens:[1,3],extract:4,factor:4,fals:[0,1,3,4,6],fdatetim:3,feed:4,field1:6,field2:6,field:[1,3,4,6],field_dest:3,field_dict:1,field_list:3,field_nam2:6,field_nam:[1,3,6],field_name1:[1,6],field_name2:[1,6],field_str:3,fieldnam:6,fig:1,figur:[1,3],file:[0,1,2,4,5,6],filelist:3,filenam:[3,5],fill:[3,6],fill_valu:[3,6],filt:4,filter:[2,3,6],filter_data:3,filter_prec:4,filterprec:3,find:[3,4,6],find_colocated_index:6,find_hzt_fil:3,find_neighbour_g:6,find_raw_cosmo_fil:3,find_ray_index:6,find_rng_index:6,finish:[0,4],first:[1,3,4,6],first_hit_tim:3,fix:4,flag:4,flash:[0,3],flash_den:3,flash_dens:3,flash_density_max:3,flash_density_max_rank:3,flash_density_max_tim:3,flashnr:[0,3],flashnr_vec:3,flow:2,flux:[3,6],flux_datetim:3,flux_datetime_closest_list:6,flux_datetime_list:6,flux_valu:3,flux_value_closest_list:6,flux_value_list:6,fname:3,fname_list:[1,3],fold:4,follow:[3,4],forc:0,forecast:3,format:[1,3,4,5],formatt:3,free:4,freez:4,freq:4,frequenc:[3,4],from:[0,1,3,4,5,6],func:5,func_nam:4,further:4,fzl:4,gain:4,gap:4,gas:4,gaseou:4,gate:[3,4,5,6],gate_altitud:6,gatefilt:4,gaug:3,gener:[0,2,3,4],generate_colocated_gates_product:5,generate_cosmo_coord_product:5,generate_field_name_str:3,generate_grid_product:5,generate_intercomp_product:5,generate_ml_product:5,generate_monitoring_product:5,generate_occurrence_product:5,generate_qvp_product:5,generate_sun_hits_product:5,generate_time_avg_product:5,generate_timeseries_product:5,generate_traj_product:5,generate_vol_product:5,geograph:1,get:[3,4,6],get_closest_solar_flux:6,get_colobar_label:1,get_cosmo_field:3,get_data:3,get_dataset_field:3,get_datatype_field:3,get_datetim:3,get_end_tim:3,get_field_nam:1,get_field_unit:3,get_fieldname_cosmo:3,get_fieldname_pyart:3,get_file_list:3,get_histogram_bin:4,get_iso0_field:3,get_new_rainbow_file_nam:3,get_phidp:4,get_process_func:4,get_prodgen_func:5,get_range_bins_to_avg:6,get_roi:6,get_samples_in_period:3,get_save_dir:3,get_sensor_data:3,get_start_tim:3,get_target_elev:6,get_trtfile_list:3,getattr:3,give:4,given:[0,3,4,6],global:4,going:[3,4],good:4,gourlei:4,graph:2,graphic:1,grid:[1,3,4,5,6],grid_height:6,gridconfig:4,grng:4,ground:[3,4],group:[3,5],h_re:6,h_tol:4,h_vec:6,half:4,handl:[1,3],has:[0,3,4,6],hash:3,have:[3,4],hbin_edg:3,heigh:6,height:[1,3,4,6],height_over_iso0:3,help:3,helper:3,high:[1,4],high_quantil:3,highbeam:4,higher:[3,4],highest_on_top:1,hist:[1,3,6],hist_2d:[1,6],hist_obj:1,hist_typ:1,histogram:[1,3,4,5,6],hit:[1,3,4,5,6],hit_datetime_list:6,hmax:[1,4],hmin:[1,4],hold:[3,4],horizont:[3,4],houz:4,how:3,hquant:1,hre:[3,4],hvec:[1,3],hybrid:4,hydro:[3,4],hydro_data_op:3,hydro_data_pi:3,hydro_method:4,hydroclass:4,hydrometeor:[3,4],hzt2radar_coord:3,hzt2radar_data:3,hzt:[3,4],hzt_coord:3,hzt_data:3,hzt_field:3,hzt_ind:3,hzt_ind_field:3,identifi:[3,4],imgcfg:6,implement:3,inch:1,incl:3,inclin:3,includ:3,include_nan:6,ind:6,ind_az:1,ind_el:1,ind_rad:[3,4],ind_rai:6,ind_ray_rad1:6,ind_ray_rad2:6,ind_rng:6,ind_rng_aux:6,ind_rng_rad1:6,ind_rng_rad2:6,ind_sweep:1,independ:4,index:[1,2,3,4,6],indic:[1,3,4,6],individu:[3,4],inds_ray_aux:6,inear:1,info:3,inform:[0,3,4],infostr:0,infostr_list:0,init:3,initi:[4,5],input:[2,4,6],insid:4,instantan:[1,4],inted:0,integr:[3,4],inten:3,intend:4,intercep:1,intercep_slope1_vec:[1,3],intercep_vec:[1,3],intercompar:3,intercomparison:[1,3,4,5],interest:[4,6],interp:4,interp_kind:[4,6],interpol:[3,4,6],interpol_field:3,interv:[4,6],interval_limit:4,interval_split:4,intra:3,invert:1,invert_xaxi:1,invok:3,is_roi:6,iso0:[3,4],iso0_field:3,iso:3,issubclass:3,iter:4,its:[4,5],join:[4,6],join_time_seri:6,kalman:4,kdp:[3,4],kdpc:3,kdpmax:4,kdpzh:3,keep:[1,3,4,6],keep_dri:4,keep_in_memori:4,keep_wet:4,kei:[4,5],kelvin:3,kept:3,keyboard:4,keyowrd:4,keyword:[4,5],ki2:3,kilo:3,kind:3,km2:3,kw2:4,kwarg:3,labe:1,label1:1,label2:1,label:[1,3],label_nr:3,labelmeanv:1,labelx:1,lant:6,larger:[0,3,4],largest:4,last:[0,3,4],last_hit_tim:3,last_stat:3,lat:[1,3,4,6],latitud:[1,3,4,6],latlon:4,latlon_tol:4,latorig:4,law:4,layer:[1,3,4,5],ldr:3,least:4,legend:1,lema:4,length:[3,4,6],level:[0,1,3,4,6],lightn:[0,3,4],limit:[1,3,6],lin_regr:1,lin_regr_slope1:1,lin_tran:4,line:[0,1],linear:[1,3,4,6],linestyl:[1,3],linewidth:1,liquid:3,list:[0,1,3,4,6],lma:3,load:4,local:3,locat:[3,4,6],log:4,lon:[1,3,4,6],longer:4,longitud:[1,3,4,6],lonorig:4,look:[3,4,6],lookup_t:4,loss:4,low:[1,4],low_quantil:3,lowbeam:4,lower:[1,4],lowest_on_top:1,lquant:1,lradomeh:4,lradomev:4,lrxh:4,lrxv:4,ltxh:4,ltxv:4,lwc:3,maesaka:4,mai:[3,4],main:0,main_rt:0,major:3,make:3,make_filenam:3,make_linear:6,mani:3,map:[1,3,4,5],map_doppl:3,map_hydro:3,mappingproxi:3,marker:1,mask:[3,4,6],master:3,master_datadescriptor:3,master_fnam:3,match:4,max:[3,4,6],max_altitud:4,max_phidp:4,max_std_pwr:4,max_std_zdr:4,maxh:3,maxhm:3,maxim:[3,4],maximum:[1,3,4,6],maxlength:3,mean:[0,1,3,4,6],meanbias_vec:[1,3],measur:[1,3,4,6],median:[1,3,4,6],medianbias_vec:[1,3],melt:[1,3,4,5],member:3,memori:[3,4],messag:3,metadata:[1,3,4,5],meteorag:3,meter:4,method:[3,4,6],metranet:3,mflossh:4,mflossv:4,midnight:[3,4],min:[3,6],min_rhohv:4,minim:1,minimum:[1,3,4,6],minor:3,ml_filter:4,ml_thick:4,ml_top_avg:3,ml_top_avg_arr:1,ml_top_std:3,ml_top_std_arr:1,mode:[1,3,6],modebias_vec:[1,3],model:3,moder:4,modul:2,moment:4,monitor:[1,2,3,5],monoton:4,more:4,mort:4,mp_factor:4,msl:[1,3,4,6],multi:4,multipl:[0,3,4,6],multipli:4,multiprocessing_dset:0,multiprocessing_prod:0,must:3,mxpol:3,n_iter:4,name:[1,3,4,5,6],nan:[4,6],nan_valu:[3,4],nb_min:4,nbins_min:4,nblock:3,ncdf:3,nclut:3,ndai:4,ndarrai:[1,3,6],nearest:[3,4,6],nearest_neighbour:4,necessari:4,need:4,neg:4,neighbour:[3,4,6],netcdf:3,nevent:3,new_dataset:4,new_endtim:6,new_fnam:3,new_starttim:6,nfile:3,nflash:3,nflashes_max_list:3,ngate:3,nhits_h:3,nhits_v:3,nhits_zdr:3,nice:[1,3],nnan:3,nois:[2,3],nomin:4,non:[3,4],non_rain_max:4,none:[0,1,3,4,5,6],normal:3,north:3,noth:3,notimpl:3,noutlier:3,np_field:6,np_last:3,np_ma:3,np_min:1,np_radar:3,np_sensor:3,np_t:[1,3],np_trend:3,np_vec:[1,3,6],nph:3,nprec_filt:3,npv:3,nrays_tot:3,nrays_total_arr:1,nrays_valid:3,nrays_valid_arr:1,nrng:3,nsampl:3,ntot:3,num_el:3,number:[1,3,4,6],numpi:3,nval:3,nvalh:3,nvalid:6,nvalid_min:[3,4,6],nvalid_vec:3,nvalv:3,nvalzdr:3,nyquist:4,nyquist_vel:3,nzdr:3,object:[0,1,3,4,5,6],observ:3,observatori:3,obtain:[3,4],occurr:[3,4,5],odim:3,off:0,offset:4,often:4,one:[3,4,6],ones:[3,6],onli:[3,4],oper:3,option:[3,4],order:4,orient:3,orig:3,origin:[3,4],other:2,otherwis:[3,4,5],out:[3,4,6],outcom:3,outlier:4,output:[2,4,6],output_typ:4,outsid:[4,6],over:[0,3,4,6],overrid:3,overridden:3,page:2,par:[4,6],par_azimuth_antenna:4,par_elevation_antenna:4,parallel:[0,4],param_name_unit:3,paramet:[0,1,3,4,5,6],particular:[1,3,6],pass:4,path:[0,3,4],pattern:[1,3,4],pattern_thr:4,per:[1,3],percent:4,percent_prec_max:4,percentag:4,percentil:[1,3,4],percentile_max:4,percentile_min:4,perform:[3,4],period1:1,period2:1,period:[0,1,3,4,6],ph_std:3,phase:2,phi:4,phi_avg_max:4,phi_excess_max:4,phidp:4,phidpmax:4,philin:4,pickl:3,piecewis:4,pixel:[1,3],place:[3,4],plain:4,plan:1,plane:[0,3,4],plot:[0,2,3,4],plot_along_coord:1,plot_antenna_pattern:1,plot_bscop:1,plot_cappi:1,plot_dens:1,plot_field_coverag:1,plot_hist:3,plot_histogram2:1,plot_histogram:1,plot_intercomp_scores_t:1,plot_latitude_slic:1,plot_latlon_slic:1,plot_longitude_slic:1,plot_ml_t:1,plot_monitoring_t:1,plot_po:1,plot_ppi:1,plot_ppi_contour:1,plot_ppi_map:1,plot_quantil:1,plot_rhi:1,plot_rhi_contour:1,plot_rhi_profil:1,plot_scatt:1,plot_scatter_comp:1,plot_sun_hit:1,plot_sun_retrieval_t:1,plot_surfac:1,plot_time_rang:1,plot_timeseri:1,plot_timeseries_comp:1,plot_traj:1,plot_typ:1,plotabl:1,png:3,poh:3,point:[1,3,4,6],pol_vals_dict:3,pol_vals_label:3,pol_values_label:3,polar:[3,4],polarimetr:[3,4,5],poor:4,posit:[1,3,4,6],possibl:4,post:4,potenti:4,power:[3,4,6],ppi:[1,3,4],prdcfg:[1,5],prdcfginfo:3,prdname:3,prdtype:3,pre:4,precip:[3,4],precipit:[3,4],preciptyp:3,precomput:3,present:4,pressur:3,previou:3,print:3,prior:3,proc:2,proc_finish:0,proc_period:0,process:[2,3,5],process_attenu:4,process_azimuthal_averag:4,process_bird_dens:4,process_birds_id:4,process_cdf:4,process_cdr:4,process_clt_to_echo_id:4,process_colocated_g:4,process_correct_bia:4,process_correct_noise_rhohv:4,process_correct_phidp0:4,process_cosmo:4,process_cosmo_coord:4,process_cosmo_lookup_t:4,process_dealias_fourdd:4,process_dealias_region_bas:4,process_dealias_unwrap_phas:4,process_echo_filt:4,process_echo_id:4,process_estimate_phidp0:4,process_evp:4,process_filter_snr:4,process_filter_vel_diff:4,process_filter_vis:4,process_gc_monitor:4,process_grid:4,process_hydroclass:4,process_hzt:4,process_hzt_coord:4,process_hzt_lookup_t:4,process_intercomp:4,process_intercomp_time_avg:4,process_kdp_leastsquare_double_window:4,process_kdp_leastsquare_single_window:4,process_l:4,process_melting_lay:4,process_monitor:4,process_occurr:4,process_occurrence_period:4,process_outlier_filt:4,process_phidp_kdp_kalman:4,process_phidp_kdp_lp:4,process_phidp_kdp_maesaka:4,process_phidp_kdp_vulpiani:4,process_point_measur:4,process_qvp:4,process_rainr:4,process_raw:4,process_rc:4,process_rcs_pr:4,process_rhohv_rain:4,process_roi:4,process_rqvp:4,process_save_radar:4,process_selfconsistency_bia:4,process_selfconsistency_kdp_phidp:4,process_signal_pow:4,process_smooth_phidp_double_window:4,process_smooth_phidp_single_window:4,process_snr:4,process_sun_hit:4,process_svp:4,process_time_avg:4,process_time_avg_flag:4,process_time_height:4,process_traj_antenna_pattern:4,process_traj_atplan:4,process_traj_lightn:4,process_traj_trt:4,process_trajectori:4,process_vad:4,process_vol_refl:4,process_weighted_time_avg:4,process_wind_vel:4,process_windshear:4,process_zdr_column:4,process_zdr_precip:4,process_zdr_snow:4,proclevel:3,procnam:3,procstatu:4,prod:2,produc:4,product:[0,1,2,3],profil:[1,3,4,5,6],profile_multiprocess:0,program:[0,4],project:[4,6],project_to_vert:6,propos:4,provid:3,puls:4,pulse_width:4,put:4,pv_std:3,pyart:3,qbin_edg:3,qmax:3,qmin:3,quant25bias_vec:[1,3],quant75bias_vec:[1,3],quant:1,quantil:[1,3,4,6],quantiles_weight:6,quantiti:[3,6],quantitit:3,quasi:[4,5],qvp:4,rad1_azi:[3,6],rad1_el:[3,6],rad1_nam:[1,3],rad1_ray_ind:3,rad1_rng:[3,6],rad1_rng_ind:3,rad1_tim:3,rad1_val:3,rad2_azi:[3,6],rad2_el:[3,6],rad2_nam:[1,3],rad2_ray_ind:3,rad2_rng:[3,6],rad2_rng_ind:3,rad2_tim:3,rad2_val:3,rad4alp:[3,4],rad_alt:1,rad_az:[3,6],rad_el:[3,6],rad_tstart:1,radar001:[1,3],radar002:[1,3],radar1:[3,6],radar2:[3,6],radar:[0,1,2,4,5],radar_dest:3,radar_in:6,radar_list:[3,4],radar_nam:3,radar_orig:3,radar_out:5,radar_valu:3,radarcentroid:4,radarnr:3,radconsth:4,radconstv:4,radial:4,radian:3,radiu:4,radom:4,rai:[3,4,6],rain:[3,4],rainbow:3,rainfal:[4,6],rainfall_accumul:6,rang:[1,3,4,6],range_al:4,rank:3,rank_max:3,rank_max_tim:3,rankr:3,rate:4,ratio:4,raw:[3,4],ray_end:6,ray_start:6,rcell:4,reach:3,read:[2,6],read_antenna_pattern:3,read_colocated_data:3,read_colocated_g:3,read_config:3,read_cosmo_coord:3,read_cosmo_data:3,read_disdro_scatt:3,read_excess_g:3,read_histogram:3,read_histogram_t:3,read_hzt_data:3,read_intercomp_scores_t:3,read_last_st:3,read_lightn:3,read_lightning_al:3,read_lightning_traj:3,read_meteorag:3,read_ml_t:3,read_monitoring_t:3,read_profile_t:3,read_quantil:3,read_quantiles_t:3,read_rad4alp_cosmo:3,read_rad4alp_vi:3,read_rhi_profil:3,read_selfconsist:3,read_smn2:3,read_smn:3,read_solar_flux:3,read_statu:3,read_sun_hit:3,read_sun_hits_multiple_dai:3,read_sun_retriev:3,read_timeseri:3,read_trt_cell_lightn:3,read_trt_data:3,read_trt_scor:3,read_trt_traj_data:3,read_ts_cum:3,real:[0,4],receiv:[3,4],receiver_list:3,ref_tim:3,ref_valu:1,refer:[1,3,4],reflect:[3,4],regardless:4,region:[4,6],regress:[1,6],regression_mean:6,regular:[4,6],regular_grid:4,rel_altitud:1,relat:4,remov:6,repr:3,repres:[1,4],represent:1,resolut:[3,4,6],respect:[3,4,6],result:[1,4,6],retriev:[1,2,3,6],rewrit:3,rhi:[1,3,4,6],rhi_resolut:4,rhohv:[3,4],rhohvc:3,rhohvmin:4,right:3,rmax:4,rmax_prec:4,rmin:4,rng:[4,6],rng_tol:[4,6],rng_traj:1,rng_vec:6,rngtol:4,roi:[4,6],roi_flag:6,roif_func:4,root:3,round:0,rr_method:4,rsmooth:4,run01:3,run57:0,runinfo:3,rwind:4,rwindl:4,same:[0,1,3],sampl:[1,3,4,6],san:4,save:[1,3,4],save_fig:1,savedir:3,scan:[1,3,4],scatter:[1,3],schneeb:4,scope:1,score:[1,3],search:[2,3,4,6],sec:3,second:[0,1,3,6],section:[1,4],sector:[3,6],see:3,seem:4,segment:4,select:[0,4],self:3,selfconsist:4,semi:3,semisupervis:4,send:3,send_msg:3,sender:3,sensor:[1,3],sensor_valu:3,sensord:3,sensorvalu:3,seri:[1,2,3,5,6],set:[0,3,4,6],setattr:3,sf_h:3,sf_ref:3,sf_v:3,shear:4,shift:4,shorter:4,should:[3,4],shut:0,side:4,sigma_bird:4,sign:4,signal:4,signatur:3,similar:4,simultan:0,sinc:3,sind:3,singl:[0,4],size:[3,6],skip:4,skip_along_rai:4,skip_between_rai:4,slant:4,slice:1,slice_xi:3,slice_z:3,slope:1,slope_vec:[1,3],smn_id:3,smooth:4,snow:4,snr:4,snrh:4,snrmax:4,snrmin:4,snrv:4,solar:[3,6],solid:4,some:[4,5,6],sort:[1,3],sort_altitud:1,sort_by_d:3,sound:4,sourc:[0,1,3,4,5,6],south:3,space:3,speci:3,specif:4,specifi:[1,3,4,6],specyf:4,speed:3,split:[3,4],squar:4,stamp:3,standard:[3,4,6],start:[0,1,3,4,6],start_averag:4,start_tim:3,startim:3,starttim:[0,3],stat:[3,6],state:[3,4,5],station:3,statist:[3,4,6],statu:[3,4,5],std_dbm_sun_est:3,std_dbmv_sun_est:3,std_field:6,std_valu:3,std_zdr_sun_est:3,step1:6,step2:6,step:[1,3,4,6],store:[1,3,4],str:[0,1,3,4,5,6],string:[0,1,3,4],stroke:3,stroke_tim:3,structur:4,style:1,subclass:3,subject:3,substitut:4,successfulli:0,suitabl:4,sum:4,sun:[1,3,4,5,6],sun_az:[3,6],sun_el:[3,6],sun_hit:[3,4],sun_hits_dict:4,sun_retriev:[1,3,4],superior:4,surfac:1,surface_alt:1,surround:4,svp:4,sweep:[1,3,4,6],swiss:3,swiss_chh:3,swiss_chi:3,swiss_chx:3,swissmetnet:3,synthet:4,system:4,t_in_vec:6,t_out_vec:6,t_re:3,tabl:[3,4],take:[4,6],taken:3,target:[3,4,6],target_elev:6,target_radar_po:4,tbin_edg:3,techniqu:4,temp:[3,4],temperatur:[3,4],tempmax:4,tempmin:4,tempor:4,test:3,text:3,than:[0,3,4],thei:3,them:3,theoret:6,therefor:[0,4],thi:[0,3,4],thick:4,thick_avg:3,thick_avg_arr:1,thick_std:3,thick_std_arr:1,thresh:4,threshold:[3,4],time:[0,1,2,3,5,6],time_avg_rang:6,time_data:3,time_flash:3,time_in_flash:3,time_index:3,time_ref:3,time_seri:6,time_series_statist:6,time_tol:4,time_traj:1,time_vector:3,timedelta:3,timeformat:[1,3],timeinfo:[3,6],timeseri:[2,4],timevec:3,titl:1,togeth:4,tol_ab:3,tol_trend:3,toler:[3,4,6],top:[3,4],total:3,toward:4,traj:[3,5],traj_id:3,trajectori:[0,1,2,5],trajfil:0,trajtyp:[0,3],transform:[4,6],transmit:4,transmitt:4,transpar:1,transpos:4,trend:3,trt:[3,4],truealt:4,ts011:3,tupl:[1,5],tuppl:[1,3],tvec:1,two:[1,3,4,6],twowai:[1,3],txpwrh:4,txpwrv:4,type:[0,1,3,4,6],undefin:3,under:4,unfold:4,unit:[1,3,4],unit_nam:3,unwrap:4,unwrap_unit:4,upper:1,use:[3,4,6],use_nan:[3,4],used:[1,3,4,5,6],user:[0,4],using:[1,3,4],utc:[1,3,4],util:2,vad:4,val1:6,val1_out_vec:6,val2:6,val2_out_vec:6,val:[3,6],val_at_flash:3,val_in_vec:6,val_max:3,val_mean:3,val_min:[3,4],val_out_vec:6,val_valid:6,valid:[1,3,4,6],vals_list:3,valu:[0,1,3,4,5,6],value1:1,value2:1,value_avg_vec:3,value_last:3,value_std_vec:3,value_trend:3,variabl:3,vector:[3,4,6],vel_i:3,vel_x:3,veloc:[3,4],veloctii:3,vert_proj:4,vertic:[1,3,4,5,6],view:4,vil:3,visibl:[3,4],vismin:[3,4],vmax:[1,6],vmin:[1,6],vol:[4,5],vol_d_tol:4,voltim:3,volum:[0,3,4,5,6],volumetr:4,vre:4,vulpiani:4,wai:[1,3,4],want:4,water:4,wdir:3,weak:3,weight:[4,6],weight_pow:4,weight_threshold:6,weight_vector:6,west:3,wet:4,wfunc:4,wgs84:3,wgs84_alt_m:3,wgs84_lat_deg:3,wgs84_lon_deg:3,what:1,when:[3,4],where:[1,3,4,6],whether:[1,3,4,6],which:[1,3,4,6],whole:4,wich:[3,4,6],width:[1,4],wind:4,window:[4,6],within:[3,4,6],would:4,write:[1,2,6],write_alarm_msg:3,write_cdf:3,write_colocated_data:3,write_colocated_data_time_avg:3,write_colocated_g:3,write_excess_g:3,write_field_coverag:3,write_histogram:3,write_intercomp_scores_t:3,write_last_st:3,write_monitoring_t:3,write_quantil:3,write_rhi_profil:3,write_smn:3,write_sun_hit:3,write_sun_retriev:3,write_trt_cell_data:3,write_trt_cell_lightn:3,write_trt_cell_scor:3,write_ts_cum:3,write_ts_lightn:3,write_ts_polar_data:3,written:3,wspeed:3,xedg:6,xlabel:1,xmax:4,xmeanval:1,xmin:4,xml:3,xval_list:1,yedg:6,yes:4,ylabel:1,ymax:[1,3,4],ymeanval:1,ymin:[1,3,4],yval_list:1,yyyymmddhhmm:3,z_radar:3,zdr:[3,4],zdr_std:3,zdr_sun_est:3,zdrc:3,zero:6,zkdp:4,zmax:4,zmin:[3,4],zone:3,zphi:4,zpoli:4,zthr:4},titles:["processing flow control (pyrad.flow)","Plotting (pyrad.graph)","Welcome to pyrad\u2019s documentation!","Input and output (pyrad.io)","Dataset processing (pyrad.proc)","Products generation (pyrad.prod)","Utilities (pyrad.util)"],titleterms:{"function":[3,4,5],attenu:4,auxiliari:[3,4,5],calibr:4,classif:4,configur:3,control:0,correct:4,cosmo:[3,4],data:[3,4],dataset:4,document:2,doppler:4,echo:4,file:3,filter:4,flow:0,gener:5,graph:1,indic:2,input:3,monitor:4,nois:4,other:3,output:3,phase:4,plot:1,proc:4,process:[0,4],prod:5,product:5,pyrad:[0,1,2,3,4,5,6],radar:[3,6],read:3,retriev:4,seri:4,tabl:2,time:4,timeseri:3,trajectori:[3,4],util:6,welcom:2,write:3}}) \ No newline at end of file diff --git a/docs/util.html b/docs/util.html index 4087765..f87e323 100644 --- a/docs/util.html +++ b/docs/util.html @@ -14,7 +14,6 @@ - @@ -1151,7 +1150,7 @@

    Navigation

    \ No newline at end of file diff --git a/src/pyart b/src/pyart index 7e2726d..ffe9687 160000 --- a/src/pyart +++ b/src/pyart @@ -1 +1 @@ -Subproject commit 7e2726d990220f4791518bb2cf230680e3bef60f +Subproject commit ffe96877bd21c9761401a3c30ba1147afeaa9dc6