code: def fit_all(xy,uv,mode='rscale',center=None,verbose=True):
      
      if mode not in ['general', 'shift', 'rscale']:
          mode = 'rscale'
      if not isinstance(xy,np.ndarray):
          # cast input list as numpy ndarray for fitting
          xy = np.array(xy)
      if not isinstance(uv,np.ndarray):
          # cast input list as numpy ndarray for fitting
          uv = np.array(uv)
  
      if mode == 'shift':
          logstr = 'Performing "shift" fit'
          if verbose:
              print(logstr)
          else:
              log.info(logstr)
          result = fit_shifts(xy, uv)
  
      elif mode == 'general':
          logstr = 'Performing "general" fit'
          if verbose:
              print(logstr)
          else:
              log.info(logstr)
          result = fit_general(xy, uv)
  
      else:
          logstr = 'Performing "rscale" fit'
          if verbose:
              print(logstr)
          else:
              log.info(logstr)
          result = geomap_rscale(xy, uv, center=center)
  
      return result
docs: Performs an 'rscale' fit between matched lists of pixel positions xy and uv