code: def tile(address, tile_x, tile_y, tile_z, tilesize=256, **kwargs):
      
      with rasterio.open(address) as src:
          wgs_bounds = transform_bounds(
              *[src.crs, "epsg:4326"] + list(src.bounds), densify_pts=21
          )
  
          if not utils.tile_exists(wgs_bounds, tile_z, tile_x, tile_y):
              raise TileOutsideBounds(
                  "Tile {}/{}/{} is outside image bounds".format(tile_z, tile_x, tile_y)
              )
  
          mercator_tile = mercantile.Tile(x=tile_x, y=tile_y, z=tile_z)
          tile_bounds = mercantile.xy_bounds(mercator_tile)
          return utils.tile_read(src, tile_bounds, tilesize, **kwargs)
docs: Create mercator tile from any images.
  
      Attributes
      ----------
      address : str
          file url.
      tile_x : int
          Mercator tile X index.
      tile_y : int
          Mercator tile Y index.
      tile_z : int
          Mercator tile ZOOM level.
      tilesize : int, optional (default: 256)
          Output image size.
      kwargs: dict, optional
          These will be passed to the 'rio_tiler.utils._tile_read' function.
  
      Returns
      -------
      data : numpy ndarray
      mask: numpy array