Newer
Older
from util import BaseCheckList, annotate_all, _compute_robust_zscore, invalidate_records, update_variable_qc
import pandas as pd
import numpy as np
def imaginary_radiance_check(frame, parameters):
if 'skyViewImaginaryRadiance2510_2515' not in frame.columns:
return frame
threshold = parameters.get('imaginary_radiance_threshold', 1)
imaginary_radiance_problem = abs(frame.skyViewImaginaryRadiance2510_2515) > threshold
frame['imaginary_radiance_check'] = imaginary_radiance_problem * 1
annotate_all(frame, imaginary_radiance_problem, 'sky view imaginary radiance out of range')
frame = invalidate_records(frame, 'imaginary_radiance_check')
return frame
def hbb_radiance_check(frame, parameters):
# Std dev, nen, lw, sw
return frame
def responsivity_check(frame, parameters):
# lw, sw
if not np.in1d(['LWresponsivity','SWresponsivity'], frame.columns).all():
return frame
lw_zscore = _compute_robust_zscore(frame['LWresponsivity'], 50)
sw_zscore = _compute_robust_zscore(frame['SWresponsivity'], 50)
lw_problem = abs(lw_zscore) > 6
sw_problem = abs(sw_zscore) > 6
variable_qcs = pd.DataFrame({
'qc_LWresponsivity':lw_problem * 1,
'qc_SWresponsivity':sw_problem * 1
})
frame['responsivity_check'] = (lw_problem | sw_problem) * 1
frame = update_variable_qc(frame, variable_qcs)
frame = invalidate_records(frame, 'responsivity_check')
return frame
class CheckList(BaseCheckList):
checks = [ imaginary_radiance_check, hbb_radiance_check, responsivity_check ]