docs: def execute(self, eopatch):
          """
          :param eopatch: Input EOPatch.
          :type eopatch: EOPatch
          :return: Transformed eo patch
          :rtype: EOPatch
          """
          feature_type, feature_name = next(self.feature(eopatch))
  
          good_idxs = self._get_filtered_indices(eopatch[feature_type][feature_name] if feature_name is not ... else
                                                 eopatch[feature_type])
  
          for feature_type, feature_name in self.filter_features(eopatch):
              if feature_type.is_time_dependent():
                  if feature_type.has_dict():
                      if feature_type.contains_ndarrays():
                          eopatch[feature_type][feature_name] = np.asarray([eopatch[feature_type][feature_name][idx] for
                                                                            idx in good_idxs])
                      # else:
                      #     NotImplemented
                  else:
                      eopatch[feature_type] = [eopatch[feature_type][idx] for idx in good_idxs]
  
          self._update_other_data(eopatch)
  
          return eopatch