docs: def select_catalogue_events(self, id0):
          '''
          Orders the events in the catalogue according to an indexing vector.
  
          :param np.ndarray id0:
              Pointer array indicating the locations of selected events
          '''
          for key in self.data:
              if isinstance(
                      self.data[key], np.ndarray) and len(self.data[key]) > 0:
                  # Dictionary element is numpy array - use logical indexing
                  self.data[key] = self.data[key][id0]
              elif isinstance(
                      self.data[key], list) and len(self.data[key]) > 0:
                  # Dictionary element is list
                  self.data[key] = [self.data[key][iloc] for iloc in id0]
              else:
                  continue