Source code for pyart.bridge.wradlib_bridge

"""
Py-ART methods linking to wradlib functions, http://wradlib.org/

"""

try:
    import wradlib
    _WRADLIB_AVAILABLE = True
except ImportError:
    _WRADLIB_AVAILABLE = False
import numpy as np

from ..config import get_metadata, get_field_name
from ..exceptions import MissingOptionalDependency


[docs]def texture_of_complex_phase(radar, phidp_field=None, phidp_texture_field=None): """ Calculate the texture of the differential phase field. Calculate the texture of the real part of the complex differential phase field Parameters ---------- radar : Radar Radar object from which to . phidp_field : str, optional Name of field in radar which contains the differential phase shift. None will use the default field name in the Py-ART configuration file. phidp_texture_field : str, optional Name to use for the differential phase texture field metadata. None will use the default field name in the Py-ART configuration file. Returns ------- texture_field : dict Field dictionary containing the texture of the real part of the complex differential phase. References ---------- Gourley, J. J., P. Tabary, and J. Parent du Chatelet, A fuzzy logic algorithm for the separation of precipitating from nonprecipitating echoes using polarimetric radar observations, Journal of Atmospheric and Oceanic Technology 24 (8), 1439-1451 """ # check that wradlib is available if not _WRADLIB_AVAILABLE: raise MissingOptionalDependency( "wradlib is required to use texture_of_complex_phase but is " + "not installed") # parse field names if phidp_field is None: phidp_field = get_field_name('differential_phase') if phidp_texture_field is None: phidp_texture_field = get_field_name('differential_phase') # Grab the phase data phidp = radar.fields[phidp_field]['data'] # convert to complex number complex_phase = np.exp(1j*(phidp*np.pi/180.0)) # calculate texture using wradlib w_texture_complex = wradlib.dp.texture( (np.real(complex_phase) + 1.0) * 180) texture_field = get_metadata(phidp_texture_field) texture_field['data'] = w_texture_complex texture_field['standard_name'] = 'texture_of_differential_phase_hv' texture_field['long_name'] = 'Texture of differential phase' return texture_field