class_docstr: A tiny class to handle cartesian grids
class_docstr_tok: ["A","tiny","class","to","handle","cartesian","grids"]
docstr: Parameters
  ----------
  dim: int, optional,
       the dimension of the grid
  lim: list of len(2*self.dim),
       the limits of the grid as (xmin, xmax, ymin, ymax, ...)
  n_bins: list of len(self.dim),
       the number of bins in each direction
docstr_tok: ["Parameters","--","--","--","--","--","dim",":","int",",","optional",",","the","dimension","of","the","grid","lim",":","list","of","len","(","2","*","self.dim",")",",","the","limits","of","the","grid","as","(","xmin",",","xmax",",","ymin",",","ymax",",","...",")","n_bins",":","list","of","len","(","self.dim",")",",","the","number","of","bins","in","each","direction"]
code: def __init__(self, dim=1, lim=None, n_bins=None):
      """
      Parameters
      ----------
      dim: int, optional,
           the dimension of the grid
      lim: list of len(2*self.dim),
           the limits of the grid as (xmin, xmax, ymin, ymax, ...)
      n_bins: list of len(self.dim),
           the number of bins in each direction
      """
      self.dim = dim
      if lim is not None:
          self.set(lim, n_bins)
      if np.size(n_bins) == self.dim:
          self.n_bins = np.ravel(np.array(n_bins))
  
imports: import numpy
  from scipy.linalg import eigvalsh
label_desc: Use image node_id 1 to create a new GridDescriptor object  with example: obj = GridDescriptor(dim, lim, n_bins)