should RasterCount be a parameter within mem_drv.Create? - if that is removed, then fetch the band and write the new array? something something like:
dest = mem_drv.Create('', x_size, y_size, 1, gdal.GDT_Float32)
# see edit comment
#band
EDIT: oh, i see it here - i didn't see the destination raster as a parameter to ReprojectImage at first - hopefully the above change will help. i was originally thinking of re-interpolating the array, then writing it to the dest raster band -
band = dest.GetRaseterBandGetRasterBand(1)
#resres = gdal.ReprojectImage( DEM, dest, \
# DEM.GetProjection(), DEM.GetProjectionSomeReInterpolationFunction(**kwargs), \
# if this were a custom function to gdal.GRA_Bilinearinterpolate )an array
#bandband.WriteArray(res)
if res is the newly interpolated array?
EDIT: oh, i seethough it here - perhaps you don't need to write the banddoesn't appear to the memory raster, the dest raster is a parameterbe needed in gdal.Reproject. So hopefully removing RasterCount from the Create method would helpthis case.