如何通过R terra包正确导出配置PixelIsPoint的GeoTIFF?
解决Terra导出PixelIsPoint类型GeoTIFF的问题
你遇到的问题是因为原栅格数据可能自带AREA_OR_POINT=Area的元数据,Terra在写入时默认保留原元数据,导致你的GDAL配置选项被覆盖。可以通过以下步骤解决:
清除原栅格的AREA_OR_POINT元数据
先检查并移除原数据中的该属性,避免写入时被继承:library(terra) # 读取数据 r <- system.file("ex/elev.tif", package="terra") raster_data <- rast(r) # 移除原有AREA_OR_POINT元数据(如果存在) current_meta <- metadata(raster_data) current_meta <- current_meta[!grepl("AREA_OR_POINT", names(current_meta))] metadata(raster_data) <- current_meta强制写入时指定AREA_OR_POINT=POINT
调用writeRaster时,确保GDAL选项正确传递:writeRaster(raster_data, filename = ".../test.tif", gdal = c("COMPRESS=NONE", "AREA_OR_POINT=POINT", "TILED=YES"), overwrite = TRUE)验证结果
不要只依赖QGIS的属性显示(可能存在缓存),用GDAL命令行或R直接查看输出文件的元数据:# 在R中调用gdalinfo查看输出文件 system("gdalinfo .../test.tif")输出中找到
AREA_OR_POINT=Point即说明配置成功。
如果QGIS仍显示为Area,尝试刷新图层或重新加载文件,清除QGIS的缓存。
内容的提问来源于stack exchange,提问作者JayDXQ
相关产品推荐
相关产品推荐

