docstr: Constructs a simplified version of this Diffeomorhic Map
  
  The simplified version incorporates the pre-align transform, as well as
  the domain and codomain affine transforms into the displacement field.
  The resulting transformation may be regarded as operating on the
  image spaces given by the domain and codomain discretization. As a
  result, self.prealign, self.disp_grid2world, self.domain_grid2world and
  self.codomain affine will be None (denoting Identity) in the resulting
  diffeomorphic map.
code: def get_simplified_transform(self):
      """Constructs a simplified version of this Diffeomorhic Map
  
      The simplified version incorporates the pre-align transform, as well as
      the domain and codomain affine transforms into the displacement field.
      The resulting transformation may be regarded as operating on the
      image spaces given by the domain and codomain discretization. As a
      result, self.prealign, self.disp_grid2world, self.domain_grid2world and
      self.codomain affine will be None (denoting Identity) in the resulting
      diffeomorphic map.
      """
      if self.dim == 2:
          simplify_f = vfu.simplify_warp_function_2d
      else:
          simplify_f = vfu.simplify_warp_function_3d
      # Simplify the forward transform
      D = self.domain_grid2world
      P = self.prealign
      Rinv = self.disp_world2grid
      Cinv = self.codomain_world2grid
  
      # this is the matrix which we need to multiply the voxel coordinates
      # to interpolate on the forward displacement field ("in"side the
      # 'forward' brackets in the expression above)
      affine_idx_in = mult_aff(Rinv, mult_aff(P, D))
  
      # this is the matrix which we need to multiply the voxel coordinates
      # to add to the displacement ("out"side the 'forward' brackets in the
      # expression above)
      affine_idx_out = mult_aff(Cinv, mult_aff(P, D))
  
      # this is the matrix which we need to multiply the displacement vector
      # prior to adding to the transformed input point
      affine_disp = Cinv
  
      new_forward = simplify_f(
          self.forward,
          affine_idx_in,
          affine_idx_out,
          affine_disp,
          self.domain_shape,
      )
  
      # Simplify the backward transform
      C = self.codomain_world2grid
      Pinv = self.prealign_inv
      Dinv = self.domain_world2grid
  
      affine_idx_in = mult_aff(Rinv, C)
      affine_idx_out = mult_aff(Dinv, mult_aff(Pinv, C))
      affine_disp = mult_aff(Dinv, Pinv)
      new_backward = simplify_f(
          self.backward,
          affine_idx_in,
          affine_idx_out,
          affine_disp,
          self.codomain_shape,
      )
      simplified = DiffeomorphicMap(
          self.dim,
          self.disp_shape,
          None,
          self.domain_shape,
          None,
          self.codomain_shape,
          None,
          None,
      )
      simplified.forward = new_forward
      simplified.backward = new_backward
      return simplified
  
imports: import logging
  import abc
  import numpy
  import numpy.linalg
  import nibabel
  from nibabel.streamlines import ArraySequence
  from dipy.align import vector_fields
  from dipy.align import floating
  from dipy.align import VerbosityLevels
  from dipy.align import Bunch
  from dipy.align.scalespace import ScaleSpace
label_desc: Use image node_id 21 for calling the DiffeomorphicMap obj's underlying member method code with example usage: obj.get_simplified_transform() and returns: simplified