def bbox(self, out_crs=None):
out_crs = self.pyramid.crs if out_crs is None else out_crs<EOL>with rasterio.open(self.path) as inp:<EOL><INDENT>inp_crs = inp.crs<EOL>out_bbox = bbox = box(*inp.bounds)<EOL><DEDENT>if inp_crs != out_crs:<EOL><INDENT>return reproject_geometry(<EOL>segmentize_geometry(<EOL>bbox, inp.transform[<NUM_LIT:0>] * self.pyramid.tile_size<EOL>),<EOL>src_crs=inp_crs, dst_crs=out_crs<EOL>)<EOL><DEDENT>else:<EOL><INDENT>return out_bbox<EOL><DEDENT>
Return data bounding box.

Parameters
----------
out_crs : ``rasterio.crs.CRS``
    rasterio CRS object (default: CRS of process pyramid)

Returns
-------
bounding box : geometry
    Shapely geometry object