通过使用PyqGIS的QGSVectorlayer的栅格化创建内存内QGSrasterlayer



我当前正在构建一个QGIS插件,我需要将矢量层栅格化,其中输出将存储在内存中。

为此,我尝试了此(来自此链接的答案(:

temp = processing.run("gdal:rasterize",
                           {"INPUT": input_shapefile,
                            "FIELD": "OBJECTID",
                            "UNITS": 1,
                            "WIDTH": resolution,
                            "HEIGHT": resolution,
                            "EXTENT": "%f,%f,%f,%f" % (xmin, xmax, ymin, ymax),
                            "NODATA": -99,
                            "OUTPUT": None})

问题在于它不起作用:没有一个人被认为是有效的输出。我还尝试了"输出":"内存",但它也不起作用...所以我想知道我在上面链接中发现的答案是否正确?

注意:QGIS版本:3.4.7带Python 3.7

我使用" tempfile.temporaryDirectory(("以下方式找到了我的问题的aswer:

tf = tempfile.TemporaryDirectory()
tfolder = tf.name + "\rasterisation.tif"
temp = processing.run("gdal:rasterize",
                       {"INPUT": input_shapefile,
                        "FIELD": "OBJECTID",
                        "UNITS": 1,
                        "WIDTH": resolution,
                        "HEIGHT": resolution,
                        "EXTENT": "%f,%f,%f,%f" % (xmin, xmax, ymin, ymax),
                        "NODATA": -99,
                        "OUTPUT": tfolder})
 rlayer = self.iface.addRasterLayer(tfolder, "Rasterisation")

有关此模块的更多信息,请参见此链接。

最新更新