pyoptools.raytrace.ray package¶
Module contents¶
-
class
pyoptools.raytrace.ray.
Ray
¶ Bases:
object
Class to define a ray
ARGUMENTS
pos Tuple (x,y,z) containing the origin of the Ray dir Tuple (x,y,z) containing the direction vector of the Ray intensity Floating point number representing the Intensity of the Ray. Warning: Check how can a physically correct definition can be made wavelength Wavelength (in vacuum) of the ray in micrometers (.58929 by default) n Refraction index of the point originating the ray. If the value is None, the ray was emitted from the media and its Refraction index is taken (not from inside a component) label String used to follow the rays through the system. draw_color Color used to render this ray. If None, the wavelength will be used to determine the color. Otherwise, can be any valid matplotlib color identifier. parent Ray where this ray comes from (used to follow ray trajectory). childs List of rays originated by the interaction of this ray with an optical surface. -
add_child
()¶ Add childs to the current ray, and create the appropriate links
- cr
- Ray to include in the child list
-
static
almost_equal
()¶ Test if two rays are equal up to desired precision.
ARGUMENTS
other Ray other ray to be compared against. decimal int, optional, Desired precision, default is 7. - RETURN VALUE
- bool True if two rays are equal to the desired precision. i.e.
- if abs(self - other) < 1.5 * 10**(-decimal) for attributes pos, dir, wavelength and n.
-
ch_coord_sys
()¶ Transform the coordinate system of the Ray
Parameters no Tuple (X,Y,Z) containing the coordinates of the origin of the new coordinate system in the old coordinate system ae Tuple (RX,RY,RZ) containing the rotation angles to be applied to the old coordinate system. The rotations are applied RZ first, then RY and last RX
Note this has to be checked
-
ch_coord_sys_inv
()¶ Transform the coordinate system of the Ray
Parameters
- no
- Tuple (X,Y,Z) containing the coordinates of the origin of the old coordinate system in the new coordinate system
- ae
- Tuple (RX,RY,RZ) containing the rotation angles to be applied to the old coordinate system. The rotations are applied RZ first, then RY and last RX
- childs
- Transform also the coordinate system of the childs. By default (False) don’t do it.
The rotation is made first, and then the translation is made. Note, this has to be checked
-
ch_coord_sys_inv_f
()¶ Transform the coordinate system of the Ray
Fast version
Parameters
- no
- Tuple (X,Y,Z) containing the coordinates of the origin of the old coordinate system in the new coordinate system
- ae
- Tuple (RX,RY,RZ) containing the rotation angles to be applied to the old coordinate system. The rotations are applied RZ first, then RY and last RX
- childs
- Transform also the coordinate system of the childs. By default (False) don’t do it.
The rotation is made first, and then the translation is made. Note, this has to be checked
-
childs
¶
-
copy
()¶ Return a copy ray leaving the parent=None, and childs=[], and order=0
-
dir
¶
-
draw_color
¶
-
get_final_rays
()¶ Find the final rays of the raytrace
- inc_zeros
- If inc_zeros == True, all the child rays are included. If set to false, the rays with intensity==0 are not included
-
intensity
¶
-
label
¶
-
n
¶
-
optical_path
()¶ Return the optical path of the beam propagation from the origin of the origin ray, to the end of this ray (intersection with a surface)
-
optical_path_parent
()¶ Return the optical path from the origin of the origin ray to the end of this ray parent (this ray origin)
-
order
¶
-
orig_surf
¶
-
parent
¶
-
pop
¶
-
pos
¶
-
reverse
()¶ Return a copy ray leaving the parent=None, and childs=[], and order=0, and inverting the ray direction.
-
wavelength
¶
-
-
pyoptools.raytrace.ray.
parallel_beam_c
(origin=(0.0, 0.0, 0.0), direction=(0.0, 0.0, 0.0), size=(1.0, 1.0), num_rays=(10, 10), wavelength=0.58929, label='', draw_color=None)¶ Cartesian grid parallel beam
This function creates a parallel beam, where the rays are organized in a cartesian grid.
Parameters:
- origin
- Tuple with the coordinates of the central ray origin
- direction
- Tuple with the rotation of the beam around the XYZ axes.
- size
- Tuple with the beam’s width and the height.
- num_rays
- Tuple (nx,ny) containing the number of rays used to create the beam.
- label
- String used to identify the ray source
- draw_color
Color used to represent the rays in plots. Default (None) automatically chooses a color based on the wavelength. Otherwise, can be any valid matplotlib color descriptor. See :
-
pyoptools.raytrace.ray.
parallel_beam_p
(origin=(0.0, 0.0, 0.0), direction=(0.0, 0.0, 0), radius=0.5, num_rays=(5, 10), wavelength=0.58929, label='', draw_color=None)¶ Polar grid parallel beam
This function creates a parallel beam, where the rays are organized in a polar grid.
Parameters:
- origin
- Tuple with the coordinates of the central ray origin
- direction
- Tuple with the rotation of the beam around the XYZ axes.
- r
- Beam radious
- num_rays
- Tuple (nr,na) containing the number of rays used to create the beam.
- label
- String used to identify the ray source
- draw_color
Color used to represent the rays in plots. Default (None) automatically chooses a color based on the wavelength. Otherwise, can be any valid matplotlib color descriptor. See :
-
pyoptools.raytrace.ray.
point_source_c
(origin=(0.0, 0.0, 0.0), direction=(0.0, 0.0, 0), span=(0.39269908169872414, 0.39269908169872414), num_rays=(10, 10), wavelength=0.58929, label='', draw_color=None)¶ Point source, with a cartesian beam distribution
This function creates a point source, where the rays are organized in a cartesian grid.
Parameters:
- origin
- Tuple with the coordinates of the central ray origin
- direction
- Tuple with the rotation of the beam around the XYZ axes.
- span
- Tuple angular size of the ray pencil.
- num_rays
- Tuple (nx,ny) containing the number of rays used to create the beam.
- label
- String used to identify the ray source
- draw_color
Color used to represent the rays in plots. Default (None) automatically chooses a color based on the wavelength. Otherwise, can be any valid matplotlib color descriptor. See :
-
pyoptools.raytrace.ray.
point_source_p
(origin=(0.0, 0.0, 0.0), direction=(0.0, 0.0, 0), span=0.39269908169872414, num_rays=(10, 10), wavelength=0.58929, label='', draw_color=None)¶ Point source, with a polar beam distribution
This function creates a point source, where the rays are organized in a polar grid.
Parameters:
- origin
- Tuple with the coordinates of the central ray origin
- direction
- Tuple with the rotation of the beam around the XYZ axes.
- span
- Tuple angular size of the ray pencil.
- num_rays
- Tuple (nr,na) containing the number of rays used to create the beam # TODO Please be more descriptive. It seems really hard to know how much rays we’ll get in advance. What is nr? # TODO What is na?
- label
- String used to identify the ray source
- draw_color
Color used to represent the rays in plots. Default (None) automatically chooses a color based on the wavelength. Otherwise, can be any valid matplotlib color descriptor. See :
-
pyoptools.raytrace.ray.
point_source_r
(origin=(0.0, 0.0, 0.0), direction=(0.0, 0.0, 0), span=0.39269908169872414, num_rays=100, wavelength=0.58929, label='', draw_color=None)¶ Point source, with a ranrom beam distribution
This function creates a point source, where the rays are organized in a random grid.
Parameters:
- origin
- Tuple with the coordinates of the central ray origin
- direction
- Tuple with the rotation of the beam around the XYZ axes.
- span
- Tuple angular size of the ray pencil.
- num_rays
- Number of rays used to create the beam
- label
- String used to identify the ray source
- draw_color
Color used to represent the rays in plots. Default (None) automatically chooses a color based on the wavelength. Otherwise, can be any valid matplotlib color descriptor. See :