class_docstr: Provides methods to allow conversion between sheet and matrix
  coordinates.
docstr: Store the bounds (as l,b,r,t in an array), xdensity, and
  ydensity.
  
  If ydensity is not specified, it is assumed that the specified
  xdensity is nominal and that the true xdensity should be
  calculated. The top and bottom bounds are adjusted so that the
  ydensity is equal to the xdensity.
  
  If both xdensity and ydensity are specified, these and the
  bounds are taken to be exact and are not adjusted.
docstr_tok: ["Store","the","bounds","(","as","l",",","b",",","r",",","t","in","an","array",")",",","xdensity",",","and","ydensity",".","If","ydensity","is","not","specified",",","it","is","assumed","that","the","specified","xdensity","is","nominal","and","that","the","true","xdensity","should","be","calculated",".","The","top","and","bottom","bounds","are","adjusted","so","that","the","ydensity","is","equal","to","the","xdensity",".","If","both","xdensity","and","ydensity","are","specified",",","these","and","the","bounds","are","taken","to","be","exact","and","are","not","adjusted","."]
code: def __init__(self, bounds, xdensity, ydensity=None):
      """
      Store the bounds (as l,b,r,t in an array), xdensity, and
      ydensity.
  
      If ydensity is not specified, it is assumed that the specified
      xdensity is nominal and that the true xdensity should be
      calculated. The top and bottom bounds are adjusted so that the
      ydensity is equal to the xdensity.
  
      If both xdensity and ydensity are specified, these and the
      bounds are taken to be exact and are not adjusted.
      """
      if not ydensity:
          bounds, xdensity = self.__equalize_densities(bounds, xdensity)
  
      self.bounds = bounds
      self.__set_xdensity(xdensity)
      self.__set_ydensity(ydensity or xdensity)
  
      self.lbrt = np.array(bounds.lbrt())
  
      r1, r2, c1, c2 = Slice._boundsspec2slicespec(self.lbrt, self)
      self.__shape = (r2 - r1, c2 - c1)
  
imports: import numpy
  from .boundingregion import BoundingBox
  from .util import datetime_types
label_desc: Use image node_id 4 to create a new SheetCoordinateSystem object  with example: obj = SheetCoordinateSystem(bounds, xdensity, ydensity)