code: def load_data_crt_files(self, data_dict):
          
          if isinstance(data_dict, str):
              raise Exception('Parameter must be a dict!')
  
          frequency_data = data_dict['frequencies']
          if isinstance(frequency_data, str):
              frequencies = np.loadtxt(data_dict['frequencies'])
          else:
              # if this is not a string, assume it to be the data
              frequencies = frequency_data
  
          if frequencies.size != len(data_dict['crt']):
              raise Exception(
                  'number of frequencies does not match the number of data files'
              )
          self._init_frequencies(frequencies)
  
          for frequency, filename in zip(frequencies, data_dict['crt']):
              subdata = np.atleast_2d(np.loadtxt(filename, skiprows=1))
              if subdata.size == 0:
                  continue
              # extract configurations
              A = (subdata[:, 0] / 1e4).astype(int)
              B = (subdata[:, 0] % 1e4).astype(int)
              M = (subdata[:, 1] / 1e4).astype(int)
              N = (subdata[:, 1] % 1e4).astype(int)
  
              ABMN = np.vstack((A, B, M, N)).T
  
              magnitudes = subdata[:, 2]
              phases = subdata[:, 3]
  
              self.tds[frequency].configs.add_to_configs(ABMN)
              self.tds[frequency].register_measurements(magnitudes, phases)
docs: Load sEIT data from .ctr files (volt.dat files readable by CRTomo,
          produced by CRMod)
  
          Parameters
          ----------
          data_dict : dict
              Data files that are imported. See example down below
  
          Examples
          --------
  
          >>> import glob
              data_files = {}
              data_files['frequencies'] = 'data/frequencies.dat'
              files = sorted(glob.glob('data/volt_*.crt'))
              data_files['crt'] = files