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