code: def _compute_bgid(self, bg=None):
          
          if bg is None:
              bg = self._bgdata
          if isinstance(bg, qpimage.QPImage):
              # Single QPImage
              if "identifier" in bg:
                  return bg["identifier"]
              else:
                  data = [bg.amp, bg.pha]
                  for key in sorted(list(bg.meta.keys())):
                      val = bg.meta[key]
                      data.append("{}={}".format(key, val))
                  return hash_obj(data)
          elif (isinstance(bg, list) and
                isinstance(bg[0], qpimage.QPImage)):
              # List of QPImage
              data = []
              for bgii in bg:
                  data.append(self._compute_bgid(bgii))
              return hash_obj(data)
          elif (isinstance(bg, SeriesData) and
                (len(bg) == 1 or
                 len(bg) == len(self))):
              # DataSet
              return bg.identifier
          else:
              raise ValueError("Unknown background data type: {}".format(bg))
docs: Return a unique identifier for the background data