def _loop_over_fields(json, pickle, inpdir=None, outdir=None, verbose=False): """ """ # Reflectivity if verbose: print 'Processing reflectivity' refl = moment_fields.histogram_from_json( json, REFL_FIELD, inpdir=inpdir, bins=BINS_REFL, limits=LIMITS_REFL, min_ncp=MIN_NCP, vcp_sweeps=VCP_SWEEPS, vcp_rays=VCP_RAYS, min_sweep=MIN_SWEEP, max_sweep=MAX_SWEEP, exclude_fields=EXCLUDE_FIELDS, fill_value=None, ncp_field=NCP_FIELD, verbose=verbose) # Doppler velocity if verbose: print 'Processing Doppler velocity' vdop = moment_fields.histogram_from_json( json, VDOP_FIELD, inpdir=inpdir, bins=BINS_VDOP, limits=LIMITS_VDOP, min_ncp=MIN_NCP, vcp_sweeps=VCP_SWEEPS, vcp_rays=VCP_RAYS, min_sweep=MIN_SWEEP, max_sweep=MAX_SWEEP, exclude_fields=EXCLUDE_FIELDS, fill_value=None, ncp_field=NCP_FIELD, verbose=verbose) # Spectrum width if verbose: print 'Processing spectrum width' sw = moment_fields.histogram_from_json( json, SW_FIELD, inpdir=inpdir, bins=BINS_SW, limits=LIMITS_SW, min_ncp=MIN_NCP, vcp_sweeps=VCP_SWEEPS, vcp_rays=VCP_RAYS, min_sweep=MIN_SWEEP, max_sweep=MAX_SWEEP, exclude_fields=EXCLUDE_FIELDS, fill_value=None, ncp_field=NCP_FIELD, verbose=verbose) # Copolar correlation if verbose: print 'Processing copolar correlation' rhohv = moment_fields.histogram_from_json( json, RHOHV_FIELD, inpdir=inpdir, bins=BINS_RHOHV, limits=LIMITS_RHOHV, min_ncp=MIN_NCP, vcp_sweeps=VCP_SWEEPS, vcp_rays=VCP_RAYS, min_sweep=MIN_SWEEP, max_sweep=MAX_SWEEP, exclude_fields=EXCLUDE_FIELDS, fill_value=None, ncp_field=NCP_FIELD, verbose=verbose) # Differential reflectivity if verbose: print 'Processing differential reflectivity' zdr = moment_fields.histogram_from_json( json, ZDR_FIELD, inpdir=inpdir, bins=BINS_ZDR, limits=LIMITS_ZDR, min_ncp=MIN_NCP, vcp_sweeps=VCP_SWEEPS, vcp_rays=VCP_RAYS, min_sweep=MIN_SWEEP, max_sweep=MAX_SWEEP, exclude_fields=EXCLUDE_FIELDS, fill_value=None, ncp_field=NCP_FIELD, verbose=verbose) # Coherent power if verbose: print 'Processing normalized coherent power' ncp = moment_fields.histogram_from_json( json, NCP_FIELD, inpdir=inpdir, bins=BINS_NCP, limits=LIMITS_NCP, min_ncp=MIN_NCP, vcp_sweeps=VCP_SWEEPS, vcp_rays=VCP_RAYS, min_sweep=MIN_SWEEP, max_sweep=MAX_SWEEP, exclude_fields=EXCLUDE_FIELDS, fill_value=None, ncp_field=NCP_FIELD, verbose=verbose) # Pack histograms together histograms = [refl, vdop, sw, rhohv, zdr, ncp] # Pickle moment histograms moment_fields._pickle_histograms( histograms, pickle, outdir=outdir) return
def _loop_over_fields(json, pickle, inpdir=None, outdir=None, verbose=False): """ """ # Reflectivity if verbose: print 'Processing reflectivity' refl = moment_fields.histogram_from_json(json, REFL_FIELD, inpdir=inpdir, bins=BINS_REFL, limits=LIMITS_REFL, min_ncp=MIN_NCP, vcp_sweeps=VCP_SWEEPS, vcp_rays=VCP_RAYS, min_sweep=MIN_SWEEP, max_sweep=MAX_SWEEP, exclude_fields=EXCLUDE_FIELDS, fill_value=None, ncp_field=NCP_FIELD, verbose=verbose) # Doppler velocity if verbose: print 'Processing Doppler velocity' vdop = moment_fields.histogram_from_json(json, VDOP_FIELD, inpdir=inpdir, bins=BINS_VDOP, limits=LIMITS_VDOP, min_ncp=MIN_NCP, vcp_sweeps=VCP_SWEEPS, vcp_rays=VCP_RAYS, min_sweep=MIN_SWEEP, max_sweep=MAX_SWEEP, exclude_fields=EXCLUDE_FIELDS, fill_value=None, ncp_field=NCP_FIELD, verbose=verbose) # Spectrum width if verbose: print 'Processing spectrum width' sw = moment_fields.histogram_from_json(json, SW_FIELD, inpdir=inpdir, bins=BINS_SW, limits=LIMITS_SW, min_ncp=MIN_NCP, vcp_sweeps=VCP_SWEEPS, vcp_rays=VCP_RAYS, min_sweep=MIN_SWEEP, max_sweep=MAX_SWEEP, exclude_fields=EXCLUDE_FIELDS, fill_value=None, ncp_field=NCP_FIELD, verbose=verbose) # Copolar correlation if verbose: print 'Processing copolar correlation' rhohv = moment_fields.histogram_from_json(json, RHOHV_FIELD, inpdir=inpdir, bins=BINS_RHOHV, limits=LIMITS_RHOHV, min_ncp=MIN_NCP, vcp_sweeps=VCP_SWEEPS, vcp_rays=VCP_RAYS, min_sweep=MIN_SWEEP, max_sweep=MAX_SWEEP, exclude_fields=EXCLUDE_FIELDS, fill_value=None, ncp_field=NCP_FIELD, verbose=verbose) # Differential reflectivity if verbose: print 'Processing differential reflectivity' zdr = moment_fields.histogram_from_json(json, ZDR_FIELD, inpdir=inpdir, bins=BINS_ZDR, limits=LIMITS_ZDR, min_ncp=MIN_NCP, vcp_sweeps=VCP_SWEEPS, vcp_rays=VCP_RAYS, min_sweep=MIN_SWEEP, max_sweep=MAX_SWEEP, exclude_fields=EXCLUDE_FIELDS, fill_value=None, ncp_field=NCP_FIELD, verbose=verbose) # Coherent power if verbose: print 'Processing normalized coherent power' ncp = moment_fields.histogram_from_json(json, NCP_FIELD, inpdir=inpdir, bins=BINS_NCP, limits=LIMITS_NCP, min_ncp=MIN_NCP, vcp_sweeps=VCP_SWEEPS, vcp_rays=VCP_RAYS, min_sweep=MIN_SWEEP, max_sweep=MAX_SWEEP, exclude_fields=EXCLUDE_FIELDS, fill_value=None, ncp_field=NCP_FIELD, verbose=verbose) # Pack histograms together histograms = [refl, vdop, sw, rhohv, zdr, ncp] # Pickle moment histograms moment_fields._pickle_histograms(histograms, pickle, outdir=outdir) return
def _loop_over_dict(json_file, pickle_file, inpdir=None, outdir=None, verbose=False): """ """ # Parse files from JSON file with open(json_file, 'r') as fid: files = json.load(fid) if inpdir is not None: files = [os.path.join(inpdir, f) for f in files] # Loop over all files for f in files: # Read radar data radar = read(f, exclude_fields=EXCLUDE_FIELDS) if VCP_SWEEPS is not None and radar.nsweeps != VCP_SWEEPS: continue if VCP_RAYS is not None and radar.nrays != VCP_RAYS: continue if verbose: print 'Processing file %s' % os.path.basename(f) # Determine significant detection of the radar gatefilter = noise.velocity_coherency( radar, gatefilter=None, num_bins=BINS_VDOP_COHER, limits=LIMITS_VDOP_COHER, texture_window=(3, 3), texture_sample=5, min_sigma=None, max_sigma=None, nyquist=None, rays_wrap_around=False, remove_salt=REMOVE_SALT, salt_window=SALT_WINDOW, salt_sample=SALT_SAMPLE, fill_value=None, verbose=True) gatefilter = noise.spectrum_width_coherency( radar, gatefilter=gatefilter, num_bins=BINS_SW_COHER, limits=LIMITS_SW_COHER, texture_window=(3, 3), texture_sample=5, min_sigma=None, max_sigma=None, rays_wrap_around=False, remove_salt=REMOVE_SALT, salt_window=SALT_WINDOW, salt_sample=SALT_SAMPLE, fill_value=None, verbose=True) gatefilter = noise.significant_detection( radar, gatefilter=gatefilter, remove_salt=REMOVE_SALT, salt_window=SALT_WINDOW, salt_sample=SALT_SAMPLE, min_ncp=MIN_NCP, detect_field=None, verbose=True) # Compute histogram counts for each field moment_fields.histograms_from_radar( radar, HIST_DICT, gatefilter=gatefilter, min_ncp=MIN_NCP, min_sweep=MIN_SWEEP, max_sweep=MAX_SWEEP, min_range=MIN_RANGE, max_range=MAX_RANGE, fill_value=None, ncp_field=NCP_FIELD, verbose=verbose) # Normalize histograms for each field and compute probability densities for field in HIST_DICT: # Parse bin edges and histogram counts bin_edges = HIST_DICT[field]['bin edges'] counts = HIST_DICT[field]['histogram counts'] # Compute normalized histogram and probability density # Add these to the histogram dictionary counts_norm = counts.astype(np.float64) / counts.max() pdf = counts_norm / np.sum(counts_norm * np.diff(bin_edges)) HIST_DICT[field]['normalized histogram'] = counts_norm HIST_DICT[field]['probability density'] = pdf # Include other parameters in the histogram dictionary HIST_DICT[field]['radar files'] = files HIST_DICT[field]['min sweep'] = MIN_SWEEP HIST_DICT[field]['max sweep'] = MAX_SWEEP HIST_DICT[field]['min range'] = MIN_RANGE HIST_DICT[field]['max range'] = MAX_RANGE HIST_DICT[field]['sweeps in VCP'] = VCP_SWEEPS HIST_DICT[field]['rays in VCP'] = VCP_RAYS HIST_DICT[field]['min NCP'] = MIN_NCP # Pickle histogram data moment_fields._pickle_histograms( HIST_DICT, pickle_file, outdir=outdir) return
def _loop_over_dict(json_file, pickle_file, inpdir=None, outdir=None, verbose=False): """ """ # Parse files from JSON file with open(json_file, 'r') as fid: files = json.load(fid) if inpdir is not None: files = [os.path.join(inpdir, f) for f in files] # Loop over all files for f in files: # Read radar data radar = read(f, exclude_fields=EXCLUDE_FIELDS) if VCP_SWEEPS is not None and radar.nsweeps != VCP_SWEEPS: continue if VCP_RAYS is not None and radar.nrays != VCP_RAYS: continue if verbose: print 'Processing file %s' % os.path.basename(f) # Determine significant detection of the radar gatefilter = noise.velocity_coherency(radar, gatefilter=None, num_bins=BINS_VDOP_COHER, limits=LIMITS_VDOP_COHER, texture_window=(3, 3), texture_sample=5, min_sigma=None, max_sigma=None, nyquist=None, rays_wrap_around=False, remove_salt=REMOVE_SALT, salt_window=SALT_WINDOW, salt_sample=SALT_SAMPLE, fill_value=None, verbose=True) gatefilter = noise.spectrum_width_coherency(radar, gatefilter=gatefilter, num_bins=BINS_SW_COHER, limits=LIMITS_SW_COHER, texture_window=(3, 3), texture_sample=5, min_sigma=None, max_sigma=None, rays_wrap_around=False, remove_salt=REMOVE_SALT, salt_window=SALT_WINDOW, salt_sample=SALT_SAMPLE, fill_value=None, verbose=True) gatefilter = noise.significant_detection(radar, gatefilter=gatefilter, remove_salt=REMOVE_SALT, salt_window=SALT_WINDOW, salt_sample=SALT_SAMPLE, min_ncp=MIN_NCP, detect_field=None, verbose=True) # Compute histogram counts for each field moment_fields.histograms_from_radar(radar, HIST_DICT, gatefilter=gatefilter, min_ncp=MIN_NCP, min_sweep=MIN_SWEEP, max_sweep=MAX_SWEEP, min_range=MIN_RANGE, max_range=MAX_RANGE, fill_value=None, ncp_field=NCP_FIELD, verbose=verbose) # Normalize histograms for each field and compute probability densities for field in HIST_DICT: # Parse bin edges and histogram counts bin_edges = HIST_DICT[field]['bin edges'] counts = HIST_DICT[field]['histogram counts'] # Compute normalized histogram and probability density # Add these to the histogram dictionary counts_norm = counts.astype(np.float64) / counts.max() pdf = counts_norm / np.sum(counts_norm * np.diff(bin_edges)) HIST_DICT[field]['normalized histogram'] = counts_norm HIST_DICT[field]['probability density'] = pdf # Include other parameters in the histogram dictionary HIST_DICT[field]['radar files'] = files HIST_DICT[field]['min sweep'] = MIN_SWEEP HIST_DICT[field]['max sweep'] = MAX_SWEEP HIST_DICT[field]['min range'] = MIN_RANGE HIST_DICT[field]['max range'] = MAX_RANGE HIST_DICT[field]['sweeps in VCP'] = VCP_SWEEPS HIST_DICT[field]['rays in VCP'] = VCP_RAYS HIST_DICT[field]['min NCP'] = MIN_NCP # Pickle histogram data moment_fields._pickle_histograms(HIST_DICT, pickle_file, outdir=outdir) return