时间离散/重采样

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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 @   ddzhen  阅读(9)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示