irfpy.util.emission
¶
Emission functions.
An emission function,
It is not interms of :math`theta, phi`.
In this module, the surface-emission is considered, so that the angle
The angle
For the uniform (isotropic) case, the emission function is
.For the cosine-normal case, the emission function is
.For the forward-specular model, the cosine-normal function is tilted by the given angle.
For the backward-specular model, the cosine-nomal function is tilted (backward) by the given angle.
- irfpy.util.emission.emission_uniform(theta, phi)[source]¶
Isotropic emission function.
- Parameters:
theta – The polar angle in deg. [0, 180]. (>90, the returned value is nan).
phi – The azimuth angle in deg. (-180, 180]
>>> print(emission_uniform([30, 90, 120], [50, 50, 50])) [0.15915494 0.15915494 nan]
- irfpy.util.emission.emission_cosnorm(theta, phi, gamma=1)[source]¶
Cosine-normal emission function.
- Parameters:
theta – The polar angle in deg. [0, 180]. (>90, the returned value is nan).
phi – The azimuth angle in deg. (-180, 180]
>>> theta = [30, 50, 120] >>> phi = [50, 20, -30] >>> print(emission_uniform(theta, phi)) [0.15915494 0.15915494 nan]
- irfpy.util.emission.emission_specular(theta, phi, tilt_angle=0, gamma=1, normalize_accuracy=360)[source]¶
Specular reflection
- Parameters:
theta – The polar angle in deg. [0, 180]. (>90, the returned value is nan).
phi – The azimuth angle in deg. (-180, 180]
tilt_angle – The tilt angle for specular reflection for the forward scattering. [0, 90] Usually, the angle is the same as the incoming angle of the projectile. If you set it as 0 (default), the result is the same as cosing_normal.
gamma – The gamma paramter for the cosine normal function.
normalize_accuracy – To normalize the results, this function integrate numerically over the half-sphere. This parameter defines how accurate the normalization should be.
>>> print('{:.3g}'.format(emission_specular(30, 0, tilt_angle=0, gamma=1))) 0.275 >>> print('{:.3g}'.format(emission_specular(30, 0, tilt_angle=30, gamma=1))) 0.341 >>> print('{:.3g}'.format(emission_specular(30, 20, tilt_angle=30, gamma=1))) 0.336 >>> print('{:.3g}'.format(emission_specular(30, -20, tilt_angle=30, gamma=1))) 0.336 >>> print('{:.3g}'.format(emission_specular(30, -30, tilt_angle=30, gamma=1))) 0.329 >>> print('{:.3g}'.format(emission_specular(80, 20, tilt_angle=70, gamma=3))) 0.682 >>> print('{:.3g}'.format(emission_specular(80, -20, tilt_angle=70, gamma=3))) 0.682 >>> print('{:.3g}'.format(emission_specular(100, -20, tilt_angle=70, gamma=3))) nan
- irfpy.util.emission.emission_backward(theta, phi, tilt_angle=0, gamma=1, normalize_accuracy=360)[source]¶
Emission function of backscattering
- Parameters:
theta – The polar angle in deg. [0, 180]. (>90, the returned value is nan).
phi – The azimuth angle in deg. (-180, 180]
tilt_angle – The tilt angle for specular reflection for the backward scattering. [0, 90] Usually, the angle is the same as the incoming angle of the projectile. If you set it as 0 (default), the result is the same as cosing_normal.
gamma – The gamma paramter for the cosine normal function.
normalize_accuracy – To normalize the results, this function integrate numerically over the half-sphere. This parameter defines how accurate the normalization should be.
>>> print('{:.3g}'.format(emission_backward(30, 180, tilt_angle=0, gamma=1))) 0.275 >>> print('{:.3g}'.format(emission_backward(30, 180, tilt_angle=30, gamma=1))) 0.341 >>> print('{:.3g}'.format(emission_backward(30, 160, tilt_angle=30, gamma=1))) 0.336 >>> print('{:.3g}'.format(emission_backward(30, -160, tilt_angle=30, gamma=1))) 0.336 >>> print('{:.3g}'.format(emission_backward(30, -150, tilt_angle=30, gamma=1))) 0.329 >>> print('{:.3g}'.format(emission_backward(80, 160, tilt_angle=70, gamma=3))) 0.682 >>> print('{:.3g}'.format(emission_backward(80, -160, tilt_angle=70, gamma=3))) 0.682 >>> print('{:.3g}'.format(emission_backward(100, -160, tilt_angle=70, gamma=3))) nan