iyRadarSingleScat

Workspace.iyRadarSingleScat(self: pyarts.arts._Workspace, iy: pyarts.arts.WorkspaceVariable | pyarts.arts.Matrix | None = self.iy, iy_aux: pyarts.arts.WorkspaceVariable | pyarts.arts.ArrayOfMatrix | None = self.iy_aux, diy_dx: pyarts.arts.WorkspaceVariable | pyarts.arts.ArrayOfTensor3 | None = self.diy_dx, ppvar_p: pyarts.arts.WorkspaceVariable | pyarts.arts.Vector | None = self.ppvar_p, ppvar_t: pyarts.arts.WorkspaceVariable | pyarts.arts.Vector | None = self.ppvar_t, ppvar_vmr: pyarts.arts.WorkspaceVariable | pyarts.arts.Matrix | None = self.ppvar_vmr, ppvar_wind: pyarts.arts.WorkspaceVariable | pyarts.arts.Matrix | None = self.ppvar_wind, ppvar_mag: pyarts.arts.WorkspaceVariable | pyarts.arts.Matrix | None = self.ppvar_mag, ppvar_pnd: pyarts.arts.WorkspaceVariable | pyarts.arts.Matrix | None = self.ppvar_pnd, ppvar_f: pyarts.arts.WorkspaceVariable | pyarts.arts.Matrix | None = self.ppvar_f, stokes_dim: pyarts.arts.WorkspaceVariable | pyarts.arts.Index | None = self.stokes_dim, f_grid: pyarts.arts.WorkspaceVariable | pyarts.arts.Vector | None = self.f_grid, atmosphere_dim: pyarts.arts.WorkspaceVariable | pyarts.arts.Index | None = self.atmosphere_dim, p_grid: pyarts.arts.WorkspaceVariable | pyarts.arts.Vector | None = self.p_grid, t_field: pyarts.arts.WorkspaceVariable | pyarts.arts.Tensor3 | None = self.t_field, nlte_field: pyarts.arts.WorkspaceVariable | pyarts.arts.EnergyLevelMap | None = self.nlte_field, vmr_field: pyarts.arts.WorkspaceVariable | pyarts.arts.Tensor4 | None = self.vmr_field, abs_species: pyarts.arts.WorkspaceVariable | pyarts.arts.ArrayOfArrayOfSpeciesTag | None = self.abs_species, wind_u_field: pyarts.arts.WorkspaceVariable | pyarts.arts.Tensor3 | None = self.wind_u_field, wind_v_field: pyarts.arts.WorkspaceVariable | pyarts.arts.Tensor3 | None = self.wind_v_field, wind_w_field: pyarts.arts.WorkspaceVariable | pyarts.arts.Tensor3 | None = self.wind_w_field, mag_u_field: pyarts.arts.WorkspaceVariable | pyarts.arts.Tensor3 | None = self.mag_u_field, mag_v_field: pyarts.arts.WorkspaceVariable | pyarts.arts.Tensor3 | None = self.mag_v_field, mag_w_field: pyarts.arts.WorkspaceVariable | pyarts.arts.Tensor3 | None = self.mag_w_field, cloudbox_on: pyarts.arts.WorkspaceVariable | pyarts.arts.Index | None = self.cloudbox_on, cloudbox_limits: pyarts.arts.WorkspaceVariable | pyarts.arts.ArrayOfIndex | None = self.cloudbox_limits, pnd_field: pyarts.arts.WorkspaceVariable | pyarts.arts.Tensor4 | None = self.pnd_field, dpnd_field_dx: pyarts.arts.WorkspaceVariable | pyarts.arts.ArrayOfTensor4 | None = self.dpnd_field_dx, scat_species: pyarts.arts.WorkspaceVariable | pyarts.arts.ArrayOfString | None = self.scat_species, scat_data: pyarts.arts.WorkspaceVariable | pyarts.arts.ArrayOfArrayOfSingleScatteringData | None = self.scat_data, scat_data_checked: pyarts.arts.WorkspaceVariable | pyarts.arts.Index | None = self.scat_data_checked, iy_aux_vars: pyarts.arts.WorkspaceVariable | pyarts.arts.ArrayOfString | None = self.iy_aux_vars, jacobian_do: pyarts.arts.WorkspaceVariable | pyarts.arts.Index | None = self.jacobian_do, jacobian_quantities: pyarts.arts.WorkspaceVariable | pyarts.arts.ArrayOfRetrievalQuantity | None = self.jacobian_quantities, ppath: pyarts.arts.WorkspaceVariable | pyarts.arts.Ppath | None = self.ppath, iy_transmitter: pyarts.arts.WorkspaceVariable | pyarts.arts.Matrix | None = self.iy_transmitter, propmat_clearsky_agenda: pyarts.arts.WorkspaceVariable | pyarts.arts.Agenda | None = self.propmat_clearsky_agenda, water_p_eq_agenda: pyarts.arts.WorkspaceVariable | pyarts.arts.Agenda | None = self.water_p_eq_agenda, rte_alonglos_v: pyarts.arts.WorkspaceVariable | pyarts.arts.Numeric | None = self.rte_alonglos_v, trans_in_jacobian: pyarts.arts.WorkspaceVariable | pyarts.arts.Index | None = 0, pext_scaling: pyarts.arts.WorkspaceVariable | pyarts.arts.Numeric | None = 1, t_interp_order: pyarts.arts.WorkspaceVariable | pyarts.arts.Index | None = 1, verbosity: pyarts.arts.WorkspaceVariable | pyarts.arts.Verbosity | None = self.verbosity) None

Simulation of radar, restricted to single scattering.

The WSM treats e.g. radar measurements of cloud and precipitation, on the condition that multiple scattering can be ignored. Beside the direct back-scattering, the two-way attenuation by gases and particles is considered. Surface scattering/clutter is ignored.

The method could potentially be used for lidars, but multiple scattering poses here a must stronger constrain for the range of applications.

The method shall be used with yRadar(), NOT with yCalc().

The ppath provided should be calculated including cloudbox interior:

ppathCalc( cloudbox_on=0 )

The method returns the back-scattering for each point of ppath. Several frequencies can be treated in parallel. The size of iy is [ nf * np, stokes_dim ], where nf is the length of f_grid and np is the number of path points. The data are stored in blocks of [ np, stokes_dim ]. That is, all the results for the first frequency occupy the np first rows of iy etc.

The polarisation state of the transmitted pulse is taken from iy_transmitter. If the radar transmits several polarisations at the same frequency, you need to handle this by using two frequencies in f_grid, but these can be almost identical.

This method does not consider iy_unit_radar. Unit changes are instead applied in yRadar(). The output of this method matches the option “1”.

The extinction due to particles can be scaled (by pext_scaling), which could be of interest when e.g. characterising inversions or trying to compensate for ignored multiple scattering. The later is commented further for particle_bulkpropRadarOnionPeeling().

For Jacobian calculations the default is to assume that the transmittance is unaffected by the retrieval quantities. This is done to save computational time, and should be a valid approximation for the single-scattering conditions. Set trans_in_jacobian to 1 to activate full Jacobian calculations.

Some auxiliary radiative transfer quantities can be obtained. Auxiliary quantities are selected by iy_aux_vars and returned by iy_aux. Valid choices for auxiliary data are:

  • "Radiative background":

    Index value flagging the radiative background. The following coding is used: 0=space, 1=surface and 2=cloudbox (the last case should not occur!). Only column matching first Stokes element filled. Other columns are set to 0.

  • "Backscattering":

    The unattenuated back-scattering. That is, as iy but with no attenuated applied. Here all columns are filled. By combing iy and this auxiliary variable, the total two-way attenuation can be derived.

  • "Abs species extinction":

    Extinction due to abs_species at each ppath point, taken as the diagonal of the local extinction matrix.

  • "Particle extinction":

    Extinction due to particles at each ppath point, taken as the diagonal of the local extinction matrix. The retunred values includes pext_scaling

Author(s): Patrick Eriksson

Parameters:
  • iy (Matrix, optional) – Monochromatic pencil beam radiance spectrum. See iy, defaults to self.iy [OUT]

  • iy_aux (ArrayOfMatrix, optional) – Data auxiliary to iy. See iy_aux, defaults to self.iy_aux [OUT]

  • diy_dx (ArrayOfTensor3, optional) – Derivative of iy with respect to retrieval quantities. See diy_dx, defaults to self.diy_dx [OUT]

  • ppvar_p (Vector, optional) – Pressure along the propagation path. See ppvar_p, defaults to self.ppvar_p [OUT]

  • ppvar_t (Vector, optional) – Temperature along the propagation path. See ppvar_t, defaults to self.ppvar_t [OUT]

  • ppvar_vmr (Matrix, optional) – VMR values along the propagation path. See ppvar_vmr, defaults to self.ppvar_vmr [OUT]

  • ppvar_wind (Matrix, optional) – Winds along the propagation path. See ppvar_wind, defaults to self.ppvar_wind [OUT]

  • ppvar_mag (Matrix, optional) – Magnetic field along the propagation path. See ppvar_mag, defaults to self.ppvar_mag [OUT]

  • ppvar_pnd (Matrix, optional) – PND values along the propagation path. See ppvar_pnd, defaults to self.ppvar_pnd [OUT]

  • ppvar_f (Matrix, optional) – Doppler adjusted frequencies along the propagation path. See ppvar_f, defaults to self.ppvar_f [OUT]

  • stokes_dim (Index, optional) – The dimensionality of the Stokes vector (1-4). See stokes_dim, defaults to self.stokes_dim [IN]

  • f_grid (Vector, optional) – The frequency grid for monochromatic pencil beam calculations. See f_grid, defaults to self.f_grid [IN]

  • atmosphere_dim (Index, optional) – The atmospheric dimensionality (1-3). See atmosphere_dim, defaults to self.atmosphere_dim [IN]

  • p_grid (Vector, optional) – The pressure grid. See p_grid, defaults to self.p_grid [IN]

  • t_field (Tensor3, optional) – The field of atmospheric temperatures. See t_field, defaults to self.t_field [IN]

  • nlte_field (EnergyLevelMap, optional) – The field of NLTE temperatures and/or ratios. See nlte_field, defaults to self.nlte_field [IN]

  • vmr_field (Tensor4, optional) – VMR field. See vmr_field, defaults to self.vmr_field [IN]

  • abs_species (ArrayOfArrayOfSpeciesTag, optional) – Tag groups for gas absorption. See abs_species, defaults to self.abs_species [IN]

  • wind_u_field (Tensor3, optional) – Zonal component of the wind field. See wind_u_field, defaults to self.wind_u_field [IN]

  • wind_v_field (Tensor3, optional) – Meridional component of the magnetic field. See wind_v_field, defaults to self.wind_v_field [IN]

  • wind_w_field (Tensor3, optional) – Vertical wind component field. See wind_w_field, defaults to self.wind_w_field [IN]

  • mag_u_field (Tensor3, optional) – Zonal component of the magnetic field. See mag_u_field, defaults to self.mag_u_field [IN]

  • mag_v_field (Tensor3, optional) – Meridional component of the magnetic field. See mag_v_field, defaults to self.mag_v_field [IN]

  • mag_w_field (Tensor3, optional) – Vertical component of the magnetic field. See mag_w_field, defaults to self.mag_w_field [IN]

  • cloudbox_on (Index, optional) – Flag to activate the cloud box. See cloudbox_on, defaults to self.cloudbox_on [IN]

  • cloudbox_limits (ArrayOfIndex, optional) – The limits of the cloud box. See cloudbox_limits, defaults to self.cloudbox_limits [IN]

  • pnd_field (Tensor4, optional) – Particle number density field. See pnd_field, defaults to self.pnd_field [IN]

  • dpnd_field_dx (ArrayOfTensor4, optional) – Partial derivatives of pnd_field. See dpnd_field_dx, defaults to self.dpnd_field_dx [IN]

  • scat_species (ArrayOfString, optional) – Array of Strings defining the scattering species to consider. See scat_species, defaults to self.scat_species [IN]

  • scat_data (ArrayOfArrayOfSingleScatteringData, optional) – Array of single scattering data. See scat_data, defaults to self.scat_data [IN]

  • scat_data_checked (Index, optional) – OK-flag for scat_data. See scat_data_checked, defaults to self.scat_data_checked [IN]

  • iy_aux_vars (ArrayOfString, optional) – Selection of quantities for iy_aux and when applicable also y_aux. See iy_aux_vars, defaults to self.iy_aux_vars [IN]

  • jacobian_do (Index, optional) – Flag to activate (clear-sky) Jacobian calculations. See jacobian_do, defaults to self.jacobian_do [IN]

  • jacobian_quantities (ArrayOfRetrievalQuantity, optional) – The retrieval quantities in the Jacobian matrix. See jacobian_quantities, defaults to self.jacobian_quantities [IN]

  • ppath (Ppath, optional) – The propagation path for one line-of-sight. See ppath, defaults to self.ppath [IN]

  • iy_transmitter (Matrix, optional) – Monochromatic pencil beam radiance spectrum of transmitter signal. See iy_transmitter, defaults to self.iy_transmitter [IN]

  • propmat_clearsky_agenda (Agenda, optional) – Calculate the absorption coefficient matrix. See propmat_clearsky_agenda, defaults to self.propmat_clearsky_agenda [IN]

  • water_p_eq_agenda (Agenda, optional) – Calculation of the saturation pressure of water. See water_p_eq_agenda, defaults to self.water_p_eq_agenda [IN]

  • rte_alonglos_v (Numeric, optional) – Velocity along the line-of-sight to consider for a RT calculation. See rte_alonglos_v, defaults to self.rte_alonglos_v [IN]

  • trans_in_jacobian (Index, optional) – Flag determining if change in transmittance is considered in calculation of the Jacobian or not. Defaults to 0 [IN]

  • pext_scaling (Numeric, optional) – Particle extinction is scaled with this value. A value inside [0,2]. Set it to 0 if you want to remove particle extinction totally. Defaults to 1 [IN]

  • t_interp_order (Index, optional) – Interpolation order of temperature for scattering data (so far only applied in phase matrix, not in extinction and absorption. Defaults to 1 [IN]

  • verbosity (Verbosity) – ARTS verbosity. See verbosity, defaults to self.verbosity [IN]