fit_distortion_pointing#
- esis.flights.f1.optics.fit_distortion_pointing(instrument=None, num_scene=401, grids=None, sigma_psf=1.0, seed=0, path=None, directory=None, workers=1)[source]#
Fit the per-frame payload pointing of the whole flight.
Reproduces (and lets anyone verify) the time series stored in
_data/distortion_pointing.ecsv: for every frame ofesis.flights.f1.data.level_1(), a coherent pitch/yaw/roll offset from the reference model is fit withesis.optics.fit_distortion_series()under a rigid-payload model (the same offset for all four channels).Expect roughly a hundred merit evaluations per frame at a few seconds each; the frames are independent, so workers parallelizes them perfectly. Requires the ESIS Level-1 data and the AIA synthetic scene (downloaded and cached on first use).
- Parameters:
instrument (None | Instrument) – The reference instrument model whose pointing is offset. If
None,esis.flights.f1.optics.distortion_fit()is used, idealized for raytracing speed.num_scene (int) – The number of samples along each axis of the resampled AIA scenes.
grids (None | list[dict]) – The per-frame scan schedule. If
None, the production schedule (coarse \(\\pm 10''\), fine \(\\pm 1''\)) is used.sigma_psf (None | float) – The standard deviation, in detector pixels, of the Gaussian point-spread function convolved with the modeled images.
seed (int) – The seed used to make each evaluation deterministic.
path (None | str | Path) – If given, the fitted offsets are written to this path as an ECSV table, in the format of
_data/distortion_pointing.ecsv.directory (None | str | Path) – A directory under which each frame’s fit is logged. If
None, the fits are not logged.workers (int) – The number of processes used to fit frames concurrently.
- Return type:
Examples
import esis pointing = esis.flights.f1.optics.fit_distortion_pointing( path="distortion_pointing.ecsv", workers=8, )