4.12.1.5. singleScattering.scattering_utilities¶
singleScattering.scattering_utilities.py
Copyright (C) 2017 - 2018 Davide Ori dori@uni-koeln.de Institute for Geophysics and Meteorology - University of Cologne
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.
This submodule implements useful functions that helps in the definition of the scatterer geometry and the conversion among diverse scattering frameworks
4.12.1.5.1. Module Contents¶
4.12.1.5.1.1. Classes¶
Complex 2x2 amplitude matrix as defined in Bohren and Huffman |
|
Real 4x4 scattering matrix as defined in Bohren and Huffman |
|
4.12.1.5.1.2. Functions¶
|
This function implement the conversion between complex 2x2 amplitude matrix |
|
Computes the classic size parameter of the scatterer |
|
Calculates the scattering angle in radians given the full set of four |
|
This function takes any angle (even negative) and unfolds it returning the |
|
Takes the three polar coordinates radius, theta(zenith), phi(azimuth) and |
|
Takes the tern of cartesian coordinates x, y, z and returns the three |
|
Returns the classic 2x2 counterclockwise rotation matrix |
|
This function returns two 2x2 rotation matrix specified by the |
- class amplitude_matrix(S)[source]¶
Bases:
objectComplex 2x2 amplitude matrix as defined in Bohren and Huffman | S2 S3 | | | | S4 S1 |
- class scattering_matrix(Z)[source]¶
Bases:
objectReal 4x4 scattering matrix as defined in Bohren and Huffman
- amplitude2mueller(ampl)[source]¶
This function implement the conversion between complex 2x2 amplitude matrix to the real 4x4 scattering Mueller matrix according to Bohren Huffman pp 65 actually according to Mishchenko (2000) pp 51-52 It should not be dependent on the reference fo S, so it is invariant by rotations around the propagation vector However, better to check, I see a sign problem in Z13 and Z14, also Z23 and Z24 and probably more …
- size_parameter(radius, wavelength)[source]¶
Computes the classic size parameter of the scatterer given the radius and the wavelength For nonspherical targets the radius equals size/2
- scattering_angle(theta_inc, theta_sca, phi_inc, phi_sca)[source]¶
Calculates the scattering angle in radians given the full set of four angles that defines the scattering geometry from the incident and the scattered wave directions
The reference frame is assumed to be set with the polar angle theta measured from the vertical axis z, and the azimuth angle phi measured from the axis x???
It also returns the rotation angle alpha which is the angle between the scattering plane and the plane defined by the scattering direction and z. This angle is needed to transform S matrix components from the Bohren and Huffman convention (parallel and perpendicular) to the Mishchenko convention (theta and phi) and viceversa
- module_angle(angle)[source]¶
This function takes any angle (even negative) and unfolds it returning the corresponding angle within [0, 2pi]
- polar2cartesian(r=1.0, t=0.0, p=0.0)[source]¶
Takes the three polar coordinates radius, theta(zenith), phi(azimuth) and returns the tern of cartesian coordinates x, y, z
- cartesian2polar(x, y, z)[source]¶
Takes the tern of cartesian coordinates x, y, z and returns the three polar coordinates radius, theta(zenith), phi(azimuth)
- transformation_matrices(alpha, beta, phi_inc, phi_sca)[source]¶
This function returns two 2x2 rotation matrix specified by the arguments alpha and beta, it should comes handy when you have to transform amplitude matrices from the Bohren and Huffman (parallel, perpendicular) basis to the Mishchenko (theta, phi) convention Ra Rb are actually improper rotations (rotoreflection)