Ejemplo n.º 1
0
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
Ejemplo n.º 2
0
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
Ejemplo n.º 3
0
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
Ejemplo n.º 4
0
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