emc2.simulator.radar_moments.calc_radar_moments

emc2.simulator.radar_moments.calc_radar_moments(instrument, model, is_conv, OD_from_sfc=True, hyd_types=None, parallel=True, chunk=None, mie_for_ice=False, use_rad_logic=True, use_empiric_calc=False, calc_spectral_width=True, **kwargs)[source]

Calculates the reflectivity, doppler velocity, and spectral width in a given column for the given radar.

NOTE: When starting a parallel task (in microphysics approach), it is recommended to wrap the top-level python script calling the EMC^2 processing (‘lines_of_code’) with the following command (just below the ‘import’ statements):

if __name__ == __main__:
    lines_of_code
Parameters:
instrument: Instrument

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

model: Model

The model to generate the parameters for.

is_conv: bool

True if the cell is convective

z_field: str

The name of the altitude field to use.

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 calculation. using default Model subclass types if None.

parallel: bool

If True, then use parallelism to calculate each column quantity.

chunk: None or int

If using parallel processing, only send this number of time periods to the parallel loop at one time. Sometimes Dask will crash if there are too many tasks in the queue, so setting this value will help avoid that.

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.

mie_for_ice: bool

If True, using full mie caculation LUTs. Otherwise, currently using the C6 scattering LUTs for 8-column aggregate at 270 K.

use_rad_logic: bool

When True using radiation scheme logic in calculations, which includes using the cloud fraction fields utilized in a model radiative scheme, as well as bulk scattering LUTs (effective radii dependent scattering variables). Otherwise, and only in the stratiform case, using the microphysics scheme logic, which includes the cloud fraction fields utilized by the model microphysics scheme and single particle scattering LUTs. NOTE: because of its single-particle calculation method, the microphysics approach is significantly slower than the radiation approach. Also, the cloud fraction logic in these schemes does not necessarily fully overlap.

use_empirical_calc: bool

When True using empirical relations from literature for the fwd calculations (the cloud fraction still follows the scheme logic set by use_rad_logic).

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

The xarray Dataset containing the calculated radar moments.