コード例 #1
0
def get_statistics_for_single_obsid(obsid ='', table='w_levels', data_columns=None):
    Statistics_list = [0]*4

    if data_columns is None:
        data_columns = ['meas', 'level_masl']
    data_column = data_columns[0] #default value


    #number of values, also decide wehter to use meas or level_masl in report
    for column in data_columns:
        sql = r"""select Count(%s) from %s where obsid = '%s'"""%(column, table, obsid)
        ConnectionOK, number_of_values = db_utils.sql_load_fr_db(sql)
        if number_of_values and number_of_values[0][0] > Statistics_list[2]:#this will select meas if meas >= level_masl
            data_column = column
            Statistics_list[2] = number_of_values[0][0]

    #min value
    sql = r"""select min(%s) from %s where obsid = '%s'"""%(data_column, table, obsid)
    ConnectionOK, min_value = db_utils.sql_load_fr_db(sql)
    if min_value:
        Statistics_list[0] = min_value[0][0]

    #median value
    median_value = db_utils.calculate_median_value(table, data_column, obsid)
    if median_value:
        Statistics_list[1] = median_value

    #max value
    sql = r"""select max(%s) from %s where obsid = '%s'"""%(data_column, table, obsid)
    ConnectionOK, max_value = db_utils.sql_load_fr_db(sql)
    if max_value:
        Statistics_list[3] = max_value[0][0]

    return data_column, Statistics_list
コード例 #2
0
def get_statistics(obsids,
                   table,
                   column,
                   sql_function_order=None,
                   median=True,
                   dbconnection=None):
    if not isinstance(dbconnection, db_utils.DbConnectionManager):
        dbconnection = db_utils.DbConnectionManager()

    if sql_function_order is None:
        sql_function_order = ['min', 'max', 'avg', 'count']
    if not isinstance(obsids, (list, tuple)):
        obsids = [obsids]

    sql = 'select obsid, %s from %s where obsid in (%s) group by obsid' % (
        ', '.join(['%s(%s)' % (func, column) for func in sql_function_order
                   ]), table, ', '.join(["'{}'".format(x) for x in obsids]))
    _res = db_utils.get_sql_result_as_dict(sql, dbconnection=dbconnection)[1]
    res = dict([(obsid, list(v[0])) for obsid, v in _res.items()])
    if median:
        [
            v.append(
                db_utils.calculate_median_value(table, column, obsid,
                                                dbconnection))
            for obsid, v in res.items()
        ]
    return res
コード例 #3
0
def get_statistics(obsids, table, column, sql_function_order=None, median=True, dbconnection=None):
    if not isinstance(dbconnection, db_utils.DbConnectionManager):
        dbconnection = db_utils.DbConnectionManager()

    if sql_function_order is None:
        sql_function_order = ['min', 'max', 'avg', 'count']
    if not isinstance(obsids, (list, tuple)):
        obsids = [obsids]

    sql = 'select obsid, %s from %s where obsid in (%s) group by obsid'%(', '.join(['%s(%s)'%(func, column) for func in sql_function_order]), table, ', '.join(["'{}'".format(x) for x in obsids]))
    _res = db_utils.get_sql_result_as_dict(sql, dbconnection=dbconnection)[1]
    res = dict([(obsid, list(v[0])) for obsid, v in _res.items()])
    if median:
        [v.append(db_utils.calculate_median_value(table, column, obsid, dbconnection)) for obsid, v in res.items()]
    return res
コード例 #4
0
def GetStatistics(obsid=''):
    Statistics_list = [0] * 4

    columns = ['meas', 'level_masl']
    # default value
    meas_or_level_masl = 'meas'

    #number of values, also decide wehter to use meas or level_masl in report
    for column in columns:
        sql = r"""select Count(%s) from w_levels where obsid = '%s'""" % (
            column, obsid)
        ConnectionOK, number_of_values = db_utils.sql_load_fr_db(sql)
        if number_of_values and number_of_values[0][0] > Statistics_list[
                2]:  #this will select meas if meas >= level_masl
            meas_or_level_masl = column
            Statistics_list[2] = number_of_values[0][0]

    #min value
    if meas_or_level_masl == 'meas':
        sql = r"""select min(meas) from w_levels where obsid = '%s'""" % obsid
    else:
        sql = r"""select max(level_masl) from w_levels where obsid = '%s'""" % obsid

    ConnectionOK, min_value = db_utils.sql_load_fr_db(sql)
    if min_value:
        Statistics_list[0] = min_value[0][0]

    #median value
    median_value = db_utils.calculate_median_value('w_levels',
                                                   meas_or_level_masl, obsid)
    if median_value:
        Statistics_list[1] = median_value

    #max value
    if meas_or_level_masl == 'meas':
        sql = r"""select max(meas) from w_levels where obsid = '%s' """ % obsid
    else:
        sql = r"""select min(level_masl) from w_levels where obsid = '%s' """ % obsid
    ConnectionOK, max_value = db_utils.sql_load_fr_db(sql)
    if max_value:
        Statistics_list[3] = max_value[0][0]

    return meas_or_level_masl, Statistics_list
コード例 #5
0
def GetStatistics(obsid = ''):
    Statistics_list = [0]*4

    columns = ['meas', 'level_masl']
    # default value
    meas_or_level_masl= 'meas'

    #number of values, also decide wehter to use meas or level_masl in report
    for column in columns:
        sql = r"""select Count(%s) from w_levels where obsid = '%s'"""%(column, obsid)
        ConnectionOK, number_of_values = db_utils.sql_load_fr_db(sql)
        if number_of_values and number_of_values[0][0] > Statistics_list[2]:#this will select meas if meas >= level_masl
            meas_or_level_masl = column
            Statistics_list[2] = number_of_values[0][0]

    #min value
    if meas_or_level_masl=='meas':
        sql = r"""select min(meas) from w_levels where obsid = '%s'""" % obsid
    else:
        sql = r"""select max(level_masl) from w_levels where obsid = '%s'""" % obsid

    ConnectionOK, min_value = db_utils.sql_load_fr_db(sql)
    if min_value:
        Statistics_list[0] = min_value[0][0]

    #median value
    median_value = db_utils.calculate_median_value('w_levels', meas_or_level_masl, obsid)
    if median_value:
        Statistics_list[1] = median_value

    #max value
    if meas_or_level_masl=='meas':
        sql = r"""select max(meas) from w_levels where obsid = '%s' """ % obsid
    else:
        sql = r"""select min(level_masl) from w_levels where obsid = '%s' """ % obsid
    ConnectionOK, max_value = db_utils.sql_load_fr_db(sql)
    if max_value:
        Statistics_list[3] = max_value[0][0]

    return meas_or_level_masl, Statistics_list
コード例 #6
0
def get_statistics_for_single_obsid(obsid='',
                                    table='w_levels',
                                    data_columns=None):
    Statistics_list = [0] * 4

    if data_columns is None:
        data_columns = ['meas', 'level_masl']
    data_column = data_columns[0]  #default value

    #number of values, also decide wehter to use meas or level_masl in report
    for column in data_columns:
        sql = r"""select Count(%s) from %s where obsid = '%s'""" % (
            column, table, obsid)
        ConnectionOK, number_of_values = db_utils.sql_load_fr_db(sql)
        if number_of_values and number_of_values[0][0] > Statistics_list[
                2]:  #this will select meas if meas >= level_masl
            data_column = column
            Statistics_list[2] = number_of_values[0][0]

    #min value
    sql = r"""select min(%s) from %s where obsid = '%s'""" % (data_column,
                                                              table, obsid)
    ConnectionOK, min_value = db_utils.sql_load_fr_db(sql)
    if min_value:
        Statistics_list[0] = min_value[0][0]

    #median value
    median_value = db_utils.calculate_median_value(table, data_column, obsid)
    if median_value:
        Statistics_list[1] = median_value

    #max value
    sql = r"""select max(%s) from %s where obsid = '%s'""" % (data_column,
                                                              table, obsid)
    ConnectionOK, max_value = db_utils.sql_load_fr_db(sql)
    if max_value:
        Statistics_list[3] = max_value[0][0]

    return data_column, Statistics_list