Source code for pyart.aux_io.radx
"""
Reading files using Radx to first convert the file to Cf.Radial format
"""
import os
import subprocess
import tempfile
from ..io.cfradial import read_cfradial
from ..io.common import _test_arguments
[docs]def read_radx(filename, radx_dir=None, **kwargs):
"""
Read a file by first converting it to Cf/Radial using RadxConvert.
Parameters
----------
filename : str
Name of file to read using RadxConvert.
radx_dir : str, optional
path to the radx install
Returns
-------
radar : Radar
Radar object.
"""
# test for non empty kwargs
_test_arguments(kwargs)
if radx_dir is not None:
executable = os.path.join(radx_dir, "RadxConvert")
else:
executable = "RadxConvert"
tmpfile = tempfile.mkstemp(suffix=".nc", dir=".")[1]
head, tail = os.path.split(tmpfile)
try:
subprocess.check_call(
[
executable,
"-const_ngates",
"-outdir",
head,
"-outname",
tail,
"-f",
filename,
]
)
if not os.path.isfile(tmpfile):
raise OSError(
"RadxConvert failed to create a file, upgrading to the "
" latest version of Radx may be necessary."
)
radar = read_cfradial(tmpfile)
finally:
os.remove(tmpfile)
return radar