Repository¶
The Repository class allows to read and write to bb_binary data stores.
The bb_binary data is splitted into several files that are organized in subfolders via date and
time. A Repository manages these bb_binary datafiles and provides methods to
add new FrameContainer, or iterate through Frame.
This class provides performant access to a bb_binary data store but you will have to parse the data by yourself. You might use some helpers from Parsing.
-
load_frame_container(fname)[source]¶ Loads
FrameContainerfrom this filename.
-
class
Repository(root_dir, minute_step=None)[source]¶ Bases:
objectThe Repository class manages multiple bb_binary files. It creates a directory layout that enables fast access by the timestamp.
-
add(frame_container)[source]¶ Adds the frame_container of type
FrameContainerto the repository.
-
open(timestamp, cam_id)[source]¶ Finds and load the
FrameContainerthat matches the timestamp and cam_id.
-
find(ts, cam=None)[source]¶ Returns all files that includes detections to the given timestamp ts.
Todo
UTC timestamps! Generall
-
iter_fnames(begin=None, end=None, cam=None)[source]¶ Returns a generator that yields filenames in sorted order.
From begin to end.
Parameters: - begin (Optional timestamp) – The first filename contains at least one frame with a timestamp greater or equal to begin. If begin is not set, it will start with the earliest file.
- end (Optional timestamp) – The last filename contains at least one frame with a timestamp smaller then end. If not set, it will continue until the last file.
- cam (Optional int) – Only yield filenames with this cam id.
Example:
Files: A B C D E Frames: |-----|-----|-----| |-----|-----| ⬆ ⬆ begin endThis should return the files A, B and C. If begin and end are None, then all will be yield.
-
iter_frames(begin=None, end=None, cam=None)[source]¶ Yields frames in sorted order. From begin to end.
Parameters: - begin (Optional timestamp) – select frames with begin <= timestamp.
- with smallest timestamp in repository if not set. (Starts) –
- end (Optional timestamp) – select frames with timestamp < end.
- with biggest timestamp in repository if not set. (Ends) –
- cam (Optional int) – only yield filenames with this cam id.
Returns: tuple containing:
iterator (iterable): iterator with Frames FrameContainer (FrameContainer): the corresponding FrameContainer for each frame.
Return type: (tuple)
-