Exemplo n.º 1
0
def format(entry):
    formatted_entry = ad.AttrDict()
    formatted_entry["_id"] = entry["_id"]
    formatted_entry.user_id = entry.user_id
    
    m = entry.metadata
    if "time_zone" not in m:
        m.time_zone = "America/Los_Angeles" 
    logging.debug("Timestamp conversion: %s -> %s done" % (entry.metadata.write_ts, m.write_ts))
    fc.expand_metadata_times(m)
    formatted_entry.metadata = m

    data = ad.AttrDict()
    data.curr_state = state_map[entry.data.currState].value
    logging.debug("Mapped %s -> %s" % (entry.data.currState, data.curr_state))
    data.transition = transition_map[entry.data.transition].value
    if "ts" not in data:
        data.ts = formatted_entry.metadata.write_ts
        logging.debug("No existing timestamp, copyied from metadata%s" % data.ts)
        data.local_dt = formatted_entry.metadata.write_local_dt
        data.fmt_time = formatted_entry.metadata.write_fmt_time
    else:
        logging.debug("Retaining existing timestamp %s" % data.ts)
        fc.expand_data_times(data, metadata)

    formatted_entry.data = data

    return formatted_entry
Exemplo n.º 2
0
def format(entry):
    formatted_entry = ad.AttrDict()
    formatted_entry["_id"] = entry["_id"]
    formatted_entry.user_id = entry.user_id

    m = entry.metadata
    if "time_zone" not in m:
        m.time_zone = "America/Los_Angeles"
    logging.debug("Timestamp conversion: %s -> %s done" %
                  (entry.metadata.write_ts, m.write_ts))
    fc.expand_metadata_times(m)
    formatted_entry.metadata = m

    data = ad.AttrDict()
    data.curr_state = state_map[entry.data.currState].value
    logging.debug("Mapped %s -> %s" % (entry.data.currState, data.curr_state))
    data.transition = transition_map[entry.data.transition].value
    if "ts" not in data:
        data.ts = formatted_entry.metadata.write_ts
        logging.debug("No existing timestamp, copyied from metadata%s" %
                      data.ts)
        data.local_dt = formatted_entry.metadata.write_local_dt
        data.fmt_time = formatted_entry.metadata.write_fmt_time
    else:
        logging.debug("Retaining existing timestamp %s" % data.ts)
        fc.expand_data_times(data, metadata)

    formatted_entry.data = data

    return formatted_entry
Exemplo n.º 3
0
def format_location_raw(entry):
    formatted_entry = ad.AttrDict()
    formatted_entry["_id"] = entry["_id"]
    formatted_entry.user_id = entry.user_id

    metadata = entry.metadata
    metadata.time_zone = "America/Los_Angeles"
    metadata.write_ts = old_div(float(entry.metadata.write_ts), 1000)
    fc.expand_metadata_times(metadata)
    formatted_entry.metadata = metadata

    data = ad.AttrDict()
    data.latitude = entry.data.mLatitude
    data.longitude = entry.data.mLongitude
    data.loc = geojson.Point((data.longitude, data.latitude))
    data.ts = old_div(float(entry.data.mTime),
                      1000)  # convert the ms from the phone to secs
    fc.expand_data_times(data, metadata)
    data.altitude = entry.data.mAltitude
    data.accuracy = entry.data.mAccuracy
    data.sensed_speed = entry.data.mSpeed
    data.heading = entry.data.mBearing
    formatted_entry.data = data

    return formatted_entry
Exemplo n.º 4
0
def format_location_simple(entry):
    formatted_entry = ad.AttrDict()
    formatted_entry["_id"] = entry["_id"]
    formatted_entry.user_id = entry.user_id

    metadata = entry.metadata
    fc.expand_metadata_times(metadata)
    formatted_entry.metadata = metadata

    data = entry.data
    fc.expand_data_times(data, metadata)
    data.loc = geojson.Point((data.longitude, data.latitude))
    data.heading = entry.data.bearing
    del data.bearing
    formatted_entry.data = data

    return formatted_entry
Exemplo n.º 5
0
def format(entry):
    formatted_entry = ad.AttrDict()
    formatted_entry["_id"] = entry["_id"]
    formatted_entry.user_id = entry.user_id
    
    metadata = entry.metadata
    if "time_zone" not in metadata:
        metadata.time_zone = "America/Los_Angeles"
    logging.debug("Timestamp conversion: %s -> %s done" % (entry.metadata.write_ts, metadata.write_ts))
    fc.expand_metadata_times(metadata)
    formatted_entry.metadata = metadata

    data = entry.data
    fc.expand_data_times(data, metadata)
    formatted_entry.data = data

    return formatted_entry
Exemplo n.º 6
0
def format_location_simple(entry):
    formatted_entry = ad.AttrDict()
    formatted_entry["_id"] = entry["_id"]
    formatted_entry.user_id = entry.user_id

    metadata = entry.metadata
    fc.expand_metadata_times(metadata)
    formatted_entry.metadata = metadata

    data = entry.data
    fc.expand_data_times(data, metadata)
    data.loc = geojson.Point((data.longitude, data.latitude))
    data.heading = entry.data.bearing
    del data.bearing
    formatted_entry.data = data

    return formatted_entry
Exemplo n.º 7
0
def format(entry):
    formatted_entry = ad.AttrDict()
    formatted_entry["_id"] = entry["_id"]
    formatted_entry.user_id = entry.user_id
    
    metadata = entry.metadata
    if "time_zone" not in metadata:
        metadata.time_zone = "America/Los_Angeles"
    logging.debug("Timestamp conversion: %s -> %s done" % (entry.metadata.write_ts, metadata.write_ts))
    fc.expand_metadata_times(metadata)
    formatted_entry.metadata = metadata

    data = entry.data
    fc.expand_data_times(data, metadata)
    data.local_dt = ecsdlq.get_local_date(data.ts, metadata.time_zone)
    data.fmt_time = arrow.get(data.ts).to(metadata.time_zone).isoformat()
    formatted_entry.data = data

    return formatted_entry
Exemplo n.º 8
0
def format(entry):
    formatted_entry = ad.AttrDict()
    formatted_entry["_id"] = entry["_id"]
    formatted_entry.user_id = entry.user_id

    metadata = entry.metadata
    if "time_zone" not in metadata:
        metadata.time_zone = "America/Los_Angeles"
    logging.debug("Timestamp conversion: %s -> %s done" %
                  (entry.metadata.write_ts, metadata.write_ts))
    fc.expand_metadata_times(metadata)
    formatted_entry.metadata = metadata

    data = entry.data
    fc.expand_data_times(data, metadata)
    data.local_dt = ecsdlq.get_local_date(data.ts, metadata.time_zone)
    data.fmt_time = arrow.get(data.ts).to(metadata.time_zone).isoformat()
    formatted_entry.data = data

    return formatted_entry
Exemplo n.º 9
0
def format(entry):
    formatted_entry = ad.AttrDict()
    formatted_entry["_id"] = entry["_id"]
    formatted_entry.user_id = entry.user_id
    
    m = entry.metadata
    fc.expand_metadata_times(m)
    formatted_entry.metadata = m

    data = ad.AttrDict()
    data.curr_state = state_map[entry.data.currState].value
    logging.debug("Mapped %s -> %s" % (entry.data.currState, data.curr_state))
    
    # The iOS state diagram is significantly more complex than the android state diagram
    # So there are a lot more transitions. But some of the intermediate states are 
    # not interesting, so it seems like it should be possible to collapse them to the 
    # simple 2-state android state machine. But that requires looking at a window of
    # transitions, which we don't have here. Let's focus on simply mapping here and 
    # deal with collapsing later
    # data.transition_raw = entry.data.transition
    
    data.transition = transition_map[entry.data.transition].value
    if entry.data.transition is not None:
        data.transition = transition_map[entry.data.transition].value
    else:
        data.transition = None

    logging.debug("Mapped %s -> %s" % (entry.data.transition, data.transition))
    
    if "ts" not in data:
        data.ts = formatted_entry.metadata.write_ts
        logging.debug("No existing timestamp, copyied from metadata%s" % data.ts)
        data.local_dt = formatted_entry.metadata.write_local_dt
        data.fmt_time = formatted_entry.metadata.write_fmt_time
    else: 
        logging.debug("Retaining existing timestamp %s" % data.ts)
        fc.expand_data_times(data, metadata)

    formatted_entry.data = data

    return formatted_entry
Exemplo n.º 10
0
def format_location_raw(entry):
    formatted_entry = ad.AttrDict()
    formatted_entry["_id"] = entry["_id"]
    formatted_entry.user_id = entry.user_id

    metadata = entry.metadata
    metadata.time_zone = "America/Los_Angeles"
    metadata.write_ts = old_div(float(entry.metadata.write_ts), 1000)
    fc.expand_metadata_times(metadata)
    formatted_entry.metadata = metadata

    data = ad.AttrDict()
    data.latitude = entry.data.mLatitude
    data.longitude = entry.data.mLongitude
    data.loc = geojson.Point((data.longitude, data.latitude))
    data.ts = old_div(float(entry.data.mTime), 1000) # convert the ms from the phone to secs
    fc.expand_data_times(data, metadata)
    data.altitude = entry.data.mAltitude
    data.accuracy = entry.data.mAccuracy
    data.sensed_speed = entry.data.mSpeed
    data.heading = entry.data.mBearing
    formatted_entry.data = data

    return formatted_entry