sources.visualization#

Sources Visualization Module

This module provides visualization tools for extended sources, allowing users to validate and visualize their source definitions before running full optical system traces.

The SourceViewer class creates a 3-panel plot showing: 1. XY spatial distribution with intensity color-coding 2. XZ ray propagation paths 3. YZ ray propagation paths

This helps users verify the spatial and angular properties of their sources.

Classes

SourceViewer(source)

A class used to visualize extended sources.

class SourceViewer(source: BaseSource)[source]#

A class used to visualize extended sources.

This viewer creates a comprehensive 3-panel visualization of an extended source showing the spatial distribution and propagation characteristics of the generated rays.

Parameters:

source (BaseSource) – The extended source to be visualized.

Variables:

source (BaseSource) – The extended source being visualized.

Methods:

view (num_rays, propagation_distance, figsize) – Creates the source visualization.

view(num_rays: int = 5000, propagation_distance: float = 0.1, figsize: tuple[float, float] = (20, 8), cross_spatial: tuple[str, str] = ('x', 'y'), cross_angular: tuple[str, str] = ('L', 'M')) tuple[Figure, list[Axes]][source]#

Create a comprehensive visualization of the extended source.

This method generates a multi-panel plot showing: 1. Column 1: XY spatial distribution and angular distribution 2. Column 2: Cross-sections (spatial and angular) 3. Column 3: XZ and YZ ray propagation paths

Parameters:
  • num_rays (int, optional) – Number of rays to generate for visualization. Defaults to 5000.

  • propagation_distance (float, optional) – Distance in mm to propagate rays for path visualization. Defaults to 0.1.

  • figsize (tuple[float, float], optional) – Figure size (width, height) in inches. Defaults to (18, 8).

  • cross_spatial (tuple[str, str], optional) – Spatial cross-section axes. Defaults to (“x”, “y”).

  • cross_angular (tuple[str, str], optional) – Angular cross-section axes. Defaults to (“L”, “M”).

Returns:

Matplotlib figure and list of 6 axes objects.

Return type:

tuple[Figure, list[Axes]]