code: def write(self, process_tile, data):
          
          if (
              isinstance(data, tuple) and
              len(data) == 2 and
              isinstance(data[1], dict)
          ):
              data, tags = data
          else:
              tags = {}
          data = prepare_array(
              data,
              masked=True,
              nodata=self.nodata,
              dtype=self.profile(process_tile)["dtype"]
          )
  
          if data.mask.all():
              logger.debug("data empty, nothing to write")
          else:
              # in case of S3 output, create an boto3 resource
              bucket_resource = get_boto3_bucket(self._bucket) if self._bucket else None
  
              # Convert from process_tile to output_tiles and write
              for tile in self.pyramid.intersecting(process_tile):
                  out_path = self.get_path(tile)
                  self.prepare_path(tile)
                  out_tile = BufferedTile(tile, self.pixelbuffer)
                  write_raster_window(
                      in_tile=process_tile,
                      in_data=data,
                      out_profile=self.profile(out_tile),
                      out_tile=out_tile,
                      out_path=out_path,
                      tags=tags,
                      bucket_resource=bucket_resource
                  )
docs: Write data from process tiles into GeoTIFF file(s).
  
          Parameters
          ----------
          process_tile : ``BufferedTile``
              must be member of process ``TilePyramid``
          data : ``np.ndarray``