Пример #1
0
def add_trackpoints_to_db(trackpoints, track): 
    for trackpoint in trackpoints:
        trackpoint_in_db = Trackpoint.get_trackpoint_by_lat_lon_time(trackpoint.latitude, \
                                        trackpoint.longitude, trackpoint.timestamp)
        if not trackpoint_in_db:
            trackpoint.track_id = track.id

            try:
                DBSession.add(trackpoint)
                DBSession.flush()
                print trackpoint.timestamp
            except Exception, e:
                print "\n\nTrackpoint could not be added!\n\n"
                print e
                DBSession.rollback()
Пример #2
0
def sync_image_trackpoint(image):
    print(image.timestamp_original)
    camera_offset = timedelta(seconds=0)
    tight_offset = timedelta(seconds=300) # match pic within 600 seconds (10min)
    max_offset = timedelta(seconds=43200) # match pic within 43200 seconds (12h)
    curr_offset =43200 # maximum timestamp-delta of closest trackpoint in seconds
    for offset in (tight_offset, max_offset):
        start_timestamp = image.timestamp_original-camera_offset-offset
        end_timestamp = image.timestamp_original-camera_offset+offset
        trackpoints = Trackpoint.get_trackpoints_by_timerange(start_timestamp, end_timestamp)
        if trackpoints:
            break
    if trackpoints:
        for trackpoint in trackpoints:
            timediff = image.timestamp_original - trackpoint.timestamp
            curr_diff = timediff.days*86400+timediff.seconds #delta between trackpoint and image in seconds
            if abs(curr_diff)<curr_offset: #is absolute value of curr_diff smaller than the last curr_offset-value?
                curr_offset = abs(curr_diff) #set delta to the current closest delta
                curr_trackpoint = trackpoint #set to current closest trackpoint-match
    else:
        curr_trackpoint = None
    return curr_trackpoint