code: def range(cls, dataset, dim):
      dim = dataset.get_dimension(dim)
      geom_dims = cls.geom_dims(dataset)
      if dim in geom_dims:
          col = cls.geo_column(dataset.data)
          idx = geom_dims.index(dim)
          bounds = dataset.data[col].total_bounds
          if idx == 0:
              return (bounds[0], bounds[2])
          else:
              return (bounds[1], bounds[3])
      else:
          return cls.base_interface.range(dataset, dim)
  
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 18 for calling the SpatialPandasInterface obj's underlying member method code with example usage: obj.range(cls, dataset, dim) and returns: cls, bounds,  bounds, bounds,  bounds