Telescope Models¶
The NewtonianTelescope class is the main entry point for PSF simulation.
It inherits from GenericTelescope, which provides the POPPY integration layer.
NewtonianTelescope¶
from psfcraft import NewtonianTelescope
Minimal example:
tel = NewtonianTelescope(version="1_3")
tel.pixelscale = 0.1 # arcsec/pixel
psf = tel.calc_psf(monochromatic=1.2e-6, fov_pixels=64)
With wavefront errors:
import numpy as np
wfe = np.zeros(15)
wfe[3] = 50e-9 # 50 nm RMS defocus (Noll index 4)
wfe[6] = 100e-9 # 100 nm RMS coma (Noll index 7)
tel = NewtonianTelescope(version="1_3", wfe_coefficients=wfe)
psf = tel.calc_psf(monochromatic=1.2e-6, fov_pixels=64)
NewtonianTelescope ¶
NewtonianTelescope(name=name, version=version, primary_radius=primary_radius, secondary_radius=secondary_radius, detector_oversample=detector_oversample, wfe_coefficients=wfe_coefficients, *args, **kwargs)
Bases: GenericTelescope
Source code in psfcraft/psfcraft_core.py
258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 | |
GenericTelescope¶
Base class — extend this to implement custom telescope geometries.
GenericTelescope ¶
GenericTelescope(name=name, version=version, primary_radius=None, secondary_radius=None, detector_oversample=None, *args, **kwargs)
Bases: Instrument
Source code in psfcraft/psfcraft_core.py
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | |