Extended functionality

This document covers additional functionality that is provided by ltapy.

Source apodization

The apodization module provides objects for dealing with source apodization files.

It features a number of parser functions for reading surface, cylinder or volume apodization file data into appropriate GridMesh objects. These container objects store the grid mesh data and enable you to export the data to e.g. a comma-separated values file.

Note

Refer to the LightTools Help for more information on source apodization and apodization file formats (Illumination Module User’s Guide > Chapter 2 Light Sources > Source Apodization).

For example, the following code creates a VolumeGridMesh object from three-dimensional mesh data and data bounds:

>>> import numpy as np
>>> from ltapy.apodization import VolumeGridMesh
>>> values = np.array([
        [[1, 0, 7], [2, 1, 6], [4, 5 ,1], [1, 1, 6]],
        [[4, 5, 1], [1, 2, 3], [2, 2, 2], [1, 2, 3]],
    ])
>>> bounds = (-1.5, 1.5, -2.0, 2.0, 0, 5)
>>> vgmesh = VolumeGridMesh(values, bounds)
>>> vgmesh.values
array([[[1, 0, 7],
        [2, 1, 6],
        [4, 5, 1],
        [1, 1, 6]],
       [[4, 5, 1],
        [1, 2, 3],
        [2, 2, 2],
        [1, 2, 3]]])
>>> vgmesh.bounds
(-1.5, 1.5, -2.0, 2.0, 0, 5)
>>> vgmesh.dim
(3, 4, 2)

Write the grid mesh data to a volume apodization file:

>>> vgmesh.write("volume_apodization.txt")

Read the volume apodization file into a VolumeGridMesh object:

>>> from ltapy.apodization import read_vgmesh
>>> vgmesh = read_vgmesh("volume_apodization.txt")
>>> vgmesh.dim
(3, 4, 2)

Write the grid mesh data to a comma-separated values (CSV) file:

>>> vgmesh.to_csv("volume_apodization.csv")