def write(self, process_tile, data):
if (<EOL>isinstance(data, tuple) and<EOL>len(data) == <NUM_LIT:2> and<EOL>isinstance(data[<NUM_LIT:1>], dict)<EOL>):<EOL><INDENT>data, tags = data<EOL><DEDENT>else:<EOL><INDENT>tags = {}<EOL><DEDENT>data = prepare_array(<EOL>data,<EOL>masked=True,<EOL>nodata=self.nodata,<EOL>dtype=self.profile(process_tile)["<STR_LIT>"]<EOL>)<EOL>if data.mask.all():<EOL><INDENT>logger.debug("<STR_LIT>")<EOL><DEDENT>else:<EOL><INDENT>bucket_resource = get_boto3_bucket(self._bucket) if self._bucket else None<EOL>for tile in self.pyramid.intersecting(process_tile):<EOL><INDENT>out_path = self.get_path(tile)<EOL>self.prepare_path(tile)<EOL>out_tile = BufferedTile(tile, self.pixelbuffer)<EOL>write_raster_window(<EOL>in_tile=process_tile,<EOL>in_data=data,<EOL>out_profile=self.profile(out_tile),<EOL>out_tile=out_tile,<EOL>out_path=out_path,<EOL>tags=tags,<EOL>bucket_resource=bucket_resource<EOL>)<EOL><DEDENT><DEDENT>
Write data from process tiles into GeoTIFF file(s).

Parameters
----------
process_tile : ``BufferedTile``
    must be member of process ``TilePyramid``
data : ``np.ndarray``