pyart.retrieve.hydroclass_semisupervised(radar, mass_centers=None, weights=array([1., 1., 1., 0.75, 0.5]), refl_field=None, zdr_field=None, rhv_field=None, kdp_field=None, temp_field=None, hydro_field=None)[source]#

Classifies precipitation echoes following the approach by Besic et al (2016).

  • radar (radar) – Radar object.

  • mass_centers (ndarray 2D, optional) – The centroids for each variable and hydrometeor class in (nclasses, nvariables).

  • weights (ndarray 1D, optional) – The weight given to each variable.

  • refl_field, zdr_field, rhv_field, kdp_field, temp_field (str, optional) – Inputs. Field names within the radar object which represent the horizonal reflectivity, the differential reflectivity, the copolar correlation coefficient, the specific differential phase and the temperature field. A value of None for any of these parameters will use the default field name as defined in the Py-ART configuration file.

  • hydro_field (str, optional) – Output. Field name which represents the hydrometeor class field. A value of None will use the default field name as defined in the Py-ART configuration file.


hydro (dict) – Hydrometeor classification field.


Besic, N., Figueras i Ventura, J., Grazioli, J., Gabella, M., Germann, U., and Berne, A.: Hydrometeor classification through statistical clustering of polarimetric radar measurements: a semi-supervised approach, Atmos. Meas. Tech., 9, 4425-4445, doi:10.5194/amt-9-4425-2016, 2016


The default hydrometeor classification is valid for C-band radars. For X-band radars, if frequency information is not present in the radar.instrument_parameters, a warning that the algorithm is defaulting to the C band is printed.

If the radar frequency information is missing from the radar object, you can add it in radar.instrument_parameters, as follows: .. code-block:: python

radar.instrument_parameters[“frequency”] = {

“long_name”: “Radar frequency”, “units”: “Hz”, “data”: [9.2e9]