4 from time_formats
import *
7 ##############################################
8 def shift_time(intervals_sec
, shift_sec
):
10 shifted_intervals
= []
12 for i
in intervals_sec
:
15 shifted_intervals
.append((l
,r
))
17 return shifted_intervals
19 ##############################################
20 def rel2abs(intervals_sec
, zeroTime_str
):
22 shifted_intervals_sec
= shift_time(intervals_sec
, str2sec(zeroTime_str
))
24 return periodsSec2periodsStr(shifted_intervals_sec
)
26 ##############################################
27 def abs2rel(intervals_sec
, zeroTime_str
):
29 shifted_intervals_sec
= shift_time(intervals_sec
, -str2sec(zeroTime_str
))
31 return shifted_intervals_sec
34 ####################################################
35 def select_longIntervals(intervals_sec
, minLength_sec
):
38 for i
in intervals_sec
:
39 if i
[1] - i
[0] >= minLength_sec
:
40 long_intervals
.append(i
)
45 ####################################################
46 def split_longInterval(interval_str
, maxLength_sec
):
48 interval_sec
= periodsStr2periodsSec([interval_str
])[0]
49 interval_length
= interval_sec
[1] - interval_sec
[0]
51 if interval_length
<= maxLength_sec
:
54 times
= int(interval_length
/maxLength_sec
)
55 rest
= interval_length
- times
*maxLength_sec
57 shorter_intervals
= []
58 for i
in range (times
-1):
59 shorter_intervals
.append((interval_sec
[0] + maxLength_sec
*i
, interval_sec
[0]+ (i
+1)*maxLength_sec
))
62 if rest
< float(maxLength_sec
)/3:
64 shorter_intervals
.append((interval_sec
[0]+ maxLength_sec
*(times
-1),
65 interval_sec
[0]+ maxLength_sec
*times
+ rest
))
68 shorter_intervals
.append((interval_sec
[0]+ maxLength_sec
*(times
-1),
69 interval_sec
[0]+ maxLength_sec
*times
))
71 shorter_intervals
.append((interval_sec
[0]+ maxLength_sec
*times
,
72 interval_sec
[0]+ maxLength_sec
*times
+ rest
))
74 return periodsSec2periodsStr(shorter_intervals
)