pyrex.ray_tracing.SpecializedRayTracePath¶
-
class
pyrex.ray_tracing.
SpecializedRayTracePath
(parent_tracer, launch_angle, direct)¶ Class for representing a single ray-trace solution between points.
Stores parameters of the ray path with calculations performed analytically (with the exception of attenuation). These calculations require the index of refraction of the ice to be of the form n(z)=n0-k*exp(a*z). However this restriction allows for most of the integrations to be performed analytically. The attenuation is the only attribute which is still calculated by numerical integration with z-steps of size
dz
. Most properties are lazily evaluated to save on computation time. If any attributes of the class instance are changed, the lazily-evaluated properties will be cleared.- Parameters
- parent_tracerSpecializedRayTracer
Ray tracer for which this path is a solution.
- launch_anglefloat
Launch angle (radians) of the ray path.
- directboolean
Whether the ray path is direct. If
True
this means the path does not “turn over”. IfFalse
then the path does “turn over” by either reflection or refraction after reaching some maximum depth.
See also
pyrex.internal_functions.LazyMutableClass
Class with lazy properties which may depend on other class attributes.
SpecializedRayTracer
Class for calculating the ray-trace solutions between points.
Notes
Even more attributes than those listed are available for the class, but are mainly for internal use. These attributes can be found by exploring the source code.
The requirement that the ice model go as n(z)=n0-k*exp(a*z) is implemented by requiring the ice model to inherit from
AntarcticIce
. Obviously this is not fool-proof, but likely the ray tracing will obviously fail if the index follows a very different functional form.- Attributes
- from_pointndarray
The starting point of the ray path.
- to_pointndarray
The ending point of the ray path.
- theta0float
The launch angle of the ray path at from_point.
- ice
The ice model used for the ray tracer.
- dzfloat
The z-step (m) to be used for integration of the ray path attributes.
- directboolean
Whether the ray path is direct. If
True
this means the path does not “turn over”. IfFalse
then the path does “turn over” by either reflection or refraction after reaching some maximum depth.- uniformity_factorfloat
Factor (<1) of the base index of refraction (n0 in the ice model) beyond which calculations start to break down numerically.
- beta_tolerancefloat
beta
value (near 0) below which calculations start to break down numerically.- emitted_direction
- received_direction
- path_length
- tof
- coordinates
Methods
attenuation
(f)Calculate the attenuation factor for signal frequencies.
propagate
([signal, polarization, …])Propagate the signal with optional polarization along the ray path.
theta
(z)Polar angle of the ray at the given depths.
z_integral
(integrand[, integrand_kwargs, …])Calculate the integral of the given integrand.