MCPcopy Index your code
hub / github.com/DeepLabCut/DeepLabCut / _format_gt_data

Function _format_gt_data

deeplabcut/benchmark/metrics.py:26–51  ·  view source on GitHub ↗
(h5file: str, test_indices: list[int] | None = None)

Source from the content-addressed store, hash-verified

24
25
26def _format_gt_data(h5file: str, test_indices: list[int] | None = None):
27 df = pd.read_hdf(h5file)
28
29 animals = _get_unique_level_values(df.columns, "individuals")
30 kpts = _get_unique_level_values(df.columns, "bodyparts")
31 try:
32 n_unique = len(_get_unique_level_values(df.xs("single", level="individuals", axis=1).columns, "bodyparts"))
33 except KeyError:
34 n_unique = 0
35 guarantee_multiindex_rows(df)
36 file_paths = [os.path.join(*row) for row in df.index.to_list()]
37 temp = (
38 df.stack("individuals", dropna=False)
39 .reindex(animals, level="individuals")
40 .reindex(kpts, level="bodyparts", axis=1)
41 )
42 data = temp.to_numpy().reshape((len(file_paths), len(animals), -1, 2))
43 if test_indices is not None:
44 file_paths = [file_paths[i] for i in test_indices]
45 data = [data[i] for i in test_indices]
46
47 meta = {"animals": animals, "keypoints": kpts, "n_unique": n_unique}
48 return {
49 "annotations": dict(zip(file_paths, data, strict=False)),
50 "metadata": meta,
51 }
52
53
54def _get_unique_level_values(header, level):

Callers 1

calc_rmse_from_objFunction · 0.85

Calls 2

_get_unique_level_valuesFunction · 0.85

Tested by

no test coverage detected