fields.field_group#
Field Group Module
This module defines the FieldGroup class, which manages a collection of fields in an optical system.
Kramer Harrison, 2024
Classes
A class representing a group of fields. |
- class FieldGroup[source]#
A class representing a group of fields.
- Variables:
- Methods:
get_vig_factor (Hx, Hy) – Returns the vignetting factors for given Hx and Hy values.
get_field_coords – Returns the normalized coordinates of the fields.
add_field (field) – Adds a field to the group.
get_field (field_number) – Returns the field at the specified index.
- add(y: float, x: float = 0.0, vx: float = 0.0, vy: float = 0.0, weight: float = 1.0)[source]#
Add a field to the list of fields.
- Parameters:
y – The y-coordinate of the field.
x – The x-coordinate of the field. Defaults to 0.0.
vx – The x-component of the field’s vignetting factor. Defaults to 0.0.
vy – The y-component of the field’s vignetting factor. Defaults to 0.0.
weight – Non-negative relative importance scalar (default 1.0). A weight of 0.0 means this field is excluded from optimization and weighted analysis but is still present in standalone analysis outputs. Negative values raise ValueError.
- apply_vignetting(Hx, Hy, Px, Py)[source]#
Maps normalized pupil coordinates onto the vignetted pupil.
Each pupil coordinate is compressed by
(1 - v), wherevis the vignetting factor of the nearest defined field. This is the single place where vignetting is applied, so every ray aimer and every trace entry point sees the same pupil. When no field is vignetted, the inputs are returned unchanged.- Parameters:
- Returns:
The vignetted
(Px, Py).- Return type:
- classmethod from_dict(data)[source]#
Create a field group from a dictionary.
- Parameters:
data (dict) – A dictionary representation of the field group.
- Returns:
A field group object created from the dictionary.
- Return type:
- get_field(field_number: int) Field[source]#
Retrieve the field at the specified field_number.
- Parameters:
field_number (int) – The index of the field to retrieve.
- Returns:
The field at the specified index.
- Return type:
- Raises:
IndexError – If the field_number is out of range.
- get_field_coords() list[tuple[ScalarOrArray, ScalarOrArray]][source]#
Returns the coordinates of the fields.
If the maximum field size is 0, it returns a single coordinate (0, 0). Otherwise, it calculates the normalized coordinates for each field based on the maximum field size.
- Returns:
A list of tuples, where each tuple contains the (normalized_x, normalized_y) coordinates of a field.
- get_vig_factor(Hx, Hy)[source]#
Calculates the vignetting factors for a given field position.
Note that the vignetting factors are interpolated using the nearest neighbor method.
- Args
Hx (float): The normalized x component of the field. Hy (float): The normalized y component of the field.
- Returns:
- The interpolated x-component of the
vignetting factor.
- vy_new (float): The interpolated y-component of the
vignetting factor.
- Return type:
vx_new (float)
- remove(field_number: int) None[source]#
Remove the field at the specified field_number.
- Parameters:
field_number (int) – The index of the field to remove.
- Raises:
IndexError – If the field_number is out of range.
- require_definition() BaseFieldDefinition[source]#
Return the field definition, or raise if none has been set.
Field coordinates cannot be interpreted without a field type, so ray tracing fails with an opaque
AttributeErrorif this is skipped. This turns that into an actionable message.- Returns:
The active field definition.
- Raises:
ValueError – If no field type has been set on the system.
- set_telecentric(is_telecentric: bool) None[source]#
Set the object-space telecentric state stored by this group.
- Parameters:
is_telecentric – Whether the system is telecentric in object space.
- set_type(field_type: str) None[source]#
Set the type of field used in the optical system.
- Parameters:
field_type – The type of field, e.g., ‘angle’, ‘object_height’, or ‘paraxial_image_height’.
- to_dict()[source]#
Convert the field group to a dictionary.
- Returns:
A dictionary representation of the field group.
- Return type:
- property vx#
Vignetting factors in x for each field.
- Type:
be.ndarray
- property vy#
Vignetting factors in y for each field.
- Type:
be.ndarray
- property x_fields#
x field values.
- Type:
be.ndarray
- property y_fields#
y field values.
- Type:
be.ndarray