pyart.retrieve.hydroclass_semisupervised#
- pyart.retrieve.hydroclass_semisupervised(radar, hydro_names=('AG', 'CR', 'LR', 'RP', 'RN', 'VI', 'WS', 'MH', 'IH/HDG'), var_names=('Zh', 'ZDR', 'KDP', 'RhoHV', 'relH'), mass_centers=None, weights=array([1., 1., 1., 0.75, 0.5]), value=50.0, lapse_rate=-6.5, refl_field=None, zdr_field=None, rhv_field=None, kdp_field=None, temp_field=None, iso0_field=None, hydro_field=None, entropy_field=None, radar_freq=None, temp_ref='temperature', compute_entropy=False, output_distances=False, vectorize=False)[source]#
Classifies precipitation echoes into hydrometeor types.
The hydroclass_semisupervised function classifies precipitation echoes in the polarimetric radar data into 9 hydrometeor types using a semi-supervised approach (Besic et al., 2016).
- Parameters:
radar (radar) – Radar object.
hydro_names (array of str) – name of the types of hydrometeors
var_names (array of str) – name of the variables
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. Ordered by [dBZ, ZDR, KDP, RhoHV, H_ISO0]
value (float) – The value controlling the rate of decay in the distance transformation
lapse_rate (float) – The decrease in temperature for each vertical km [deg/km]
refl_field, zdr_field, rhv_field, kdp_field, temp_field, iso0_field (str) – Inputs. Field names within the radar object which represent the horizonal reflectivity, the differential reflectivity, the copolar correlation coefficient, the specific differential phase, the temperature (in deg celsius) and the height respect to the iso0 fields. 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) – 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.
entropy_field (str) – Output. Field name which represents the entropy class field. A value of None will use the default field name as defined in the Py-ART configuration file.
radar_freq (str, optional) – Radar frequency in Hertz (Hz) used for classification. This parameter will be ignored, if the radar object has frequency information.
temp_ref (str) – the field use as reference for temperature. Can be either temperature or height_over_iso0
compute_entropy (bool) – If true, the entropy is computed
output_distances (bool) – If true, the normalized distances to the centroids for each hydrometeor are provided as output
vectorize (bool) – If true, a vectorized version of the class assignation is going to be used
- Returns:
fields_dict (dict) – Dictionary containing the retrieved fields
The output directionary field_dict has the following keys
hydro (dict) –
- Hydrometeor classification.
0: Not classified
1: Aggregates
2: Ice crystals
3: Light rain
4: Rimed particles
5: Rain
6: Vertically oriented ice
7: Wet snow
8: Melting hail
9: Dry hail or high-density graupel
if compute_entropy is True
entropy (dict) – Shannon entropy of the hydrometeor demixing
if output_distances is True
propX (dict) – Proportion of a given hydrometeor class in the polarimetric decomposition of a radar volume
References
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
Besic, N., Gehring, J., Praz, C., Figueras i Ventura, J., Grazioli, J., Gabella, M., Germann, U., and Berne, A.: Unraveling hydrometeor mixtures in polarimetric radar measurements, Atmos. Meas. Tech., 11, 4847–4866, https://doi.org/10.5194/amt-11-4847-2018, 2018.
Usage#
Notes
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, the user-supplied radar_freq will be used with a warning. If both radar.instrument_parameters and radar_freq parameter are missing, the algorithm defaults to the C band.
If the radar frequency information is missing from the radar object, you can add it in radar.instrument_parameters, as follows: