Usage#

The pyiwr architecture is designed as a user-friendly toolkit, specifically tailored to address the distinctive requirements of dual-pol DWR data analysis. The architecture of the four primary modules transform, analysis, utilities and visualize, serves a vital role in streamlining the radar data processing workflow using various functions as shown in the figure below.

up_pyiwr

transform module:

Reading Raw / open-source DWR files, format correction, restructuring DWR NetCDF files, reading and converting radial sweeps format data into cartesian gridded data NetCDF files, merging multiple sweep files into a single volumetric CFradial file
# For dual-pol dwr raw files
	
radar = pyiwr.transform.raw2nc(filename, save_file=True)

	
# For Open-source / IMD / IITM nc files reading and format correction and restructuring
	
radar = pyiwr.transform.format_correctednc(filename, save_file=True)

	
# For xarray grids for NetCDF files
	
xarray_grids = pyiwr.transform.sweeps2gridnc(filename, grid_shape=(81, 501, 501), height=20, 
	length=250, save_file=True)

	
# For merging multiple sweep files into a single file for making volumetric / gridded NetCDF files
	
Radar_grids = pyiwr.transform.sweeps2mergednc (path_string, start_index = 0,  end_index=None, 
	scan_type="B",  no_swps = None, dualpol=False, gridder=False, grid_shape=(30, 500, 500), 
	height=15, length=250, save_file=False)

	

analysis module

# For CAPPI in cartesian plane
pyiwr.visualize.cappi(xarray_grids, altitude_level=3, field_name='DBZ', radar_location='CHERRAPUNJI',
                        grid=False, rings=False, ticks_in_km=True, save_image=True, img_name='img.png')

# For MAX CAPPI in cartesian plane
pyiwr.visualize.cappi_max(xarray_grids, field_name='DBZ', radar_location='CHERRAPUNJI',
                        grid=False, rings=False, ticks_in_km=True, save_image=True, img_name='img.png')

# For MAX CAPPI (with marginal cross-sections) in cartesian plane
pyiwr.visualize.marginal_max(xarray_grids, radar_location='SHAR', field_name='DBZ', show_rings=True,
                        show_grid=True, show_cross_sections=True, save_image=True, img_name='img.png')

# For MAX CAPPI (with marginal cross-sections) with map
pyiwr.visualize.marginal_max_map(xarray_grids, radar_location='TERLS', field_name='DBZ',
                       background='terrain-background', cross_sections=True, save_image=True, img_name='img.png')

visualize module

This module is used for plotting Basic Radar fields in Plan Position Indicator (PPI), at a specific elevation or plotting all elevations or plotting all radar fields available in radar object file.
# For PPI at specific elevation
	
pyiwr.visualize.elevation(radar, field_name='DBZ', elevation_index=0, figwidth = 10, figheight = 8, 
	show_label = True, xlabel=None, ylabel=None, label_size=15, show_tick_labels = True, 
	tick_label_size = 15, show_bounding_box = True, show_grid = True, grid_alpha=0.5, 
	show_rings = True, ring_color = "0.5", ring_alpha = 0.5, show_ring_label=True, 
        ring_label_size=15, ring_label_xloc_adjust=5, ring_label_yloc_adjust=50, show_title = True, 
	title_str = None, title_size = 14, scan_type = "short_scan", colorbar_range=None, 
	set_cbar_label = None, cbar_label_size=15, cbar_tick_label_size = None, save_image=False, 
	img_dpi = 600, img_name='ele_image_uncorr.png')   

	
# For PPI of any field at all elevation
	
 pyiwr.visualize.all_elevation(radar, field_name='DBZ', scan_type = "short_scan", figwidth = 20, 
	figheight = 18, show_label = True, xlabel=None, ylabel=None,label_size=18, show_tick_labels = True, 
	tick_label_size = 15, show_bounding_box = True, show_grid = True, grid_alpha=0.5, show_rings = True, 
	ring_color = "0.5", ring_alpha = 0.5, show_ring_label=True, ring_label_size=15, ring_label_xloc_adjust=5, 
	ring_label_yloc_adjust=50, show_suptitle = True, suptitle_str = None, suptitle_size = 20, 
	suptitle_vspace = 1.0, show_subtitle = True, subtitle_str = None, subtitle_size = 20, 
	colorbar_range=[0,70], set_cbar_label = None, cbar_label_size=25, cbar_tick_label_size = 20, 
	img_dpi = 600, save_image=False, img_name='all_ele_imagenew.png')  


# For PPI of all fields
	
pyiwr.visualize.fields_elevation(radar, elevation_index=2, scan_type = "short_scan",  figwidth = 20, 
	figheight = 18, show_label = True, xlabel=None, ylabel=None, label_size=15, show_tick_labels = True, 
	tick_label_size = 12, show_bounding_box = True, show_grid = True, grid_alpha=0.5, show_rings = True,
	ring_color = "0.5", ring_alpha = 0.5, show_ring_label=True, ring_label_size=15, ring_label_xloc_adjust=5, 
	ring_label_yloc_adjust=50, show_suptitle = True, suptitle_str = None, suptitle_size = 20, 
	suptitle_vspace = 1.0, show_subtitle = True, subtitle_size = 20, subplots_vspace = 0.95, 
	subplots_hspace = 0.3, colorbar_range=None, cbar_label_size=20, cbar_tick_label_size = 20, 
	save_image=False, img_dpi = 600, img_name='fields_ele_imagenew.png')