class_docstr: Interface for 2 or 3D arrays representing images
  of raw luminance values, RGB values or HSV values.
class_docstr_tok: ["Interface","for","2","or","3D","arrays","representing","images","of","raw","luminance","values",",","RGB","values","or","HSV","values","."]
docstr: Given a dataset object and data in the appropriate format for
  the interface, return a simple scalar.
docstr_tok: ["Given","a","dataset","object","and","data","in","the","appropriate","format","for","the","interface",",","return","a","simple","scalar","."]
code: def unpack_scalar(cls, dataset, data):
      """
      Given a dataset object and data in the appropriate format for
      the interface, return a simple scalar.
      """
      if np.isscalar(data) or len(data) != 1:
          return data
      key = next(iter(data.keys()))
  
      if len(data[key]) == 1 and key in dataset.vdims:
          return data[key][0]
  
imports: import numpy
  from ..None import util
  from ..boundingregion import BoundingBox
  from ..dimension import dimension_name
  from ..element import Element
  from ..ndmapping import NdMapping, item_check
  from ..sheetcoords import SheetCoordinateSystem, Slice
  from .grid import GridInterface
  from .interface import DataError, Interface
  from .util import finite_range
label_desc: Use image node_id 16 for calling the ImageInterface obj's underlying member method code with example usage: obj.unpack_scalar(cls, dataset, data) and returns: data, data