def execute(self, process_tile, raise_nodata=False):
if self.config.mode not in ["<STR_LIT>", "<STR_LIT>", "<STR_LIT>"]:<EOL><INDENT>raise ValueError("<STR_LIT>")<EOL><DEDENT>if isinstance(process_tile, tuple):<EOL><INDENT>process_tile = self.config.process_pyramid.tile(*process_tile)<EOL><DEDENT>elif isinstance(process_tile, BufferedTile):<EOL><INDENT>pass<EOL><DEDENT>else:<EOL><INDENT>raise TypeError("<STR_LIT>")<EOL><DEDENT>if process_tile.zoom not in self.config.zoom_levels:<EOL><INDENT>return self.config.output.empty(process_tile)<EOL><DEDENT>return self._execute(process_tile, raise_nodata=raise_nodata)<EOL>
Run the Mapchete process.

Execute, write and return data.

Parameters
----------
process_tile : Tile or tile index tuple
    Member of the process tile pyramid (not necessarily the output
    pyramid, if output has a different metatiling setting)

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