-
Alex Diebold authoredAlex Diebold authored
scene_checks.py 1.26 KiB
import pandas as pd
import numpy as np
from aeri_qc.all_checks import checklist
from aeri_qc.main import read_mirror
@checklist.add_check(depends=['hatchOpen','sceneMirrorPosition'], affects_calibration=False, description='hatch is closed')
def hatch_check(frame, parameters):
"""
Check that the hatch is open on sky views
"""
return ((frame.hatchOpen != 1) & (~frame.sceneMirrorPosition.isin([ord('H'), ord('A')])))
@checklist.add_check(depends=['hatchOpen','sceneMirrorPosition'], affects_calibration=True, description='hatch moving during calibration view, mirror might have safed')
def safing_check(frame, parameters):
"""
Check that the mirror doesn't safe during a calibration view and contaminate other records
"""
hatch_closing = (frame.hatchOpen == -3)
return hatch_closing & frame.sceneMirrorPosition.isin([ord('H'), ord('A')])
@checklist.add_check(depends=['sceneMirrorPosition'], affects_calibration=True, description='mirror position not in mirror.beg')
def encoder_check(frame, parameters):
if 'mirror.beg' not in parameters:
return frame.sceneMirrorPosition * 0
mirror_beg = read_mirror(parameters['mirror.beg'])
angles = { s[2] for s in mirror_beg}
return frame.sceneMirrorPosition.round(2).isin(angles)