from datetime import datetime
imoport numpy as np
from itertools import product
class timeDiscrete():
# 时间格式的离散和对齐-计数
def __init__(self, delta=30, dft='%Y-%m-%d %H:%M:%S'):
self.delta = delta # 重采样时间差 分钟
self.dft = dft # 时间格式
self.dct = [F"{h:02}:{m:02}" for h, m in product(range(24), range(0, 60, delta))] # 重采样后的标签
def idiscrete(self, imoment):
# 时间点 重采样为 delta的15min的时间点
# itime 2024-01-21 11:20:30
itime = datetime.strptime(imoment, self.dft)
hh, mm, ss = itime.hour, itime.minute, itime.second
hm = hh * 60 + mm + ss / 60
ihm = int(np.ceil(hm/self.delta))
res = self.dct[ihm] if ihm < self.dct.__len__() else "00:00"
return res