docstr: Compose this transform onto another
  
  Parameters
  ----------
  other : Transform
      transform that we compose onto
  
  Returns
  -------
  composed_transform : Transform
      a transform implementing the composition of self on `other`
docstr_tok: ["Compose","this","transform","onto","another","Parameters","--","--","--","--","--","other",":","Transform","transform","that","we","compose","onto","Returns","--","--","--","-","composed_transform",":","Transform","a","transform","implementing","the","composition","of","self","on","`","other","`"]
code: def compose(self, other):
      """Compose this transform onto another
  
      Parameters
      ----------
      other : Transform
          transform that we compose onto
  
      Returns
      -------
      composed_transform : Transform
          a transform implementing the composition of self on `other`
      """
      # If other is not an Affine, use either its left compose
      # method, if available, or the generic compose method
      if not hasattr(other, "as_affine"):
          if hasattr(other, "left_compose"):
              return other.left_compose(self)
          else:
              return Transform(self.apply).compose(other)
  
      # Affine case: choose more capable of input types as output
      # type
      other_aff = other.as_affine()
      self_inds = set(self.param_inds)
      other_inds = set(other.param_inds)
      if self_inds.issubset(other_inds):
          klass = other.__class__
      elif other_inds.isssubset(self_inds):
          klass = self.__class__
      else:  # neither one contains capabilities of the other
          klass = Affine
      a = klass()
      a._precond[:] = self._precond[:]
      a.from_matrix44(np.dot(self.as_affine(), other_aff))
      return a
  
imports: import numpy
  import scipy.linalg
  from nibabel.affines import apply_affine
  from transforms3d.quaternions import mat2quat, quat2axangle
  from .transform import Transform
label_desc: Use image node_id 18 for calling the Affine obj's underlying member method code with example usage: obj.compose(other) and returns: a, other, Transform