PyREx

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”. If False 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”. If False 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.

PyREx

A Python package for simulation of neutrinos and radio antennas in ice. Version 1.10.0

Navigation