ARTS  2.2.66
m_cloudradar.cc File Reference

Workspace functions related to simulation of cloud radars. More...

#include <cmath>
#include <stdexcept>
#include "arts.h"
#include "auto_md.h"
#include "complex.h"
#include "logic.h"
#include "messages.h"
#include "montecarlo.h"
#include "refraction.h"
#include "rte.h"
#include "sensor.h"
Include dependency graph for m_cloudradar.cc:

Go to the source code of this file.

Functions

void iyCloudRadar (Workspace &ws, Matrix &iy, ArrayOfTensor4 &iy_aux, Ppath &ppath, const Index &stokes_dim, const Vector &f_grid, const Index &atmosphere_dim, const Vector &p_grid, const Tensor3 &z_field, const Tensor3 &t_field, const Tensor4 &vmr_field, const Tensor3 &wind_u_field, const Tensor3 &wind_v_field, const Tensor3 &wind_w_field, const Tensor3 &mag_u_field, const Tensor3 &mag_v_field, const Tensor3 &mag_w_field, const Index &cloudbox_on, const ArrayOfIndex &cloudbox_limits, const Tensor4 &pnd_field, const Index &use_mean_scat_data, const ArrayOfSingleScatteringData &scat_data_array, const Matrix &particle_masses, const String &iy_unit, const ArrayOfString &iy_aux_vars, const Index &jacobian_do, const Agenda &ppath_agenda, const Agenda &propmat_clearsky_agenda, const Agenda &iy_transmitter_agenda, const Index &iy_agenda_call1, const Tensor3 &iy_transmission, const Vector &rte_pos, const Vector &rte_los, const Numeric &rte_alonglos_v, const Numeric &ppath_lraytrace, const Numeric &ze_tref, const Verbosity &verbosity)
 WORKSPACE METHOD: iyCloudRadar. More...
 
void yCloudRadar (Workspace &ws, Vector &y, ArrayOfVector &y_aux, const Index &atmfields_checked, const Index &atmgeom_checked, const ArrayOfString &iy_aux_vars, const Index &stokes_dim, const Vector &f_grid, const Tensor3 &t_field, const Tensor3 &z_field, const Tensor4 &vmr_field, const Index &cloudbox_on, const Index &cloudbox_checked, const Matrix &sensor_pos, const Matrix &sensor_los, const Index &sensor_checked, const Agenda &iy_main_agenda, const ArrayOfArrayOfIndex &sensor_pol_array, const Vector &range_bins, const Verbosity &)
 WORKSPACE METHOD: yCloudRadar. More...
 

Variables

const Numeric PI
 
const Numeric SPEED_OF_LIGHT
 

Detailed Description

Workspace functions related to simulation of cloud radars.

Author
Patrick Eriksson patri.nosp@m.ck.e.nosp@m.rikss.nosp@m.on@c.nosp@m.halme.nosp@m.rs.s.nosp@m.e
Date
2010-10-31

These functions are listed in the doxygen documentation as entries of the file auto_md.h.

Definition in file m_cloudradar.cc.

Function Documentation

◆ iyCloudRadar()

void iyCloudRadar ( Workspace ws,
Matrix iy,
ArrayOfTensor4 iy_aux,
Ppath ppath,
const Index stokes_dim,
const Vector f_grid,
const Index atmosphere_dim,
const Vector p_grid,
const Tensor3 z_field,
const Tensor3 t_field,
const Tensor4 vmr_field,
const Tensor3 wind_u_field,
const Tensor3 wind_v_field,
const Tensor3 wind_w_field,
const Tensor3 mag_u_field,
const Tensor3 mag_v_field,
const Tensor3 mag_w_field,
const Index cloudbox_on,
const ArrayOfIndex cloudbox_limits,
const Tensor4 pnd_field,
const Index use_mean_scat_data,
const ArrayOfSingleScatteringData scat_data_array,
const Matrix particle_masses,
const String iy_unit,
const ArrayOfString iy_aux_vars,
const Index jacobian_do,
const Agenda ppath_agenda,
const Agenda propmat_clearsky_agenda,
const Agenda iy_transmitter_agenda,
const Index iy_agenda_call1,
const Tensor3 iy_transmission,
const Vector rte_pos,
const Vector rte_los,
const Numeric rte_alonglos_v,
const Numeric ppath_lraytrace,
const Numeric ze_tref,
const Verbosity verbosity 
)

WORKSPACE METHOD: iyCloudRadar.

Simulation of cloud radars, restricted to single scattering.

The WSM treats radar measurements of cloud and precipitation, on the condition that multiple scattering can be ignored. Beside the direct backsacttering, the two-way attenuation by gases and particles is considered. Surface scattering is ignored. Further details are given in AUG.

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

The method can be used with iyCalc, but not with yCalc. In the later case, use instead yCloudRadar.

The method returns the backscattering 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_agenda*, see further iy_transmitterCloudRadar If the radar transmits several polarisations at the same frequency, you need to handle this by using two frequencies in f_grid, but but these can be almost identical.

The options iy_unit are: <br> "1" : Backscatter coefficient. Unit is 1/(m*sr). Without <br> attenuation, this equals the scattering matrix value for <br> the backward direction. See further AUG. <br> "Ze" : Equivalent reflectivity. I the conversion, "K" is <br> calculated using the refractive index for liquid water, <br> at the temperature defined by ze_tref.

No Jacobian quantities are yet handled.

The following auxiliary data can be obtained: <br> "Pressure": The pressure along the propagation path. <br> Size: [1,1,1,np]. <br> "Temperature": The temperature along the propagation path. <br> Size: [1,1,1,np]. <br> "Backscattering": The un-attenuated backscattering. Unit <br> follows iy_unit. Size: [nf,ns,1,np]. <br> "Transmission": The single-way transmission matrix from the <br> transmitter to each propagation path point. The matrix is <br> valid for the photon direction. Size: [nf,ns,ns,np]. <br> "Round-trip time": The time for the pulse to propagate. For a <br> totally correct result, refraction must be considered (in <br> pppath_agenda). Size: [1,1,1,np]. <br> "PND, type X": The particle number density for particle type X <br> (ie. corresponds to book X in pnd_field). Size: [1,1,1,np]. <br> "Mass content, X": The particle content for mass category X. <br> This corresponds to column X in particle_masses (zero- <br> based indexing). Size: [1,1,1,np].

Author
Patrick Eriksson
Parameters
[in,out]wsWorkspace
[out]iyWS Output
[out]iy_auxWS Output
[out]ppathWS Output
[in]stokes_dimWS Input
[in]f_gridWS Input
[in]atmosphere_dimWS Input
[in]p_gridWS Input
[in]z_fieldWS Input
[in]t_fieldWS Input
[in]vmr_fieldWS Input
[in]wind_u_fieldWS Input
[in]wind_v_fieldWS Input
[in]wind_w_fieldWS Input
[in]mag_u_fieldWS Input
[in]mag_v_fieldWS Input
[in]mag_w_fieldWS Input
[in]cloudbox_onWS Input
[in]cloudbox_limitsWS Input
[in]pnd_fieldWS Input
[in]use_mean_scat_dataWS Input
[in]scat_data_arrayWS Input
[in]particle_massesWS Input
[in]iy_unitWS Input
[in]iy_aux_varsWS Input
[in]jacobian_doWS Input
[in]ppath_agendaWS Input
[in]propmat_clearsky_agendaWS Input
[in]iy_transmitter_agendaWS Input
[in]iy_agenda_call1WS Input
[in]iy_transmissionWS Input
[in]rte_posWS Input
[in]rte_losWS Input
[in]rte_alonglos_vWS Input
[in]ppath_lraytraceWS Input
[in]ze_trefGeneric Input (Default: "273.15")

Definition at line 61 of file m_cloudradar.cc.

References abs, complex_n_water_liebe93(), Ppath::end_lstep, fac(), get_ppath_abs(), get_ppath_atmvars(), get_ppath_ext(), get_ppath_f(), get_ppath_trans(), get_ppath_trans2(), id_mat(), iy_transmitter_agendaExecute(), joker, Ppath::los, Ppath::lstep, mirror_los(), mult(), ConstTensor4View::nbooks(), ConstTensor3View::ncols(), ConstMatrixView::ncols(), Array< base >::nelem(), ConstVectorView::nelem(), Ppath::ngroup, Ppath::np, ns, pha_mat_singleCalc(), PI, ppath_agendaExecute(), Matrix::resize(), and SPEED_OF_LIGHT.

Referenced by iyCloudRadar_g().

◆ yCloudRadar()

void yCloudRadar ( Workspace ws,
Vector y,
ArrayOfVector y_aux,
const Index atmgeom_checked,
const Index atmfields_checked,
const ArrayOfString iy_aux_vars,
const Index stokes_dim,
const Vector f_grid,
const Tensor3 t_field,
const Tensor3 z_field,
const Tensor4 vmr_field,
const Index cloudbox_on,
const Index cloudbox_checked,
const Matrix sensor_pos,
const Matrix sensor_los,
const Index sensor_checked,
const Agenda iy_main_agenda,
const ArrayOfArrayOfIndex sensor_pol_array,
const Vector range_bins,
const Verbosity verbosity 
)

WORKSPACE METHOD: yCloudRadar.

Replaces yCalc for cloud radar calculations.

The output format for iy from iyCloudRadar differs from the standard one, and yCalc can not be used for cloud radar simulations. This method works largely as yCalc, but is tailored to handle the output from iyCloudRadar.

The method requires additional information about the sensor, regarding its recieving properties. First of all, recieved polarisation states are taken from sensor_pol_array. Note that this WSV allows to define several measured polarisations for each transmitted siggnal. For example, it is possible to simulate transmission of V and measuring backsacttered V and H.

Secondly, the range averaging is described by range_bins. These bins can either be specified in altitude or two-way travel time. In both case, the edges of the range bins shall be specified. All data (including auxiliary variables) are returned as the average inside the bins. If any bin extands outisde the covered range, zeros are added reflectivities, while for other quantities (e.g. temperature) the averaging is restricted to covered part.

All auxiliary data from iyCloudRadar are handled.

No Jacobian quantities are yet handled.

Author
Patrick Eriksson
Parameters
[in,out]wsWorkspace
[out]yWS Output
[out]y_auxWS Output
[in]atmgeom_checkedWS Input
[in]atmfields_checkedWS Input
[in]iy_aux_varsWS Input
[in]stokes_dimWS Input
[in]f_gridWS Input
[in]t_fieldWS Input
[in]z_fieldWS Input
[in]vmr_fieldWS Input
[in]cloudbox_onWS Input
[in]cloudbox_checkedWS Input
[in]sensor_posWS Input
[in]sensor_losWS Input
[in]sensor_checkedWS Input
[in]iy_main_agendaWS Input
[in]sensor_pol_arrayWS Input
[in]range_binsWS Input

Definition at line 385 of file m_cloudradar.cc.

References chk_if_in_range(), Ppath::end_lstep, gridpos(), interp(), interpweights(), is_decreasing(), is_increasing(), iy_main_agendaExecute(), joker, Ppath::lstep, max, min, Array< base >::nelem(), ConstVectorView::nelem(), Ppath::ngroup, Ppath::np, ConstMatrixView::nrows(), Ppath::pos, Vector::resize(), SPEED_OF_LIGHT, stokes2pol(), and w().

Referenced by yCloudRadar_g().

Variable Documentation

◆ PI

const Numeric PI

Referenced by iyCloudRadar().

◆ SPEED_OF_LIGHT

const Numeric SPEED_OF_LIGHT

Referenced by iyCloudRadar(), and yCloudRadar().