code: def _resample(self, arrays, ji_windows):
          
          # get a destination array template
          win_dst = ji_windows[self.dst_res]
          aff_dst = self._layer_meta[self._res_indices[self.dst_res][0]]["transform"]
          arrays_dst = list()
          for i, array in enumerate(arrays):
              arr_dst = np.zeros((int(win_dst.height), int(win_dst.width)))
              if self._layer_resolution[i] > self.dst_res:
                  resampling = getattr(Resampling, self.upsampler)
              elif self._layer_resolution[i] < self.dst_res:
                  resampling = getattr(Resampling, self.downsampler)
              else:
                  arrays_dst.append(array.copy())
                  continue
              reproject(array, arr_dst,  # arr_dst[0, :, :, i],
                        src_transform=self._layer_meta[i]["transform"],
                        dst_transform=aff_dst,
                        src_crs=self._layer_meta[0]["crs"],
                        dst_crs=self._layer_meta[0]["crs"],
                        resampling=resampling)
              arrays_dst.append(arr_dst.copy())
          arrays_dst = np.stack(arrays_dst, axis=2) # n_images x n x m x 10 would be the synergise format
          return arrays_dst
docs: Resample all arrays with potentially different resolutions to a common resolution.