如何在QGIS中标记栅格像元?


10

我尝试在QGIS打印管理器工具中显示一个小分辨率的光栅文件。我想,以显示与每个单元格的值(位置-一个小标签大约每个单元的中间)。

我该怎么办?有没有可以帮助我完成此任务的插件?

我的想法是使用gdal2xyz,使用CSV插件加载此类文件,然后将其另存为矢量文件。不幸的是,这很麻烦,因为我有很多栅格文件。

另一个想法是使用gdal2xyz.py,然后使用ogr2​​ogr将其另存为矢量文件。

有什么方法可以分批处理吗?有什么开源程序可以让我更轻松地做到这一点?


你的意思是像这样?已经有此功能的功能要求
Tomas

Answers:


7

QGIS中似乎没有用于标记单元格的插件或功能。

使用转换后的矢量文件标记细胞中心可能是最好的选择。开源统计信息包R有很多出色的空间工具,可以批处理或快速处理栅格文件以创建shapefile(矢量/点)。

library(maptools)
library(raster)

# Load the raster from a file
r <- raster("/workspace/TEMP/raster.asc")

# Convert to spatial points
p <- as(r, "SpatialPointsDataFrame")

# Save as a shapefile
writeSpatialShape(p, "/workspace/TEMP/raster_points")

shapefile将具有一列,其中包含每个点的栅格值。然后将这些点加载到QGIS中,给定大小为0并适当地标记;它们出现在单元格的中心。

例如,要遍历目录中的所有TIF文件:

for (file in dir("/workspace/TEMP/", pattern="*.tif")) { # list all .tif files
  r <- raster(file)
  p <- as(r, "SpatialPointsDataFrame")
  writeSpatialShape(p, substr(file, start = 1, stop = nchar(file) -4)) # substr() removes extension.
}

4

如果R不可用(或者想在QGIS环境中使用R),则处理工具箱中现在有SAGA工具,栅格值指向要提取单元格值的

我们可以标记输出Shapes图层,并用原始栅格覆盖它。

在此处输入图片说明

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.