docs: def get_PCA_parameters(self, specimen, fit, tmin, tmax, coordinate_system, calculation_type):
          """
          Uses pmag.domean to preform a line, line-with-origin, line-anchored,
          or plane least squared regression or a fisher mean on the
          measurement data of specimen in coordinate system between bounds
          tmin to tmax
  
          Parameters
          ----------
          specimen : specimen with measurement data in self.Data
          fit : fit for which the regression or mean is being applied
              (used for calculating measurement index of tmin and tmax)
          tmin : lower bound of measurement data
          tmax : upper bound of measurement data
          coordinate_system : which coordinate system the measurement data
              should be in
          calculation_type : type of regression or mean to preform
              (options - DE-BFL:line,DE-BFL-A:line-anchored,DE-BFL-O:line-with-
              origin,DE-FM:fisher,DE-BFP:plane)
  
          Returns
          -------
          mpars : a 2.5 data model dictionary type specimen record of the dec,
              inc, etc of the regression or mean
          """
          if tmin == '' or tmax == '':
              return
          beg_pca, end_pca = self.get_indices(fit, tmin, tmax, specimen)
  
          if coordinate_system == 'geographic' or coordinate_system == 'DA-DIR-GEO':
              block = self.Data[specimen]['zijdblock_geo']
          elif coordinate_system == 'tilt-corrected' or coordinate_system == 'DA-DIR-TILT':
              block = self.Data[specimen]['zijdblock_tilt']
          else:
              block = self.Data[specimen]['zijdblock']
          if block == []:
              print(("-E- no measurement data for specimen %s in coordinate system %s" %
                     (specimen, coordinate_system)))
              mpars = {}
          elif end_pca > beg_pca and end_pca - beg_pca > 1:
  
              try:
                  # preformes regression
                  mpars = pmag.domean(block, beg_pca, end_pca, calculation_type)
              except:
                  print((block, beg_pca, end_pca, calculation_type,
                         specimen, fit.name, tmin, tmax, coordinate_system))
                  return
  
              if 'specimen_direction_type' in mpars and mpars['specimen_direction_type'] == 'Error':
                  print(("-E- no measurement data for specimen %s in coordinate system %s" %
                         (specimen, coordinate_system)))
                  return {}
          else:
              mpars = {}
          for k in list(mpars.keys()):
              try:
                  if math.isnan(float(mpars[k])):
                      mpars[k] = 0
              except:
                  pass
          if "DE-BFL" in calculation_type and 'specimen_dang' not in list(mpars.keys()):
              mpars['specimen_dang'] = 0
  
          if 'best fit vector' in self.plane_display_box.GetValue():
              self.calculate_best_fit_vectors()
  
          return(mpars)