Newer
Older
hide_data_if_invalid = [
'hbb_temp_outlier_check',
'abb_temp_outlier_check',
'hatch_check',
'safing_check',
'detector_check',
'hbb_thermistor_check',
'abb_thermistor_check',
'hbb_stable_check',
'hbb_covariance_check'
]
@checklist.add_check(depends=['skyViewImaginaryRadiance2510_2515'], affects_calibration=False, description='sky view imaginary radiance is out of range', hides=hide_data_if_invalid)
def imaginary_radiance_check(frame, parameters):
threshold = parameters.get('imaginary_radiance_threshold', 1)
return abs(frame.skyViewImaginaryRadiance2510_2515) > threshold
@checklist.add_check(depends=['HBBviewStdDevRadiance985_990'], affects_calibration=True, description='HBB radiance has too much variance', hides=hide_data_if_invalid)
hbb_std_dist = scipy.stats.chi2.fit(frame.HBBviewStdDevRadiance985_990)
_, hbb_std_dist_hi = scipy.stats.chi2.interval(.995, *hbb_std_dist)
@checklist.add_check(depends=['LW_HBB_NEN'], affects_calibration=True, description='Longwave HBB radiance NEN too high', hides=hide_data_if_invalid)
lw_hbb_nen_dist = scipy.stats.chi2.fit(frame.LW_HBB_NEN)
_, lw_hbb_nen_hi = scipy.stats.chi2.interval(.995, *lw_hbb_nen_dist)
@checklist.add_check(depends=['SW_HBB_NEN'], affects_calibration=True, description='Shortwave HBB radiance NEN too high', hides=hide_data_if_invalid)
sw_hbb_nen_dist = scipy.stats.chi2.fit(frame.SW_HBB_NEN)
_, sw_hbb_nen_hi = scipy.stats.chi2.interval(.995, *sw_hbb_nen_dist)
@checklist.add_check(depends=['LWresponsivity'], affects_calibration=False, description='Longwave responsivity outlier', hides=hide_data_if_invalid)
lw_zscore = _compute_robust_zscore(frame['LWresponsivity'], 50)
@checklist.add_check(depends=['SWresponsivity'], affects_calibration=False, description='Shortwave responsivity outlier', hides=hide_data_if_invalid)
sw_zscore = _compute_robust_zscore(frame['SWresponsivity'], 50)

Alex Diebold
committed
@checklist.add_check(depends=['surfaceLayerAirTemp675_680', 'BBsupportStructureTemp', 'airNearBBsTemp'], affects_calibration=True, description='brightness temp @675cm-1 within 5K of BBsupportStruct/AirNearBBsTemp', hides=hide_data_if_invalid)
def sky_brightness_temp_spectral_averages_ch1_check(frame, parameters):
temps = frame['surfaceLayerAirTemp675_680'].copy()
for x, temp in temps.iteritems():
if(abs(temp - frame['BBsupportStructureTemp'][x]) >= 20 or abs(temp - frame['airNearBBsTemp'][x]) >= 20):
temps.loc[x] = 1
else:
temps.loc[x] = 0
return temps
@checklist.add_check(depends=['surfaceLayerAirTemp2295_2300', 'BBsupportStructureTemp', 'airNearBBsTemp'], affects_calibration=True, description='brightness temp @2300cm-1 within 5K of BBsupportStruct/AirNearBBsTemp', hides=hide_data_if_invalid)
def sky_brightness_temp_spectral_averages_ch2_check(frame, parameters):
temps = frame['surfaceLayerAirTemp2295_2300'].copy()
for x, temp in temps.iteritems():
if(abs(temp - frame['BBsupportStructureTemp'][x]) >= 20 or abs(temp - frame['airNearBBsTemp'][x]) >= 20):
temps.loc[x] = 1
else:
temps.loc[x] = 0
return temps