docs: def get_value_by_xy(self, x, y):
          """Get raster value by xy coordinates.
  
          Args:
              x: X Coordinate.
              y: Y Coordinate.
  
          Returns:
              raster value, None if the input are invalid.
          """
          if x < self.xMin or x > self.xMax or y < self.yMin or y > self.yMax:
              return None
              # raise ValueError("The x or y value must be within the Min and Max!")
          else:
              row = self.nRows - int(numpy.ceil((y - self.yMin) / self.dx))
              col = int(numpy.floor((x - self.xMin) / self.dx))
              value = self.data[row][col]
              if value == self.noDataValue:
                  return None
              else:
                  return value