particle_bulkpropRadarOnionPeeling
- Workspace.particle_bulkpropRadarOnionPeeling(self: pyarts.arts._Workspace, particle_bulkprop_field: Optional[Union[pyarts.arts.WorkspaceVariable, pyarts.arts.Tensor4]] = self.particle_bulkprop_field, particle_bulkprop_names: Optional[Union[pyarts.arts.WorkspaceVariable, pyarts.arts.ArrayOfString]] = self.particle_bulkprop_names, atmosphere_dim: Optional[Union[pyarts.arts.WorkspaceVariable, pyarts.arts.Index]] = self.atmosphere_dim, p_grid: Optional[Union[pyarts.arts.WorkspaceVariable, pyarts.arts.Vector]] = self.p_grid, lat_grid: Optional[Union[pyarts.arts.WorkspaceVariable, pyarts.arts.Vector]] = self.lat_grid, lon_grid: Optional[Union[pyarts.arts.WorkspaceVariable, pyarts.arts.Vector]] = self.lon_grid, t_field: Optional[Union[pyarts.arts.WorkspaceVariable, pyarts.arts.Tensor3]] = self.t_field, z_field: Optional[Union[pyarts.arts.WorkspaceVariable, pyarts.arts.Tensor3]] = self.z_field, vmr_field: Optional[Union[pyarts.arts.WorkspaceVariable, pyarts.arts.Tensor4]] = self.vmr_field, z_surface: Optional[Union[pyarts.arts.WorkspaceVariable, pyarts.arts.Matrix]] = self.z_surface, atmfields_checked: Optional[Union[pyarts.arts.WorkspaceVariable, pyarts.arts.Index]] = self.atmfields_checked, atmgeom_checked: Optional[Union[pyarts.arts.WorkspaceVariable, pyarts.arts.Index]] = self.atmgeom_checked, f_grid: Optional[Union[pyarts.arts.WorkspaceVariable, pyarts.arts.Vector]] = self.f_grid, propmat_clearsky_agenda: Optional[Union[pyarts.arts.WorkspaceVariable, pyarts.arts.Agenda]] = self.propmat_clearsky_agenda, scat_species: Optional[Union[pyarts.arts.WorkspaceVariable, pyarts.arts.ArrayOfString]] = self.scat_species, invtable: Union[pyarts.arts.WorkspaceVariable, pyarts.arts.ArrayOfGriddedField3], incangles: Union[pyarts.arts.WorkspaceVariable, pyarts.arts.Matrix], dBZe: Union[pyarts.arts.WorkspaceVariable, pyarts.arts.Tensor3], dbze_noise: Optional[Union[pyarts.arts.WorkspaceVariable, pyarts.arts.Numeric]] = -99, h_clutter: Union[pyarts.arts.WorkspaceVariable, pyarts.arts.Matrix], fill_clutter: Optional[Union[pyarts.arts.WorkspaceVariable, pyarts.arts.Index]] = 0, t_phase: Optional[Union[pyarts.arts.WorkspaceVariable, pyarts.arts.Numeric]] = 273.15, wc_max: Optional[Union[pyarts.arts.WorkspaceVariable, pyarts.arts.Numeric]] = 10e-3, wc_clip: Optional[Union[pyarts.arts.WorkspaceVariable, pyarts.arts.Numeric]] = 5e-3, do_atten_abs: Optional[Union[pyarts.arts.WorkspaceVariable, pyarts.arts.Index]] = 1, do_atten_hyd: Optional[Union[pyarts.arts.WorkspaceVariable, pyarts.arts.Index]] = 1, atten_hyd_scaling: Optional[Union[pyarts.arts.WorkspaceVariable, pyarts.arts.Numeric]] = 0.5, atten_hyd_max: Optional[Union[pyarts.arts.WorkspaceVariable, pyarts.arts.Numeric]] = 3, verbosity: Optional[Union[pyarts.arts.WorkspaceVariable, pyarts.arts.Verbosity]] = self.verbosity) None
Inverts radar reflectivities by in an onion peeling manner.
The method assumes space-based measurements and invert one altitude at the time, based on a pre-calculated inversion table (
invtable
) and starting at the top of the atmosphere. If attenuation is completely ignored, the table is effectively used as a look-up table to map dBZe to hydrometeor values. The method considers attenuation by default, where extinction due to hydrometeors is taken from the table and the one due toabs_species
is obtained bypropmat_clearsky_agenda
.The inversion table consists of two GriddedField3. The first field shall match liquid hydrometeors and is applied for temperatures above
t_phase
. The second field is applied for lower temperatures and shall thus correspond to ice hydrometeors.The size of each field is (2,ndb,nt). The two page dimensions match the hydrometeor property to retrieve and extinction, respectively. The table shall hold the 10-logarithm of the property, such as log10(IWC). ndb is the number of dBZe values in the table and nt the number of temperatures. The table is interpolated in temperature in a nearest neighbour fashion, while in a linear interpolation is applied in the dBZe dimension.
The field of radar reflectivities (
dBZe
) shall cover the complete atmosphere and then match e.g.t_field
in size. The observation geometry is here specified by giving the incidence angle for each profile of dBZe values (byincangles
). A flat Earth approximation is applied inside the method.All values below
dbze_noise
are treated as pure noise andparticle_bulkprop_field
is set to zero for these positions. The comparison todbze_noise
is done with uncorrected values.Further, all values at altitudes below z_surface + h_clutter are assumed to be surface clutter and are rejected. If
fill_clutter
is set to 1, the retrieval just above the clutter zone is assumed valid also below and is copied to all altitudes below (also for altitudes below the surface).Unfiltered clutter can cause extremely high retrived water contents. The GIN
wc_max
defines an upper limit for reasonable water contents. Retrievals ending up above this value are set to zero. Values belowwc_max
but abovewc_clip
, are set towc_clip
.Significant radar echos (>dbze_noise and above clutter zone) are assumed to match liquid hydrometeors for temperatures >=
t_phase
and ice ones for lower temperatures.Default is to consider attenuation of both hydrometeors and absorption species. These two sources to attenuation can be ignored by setting
do_atten_hyd
anddo_atten_abs
to zero, respectively.Default is to consider hydrometeor attenuation, but there could be two reasons to ignore it. It can cause a “run away” effect in the retrievals. Ignoring it can also compensate for impact of multiple scattering in space-based observations, as shown by: Matrosov and Battaglia, GRL, 2009. However, ignoring the hydrometeor attenuation totally gives a too high compensating effect and the GIN
atten_hyd_scaling
allows to test intermediate compensations. This GIN matches the GIN pext_scaling ofiyRadarSingleScat()
, but they have different default values. The default in this method follows the results for CloudSat in Matrosov and Battaglia. Please note thatdo_atten_hyd
must be true to applyatten_hyd_scaling
.Even with
atten_hyd_scaling
below 1, there could be a run-away in the estimated attenuation, andatten_hyd_max
stops this by setting a maximum value to the hydrometeor attenuation.Author(s): Patrick Eriksson
- Parameters:
particle_bulkprop_field (Tensor4, optional) – Container for various data that describes scattering bulk properties. See
particle_bulkprop_field
, defaults toself.particle_bulkprop_field
[OUT]particle_bulkprop_names (ArrayOfString, optional) – Identification of the data in
particle_bulkprop_field
. Seeparticle_bulkprop_names
, defaults toself.particle_bulkprop_names
[OUT]atmosphere_dim (Index, optional) – The atmospheric dimensionality (1-3). See
atmosphere_dim
, defaults toself.atmosphere_dim
[IN]p_grid (Vector, optional) – The pressure grid. See
p_grid
, defaults toself.p_grid
[IN]lat_grid (Vector, optional) – The latitude grid. See
lat_grid
, defaults toself.lat_grid
[IN]lon_grid (Vector, optional) – The longitude grid. See
lon_grid
, defaults toself.lon_grid
[IN]t_field (Tensor3, optional) – The field of atmospheric temperatures. See
t_field
, defaults toself.t_field
[IN]z_field (Tensor3, optional) – The field of geometrical altitudes. See
z_field
, defaults toself.z_field
[IN]vmr_field (Tensor4, optional) – VMR field. See
vmr_field
, defaults toself.vmr_field
[IN]z_surface (Matrix, optional) – The surface altitude. See
z_surface
, defaults toself.z_surface
[IN]atmfields_checked (Index, optional) – OK-flag for atmospheric grids and (physical) fields. See
atmfields_checked
, defaults toself.atmfields_checked
[IN]atmgeom_checked (Index, optional) – OK-flag for the geometry of the model atmosphere. See
atmgeom_checked
, defaults toself.atmgeom_checked
[IN]f_grid (Vector, optional) – The frequency grid for monochromatic pencil beam calculations. See
f_grid
, defaults toself.f_grid
[IN]propmat_clearsky_agenda (Agenda, optional) – Calculate the absorption coefficient matrix. See
propmat_clearsky_agenda
, defaults toself.propmat_clearsky_agenda
[IN]scat_species (ArrayOfString, optional) – Array of Strings defining the scattering species to consider. See
scat_species
, defaults toself.scat_species
[IN]invtable (ArrayOfGriddedField3) – Inversion table, see above. [IN]
incangles (Matrix) – Incidence angles. [IN]
dBZe (Tensor3) – Field of radar reflectivities, in dBZe. [IN]
dbze_noise (Numeric, optional) – Noise level. See above. Defaults to
-99
[IN]h_clutter (Matrix) – Height of clutter zone. Either same size as
z_surface
or a single value. In the later case, that value is applied at all positions. [IN]fill_clutter (Index, optional) – Flag to fill clutter zone, by copying retrieval just above it. Defaults to
0
[IN]t_phase (Numeric, optional) – Phase boundary temperature. See above. Defaults to
273.15
[IN]wc_max (Numeric, optional) – Max reasonable water content. Defaults to
10e-3
[IN]wc_clip (Numeric, optional) – Clip value for water content retrievals. Defaults to
5e-3
[IN]do_atten_abs (Index, optional) – Flag to consider attenuation due to hydrometeors. Defaults to
1
[IN]do_atten_hyd (Index, optional) – Flag to consider attenuation due to absorption species. Defaults to
1
[IN]atten_hyd_scaling (Numeric, optional) – Hydrometeor attenuation scaling factor. Defaults to
0.5
[IN]atten_hyd_max (Numeric, optional) – Hydrometeor attenuation not allowed to pass this value [dB]. Defaults to
3
[IN]verbosity (Verbosity) – ARTS verbosity. See
verbosity
, defaults toself.verbosity
[IN]