code: def _proc_sph_top(self):
          
          self._find_spherical_axes()
          if len(self.rot_sym) == 0:
              logger.debug("Accidental speherical top!")
              self._proc_sym_top()
          main_axis, rot = max(self.rot_sym, key=lambda v: v[1])
          if rot < 3:
              logger.debug("Accidental speherical top!")
              self._proc_sym_top()
          elif rot == 3:
              mirror_type = self._find_mirror(main_axis)
              if mirror_type != "":
                  if self.is_valid_op(PointGroupAnalyzer.inversion_op):
                      self.symmops.append(PointGroupAnalyzer.inversion_op)
                      self.sch_symbol = "Th"
                  else:
                      self.sch_symbol = "Td"
              else:
                  self.sch_symbol = "T"
          elif rot == 4:
              if self.is_valid_op(PointGroupAnalyzer.inversion_op):
                  self.symmops.append(PointGroupAnalyzer.inversion_op)
                  self.sch_symbol = "Oh"
              else:
                  self.sch_symbol = "O"
          elif rot == 5:
              if self.is_valid_op(PointGroupAnalyzer.inversion_op):
                  self.symmops.append(PointGroupAnalyzer.inversion_op)
                  self.sch_symbol = "Ih"
              else:
                  self.sch_symbol = "I"
docs: Handles Sperhical Top Molecules, which belongs to the T, O or I point
          groups.