时间离散/重采样

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

  

posted @ 2024-06-24 10:45  ddzhen  阅读(8)  评论(0编辑  收藏  举报