Saturday, 12 October 2019

gdal - Creating in-memory raster layer using PyQGIS?


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 says it supports all gdal sources, I couldn't make it work.


Can anyone help me?




No comments:

Post a Comment

arcpy - Changing output name when exporting data driven pages to JPG?

Is there a way to save the output JPG, changing the output file name to the page name, instead of page number? I mean changing the script fo...