PyScanCf Example 1#
author: @syedhamidali
date: Sep 8, 2023
import pyscancf as pcf
import pyart
import glob
print(pcf.__version__)
## You are using the Python ARM Radar Toolkit (Py-ART), an open source
## library for working with weather radar data. Py-ART is partly
## supported by the U.S. Department of Energy as part of the Atmospheric
## Radiation Measurement (ARM) Climate Research Facility, an Office of
## Science user facility.
##
## If you use this software to prepare a publication, please cite:
##
## JJ Helmus and SM Collis, JORS 2016, doi: 10.5334/jors.119
/opt/homebrew/lib/python3.11/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html
from .autonotebook import tqdm as notebook_tqdm
## Cite PyScanCf:
## Syed, H. A.,Sayyed, I., Kalapureddy, M. C. R., & Grandhi, K. K.(2021).
## PyScanCf – The library for individual sweep datasets of IMD weather radars.
## Zenodo. doi:10.5281/zenodo.5574160.
1.0.26
Setup the paths for the input and output data, !ls $inp
shows the raw IMD data files, this is how the B-type (short range - high resolution) IMD DWR data looks like.
inp = "/Users/syed44/Downloads/Git_Stuff/imd_temp_radar/B/"
out = "/Users/syed44/Downloads/Git_Stuff/imd_temp_radar/out/"
!ls $inp
GOA210516024101-IMD-B.nc GOA210516030244-IMD-B.nc
GOA210516024101-IMD-B.nc.1 GOA210516030244-IMD-B.nc.1
GOA210516024101-IMD-B.nc.2 GOA210516030244-IMD-B.nc.2
GOA210516024101-IMD-B.nc.3 GOA210516030244-IMD-B.nc.3
GOA210516024101-IMD-B.nc.4 GOA210516030244-IMD-B.nc.4
GOA210516024101-IMD-B.nc.5 GOA210516030244-IMD-B.nc.5
GOA210516024101-IMD-B.nc.6 GOA210516030244-IMD-B.nc.6
GOA210516024101-IMD-B.nc.7 GOA210516030244-IMD-B.nc.7
GOA210516024101-IMD-B.nc.8 GOA210516030244-IMD-B.nc.8
GOA210516024101-IMD-B.nc.9 GOA210516030244-IMD-B.nc.9
help(pcf.cfrad)
Help on function cfrad in module pyscancf.pyscancf:
cfrad(input_dir, output_dir, scan_type='B', dualpol=False, gridder=False, plot=None, nf=None)
Aggregates data to cfradial1 data.
input_dir(str): Enter path of single sweep data directory,
output_dir(str): Enter the path for output data,
scan_type(str): "B", "C". B is for short range PPI,
& C is for long range PPI.
dualpol(bool): True, False. (If the data contains
dual-pol products e.g., ZDR, RHOHV),
gridder(bool): True, False,
plot(str): 'REF', 'VELH', 'WIDTH', 'ALL',
nf(int): Number of files to group together
Let’s see what we have got into pcf.cfrad()
function.
It aggregates data to cfradial1 data. It takes inputs such as
input_dir
,output_dir
,scan_type
,dualpol
,gridder
,plot
, andnf
.input_dir
specifies the path of single sweep data directory, whileoutput_dir
specifies the path for output data.scan_type
takes two options:B
for short-range PPI, andC
for long-range PPI.The
dualpol
parameter is set to True if the data contains dual-polarization products like ZDR and RHOHV.gridder
is a boolean parameter, which is set to True if the user wants to create a gridded output.The
plot
argument is used to generate a cappi plot. It can be set toREF
,VELH
,WIDTH
, orALL
. The names are not case-sensitive and will be taken care of by theplot_cappi()
function. For example, if the data has areflectivity
field namedDBZ
, you can still writeREF
orreflectivity
, and same is for other radar moments.Lastly,
nf
is an integer parameter that specifies the number of files to group together, it is usually10
for typeB
, and2
or3
for typeC
data.
pcf.cfrad(input_dir=inp, output_dir=out, scan_type="B", gridder=True)
Number of files: 20
Total number of files will be created: 2
Merging all scans in one file
Data merging done
Total Time Elapsed: 0:00:24.929688
!ls $out
Max-REF_GOA_20210516024104.png cfrad_GOA210516030244-IMD-B.nc
Max-REF_GOA_20210516030306.png grid_GOA210516024101-IMD-B.nc
cfrad_GOA210516024101-IMD-B.nc grid_GOA210516030244-IMD-B.nc
files = glob.glob(out+"grid*")
for file in files:
grid = pyart.io.read_grid(file)
pcf.plot_cappi(grid, "REF",
cmap="SyedSpectral", #optional
crosshair=False, #optional
savedir=None, #optional
show_figure=True, #optional
vmin=-10,
vmax=60,)
...............................
Plotting Max-REF 20210516024104
...............................
...............................
Plotting Max-REF 20210516030306
...............................


for file in files:
grid = pyart.io.read_grid(file)
pcf.plot_cappi(grid, "REF",
cmap="pyart_HomeyerRainbow", #optional
crosshair=False, #optional
savedir=out, #optional
show_figure=False, #optional
)
...............................
Plotting Max-REF 20210516024104
...............................
Figure(s) saved as /Users/syed44/Downloads/Git_Stuff/imd_temp_radar/out//Max-REF_GOA_20210516024104.png
...............................
Plotting Max-REF 20210516030306
...............................
Figure(s) saved as /Users/syed44/Downloads/Git_Stuff/imd_temp_radar/out//Max-REF_GOA_20210516030306.png