Skip to content
Snippets Groups Projects
Commit d7dbd8c1 authored by tomrink's avatar tomrink
Browse files

snapshot...

parent dff81327
No related branches found
No related tags found
No related merge requests found
...@@ -110,9 +110,17 @@ class Files: ...@@ -110,9 +110,17 @@ class Files:
self._current_index = 0 self._current_index = 0
def get_datetime(self, pathname): def get_datetime(self, pathname):
"""
:param pathname: The full-path of the file.
:return: The file's time label as a datetime object.
"""
pass pass
def get_file_containing_time(self, timestamp): def get_file_containing_time(self, timestamp):
"""
:param timestamp: seconds since the epoch
:return: the file whose time range (defined as the difference between consecutive file time labels) contains timestamp.
"""
k = -1 k = -1
for i in range(self.ftimes.shape[0]): for i in range(self.ftimes.shape[0]):
if (timestamp >= self.ftimes[i, 0]) and (timestamp < self.ftimes[i, 1]): if (timestamp >= self.ftimes[i, 0]) and (timestamp < self.ftimes[i, 1]):
...@@ -124,6 +132,11 @@ class Files: ...@@ -124,6 +132,11 @@ class Files:
return self.flist[k], self.ftimes[k, 0], k return self.flist[k], self.ftimes[k, 0], k
def get_file(self, timestamp, window=None): def get_file(self, timestamp, window=None):
"""
:param timestamp: seconds since the epoch.
:param window: the duration of files in this object. Defaults to the constructor time span.
:return: the file whose duration contains the timestamp.
"""
if window is None: if window is None:
window = self.span_seconds window = self.span_seconds
else: else:
...@@ -135,6 +148,22 @@ class Files: ...@@ -135,6 +148,22 @@ class Files:
else: else:
return None, None, None return None, None, None
def get_file_in_range(self, timestamp, t_lo_minutes, t_hi_minutes):
"""
:param timestamp:
:param t_lo_minutes: can be negative or positive
:param t_hi_minutes: can be negative or positive, but must be greater than t_lo_minutes.
:return: the file whose time label is within the absolute range (timestamp + t_lo_minutes, timestamp + t_hi_minutes)
"""
t_lo = timestamp + datetime.timedelta(minutes=t_lo_minutes).seconds
t_hi = timestamp + datetime.timedelta(minutes=t_hi_minutes).seconds
midx = np.where(np.logical_and(self.ftimes[:, 0] >= t_lo, self.ftimes[:, 0] < t_hi))[0]
midx = midx[0] # the first occurrence
return self.flist[midx], self.ftimes[midx, 0], midx
def get_parameters(self): def get_parameters(self):
pass pass
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment