diff --git a/examples/projection.h5 b/examples/projection.h5 index d6ccecde2b78f0f733b957afeb4b5edc44531d28..e4c4e1df717ce3ab2473d3288b9f069d80dbe3a0 100644 Binary files a/examples/projection.h5 and b/examples/projection.h5 differ diff --git a/examples/thd_joint_joint.h5 b/examples/thd_joint_joint.h5 index b51ff52cba51b9c913d6cb8658d11ce865c4d2b3..0ef42a1bc6af2fd8ea535d4c7ce0a8f0dd96c095 100644 Binary files a/examples/thd_joint_joint.h5 and b/examples/thd_joint_joint.h5 differ diff --git a/pyproject.toml b/pyproject.toml index 66171355b48e78eed7661712531767b5f24be79d..7cbc0edea22d9f801902e074c1aae6a0944745f4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "h5schemas" -version = "0.1.12" +version = "0.1.13" description = "Add your description here" readme = "README.md" authors = [ diff --git a/scripts/add_joint_states_to_projection.py b/scripts/add_joint_states_to_projection.py new file mode 100644 index 0000000000000000000000000000000000000000..bf82dac35060b4541c318c84b0d40f28cae299f0 --- /dev/null +++ b/scripts/add_joint_states_to_projection.py @@ -0,0 +1,54 @@ +from h5py import File +import numpy as np +from h5schemas.projection.add_projection import ( + init_projection_dataset, + add_projection_sample, +) +from h5schemas.thd_joint_states.add_thd_joint_states import ( + init_thd_joint_states, + add_thd_joint_states_sample, +) + + +def main(): + # Generate a file in write mode. + test_file = File("./examples/projection.h5", "a") + + # Initialize the .H5 structure + init_projection_dataset(test_file, False, (128, 128), (0.139, 0.139)) + + # # Add joint states group + # joint_states_group = test_file.require_group("/joint_states/") + + # Init joint states group + init_thd_joint_states(test_file) + + # Add dummy projections 1 + add_projection_sample( + test_file, + 1e5 * np.random.random((128, 128)), + [0.0, 1.0, 2.0], + [3.0, 4.0, 5.0, 6.0], + [7.0, 8.0, 9.0], + [10.0, 11.0, 12.0, 13], + ) + add_thd_joint_states_sample(test_file, *np.arange(15)) + + # # Add dummy projections 2 + # add_projection_sample( + # test_file, + # 1e5 * np.random.random((128, 128)), + # np.array([0.0, 1.0, 2.0]), + # np.array([3.0, 4.0, 5.0, 6.0]), + # np.array([7.0, 8.0, 9.0]), + # np.array([10.0, 11.0, 12.0, 13]), + # voltage_kv=100, + # ) + # add_thd_joint_states_sample(joint_states_group, *np.arange(15, 30)) + + # # Access data + # print(test_file["/image/image_array"][...]) + + +if __name__ == "__main__": + main() diff --git a/src/h5schemas/h5_types/base_dataset.py b/src/h5schemas/h5_types/base_dataset.py index 0d65a396590dd569149923c1ca0381d30a94cc4b..4ab919b5cb8237397d081a77ff9779e65593c6e3 100644 --- a/src/h5schemas/h5_types/base_dataset.py +++ b/src/h5schemas/h5_types/base_dataset.py @@ -12,7 +12,7 @@ class BaseDataset: def __init__(self, definition: GroupDefinition): self.path = definition.path self.dataset_name = definition.path.rsplit("/")[-1] - self.group = definition.path[: -len(self.dataset_name)] + self.group = definition.path[1 : -len(self.dataset_name)] self.description = definition.description @classmethod diff --git a/src/h5schemas/thd_joint_states/add_thd_joint_states.py b/src/h5schemas/thd_joint_states/add_thd_joint_states.py index f1a82a5c388054bbcae97a9ed69f73098ce240b7..afbb909375a526fd1b3cc593bef2787d72e07a53 100644 --- a/src/h5schemas/thd_joint_states/add_thd_joint_states.py +++ b/src/h5schemas/thd_joint_states/add_thd_joint_states.py @@ -8,7 +8,9 @@ from h5schemas.header.add_header import add_header_sample, check_uuid_time_stamp def init_thd_joint_states(h5_file: File | Group): schema_groups = get_source_schemas() - initialize_dataset(h5_file, schema_groups) + joints = h5_file.require_group("joints") + + initialize_dataset(joints, schema_groups) def get_source_schemas(): @@ -16,55 +18,55 @@ def get_source_schemas(): def add_thd_joint_states_sample( - h5_file: File | Group, - master_joint_e1: float | None = None, - master_joint_a1: float | None = None, - master_joint_a2: float | None = None, - master_joint_a3: float | None = None, - master_joint_a4: float | None = None, - master_joint_a5: float | None = None, - master_joint_a6: float | None = None, - slave_joint_e1: float | None = None, - slave_joint_a1: float | None = None, - slave_joint_a2: float | None = None, - slave_joint_a3: float | None = None, - slave_joint_a4: float | None = None, - slave_joint_a5: float | None = None, - slave_joint_a6: float | None = None, - table_joint_a1: float | None = None, - uuid: str | None = None, - timestamp: int | None = None,): - + h5_file: File | Group, + master_joint_e1: float | None = None, + master_joint_a1: float | None = None, + master_joint_a2: float | None = None, + master_joint_a3: float | None = None, + master_joint_a4: float | None = None, + master_joint_a5: float | None = None, + master_joint_a6: float | None = None, + slave_joint_e1: float | None = None, + slave_joint_a1: float | None = None, + slave_joint_a2: float | None = None, + slave_joint_a3: float | None = None, + slave_joint_a4: float | None = None, + slave_joint_a5: float | None = None, + slave_joint_a6: float | None = None, + table_joint_a1: float | None = None, + uuid: str | None = None, + timestamp: int | None = None, +): uuid, timestamp = check_uuid_time_stamp(uuid, timestamp) - add_joint_sample(h5_file["/master_joint_e1"], master_joint_e1) + add_joint_sample(h5_file["./joints/master_joint_e1"], master_joint_e1) + + add_joint_sample(h5_file["./joints/master_joint_a1"], master_joint_a1) + add_joint_sample(h5_file["./joints/master_joint_a2"], master_joint_a2) + add_joint_sample(h5_file["./joints/master_joint_a3"], master_joint_a3) + add_joint_sample(h5_file["./joints/master_joint_a4"], master_joint_a4) + add_joint_sample(h5_file["./joints/master_joint_a5"], master_joint_a5) + add_joint_sample(h5_file["./joints/master_joint_a6"], master_joint_a6) + + add_joint_sample(h5_file["./joints/slave_joint_e1"], slave_joint_e1) - add_joint_sample(h5_file["/master_joint_a1"], master_joint_a1) - add_joint_sample(h5_file["/master_joint_a2"], master_joint_a2) - add_joint_sample(h5_file["/master_joint_a3"], master_joint_a3) - add_joint_sample(h5_file["/master_joint_a4"], master_joint_a4) - add_joint_sample(h5_file["/master_joint_a5"], master_joint_a5) - add_joint_sample(h5_file["/master_joint_a6"], master_joint_a6) + add_joint_sample(h5_file["./joints/slave_joint_a1"], slave_joint_a1) + add_joint_sample(h5_file["./joints/slave_joint_a2"], slave_joint_a2) + add_joint_sample(h5_file["./joints/slave_joint_a3"], slave_joint_a3) + add_joint_sample(h5_file["./joints/slave_joint_a4"], slave_joint_a4) + add_joint_sample(h5_file["./joints/slave_joint_a5"], slave_joint_a5) + add_joint_sample(h5_file["./joints/slave_joint_a6"], slave_joint_a6) - add_joint_sample(h5_file["/slave_joint_e1"], slave_joint_e1) + add_joint_sample(h5_file["./joints/table_joint_a1"], table_joint_a1) - add_joint_sample(h5_file["/slave_joint_a1"], slave_joint_a1) - add_joint_sample(h5_file["/slave_joint_a2"], slave_joint_a2) - add_joint_sample(h5_file["/slave_joint_a3"], slave_joint_a3) - add_joint_sample(h5_file["/slave_joint_a4"], slave_joint_a4) - add_joint_sample(h5_file["/slave_joint_a5"], slave_joint_a5) - add_joint_sample(h5_file["/slave_joint_a6"], slave_joint_a6) + add_header_sample(h5_file["./joints/header"], uuid, timestamp) - add_joint_sample(h5_file["/table_joint_a1"], table_joint_a1) - add_header_sample(h5_file["/header"], uuid, timestamp) if __name__ == "__main__": import numpy as np - test_file = File("./examples/thd_joint_joint.h5", "w") init_thd_joint_states(test_file) add_thd_joint_states_sample(test_file, *np.arange(15)) add_thd_joint_states_sample(test_file, *np.arange(15, 30)) -