diff --git a/polytope_feature/datacube/transformations/datacube_mappers/mapper_types/healpix_nested.py b/polytope_feature/datacube/transformations/datacube_mappers/mapper_types/healpix_nested.py index dca87a7a3..334805d42 100644 --- a/polytope_feature/datacube/transformations/datacube_mappers/mapper_types/healpix_nested.py +++ b/polytope_feature/datacube/transformations/datacube_mappers/mapper_types/healpix_nested.py @@ -222,6 +222,8 @@ def int_sqrt(self, i): # md5 grid hash in form {resolution : hash} -_md5_hash = {1024: "cbda19e48d4d7e5e22641154878b9b22", - 512: "9533855ee8e38314e19aaa0434c310da", - 128: "f3dfeb7a5bbbdd13a20d10fdb3797c71"} +_md5_hash = { + 1024: "cbda19e48d4d7e5e22641154878b9b22", + 512: "9533855ee8e38314e19aaa0434c310da", + 128: "f3dfeb7a5bbbdd13a20d10fdb3797c71", +} diff --git a/polytope_feature/datacube/transformations/datacube_merger/datacube_merger.py b/polytope_feature/datacube/transformations/datacube_merger/datacube_merger.py index 5b0516638..51acd9984 100644 --- a/polytope_feature/datacube/transformations/datacube_merger/datacube_merger.py +++ b/polytope_feature/datacube/transformations/datacube_merger/datacube_merger.py @@ -24,19 +24,15 @@ def _mapped_axes(self): return self._first_axis def merged_values(self, datacube): - first_ax_vals = datacube.ax_vals(self.name) + first_ax_vals = np.array(datacube.ax_vals(self.name)) second_ax_name = self._second_axis - second_ax_vals = datacube.ax_vals(second_ax_name) + second_ax_vals = np.array(datacube.ax_vals(second_ax_name)) linkers = self._linkers - merged_values = [] - for i in range(len(first_ax_vals)): - first_val = first_ax_vals[i] - for j in range(len(second_ax_vals)): - second_val = second_ax_vals[j] - val_to_add = pd.to_datetime("".join([first_val, linkers[0], second_val, linkers[1]])) - val_to_add = val_to_add.to_numpy() - val_to_add = val_to_add.astype("datetime64[s]") - merged_values.append(val_to_add) + first_grid, second_grid = np.meshgrid(first_ax_vals, second_ax_vals, indexing="ij") + combined_strings = np.char.add( + np.char.add(first_grid.ravel(), linkers[0]), np.char.add(second_grid.ravel(), linkers[1]) + ) + merged_values = pd.to_datetime(combined_strings).to_numpy().astype("datetime64[s]") merged_values = np.array(merged_values) logging.info( f"Merged values {first_ax_vals} on axis {self.name} and \