def test(p, parameters): '''Return quality control decisions. ''' # Get WOD database. db = wod_database(p) # Set maximum allowed depth. If not defined, it is set to the highest # possible float. if db == 'OSD': zlast = 9000.0 elif db == 'CTD': zlast = 9000.0 elif db == 'PFL': zlast = 2020.0 elif db == 'APB': zlast = 1200.0 elif db == 'MBT' and p.primary_header['Country code'] == 'JP': zlast = 295.00001 elif db == 'XBT': zlast = 1900.0 else: zlast = np.finfo(dtype=float).max # Set QC flags. qc = p.z() >= zlast return qc
def test(p, parameters): '''Return quality control decisions. ''' # Default set of QC flags to return. qc = np.zeros(p.n_levels(), dtype=bool) # Set minimum allowed levels. db = wod_database(p) if db == 'OSD': minlevs = 7 elif db == 'CTD': minlevs = 50 elif db == 'PFL': minlevs = 20 elif db == 'APB': minlevs = 20 elif db == 'MBT': minlevs = 7 elif db == 'XBT': minlevs = 20 else: return qc # Do not have the information to QC other types. # Check that we have the levels we need. nlevels, z, t = ICDC.reordered_data(p) if nlevels <= minlevs: return qc # Count stuck values. n = np.ones(nlevels, dtype=int) for i in range(nlevels - minlevs): for j in range(i + 1, nlevels): diff = np.abs(t[i] - t[j]) if diff > 0.0001: break n[i] += 1 # Find the largest stuck value range. i = np.argmax(n) if n[i] < minlevs: return qc thick = z[i + n[i] - 1] - z[i] if thick >= 200.0: # If setting the QC flags we need to be careful about level order. qclo = qc[0:nlevels] qclo[i:i + n[i]] = True qc = ICDC.revert_qc_order(p, qclo) return qc
def test(p, parameters): '''Return quality control decisions. ''' # Default set of QC flags to return. qc = np.zeros(p.n_levels(), dtype=bool) # Set minimum allowed levels. db = wod_database(p) if db == 'OSD': minlevs = 7 elif db == 'CTD': minlevs = 50 elif db == 'PFL': minlevs = 20 elif db == 'APB': minlevs = 20 elif db == 'MBT': minlevs = 7 elif db == 'XBT': minlevs = 20 else: return qc # Do not have the information to QC other types. # Check that we have the levels we need. nlevels, z, t = ICDC.reordered_data(p) if nlevels <= minlevs: return qc # Count stuck values. n = np.ones(nlevels, dtype=int) for i in range(nlevels - minlevs): for j in range(i + 1, nlevels): diff = np.abs(t[i] - t[j]) if diff > 0.0001: break n[i] += 1 # Find the largest stuck value range. i = np.argmax(n) if n[i] < minlevs: return qc thick = z[i + n[i] - 1] - z[i] if thick >= 200.0: # If setting the QC flags we need to be careful about level order. qclo = qc[0:nlevels] qclo[i:i+n[i]] = True qc = ICDC.revert_qc_order(p, qclo) return qc