code: def compute_K_numerical(dataframe, settings=None, keep_dir=None):
      
      inversion_code = reda.rcParams.get('geom_factor.inversion_code', 'crtomo')
      if inversion_code == 'crtomo':
          import reda.utils.geom_fac_crtomo as geom_fac_crtomo
          if keep_dir is not None:
              keep_dir = os.path.abspath(keep_dir)
          K = geom_fac_crtomo.compute_K(
              dataframe, settings, keep_dir)
      else:
          raise Exception(
              'Inversion code {0} not implemented for K computation'.format(
                  inversion_code
              ))
      return K
docs: Use a finite-element modeling code to infer geometric factors for meshes
      with topography or irregular electrode spacings.
  
      Parameters
      ----------
      dataframe : pandas.DataFrame
          the data frame that contains the data
      settings : dict
          The settings required to compute the geometric factors. See examples
          down below for more information in the required content.
      keep_dir : path
          if not None, copy modeling dir here
  
      Returns
      -------
      K : :class:`numpy.ndarray`
          K factors (are also directly written to the dataframe)
  
      Examples
      --------
      ::
  
          settings = {
              'rho': 100,
              'elem': 'elem.dat',
              'elec': 'elec.dat',
              'sink_node': '100',
              '2D': False,
          }