emc2.simulator.radar_moments.calc_radar_micro

emc2.simulator.radar_moments.calc_radar_micro(instrument, model, z_values, atm_ext, OD_from_sfc=True, hyd_types=None, mie_for_ice=True, parallel=True, chunk=None, calc_spectral_width=True, **kwargs)[source]

Calculates the first 3 radar moments (reflectivity, mean Doppler velocity and spectral width) in a given column for the given radar using the microphysics (MG2) logic.

Parameters:
instrument: Instrument

The instrument to simulate. The instrument must be a lidar.

model: Model

The model to generate the parameters for.

z_values: ndarray

model output height array in m.

atm_ext: ndarray

atmospheric attenuation per layer (dB/km).

OD_from_sfc: bool

If True, then calculate optical depth from the surface.

hyd_types: list or None

list of hydrometeor names to include in calcuation. using default Model subclass types if None.

mie_for_ice: bool

If True, using bulk LUTs generated using solid ice spheres (Mie) calculations (e.g., consistent with the ice treatment in MG1 through MG2). Otherwise, using bulk LUTs that consider ice properties, e.g., the C6 8-column severly roughned aggregate for E3 or the m-D A-D for CESM and E3SMv1, consistent with the radiation schemes of these models. This parameter is set to False if mcphys_scheme == P3 since ice shape is integrated into P3, which also affects mu, etc. and therefore the bulk LUT behavior in a similar manner to how the P3 LUTs are integrated into EMC².

parallel: bool

If True, use parallelism in calculating lidar parameters.

chunk: int or None

The number of entries to process in one parallel loop. None will send all of the entries to the Dask worker queue at once. Sometimes, Dask will freeze if too many tasks are sent at once due to memory issues, so adjusting this number might be needed if that happens.

calc_spectral_width: bool

If False, skips spectral width calculations since these are not always needed for an application and are the most computationally expensive. Default is True.

Additonal keyword arguments are passed into
:py:func:`emc2.simulator.psd.calc_and_set_psd_params`.
:py:func:`emc2.simulator.lidar_moments.accumulate_attenuation`.
Returns:
model: emc2.core.Model()

The model with the added simulated lidar parameters.