sleap.info.write_tracking_h5#

Generate an HDF5 or CSV file with track occupancy and point location data.

Ignores tracks that are entirely empty. By default will also ignore empty frames from the beginning and end of video, although --all-frames argument will make it include empty frames from beginning of video.

The HDF5 file has these datasets:

  • “track_occupancy” (shape: tracks * frames)

  • “tracks” (shape: frames * nodes * 2 * tracks)

  • “track_names” (shape: tracks)

  • “node_names” (shape: nodes)

  • “edge_names” (shape: nodes - 1)

  • “edge_inds” (shape: nodes - 1)

  • “point_scores” (shape: frames * nodes * tracks)

  • “instance_scores” (shape: frames * tracks)

  • “tracking_scores” (shape: frames * tracks)

  • “labels_path”: Path to the source .slp file (if available from GUI context)

  • “video_path”: Path to the source Video.

  • “video_ind”: Scalar integer index of the video within the Labels.

  • “provenance”: Dictionary that denotes the origin of the Labels.

Note: the datasets are stored column-major as expected by MATLAB.

sleap.info.write_tracking_h5.get_edges_as_np_strings(labels: Labels) List[Tuple[bytes_, bytes_]][source]#

Get list of edge names as np.string_.

sleap.info.write_tracking_h5.get_nodes_as_np_strings(labels: Labels) List[bytes_][source]#

Get list of node names as np.string_.

sleap.info.write_tracking_h5.get_occupancy_and_points_matrices(labels: Labels, all_frames: bool, video: Video | None = None) Tuple[ndarray, ndarray, ndarray, ndarray, ndarray][source]#

Builds numpy matrices with track occupancy and point location data.

Note: This function assumes either all instances have tracks or no instances have tracks.

Parameters:
  • labels – The Labels from which to get data.

  • all_frames – If True, then includes zeros so that frame index will line up with columns in the output. Otherwise, there will only be columns for the frames between the first and last frames with labeling data.

  • video – The Video from which to get data. If no video is specified, then the first video in source_object videos list will be used. If there are no labeled frames in the video, then None will be returned.

Returns:

  • occupancy matrix with shape (tracks, frames)

  • point location array with shape (frames, nodes, 2, tracks)

  • point scores array with shape (frames, nodes, tracks)

  • instance scores array with shape (frames, tracks)

  • tracking scores array with shape (frames, tracks)

Return type:

tuple of arrays

sleap.info.write_tracking_h5.get_tracks_as_np_strings(labels: Labels) List[bytes_][source]#

Get list of track names as np.string_.

sleap.info.write_tracking_h5.main(labels: Labels, output_path: str, labels_path: str | None = None, all_frames: bool = True, video: Video | None = None, csv: bool = False)[source]#

Writes HDF5 file with matrices of track occupancy and coordinates.

Parameters:
  • labels – The Labels from which to get data.

  • output_path – Path of HDF5 file to create.

  • labels_path – Path of labels .slp file.

  • all_frames – If True, then includes zeros so that frame index will line up with columns in the output. Otherwise, there will only be columns for the frames between the first and last frames with labeling data.

  • video – The Video from which to get data. If no video is specified, then the first video in source_object videos list will be used. If there are no labeled frames in the video, then no output file will be written.

  • csv – Bool to save the analysis as a csv file if set to True

Returns:

None

sleap.info.write_tracking_h5.remove_empty_tracks_from_matrices(track_names: List, occupancy_matrix: ndarray, locations_matrix: ndarray, point_scores: ndarray, instance_scores: ndarray, tracking_scores: ndarray) Tuple[List, ndarray, ndarray, ndarray, ndarray, ndarray][source]#

Removes matrix rows/columns for unoccupied tracks.

Parameters:
  • track_names – List of track names

  • occupancy_matrix – 2d numpy matrix, rows correspond to tracks

  • locations_matrix – 4d numpy matrix, last index is track

  • point_scores – 3d numpy matrix, last index is track

  • instance_scores – 2d numpy matrix, last index is track

  • tracking_scores – 2d numpy matrix, last index is track

Returns:

track_names, occupancy_matrix, locations_matrix, point_scores, instance_scores tracking_scores but without the rows/columns corresponding to unoccupied tracks.

sleap.info.write_tracking_h5.write_csv_file(output_path, data_dict)[source]#

Write CSV file with data from given dictionary.

Parameters:
  • output_path – Path of HDF5 file.

  • data_dict – Dictionary with data to save. Keys are dataset names, values are the data.

Returns:

None

sleap.info.write_tracking_h5.write_occupancy_file(output_path: str, data_dict: Dict[str, Any], transpose: bool = True)[source]#

Write HDF5 file with data from given dictionary.

Parameters:
  • output_path – Path of HDF5 file.

  • data_dict – Dictionary with data to save. Keys are dataset names, values are the data.

  • transpose – If True, then any ndarray in data dictionary will be transposed before saving. This is useful for writing files that will be imported into MATLAB, which expects data in column-major format.

Returns:

None