class_docstr: The containing dialog and controller for the embedding
  and the image viewer that together make up an analysis
  (i.e. a user selection at an hSNE scale). It also
  iterates over the embedding once the analysis is created
  and this is dynamically displayed in the embedding gui.
docstr: Selection index from a metadata viewer.
  The index_array is a numpy array of indexes for all data points. This
  needs to be filtered for the landmarks in this analysis
docstr_tok: ["Selection","index","from","a","metadata","viewer",".","The","index_array","is","a","numpy","array","of","indexes","for","all","data","points",".","This","needs","to","be","filtered","for","the","landmarks","in","this","analysis"]
code: def on_meta_select(self, data_index_array):
      """Selection index from a metadata viewer.
      The index_array is a numpy array of indexes for all data points. This
      needs to be filtered for the landmarks in this analysis"""
  
      select = np.isin(
          self.analysis.landmark_orig_indexes, data_index_array
      )
      selected_indexes = np.where(select)
      # print(f'selected indexes {selected_indexes}')
      self.embedding_viewer.set_selection(selected_indexes)
  
imports: import time
  import numpy
  from PyQt5 import QtWidgets
  from EmbeddingGui import EmbeddingViewer
  from ModelGui import DemoType
  from CompositeImageViewer import CompositeImageViewer
  from HyperspectralImageViewer import HyperspectralImageViewer
  from MetaDataViewer import MetaDataViewer
label_desc: Use image node_id 11 for calling the AnalysisController obj's underlying member method code with example usage: obj.on_meta_select(data_index_array) without return types