def get_qsos_per_hour_per_band(cursor):
qsos_per_hour = []
qsos_by_band = [0] * constants.Bands.count()
slice_minutes = 15
slices_per_hour = 60 / slice_minutes
window_seconds = slice_minutes * 60
logging.debug('Load QSOs per Hour by Band')
cursor.execute('SELECT timestamp / %d * %d AS ts, band_id, COUNT(*) AS qso_count \n'
'FROM qso_log GROUP BY ts, band_id;' % (window_seconds, window_seconds))
for row in cursor:
if len(qsos_per_hour) == 0:
qsos_per_hour.append([0] * constants.Bands.count())
qsos_per_hour[-1][0] = row[0]
while qsos_per_hour[-1][0] != row[0]:
ts = qsos_per_hour[-1][0] + window_seconds
qsos_per_hour.append([0] * constants.Bands.count())
qsos_per_hour[-1][0] = ts
qsos_per_hour[-1][row[1]] = row[2] * slices_per_hour
qsos_by_band[row[1]] += row[2]
for rec in qsos_per_hour: # FIXME
rec[0] = datetime.utcfromtimestamp(rec[0])
t = rec[0].strftime('%H:%M:%S')
return qsos_per_hour, qsos_by_band
评论列表
文章目录