QgsVectorFileWriter le permite sobrescribir una capa existente con su salida, pero no he encontrado una opción similar con QgsRasterFileWriter. Aqui esta mi codigo que esta escribiendo una capa raster a un geopackage:
ds = ogr.Open(gpkg, True)
pipe = QgsRasterPipe()
provider=layer_in.dataProvider()
file_writer = QgsRasterFileWriter(gpkg)
file_writer.setOutputFormat('gpkg')
file_writer.setCreateOptions([f"RASTER_TABLE={layer_name}", 'APPEND_SUBDATASET=YES'])
if pipe.set(provider.clone()):
projector = QgsRasterProjector()
projector.setCrs(provider.crs(), provider.crs())
if pipe.insert(2, projector) is True:
if file_writer.writeRaster(pipe, provider.xSize(),provider.ySize(),provider.extent(),provider.crs()) == 0:
feedback.pushInfo(f"ok")
else:
feedback.pushInfo(f"error: {file_writer.writeRaster(pipe, provider.xSize(),provider.ySize(),provider.extent(),provider.crs())} {help(file_writer.setCreateOptions)}")
ds = None