I have been researching quite a bit for creating in-memory raster layer using PyQGIS. i have done it through gdal "memory" layer. But i need QgsRasterLayer instance for displaying. I don't have the option of saving the results to disk and reading it again.
I tried doing this:

    target_ds = gdal.GetDriverByName('MEM').Create('ras', x_count, y_count, 1, gdal.GDT_Int32)

    target_ds= processing.runalg("gdalogr:rasterize",
                          {"INPUT": ellipse_shp,
                           "FIELD": "id1",
                           "DIMENSIONS": 0,
                           "WIDTH": x_count,
                           "HEIGHT": y_count,
                           "RAST_EXT": "%f,%f,%f,%f" % (x_min, x_max, y_min, y_max),
                           "TFW": 1,
                           "RTYPE": 4,
                           "NO_DATA": 1,
                           "COMPRESS": 0,
                           "JPEGCOMPRESSION": 1,
                           "ZLEVEL": 1,
                           "PREDICTOR": 1,
                           "TILED": False,
                           "BIGTIFF": 2,
                           "EXTRA": '',
                           "OUTPUT": "aa"})

But when i wanted to use it as:

    target_ds["OUTPUT"]

it gave me an error as 
`TypeError: str cannot be converted to qgis._core.QgsRasterLayer in this context`

Although [QGIS documentation][1] says it supports all gdal sources, I couldn't make it work. Can anyone help me ?
Thanks in advance.


  [1]: https://qgis.org/api/classQgsRasterLayer.html#details