def _date_list(gid_list): unixtime_list = ibs.get_image_unixtime(gid_list) datetime_list = [ ut.unixtime_to_datetimestr(unixtime) if unixtime is not None else 'UNKNOWN' for unixtime in unixtime_list ] datetime_split_list = [ datetime.split(' ') for datetime in datetime_list ] date_list = [ datetime_split[0] if len(datetime_split) == 2 else 'UNKNOWN' for datetime_split in datetime_split_list ] return date_list
def view_imagesets(): ibs = current_app.ibs filtered = True imgsetid = request.args.get('imgsetid', '') if len(imgsetid) > 0: imgsetid_list = imgsetid.strip().split(',') imgsetid_list = [ None if imgsetid_ == 'None' or imgsetid_ == '' else int(imgsetid_) for imgsetid_ in imgsetid_list ] else: imgsetid_list = ibs.get_valid_imgsetids() filtered = False start_time_posix_list = ibs.get_imageset_start_time_posix(imgsetid_list) datetime_list = [ ut.unixtime_to_datetimestr(start_time_posix) if start_time_posix is not None else 'Unknown' for start_time_posix in start_time_posix_list ] gids_list = [ ibs.get_valid_gids(imgsetid=imgsetid_) for imgsetid_ in imgsetid_list ] aids_list = [ ut.flatten(ibs.get_image_aids(gid_list)) for gid_list in gids_list ] images_reviewed_list = [ appf.imageset_image_processed(ibs, gid_list) for gid_list in gids_list ] annots_reviewed_viewpoint_list = [ appf.imageset_annot_viewpoint_processed(ibs, aid_list) for aid_list in aids_list ] annots_reviewed_quality_list = [ appf.imageset_annot_quality_processed(ibs, aid_list) for aid_list in aids_list ] image_processed_list = [ images_reviewed.count(True) for images_reviewed in images_reviewed_list ] annot_processed_viewpoint_list = [ annots_reviewed.count(True) for annots_reviewed in annots_reviewed_viewpoint_list ] annot_processed_quality_list = [ annots_reviewed.count(True) for annots_reviewed in annots_reviewed_quality_list ] reviewed_list = [ all(images_reviewed) and all(annots_reviewed_viewpoint) and all(annot_processed_quality) for images_reviewed, annots_reviewed_viewpoint, annot_processed_quality in zip(images_reviewed_list, annots_reviewed_viewpoint_list, annots_reviewed_quality_list) ] imageset_list = zip( imgsetid_list, ibs.get_imageset_text(imgsetid_list), ibs.get_imageset_num_gids(imgsetid_list), image_processed_list, ibs.get_imageset_num_aids(imgsetid_list), annot_processed_viewpoint_list, annot_processed_quality_list, start_time_posix_list, datetime_list, reviewed_list, ) imageset_list.sort(key=lambda t: t[7]) return appf.template('view', 'imagesets', filtered=filtered, imgsetid_list=imgsetid_list, imgsetid_list_str=','.join(map(str, imgsetid_list)), num_imgsetids=len(imgsetid_list), imageset_list=imageset_list, num_imagesets=len(imageset_list))
def get_timestats_dict(unixtime_list, full=True, isutc=False): import utool as ut unixtime_stats = ut.get_stats(unixtime_list, use_nan=True) datetime_stats = {} if unixtime_stats.get('empty_list', False): datetime_stats = unixtime_stats return datetime_stats for key in ['max', 'min', 'mean']: try: datetime_stats[key] = ut.unixtime_to_datetimestr( unixtime_stats[key], isutc=isutc) except KeyError: pass except ValueError as ex: datetime_stats[key] = 'NA' except Exception as ex: ut.printex(ex, keys=['key', 'unixtime_stats']) raise for key in ['std']: try: datetime_stats[key] = str( ut.get_unix_timedelta(int(round(unixtime_stats[key])))) except KeyError: pass except ValueError as ex: datetime_stats[key] = 'NA' try: datetime_stats['range'] = str( ut.get_unix_timedelta( int(round(unixtime_stats['max'] - unixtime_stats['min'])))) except KeyError: pass except ValueError as ex: datetime_stats['range'] = 'NA' if full: #unused_keys = (set(unixtime_stats.keys()) - set(datetime_stats.keys()) for key in ['nMax', 'num_nan', 'shape', 'nMin']: datetime_stats[key] = unixtime_stats[key] #print('Unused keys = %r' % (set(unixtime_stats.keys()) - set(datetime_stats.keys()),)) return datetime_stats
def get_timestats_dict(unixtime_list, full=True, isutc=False): import utool as ut unixtime_stats = ut.get_stats(unixtime_list, use_nan=True) datetime_stats = {} if unixtime_stats.get('empty_list', False): datetime_stats = unixtime_stats return datetime_stats # elif unixtime_stats.get('num_nan', 0) == unixtime_stats.get('shape')[0]: # datetime_stats = unixtime_stats # return datetime_stats for key in ['max', 'min', 'mean']: try: datetime_stats[key] = ut.unixtime_to_datetimestr(unixtime_stats[key], isutc=isutc) except KeyError: pass except (ValueError, OSError) as ex: datetime_stats[key] = 'NA' except Exception as ex: ut.printex(ex, keys=['key', 'unixtime_stats']) raise for key in ['std']: try: datetime_stats[key] = str(ut.get_unix_timedelta(int(round(unixtime_stats[key])))) except KeyError: pass except (ValueError, OSError) as ex: datetime_stats[key] = 'NA' try: datetime_stats['range'] = str(ut.get_unix_timedelta(int(round(unixtime_stats['max'] - unixtime_stats['min'])))) except KeyError: pass except (ValueError, OSError) as ex: datetime_stats['range'] = 'NA' if full: #unused_keys = (set(unixtime_stats.keys()) - set(datetime_stats.keys()) for key in ['nMax', 'num_nan', 'shape', 'nMin']: datetime_stats[key] = unixtime_stats[key] #print('Unused keys = %r' % (set(unixtime_stats.keys()) - set(datetime_stats.keys()),)) return datetime_stats
def view_images(): ibs = current_app.ibs filtered = True imgsetid_list = [] gid = request.args.get('gid', '') imgsetid = request.args.get('imgsetid', '') page = max(0, int(request.args.get('page', 1))) if len(gid) > 0: gid_list = gid.strip().split(',') gid_list = [ None if gid_ == 'None' or gid_ == '' else int(gid_) for gid_ in gid_list ] elif len(imgsetid) > 0: imgsetid_list = imgsetid.strip().split(',') imgsetid_list = [ None if imgsetid_ == 'None' or imgsetid_ == '' else int(imgsetid_) for imgsetid_ in imgsetid_list ] gid_list = ut.flatten([ ibs.get_valid_gids(imgsetid=imgsetid) for imgsetid_ in imgsetid_list ]) else: gid_list = ibs.get_valid_gids() filtered = False # Page page_start = min(len(gid_list), (page - 1) * appf.PAGE_SIZE) page_end = min(len(gid_list), page * appf.PAGE_SIZE) page_total = int(math.ceil(len(gid_list) / appf.PAGE_SIZE)) page_previous = None if page_start == 0 else page - 1 page_next = None if page_end == len(gid_list) else page + 1 gid_list = gid_list[page_start:page_end] print('[web] Loading Page [ %d -> %d ] (%d), Prev: %s, Next: %s' % (page_start, page_end, len(gid_list), page_previous, page_next, )) image_unixtime_list = ibs.get_image_unixtime(gid_list) datetime_list = [ ut.unixtime_to_datetimestr(image_unixtime) if image_unixtime is not None else 'Unknown' for image_unixtime in image_unixtime_list ] image_list = zip( gid_list, [ ','.join(map(str, imgsetid_list_)) for imgsetid_list_ in ibs.get_image_imgsetids(gid_list) ], ibs.get_image_gnames(gid_list), image_unixtime_list, datetime_list, ibs.get_image_gps(gid_list), ibs.get_image_party_tag(gid_list), ibs.get_image_contributor_tag(gid_list), ibs.get_image_notes(gid_list), appf.imageset_image_processed(ibs, gid_list), ) image_list.sort(key=lambda t: t[3]) return appf.template('view', 'images', filtered=filtered, imgsetid_list=imgsetid_list, imgsetid_list_str=','.join(map(str, imgsetid_list)), num_imgsetids=len(imgsetid_list), gid_list=gid_list, gid_list_str=','.join(map(str, gid_list)), num_gids=len(gid_list), image_list=image_list, num_images=len(image_list), page=page, page_start=page_start, page_end=page_end, page_total=page_total, page_previous=page_previous, page_next=page_next)