class_docstr: Class to create coordinate maps of different dimensions
      
class_docstr_tok: ["Class","to","create","coordinate","maps","of","different","dimensions"]
docstr: Coordinate map with transform function `xform`
  
  Parameters
  ----------
  domain_N : int
      Number of domain coordinates
  xform : callable
      Function that transforms points of dimension `domain_N`
  inv_xform : None or callable, optional
      Function, such that ``inv_xform(xform(pts))`` returns ``pts``
  
  Returns
  -------
  cmap : ``CoordinateMap``
  
  Examples
  --------
  >>> from nipy.core.reference.coordinate_system import CoordSysMaker
  >>> dmaker = CoordSysMaker('ijkl', 'generic-array')
  >>> rmaker = CoordSysMaker('xyzt', 'generic-scanner')
  >>> cm_maker = CoordMapMaker(dmaker, rmaker)
  >>> cm_maker.make_cmap(4, lambda x : x+1) #doctest: +ELLIPSIS
  CoordinateMap(
     function_domain=CoordinateSystem(coord_names=('i', 'j', 'k', 'l'), name='generic-array', coord_dtype=float64),
     function_range=CoordinateSystem(coord_names=('x', 'y', 'z', 't'), name='generic-scanner', coord_dtype=float64),
     function=<function <lambda> at ...>
    )
docstr_tok: ["Coordinate","map","with","transform","function","`","xform","`","Parameters","--","--","--","--","--","domain_N",":","int","Number","of","domain","coordinates","xform",":","callable","Function","that","transforms","points","of","dimension","`","domain_N","`","inv_xform",":","None","or","callable",",","optional","Function",",","such","that","``","inv_xform","(","xform","(","pts",")",")","``","returns","``","pts","``","Returns","--","--","--","-","cmap",":","``","CoordinateMap","``","Examples","--","--","--","--",">",">",">","from","nipy.core.reference.coordinate_system","import","CoordSysMaker",">",">",">","dmaker","=","CoordSysMaker","(","'ijkl","'",",","'generic-array","'",")",">",">",">","rmaker","=","CoordSysMaker","(","'xyzt","'",",","'generic-scanner","'",")",">",">",">","cm_maker","=","CoordMapMaker","(","dmaker",",","rmaker",")",">",">",">","cm_maker.make_cmap","(","4",",","lambda","x",":","x+1",")","#","doctest",":","+ELLIPSIS","CoordinateMap","(","function_domain=CoordinateSystem","(","coord_names=","(","'","i","'",",","'","j","'",",","'","k","'",",","'","l","'",")",",","name='generic-array","'",",","coord_dtype=float64",")",",","function_range=CoordinateSystem","(","coord_names=","(","'","x","'",",","'","y","'",",","'","z","'",",","'t","'",")",",","name='generic-scanner","'",",","coord_dtype=float64",")",",","function=","<","function","<","lambda",">","at","...",">",")"]
code: def make_cmap(self, domain_N, xform, inv_xform=None):
      """Coordinate map with transform function `xform`
  
      Parameters
      ----------
      domain_N : int
          Number of domain coordinates
      xform : callable
          Function that transforms points of dimension `domain_N`
      inv_xform : None or callable, optional
          Function, such that ``inv_xform(xform(pts))`` returns ``pts``
  
      Returns
      -------
      cmap : ``CoordinateMap``
  
      Examples
      --------
      >>> from nipy.core.reference.coordinate_system import CoordSysMaker
      >>> dmaker = CoordSysMaker('ijkl', 'generic-array')
      >>> rmaker = CoordSysMaker('xyzt', 'generic-scanner')
      >>> cm_maker = CoordMapMaker(dmaker, rmaker)
      >>> cm_maker.make_cmap(4, lambda x : x+1) #doctest: +ELLIPSIS
      CoordinateMap(
         function_domain=CoordinateSystem(coord_names=('i', 'j', 'k', 'l'), name='generic-array', coord_dtype=float64),
         function_range=CoordinateSystem(coord_names=('x', 'y', 'z', 't'), name='generic-scanner', coord_dtype=float64),
         function=<function <lambda> at ...>
        )
      """
      domain_cs = self.domain_maker(domain_N)
      ex_pt = np.zeros((1, domain_N), dtype=domain_cs.coord_dtype)
      xformed_pt = xform(ex_pt)
      range_N = xformed_pt.shape[1]
      return self.generic_maker(
          domain_cs, self.range_maker(range_N), xform, inv_xform
      )
  
imports: import warnings
  import numpy
  import numpy.linalg
  from nibabel import io_orientation
  from nibabel.affines import from_matvec, to_matvec
  from .coordinate_system import CoordinateSystem, is_coordsys, safe_dtype
  from .coordinate_system import product
label_desc: Use image node_id 3 for calling the CoordMapMaker obj's underlying member method code with example usage: obj.make_cmap(domain_N, xform, inv_xform) and returns: self