def read_tap_json(input_file, start=0):
    """
    Read screen tap json file.

    Parameters
    ----------
    input_file : string
        name of input screen tap json file
    start : integer
        starting index (remove beginning)

    Returns
    -------
    t : list
        time points for tap data
    tx : list
        x coordinates of touch screen
    ty : list
        y coordinates of touch screen
    button : list
        buttons tapped
    sample_rate : float
        sample rate
    duration : float
        duration of time series

    Examples
    --------
    >>> from mhealthx.xio import read_tap_json
    >>> input_file = '/Users/arno/DriveWork/mhealthx/mpower_sample_data/tapping_results.json.TappingSamples-49d2531d-dbda-4b6d-b403-f8763b8e05841011283015383434299.tmp'
    >>> start = 0
    >>> t, tx, ty, button, sample_rate, duration = read_tap_json(input_file, start)
    """
    import json
    import re

    from mhealthx.signals import compute_sample_rate

    f = open(input_file, 'r')
    json_strings = f.readlines()
    parsed_jsons = json.loads(json_strings[0])

    t = []
    tx = []
    ty = []
    button = []
    for parsed_json in parsed_jsons[start::]:
        txy = re.findall(r'\d+', parsed_json['TapCoordinate'])
        tx.append(int(txy[0]))
        ty.append(int(txy[1]))
        t.append(parsed_json['TapTimeStamp'])
        button.append(parsed_json['TappedButtonId'])

    sample_rate, duration = compute_sample_rate(t)

    return t, tx, ty, button, sample_rate, duration
예제 #2
0
파일: xio.py 프로젝트: Sandy4321/mhealthx
def read_tap_json(input_file, start=0):
    """
    Read screen tap json file.

    Parameters
    ----------
    input_file : string
        name of input screen tap json file
    start : integer
        starting index (remove beginning)

    Returns
    -------
    t : list
        time points for tap data
    tx : list
        x coordinates of touch screen
    ty : list
        y coordinates of touch screen
    button : list
        buttons tapped
    sample_rate : float
        sample rate
    duration : float
        duration of time series

    Examples
    --------
    >>> from mhealthx.xio import read_tap_json
    >>> input_file = '/Users/arno/DriveWork/mhealthx/mpower_sample_data/tapping_results.json.TappingSamples-49d2531d-dbda-4b6d-b403-f8763b8e05841011283015383434299.tmp'
    >>> start = 0
    >>> t, tx, ty, button, sample_rate, duration = read_tap_json(input_file, start)
    """
    import json
    import re

    from mhealthx.signals import compute_sample_rate

    f = open(input_file, 'r')
    json_strings = f.readlines()
    parsed_jsons = json.loads(json_strings[0])

    t = []
    tx = []
    ty = []
    button = []
    for parsed_json in parsed_jsons[start::]:
        txy = re.findall(r'\d+', parsed_json['TapCoordinate'])
        tx.append(int(txy[0]))
        ty.append(int(txy[1]))
        t.append(parsed_json['TapTimeStamp'])
        button.append(parsed_json['TappedButtonId'])

    sample_rate, duration = compute_sample_rate(t)

    return t, tx, ty, button, sample_rate, duration
def read_accel_json(input_file, start=0, device_motion=True):
    """
    Read accelerometer or deviceMotion json file.

    Parameters
    ----------
    input_file : string
        name of input accelerometer json file
    start : integer
        starting index (remove beginning)
    device_motion : Boolean
        use deviceMotion vs. accelerometer json file?

    Returns
    -------
    t : list
        time points for accelerometer data
    axyz : list of lists
        x-, y-, and z-axis accelerometer data
    gxyz : list of lists
        x-, y-, and z-axis gravity (if deviceMotion)
    wxyz : list of lists
        w, x, y, z attitude quaternion (if deviceMotion)
    rxyz : list of lists
        x-, y-, and z-axis rotationRate (if deviceMotion)
    sample_rate : float
        sample rate
    duration : float
        duration of time series

    Examples
    --------
    >>> from mhealthx.xio import read_accel_json
    >>> input_file = '/Users/arno/DriveWork/mhealthx/mpower_sample_data/deviceMotion_walking_outbound.json.items-90f7096a-84ac-4f29-a4d1-236ef92c3d262549858224214804657.tmp'
    >>> start = 150
    >>> device_motion = True
    >>> t, axyz, gxyz, wxyz, rxyz, sample_rate, duration = read_accel_json(input_file, start, device_motion)
    """
    import json

    from mhealthx.signals import compute_sample_rate, gravity_min_mse

    f = open(input_file, 'r')
    json_strings = f.readlines()
    parsed_jsons = json.loads(json_strings[0])

    t = []
    ax = []
    ay = []
    az = []
    gx = []
    gy = []
    gz = []
    uw = []
    ux = []
    uy = []
    uz = []
    rx = []
    ry = []
    rz = []
    for parsed_json in parsed_jsons[start::]:
        if device_motion:
            ax.append(parsed_json['userAcceleration']['x'])
            ay.append(parsed_json['userAcceleration']['y'])
            az.append(parsed_json['userAcceleration']['z'])
            t.append(parsed_json['timestamp'])
            gx.append(parsed_json['gravity']['x'])
            gy.append(parsed_json['gravity']['y'])
            gz.append(parsed_json['gravity']['z'])
            uw.append(parsed_json['attitude']['w'])
            ux.append(parsed_json['attitude']['x'])
            uy.append(parsed_json['attitude']['y'])
            uz.append(parsed_json['attitude']['z'])
            rx.append(parsed_json['rotationRate']['x'])
            ry.append(parsed_json['rotationRate']['y'])
            rz.append(parsed_json['rotationRate']['z'])
        else:
            ax.append(parsed_json['x'])
            ay.append(parsed_json['y'])
            az.append(parsed_json['z'])
            t.append(parsed_json['timestamp'])

    axyz = [ax, ay, az]
    gxyz = [gx, gy, gz]
    wxyz = [uw, ux, uy, uz]
    rxyz = [rx, ry, rz]

    sample_rate, duration = compute_sample_rate(t)

    return t, axyz, gxyz, wxyz, rxyz, sample_rate, duration
예제 #4
0
파일: xio.py 프로젝트: Sandy4321/mhealthx
def read_accel_json(input_file, start=0, device_motion=True):
    """
    Read accelerometer or deviceMotion json file.

    Parameters
    ----------
    input_file : string
        name of input accelerometer json file
    start : integer
        starting index (remove beginning)
    device_motion : Boolean
        use deviceMotion vs. accelerometer json file?

    Returns
    -------
    t : list
        time points for accelerometer data
    axyz : list of lists
        x-, y-, and z-axis accelerometer data
    gxyz : list of lists
        x-, y-, and z-axis gravity (if deviceMotion)
    wxyz : list of lists
        w, x, y, z attitude quaternion (if deviceMotion)
    rxyz : list of lists
        x-, y-, and z-axis rotationRate (if deviceMotion)
    sample_rate : float
        sample rate
    duration : float
        duration of time series

    Examples
    --------
    >>> from mhealthx.xio import read_accel_json
    >>> input_file = '/Users/arno/DriveWork/mhealthx/mpower_sample_data/deviceMotion_walking_outbound.json.items-90f7096a-84ac-4f29-a4d1-236ef92c3d262549858224214804657.tmp'
    >>> start = 150
    >>> device_motion = True
    >>> t, axyz, gxyz, wxyz, rxyz, sample_rate, duration = read_accel_json(input_file, start, device_motion)
    """
    import json

    from mhealthx.signals import compute_sample_rate, gravity_min_mse

    f = open(input_file, 'r')
    json_strings = f.readlines()
    parsed_jsons = json.loads(json_strings[0])

    t = []
    ax = []
    ay = []
    az = []
    gx = []
    gy = []
    gz = []
    uw = []
    ux = []
    uy = []
    uz = []
    rx = []
    ry = []
    rz = []
    for parsed_json in parsed_jsons[start::]:
        if device_motion:
            ax.append(parsed_json['userAcceleration']['x'])
            ay.append(parsed_json['userAcceleration']['y'])
            az.append(parsed_json['userAcceleration']['z'])
            t.append(parsed_json['timestamp'])
            gx.append(parsed_json['gravity']['x'])
            gy.append(parsed_json['gravity']['y'])
            gz.append(parsed_json['gravity']['z'])
            uw.append(parsed_json['attitude']['w'])
            ux.append(parsed_json['attitude']['x'])
            uy.append(parsed_json['attitude']['y'])
            uz.append(parsed_json['attitude']['z'])
            rx.append(parsed_json['rotationRate']['x'])
            ry.append(parsed_json['rotationRate']['y'])
            rz.append(parsed_json['rotationRate']['z'])
        else:
            ax.append(parsed_json['x'])
            ay.append(parsed_json['y'])
            az.append(parsed_json['z'])
            t.append(parsed_json['timestamp'])

    axyz = [ax, ay, az]
    gxyz = [gx, gy, gz]
    wxyz = [uw, ux, uy, uz]
    rxyz = [rx, ry, rz]

    sample_rate, duration = compute_sample_rate(t)

    return t, axyz, gxyz, wxyz, rxyz, sample_rate, duration