code: def groupby(
      cls, dataset, dimensions, container_type, group_type, **kwargs
  ):
      geo_dims = cls.geom_dims(dataset)
      if any(d in geo_dims for d in dimensions):
          raise DataError(
              "SpatialPandasInterface does not allow grouping "
              "by geometry dimension.",
              cls,
          )
      return cls.base_interface.groupby(
          dataset, dimensions, container_type, group_type, **kwargs
      )
  
imports: import sys
  from collections import defaultdict
  import numpy
  import pandas
  from ..dimension import dimension_name
  from ..util import isscalar, unique_array, unique_iterator
  from .interface import DataError, Interface
  from .multipath import MultiInterface, ensure_ring
  from .pandas import PandasInterface
label_desc: Use image node_id 19 for calling the SpatialPandasInterface obj's underlying member method code with example usage: obj.groupby(cls, dataset, dimensions, container_type, group_type) and returns: cls