code: def write(self, process_tile, data):
          
          if isinstance(process_tile, tuple):
              process_tile = self.config.process_pyramid.tile(*process_tile)
          elif not isinstance(process_tile, BufferedTile):
              raise ValueError("invalid process_tile type: %s" % type(process_tile))
          if self.config.mode not in ["continue", "overwrite"]:
              raise ValueError("cannot write output in current process mode")
  
          if self.config.mode == "continue" and (
              self.config.output.tiles_exist(process_tile)
          ):
              message = "output exists, not overwritten"
              logger.debug((process_tile.id, message))
              return ProcessInfo(
                  tile=process_tile,
                  processed=False,
                  process_msg=None,
                  written=False,
                  write_msg=message
              )
          elif data is None:
              message = "output empty, nothing written"
              logger.debug((process_tile.id, message))
              return ProcessInfo(
                  tile=process_tile,
                  processed=False,
                  process_msg=None,
                  written=False,
                  write_msg=message
              )
          else:
              with Timer() as t:
                  self.config.output.write(process_tile=process_tile, data=data)
              message = "output written in %s" % t
              logger.debug((process_tile.id, message))
              return ProcessInfo(
                  tile=process_tile,
                  processed=False,
                  process_msg=None,
                  written=True,
                  write_msg=message
              )
docs: Write data into output format.
  
          Parameters
          ----------
          process_tile : BufferedTile or tile index tuple
              process tile
          data : NumPy array or features
              data to be written