def get_raw_output(self, tile, _baselevel_readonly=False):
if not isinstance(tile, (BufferedTile, tuple)):<EOL><INDENT>raise TypeError("<STR_LIT>")<EOL><DEDENT>if isinstance(tile, tuple):<EOL><INDENT>tile = self.config.output_pyramid.tile(*tile)<EOL><DEDENT>if _baselevel_readonly:<EOL><INDENT>tile = self.config.baselevels["<STR_LIT>"].tile(*tile.id)<EOL><DEDENT>if tile.zoom not in self.config.zoom_levels:<EOL><INDENT>return self.config.output.empty(tile)<EOL><DEDENT>if tile.crs != self.config.process_pyramid.crs:<EOL><INDENT>raise NotImplementedError(<EOL>"<STR_LIT>"<EOL>)<EOL><DEDENT>if self.config.mode == "<STR_LIT>":<EOL><INDENT>process_tile = self.config.process_pyramid.intersecting(tile)[<NUM_LIT:0>]<EOL>return self._extract(<EOL>in_tile=process_tile,<EOL>in_data=self._execute_using_cache(process_tile),<EOL>out_tile=tile<EOL>)<EOL><DEDENT>process_tile = self.config.process_pyramid.intersecting(tile)[<NUM_LIT:0>]<EOL>if tile.pixelbuffer > self.config.output.pixelbuffer:<EOL><INDENT>output_tiles = list(self.config.output_pyramid.tiles_from_bounds(<EOL>tile.bounds, tile.zoom<EOL>))<EOL><DEDENT>else:<EOL><INDENT>output_tiles = self.config.output_pyramid.intersecting(tile)<EOL><DEDENT>if self.config.mode == "<STR_LIT>" or _baselevel_readonly:<EOL><INDENT>if self.config.output.tiles_exist(process_tile):<EOL><INDENT>return self._read_existing_output(tile, output_tiles)<EOL><DEDENT>else:<EOL><INDENT>return self.config.output.empty(tile)<EOL><DEDENT><DEDENT>elif self.config.mode == "<STR_LIT>" and not _baselevel_readonly:<EOL><INDENT>if self.config.output.tiles_exist(process_tile):<EOL><INDENT>return self._read_existing_output(tile, output_tiles)<EOL><DEDENT>else:<EOL><INDENT>return self._process_and_overwrite_output(tile, process_tile)<EOL><DEDENT><DEDENT>elif self.config.mode == "<STR_LIT>" and not _baselevel_readonly:<EOL><INDENT>return self._process_and_overwrite_output(tile, process_tile)<EOL><DEDENT>
Get output raw data.

This function won't work with multiprocessing, as it uses the
``threading.Lock()`` class.

Parameters
----------
tile : tuple, Tile or BufferedTile
    If a tile index is given, a tile from the output pyramid will be
    assumed. Tile cannot be bigger than process tile!

Returns
-------
data : NumPy array or features
    process output