Skip to content

Telescope

queue_listerner instance-attribute

queue_listerner = setup_logging()

logger instance-attribute

logger = getLogger()

external_logger_flag instance-attribute

external_logger_flag = True

resolution instance-attribute

resolution = resolution

D instance-attribute

D = diameter

pixelSize instance-attribute

pixelSize = D / resolution

centralObstruction instance-attribute

centralObstruction = centralObstruction

fov instance-attribute

fov = fov

fov_rad instance-attribute

fov_rad = fov / 206265

samplingTime instance-attribute

samplingTime = samplingTime

user_defined_pupil instance-attribute

user_defined_pupil = pupil

pupilReflectivity instance-attribute

pupilReflectivity = pupilReflectivity

tag instance-attribute

tag = 'telescope'

isInitialized instance-attribute

isInitialized = True

__init__

__init__(
    resolution: float,
    diameter: float,
    samplingTime: float = 0.001,
    centralObstruction: float = 0,
    fov: float = 0,
    pupil: bool = None,
    pupilReflectivity: float = 1,
    logger=None,
)

Initialize a Telescope object for adaptive optics simulations.

Parameters:

Name Type Description Default
resolution float

Resolution of the pupil mask (number of pixels across diameter).

required
diameter float

Physical diameter of the telescope in meters.

required
samplingTime float

Time step of the AO loop, used for updating atmospheric phase screens.

0.001
centralObstruction float

Central obstruction diameter as a fraction of telescope diameter (0–1).

0
fov float

Field of view in arcseconds.

0
pupil bool or ndarray

User-defined pupil mask. If None, generates a circular pupil with optional obstruction.

None
pupilReflectivity float or ndarray

Pupil reflectivity map or scalar. Defaults to 1.

1
logger Logger

Logger instance for output. If None, a default logger is created.

None

set_pupil

set_pupil()

Generate the pupil mask either from user input or by creating a circular aperture with optional central obstruction.

Updates the following: - self.pupil - self.pupilReflectivity - self.pixelArea - self.pupilLogical

Returns:

Type Description
None

apply_spiders

apply_spiders(
    angle, thickness_spider, offset_X=None, offset_Y=None
)

Add spiders to the telescope pupil mask.

Parameters:

Name Type Description Default
angle list of float

List of angles [deg] defining the spider orientation.

required
thickness_spider float

Width of the spider arms in meters.

required
offset_X list of float

X offsets per spider. Same length as angle.

None
offset_Y list of float

Y offsets per spider. Same length as angle.

None

Returns:

Type Description
None

print_properties

print_properties()

Log and print key telescope properties: diameter, resolution, pixel size, surface area, central obstruction, and FOV.

Returns:

Type Description
None

setup_logging

setup_logging(logging_level=logging.WARNING)

__del__

__del__()